攻击者使用误植域名窃取NPM凭证
▌作者:Tom Spring
▌翻译:360代码卫士团队
前言
寻找开发人员凭证的黑客使用误植域名通过托管在在线仓库npm的库传播恶意代码。共有40个npm数据包是恶意的而且已从Node.js数据包管理注册表中删除。
什么是误植域名?
Npm博客文章在对事件的描述中指出,一位名叫HackTask的用户在7月19日至7月31日上传了恶意JavaScript库。Npm为JavaScript维护了Node包管理器并托管着“全球最大的软件注册表”。每个恶意数据包的命名都与流行的现有npm数据包类似,以达到混淆目的。这种做法被称为“误植域名”。过去这种做法基本不是故意的。而这次数据包命名是故意且恶意的,目的就是收集用户数据。
窃取开发人员凭证
JavaScript数据包旨在从所感染的项目中窃取环境变量如开发人员的凭证,并将它们上传至受攻击者控制的服务器npm.hacktask.net中。
例如一个恶意数据包被命名为“crossenv”,专门跟一个真实存在的数据包“cross-env” 混淆。从中可看出,真正的危险来自下载量近700的crossenv数据包,另外还有从jquery误植域名中暴露。但即使在那个案例中,多数下载量来自要求16个crossnv版本副本的反射器。估计crossenv的真实安装量最多只有50次或者更少。
瑞典开发人员OscarBolmsten发现了crossenv数据包中的恶意代码并通过推特在8月1日告知npm。
深入调查后,npm认为crossenv数据包所使用的一个JavaScript ObjectNotation 配置文件正在运行一个脚本,将开发者凭证转换为可通过POST请求发送给npm.hacktask.net的字符串。Npm表示,“如果你下载并安装了这些数据包中的任意一个,你应该立即撤销并替代在shell环境中的所有凭证。”
防范措施
为了避免再次发生类似攻击,npm表示正在支持Life Security和Node Security Project并且针对公共注册包实施静态分析。Npm博客文章指出,“我们正在讨论检测并阻止出现跟现有数据包名称非常类似的情况。可通过编程方式检测这类情况,而且可通过这些方法阻止出现类似名称。”
本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士www.codesafe.cn”。