資安業者Wiz研究團隊揭露名為CodeBreach的供應鏈風險,指出AWS管理的4個開源GitHub儲存庫,因專案層級的自動化建置觸發條件設定疏漏,存在外部人士可觸發建置並進一步取得儲存庫管理權限的可能性。

AWS表示接獲通報後已完成修補並輪替相關憑證,檢視建置紀錄與CloudTrail稽核紀錄後未發現遭濫用,且不影響客戶環境與AWS服務,AWS也強調這是各專案設定問題,並非CodeBuild服務本身漏洞。

該風險主要來自這些儲存庫與AWS持續整合建置服務CodeBuild的觸發流程有關,研究人員解釋,開源專案常在有人提出拉取請求時自動測試與建置,但要是建置環境持有可寫入儲存庫或發布套件的高權限憑證,就必須避免不受信任的程式碼直接進入特權流程。

此次疏漏在於限制觸發者的webhook過濾規則,由於這些專案以ACTOR_ID條件建立允許名單,ACTOR_ID指的是GitHub使用者ID的數字而非帳號名稱。問題出在允許名單以正規表示式撰寫,卻缺少起始^與結尾$錨點,導致只要攻擊者取得一個包含既有維護者ID的較長新ID,就可能繞過比對並觸發原本僅開放維護者使用的特權建置流程。

研究團隊也提到,部分CodeBuild專案曾開啟公開儀表板,外部人士可從建置頁面看到觸發條件與建置紀錄,使攻擊者更容易評估哪些專案存在風險。研究人員以AWS SDK for JavaScript v3的儲存庫aws/aws-sdk-js-v3為例指出,一旦攻擊者能觸發建置,就可能在建置環境中取得用於連線GitHub的存取權杖,並把權限擴大到儲存庫管理層級,進而推送程式碼或存取機密資訊。由於該SDK是大量專案相依的基礎函式庫,也是AWS管理控制臺使用的重要元件,供應鏈竄改疑慮因此被放大。

除aws/aws-sdk-js-v3外,研究團隊也點名aws/aws-lc、corretto/amazon-corretto-crypto-provider,以及awslabs/open-data-registry皆曾呈現相同類型的觸發條件設定問題。AWS表示除修正被點名儲存庫的規則並撤銷相關存取權杖外,也已稽核其他公開建置環境,避免同類問題在AWS開源專案中擴散。

熱門新聞

Advertisement