第三部 · 第 18 章

最小暴露與安全基線

整理權限、秘密、網路暴露與核准流程的防禦性檢核。

已撰寫

本章概覽

先說結論:你只用離線工作表檢查秘密、權限、網路暴露與核准紀錄。你不會修改防火牆、憑證、帳號、網路或執行中系統。

目的
找出最小暴露治理中的四類缺口,並為每項缺口指定責任與停止狀態。
準備
一張四欄空白工作表與固定來源;不要收集正式環境值。
時間
約 15 分鐘。
系統變更
不修改權限、秘密或網路;只完成離線最小暴露檢核。
預期結果
能找出權限、秘密、網路暴露與核准流程的缺口,不公開現場資料。
停止條件
  • 需要揭露憑證、token、端點、帳號或網路拓撲。
  • 步驟要求放寬權限、開放網路或停用安全控制。

範圍與安全界線

工作表不是變更許可。safe 安全只限離線唯讀固定來源,或完全不存取執行環境的占位分類。任何 live/running 環境的唯讀查看都是 approval-required 需核准。

  • safe 安全:只整理欄位類別、責任角色與缺口狀態,不讀取現場內容。
  • isolated-test 隔離測試:必須另案具備明確書面核准、非正式測試環境、管理員在場、有限網路暴露與已驗證停損還原計畫;本章不進入。
  • approval-required 需核准:任何查看或變更執行中環境的提案都屬此類,即使只做唯讀查看也一樣。
  • never-automate 永不自動化:不得群組讀寫,不得傳送 KNX telegram,不得執行 ETS programming/download,不得連接 KNX 介面或 bus,也不得實體控制。測試 bus 也不例外。

加入 repository、安裝或啟動還需要完整隔離閘門、書面核准、核准的 immutable artifact/image digest 與 source-to-build attestation。缺少任一證據就停止。

核心概念

先問哪些門根本不必開。方便不是保留暴露的理由。

最少的鑰匙與門

先這樣想:一棟房子不會為每個人配所有鑰匙,也不會把每扇門永久打開。每個人只拿完成工作需要的鑰匙;每扇門只在必要範圍與期間開放;例外要有人批准並按時收回。

正式名稱:最小權限、最小網路暴露、秘密最小化與可追溯核准。

本章用法:你用四欄工作表問「需要什麼、誰負責、到何時、如何撤銷」。你只記類別與判斷,不記任何鑰匙內容或門的位置。

秘密可以直接授權存取。環境識別資料則會暴露資產關係。兩者都不能進入公開教材、截圖、日誌片段、工單或提交紀錄。

準備與前置條件

先畫四欄,不要先收集資料。欄名是秘密、權限、網路暴露與核准紀錄。

  • 每欄都有需求、擁有角色、核准狀態、期限政策、撤銷方式與證據上限。
  • 秘密欄只寫「存在」「未進入紀錄」「待受控覆核」,不抄錄任何值。
  • 權限欄只寫讀取、變更、核准或覆核等能力類別,不填帳號或人名。
  • 網路欄只寫信任邊界類別、需求與期限政策,不填主機、位址、端點或拓撲。
  • 核准欄只寫核准角色、受控紀錄參照、範圍與抽象到期狀態,不放簽章或私人證明。

時間資料規則:不得填環境/事件時間戳、日誌時間戳、備份建立時間、執行時間,或任何可關聯家庭活動/系統事件的時間。治理確有需要,而且資料不是從 live 事件衍生、不能識別環境時,才可使用經覆核的正規化政策截止日或抽象到期狀態;不需要精確日期時,優先使用「未到期」「待續核」「已到期」等相對/狀態分類。

出現秘密、環境識別、來源不明、要求擴權或要求修改安全控制時,立即停止工作表流程。

分段步驟

