本卡屬 FR-186(Agent 本體資安掃描第二輪),第 3 批 C6:SBOM 三檔、connector 基底與登記、工具執行紀錄(Agent repo,6 檔/約 1091 行)。只掃不修。工作坊用
.claude/workshop-prompts/dispatch-<本卡號>.md當開場 prompt 直接啟動掃描。
用 Claude Code 官方 claude-security plugin 掃 Guidant AI Agent(repo evidence-agent)的「SBOM 三檔、connector 基底與登記、工具執行紀錄」,找出資安問題,寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題。
FR-177 掃過(舊卡 CM-3530),之後有改動;這次重掃要回答兩件事:上次修的有沒有守住、新改的程式有沒有新洞。 範圍按業務模組垂直切(入口→流程→資料),權限漏洞常在層與層的接縫上。
guidant_agent/scan/adapters/connectors/sbom_scan.py
guidant_agent/scan/adapters/connectors/sbom_tools.py
guidant_agent/scan/adapters/connectors/sbom_coverage.py
guidant_agent/scan/adapters/connectors/base.py
guidant_agent/scan/adapters/connectors/__init__.py
guidant_agent/scan/adapters/connectors/tool_run_log.py
檔數 6、約 1091 行。驗檔數:git ls-files -- guidant_agent/scan/adapters/connectors/sbom_scan.py guidant_agent/scan/adapters/connectors/sbom_tools.py guidant_agent/scan/adapters/connectors/sbom_coverage.py guidant_agent/scan/adapters/connectors/base.py guidant_agent/scan/adapters/connectors/__init__.py guidant_agent/scan/adapters/connectors/tool_run_log.py | grep -v /tests/ | wc -l 應為 6。scope 外的檔不要當發現報;為核對呼叫端翻範圍外的檔可以,報告標「只為查證」。
首腦標的思考起點,不是檢查清單。掃完後 runner 逐條對一遍:工具沒報的,開檔看一眼寫「人工查過:成立/不成立/為什麼」。FR-177 的人工補查抓到的問題不比工具少。(以下沿用 FR-177 舊卡的重點,行號是舊版、以檔名與函式名為準。)
sbom_scan.py:157 _SOURCE_FILE_KEY/:206 agent_local_uid:源碼包從哪來(B5 的本機上傳槽或主系統派檔)、解壓走 archive_safety(#226)嗎、解到哪、symlink 處理(syft/grype 預設跟 symlink,源碼包內放 -> /data/secrets 的 symlink 會不會被掃進 SBOM 甚至把內容寫進報告)。sbom_scan.py:170 tools/:182 sbom_formats:使用者可選工具與格式——有白名單嗎(_BINARIES[tool] sbom_tools.py:83 用 dict 查、沒有的 key 會 KeyError 而非注入,確認);sbom_tools.py:95 Popen(argv, env=self.env) 的 argv 由誰組、self.env 是什麼(整包 os.environ?)。sbom_tools.py:83-90 scan_tool_path(name):工具執行檔路徑怎麼找(PATH?固定目錄?)——Agent 容器內 PATH 可寫目錄排在前面會不會被換掉工具;common/util/scan_tools.py 不在範圍,只追到這一層。sbom_coverage.py:覆蓋率計算吃工具輸出的 JSON——json.loads 大小上限、巢狀深度(工具輸出被源碼包內容影響,例如超長套件名)。base.py:connector 基底怎麼拿 params/credentials、有沒有共用的參數過濾(若這裡加一道每工具白名單就能一次修 #223/#224);run/probe 介面有沒有規定帳密不進 log;報告上傳前的共用遮罩在這裡還是各 connector 自理。__init__.py:136 行 登記表:工具 code → class 的對照;主控台 scan_routes 的 TARGET_PARAM(B2 看過)與這裡的工具清單對得上嗎(有 connector 不在 TARGET_PARAM 就等於它的目標欄位不過清冊,#224 同病)。FR-177 25 棒報告在 Agent repo docs/security-scan/FR-177/scan-*.md,已登記的 22 條在主系統 repo docs/features/security-scan-consolidated/README.md §3.1 第 219~240 項(全部已修)。已修而且修法成立的不重報;修法不完整、或同一族換個欄位又出現,才報並註明對應項次。
掃描由工作坊開場 prompt 自動啟動,你開始時掃描已在跑。