JFrog 研究人员 Andrey Polkovnychenko 和 Shachar Menashe 在一份报告中指出,截至 3 月 21 日他们已观察到不少于 218 个恶意 NPM 包。检查后发现这都是针对 Azure 开发人员的新的大规模供应链攻击,攻击者采用了一个自动脚本来创建账户并上传覆盖整个 scope 的恶意软件包,旨在窃取个人身份信息。
除了针对 @azure scope 外,还有 @azure-rest、@azure-tests、@azure-tools 和 @cadl-lang 也是目标。在这些恶意包发布大约两天后,JFrog 向 NPM 维护人员进行了披露,其迅速进行了删除;但在此之前,每个软件包已平均被下载了约 50 次。
根据介绍,攻击人员使用的软件供应链攻击方法是 typosquatting,他们只是创建了一个新的(恶意的)包,其名称与现有的 @azure scope package 相同,但删除了 scope name。举例如下:
这是一个合法的 azure npm 包
以及它的恶意对应物
“攻击者依赖于一些开发人员在安装软件包时可能错误地省略了@azure 前缀这一事实。例如,错误地运行 npm install core-tracing,而不是正确的命令 - npm install @azure/core-tracing。”
而除了 typosquatting 感染方式外,所有的恶意软件包都有极高的版本号(例如 99.10.9)。研究人员指出,这表明是一种依赖性混淆攻击。一个可能的猜想是,除了基于 typosquatting 的普通 npm 用户的目标外,攻击者还试图针对开发人员和从 Microsoft/Azure 内部网络运行的机器。
JFrog 建议,对于使用目标包的 Azure 开发人员,可以通过检查它们的名称是否以 @azure* scope 开头,以确保合法性。并表示,由于供应链攻击的迅速崛起(特别是通过 npm 和 PyPI 软件包库),似乎应该增加更多的审查和缓解措施。
例如,在创建 npm 用户时添加一个 CAPTCHA 机制将不允许攻击者轻松创建任意数量的用户来上传恶意包,从而更容易识别攻击。除此之外,作为安全软件管理过程的一部分,基于 SAST 或 DAST 技术(或者最好是两者)的自动软件包过滤的需求可能也是不可避免的。
本文转自OSCHINA
本文标题:研究发现超 200 个针对 Azure 开发人员的恶意 NPM 包
本文地址:https://www.oschina.net/news/189049/large-scale-npm-attack-targets-azure-developers