程式碼弱點掃描工具Trivy遭供應鏈攻擊,駭客透過GitHub Actions散布竊資軟體
Trivy由資安公司Aqua Security打造,為廣泛使用的容器與系統漏洞掃描工具,常被整合於CI/CD流程中。此次事件中,攻擊者成功竄改該公司的GitHub Actions工作流程,當開發者執行掃描任務時,即會下載並執行惡意程式。
最早察覺此事並提出警告的是資安研究員Paul McCarty,他發現0.69.4版Trivy被植入了後門,無論是容器映像檔或是GitHub專案裡的檔案,都遭到滲透。假若用戶在CI裡納入此掃描工具,就有可能受到影響。McCarty表示,Brew版本未受到波及。
惡意程式的有效酬載為二進位檔案,Paul McCarty在開源資安社群Open Source Malware發布部落格文章指出,攻擊者自稱是TeamPCP Cloud stealer,此惡意程式會試圖從惡意網域scan.aquasecurtiy.org拉取4個Go語言的惡意檔案,其中包含第二階段的有效酬載(網域名稱故意用aquasecurtiy混淆,若真有此網域名稱,應為scan.aquasecurity.org)。
此惡意程式主要功能為竊取敏感資訊,包括環境變數、API金鑰與存取權杖(Token)等。由於CI/CD環境通常包含高權限憑證,一旦遭外洩,攻擊者可進一步入侵雲端資源或原始碼儲存庫。
在攻擊手法上,駭客利用GitHub Actions的自動執行特性,將惡意程式嵌入既有流程,使攻擊在背景中完成,使用者難以察覺。這類攻擊屬於典型的供應鏈攻擊,影響範圍可能隨工具使用規模擴大。
後續資安公司Socket、Wiz,以及Aikido揭露此事的影響規模,Socket指出,根據他們的初步調查,這起事故的影響範圍並非局限於0.69.4版,因為Socket看到攻擊者強制推送aquasecurity/trivy-action裡面的75個版本(發行版本全部共76個)標籤,由於GitHub Action官方就使用Trivy掃描CI/CD管線,有超過1萬個工作流程檔案參照,影響範圍恐怕相當廣泛。這些標籤被用於散布竊資軟體,僅有@0.35.0不受影響。
值得留意的是,攻擊者並未直接修改Trivy核心程式碼,而是鎖定CI/CD流程的環節,顯示供應鏈攻擊已從套件本身延伸至開發流程基礎設施。Socket指出,攻擊者竊得Trivy憑證後入侵GitHub Actions,但並非像其他攻擊者上架有問題的新版本,或是推送新的分支(Branch),這次攻擊者強制推送75個現有版本的標籤,然後指向惡意提交的內容。這麼做是為了避免發布新版Trivy觸發警示通知,使得Trivy開發工程團隊容易察覺異狀。Socket提及,只有少數跡象能拆穿攻擊者的計謀。
Wiz指出Trivy有多個元件遭到入侵,其中包含掃描工具核心程式,以及其GitHub Action(trivy、trivy-action、setup-trivy),駭客在竊取開發人員的憑證之後,會透過Cloudflare隧道傳送至C2。後續駭客也在Docker Hub發布Trivy惡意映像檔,經過進一步追蹤,駭客利用名為CanisterWorm的蠕蟲從NPM套件庫竊得權杖來發動攻擊。
Aikido對CanisterWorm進行解析,指出他們在NPM儲存庫發現大量套件遭遇新型態蠕蟲感染,此蠕蟲的特色是運用區塊鏈智慧合約ICP Canister作為C2情報交換點(Dead-drop),這是Aikido首度看到採用這種手法的惡意程式。他們指出,這應該是針對Trivy攻擊的後續活動。
對此,Aqua Security透過部落格文章和GitHub公告說明,他們提及相關攻擊行動最早可追溯至2月底,攻擊者利用Trivy的GitHub Actions錯誤環境組態設定,擷取特權存取權杖,並建立進入倉庫自動化與釋出流程的立足點。儘管Trivy團隊察覺此事並在3月1日執行憑證輪替,但後續發現輪替不完全讓攻擊者有機可乘。Aqua Security強調,這起事故影響Trivy開源版本,該公司產品採用的Trivy未受到影響,他們已邀請另一家資安公司Sygnia協助鑑識及修復。
Comments (0)