本卡屬 FR-114 資安修正(母卡 CM-2019),第 5 批「信任鏈與客戶層級設定」卡 5A-2,修 SUMMARY #17/#18/#90/#91/#133(出自 M08-1/M08-2/M08-3/M08-4/M08-5)。高。修法規格來自內化卡 CM-1984,計畫在 docs/features/FR-114-2609-security-fix-dispatch/batches/plan-b5A.md「卡 5A-2」段。

問題是什麼(白話)

#17:防竄改機制(integrity,用來偵測系統檔案有沒有被動過手腳)依賴一支驗簽工具,但這支工具可以被整支換掉,換掉後照樣通過三層檢查——等於防竄改的鎖被拔掉都不會有警報。

#18:只要刪掉一個標記檔案,就能讓已經被鎖定(因偵測到竄改而鎖住)的機器重新開機正常運作,等於鎖定形同虛設。

#90:一個環境變數的優先序設計錯誤,會讓正式版悄悄退回開發版的行為,換目錄邏輯搶在「是否正式版」判斷之前生效。

#91:解鎖檔如果被損毀(用過的一次性密碼紀錄不完整),系統會把它當成全新、可重複使用的解鎖檔,等於用壞掉的鎖匙也能開門。

#133:竄改事件回報時,會把主機 log 最後 50 行原封不動送出去,log 裡如果剛好夾帶密碼就一起外洩。

首腦核對:

工作區

在哪裡

jedi-integrity/jedi_integrity/domain/config.py:47-48    DEFAULT_BOOT_LAYERS,#17:驗簽工具沒強制編譯進 core 層
jedi-integrity/jedi_integrity/domain/config.py:37    SPOT_CHECK_SAMPLE=200,抽查樣本數設定
jedi-integrity/jedi_integrity/domain/config.py:84    相關設定
jedi-integrity/jedi_integrity/app/runtime_check.py    抽查實作(行號已漂移,開工前先開檔確認現況)
scripts/build/build_release.sh:108    pdfminer 排除清單
scripts/build/build_release.sh:375    牽連鏈註解
scripts/build/build_release.sh:874,889,894,909,930    thirdparty 清單產生,#17 安全關鍵分層要接這裡
jedi-integrity/jedi_integrity/app/startup_gate.py:54    import
jedi-integrity/jedi_integrity/app/startup_gate.py:99    _refuse_for_existing_marker,#18:只看標記檔案存在與否
jedi-integrity/jedi_integrity/app/startup_gate.py:154    write_marker
infra/tamper_event_repo.py:97    exists 方法,⚠️需重跑 grep 確認零呼叫現況
app/service/tamper_sync_service.py    需補同步邏輯(#18 治本方案的一部分)
domain/tamper_marker.py:102-129    read_marker 嚴格側,是 #91 的正確範本(照抄這支的嚴格判斷)
core/plugins/integrity.py:48    BE 側掛載點
core/scheduler.py:343    BE 側排程掛載點
jedi-integrity/__init__.py    #18 文件三處之一,需與行為改動保持一致
jedi-integrity/jedi_integrity/domain/tamper_marker.py    #18 檔頭文件,同上
jedi-integrity/README.md    #18 文件第三處
common/util/resource_path.py:23    _ENV_OVERRIDE,#90:環境變數優先序問題核心
common/util/resource_path.py:26-28    is_packaged 判斷
common/util/resource_path.py:31-39    resource_root,先看 env 才看 is_packaged(要改成反過來)
jedi-integrity/jedi_integrity/domain/ports.py:84    套件側使用點之一
jedi-integrity/jedi_integrity/app/runtime_check.py:105,164,228,268    套件側使用點
jedi-integrity/jedi_integrity/app/startup_gate.py:150,226    套件側使用點
jedi-integrity/jedi_integrity/app/unlock.py:51,75,83-100,103,218    _read_used_nonces 本體,#91:合理側(:92-93)與需改嚴格側(:96-97,:99)
jedi-integrity/jedi_integrity/infra/forensic.py:44    _LOG_TAIL_LINES=50,#133 核心
jedi-integrity/jedi_integrity/infra/forensic.py:76    collect_trigger_context
jedi-integrity/jedi_integrity/infra/forensic.py:88    組裝點
jedi-integrity/jedi_integrity/infra/forensic.py:108    _log_tail 本體