攻擊者發動NPM供應鏈攻擊的情況相當頻繁,其中一個竊取發布惡意套件權限的管道,就是對開發團隊使用的GitHub Actions下手,近期有開發團隊因為此CI/CD平臺配置不當遲遲沒有處理,而成為引起供應鏈攻擊的開端。
資安公司Aikido Security、Cloudsmith、Wiz提出警告,有人於7月14日對AsyncAPI產生器(asyncapi/generator)的儲存庫發出37次拉取請求(Pull Requests,PR),這些請求大部分是嘗試新增假的慈善捐款網頁,但有一次例外,攻擊者利用GitHub Actions工作流程組態配置不當弱點,竊取高權限的個人存取權杖(PAT),然後成功取得NPM發布權杖,在4款AsyncAPI的NPM套件當中,於執行環境(runtime)模組注入經混淆處理的下載器,前後於NPM發布了5個惡意版本。一旦開發人員在自己的電腦匯入(import/require)有問題的套件,電腦就會透過P2P分散式檔案傳輸協定IPFS取得Node.js載入工具,寫入磁碟並以獨立的處理程序啟動。
值得留意的是,攻擊者入侵的管道,就是已被發現的開發團隊GitHub Actions配置不當問題,該問題最早為其中一名貢獻者在4月29日提出,他後來在5月17日提出建議修補方案,作法是將工作流程拆成兩個獨立工作,將不受信任的程式碼與機密資料存取進行隔離,然而該方案開發團隊並未採納,問題在58天後被攻擊者利用。
最早揭露此事的Wiz指出,這是GitHub Actions弱點請求(Pwn Request)類型的問題,AsyncAPI產生器的儲存庫含有工作流程檔案,功能是觸發拉取請求(pull_request_target),但問題在於該檔案檢查拉取程式碼的來源並非基礎(Base)儲存庫,而是由發出拉取請求的人士所控制的程式碼。由於pull_request_target實際上是在基礎儲存庫執行,能完整存取其中的機密資料,一旦工作流程執行攻擊者的程式碼,這些機密就落入攻擊者的手裡。
Comments (0)