本卡屬 FR-186(Agent 本體資安掃描第二輪),第 3 批 C4:OWASP ZAP connector+工具 TLS(Agent repo,3 檔/約 802 行)。只掃不修。工作坊用
.claude/workshop-prompts/dispatch-<本卡號>.md當開場 prompt 直接啟動掃描。
用 Claude Code 官方 claude-security plugin 掃 Guidant AI Agent(repo evidence-agent)的「OWASP ZAP connector+工具 TLS」,找出資安問題,寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題。
FR-177 掃過(舊卡 CM-3528),之後有改動;這次重掃要回答兩件事:上次修的有沒有守住、新改的程式有沒有新洞。 範圍按業務模組垂直切(入口→流程→資料),權限漏洞常在層與層的接縫上。
guidant_agent/scan/adapters/connectors/zap.py
guidant_agent/scan/adapters/connectors/zap_client.py
guidant_agent/scan/adapters/connectors/tool_tls.py
檔數 3、約 802 行。驗檔數:git ls-files -- guidant_agent/scan/adapters/connectors/zap.py guidant_agent/scan/adapters/connectors/zap_client.py guidant_agent/scan/adapters/connectors/tool_tls.py | grep -v /tests/ | wc -l 應為 3。scope 外的檔不要當發現報;為核對呼叫端翻範圍外的檔可以,報告標「只為查證」。
首腦標的思考起點,不是檢查清單。掃完後 runner 逐條對一遍:工具沒報的,開檔看一眼寫「人工查過:成立/不成立/為什麼」。FR-177 的人工補查抓到的問題不比工具少。(以下沿用 FR-177 舊卡的重點,行號是舊版、以檔名與函式名為準。)
:340-343 login_url/login_username/login_password/logged_in_indicator 從 params 讀——登入密碼是任務參數:它從主系統派下來時走哪裡(8443 JWT 保護的 task payload 明文?)、在 Agent 落地到 local_runs.params 明文欄位嗎(B5 問過 params 會不會含帳密,這裡是實例)、log 有沒有印 params。:153-160 ZAPv2(apikey=api_key, proxies={"http": base_url, "https": base_url}):Agent 到 ZAP daemon 的連線是 http 還是 https、api_key 走 query string(ZAP API 預設 ?apikey=)會進 ZAP 與 proxy 的 access log;base_url 來自工具帳密(#232 改位址沿用舊 key 這裡也中)。:179 target_url 與 :340 login_url:都過清冊(URL_PARAM_KEYS 含 target_url、login_url)——但 ZAP 的 spider/active scan 會跟著頁面上的連結爬出去,掃描範圍(context/include regex)有沒有限制在 target_url 的 host,否則清冊只擋了起點。:170 scan_mode passive/active:active 的前提(誰能選、要不要額外權限);:187 timeout_sec 使用者可覆寫——上限多少(主動掃描跑 24 小時)。:336 註解):logged_in_indicator 是 regex 交給 ZAP——ReDoS 在 ZAP 那邊不在 Agent,但 indicator 有沒有長度上限;登入表單欄位名怎麼對(ZAP 的 loginRequestData 用 {%username%},使用者值裡含 &/= 會不會拆欄位)。_task_uid(:197)拼法。base_url、內網位址)回給使用者前有沒有過濾。zap_client.py/tool_tls.py)、#237 爬蟲範圍封口、#233——確認修法還在、沒被後來的 commit 弄回去、也沒有旁路。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 項(全部已修)。已修而且修法成立的不重報;修法不完整、或同一族換個欄位又出現,才報並註明對應項次。