本卡屬 FR-186(Agent 本體資安掃描第二輪),第 3 批 C5:OpenSCAP+OpenVAS connector(Agent repo,3 檔/約 881 行)。只掃不修。工作坊用
.claude/workshop-prompts/dispatch-<本卡號>.md當開場 prompt 直接啟動掃描。
用 Claude Code 官方 claude-security plugin 掃 Guidant AI Agent(repo evidence-agent)的「OpenSCAP+OpenVAS connector」,找出資安問題,寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題。
FR-177 掃過(舊卡 CM-3529),之後有改動;這次重掃要回答兩件事:上次修的有沒有守住、新改的程式有沒有新洞。 範圍按業務模組垂直切(入口→流程→資料),權限漏洞常在層與層的接縫上。
guidant_agent/scan/adapters/connectors/openscap.py
guidant_agent/scan/adapters/connectors/openvas.py
guidant_agent/scan/adapters/connectors/openvas_tls.py
檔數 3、約 881 行。驗檔數:git ls-files -- guidant_agent/scan/adapters/connectors/openscap.py guidant_agent/scan/adapters/connectors/openvas.py guidant_agent/scan/adapters/connectors/openvas_tls.py | grep -v /tests/ | wc -l 應為 3。scope 外的檔不要當發現報;為核對呼叫端翻範圍外的檔可以,報告標「只為查證」。
首腦標的思考起點,不是檢查清單。掃完後 runner 逐條對一遍:工具沒報的,開檔看一眼寫「人工查過:成立/不成立/為什麼」。FR-177 的人工補查抓到的問題不比工具少。(以下沿用 FR-177 舊卡的重點,行號是舊版、以檔名與函式名為準。)
openscap.py:375-376 f"{_OSCAP_BIN} xccdf eval --profile {quote(profile)} --report {quote(remote_report)} {quote(resolved_content)}":三個值都 quote 了,好;但 resolved_content 來自 _resolve_content_path(client, content_path) :229——它在遠端主機上用什麼指令解析 content_path(ls?find?readlink?),那條指令裡 content_path 有沒有 quote;profile 被 quote 後 oscap 收到 --profile '-x' 會當選項嗎(同 C3 第 1 點的工具層參數解析問題)。openscap.py:19 註解寫 [sudo] oscap:sudo 怎麼決定、密碼怎麼送;:218 _read_remote_os_release 與 :253 _detect_content_os_mismatch 在遠端跑了什麼指令、吃不吃使用者值。openscap.py:174-197 私鑰暫存檔寫 /dev/shm(:47 註解)、_connect:同 C3 第 3 點(權限、finally、look_for_keys);:356/:578 BadHostKeyException 走 ssh_host_keys(C3 掃過的 TOFU 策略)。openscap.py:445 rm -f {quote(remote_report)}、:589 command -v oscap:遠端清理與探測指令;報告 scp 回來的路徑(remote_report 怎麼命名、能不能被同主機其他使用者預先放一個 symlink 讓 oscap 寫到別處)。openvas.py:125-148 GMP:hosts/ips(:125)、port_list_id、scan_config_id、scanner_id(:140-148)都是使用者可給的 ID——GMP 是 XML 協定,python-gvm 有沒有對這些值做 XML 跳脫(hosts 字串含 </& 會不會打斷 XML 或注入元素);scan_config_id 讓使用者挑任意 config(含「Full and very deep ultimate」會打死目標)合理嗎。openvas.py:101 _task_uid 拼進 GMP task 名稱;OpenVAS 連線(gvm 的 TLS/unix socket)帳密從哪來、verify 有沒有;報告格式 ReportFormatType(:32)抓回的內容含目標弱點清單,上傳前遮不遮。timeout_sec 覆寫上限;OpenVAS 任務建了之後 Agent 逾時放棄,OpenVAS 那邊的任務會不會一直跑(客戶資源)。openvas_tls.py)——確認修法還在、沒被後來的 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 項(全部已修)。已修而且修法成立的不重報;修法不完整、或同一族換個欄位又出現,才報並註明對應項次。