据 freebuf 报导,近日有软件安全研究人员发现了 PyPI 上存在 12 个恶意库,其中包含的恶意代码可以导致安全隐患,比如开启后门、盗取比特币等。
据介绍,安全研究人员 Bertus 在对 PyPI 做安全扫描时发现了这些问题,他先后两次共发现了 12 个有问题的软件包,目前官方已经将它们都删除。
12 个软件包都是先是复制流行软件包的代码创建新库,并取相似的名称。例如其中的 diango、djago、dajngo 与 djanga 包都模仿了 Django。之后主要在安装文件 setup.py 中加入恶意代码。setup.py 文件包含一组指令,Python 库安装程序(如”pip”)在 Python 项目中下载和设置新包时会自动执行这些指令。
这些问题类库增加了额外指令执行各种恶意操作,并且每个库的内容有所不同。它们将尝试收集受感染机器的环境数据,并添加到自动启动,同时开启一个反向 shell 后门,一旦启动,恶意攻击者就能远程登陆该机器,并获得全部权限。
Bertus 前后两次发现了如下 12 个恶意软件包:
此外安全人员还指出了另一个恶意库 colourama,它会劫持了受感染用户的操作系统剪贴板,并每隔 500 毫秒扫描一个类似比特币地址的字符串,并将其替换为攻击者自己的比特币地址,这样感染用户在执行比特币的支付/转账操作的时候,比特币就会进入攻击者的账户。
上面是 setup.py 中插入的恶意行,请求一个地址,修改地址内容(base64加密):
最后复原的攻击载荷(Vbscript代码):
上面代码显示,在注册表 CurrentVersion\Run 开机启动项目增加自启动项目,并且增加了服务 BTCS 监控粘贴板并修改其中复制的类似比特币地址的字串。
不过据 PyPI 统计,由于及时发现和删除,只有 54 个用户下载了该软件包,攻击者的比特币账户也仅有 40 美元入账。