本卡屬 FR-114 資安修正(母卡 CM-2019),第 5 批「信任鏈與客戶層級設定」卡 5A-1,修 SUMMARY #1(出自 M01-1)。嚴重(全案最嚴重一項)。修法規格來自內化卡 CM-1982,計畫在 docs/features/FR-114-2609-security-fix-dispatch/batches/plan-b5A.md「卡 5A-1」段。

問題是什麼(白話)

代理程式(agent,裝在客戶端負責跑掃描/收集證據回傳的小程式)透過五條通訊管道跟後端說話——註冊、心跳、拿工單、回覆完成(ack)、回傳結果——但沒有一條真的驗證「你是不是你說的那個代理程式」,系統只相信代理程式自己回報的 agent_uid。任何人只要知道一個 agent_uid,就能假冒那台機器打進來、拿到不屬於它的工單與證據。

更糟的是「撤銷」只斷了三分之一的路:管理員停用一個代理程式後,ack(回報完成)與 result(回傳結果)兩條管道照樣能用,等於停用形同虛設。

首腦核對:

工作區

在哪裡

jedi-remote-agent/jedi_remote_agent/api/routing.py:37-41    五條路由 needs_admin=False,缺身分驗證掛載點
jedi-remote-agent/jedi_remote_agent/api/routes/remote_agent_route.py:164    register(註冊)handler
jedi-remote-agent/jedi_remote_agent/api/routes/remote_agent_route.py:173    heartbeat(心跳)handler
jedi-remote-agent/jedi_remote_agent/api/routes/remote_agent_route.py:182    派工 handler
jedi-remote-agent/jedi_remote_agent/api/routes/remote_agent_route.py:188    ack/result handler
jedi-remote-agent/jedi_remote_agent/api/routes/remote_agent_route.py:11    檔頭自陳「純 mTLS」的舊註解,需一併更新避免誤導
jedi-remote-agent/jedi_remote_agent/app/service/agent_enrollment_service.py:377    revoked(已撤銷)查詢,目前只在部分路徑生效
jedi-remote-agent/jedi_remote_agent/domain/remote_agent/service/remote_agent_domain_service.py:107    派工側歸屬判斷落點
jedi-remote-agent/jedi_remote_agent/app/service/remote_agent_service.py:113    撤銷相關註解,「外層已驗證」舊註解之一,已隨 mTLS 退役、需清掉
evidence-agent/core/enroll.py:159    register 呼叫點
evidence-agent/core/enroll.py:236-237    heartbeat 呼叫點
evidence-agent/core/enroll.py:36-37    路徑常數
evidence-agent/core/task_executor.py:167-172    ack 與 result 共用同一段,兩者都沒查撤銷狀態(#1b 核心落點)
evidence-agent/core/task_executor.py:179    工單相關處理
evidence-agent/core/task_executor.py:210    證據下載
evidence-agent/core/task_executor.py:31-32    路徑常數
evidence-agent/core/cloud_trust.py:20-40    兩條 CA 憑證鏈說明,身分證明方式要接這裡

怎麼修

🔴 動手前回寫本卡確認方向,確認後開工(這張是全案最嚴重、且動 agent repo,即使決策者已初裁照建議,仍要回寫確認一次):