安全企業(yè)Checkmarx新一波的PyPI惡意組件攻擊,黑客主要的目標是使用Telegram、AWS、阿里云的開發(fā)人員。
研究人員自今年9月,看到有人上傳一系列惡意PyPI組件,但特別的是,這些組件的惡意程序代碼不會在開發(fā)人員安裝時執(zhí)行,黑客將惡意腳本嵌入組件深處,必須在組件執(zhí)行過程調用特定的功能函數,才會觸發(fā)。研究人員指出,由于許多安全工具會掃描自動執(zhí)行的惡意腳本,但遇上這種手法可能沒輒。
他們舉出其中一款名為Telethon2的惡意組件為例,黑客模仿已被下載6,900萬次的熱門組件Telethon,并引用此組件GitHub存儲庫的統計數據內容。但攻擊者并非將惡意程序代碼埋入安裝指令文件,而是篡改Telethon的程序代碼內容,在telethon/client/messages.py嵌入兩行指令,使得惡意程序代碼在該組件調用發(fā)送消息的功能才會啟動。
而為了引誘開發(fā)人員上當,攻擊者不光使用了模仿域名(Typosquatting)的手段,還讓這些惡意組件看起來相當受歡迎,由于開發(fā)人員在挑選組件的過程,往往會參考GitHub統計的數據,攻擊者刻意將PyPI組件連接GitHub上面不相關組件的存儲庫,導致開發(fā)人員可能誤以為此組件的程序代碼具有相當影響力而降低戒心,研究人員將此攻擊手法稱作Starjacking。
什么是Starjacking?簡單來說,在開源組件的開發(fā)人員工作流程其中,很可能會利用GitHub托管項目的程序代碼,然后再將組件上傳到NPM、PyPI來供其他開發(fā)人員運用。而NPM、PyPI組件庫的用戶,往往會參考GitHub的統計數據,來判斷組件是否受到歡迎,作為挑選組件的依據。
然而,研究人員指出,這些組件存儲庫顯示的數據通常沒有經過驗證,也很容易偽造,而這種手法就是將攻擊者的組件,與GitHub上相當熱門、獲得良好GitHub Stars評價的項目進行連接,從而讓下載組件的用戶誤以為組件來自具有相當影響力的GitHub項目。
而對于受害者的身份,研究人員指出近半數字于美國(44.61%),其次是中國(16.37%)、香港(4.44%)、新加坡(4.44%)。