母案:FR-058 檢測工具擴充(四工具接入)— FR-058 檢測工具擴充(四工具接入)(母案)
依賴:FR-058.0 任務層敏感參數(硬前置)+建議 FR-058.X 先完成|無法立刻開工 ⛔|Repo:BE + evidence-agent
原 OWASP ZAP,現歸 Checkmarx 維護,仍為 Apache 2.0 開源授權。屬 DAST(動態應用程式安全測試)——對執行中的網站主動送出測試請求,找出網頁層弱點。
走 API / daemon 模式(與 OpenVAS 同型),不走 baseline CLI 模式。 理由:API 模式能做「登入後掃描」,那是稽核場景真正有價值的能力;CLI baseline 只能被動掃表層,對合規證據的價值有限。
| key | label | type | required | secret | condition |
|---|---|---|---|---|---|
target_url |
掃描目標網址 | text | ✅ | — | — |
scan_mode |
掃描模式 | select(被動 / 主動 / 登入後主動) | ✅ | — | — |
login_url |
登入頁網址 | text | 條件 | — | scan_mode = authenticated |
login_username |
測試帳號 | text | 條件 | — | scan_mode = authenticated |
login_password |
測試密碼 | password | 條件 | ✅ | scan_mode = authenticated |
logged_in_indicator |
登入成功特徵字串 | text | 條件 | — | scan_mode = authenticated |
沒選登入模式時,後四欄整組不顯示(用 FE 現成的 condition 機制,不需新元件)。
<aside> ⚠️
scan_mode 預設值=被動。 主動類選項在 FE 加明確警語(會產生攻擊流量,請確認已獲目標方授權)。
理由:預設值選錯的代價不對等——預設被動最多是掃得淺;預設主動則可能在使用者未察覺的情況下對正式環境送出攻擊流量。
</aside>
core.htmlreport() 回傳的 HTML bytes 上傳當證據(檔名 ZAP掃描報告_<target>_<date>.html)、core.jsonreport() 只在記憶體解析 summary 不上傳。精神對齊 OpenVAS connector 既有模式。原定案 reports.generate 產PDF 不可行——該 API 只把檔案寫進 ZAP daemon 主機磁碟、回傳路徑字串,官方無回傳內容端點(issue #7821),D3 遠端 daemon 模型下 agent 取不到。HTML 證據接受「可下載、不可預覽」為第一批出貨標準。| 項目 | 內容 | 影響 |
|---|---|---|
| Python 套件版本 | 用 zaproxy 0.6.0(2026-06 發布)。舊參考碼用 0.4.0 太舊 |
ZAPv2 類別仍是進入點,呼叫風格不必改寫 |
| 警報去重 | 2.17.0 加入警報去重與 Systemic alert 支援 | alert 數量會比舊版少,統計解析要對齊新語意 |
| 報告時間欄位 | JSON / XML 報告新增 ISO 8601 的 created;舊 generatedString 官方已預告未來移除 |
解析器不要依賴 generatedString |
| 暫存訊息保留 | headless 模式下主動掃描的暫存 HTTP 訊息預設不再保留 | 對取報告流程無影響 |
沒有破壞性的 API 端點移除,主線呼叫序列可以沿用。
.0 未完成,登入後掃描只能把帳密明文存進 tool_params,等於白做一次要重改。