企業網站
企業網站 數千個 PyPI 套件面臨被稱為「Revival Hijack」的攻擊技術的風險,該技術利用平台包命名功能中的漏洞
曾經
- 亞歷克斯·斯克羅斯頓,安全編輯器
發表: 2024年9月4日 21:52
數千個利用開源Python套件索引(PyPI)軟體套件的應用程式可能面臨被惡意行為者劫持和更換的風險,從而導致重大供應鏈攻擊可能影響更多下游組織和用戶。
jFrog 的威脅研究人員表示,他們發現了針對 pingdomv3 軟體套件(SolarWinds 擁有的廣泛使用的 Pingdom 應用程式介面 (API) 網站監控服務的一部分)現場利用的技術,同時監控開源生態系統。科技名為「復興劫持」。
該技術本身的基本原理與拼寫錯誤類似,即威脅行為者利用常見的拼寫錯誤來註冊惡意網域。
在針對 pingdomV3 軟體包的複興劫持攻擊中,未公開的威脅參與者利用了 PyPl 功能,即從儲存庫中刪除或刪除軟體包時,其名稱立即再次使用。
顧名思義,這意味著該軟體包可以有效地被恢復並劫持以用於邪惡目的。
JFrog的惡意軟體研究團隊負責人、最終報告的合著者Brian Moussali表示,復興劫持技術特別危險,主要有以下三個原因。
首先,與誤植網域不同,該技術不依賴受害者在安裝惡意軟體包時犯錯。事實並非如此。
「復興劫持不僅僅是理論上的攻擊——我們的研究團隊已經看到它在野外被利用,」穆薩利說。現有的軟體包,從而可以將其安裝到目標系統,而無需對使用者的工作流程進行任何更改。
「PyPI 包的攻擊面正在不斷擴大。這裡採取了積極的危險措施,但用戶應始終保持警惕並採取預防措施來保護自己和 PyPI 社區,儘管存在這種劫持技術的行為。
Moussali 和他的合作研究員 Andrey Polkovnichenko 表示,根據刪除的 PyPI 軟體包的餐巾紙背面統計,多達 120,000 個可能被劫持。仍然超過22,000。
平均每月有 309 個 PyPI 項目被刪除,任何熱衷於利用復興劫持技術的人都會有源源不斷的潛在新受害者。
企業網站 pingdomV3 發生了什麼事?
就pingdomV3 而言,該軟體包的原始所有者似乎已經離開,最後一次更新是在2020 年4 月,然後是蠟燭沉默,直到2024 年3 月27 日,他們發送了一條簡短的更新,告訴用戶避免使用該軟體包,因為被放棄了。
幾乎現在,一位擁有 Gmail 地址的用戶發布了一個具有較新版本號的同名軟體包,聲稱它是重新開發的,並將其指向 GitHub 存儲庫。儲存庫實際上從未存在。
然後,在 4 月 12 日,當業主引入可疑的、經過 Base64 混亂的有效負載時,jFrog 的自動掃描器檢測到了奇怪的活動。包已於4月12日被PyPI完全刪除,並且其名稱已被禁止使用。
有效負載本身似乎是一個 Python 木馬惡意軟體,旨在發現它是否在 Jenkins CI 設定中運行,在這種情況下,它會攻擊者控制的 URL 執行 HTTP GET 請求。有效負載,這表明惡意行為者或想要延遲攻擊,或將其限制在特定的IP範圍內。
考慮到問題的潛在範圍,Moussali 和 Polkovnichenko 預算劫持下載次數最多的廢棄軟體包,並用空的、良性的軟體包替換它們,所有軟體包的版本號均為 0.0.0.1,以確保它們不會被意外地自動拉入。
幾天後回來查看,發現空的PyPI包已被下載超過20萬次。
當然,由於替換包是空的,因此不可能相信如此惡意行為者實際上每次都能實現程式碼執行,但「可以非常肯定地說」在大多數情況下他們會,穆薩利說。
企業網站 PyPI 的回應
據 jFrog 稱,PyPI 一直在考慮對已刪除的軟體包進行政策更改,以消除這一漏洞,但由於某種原因,兩年多的審議尚未得出任何結論。
它確實明確表示,在刪除時,該名稱將被釋放以供其他人使用,並且它還根據 OpenSSF 建議防止刪除特定版本的軟體包。
然而,穆薩利表示,雖然這很有幫助,但復興劫持技術的潛在範圍非常廣泛,因此需要採取更多行動。
“我們主張 PyPI 採用更嚴格的政策,完全禁止重複使用套件名稱,”他完全補充道。 “此外,PyPI 用戶在考慮升級到新的軟體包版本時需要認識到這種潛在的攻擊意圖。”
Endor Labs 的安全研究員 Henrik Plate 表示:「這種風險是真實存在的,並且取決於該軟體包的受歡迎程度。如果套件很久以前就被刪除了,那麼風險可能會降低,因為套件被刪除的時間越長,越來越多的開發人員和管道注意到它的不可用性並調整他們的依賴聲明。
「在這種情況下,值得注意的是,所提供的範例在刪除後不久就恢復了,這可能表明攻擊者監視了 PyPI 上的套件刪除。
「恢復已刪除的軟體包是一個已知問題,」他在電子郵件評論中告訴《周刊電腦》。了該服務: [AV-501] 懸掛參考和支援範例包括複雜的 GitHub 儲存庫、重新命名的 GitHub 儲存庫和複雜的 npm 套件。
Plate繼續表示,這強調了對軟體包儲存庫制定更嚴格的安全準則的重要性,例如OpenSSF建議的準則。
他說,對於防御者來說,使用內部套件應該開源套件來保護開發人員此類攻擊,這樣即使被刪除,它們仍然可用。在思科之前徹底審查新的、可能的惡意軟體包版本。
閱讀有關應用程式安全和編碼要求的更多信息
JFrog 收購增強了 MLOps 與 DevSecOps 的組合
經過: 貝絲·帕里索
JFrog-GitHub 合作專注於軟體供應鏈安全
經過: 妮可·拉斯斯科斯基
網域仿冒活動、惡意軟體包猛烈攻擊PyPI
經過: 亞歷山大·庫拉菲
Top.gg供應鏈攻擊凸顯微妙風險
經過: 亞歷山大·庫拉菲