近日,國外媒體有安全人員爆出Python pip ssh-decorate被發現存在後門代碼!對,又是pip污染。php
pip是python的開源包資源庫。然而,這個開源庫的管理是十分鬆散的。尤爲在安全方面並無嚴格的審覈機制。一個用戶只須要一個email便可註冊帳戶,而後便可上傳其源文件到pip資源中。而這個pip資源是被世界上全部python用戶使用下載的。若是有人夾雜惡意代碼上傳了某個包,並以常見程序的名字命名,好比zip,ssh,smb,ftp。那麼當有用戶嘗試搜索並下載使用這個名字的包時,這個用戶就會中招,可謂神不知鬼不覺。這就是存在於pip中的供應鏈安全問題。回頭看,針對pip的攻擊已經並不新鮮,早在幾年前就有國外研究者進行過相似實驗。而真正讓你們重視起來是在2017年,國內白帽子也針對pip源進行了投毒測試,結果使人震驚,各大廠商主機紛紛被感染。可是不管如何,以前咱們看到的所有都是以滲透測試爲目的的pip污染事件,而此次,咱們看到的真正的backdoor!咱們看一下其具體技術相關的內容。python
ssh-decorate是一個github開源項目,其地址:https://github.com/urigoren/ssh_decorate。其功能應該是實現相似ssh client同樣的功能,python實現,提供一些更友好的接口。如今這個工程已經被原做者刪除乾淨,只有google cache中的能夠看一下其以前的內容。在pypi上的ssh_decorate的地址是:https://pypi.org/project/ssh-decorate。當前的惡意包也已經被pypi移除,目前頁面也沒法找到了。git
這個backdoor的事件最先被爆出是reddit上的用戶發帖,而且貼出了惡意代碼片斷,如圖1所示。從圖中能夠看出,惡意代碼的實現是比較直接的,沒有代碼加密、混淆之類的對抗手段。主要的動做就是發送ssh服務器的用戶名,密碼,ip地址,端口,私鑰信息到遠程服務器。服務器地址:http://ssh-decorate.cf/index.php。這其中的很重要一點就是其收集了密碼和私鑰信息。有了這些信息,至關於盜取了ssh服務器的帳戶。再看這個攻擊者的服務器網址,可見域名仍是有很大迷惑性的,使用ssh-decorate字符串。另外,有安全研究人員經過其DNS Record系統發現這個域名註冊時間是2018-05-08。也就是此次攻擊這個域名的存活期,其實還比較短。github