Black Hat Europe 2025 | Bootstrapping Trust: From Isolated Build Machines to Enclaved CI Pipelines
三句話摘要
如何使用機密計算(Confidential Computing)建立安全的程式碼構建與部署管道,在保持離線機器安全性的同時獲得CI/CD的自動化效率。 --- 機密計算與多層金鑰管理相結合,使Fireblocks在無需笨重的離線機器的前提下實現了nation-state級別的供應鏈安全。 Build server是nation-state級別的真實威脅
重點整理
重點- 1
Build server是nation-state級別的真實威脅
- 2
Solarwinds 2020事件中,與俄羅斯有關的Cosy Bear駭客將Sunspot惡意軟體植入構建伺服器,每次編譯時向原始碼注入後門,然後恢復原始程式碼以躲避檢測。TeamCity 2023-2024的RCE漏洞則被朝鮮直接利用於野外攻擊。這些都說明CI基礎設施是nation-state組織的核心目標。
- 3
氣隙離線機器的安全性與代價
- 4
Fireblocks原本使用物理隔離的離線機器構建和簽署程式碼,具有強大的物理隔離與訪問控制,但代價巨大:需要手動解鎖保險櫃、輸入密碼、等待物理操作,使其成為組織的瓶頸。一位名叫Michael的工程師在一年內因此而陷入巨大的壓力——任何構建請求都必須依賴這臺稀缺資源。
- 5
機密計算技術提供了新的平衡點
- 6
機密計算(Enclave)透過CPU硬體加密記憶體區域,使得即使是核心和特權使用者也無法觀察或影響執行的計算。遠端證明(Remote Attestation)則讓外部服務驗證:某個Enclave正在執行預期的程式碼、由正確的人簽署、執行在真實的硬體上。這樣可以在雲端實現離線機器的安全保證。
- 7
金鑰管理的複雜性需要多層架構
- 8
並非所有機密計算技術都提供長期硬體金鑰(Intel SGX有,但只能單程序;AMD SEV和Nitro flexible但缺長期金鑰)。Fireblocks的解決方案是建立獨立的"秘密服務"Enclave(用Intel SGX),持有簽署映象的私鑰。構建Enclave透過遠端證明請求金鑰,秘密服務驗證證明後才解密並返還金鑰。同時,使用Yubikeys多簽名者機制驗證提交意圖,確保開發者和審查者角色分離。
- 9
--
實用技巧與重點
乾貨- 真實威脅案例
- Solarwinds 2020:Sunspot惡意軟體持續監控構建程序並注入後門
- TeamCity 2023-2024 RCE:朝鮮利用漏洞獲取Admin令牌,遠端執行程式碼
- 機密計算技術
- Intel SGX:程序級Enclave,支援長期硬體金鑰,僅支援C++/Rust
- AMD SEV:虛擬機器級Enclave,靈活但無長期金鑰支援
- AWS Nitro:虛擬機器級Enclave,包含NSM晶片(Nitro Secure Module)用於遠端證明
- 遠端證明內容
- 程式碼雜湊(代表載入的應用身份)
- 簽署者身份(Fireblocks的簽名)
- 硬體安全版本(如Intel微程式碼版本)
- Intel或AWS的硬體簽名(提供雙重保證)
- 金鑰管理方案
- 秘密服務(Secrets Service)Enclave:持有長期硬體派生金鑰
- 驗證流程:構建Enclave → 傳送遠端證明報告 → 秘密服務驗證PCRs和簽名 → 解密金鑰 → 返還構建Enclave
- 多簽名者驗證:使用多個Yubikeys(不同角色持有),審查者簽署提交雜湊以宣告構建意圖
- Fireblocks實現流程
- GitLab整合:提交push → 啟動新Enclave → 驗證簽名的提交雜湊 → 驗證策略 → 請求秘密服務獲取金鑰 → 構建映象 → 簽署 → 釋出到映象倉庫 → Enclave關閉
- 每次構建使用全新Enclave(類似VM重啟),確保零狀態和隔離性
- --
結論
結論“機密計算與多層金鑰管理相結合,使Fireblocks在無需笨重的離線機器的前提下實現了nation-state級別的供應鏈安全。”
完整解析
詳細Fireblocks是一個為銀行、金融科技等機構提供數字資產基礎設施的公司,管理著數十億美元的加密資產。這使其成為nation-state級別攻擊者(如朝鮮、俄羅斯、中國)的高價值目標——因為一旦私鑰被盜,區塊鏈上的交易無法撤銷,資金永久喪失。
在這樣的威脅模型下,Fireblocks面臨一個關鍵問題:如何保護程式碼構建和部署管道?這不是理論問題。2020年的Solarwinds事件中,俄羅斯相關駭客透過在構建伺服器注入Sunspot惡意軟體,使其在每次編譯時自動向原始碼注入後門,然後恢復原樣以躲避檢測。這導致受感染的構建產物被分發給數千個客戶。同樣地,2023-2024年的TeamCity RCE漏洞也被朝鮮在野外直接利用。
為了應對這個威脅,Fireblocks的原始方案是使用氣隙離線機器:一臺物理隔離在辦公室保險櫃內的機器,構建和簽署所有程式碼。這提供了強大的物理隔離與訪問控制保證。但代價是嚴重的低效率——每次構建都需要人工解鎖、輸入密碼、等待物理操作。結果是這臺機器成為了組織的瓶頸,任何需要構建的工程師都被迫依賴它,導致組織整體生產力下降,如演講中提到的名叫Michael的工程師因此陷入了巨大壓力。
Fireblocks決定尋找一個新的方案,既保持離線機器的安全性,又獲得現代CI/CD的敏捷性。答案來自機密計算(Confidential Computing)這一新興技術族。
機密計算的核心是Enclave——一個CPU硬體加密的隔離記憶體區域。執行在Enclave內的程式碼和資料被加密,即使擁有核心許可權或root訪問的攻擊者也無法觀察或修改。例如Intel SGX透過硬體級加密金鑰實現這一點。更重要的是,遠端證明(Remote Attestation)技術允許外部服務驗證一個Enclave確實在執行預期的程式碼、由正確的簽署者簽署、執行在真實硬體上。這使得可以在雲端驗證和信任遠端的計算過程。
基於這些技術,Fireblocks提出了一個創新架構:不再在離線機器上構建,而是在雲端的Enclave中構建。但這引發了新的問題。Enclave通常沒有長期的硬體金鑰來簽署映象。為了解決這個難題,Fireblocks引入了"秘密服務"(Secrets Service)——一個獨立的、執行在支援長期硬體金鑰技術(如Intel SGX)上的Enclave。這個秘密服務持有簽署映象的私鑰。每當構建Enclave需要簽署映象時,它向秘密服務傳送自己的遠端證明報告。秘密服務驗證這個報告確實來自合法的構建程序後,才使用硬體金鑰解密並返還簽署金鑰。如果攻擊者試圖用惡意的Enclave或不同硬體請求金鑰,驗證會失敗。
同時,為了防止被盜的開發者憑證導致惡意程式碼被直接推送和編譯,Fireblocks還引入了多簽名者的驗證機制。開發者推送程式碼後,需要由獨立的審查者(使用Yubikeys等硬體金鑰)簽署該提交的雜湊以宣告構建意圖。構建Enclave會驗證這些簽名。這樣,即使開發者憑證被洩露,攻擊者也無法在沒有審查者同意的情況下觸發惡意構建。
整個流程是自動化的:透過GitLab整合,一旦開發者推送經過批准的程式碼,系統自動啟動新的Enclave、驗證簽名提交、請求秘密服務獲取金鑰、構建映象、簽署、釋出、然後關閉Enclave。每次構建都使用全新的Enclave例項,確保零狀態隔離。這樣,Michael和其他工程師重新獲得了CI/CD的敏捷性和快速反饋,組織不再因為離線機器的瓶頸而被拖累。
---
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

