情报背景
近期,Phylum检测到数十个新发布的Pypi软件包执行供应链攻击,在这些软件包中,通过隐藏的__import__将窃取程序投递到开发人员的机器上。攻击者利用代码审核者所使用IDE默认的不换行代码显示设置隐藏自身的行为与载荷,本文将就其中出现的供应链攻击技术及其演进进行分析。
组织名称 | 未知 |
相关工具 | W4SP |
战术标签 | 初始访问 |
技术标签 | 开源代码仓库 源代码投毒 |
情报来源 | https://blog.phylum.io/phylum-discovers-dozens-more-pypi-packages-attempting-to-deliver-w4sp-stealer-in-ongoing-supply-chain-attack |
01 攻击技术分析
亮点:巧妙隐藏于在代码行末的载荷
攻击者在setup.py文件中通过命令执行安装原版的库
在setup.py中安装原本的typesutil库
攻击者将本应写在requirements.txt中的依赖库在代码中直接使用命令进行安装,将自身隐藏在正版库身后。在这段代码的末尾,攻击者植入了恶意代码片段:
恶意代码植入
攻击者用分号将恶意代码片段串联成一行放于行末,展开如下:
被植入的代码在安装脚本中从远端拉取Python脚本,并利用pythonw.exe执行,以实现在不打开控制台窗口的前提下,静默执行恶意代码。
可能是由于基于URL的检测技术的应用,攻击者改进了攻击方式。在改进后的版本中,攻击者将有效载荷的数据直接存放在代码文件中。利用IDE一般以不换行格式查看的特点,将有效载荷藏匿于正常代码中。表面上拉取的代码如下:
攻击者声称代码被Hyperion混淆,实际上代码文件已经被植入了有效载荷:
恶意载荷数据隐藏于行末
攻击者利用分号将恶意代码隐藏在合法代码的行末。有效载荷被分装为14个压缩字节对象,这些对象通过后续的调用,解压后以某种指定的顺序保存为文件,最终完成W4SP窃取程序的组装与落地。
在先前的供应链攻击中,攻击者往往通过在代码文件中植入载荷下载代码等完成攻击。但在本次事件中,攻击者通过将有效载荷分段隐藏在行末,并利用代码进行组装落地。一方面,由于IDE的特性,这种形式的代码不容易被发现;另一方面,通过执行代码拉取远端植入了载荷的代码,在本地执行时组装落地,降低了被检测的几率。
02 总结
引入开源组件降低开发成本已是当前主流的开发方式,但开源社区的开放性与有限的维护资源,导致恶意代码注入的攻击可被实施,用于突破企业防御边界。供应链攻击近年来热度居高不下,对供应链代码的安全检验也逐渐受到重视。
在现网攻击中,在供应链上的利用也逐渐增多。PyPI、npm等常用开源软件生态系统作为供应链攻击的高发区,在使用时要格外注意代码安全性。在本次事件中,攻击者利用代码文件不换行执行的特点,将恶意载荷隐藏在代码行末,不易被发现。若未及时发现,将导致使用该开源代码库的下游软件都被植入恶意载荷,这对于供应链代码安全审计与检测提出了更高的要求。
绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。
研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。
M01N Team公众号
聚焦高级攻防对抗热点技术
绿盟科技蓝军技术研究战队
官方攻防交流群
网络安全一手资讯
攻防技术答疑解惑
扫码加好友即可拉群
往期推荐