KeyFrame內部研究專用

Breaking the Chain: Advanced Offensive Strategies in the Software Supply Chain | BBV, DEF CON 33

Bug Bounty Village·5月24日週日·52 min英文

三句話摘要

軟體供應鏈攻擊的實戰技術與防禦盲點——從依賴混淆、NPX混淆到Poison Pipeline Execution的完整攻擊面。 軟體供應鏈已是APT與威脅行為體優先考慮的入口,開發者必須從依賴源頭、構建環境、部署流程全方位理解威脅,並實踐版本固定、強制完整commit SHA、倫理disclosure等防禦策略,方能有效降低風險。 供應鏈三層攻擊面與實際損失規模。軟體供應鏈由源代碼層(依賴解析)、構建層(CI/CD)、分發層(部署)組成,任一層被破壞都能導致下游公司大規模入侵。2023年59%的企業經歷供應鏈攻擊、平均應對時間一個月,全球經濟損失410億美元,這是昨日之患、今日之患、明日之患。

重點整理

重點
  • 1

    供應鏈三層攻擊面與實際損失規模。軟體供應鏈由源代碼層(依賴解析)、構建層(CI/CD)、分發層(部署)組成,任一層被破壞都能導致下游公司大規模入侵。2023年59%的企業經歷供應鏈攻擊、平均應對時間一個月,全球經濟損失410億美元,這是昨日之患、今日之患、明日之患。

  • 2

    優雅的依賴混淆與變種NPX混淆。依賴混淆利用包管理器在公私包名解析邏輯中的漏洞,Consul案例中不到一小時就有Fortune 500開發者下載惡意包(獲得17K賞金)。NPX混淆則藉由二進位名稱與包名不必然相同的特性,當開發者執行npx時自動從公開registry臨時安裝執行,最高可獲30K賞金、影響4,500家企業。

  • 3

    繞過安全掃描的核心技術是建立自有HTTP registry。講者開發了一套縝密的躲避方案:識別掃描器IP段、ASN、user-agent,透過deny list機制選擇性投放payload,使惡意包能在公開生態存活超過一年而不被ban,甚至可竊取企業artifactory管理員token獲得全企業讀寫權限。

  • 4

    Poison Pipeline Execution的兩階段攻擊——cache poisoning權限提升。第一階段透過pull_request_target trigger + pre-install gadget獲得初始RCE(但無secrets),第二階段利用cache poisoning跨workflow竊取發布credentials,導致完整供應鏈被破壞。CrossFetch案例展示3,600萬次/周下載的套件可被一個pull request完全背門,下游多家公司共賠13K。

實用技巧與重點

乾貨
  • 2023年軟體供應鏈攻擊數據
  • 惡意包增長率:156%
  • 遭遇攻擊的企業比例:59%
  • 平均應對時間:1個月
  • 全球經濟損失:410億美元
  • 預計2026年損失:800億美元以上
  • Consul依賴混淆案例
  • GitHub星數:28,000+
  • 攻擊觸發耗時:1小時內
  • Bug Bounty獎金:17,000美元
  • 受害者:Fortune 500開發者
  • 根本原因:舊版NPM不識別workspace概念
  • NPX混淆案例
  • 最高Bug Bounty獎金:30,000美元
  • 影響公司數:4,500家
  • 主要受害者行業:加密貨幣相關企業
  • 攻擊向量:二進位名稱與包名不匹配
  • CrossFetch case study
  • 週下載量:3,600萬次
  • 攻擊鏈:pull_request_target → pre-install gadget → cache poisoning → 竊取NPM token
  • 下游企業Bug Bounty:3,000美元、10,000美元
  • 修復方案:版本固定(version pinning)
  • Google CloudBuild競賽條件
  • 競賽窗口:~1秒
  • 繞過approval的工具:Python輪詢腳本
  • Google修復:5秒age off延遲
  • 推薦最佳實踐:強制40字符完整commit SHA
  • 掃描器繞過技術
  • 自有HTTP registry優勢:實時log、動態payload替換、IP allow list
  • Deny list規則累積:1年半時間、涵蓋中文、俄文、SaaS掃描商
  • 惡意包存活時間:1年以上無ban
  • 副收獲:可取得artifactory admin token
  • 開源工具
  • Gato-X(Adnan開發):自動化掃描GitHub Actions誤設定,支援MCP server
  • Living off the Pipeline:構建管線gadget參考資源
  • Cacher Act:可視化演示cache poisoning的教育型POC
  • 倫理實踐標準
  • Kill switch機制:proof of concept後立即下架惡意包
  • 最小payload原則:whoami、pwd、hostname足以證明RCE
  • GitHub前置檢查:驗證包名是否被廣泛使用
  • 跨生態漏洞
  • Git short SHA衝突:可觸發404誤導開發者/AI agent下載替代包
  • 自主runner配置缺陷:bucket掛載、檔案cache可導致橫向移動
  • 連接第三方構建系統的隱形RCE:某些企業repo看似無CI卻實際連接構建系統

