今年3月,Unit 42的研究人員在Python Package Index(PyPI)包管理器上發現了6個惡意包。惡意軟件包旨在竊取Windows用戶的應用程序憑據、個人數據和加密錢包的跟踪信息。該攻擊試圖模仿攻擊組織W4SP,該組織此前曾使用惡意軟件包發起過幾次供應鏈攻擊。
研究人員將討論攻擊者在開源生態系統中使用惡意包傳播惡意代碼的難易程度,他們觀察到的行為並不是由攻擊組織策劃的有組織的攻擊,而很可能是一個模仿者閱讀了以前攻擊的技術報告來執行他們自己的攻擊。
研究人員將描述Palo Alto Networks Prisma Cloud模塊使用的指標,這些指標識別了本文討論的惡意軟件包。 Palo Alto Networks的客戶可以通過Prisma Cloud獲得包含惡意代碼的開源軟件包的保護。
惡意軟件包是故意設計用於對計算機系統或其處理的數據造成損害的軟件組件。此類軟件包可以通過各種方式傳播,包括釣魚電子郵件、被攻擊的網站甚至合法的軟件存儲庫。
惡意軟件包可能會產生很大的破壞力,包括偷偷竊取敏感數據到導致系統中斷,甚至控制整個系統。此外,這些惡意軟件包具有傳播到其他互聯繫統的能力。因此,在進行軟件下載和安裝時,尤其是在源代碼不熟悉或不受信任的情況下,務必格外小心。
通過保持警惕和洞察力,用戶可以保護他們的系統,並防止攻擊者滲透到他們的技術環境。
在PyPI中發現新的惡意包2023年3月,Prisma Cloud研究人員在PyPI軟件包管理器上發現了6個針對Windows用戶的惡意軟件包。惡意軟件包旨在竊取應用程序憑據、個人數據和加密貨幣錢包信息。
研究人員的Prisma Cloud引擎,旨在檢測惡意PyPI包,發現幾個在短時間內上傳的具有可疑屬性的包:
這些軟件包缺少相關的GitHub存儲庫,它通常與合法軟件包一起使用。這可能表明希望從視圖中隱藏代碼。另外,再加上有限的下載量,進一步引起了研究人員的懷疑;
在執行時,這些包執行惡意操作,例如收集敏感數據並將其發送到第三方URL;
這些包包含一個惡意代碼模式,目前已檢測到了它;
因為包的開發者是新創建的,只上傳了一個包,並且沒有提供支持信息,例如到其他項目或任何存儲庫的鏈接,所以他們不被認為是有信譽的;
最後,包開發者的用戶名是在幾分鐘內創建的,遵循一個獨特的模式(例如,Anne1337、Richard1337),每個用戶名只上傳了一個包。
第二階段的攻擊與我們之前看到的W4SP攻擊群的攻擊相似。該組織專門利用開源生態系統中的漏洞,針對組織和傳播惡意軟件。他們的主要目標是獲得對敏感信息(如用戶憑據和財務數據)的未經授權的訪問權限。他們經常使用自動化工具來掃描漏洞並試圖利用它們。除了傳統攻擊外,W4SP攻擊者還執行供應鏈攻擊。
檢測結果Prisma Cloud引擎檢測到被標記為可能包含惡意代碼的包。每個包都包含一個指向可疑遠程URL的鏈接,試圖在單個用戶單獨上傳後下載內容。
每個上傳包的用戶的用戶名都是在上傳前創建的,之前沒有任何上傳包的歷史記錄。每個包都有數百次下載,直到研究人員的研究團隊報告了濫用行為,PyPI才將它們和上傳它們的欺詐性用戶帳戶刪除。
研究人員分析了代碼並試圖找到開發者。研究人員在每個包開發者的用戶名中發現了一個模式,他們使用“1337”作為後綴,這表明某些自動過程創建了這些用戶,下圖1顯示了其中一個用戶名的開發者頁面。
惡意包
PyPI的開發者頁面
自定義包入口點這次攻擊類似於研究人員之前看到的W4SP攻擊組織的攻擊,此文詳細介紹了這一攻擊。這些相似之處讓研究人員相信這是一次模仿。
但此次攻擊沒有真正的W4SP攻擊那麼複雜,例如:
沒有針對任何組織;
惡意軟件包沒有像W4SP攻擊所預期的那樣,使用常見流行軟件包的輸入錯誤;
第二階段的攻擊沒有加密,在來自W4SP的真正攻擊中,這個階段是加密的,這使得檢測更加困難;
W4SP在以前的攻擊中使用的大部分代碼已經可以下載,因此可以很容易地訪問和重新利用;
在之前的攻擊中,W4SP 竊取程序作為從免費文件託管服務下載的第二階段有效載荷傳播,這使得攻擊者可以避免在包存儲庫中進行檢測。
這些包沒有包含明顯的惡意代碼,而是精心設計的,以具有在安裝或執行過程中觸發的特定入口點。通過利用免費文件託管服務和自定義入口點,攻擊者的目標是不被發現,這對負責檢測和防禦此類攻擊的安全專業人員和研究人員構成了重大挑戰。
這些攻擊很容易實現,並且可以在幾乎沒有安全專業知識的情況下發起。但是,它們可能非常有效,因為安裝過程會自動執行攻擊,而不是在使用導入模塊時需要攻擊者發起攻擊。
當軟件開發人員想要使用Python包時,他們必須執行兩個操作。第一個步是安裝包,第二個步是在代碼中導入或聲明以使用它。正如接下來討論的那樣,攻擊代碼實際上是從安裝文件(setup.py)中開始的,這意味著在安裝包期間已經執行了攻擊。
在研究人員調查的示例中,攻擊者稱自己為@EVIL$竊取程序。然而,該名稱隨著每次攻擊而改變。以下是代碼簽名中的名稱集合:
ANGEL竊取程序
Celestial竊取程序
Fade竊取程序
Leaf $tealer
PURE竊取程序
Satan竊取程序
@skid 竊取程序
惡意代碼setup.py文件在所有包中都是相同的,並且包含以下代碼片段,用於在執行之前從遠程URL下載內容:
Setup.py(第一階段)惡意代碼
上圖顯示了以下活動:
1.攻擊者使用_ffile對象創建臨時文件,並使用write方法寫入文件的內容,使用帶有NamedTemporaryFile函數的臨時文件是一種眾所周知的技術,可以隱藏惡意代碼,使其不被殺毒軟件或其他安全措施檢測到;
2.文件的內容是通過使用urlopen函數從urllib下載URL的內容獲得的。請求模塊,然後使用exec函數執行文件的內容;
3.在寫完臨時文件的內容後,將關閉該文件,並嘗試在系統shell中使用start命令執行它。如果成功,將調用setup函數來創建包。然後攻擊者使用start命令啟動Python引擎的可執行文件(pythonw.exe),之後這個可執行文件將執行作為參數傳遞的腳本文件。由於該惡意軟件包針對Windows用戶,如果腳本文件未簽名,則不會受到SmartScreen (Windows安全功能,用於檢測和防止潛在惡意文件的執行)或簽名檢查的影響。這意味著它將在目標計算機上執行惡意代碼,即使目標計算機啟用了SmartScreen和簽名檢查。
第二階段:W4SP竊取程序根據研究人員的研究,在第二階段,攻擊者使用了配置版本的W4SP竊取程序1.1.6。這個版本類似於以前的版本,其中代碼導入了幾個庫,包括requests, Crypto.Cipher, json和sqlite3。然後,它使用各種技術提取和解密存儲的瀏覽器憑據,包括密碼和cookie,並將這些信息發送到Discordwebhook。
代碼的主體定義了一個類DATA_BLOB,用於存儲CryptUnprotectData函數的數據。此函數用於解密受Windows數據保護API(DPAPI)保護的值,該值用於存儲密碼和API密鑰等敏感數據。代碼嘗試使用CryptUnprotectData和DecryptValue函數解密一個值,然後通過Discord webhook將其發送到遠程服務器,如下圖所示。
嘗試解密Windows數據保護API(DPAPI)保護的值
下圖顯示了攻擊者試圖收集受害者信息的幾個惡意代碼示例。如下圖所示,攻擊者試圖收集受害者的信息,包括IP地址、用戶名、國家/地區代碼。
檢索有關用戶IP地址、位置和用戶名等信息的代碼
在下圖中,攻擊者與Discord API交互,以檢索用戶的好友列表並提取有關他們自己的標識信息。
用於在Discord上檢索用戶好友列表的代碼
在稍後的代碼中,他們嘗試使用事先準備好的Discord webhook,然後嘗試通過HTTP請求將受害者信息發送到相關的Discord通道。
Discord webhook
最後,如下圖所示,攻擊者試圖驗證受害者的設備是否適合執行攻擊。如果確定該設備是合適的,則DETECTED變量將被設置為true,並且來自受害者設備的信息將被發送到遠程服務器。
搜索Cookie的代碼
PyPI作為一個上傳惡意軟件包的便捷平台PyPI是一個備受信賴且廣受歡迎的存儲庫,擁有數量驚人的Python包,在PyPI領域內,出現了一個令人擔憂的現實。該存儲庫無與倫比的受歡迎程度無意中成了攻擊者使用的對象,他們試圖通過秘密傳播惡意軟件包來利用其龐大的用戶群。
這種令人不安的趨勢對安全提出了一個重大挑戰,因為PyPI的去中心化性質使監測和檢測這些惡意對象成為一項艱鉅的工作。成為此類惡意軟件包受害者的後果會對毫無戒心的用戶和企業造成嚴重後果,例如數據、憑證或加密被盜。因此,加強PyPI包的安全性是至關重要的。
PyPI於2023年5月20日宣布,由於平台上惡意活動,惡意用戶和項目的增加,他們暫時停止註冊和上傳新軟件包。
凍結新用戶和項目註冊的決定反映了像PyPI這樣的軟件註冊中心面臨的安全挑戰,因為它們已經成為尋求篡改軟件供應鏈攻擊者的目標。
總結開源軟件的興起和普及以及包管理器的激增,使攻擊者比以往任何時候都更容易將這些危險的包植入用戶的系統。隨著軟件在我們日常生活中越來越普遍,惡意軟件包的威脅變得更加嚴重。攻擊者可以將這些軟件包偽裝成合法軟件,並利用毫無戒心的系統中的漏洞,造成數據盜竊、系統關閉和網絡控制等重大損害。
為了防禦這種威脅,軟件開發人員和組織必須在開發過程中優先考慮軟件安全性。增加了安全措施,例如代碼審查、自動化測試和滲透測試,可以幫助在部署之前識別和修復漏洞。此外,保持最新的安全補丁和更新可以防止攻擊者利用已知的漏洞。
除了技術措施外,提高對軟件安全的認識和教育也有助於防禦惡意軟件包的風險。為開發人員、IT人員和最終用戶提供關於最佳安全實踐的定期培訓很有必要。安全專業人員、開發人員和用戶共同努力以確保識別並防止惡意軟件包對系統和網絡造成損害。
Recommended Comments