• 官方Python包索引中发现12个恶意的Python库
  • 发布于 1个月前
  • 42 热度
    0 评论

一名软件安全工程师已经识别出上传到官方Python包索引(PyPI)的12个包含恶意代码的Python库。
这12个包是由一位网名Bertus的安全工程师在两次不同的扫描中发现的,而且这些包在本文发表之前很久就从PyPI中删除了。
所有的包都放在一起,按照相似的模式工作。它们的创造者复制流行包的代码并创建了一个新的库,但是名字稍加修改。例如,4个包(diango, djago, dajngo, djanga)是Django的错误拼写,Django是一个非常流行的Python框架的名称。
这些恶意包背后的人向这些新创建但功能完整的项目增加恶意代码,更具体地说,向setup.py文件添加了恶意代码。Setup.py文件包含一组指令,Python库安装程序如“pip”在下载和设置Python项目内的新包时自动执行这些指令。
这个额外代码的本质是执行各种恶意操作,并且每一个恶意库都是不同的。
Bertus在10月13号发现第一组11个恶意包(见下表),在10月21号发现另一个恶意包。

第一组恶意库将尝试收集每个受感染环境的数据、获得boot persistence,甚至在远程工作站上打开反向shell。
第12个名为“colourama”的软件包出于金钱的目的,它劫持受感染用户的操作系统剪贴板,每隔500ms扫描一次类似于比特币地址的字符串,然后用攻击者自己的比特币地址替换该字符串,以试图劫持受感染用户的比特币支付/转账。
这个包也模仿了一个名为“colorama”的流行的Python库的名字。


根据PyPI Stats服务,54个用户在这个包移除前一个月下载了该包。 攻击者的比特币地址只包含价值40美元,上一次转账是在4月份收到的,这表明colourama包没有赚到钱。
“我向PyPI管理员提供包名,并且他们移除了该包,”Bertus在电子邮件采访中告诉ZDNet。“此外,未来包注册他们还屏蔽了colourama。”
研究人员告诉我们他发现了全部12个包,通过使用他自己创建的自动化系统,在PyPI存储库中扫描具有类似名称的包——技术上称为“typo-squatted”包。


Bertus说,他是在去年看到斯洛伐克国家安全局发出的安全警报,警告Python开发人员在PyPI上传了十个恶意Python库后,建立了扫描器。这些库也使用typo-squatted的名称,并等待用户出于意外或疏忽安装它们数周后才被取下。


Bertus告诉ZDNet:“目前,我专注于改进Python(PyPI) 扫描器,并且我将做更多的定期扫描”。
“我考虑过把我的研究成果用于其他存储库,比如RubyGems或JavaScript的npm,但是还没有时间去探索,”他补充道。“因为每种程序语言和存储库有一点不同,将它用于另一个存储库需要一些时间。”


当然,JavaScript的npm包库花费了Bertus一些时间。2017年8月,一个瑞典开发者发现38个typo-squattedJavaScript库上传到npm库。这些库中的恶意代码收集本地环境变量,并将数据上传到攻击者的服务器上。


用户评论