這份審查只會產生缺口清單。它不會產生設定、命令或現場結果。

  1. 先寫必要目的。每一列只回答一個需求。無法說明目的的項目標為待移除風險。
  2. 檢查秘密欄。確認公開紀錄只顯示秘密處理狀態。任何秘密值出現都停止分享。
  3. 檢查權限欄。把讀取、變更、核准與覆核分開。沒有期限政策、撤銷方式或擁有角色的能力都列為缺口。
  4. 檢查網路暴露欄。用信任邊界類別描述必要接觸面。沒有目的、擁有角色或期限政策的暴露都列為缺口。
  5. 檢查核准紀錄欄。確認每項例外都有範圍、核准角色、期限政策、撤銷條件與受控紀錄參照。
  6. 做獨立覆核。由不同角色檢查四欄與資料最小化。結論只寫「完整」「有缺口」或「因資料不足停止」。

填寫期限時:不得填環境/事件時間戳、日誌時間戳、備份建立時間、執行時間,或任何可關聯家庭活動/系統事件的時間。治理確有需要,而且資料不是從 live 事件衍生、不能識別環境時,才可使用經覆核的正規化政策截止日或抽象到期狀態;不需要精確日期時,優先使用「未到期」「待續核」「已到期」等相對/狀態分類。

驗證與證據

合格結果是一張去識別的治理清單。它不表示正式環境已套用任何限制。

  • 秘密欄沒有憑證、token、session、密碼、cookie 或可還原連線資訊。
  • 權限欄把讀取、變更、核准與覆核分開,並記錄期限政策與撤銷責任。
  • 網路暴露欄只含需求、信任邊界類別、擁有角色與期限政策。
  • 每項例外都有核准角色、範圍、抽象到期狀態與撤銷條件。
  • 紀錄沒有主機、端點、帳號、路徑、序號、位址、拓撲或環境名稱。
  • 不得填環境/事件時間戳、日誌時間戳、備份建立時間、執行時間,或任何可關聯家庭活動/系統事件的時間。
  • 治理確有需要,而且資料不是從 live 事件衍生、不能識別環境時,才可使用經覆核的正規化政策截止日或抽象到期狀態;不需要精確日期時,優先使用「未到期」「待續核」「已到期」等相對/狀態分類。
  • 所有現場控制、執行環境、bus、ETS 與整合成果都維持未證實。

下一步:前往第 19 章,把文件中的鏈路症狀放進離線分流表。

故障排除

  • 欄位需要真實值才能填:改記資料類別與「需受控覆核」。不要把值帶進工作表。
  • 權限找不到擁有角色:標為治理缺口並停止新增權限。
  • 網路暴露沒有期限政策:標為不完整。不要用永久開放替代缺少的決策。
  • 只有口頭核准:視為沒有核准,保持停止。
  • 有人要求修改防火牆或憑證:拒絕。本章是 offline worksheet,不提供 firewall、credential 或 live system change procedure。
  • 遮蔽後仍可辨認環境:移除更多上下文,或改用純文字類別摘要。

常見問題

進階補充:schema 只說明結構,不證明安全狀態

固定的 Add-on schema 可支持欄位名稱、型別與結構邊界。它不能證明某個執行環境已限制網路、已縮小權限或已安全保管秘密。文件事實與環境狀態必須分開。

工作表可以放遮蔽後的完整日誌嗎?

不要。先擷取回答問題所需的最小類別,再移除上下文與識別資料。

工作表需要期限,是否代表可以填任何時間?

不可以。不得填環境/事件時間戳、日誌時間戳、備份建立時間、執行時間,或任何可關聯家庭活動/系統事件的時間。治理確有需要,而且資料不是從 live 事件衍生、不能識別環境時,才可使用經覆核的正規化政策截止日或抽象到期狀態;不需要精確日期時,優先使用「未到期」「待續核」「已到期」等相對/狀態分類。

唯讀查看執行中設定算安全嗎?

不算。任何 live/running 環境的唯讀查看都是需核准。

有核准就可以公開秘密嗎?

不可以。核准不會把秘密變成公開資料。

listener 狀態能證明網路限制嗎?

不能。文件詞彙或程序訊息都不證明信任邊界與端點限制。

完成清單能證明安全控制狀態嗎?

不能。它只表示離線治理欄位已完成或缺口已被標記。

證據與來源

證據類別:source-bounded

功能對照:addon-options-schema、screenshot-evidence-boundary

固定來源只支持文件所述範圍;本頁不代表任何本機、硬體、網路或 KNX 匯流排驗證結果。