节点版本管理器 (nvm) 的推荐安装说明是下载并运行install_nvm.sh
创建~/.nvm
文件夹的 bash 脚本和 nvm 脚本~/.nvm/nvm.sh
。在受 SentinelOne 反恶意软件保护的 macOS 系统上,这会触发 SentinelOne 警报和隔离(即删除)nvm.sh
。
NVM 是否在某种程度上代表了合法威胁?如果不是,有没有办法阻止 SentinelOne 隔离它?
受影响的 NVM 版本是 0.39.0、0.39.1、0.39.2、0.39.3(我写这个问题时是当前的版本)。
要重现,请在 macOS (13.4) 上运行 NVM 安装程序脚本。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
查找要弹出的 SentinelOne (22.4.2.6599) 通知消息:
“检测到威胁。检测到恶意文件。文件名为 nvm.sh”
编辑:更多细节...
使用 nvm.sh 的代码二分法,我发现只需在扩展名为 .sh 的文件中保存两三行就足以触发 SentinelOne。
包含以下最少行的文件足以触发 SentinelOne 隔离:
cat > nvm.sh
1166: if command printf "${SEEN_ALIASES}" | nvm_grep -q -e "^${ALIAS_TEMP}$"; then
6416: command chmod +x "${VERSION_PATH}"/node.exe || return 1
或者这三行:
cat > nvm.sh
5112: printf "%d%06d%06d\n", a[1], a[2], a[3];
6415: command mv "${TMPDIR}/"*/* "${VERSION_PATH}" || return 1
6417: command chmod +x "${VERSION_PATH}"/npm || return 1
我认为这些行并不是特别令人反感,但这是自动生成的恶意软件签名算法的结果。
答案1
这篇 Sentinel One 文章似乎提供了一种方法。
SentinelOne 强大的排除功能易于配置,可实现兼容性并纠正互操作性误报。排除可应用于全局级别、站点级别和组级别,以实现精细控制。将特定应用程序列入黑名单或白名单并不是 SentinelOne 解决方案运行的必要条件。但是,确保没有其他端点安全解决方案可能与 SentinelOne 冲突并因此导致互操作性问题被认为是最佳实践。在这种情况下,建议客户考虑使用排除来处理第三方互操作性冲突。SentinelOne 很乐意讨论大规模部署策略,包括测试潜在的互操作性问题并主动处理这些问题。SentinelOne 代理排除机制包括:• 哈希值• 路径、路径 + 子文件夹、特定可执行文件• 签名者证书身份• 文件类型• 浏览器类型不监控某些可执行文件的能力以及使用级联排除的选项。后者通常由使用已知良好编译器构建代码的商店使用。我们还提供多种排除模式,用于高度特定(外科手术)的排除。能够根据不同的部署场景(包括部署限制)打开和关闭功能。所有指南和知识库文章都可以通过在线客户门户访问。