結論

結論

軟體供應鏈已是APT與威脅行為體優先考慮的入口,開發者必須從依賴源頭、構建環境、部署流程全方位理解威脅,並實踐版本固定、強制完整commit SHA、倫理disclosure等防禦策略,方能有效降低風險。

完整解析

詳細

軟體供應鏈已成為現代軟體開發最隱蔽的致命盲點。供應鏈涵蓋源代碼層(依賴檔案與上游repos)、構建層(CI/CD管線)、分發層(部署與registry)三個環節,任何一環被破壞都能導致數千家下游公司同時淪陷。根據2023年的數據,軟體供應鏈攻擊增長了156%,全球59%的企業經歷過此類攻擊,平均應對時間長達一個月,造成的經濟損失達410億美元,預計到2026年將超過800億美元。這不再是明日之患,而是昨日之患、今日之患、明日之患的三重疊加。

在源代碼層,最優雅的攻擊是依賴混淆。它利用包管理器在解析公私包名時的邏輯漏洞。講者以Consul為例,該服務網路框架擁有28,000多個GitHub星,被廣泛用於業界。攻擊者發現Consul在定義開發依賴時使用了通配符,但這些依賴本應來自workspace(本地檔案系統),卻可被PNPM誤導從公開registry抓取。Friday night,講者在NPM public registry上佔據了相應的包名作為proof of concept,不到一小時就有Fortune 500公司的開發者下載了惡意包——該開發者正好使用了舊版NPM,不識別workspace概念,自動降級為從公開registry抓取。最終獲得17,000美元的Bug Bounty。更有趣的是NPX混淆,它利用二進位名稱與包名不必然相同的特性。當開發者執行 `npx package-name` 而該包不存在時,npx會臨時從registry安裝並執行其bin定義的二進位。攻擊者可猜測並佔據這些不匹配的二進位名稱獲得遠程代碼執行,最高曾獲30,000美元賞金,影響範圍達4,500家企業,特別是加密貨幣領域。

繞過安全掃描器是這項研究最核心的技術難點。傳統掃描採靜態分析或沙箱動態執行,但講者與合作者開發了一套縝密的躲避方案。關鍵洞察是:不讓掃描器看到真正的惡意payload。他們建立了自有的HTTP registry,每次掃描器抓取包時都會被識別(透過IP段、ASN、user-agent、request pattern),然後透過deny list機制選擇性投放payload——只有合法開發者才能下載真正的惡意包,掃描器永遠看不到。這套系統用了一年半時間累積了數百條規則來識別中文、俄文、各類SaaS掃描商的特徵。結果是惡意包能在NPM生態存活超過一年而不被ban。更意想不到的是,某些企業的artifactory會在registry table交互時洩露管理員token,給了講者讀寫整個企業artifactory的權限,從而獲得遠程代碼執行。

