本卡屬 FR-187(母卡 CM-3711),第 3 批 F1:設定檔加密的主系統專屬部分:維運指令、舊機轉換、初始密碼、改網址(主系統 repo
compliance-manager-be,7 檔/約 578 行)。只掃不修。工作坊會用.claude/workshop-prompts/dispatch-<本卡號>.md當開場 prompt 直接啟動掃描,小弟不必自己打指令。
用 Claude Code 官方 claude-security plugin 掃「設定檔加密的主系統專屬部分:維運指令、舊機轉換、初始密碼、改網址」這一塊,找出資安問題,寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題,修是另外開卡的事。
FR-179:兩份設定檔改用 openssl 加密存在磁碟,解密用的鑰匙交給主機的安全晶片(TPM)密封保管,明碼只放在記憶體(/run/guidant)。核心兩支 secrets.sh/tpm.sh 不在本棒(理由見「已知背景」);本棒看主系統獨有的周邊:guidantai secrets/config edit 維運指令、舊機明碼轉加密、開機解封的 systemd 服務、初始管理員密碼、安裝時改系統網址與資料目錄擁有者。
PM 的要求是「磁碟上不能有明碼密碼」。這些腳本以 root 跑,轉換中斷留下明碼、編輯器被換成別的程式、寫進設定檔的值夾帶換行,都會讓這個承諾失效,甚至變成 root 執行任意程式。
背景:這一輪掃的是 2026-11-01(FR-172 開案)到 11-09 之間主專案與 jedi-remote-agent 新寫或大改的程式(FR-171/172/178/179/180/181/182),這些程式都沒掃過。
scripts/installer/lib/guidantai_secrets_cmds.sh
scripts/installer/lib/upgrade_convert_secrets.sh
scripts/installer/lib/root_admin_password.sh
scripts/installer/systemd/guidant-secrets.service
scripts/installer/lib/site_url.sh
scripts/installer/lib/data_dir_owner.sh
scripts/installer/lib/config_digest.sh
檔數 7、約 578 行。驗檔數:git -C <工作目錄> ls-files -- scripts/installer/lib/guidantai_secrets_cmds.sh scripts/installer/lib/upgrade_convert_secrets.sh scripts/installer/lib/root_admin_password.sh scripts/installer/systemd/guidant-secrets.service scripts/installer/lib/site_url.sh scripts/installer/lib/data_dir_owner.sh scripts/installer/lib/config_digest.sh | wc -l 應為 7。scope 外的檔不要讀,除非下面「重點看什麼」明寫「只追這幾行」;越界的發現首腦驗收時會挑掉。
首腦讀過程式碼後認為最容易出事的地方,是思考起點不是檢查清單,行號以 2026-11-09 的主線為準,對不上就以內容為準。工具不會照這份走,掃完後你要自己逐條對一遍:工具沒報的,開檔看一眼,寫「人工查過:成立/不成立/為什麼」。
guidantai_secrets_cmds.sh:33-62 config edit:用 $EDITOR 以 root 開檔,sudo 時 EDITOR 會不會被保留成使用者指定的程式;編輯副本放記憶體(對);_config_edit_apply 寫回加密檔中途失敗時,明碼副本有沒有清掉。guidantai_secrets_cmds.sh 其他子指令(狀態、換鑰匙):有沒有任何一條把明碼設定或鑰匙印到畫面(決策者裁過「不給客戶印明文密碼的 CLI」)。upgrade_convert_secrets.sh:舊機明碼轉加密,中途失敗保留明碼(設計如此);轉換成功後有沒有留下 .bak、.verify 或暫存明碼;這支會呼叫 secrets.sh 的 sec_key_migrate_legacy(secrets.sh:83-110,主系統獨有、Agent 版沒有,只追這一段)。guidant-secrets.service:開機解封以什麼身分跑、/run/guidant 由誰建、權限多少、其他服務能不能在它之前讀到半套檔。root_admin_password.sh:初始管理員密碼怎麼產、怎麼交給客戶、有沒有印在畫面或寫進安裝 log。site_url.sh:改 SYSTEM_URL 時的輸入檢查——寫進設定檔的值能不能夾帶換行注入別的設定(例如塞一行關掉某個安全開關)。data_dir_owner.sh:chown -R 會不會跟著符號連結改到資料目錄外的檔;config_digest.sh 算的摘要拿去做什麼判斷。