本卡屬 FR-177(母卡 CM-3507),第 7 棒 A7:LDAP 登入、離線操作者、來源網段白名單(Agent repo,6 檔/約 940 行)。只掃不修。工作坊會用 .claude/workshop-prompts/dispatch-<本卡號>.md 當開場 prompt 直接啟動掃描,小弟不必自己打指令。

這一棒在做什麼(白話)

用 Claude Code 官方 claude-security plugin 掃 Guidant AI Agent(裝在客戶機器上的那支程式,repo evidence-agent)的「LDAP 登入、離線操作者、來源網段白名單」這一塊,找出資安問題並寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題,修是另外開卡的事。

主控台的另外兩條登入路:用客戶自己的 AD/LDAP 帳號登入,以及主系統事先下發的「離線操作者」名單(主系統斷線時誰還能登);加上 8444 只准哪些網段連進來的白名單。

為什麼切這一塊

LDAP 設定裡存著客戶 AD 的服務帳號密碼,這是客戶的資產不是我們的。白名單是 8444 的第一道門,判錯來源 IP 等於門沒關。離線操作者名單是主系統推下來的,推的那條路(A2)若能被偽造,這份名單就能被塞人。

掃描範圍(scope,與開場 prompt 的 --scope 一致)

guidant_agent/identity/adapters/ldap_source.py
guidant_agent/identity/app/offline_operators.py
guidant_agent/identity/app/allow_cidr.py
guidant_agent/identity/domain/allow_cidr.py
guidant_agent/identity/ports/source_cidr_guard.py
guidant_agent/console/api/ldap_routes.py

檔數 6、約 940 行。驗檔數:cd <工作目錄> && git ls-files -- guidant_agent/identity/adapters/ldap_source.py guidant_agent/identity/app/offline_operators.py guidant_agent/identity/app/allow_cidr.py guidant_agent/identity/domain/allow_cidr.py guidant_agent/identity/ports/source_cidr_guard.py guidant_agent/console/api/ldap_routes.py | grep '\.py$' | wc -l 應為 6。scope 外的檔不要讀(研究員會越界,越界的發現首腦驗收時會挑掉)。

重點看什麼

首腦讀過程式碼後認為最容易出事的地方,是思考起點不是檢查清單。工具不會照這份走,掃完後 runner 要自己逐條對一遍:工具沒報的,開檔看一眼寫「人工查過:成立/不成立/為什麼」。前幾輪最嚴重的發現(FR-076 L2 的 HIGH)都是 runner 照這清單追出來的,不是工具報的。

已知背景

FR-075 S1(主系統 jedi-iam)LDAP 三洞(filter 注入/空密碼匿名 bind/TLS 驗證可關)併 CM-1560 修過,Agent 這份 ldap_source 是否沿用 jedi-ldap kernel 庫、有沒有繼承那次修正是本棒要答的。FR-075 結論未經本棒面板驗證、只是參照。

怎麼做