本卡為 FR-077 母案。用 claude-security plugin 掃「客戶機房的 agent 撥回雲端」這條控制鏈,切三棒,只掃不修。子卡清單在末段。

這系列在做什麼(白話)

我們的產品會發一支程式(叫 agent)裝在客戶自己的機房裡。它會主動撥回雲端問「有沒有工作要我做」,然後下載檔案、執行掃描、回報結果。這一整條來回的通道,從來沒有人系統性檢查過安全性。

這次就是把這條通道從頭到尾看一遍:agent 怎麼證明「我是我」、證明完之後能拿到什麼、能不能假裝成別台機器、能不能拿到不該拿的檔案。只找問題、不修問題——找到的問題另外開修正卡。

為什麼要做

這條鏈是完全空白:2026-07 的 security-scan-2607 只掃主專案 BE 與 FE;FR-075 掃 jedi-common 與 jedi-iam;FR-076 掃 License 簽發與驗證鏈。Agent 控制鏈三個 arc 都沒碰到。

而它的風險形狀跟前兩個 arc 都不一樣,有三點特別:

首腦讀完程式碼後的重點

以下是我讀過全部程式碼後標出的六個面。這是思考起點不是檢查清單——工具不會照清單走,寫在這裡是給研究員與 runner 的方向。

怎麼拆

這條鏈被 repo 邊界切成三段,而掃描的 scanRoot 只能指一個目錄、跨 repo 無法同一棒,故切三棒。切法是按業務模組垂直切(route→service→domain→repository 完整路徑),不按 DDD 分層水平切——權限漏洞活在層與層的接縫上,只給 route 或只給 service 兩邊都看不出來。