兩個惡意Python庫竊取SSH和GPG密鑰事件風險通告

發布時間 2019-12-05

事件概述


近日,Python安全團隊從PyPI(Python 的官方第三方軟件存儲庫)中刪除了兩個存在木馬后門的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-dateutil軟件包不包含自己的惡意代碼,但確實導入了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。



修復建議


這兩個惡意克隆是由德國軟件開發商Lukas Martini在12月1日星期日發現的。在Martini通知dateutil開發人員和PyPI安全團隊之后的同一天,這兩個庫均被刪除。建議日常安裝Python庫的時候注意名稱是否正確。


參考鏈接


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