2023-07-31 12:32:31來源:今日頭條
今年3月,Unit 42的研究人員在Python Package Index(PyPI)包管理器上發(fā)現(xiàn)了6個惡意包。惡意軟件包旨在竊取Windows用戶的應(yīng)用程序憑據(jù)、個人數(shù)據(jù)和加密錢包的跟蹤信息。該攻擊試圖模仿攻擊組織W4SP,該組織此前曾使用惡意軟件包發(fā)起過幾次供應(yīng)鏈攻擊。
(資料圖片)
研究人員將討論攻擊者在開源生態(tài)系統(tǒng)中使用惡意包傳播惡意代碼的難易程度,他們觀察到的行為并不是由攻擊組織策劃的有組織的攻擊,而很可能是一個模仿者閱讀了以前攻擊的技術(shù)報告來執(zhí)行他們自己的攻擊。
研究人員將描述Palo Alto Networks Prisma Cloud模塊使用的指標,這些指標識別了本文討論的惡意軟件包。Palo Alto Networks的客戶可以通過Prisma Cloud獲得包含惡意代碼的開源軟件包的保護。
惡意軟件包是故意設(shè)計用于對計算機系統(tǒng)或其處理的數(shù)據(jù)造成損害的軟件組件。此類軟件包可以通過各種方式傳播,包括釣魚電子郵件、被攻擊的網(wǎng)站甚至合法的軟件存儲庫。
惡意軟件包可能會產(chǎn)生很大的破壞力,包括偷偷竊取敏感數(shù)據(jù)到導(dǎo)致系統(tǒng)中斷,甚至控制整個系統(tǒng)。此外,這些惡意軟件包具有傳播到其他互聯(lián)系統(tǒng)的能力。因此,在進行軟件下載和安裝時,尤其是在源代碼不熟悉或不受信任的情況下,務(wù)必格外小心。
通過保持警惕和洞察力,用戶可以保護他們的系統(tǒng),并防止攻擊者滲透到他們的技術(shù)環(huán)境。
在PyPI中發(fā)現(xiàn)新的惡意包2023年3月,Prisma Cloud研究人員在PyPI軟件包管理器上發(fā)現(xiàn)了6個針對Windows用戶的惡意軟件包。惡意軟件包旨在竊取應(yīng)用程序憑據(jù)、個人數(shù)據(jù)和加密貨幣錢包信息。
研究人員的Prisma Cloud引擎,旨在檢測惡意PyPI包,發(fā)現(xiàn)幾個在短時間內(nèi)上傳的具有可疑屬性的包:
這些軟件包缺少相關(guān)的GitHub存儲庫,它通常與合法軟件包一起使用。這可能表明希望從視圖中隱藏代碼。另外,再加上有限的下載量,進一步引起了研究人員的懷疑;
在執(zhí)行時,這些包執(zhí)行惡意操作,例如收集敏感數(shù)據(jù)并將其發(fā)送到第三方URL;
這些包包含一個惡意代碼模式,目前已檢測到了它;
因為包的開發(fā)者是新創(chuàng)建的,只上傳了一個包,并且沒有提供支持信息,例如到其他項目或任何存儲庫的鏈接,所以他們不被認為是有信譽的;
最后,包開發(fā)者的用戶名是在幾分鐘內(nèi)創(chuàng)建的,遵循一個獨特的模式(例如,Anne1337、Richard1337),每個用戶名只上傳了一個包。
第二階段的攻擊與我們之前看到的W4SP攻擊群的攻擊相似。該組織專門利用開源生態(tài)系統(tǒng)中的漏洞,針對組織和傳播惡意軟件。他們的主要目標是獲得對敏感信息(如用戶憑據(jù)和財務(wù)數(shù)據(jù))的未經(jīng)授權(quán)的訪問權(quán)限。他們經(jīng)常使用自動化工具來掃描漏洞并試圖利用它們。除了傳統(tǒng)攻擊外,W4SP攻擊者還執(zhí)行供應(yīng)鏈攻擊。
檢測結(jié)果Prisma Cloud引擎檢測到被標記為可能包含惡意代碼的包。每個包都包含一個指向可疑遠程URL的鏈接,試圖在單個用戶單獨上傳后下載內(nèi)容。
每個上傳包的用戶的用戶名都是在上傳前創(chuàng)建的,之前沒有任何上傳包的歷史記錄。每個包都有數(shù)百次下載,直到研究人員的研究團隊報告了濫用行為,PyPI才將它們和上傳它們的欺詐性用戶帳戶刪除。
研究人員分析了代碼并試圖找到開發(fā)者。研究人員在每個包開發(fā)者的用戶名中發(fā)現(xiàn)了一個模式,他們使用“1337”作為后綴,這表明某些自動過程創(chuàng)建了這些用戶,下圖1顯示了其中一個用戶名的開發(fā)者頁面。
惡意包
PyPI的開發(fā)者頁面
自定義包入口點這次攻擊類似于研究人員之前看到的W4SP攻擊組織的攻擊,此文詳細介紹了這一攻擊。這些相似之處讓研究人員相信這是一次模仿。
但此次攻擊沒有真正的W4SP攻擊那么復(fù)雜,例如:
沒有針對任何組織;
惡意軟件包沒有像W4SP攻擊所預(yù)期的那樣,使用常見流行軟件包的輸入錯誤;
第二階段的攻擊沒有加密,在來自W4SP的真正攻擊中,這個階段是加密的,這使得檢測更加困難;
W4SP在以前的攻擊中使用的大部分代碼已經(jīng)可以下載,因此可以很容易地訪問和重新利用;
在之前的攻擊中,W4SP 竊取程序作為從免費文件托管服務(wù)下載的第二階段有效載荷傳播,這使得攻擊者可以避免在包存儲庫中進行檢測。
這些包沒有包含明顯的惡意代碼,而是精心設(shè)計的,以具有在安裝或執(zhí)行過程中觸發(fā)的特定入口點。通過利用免費文件托管服務(wù)和自定義入口點,攻擊者的目標是不被發(fā)現(xiàn),這對負責(zé)檢測和防御此類攻擊的安全專業(yè)人員和研究人員構(gòu)成了重大挑戰(zhàn)。
這些攻擊很容易實現(xiàn),并且可以在幾乎沒有安全專業(yè)知識的情況下發(fā)起。但是,它們可能非常有效,因為安裝過程會自動執(zhí)行攻擊,而不是在使用導(dǎo)入模塊時需要攻擊者發(fā)起攻擊。
當(dāng)軟件開發(fā)人員想要使用Python包時,他們必須執(zhí)行兩個操作。第一個步是安裝包,第二個步是在代碼中導(dǎo)入或聲明以使用它。正如接下來討論的那樣,攻擊代碼實際上是從安裝文件(setup.py)中開始的,這意味著在安裝包期間已經(jīng)執(zhí)行了攻擊。
在研究人員調(diào)查的示例中,攻擊者稱自己為@EVIL$竊取程序。然而,該名稱隨著每次攻擊而改變。以下是代碼簽名中的名稱集合:
ANGEL竊取程序Celestial竊取程序Fade竊取程序Leaf $tealerPURE竊取程序Satan竊取程序@skid 竊取程序惡意代碼setup.py文件在所有包中都是相同的,并且包含以下代碼片段,用于在執(zhí)行之前從遠程URL下載內(nèi)容:
Setup.py(第一階段)惡意代碼
上圖顯示了以下活動:
1.攻擊者使用_ffile對象創(chuàng)建臨時文件,并使用write方法寫入文件的內(nèi)容,使用帶有NamedTemporaryFile函數(shù)的臨時文件是一種眾所周知的技術(shù),可以隱藏惡意代碼,使其不被殺毒軟件或其他安全措施檢測到;
2.文件的內(nèi)容是通過使用urlopen函數(shù)從urllib下載URL的內(nèi)容獲得的。請求模塊,然后使用exec函數(shù)執(zhí)行文件的內(nèi)容;
3.在寫完臨時文件的內(nèi)容后,將關(guān)閉該文件,并嘗試在系統(tǒng)shell中使用start命令執(zhí)行它。如果成功,將調(diào)用setup函數(shù)來創(chuàng)建包。然后攻擊者使用start命令啟動Python引擎的可執(zhí)行文件(pythonw.exe),之后這個可執(zhí)行文件將執(zhí)行作為參數(shù)傳遞的腳本文件。由于該惡意軟件包針對Windows用戶,如果腳本文件未簽名,則不會受到SmartScreen (Windows安全功能,用于檢測和防止?jié)撛趷阂馕募膱?zhí)行)或簽名檢查的影響。這意味著它將在目標計算機上執(zhí)行惡意代碼,即使目標計算機啟用了SmartScreen和簽名檢查。
第二階段:W4SP竊取程序根據(jù)研究人員的研究,在第二階段,攻擊者使用了配置版本的W4SP竊取程序 1.1.6。這個版本類似于以前的版本,其中代碼導(dǎo)入了幾個庫,包括 requests, Crypto.Cipher, json和sqlite3。然后,它使用各種技術(shù)提取和解密存儲的瀏覽器憑據(jù),包括密碼和cookie,并將這些信息發(fā)送到Discord webhook。
代碼的主體定義了一個類DATA_BLOB,用于存儲CryptUnprotectData函數(shù)的數(shù)據(jù)。此函數(shù)用于解密受Windows數(shù)據(jù)保護API(DPAPI)保護的值,該值用于存儲密碼和API密鑰等敏感數(shù)據(jù)。代碼嘗試使用CryptUnprotectData和DecryptValue函數(shù)解密一個值,然后通過Discord webhook將其發(fā)送到遠程服務(wù)器,如下圖所示。
嘗試解密Windows數(shù)據(jù)保護API(DPAPI)保護的值
下圖顯示了攻擊者試圖收集受害者信息的幾個惡意代碼示例。如下圖所示,攻擊者試圖收集受害者的信息,包括IP地址、用戶名、國家/地區(qū)代碼。
檢索有關(guān)用戶IP地址、位置和用戶名等信息的代碼
在下圖中,攻擊者與Discord API交互,以檢索用戶的好友列表并提取有關(guān)他們自己的標識信息。
用于在Discord上檢索用戶好友列表的代碼
在稍后的代碼中,他們嘗試使用事先準備好的Discord webhook,然后嘗試通過HTTP請求將受害者信息發(fā)送到相關(guān)的Discord通道。
Discord webhook
最后,如下圖所示,攻擊者試圖驗證受害者的設(shè)備是否適合執(zhí)行攻擊。如果確定該設(shè)備是合適的,則DETECTED變量將被設(shè)置為true,并且來自受害者設(shè)備的信息將被發(fā)送到遠程服務(wù)器。
搜索Cookie的代碼
PyPI作為一個上傳惡意軟件包的便捷平臺
PyPI是一個備受信賴且廣受歡迎的存儲庫,擁有數(shù)量驚人的Python包,在PyPI領(lǐng)域內(nèi),出現(xiàn)了一個令人擔(dān)憂的現(xiàn)實。該存儲庫無與倫比的受歡迎程度無意中成了攻擊者使用的對象,他們試圖通過秘密傳播惡意軟件包來利用其龐大的用戶群。
這種令人不安的趨勢對安全提出了一個重大挑戰(zhàn),因為PyPI的去中心化性質(zhì)使監(jiān)測和檢測這些惡意對象成為一項艱巨的工作。成為此類惡意軟件包受害者的后果會對毫無戒心的用戶和企業(yè)造成嚴重后果,例如數(shù)據(jù)、憑證或加密被盜。因此,加強PyPI包的安全性是至關(guān)重要的。
PyPI于2023年5月20日宣布,由于平臺上惡意活動,惡意用戶和項目的增加,他們暫時停止注冊和上傳新軟件包。
凍結(jié)新用戶和項目注冊的決定反映了像PyPI這樣的軟件注冊中心面臨的安全挑戰(zhàn),因為它們已經(jīng)成為尋求篡改軟件供應(yīng)鏈攻擊者的目標。
總結(jié)開源軟件的興起和普及以及包管理器的激增,使攻擊者比以往任何時候都更容易將這些危險的包植入用戶的系統(tǒng)。隨著軟件在我們?nèi)粘I钪性絹碓狡毡?,惡意軟件包的威脅變得更加嚴重。攻擊者可以將這些軟件包偽裝成合法軟件,并利用毫無戒心的系統(tǒng)中的漏洞,造成數(shù)據(jù)盜竊、系統(tǒng)關(guān)閉和網(wǎng)絡(luò)控制等重大損害。
為了防御這種威脅,軟件開發(fā)人員和組織必須在開發(fā)過程中優(yōu)先考慮軟件安全性。增加了安全措施,例如代碼審查、自動化測試和滲透測試,可以幫助在部署之前識別和修復(fù)漏洞。此外,保持最新的安全補丁和更新可以防止攻擊者利用已知的漏洞。
除了技術(shù)措施外,提高對軟件安全的認識和教育也有助于防御惡意軟件包的風(fēng)險。為開發(fā)人員、IT人員和最終用戶提供關(guān)于最佳安全實踐的定期培訓(xùn)很有必要。安全專業(yè)人員、開發(fā)人員和用戶共同努力以確保識別并防止惡意軟件包對系統(tǒng)和網(wǎng)絡(luò)造成損害。
關(guān)鍵詞:
今年3月,Unit42的研究人員在PythonPackageIndex(PyPI)包管理器上發(fā)現(xiàn)
從毫無存在感到無人不談,大型語言模型(LLM)的江湖地位在這幾年發(fā)生
隨著2023年的臨近,數(shù)據(jù)中心冷卻的未來正在由許多新興趨勢和技術(shù)塑造。
“報告很長,內(nèi)容很散”是很多經(jīng)營分析的問題。因為相當(dāng)多的經(jīng)營分析報
《電鰻財經(jīng)》文 楊力寶萊特發(fā)布的2023年上半年的業(yè)績報告顯示,該公司
據(jù)媒體7月30日報道,李玟離世后,二姐李思林當(dāng)日首度露面錄制《大笪地
公共云的按需定價模式對于實現(xiàn)應(yīng)用程序的可擴展性(云計算的關(guān)鍵優(yōu)勢)至
「作為一位FAIR研究科學(xué)家,我將于2024年加入麻省理工學(xué)院(MIT)電氣
ChatGPT作為行業(yè)領(lǐng)先的基于大型語言模型(LLM)的聊天機器人,引起了科
「Python中的GIL將不復(fù)存在,這是人工智能生態(tài)系統(tǒng)領(lǐng)域中的巨大勝利。
企業(yè)在試圖保護其數(shù)據(jù)和存儲系統(tǒng)時面臨越來越多的挑戰(zhàn)。然而,零信任存
智通財經(jīng)獲悉,體育用品股繼續(xù)走高,截至發(fā)稿,特步國際(01368)漲6 09%
中工網(wǎng)訊7月23日至28日,河南省洛陽市總工會舉辦河洛工匠后備人才培訓(xùn)
【開盤】A股三大股指集體大幅跳空高開,牛市旗手券商股持續(xù)走強,股指,a
1、引言開發(fā)者在編碼效率和快速迭代中的痛點場景包括:1 修改代碼后,