行業新聞與博客

CodeBuild 缺陷使 AWS 控制枱供應鏈面臨風險

AWS CodeBuild 中的一個嚴重配置錯誤使得攻擊者能夠控制核心 AWS GitHub 存儲庫,包括支撐 AWS 控制枱的 JavaScript SDK 。

Wiz Research 將此次漏洞命名為 CodeBreach,它暴露了 AWS 管理的開源項目所使用的持續集成管道中的一個缺陷。通過利用該漏洞,未經身份驗證的攻擊者可以將惡意代碼注入到受信任的代碼庫中,從而為入侵 AWS 控制枱以及可能依賴於該控制枱的每個 AWS 賬户鋪平道路。

該漏洞源於 CodeBuild 處理拉取請求觸發器的方式。安全過濾器中的一個微小錯誤(僅缺少兩個字符)允許不受信任的拉取請求運行特權構建。攻擊者由此可以訪問存儲在構建內存中的 GitHub 憑據,並將權限提升至完全控制倉庫。

Wiz 公司表示,最敏感的目標是 AWS JavaScript SDK,這是一個廣泛使用的庫,為客户應用程序和 AWS 控制枱本身提供支持。該公司估計,66%的雲環境都包含該 SDK,這加劇了供應鏈攻擊的潛在影響。

一個小小的正則表達式錯誤如何導致巨大的風險

這些暴露的倉庫依賴於一個 ACTOR_ID 過濾器來限制哪些 GitHub 用户可以觸發構建。然而,Wiz 發現該過濾器是以非錨定正則表達式的形式實現的。這意味着,包含已批准 ID 作為子字符串的 GitHub 用户 ID 可以繞過此限制。

由於 GitHub 按順序分配數字用户 ID,Wiz 的研究人員能夠預測新 ID 何時會“覆蓋”受信任的維護者 ID 。他們利用 GitHub 應用的自動化創建功能,捕獲了能夠繞過過濾器並觸發構建的 ID 。

Wiz 成功演示了對 AWS/AWS-sdk-JS-v3 存儲庫的接管,通過竊取的憑證獲得了管理員級別的訪問權限。

至少還有三個其他 AWS 存儲庫存在同樣的漏洞,其中一個與 AWS 員工的個人賬户關聯。

AWS 響應和緩解措施

Wiz 於 8 月 25 日披露了調查結果,AWS 在 48 小時內解決了該問題。該公司對受影響的正則表達式過濾器進行了加固,撤銷了已泄露的憑證,並增加了保護措施以防止基於內存的憑證竊取。

AWS 還引入了一個新的 Pull Request Comment Approval 構建門,默認情況下會阻止不受信任的構建。

該公司在一份聲明中表示,“AWS 確定沒有對任何客户環境的機密性或完整性造成影響”,並補充説沒有發現惡意利用的證據。

Wiz 建議 CodeBuild 用户採取以下幾項防禦措施:

  • 阻止不受信任的拉取請求觸發特權構建

  • 使用權限最小的細粒度 GitHub 令牌

  • 錨點 webhook 過濾器正則表達式模式

該研究強調了 CI/CD 系統成為供應鏈攻擊目標的趨勢日益增長,此前發生了Nx S1ngularity 和 Amazon Q VS Code擴展程序被攻破等事件。

需要幫助嗎?聯繫我們的支持團隊 在線客服