新的研究發現,GitHub 上超過15,000 個Go 模組倉庫容易受到一種名為repojacking 的攻擊。
「VulnCheck公司技術長雅各布-貝恩斯(Jacob Baines)分享的報告中說:」由於GitHub用戶名變更,9,000多個軟體倉庫容易受到repojacking攻擊。 「超過6000 個版本庫容易因帳戶刪除而被重新劫持。
這些軟體來源總共包含了不少於800,000 個Go 模組版本。
Repojacking 是「repository」(儲存庫)和「hijacking」(劫持)的諧音,它是一種攻擊技術,可讓不良行為者利用帳戶用戶名的更改和刪除來創建一個具有相同名稱和預先存在的用戶名的儲存庫,從而發動開源軟體供應鏈攻擊。
今年6 月早些時候,雲端安全公司Aqua 透露,GitHub 上的數百萬個軟體倉庫很可能容易受到這種威脅的影響,並敦促進行名稱變更的組織確保仍擁有以前的名稱作為佔位符,以防止這種濫用。
以Go 程式語言編寫的模組特別容易受到repojacking 的攻擊,因為與npm 或PyPI 等其他軟體套件管理器解決方案不同,這些模組是分散的,因為它們會發佈到GitHub 或Bitbucket 等版本控制平台上。
「任何人都可以指示Go 模組鏡像和pkg.go.dev 快取模組的詳細信息,」貝恩斯說。 「攻擊者可以註冊新的未使用使用者名,複製模組倉庫,並向proxy.golang.org 和go.pkg.dev 發布新模組。
為了防止開發人員下載潛在的不安全軟體包,GitHub 採取了一項名為「流行版本庫命名空間退役」(popular repository namespace retirement)的應對措施,該措施可阻止使用退役命名空間名稱建立版本庫的嘗試,這些命名空間在所有者帳戶重新命名或刪除之前已被複製超過100 次。
但VulnCheck 指出,當涉及Go 模組時,這種保護措施並沒有用,因為模組鏡像會快取這些模組,從而避免了與儲存庫互動或複製儲存庫的需要。換句話說,可能有一些基於Go 的流行模組被克隆了不到100 次,從而造成了某種繞過。
「貝恩斯說:」不幸的是,減少所有這些repojackings是Go或GitHub必須承擔的責任。 「第三方無法合理註冊15000 個GitHub 帳戶。在此之前,Go 開發者必須了解他們使用的模組,以及模組來源的版本庫狀態。
拉索安全公司(Lasso Security)表示,它在Hugging Face和GitHub上發現了1681個暴露的API令牌,其中包括與谷歌、Meta、微軟和VMware相關的令牌,這些令牌有可能被利用來實施供應鏈、訓練資料投毒和模型竊盜攻擊。
原文文章,作者:xbear,如若轉載,請註明出處:https://cncso.com/tw/15000-go-module-repojacking-attack-on-github.html