两个恶意Python库窃取SSH和GPG密钥事件风险通告

发布时间 2019-12-05

事件概述


近日,Python安全团队从PyPI(Python 的官方第三方App存储库)中删除了两个存在木马后门的Python库,这些库被发现从被感染这些库的开发人员的项目中窃取SSH和GPG密钥。


这两个库是由同一位开发人员Olgierd创建的,使用一种称为错录的技术来注册外观相似的名称。第一个植入了木马的库名是python3-dateutil,它模仿了流行的python dateutil库,在名称前面假装是python3版本混入Pypi中。第二个是“jeIlyfish”(第一个l写成I),它模仿“jellyfish ”库。虽然python3-dateutil是在前几天创建并上传到PyPI上的,但从2018年12月11日起,jeIlyfish库在11月29日可用了将近一年。



根据安全研究人员所说,恶意代码仅存在于jeIlyfish库中。



而python3-dateutilApp包不包含自己的恶意代码,但确实导入了jeIlyfish库,这意味着它通过调用是可以触发恶意行为的。


jeIlyfish/_jellyfish.py中的恶意代码:



解码后:



打开短链接http://bitly.com/25VZxUbmkr,也就是


https://gitlab.com/olgired2017/aeg_wandoo_dag_m3/raw/master/hashsum,其中代码下载并读取了他存储在GitLab存储库中的哈希列表。然后通过读取那些Hash列表将其解码为Python文件并实行。


如下图所示,其试图从用户计算机中窃取SSH和GPG密钥,并将它们发送到以下IP地址:http://68.183.212.246:32258。



修复建议


这两个恶意克隆是由德国App开发商Lukas Martini在12月1日星期日发现的。在Martini通知dateutil开发人员和PyPI安全团队之后的同一天,这两个库均被删除。建议日常安装Python库的时候注意名称是否正确。


参考链接


https://github.com/dateutil/dateutil/issues/984