資安公司Checkmarx揭露了一起眾多GitHub儲存庫,遭自動化注入惡意程式碼的攻擊事件,攻擊者竊取受害者的GitHub個人存取令牌,並用以貢獻惡意程式碼到儲存庫中。這次攻擊事件規模龐大,除了公開儲存庫之外,也影響一些私人儲存庫,因此研究人員推測攻擊是一個自動化過程。

攻擊者透過GitHub免費軟體專案自動化相依管理工具Dependabot,進行自動貢獻,試圖掩蓋惡意活動。Dependabot工具會持續監控諸如函式庫和套件等專案相依項目,發現存在安全漏洞或是過時的程式碼版本,Dependabot會自動產生拉取請求,協助開發人員保持軟體的安全性和最新狀態。

而這起攻擊事件發生在今年7月8日到11日間,攻擊者入侵數百個GitHub儲存庫,透過偽造提交訊息(下圖),使開發者相信其為真正的Dependabot貢獻,並忽略該活動。攻擊總共可分為三個階段,首先是工作區域的初始化,研究人員解釋,開發者要進行Git操作就必須使用個人存取權杖設置開發環境,而這個權杖會被儲存在開發者機器上,很容易被擷取,由於這些存取權杖不需要雙因素驗證,因此只要擁有網際網路連接,就可以使用這些權杖存取帳戶。

圖片來源_Checkmarx

第二階段則是竊取憑證,研究人員目前還不確定攻擊者如何獲取開發者憑證,但是他們猜測最有可能的情境,是受害者被惡意軟體套件感染,再由惡意軟體套件將權杖上傳到攻擊者的C2伺服器。最後階段便是利用竊取來的存取權杖,通過GitHub身分驗證對儲存庫注入惡意程式碼,而且考慮其攻擊的規模,研究人員推斷該攻擊採用了自動化程式。

圖片來源_Checkmarx

注入的惡意程式碼會將GitHub專案中定義的機密,傳送到C2伺服器。具體方法是惡意程式會修改被攻擊專案中任何的JavaScript檔案,修改過後的程式碼會竊取網頁表單密碼,也就是終端使用者在網頁表單中只要輸入並提交密碼時,這些機密資訊就會被竊取,傳送到攻擊者的C2伺服器。

Checkmarx提醒開發者,即便在GitHub這樣的可信任平臺,也要謹慎注意程式碼的來源。之所以攻擊者能夠成功發動攻擊,便是因為許多開發者在看到Dependabot訊息時,並不會仔細檢查實際變更內容,而且由於權杖存取日誌僅有企業帳戶可用,因此非企業用戶也無法確認權杖是否遭濫用。

研究人員建議,使用者可以考慮採用GitHub精細個人存取權杖(下圖),透過限縮每個權杖的權限,來降低當權杖洩漏時攻擊者所能造成的損害。

圖片來源_GitHub

熱門新聞

Advertisement