一组 200 多个针对使用 Microsoft Azure 的开发人员的恶意 npm 包在向公众提供两天后已被删除。
安全公司 JFrog 周三表示,本周早些时候,其自动分析系统开始对可疑上传到 npm Registry 发出警报,npm Registry 是 JavaScript 生态系统中最受欢迎的软件库公共资源。到 3 月 21 日,这组包裹从大约 50 个增加到至少 200 个。
“在手动检查了其中一些包后,很明显这是针对整个@azure npm 范围的有针对性的攻击,攻击者使用自动脚本创建帐户并上传覆盖整个范围的恶意包,”在一篇文章中观察到安全研究人员 Andrey Polkovnychenko 和 Shachar Menashe。“目前,观察到的这些软件包的恶意负载是 PII(个人身份信息)窃取者。”
对于 npm(用于与 npm 注册表交互的命令行工具),作用域用于将软件包与个人或组织的名称相关联。范围为与 Microsoft Azure 一起使用的包将描述性包名称(例如 core-tracing)附加到范围标识符“@azure”以创建包标识符,如“@azure/core-tracing”。这使得搜索与 Azure 相关的 npm 包变得更容易,组织也更容易管理代码。
试图进行这种软件供应链攻击的威胁者创建了至少 218 个包,并为它们提供了与 @azure 范围包相同的名称,但名称中没有 @azure 部分。这样做,攻击者希望从用户错误中受益。
Polkovnychenko 和 Menashe 解释说:“攻击者依赖于一些开发人员在安装软件包时可能会错误地忽略 @azure 前缀这一事实。” “例如,错误地运行 npm install core-tracing,而不是正确的命令
除了为域名仿冒定制包名称外,攻击者似乎一直在试图促进依赖混淆攻击。这涉及使用高版本号(例如 99.10.9),希望内部 npm 私有代理(设置为从内部注册表获取代码)配置为首先从公共 npm 注册表查找现有包的新版本,然后再回退到本地注册表。罗马尼亚不限内容服务器
Polkovnychenko 和 Menashe 推测,攻击者可能一直希望破坏微软内部从事 Azure 代码工作的工程师以及在 Redmond 的云上构建软件的开发人员的账户。
攻击者进一步试图通过使用为每个上传的包生成唯一用户名的上传脚本来避免检测。这种特殊的欺骗并不重要,因为在尝试以编程方式评估 npm 包是否恶意时,还会考虑许多其他指标。
例如,最近的Socket 服务会查找与安装脚本、许可证、README 文档、重大代码更改、网络访问和异常版本控制等相关的异常,以发现可疑包。JFrog 也提供了一套免费的 npm 扫描工具。
根据 Polkovnychenko 和 Menashe 的说法,供应链攻击在被中断前的两天内运行的 218 个恶意包中的每个包平均管理了大约 50 次下载。这可能有多达 10,900 名受害者。
两位安全研究人员认为,通过 npm、PyPI 和其他软件包注册表进行的软件供应链攻击激增,需要采取额外的安全措施。
“例如,在创建 npm 用户时添加 CAPTCHA 机制将不允许攻击者轻松创建可以上传恶意包的任意数量的用户,从而更容易识别攻击(以及基于上传时的启发式阻止包)帐户),”他们建议。
“除此之外,基于 SAST [静态应用程序安全测试] 或 DAST [动态应用程序安全测试] 技术(或最好是两者),作为安全软件管理过程的一部分,自动包过滤的需求可能是不可避免的。
免费试用尝鲜
贴心会员服务
服务可用性
数据安全保障
全年不间断在线
工作时间:早上9:00-下午6:30
河南快米云网络科技有限公司
公安备案编号:41010302002363
Copyright © 2010-2023 All Rights Reserved. 地址:河南自由贸易区开封片区经济开发区宋城路122号