構建層的Poison Pipeline Execution威脅更為致命且獲利豐厚。GitHub Actions的 `pull_request_target` trigger設計允許簽出fork中的未審查程式碼,結合package.json的 `pre-install` gadget,任何人都能透過一個pull request獲得RCE。但要竊取secrets(如NPM token用於發布)需要權限提升,這時cache poisoning發揮了關鍵作用。GitHub Actions的cache以tar ball形式儲存,提取時預設允許path traversal,攻擊者可在第一個workflow中注入精心設計的cache內容,當第二個發布workflow消費該cache時,tar的path traversal特性允許攻擊者覆寫任意檔案。CrossFetch就是這樣被完全背門的——一個被3,600萬次/周下載的關鍵套件,講者透過fork、修改package.json、污染cache、等待release、竊取token、發布惡意版本的五步攻擊鏈完全控制了它。由於CrossFetch被多個下游企業依賴,講者從3家受害企業共獲13,000美元的Bug Bounty。

更深層的威脅來自供應鏈的系統級漏洞。講者示範了如何利用Git short SHA衝突觸發404誤導開發者或AI agent下載替代包,以及Google CloudBuild中的競賽條件——maintainer的comment approval與attacker的commit push之間存在約1秒的時間窗口,使用簡單的Python輪詢腳本即可繞過整個approval機制。最有趣的是AI agent的新型攻擊向量——當error message中含有精心構造的「系統prompt」時,某些AI agent會誤以為這是合法指令,主動修改依賴配置下載攻擊者的套件。這預示著一個新的威脅範式。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「AI 技術」的內容

Between Two Nerds: Attribution is dead, long live attribution
32 min
AI 技術英文PODCAST8月25日

Between Two Nerds: Attribution is dead, long live attribution

Risky Business

  • 工具成本的破壞性下降 — 傳統上,攻擊者必須重複使用昂貴自製的惡意軟體或工具組,因為開發和維護成本極高。這種成本結構使得安全研究人員可以通過工具特徵和程式碼簽名來追蹤攻擊者。LLM 自動化了代碼生成與維護工作流,使得攻擊者可以輕易為每個目標生成新工具,或改用通用系統工具,導致傳統的工具特徵分析失效。
  • 所有取證證據都在攻擊者掌控之中 — 無論是使用的 IP 位址、惡意軟體類型或戰術流程,這些都是攻擊者的主動選擇。即使看似是隨機巧合,攻擊者仍有能力在事前決定留下什麼痕跡。因此,所有可恢復的取證證據本質上都是攻擊者願意暴露的信息。
  • LLM 削弱工具簽名但保留高階行為特徵 — LLM 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Everything Goldman Sachs Taught Me About AI (In 10 minutes)
AI 技術英文8月24日

Everything Goldman Sachs Taught Me About AI (In 10 minutes)

Nate Herk

  • 驗證優於相信:看起來完整的AI輸出不等於正確答案,需在提示中要求模型重新檢查數字、引用來源,並對無把握的部分標記。
  • 區分AI與自動化:確定步驟且答案已知的任務用傳統自動化更便宜快速;只在需要判斷力、靈活性或處理複雜資訊時才用AI,兩者結合效果最佳。
  • 以問題驅動選型:先寫清楚「要解決的問題是什麼、成功的樣子是什麼」,再決定用什麼工具,許多失敗項目是從技術而非問題出發。
Mu: a self-hosted personal agent where the interface is an email address you can write to
AI 技術英文8月23日

Mu: a self-hosted personal agent where the interface is an email address you can write to

GitHub Awesome

  • Mu 是自主代理人系統,具有實際網址與獨立伺服器,用戶可透過多種方式與其互動——網頁應用、電子郵件或程式化介面。
  • 架構完整覆蓋日常工作流程的多個層面,整合郵件收發(SMTP/IMAP)、檔案管理、行事曆、新聞聚合、市場數據與搜尋功能於一個 Go 伺服器內。
  • 支援自帶模型與多種通訊協定,用戶可選擇不同的 AI 模型,並透過 MCP、HTTP API 或命令列工具整合到其他系統。