Python安全团队从PyPI(Python软件包索引)中删除了两个木马化的Python库,这些库被发现从受感染的开发人员的项目中窃取SSH和GPG密钥。
这两个库是由同一位开发人员创建的,并模仿了其他更流行的库-使用一种称为错录的技术来注册外观相似的名称。
第一个是“ python3-dateutil ”,它模仿了流行的“ dateutil ”库。第二个是“ 水母 ”(第一个L是I),它模仿“ 水母 ”库。
这两个恶意克隆是由德国软件开发商Lukas Martini在12月1日星期日发现的。在Martini通知dateutil开发人员和PyPI安全团队之后的同一天,这两个库均被删除。
虽然python3-dateutil是在两天前创建并上传到PyPI上的,但从2018年12月11日起,jeIlyfish库在11月29日可用了将近一年。
窃取SSH和GPG密钥
根据Martini所说,恶意代码仅存在于jeIlyfish库中。python3-dateutil软件包不包含自己的恶意代码,但确实导入了jeIlyfish库,这意味着它通过关联是恶意的。
该代码下载并读取了存储在GitLab存储库中的哈希列表。这些哈希的性质和目的最初是未知的,因为在立即将库从PyPI中删除之前,Martini或PyPI团队都没有对行为进行深入的详细说明。
FebHost今天要求dateutil开发团队的成员Paul Ganssle仔细研究恶意代码,并为我们的读者提供一个正确的视角。
“直接在`jeIlyfish`库中的代码下载了一个名为'hashsum'的文件,该文件看起来像是从gitlab存储库中胡说八道,然后将其解码为Python文件并执行,” Ganssle告诉FebHost。
“看起来[此文件]试图从用户计算机中窃取SSH和GPG密钥,并将它们发送到以下IP地址:http : //68.183.212.246 : 32258。”
Ganssle补充说:“它还列出了一堆目录,主目录,PyCharm Projects目录。” “如果我不得不猜测这样做的目的是什么,我想说的是弄清楚凭据用于哪些项目,以便攻击者可以破坏该人的项目。”
建议开发商审查项目
这两个恶意库都是由同一位开发人员在PyPI上载的,该开发人员使用olgired2017用户名-也用于GitLab帐户。
据信,olgired2017创建了dateutil克隆,以利用原始库的流行性并扩大恶意代码的覆盖范围;但是,这也引起了更多开发人员的更多关注,并最终暴露了他的全部操作。
除恶意代码外,两个错别字的软件包都是原始库的相同副本,这意味着它们将像原始库一样工作。
不注意下载或导入到项目中的库的开发人员应检查是否使用了正确的软件包名称,并且没有意外使用错别字的版本。
如果他们不小心使用了两者中的任何一个,建议开发人员更改过去一年中使用的所有SSH和GPG密钥。