供應鏈攻擊技術欺騙 GitHub 提交元數據
開源軟件可幫助開發人員更快地創建應用程序,如果他們認為第三方代碼來自可靠來源,他們中的許多人可能會跳過對第三方代碼的適當審計。例如,他們可能會選擇積極維護的 GitHub 存儲庫或有信譽良好的個人作為貢獻者的存儲庫。
根據 Checkmarx 的說法,威脅參與者可以偽造一些與 GitHub 存儲庫相關的數據,以增強他們的跟蹤記錄,并使它們更有可能被應用程序開發人員選中。
具體來說,研究人員發現有人可能會篡改提交元數據,從而使存儲庫看起來比實際更舊,或者有信譽的貢獻者參與了其維護。
提交對于 Git 版本控制系統是必不可少的:它們記錄對文件所做的更改、這些更改是在何時進行的,以及是誰進行的。每個提交都有一個唯一的 ID 或哈希。
然而,根據 Checkmarx 的說法,人們可以以這樣一種方式操縱與提交相關的時間戳,即 GitHub 上列出的時間戳可以早于用戶提交的創建以及更改所針對的存儲庫的創建。
虛假提交可以自動生成并自動添加到用戶的 GitHub 活動圖中,這可能使惡意用戶看起來好像他們已經在代碼托管平臺上活動了很長時間。
“由于活動圖顯示了公共和私人存儲庫上的活動,因此不可能抹黑這些虛假提交,因此這種欺騙技術也很難檢測到,”Checkmarx 說。
此外,研究人員發現提交者的身份可以被欺騙,將提交歸因于真實的 GitHub 帳戶,例如平臺上的頂級貢獻者。
為此,惡意用戶需要檢索目標帳戶的電子郵件地址——如果開發人員選擇啟用該功能,通常會隱藏該地址——并使用特定命令將 Git CLI 中的用戶名和電子郵件設置為欺騙用戶的用戶名和電子郵件. 雖然這增加了 GitHub 存儲庫的聲譽,但被欺騙的用戶永遠不會被告知他們的名字被使用。
“為了使他們的項目看起來可靠,攻擊者可以使用這種技術一次或多次,并用已知的可靠貢獻者填充他們的存儲庫的貢獻者部分,這反過來使項目看起來值得信賴,”Checkmarx 指出。
GitHub 用戶可以使用提交簽名驗證功能對他們的提交進行加密簽名,但未簽名的提交不會被標記。
根據 Checkmarx 的說法,用戶可以啟用“警惕模式”,在該模式下顯示所有提交的驗證狀態,從而提高該功能的有效性。
“虛假元數據可能會誤導開發人員使用他們故意不使用的代碼,并且可能包含惡意代碼。缺乏對提交者身份和提交時間戳的驗證本身就是一個問題。