pip ssh-decorate供應鏈攻擊之技術分析

近日,國外媒體有安全人員爆出Python pip ssh-decorate被發現存在後門代碼!對,又是pip汙染。

pip是python的開源包資源庫。然而,這個開源庫的管理是十分鬆散的。尤其在安全方面並沒有嚴格的審核機制。一個用戶只需要一個email即可註冊賬戶,然後即可上傳其源文件到pip資源中。而這個pip資源是被世界上所有python用戶使用下載的。如果有人夾雜惡意代碼上傳了某個包,並以常見程序的名字命名,比如zip,ssh,smb,ftp。那麼當有用戶嘗試搜索並下載使用這個名字的包時,這個用戶就會中招,可謂神不知鬼不覺。這就是存在於pip中的供應鏈安全問題。回頭看,針對pip的攻擊已經並不新鮮,早在幾年前就有國外研究者進行過類似實驗。而真正讓大家重視起來是在2017年,國內白帽子也針對pip源進行了投毒測試,結果令人震驚,各大廠商主機紛紛被感染。但是無論如何,之前我們看到的全部都是以滲透測試為目的的pip汙染事件,而這次,我們看到的真正的backdoor!我們看一下其具體技術相關的內容。

ssh-decorate是一個github開源項目,其地址:https://github.com/urigoren/ssh_decorate。其功能應該是實現類似ssh client一樣的功能,python實現,提供一些更友好的接口。現在這個工程已經被原作者刪除乾淨,只有google cache中的可以看一下其之前的內容。在pypi上的ssh_decorate的地址是:https://pypi.org/project/ssh-decorate。當前的惡意包也已經被pypi移除,目前頁面也無法找到了。

這個backdoor的事件最早被爆出是reddit上的用戶發帖,並且貼出了惡意代碼片段,如圖1所示。從圖中可以看出,惡意代碼的實現是比較直接的,沒有代碼加密、混淆之類的對抗手段。主要的動作就是發送ssh服務器的用戶名,密碼,ip地址,端口,私鑰信息到遠程服務器。服務器地址:http://ssh-decorate.cf/index.php。這其中的很重要一點就是其收集了密碼和私鑰信息。有了這些信息,相當於盜取了ssh服務器的賬戶。再看這個攻擊者的服務器網址,可見域名還是有很大迷惑性的,使用ssh-decorate字符串。另外,有安全研究人員通過其DNS Record系統發現這個域名註冊時間是2018-05-08。也就是這次攻擊這個域名的存活期,其實還比較短。

pip ssh-decorate供應鏈攻擊之技術分析

pip ssh-decorate供應鏈攻擊之技術分析

pip ssh-decorate供應鏈攻擊之技術分析

通過對話,我們得出推測:urigoren的pypi賬號很可能被黑了。這樣導致,攻擊者利用他的賬號就可以push更新包到pypi,這就造成了github是好的代碼,但是pypi的包已經被汙染。經過這個事情,urigoren一氣之下(也許是驚嚇)刪除了github和pypi的所有相關repo。對於這個情況,Pypi之前已經我們提過,其安全很脆弱,其賬戶體系也是一樣的。當然,到底是原作者使用弱密碼還是pypi有其他弱點來讓攻擊者達到最後盜取其賬戶,這個我們暫時不得而知。但是,這是一種巧妙的攻擊方式。黑掉一個缺乏安全意識的開發者的賬戶並不那麼複雜,而這個開發者的背後可能掌管著世界級的開源應用的代碼更新權限。這又是一個相對低成本的攻擊。


分享到:


相關文章: