本卡屬 FR-186(Agent 本體資安掃描第二輪),第 1 批 S1a:首次設定、換主系統、改本機位址(FR-179/183 新程式)(Agent repo,5 檔/約 999 行)。只掃不修。工作坊用
.claude/workshop-prompts/dispatch-<本卡號>.md當開場 prompt 直接啟動掃描。
用 Claude Code 官方 claude-security plugin 掃 Guidant AI Agent(repo evidence-agent)的「首次設定、換主系統、改本機位址(FR-179/183 新程式)」,找出資安問題,寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題。
這塊在 FR-177(掃 63334f4)之後才寫,從沒掃過。 範圍按業務模組垂直切(入口→流程→資料),權限漏洞常在層與層的接縫上。
guidant_agent/sync/app/enroll_service.py
guidant_agent/sync/enroll_command.py
guidant_agent/sync/base_url_command.py
guidant_agent/console/api/setup_routes.py
guidant_agent/console/api/cloud_change_routes.py
檔數 5、約 999 行。驗檔數:git ls-files -- guidant_agent/sync/app/enroll_service.py guidant_agent/sync/enroll_command.py guidant_agent/sync/base_url_command.py guidant_agent/console/api/setup_routes.py guidant_agent/console/api/cloud_change_routes.py | grep -v /tests/ | wc -l 應為 5。scope 外的檔不要當發現報;為核對呼叫端翻範圍外的檔可以,報告標「只為查證」。
首腦標的思考起點,不是檢查清單。掃完後 runner 逐條對一遍:工具沒報的,開檔看一眼寫「人工查過:成立/不成立/為什麼」。FR-177 的人工補查抓到的問題不比工具少。
enroll_service.py check_trust:token 尾段 fp16、trust_fp、系統 CA 三條信任判定——有沒有一條路是三者都沒有也放行註冊(例:token 不帶尾段+系統 CA 驗不過+沒帶 trust_fp)validate_base_url 拒 127.x/bridge/帶帳密——主控台與 CLI 是不是都只走這一支;IPv6、十進位 IP、主機名解析到 loopback 能不能繞cloud_change_routes.py 換主系統:只准本機管理員+再輸一次密碼——錯密碼有沒有累計鎖定;探測 probe 能不能被拿來讓 Agent 連任意內網位址(SSRF,就是騙 Agent 去連攻擊者指定的地方)setup_routes.py 在 _unenrolled_gate 白名單內(未註冊時不用登入)——未註冊狀態下誰都能打的端點有哪些、能不能被搶先註冊到攻擊者的主系統enroll_command.py/base_url_command.py 的錯誤訊息會不會帶出 tokenFR-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 自動啟動,你開始時掃描已在跑。
/workflows 記下 run ID。不掛監看、不輪詢;掃描 30~120 分鐘,工具跑完自己會回。