概述
悬镜供应链安全情报中心通过持续监测全网主流开源软件仓库,结合程序动静态分析方式对潜在风险的开源组件包进行动态跟踪和捕获,发现大量的开源组件恶意包投毒攻击事件。在2024年2月份,悬镜供应链安全情报中心在NPM官方仓库(https://www.npmjs.com)和Pypi官方仓库(https://pypi.org)共捕获503个不同版本的恶意组件包,其中NPM仓库投毒占比89.46%, Pypi仓库投毒占比10.54%,NPM仓库依旧是开源组件包投毒的重灾区。
2024年2月份投毒包每日统计
结合源代码分析、动态行为监控等方式,我们对2月份捕获的开源组件投毒包进行多维度分析,总结统计出主流的攻击方式和恶意行为标签。
投毒攻击方式主要包括:
-
恶意文件执行
-
代码混淆执行
-
恶意文件下载
-
shell命令执行
-
恶意文件释放
其中,恶意文件执行是最常用的攻击方式(占比78.13%),其主要攻击流程是利用开源组件包管理器在安装组件包过程中利用自定义的恶意指令来加载并执行内置在组件包中的恶意文件(py、pyc、js、shell、pe、dll、elf、so等)。此外,在组件安装包中直接嵌入恶意shell命令(占比8.87%)、恶意文件下载(占比4.28%)及恶意文件释放后执行也是投毒者惯用的攻击手法。为了逃避安全检测,部分恶意包使用了代码编码、加密及混淆(占比7.61%)等方式进行恶意代码隐藏。
攻击方式统计
在所有投毒包的恶意行为中,窃取系统信息占比超过85%,信息窃取的主要目标是开发者系统的密码文件、用户信息、网络配置、系统版本、DNS服务器IP、系统外网IP、浏览器Cookie等敏感数据。其次,远控木马和反向shell后门攻击紧随其后(两者之和占比约10%)。此外,在2月里捕获到多起盗取数字钱包客户端敏感数据的投毒攻击。值得一提的是,我们在NPM组件投毒中首次捕获到通过添加Linux系统后门账户进行远程控制的攻击手段。
恶意标签统计
本节将从2月份捕获的开源组件恶意包中精选部分具有代表性的投毒样本进行分析,还原投毒者的攻击方式和细节。
Part1 敏感信息窃取
Python恶意包djanggo利用包名错误拼写(typo-squatting)来伪装成知名Python WEB组件django,以此迷惑混淆Python开发者误安装该恶意包。
知名Python组件django