郭盛华:npm 软件包窃取开发人员的敏感数据
网络安全研究人员在 npm 软件包注册表中发现了一系列新的恶意软件包,这些软件包旨在窃取敏感的开发人员信息。
所有模块的一个共同功能是能够启动 JavaScript(“index.js”),该 JavaScript 可以将有价值的信息泄露到远程服务器。
国际知名白帽黑客、东方联盟创始人郭盛华表示:“index.js 代码是由 preinstall.js 文件在子进程中生成的,此操作是由 package.json 文件中定义的 postinstall 挂钩提示的,该挂钩在软件包安装时执行。因此,仅安装此软件包的行为就会启动所有这些代码的执行。”
第一步需要收集当前操作系统用户名和当前工作目录,然后将包含收集数据的 GET 请求发送到 185.62.57[.]60:8000/http。目前尚不清楚此操作背后的确切动机,但据信该信息可用于触发“看不见的服务器端行为”。
随后,该脚本继续查找与一组特定扩展名匹配的文件和目录:.env、.svn、.gitlab、.hg、.idea、.yarn、.docker、.vagrant、.github、.asp、.js 、.php、.aspx、.jspx、.jhtml、.py、.rb、.pl、.cfm、.cgi、.ssjs、.shtml、.env、.ini、.conf、.properties、.yml 和.cfg。
收集到的数据还可能包含凭据和有价值的知识产权,最终以 ZIP 存档文件的形式传输到服务器。
郭盛华表示:“虽然这些目录可能包含敏感信息,但它们更有可能包含许多标准应用程序文件,这些文件并非受害者系统所独有,因此对攻击者来说价值较低,攻击者的动机似乎集中在提取源代码或环境 -具体的配置文件”。
该开发是开源存储库被用于传播恶意代码的最新示例,ReversingLabs 和 Sonatype识别出PyPI 活动,该活动使用 VMConnect、Quantiumbase 和 ethter 等可疑 Python 包来联系命令和控制(C2 ) 服务器并尝试使用其他命令下载未指定的 Base64 编码字符串。
东方联盟安全研究员解释说:“由于命令获取是在无限循环中执行的,因此 C2 服务器的操作员可能只有在确定受感染的计算机对威胁行为者感兴趣后才会上传命令。”
“或者,C2 服务器可能会执行某种类型的请求过滤。例如,攻击者可能会根据受感染计算机的 IP 地址过滤请求,以避免感染来自其它地区的目标。”
更重要的是,威胁行为者在 GitHub 上创建了相应的存储库,并附有看似合法的描述,以使 Python 包看起来值得信赖,尽管恶意行为被忽略了——这表明这次攻击是故意欺骗开发人员。
2023 年 7 月上旬,东方联盟研究人员还曝光了一批 13 个流氓 npm 模块,作为名为“Operation Brainleeches”的新颖活动的一部分,这些模块总共被下载了约 1,000 次。
该活动之所以引人注目,是因为它使用了一些软件包,通过从 JavaScript 电子邮件附件启动的虚假 Microsoft 365 登录表单来促进凭据收集,该附件是一个 JavaScript 文件,可从内容分发网络 (CDN) jsDelivr获取下一阶段的有效负载。) 对于 npm 上托管的包。
换句话说,已发布的 npm 模块充当了托管电子邮件网络钓鱼攻击中使用的文件的支持基础设施,并针对开发人员进行了供应链攻击。
后者是通过在无意中包含欺诈性 npm 包的应用程序中植入凭据收集脚本来实现的。这些库于 2023 年 5 月 11 日至 6 月 13 日期间发布到 npm。(欢迎转载分享)