攻擊者利用開源代碼庫竊取密鑰
研究人員發現木馬化的Python和PHP包用于軟件供應鏈攻擊。

研究人員發現2個木馬化的PyPI包和PHP庫被用于軟件供應鏈攻擊。其中存在問題的Python包為ctx,惡意PHP庫為"phpass"。
ctx
其中ctx上次在PyPI的更新時間為2014年12月19日。

惡意ctx包上傳到PyPI的時間為2022年5月21日,目前已被移除。

惡意包是對原始包的修改,旨在竊取AWS憑證給名為'anti-theft-web.herokuapp[.]com'的Heroku URL。攻擊者嘗試獲取環境變量,以base64格式編碼,然后轉發數據到攻擊者控制的web APP。
研究人員懷疑攻擊者成功獲得了包(庫)的維護人員賬號的非授權訪問,并發布新版本的ctx。進一步調查發現,攻擊者在2022年5月14日注冊了原維護人員使用的過期的域名。

ctx 0.1.2和惡意ctx 0.2.6包的差別
攻擊者控制了原始域名后,就可以創建一個對應的郵件來接收密碼重置郵件。獲得賬戶的訪問權限后,攻擊者就可以刪除老版本的包,并上傳新版本的含有后門的包。
此外,2021年微軟和卡羅來納州立大學研究人員對163萬JS NMP包的元數據分析發現有2818個維護人員的郵件地址相關的域名過期了,攻擊者可以接管NPM賬戶并成功劫持8494個包。維護人員的域名過期后,攻擊者可以購買域名,修改DNS 郵箱交換MX記錄來盜用維護人員的郵箱地址。
Phpass
相比之下,phpass自2012年8月31日上傳到Packagist后未再更新。但是包所有者'hautelook'刪除了其賬戶,然后攻擊者重新注冊了該用戶名,也實現了庫劫持攻擊。截至目前,惡意phpass目前仍在GitHub可訪問https://github.com/hautelook/phpass/。
總結
Maven、NPM、Packages、PyPi和RubyGems等開源代碼庫是軟件供應鏈的關鍵部分,許多企業依賴這些軟件來開發應用。這同時也成為攻擊者的目標,用來傳輸惡意軟件。而開發人員默認是信任這些庫的,并從這些源安裝包。