# CISSP Domain 3:3.7 ~ 3.9 密碼分析攻擊與實體安全 ![image](https://hackmd.io/_uploads/SJ4jr06mWl.png) > 資料來源:ISC2官網 > **參考資料**:CBK Reference 6th、Sybex Study Guide 10th、Destination CISSP 2nd > 版權非本人,皆課本、網路上查詢、AI整理筆記,僅供讀書會使用 --- ## 3.7 理解密碼分析攻擊的方法 (Understand methods of cryptanalytic attacks) >沒有無法破解的密碼,只是時間問題。 ### 3.7.1 暴力破解 (Brute Force) #### 核心概念 窮舉法——嘗試所有可能的密鑰組合,直到找到正確的為止。 > 🎯 **教學比喻**:就像忘記行李箱的三位數密碼,從 000 試到 999,最多試 1000 次一定打得開。 ![image](https://hackmd.io/_uploads/rylrHyAmZl.png) > 比方說常見的八碼8小時可以破解,資料來源:網路 #### 影響暴力破解難度的因素 | 因素 | 說明 | 範例 | | ------------ | ----------------- | ------------------------------- | | **密鑰長度** | 每增加 1 bit,可能組合數翻倍 | 128-bit AES = 2¹²⁸ 種組合 | | **運算能力** | GPU、ASIC 可大幅加速 | 專用硬體可做大量重複運算 | | **演算法和參數成本** | 每次嘗試的運算成本 | bcrypt、PBKDF2和Argon2 故意設計成慢 | ### 補充:常見密碼攻擊手法比較 考試時請務必區分攻擊的**方向性**(針對單人還是多人)以及**資料來源**(猜測還是利用洩漏資料)。 | 攻擊類型 | 英文名稱 | 攻擊模式 (方向) | 關鍵特徵與應對 | | :--- | :--- | :--- | :--- | | **暴力破解** | Brute Force | **垂直攻擊**<br>(針對 1 人,試所有密碼) | • **特徵**:窮舉所有組合 (0000-9999)。<br>• **缺點**:極慢,且容易觸發帳戶鎖定。<br>• **防禦**:限制嘗試次數 (Account Lockout)。 | | **字典攻擊** | Dictionary | **垂直攻擊**<br>(針對 1 人,試常用字) | • **特徵**:使用常見密碼清單 (如 "password")。<br>• **防禦**:強制密碼複雜度、加鹽 (Salting)。 | | **密碼噴灑** | Password Spraying | **水平攻擊**<br>(針對所有人,試 1 個密碼) | • **特徵**:用「Summer2025!」去試 1000 個帳號。<br>• **目的**:**規避帳戶鎖定** (因為每個帳號只錯一次)。<br>• **防禦**:MFA、監控異常登入來源。 | | **憑證填充** | Credential Stuffing | **回收利用**<br>(利用已洩漏資料) | • **特徵**:拿 A 網站洩漏的帳密去登入 B 網站。<br>• **原理**:賭使用者在不同網站**共用密碼**。<br>• **防禦**:MFA、強制重設密碼。 | 圖解概念 (Vertical vs. Horizontal) * **Brute Force / Dictionary**: * 攻擊者 ➔ 👮 User A (試 1000 次 ❌ 鎖定!) * **Password Spraying**: * 攻擊者 ➔ 👮 User A (試 1 次 "123456") * 攻擊者 ➔ 👩‍⚕️ User B (試 1 次 "123456") * ... (不會被鎖定,總有人中獎) --- #### 生日攻擊 (Birthday Attack) 針對**雜湊演算法碰撞**的攻擊,利用「生日悖論」: * 只需要 **23 人**,就有 **>50%** 機率出現兩人同一天生日 * 對於 n-bit 的雜湊: * 暴力找碰撞約需 **2ⁿ** 次 * 生日攻擊約需 **2^(n/2)** 次 | 雜湊演算法 | 輸出長度 | 碰撞攻擊複雜度(約) | 安全性 | | ----------- | ------- | ---------- | :----: | | MD5 | 128-bit | 2⁶⁴ | ❌ 已不安全 | | SHA-1 | 160-bit | 2⁸⁰ | ❌ 已不安全 | | **SHA-256** | 256-bit | 2¹²⁸ | ✅ 仍安全 | --- #### 彩虹表 (Rainbow Tables) **概念**:預先算好「明文 → Hash」對應表,攻擊時直接查表。 ![image](https://hackmd.io/_uploads/H1XUc10mWl.png) ![image](https://hackmd.io/_uploads/B1jYqyA7Zg.png) > 舊的主機設定檔密碼只有使用MD5,因此看到5f4d開頭通常是passowrd,2123開頭通常是admin。 --- #### 對策:加鹽 (Salting) 與慢雜湊 (Slow Hash) | 對策 | 說明 | 能防什麼 | | ------------------------------------- | --------------------- | -------------------- | | **Salting(加鹽)** | 每個密碼加入**唯一隨機值**再 Hash | 讓彩虹表/預先計算失效;同密碼不再同雜湊 | | **PBKDF2、bcrypt、scrypt和Argon2** | 增加每次猜測成本(刻意變慢) | 大幅提高離線暴力猜測成本 | | **Pepper(加椒,延伸)** | 伺服器端加入秘密值(可搭 HSM) | DB 外洩也難以直接離線破解 | ```text 無鹽:Hash("password") = 5f4dcc3b...(每個人的 password 都一樣) 加鹽:Hash("password" + "x7Kp9") = a3b8c1d2...(每個人的鹽不同) ``` --- ### 3.7.2 唯密文攻擊 (Ciphertext Only) 攻擊者**只有加密後的密文**,這是攻擊者最艱難的處境。 #### 攻擊手法 - 收集大量密文,尋找統計規律或重複模式 - 對古典密碼可用頻率分析 - **也可嘗試暴力破解(猜 key和密碼)**,但因缺乏明文線索,通常只能靠「解密結果是否合理和是否通過格式或驗證」來判斷,難度高 - 對現代密碼(設計正確、key 足夠長)通常效果很差 --- ### 3.7.3 已知明文攻擊 (Known Plaintext) 攻擊者同時擁有**密文**和對應的**部分明文**。 >已知明文攻擊就是:我不只拿到密文,我還剛好知道其中一段明文長什麼樣(例如檔頭 %PDF、ZIP 的 PK、HTTP 開頭)。 這讓我有「對照組」可以比對密文和明文之間的關係。如果是老舊密碼或加密用法錯(像重複使用某些參數、或弱加密),這個對照組就可能變成破解線索;但如果是正確使用的現代加密(例如 AEAD、正確 nonce/IV),已知明文通常不會直接讓它被破解。 | 來源 | 說明 | | ---------- | ---------------------------- | | **檔案格式特徵** | ZIP 檔開頭固定 `PK`、PDF 開頭 `%PDF` | | **通訊協定** | HTTP 回應常見 `HTTP/1.1` | | **制式內容** | 報表/軍事電報常有固定用語 | :::info 📘 **WEP 案例(常見已知明文線索)** - 無線封包結構固定、協定欄位常可預測(形成已知/可猜明文片段) - 配合 WEP 的短 IV 與 RC4 keystream 重用風險,使推導/驗證更容易 - 重點:不是現代強加密本身被破解,而是 WEP 設計與使用方式太弱 ::: --- ### 3.7.4 選擇明文攻擊 (Chosen Plaintext) 攻擊者可以**主動選擇任意明文**,讓目標系統加密,觀察產出的密文。 | 攻擊類型 | 攻擊者角色 | 明文來源 | | ---- | :----: | ------------- | | 已知明文 | 被動 | 碰巧取得(檔頭、制式用語) | | 選擇明文 | **主動** | 攻擊者自己設計 | **中途島戰役 (1942)** | 階段 | 事件 | | :--- | :--- | | **背景** | 美軍截獲日軍密電,發現即將攻擊代號「AF」的地點 | | **問題** | 「AF」是哪裡?美軍懷疑是中途島,但無法確認 | | **選擇明文** | 美軍命令中途島發送**未加密**訊息:「中途島淡水設備故障」 | | **觀察密文** | 日軍截獲後,加密回報東京:「AF 淡水不足」 | | **結果** | 確認 AF = 中途島,美軍伏擊成功,太平洋戰爭轉折點 | --- ### 3.7.5 選擇密文攻擊 (Chosen Ciphertext) 攻擊者可以**主動選擇任意密文**,讓目標系統解密,觀察明文輸出。 #### 午餐時間攻擊 (Lunchtime Attack) > 趁同事去吃午餐,偷用他桌上的解密設備,在有限時間內送入大量密文進行解密測試。 #### 密文填塞攻擊(Padding Oracle Attack) **一句話**:攻擊者不是破解演算法,而是利用系統「解密失敗時回覆的錯誤差異」當線索,逐步推回明文資訊。 **為什麼叫 Padding?** - 某些區塊加密模式(常見情境:CBC)解密後需要檢查「填塞 Padding 是否正確」 - 如果系統會回覆不同訊息(例如:`Padding 錯`、`MAC 錯`、`格式錯`),就等於在告訴攻擊者「你這次改密文後,解密結果比較接近哪一種狀態」 **攻擊者利用的關鍵(Oracle = 占卜機)** - 攻擊者把密文做小幅修改丟回去測試 - 只要系統回覆能分辨「哪種錯誤」,就形成一個“Oracle”,提供可被反覆利用的線索 **對策** - **統一錯誤回應**:永遠只回「解密失敗」,不要區分錯誤類型(訊息/狀態碼/回應時間都盡量一致) - **優先採用 AEAD**(如 GCM / CCM):同時提供機密性 + 完整性,密文被改過就直接失敗,不提供可利用線索 ### 進階密碼分析概念 (Advanced Concepts) (補充) 除了上述基礎攻擊外,針對區塊加密還有兩種數學分析方法,考試常考其「明文需求」的差異: | 分析方法 | 英文 | 數學原理 | 攻擊需求 | | :--- | :--- | :--- | :--- | | **線性密碼分析** | Linear Cryptanalysis | 尋找明文與密文位元之間的線性關係 (Linear approximation) | **已知明文 (Known Plaintext)** | | **差分密碼分析** | Differential Cryptanalysis | 分析輸入細微差異 (Difference) 如何影響輸出差異 | **選擇明文 (Chosen Plaintext)** | | **因子分解攻擊** | Factoring Attack | 針對 RSA 演算法,試圖分解大質數 (N=p*q) | 數學難題破解 | --- ### 速記表(明文/密文四兄弟) | 攻擊 | 攻擊者有什麼 | 記憶點 | 難度 | | ------------------------ | --------- | ------------------------ | :---: | | **唯密文攻擊(Ciphertext Only)** | 只有密文 | 最難,靠統計 | ⭐⭐⭐⭐⭐ | | **已知明文攻擊(Known Plaintext)** | 密文 + 對應明文 | ZIP 檔頭 `PK`、Enigma Cribs | ⭐⭐⭐⭐ | | **選擇明文攻擊(Chosen Plaintext)** | 可加密任意明文 | **中途島戰役** | ⭐⭐⭐ | | **選擇密文攻擊(Chosen Ciphertext)** | 可解密任意密文 | **午餐時間攻擊** | ⭐⭐ | > 💡 **記憶**:從上到下,攻擊者「主動權」越來越大,難度越來越低。 --- ### 3.7.6 頻率分析 (Frequency Analysis) 利用語言的**統計特徵**破解替換式密碼。 | 排名 | 字母 | 頻率 | | :-: | :---: | :---: | | 1 | **E** | 12.7% | | 2 | T | 9.1% | | 3 | A | 8.2% | > 💡 記憶:最常出現的三字母單詞是 **THE** --- ### 3.7.7 實作攻擊(Implementation Attacks) **核心概念**:不破解演算法,而是利用「實作方式、部署設定、周邊元件」的缺陷來取得敏感資訊或繞過保護。 | 類型 | 說明 | 典型例子(考題語感) | |---|---|---| | 軟體/協定實作錯誤 | 驗證流程/邏輯錯誤、設定不當 | 憑證驗證不嚴謹 → MITM;錯誤訊息差異 → Padding Oracle | | 隨機數生成(RNG/PRNG) | 亂數不足/可預測 → key 可被推測 | 弱 RNG 導致金鑰可預測(經典:Debian OpenSSL 類型) | | 參數/模式使用錯誤 | IV/Nonce 重複或使用方式不正確 | 重複 Nonce / 固定 IV 破壞機密性 | | 記憶體/資料洩漏 | 敏感資料殘留或可被讀出 | Heartbleed 類型:讀到記憶體內的敏感資料 | 💡 格言:Don't roll your own crypto(不要自己亂寫密碼學,使用成熟且經驗證的函式庫和模組) 之前學過的柯克霍夫原則 (Kerckhoffs's principle)即使密碼系統的任何細節已為人悉知,只要密鑰未洩漏,它也應是安全的。 :::spoiler Debian OpenSSL 弱隨機數產生器漏洞說明 :::info 這是一個在資訊安全史上非常著名且經典的案例,通常被稱為 **Debian OpenSSL 弱隨機數產生器漏洞**(CVE-2008-0166)。 問題的核心並不在於 OpenSSL 原本的程式碼,而在於 **Debian 維護團隊在「打包」過程中,為了消除代碼檢測工具的警告,錯誤地註釋掉了關鍵的亂數種子(Entropy)程式碼。** 以下是詳細的技術分析與問題點: ### 1. 問題的具體位置:`md_rand.c` 問題出在 OpenSSL 原始碼中的 `crypto/rand/md_rand.c` 檔案。 Debian 的維護者在使用代碼檢測工具(如 Valgrind)檢查 OpenSSL 時,發現了兩行程式碼會導致「使用未初始化記憶體」(Use of uninitialized memory)的警告。維護者誤以為這是一個 Bug,因此在 Debian 的補丁中將這兩行程式碼註釋掉(移除)了。 被移除的關鍵程式碼類似於: ```c MD_Update(&m, buf, j); // 將系統隨機數據混合到狀態中 ``` 以及另一處類似的混合 entropy 的代碼。 ### 2. 為何這是一個災難?(技術原理) 這兩行看起來「使用未初始化記憶體」的程式碼,實際上是 OpenSSL 隨機數產生器(PRNG)設計中非常重要的一環。 * **原本的設計:** OpenSSL 會利用系統中各種「未初始化的垃圾數據」、時間戳記、系統狀態等來增加隨機性(Entropy),確保產生的金鑰無法被預測。 * **修改後的結果:** 當這幾行代碼被移除後,OpenSSL 的隨機數產生器**不再混合系統隨機數據**。唯一的「變數」只剩下當下的 **Process ID (PID)**。 ### 3. 造成的後果:金鑰空間極度縮小 由於唯一的變數只剩下 PID,而 Linux 的 PID 預設最大值通常是 32,768。這意味著: * **金鑰變成可預測的:** 在受影響的系統(Debian, Ubuntu 等,時間約為 2006-2008 年間)上產生的 SSH 金鑰或 SSL 證書,其可能的組合只有約 **32,768 種**(針對每種架構)。 * **暴力破解變得瞬間完成:** 攻擊者不需要破解加密演算法,只需要預先算出這 3 萬多個可能的金鑰(這被稱為 Blacklisted Keys),然後拿著公鑰去對照,一旦吻合,對應的私鑰就直接查到了。 ### 4. 影響範圍 這個漏洞影響了所有依賴 OpenSSL 產生金鑰的服務,包括但不限於: * **SSH Host Keys 和 User Keys:** 攻擊者可以輕易登入受影響的伺服器。 * **SSL/TLS 證書(HTTPS):** 加密通訊可以被解密。 * **OpenVPN 金鑰:** VPN 通道不再安全。 * **DNSSEC 金鑰**。 ### 5. 慘痛的教訓 這個事件給開源社群和資安界留下了幾個重要的教訓: 1. **不要輕易修改加密庫的原始碼:** 除非你完全理解該演算法的數學原理和實作細節。 2. **未初始化的記憶體有時是有意為之:** 在隨機數生成的領域,髒數據(Dirty Data)是熵(Entropy)的重要來源。 3. **溝通的重要性:** 維護者其實有在郵件列表中詢問 OpenSSL 開發者,但溝通上的誤解導致了維護者以為移除代碼是安全的。 ### 總結 Debian OpenSSL 的問題在於 **「為了修復一個無害的記憶體警告,意外移除了隨機數生成器的亂數來源」**,導致金鑰只依賴 PID,從而變得極易預測。 ::: --- ### 3.7.8 旁路攻擊 (Side‑Channel Attacks) 觀察系統運作時的**物理副作用**來推導機密資訊。 [ithome:研究人員以AI模型竊聽鍵盤聲可達到95%的準確率](https://www.ithome.com.tw/news/158171) | 信道 | 觀察目標 | 對策 | | -------------- | ------- | ------------- | | **功耗(Power)** | 電流消耗變化 | 恆定功耗設計、遮蔽、隨機化 | | **時序(Timing)** | 運算時間差異 | **恆定時間演算法** | | **電磁(EM)** | 電磁輻射 | 屏蔽、距離、濾波 | | **快取(Cache)** | 記憶體存取模式 | 隔離和修補、降低共享快取 | --- ### 3.7.9 錯誤注入 (Fault Injection) 故意讓密碼設備產生運算錯誤,從錯誤的輸出中推導密鑰。常見手法如下: * **電壓突波 (Voltage Glitching)**: 瞬間改變供電電壓(如製造電壓驟降或尖峰),導致處理器略過某些指令或執行錯誤。 * **時脈突波 (Clock Glitching)**: 瞬間改變時脈頻率(Overclocking 或插入短週期訊號),讓 CPU 來不及正確鎖存資料。 * **雷射注入 (Optical/Laser Fault Injection)**: 用雷射照射晶片特定區域(如記憶體或暫存器),引發位元翻轉 (Bit Flip)。 --- ### 3.7.10 時序攻擊 (Timing) 測量密碼運算所花費的**時間差異**,推斷內部狀態或密鑰。 #### 經典案例:密碼比對 ```python # ❌ 錯誤實作:比對到第一個錯誤字元就停止 # 輸入 "xdmin123":第 1 個字元就失敗,耗時 1 # 輸入 "admin999":比到第 6 個字元才失敗,耗時 6 # ✅ 正確實作:恆定時間比對(概念示意) def secure_compare(a, b): if len(a) != len(b): return False result = 0 for x, y in zip(a.encode(), b.encode()): result |= x ^ y return result == 0 ``` --- ### 3.7.11 中間人攻擊 (Man‑in‑the‑Middle, MITM) 攻擊者**秘密攔截並轉發**雙方通訊。 ```mermaid sequenceDiagram autonumber participant Alice participant Bob rect rgb(235,235,235) note over Alice,Bob: 正常通訊 Alice->>Bob: 訊息 Bob-->>Alice: 回應 end participant Mallory rect rgb(255,235,235) note over Alice,Bob: MITM 攻擊(Mallory 在中間攔截) Alice->>Mallory: 訊息(以為給 Bob) Mallory->>Bob: 轉送(可修改/記錄) Bob-->>Mallory: 回應 Mallory-->>Alice: 轉送(可修改/記錄) end ``` #### 對策 | 對策 | 說明 | | ------------------------- | --------------- | | **Mutual Authentication** | 雙方都要驗證對方身分 | | **Certificate Pinning** | 只信任特定憑證(注意維運風險) | | **HSTS** | 強制使用 HTTPS | --- ### 3.7.12 中間相遇攻擊 (Meet‑in‑the‑Middle) (補充) 這是針對**多重加密**(特別是 2DES)的經典攻擊。 #### 核心觀念:為什麼 2DES 無效? * **直覺誤區**:DES 金鑰長度 56 bits。我們會直覺認為做兩次加密 (2DES),強度應該是 $56 + 56 = 112$ bits。 * **殘酷現實**:因為中間相遇攻擊,2DES 的實際強度**只相當於 57 bits**(僅比單一 DES 強一倍,而不是指數級變強)。 #### 攻擊原理 (空間換取時間) 攻擊者不需要嘗試 $2^{112}$ 種組合,而是將攻擊拆成兩半: 1. **左邊攻 (加密)**:攻擊者已知明文 $P$,用所有可能的 $K_1$ ($2^{56}$種) 去加密,將結果存入**記憶體 (Hash Table)**。 2. **右邊攻 (解密)**:攻擊者已知密文 $C$,用所有可能的 $K_2$ ($2^{56}$種) 去解密。 3. **中間相遇**:每解密出一個結果,就去查表。如果發現**數值相同**,代表找到了一組可能的 $(K_1, K_2)$。 > **結論**: > 攻擊成本 = $2^{56}$ (加密) + $2^{56}$ (解密) = $2 \times 2^{56} = 2^{57}$ 運算量。 > **這就是為什麼我們直接使用 3DES,而跳過 2DES 的原因。** :::spoiler 點擊查看攻擊圖解 ```mermaid graph LR P[明文 P] --加密 (試 K1)--> M1[中間值 M?] C[密文 C] --解密 (試 K2)--> M2[中間值 M?] M1 -.比對吻合?.- M2 style M1 fill:#f9f,stroke:#333 style M2 fill:#f9f,stroke:#333 ::: --- ### 3.7.13 重送攻擊 (Replay Attack) (補充) 攻擊者**錄下**一段合法的通訊封包(例如登入請求),稍後**原封不動地重新發送**,試圖欺騙伺服器以獲取未經授權的存取。 #### 對策 (Countermeasures) 為了防止重送攻擊,必須確保每一個封包都是「獨一無二」且「具時效性」的: * **時間戳記 (Timestamp)**: 在封包中加入發送當下的時間。如果伺服器收到時間差異太大的封包,直接丟棄。 * **隨機數 (Nonce)**: "Number used once",每次通訊都使用一個只用一次的隨機數。伺服器記得用過的 Nonce,若發現重複則拒絕。 * **序號 (Sequence Number)**: 為每個封包編號(如 1, 2, 3...)。伺服器不接受序號重複或順序錯誤的封包。 * **挑戰-回應 (Challenge-Response)**: 伺服器給一個隨機難題 (Challenge),客戶端必須算出正確答案 (Response)。因為每次題目都不同,舊的答案(錄下的封包)就無效了。 --- ### 3.7.14 雜湊傳遞攻擊 (Pass the Hash, PtH) 攻擊者竊取主機記憶體(如 LSASS 程序)中的 **NTLM 雜湊值 (NTLM Hash)**,**不需要**花時間將其破解還原成明文密碼,而是直接「遞送」這個 Hash 給目標伺服器進行身分驗證。 > **核心概念**:在 NTLM 驗證機制中,擁有 Hash 就等同於擁有密碼。 #### 對策 (Countermeasures) * **限制或停用 NTLM (Restrict/Disable NTLM)**: 強迫系統改用更安全的 Kerberos 協定,減少 NTLM Hash 暴露的機會。 * **憑證防護 (Credential Guard) / LSA 保護**: 這是 Windows 10/Server 2016 之後的功能 (VBS),利用虛擬化技術將敏感的記憶體區域(存放 Hash 的地方)隔離起來,讓攻擊者即使拿到系統管理員權限也讀不到 Hash。 * **多因子驗證 (Multi-Factor Authentication, MFA)**: 即使攻擊者有了 Hash,沒有第二因子(如手機 Token)也無法登入。 * **最小權限 (Least Privilege) 與 分層管理 (Tiered Administration)**: 這是最重要的管理手段。嚴禁 Domain Admin (網域管理員) 登入一般使用者的電腦,防止高權限的 Hash 遺留在不安全的電腦中被竊取。 :::spoiler 點擊查看攻擊情境 (Mimikatz) 最常見的工具是 **Mimikatz**。 情境: 1. 駭客入侵了一台員工電腦 (User PC)。 2. 剛好網域管理員 (Domain Admin) 曾經登入過這台電腦幫忙修東西。 3. 駭客用 Mimikatz 從記憶體抓出管理員留下的 Hash。 4. 駭客用這個 Hash 直接連線到網域控制站 (DC),接管整個網路。 ::: --- ### 3.7.15 Kerberos 攻擊 (Kerberos Exploitation) | 攻擊 (Attack) | 偽造標的 | 關鍵材料 (The "Key") | 影響範圍 | **CISSP 關鍵考點與防禦 (Exam Focus)** | | :--- | :--- | :--- | :--- | :--- | | **Golden Ticket**<br>(黃金票據) | **TGT**<br>(身分證) | **KRBTGT** 帳號的 Hash | 🔴 **整個網域**<br>(Domain Admin) | 1. **信任崩潰 (Root of Trust)**:KRBTGT 是信任的根基,一旦洩漏,整個 KDC 架構瓦解。<br>2. **持續性 (Persistence)**:駭客可長期潛伏 (通常票期 10 年)。<br>3. **解法**:必須**重設 KRBTGT 密碼兩次** (徹底清除歷史紀錄)。 | | **Silver Ticket**<br>(白銀票據) | **ST**<br>(車票) | **服務帳號**的 Hash<br>(如 SQL, IIS) | 🟡 **單一服務**<br>(特定 Server) | 1. **隱蔽性 (Stealth)**:**不經過 KDC** (不經過櫃台買票),因此 DC 的 Event Log **查不到紀錄**。<br>2. **最小權限**:影響範圍僅限於該服務。<br>3. **解法**:定期更換服務帳號密碼、啟用 AES 加密。 | ![image](https://hackmd.io/_uploads/H1LHTeAmZg.png) 資料來源:網路 ![image](https://hackmd.io/_uploads/BJTd2eRmZe.png) 資料來源:網路 ### Kerberos 驗證流程圖解 (高鐵購票比喻) 這張圖展示了 Kerberos (地獄犬) 協定的三個關鍵階段。我們可以利用「**搭乘高鐵**」的流程來完美對應: #### 1. 驗明正身 (Authentication Service) * **圖中步驟**:① Request TGT with NTLM pass * **高鐵情境**:**「打開 APP 註冊/登入」** * **說明**: * 你向車站 (KDC) 出示身分證或輸入密碼。 * 驗證通過後,車站給你一張 **TGT (Ticket Granting Ticket)**。 * **意義**:這張 TGT 就像是你的「數位身分證」或「登入後的 Token」,證明你已經是合法使用者。 #### 2. 憑證換票 (Ticket Granting Service) * **圖中步驟**:② Request Service Ticket with TGT * **高鐵情境**:**「去櫃檯買票」** * **說明**: * 你要去特定的地方(例如:高雄),你不用再拿身分證,而是出示剛剛那張 **TGT**。 * 櫃台確認 TGT 有效後,發給你一張 **Service Ticket (ST, 服務票據)**。 * **意義**:這張 ST 就是「往高雄的車票」,專門用來存取特定的服務(如:檔案伺服器)。 #### 3. 驗票進站 (Resource Access) * **圖中步驟**:③ Request resource with Service Ticket * **高鐵情境**:**「把票給月台進入」** * **說明**: * 你拿著買好的 **Service Ticket (車票)** 走向月台閘門。 * 閘門 (Resource Server) 只認車票,不看你的密碼。票是真的,門就開。 * **意義**:伺服器確認你有合法的入場券,允許你存取檔案。 :::spoiler 為什麼需要「服務帳號 (Service Account)」?(補充) 這是一個「根本原因分析 (Root Cause Analysis)」的問題。 既然服務帳號風險這麼高(密碼萬年不改),為什麼不廢除它? 答案只有三個字:**「自動化 (Automation)」**。 #### 1. 核心概念:機器對機器 (M2M) 電腦世界不只有「人」在操作,「程式」也需要存取資源。 * **情境**:網頁伺服器 (Web Server) 想要半夜去資料庫 (DB) 抓資料。 * **問題**:如果沒有服務帳號,管理員必須半夜起床輸入密碼。 * **解法**:給程式一個專屬身分 (Service Account),讓它能 **24 小時自動** 運作,無需人類介入。 --- #### 2. 高鐵情境對照表 (User vs. Service Account) 利用 **「旅客」** 與 **「自動驗票閘門」** 的差異來理解: | 角色 | 電腦身分 | 特性 | 存在目的 | | :--- | :--- | :--- | :--- | | **旅客** | **使用者帳號**<br>(User Account) | 會回家睡覺、會忘記密碼、會離職。 | 為了讓 **「人類」** 操作電腦。 | | **自動驗票機** | **服務帳號**<br>(Service Account) | **24 小時不關機**、一直站在那裡工作、不需要休息。 | 為了讓 **「設備/程式」** 自動運作。 | > **💡 思考題:為什麼不能用「站長」的帳號讓閘門運作?** > 如果閘門是用站長的帳號登入,一旦站長**離職被刪帳號**,或是站長**改了密碼**,全台灣高鐵站的閘門就會同時當機! > 因此,我們需要一個 **「獨立於人類之外」** 的帳號。 --- #### 3. 資安風險比較 (為什麼駭客愛死它了?) 這張表解釋了為什麼 **Silver Ticket (白銀票據)** 攻擊如此致命: | 比較項目 | 人類帳號 (User) | 服務帳號 (Service Account) | 資安風險 (考點) | | :--- | :--- | :--- | :--- | | **互動性** | **Interactive**<br>(有人在打字) | **Non-Interactive**<br>(背景自動執行) | 沒人盯著看,駭客拿來用也不易被發現。 | | **密碼更換** | **頻繁**<br>(90 天強制更換) | **極少 / 從不**<br>(怕改了導致服務中斷) | **密碼萬年不改**,駭客一旦拿到 Hash,可以用好幾年 (Silver Ticket)。 | | **權限範圍** | 依部門變動 | 通常需要**高權限**<br>(如 Local Admin) | 一旦攻破,直接獲得該伺服器最高權限。 | --- #### 4. CISSP 解決方案 既然服務帳號是「必要之惡」,我們該如何管理? 1. **最小權限原則 (Least Privilege)** * **切勿**因為懶惰直接把服務帳號加入 Domain Admins。 * 只跑 SQL 就給 SQL 權限;只做備份就給 Backup Operator。 2. **使用 gMSA (Group Managed Service Accounts)** * **這是微軟的神器 (關鍵字)**。 * 傳統服務帳號:密碼寫死在程式裡 (危險)。 * **gMSA**:由 **AD (Active Directory) 自動管理密碼**。AD 每 30 天自動更換一組超長亂碼,並同步給伺服器,**人類完全不需要知道密碼**。這直接廢掉了 Silver Ticket 的長期有效性。 ::: --- ### ⚡ 快速對照表 | 步驟 | 英文術語 | 高鐵情境 (口訣) | 實際用途 | | :--- | :--- | :--- | :--- | | **Step 1** | **AS (Auth Service)**<br>換取 **TGT** | **APP 登入**<br>(拿身分證換識別證) | **登入**:證明你是合法使用者,取得購票資格 (SSO 基礎)。 | | **Step 2** | **TGS (Ticket Granting)**<br>換取 **ST** | **櫃台買票**<br>(用識別證換車票) | **授權**:用 TGT 換取特定服務的入場券 (Service Ticket)。 | | **Step 3** | **Access Resource**<br>存取服務 | **月台驗票**<br>(插票入站) | **存取**:拿著 ST 實際進入伺服器讀取資料。 | :::info 💡 **為什麼要這麼麻煩? (SSO 概念)** 就像在高鐵站一樣,一旦你登入取得了 **TGT (識別證)**,接下來不管你要買去台北、台中還是高雄的票,都只要出示 TGT 即可,**不需要**每次都重新輸入密碼。這就是 Kerberos 達成 **Single Sign-On (單一登入)** 的秘訣。 ::: --- ### 3.7.16 勒索軟體 (Ransomware) 利用加密技術鎖死資料、勒索贖金。 #### 對策 * 3‑2‑1 備份 * 備份要離線和隔離 * EDR、更新管理、最小權限 * 零信任原則 --- ## 3.8 將安全原則應用於場地與設施設計 (Site and Facility Design) > 類似機房樓層只能使用電梯進入,單一出口,利用安全原則設計。 ### 3.8.1 CPTED(透過環境設計預防犯罪) | 原則 | 概念 | 實例 | | ----------------------------- | ------ | ---------- | | **自然存取控制 (Natural Access Control)** | 引導人流動線 | S 形走道、單一入口 | | **自然監視 (Natural Surveillance)** | 讓人覺得被看 | 玻璃窗、良好照明 | | **領土強化 (Territorial Reinforcement)** | 區分公私邊界 | 圍籬、標誌 | | **目標加固 (Target Hardening)** | 增加物理障礙 | 防撞柱、強化玻璃 | ![image](https://hackmd.io/_uploads/SyArIUAQZg.png) 資料來源:網路 --- ### 3.8.2 場地選擇 (Site Selection) | 位置 | 建議 | 原因 | | -------- | :-: | ----------- | | **建築核心** | ✅ | 遠離外牆,減少外部威脅 | | **中間樓層** | ✅ | 平衡各種風險 | | **頂樓** | ❌ | 過熱、漏水、屋頂入侵 | | **地下室** | ❌ | 淹水風險 | > 💡 Low Profile:資料中心外觀低調、不掛招牌。 甚至地點也有重要,比方臺大醫院附近常常有人抗議,治安和影響病人休息。 --- # 3.9 設計場地與設施安全控制 (Facility Security Controls) > 機房沒有電就像cloudflare失效一樣,後面設備保護再好也沒有。 但 **「人身安全 (Life Safety)」永遠第一**,其次才是資產保護與業務連續性。 --- ### 3.9.0 周界安全控制 (Perimeter Security) 在進入建築物內部之前,必須先在外部周界進行防護(Layered Defense)。 #### 1. 圍籬 (Fences) 圍籬的高度決定了它的阻擋效果: | 高度 | 防護效果 (考點) | | :--- | :--- | | **3 - 4 英尺** (約 1m) | **阻擋誤入 (Casual Trespassers)** | | **6 - 7 英尺** (約 2m) | **阻擋多數入侵者** (太高不好爬) | | **8 英尺以上** (約 2.4m) | **阻擋決心入侵者 (Determined Intruders)**<br>*(通常需搭配帶刺鐵絲網)* | #### 2. 護柱 (Bollards) * **定義**:豎立在建築物入口或人行道上的短柱(水泥或鋼製)。 * **關鍵功能**:**阻擋車輛 (Anti-ramming)**,但**允許行人**通過。 * **適用情境**:防止車輛衝撞攻擊 (如汽車炸彈 VBIED) 或意外衝入。 ![image](https://hackmd.io/_uploads/BkHSuECQWg.png) > 護柱,資料來源網路 #### 3. 照明 (Lighting) * 主要功能是**威嚇 (Deterrent)** 與協助**偵測 (Detection)** (讓 CCTV 拍得清楚)。 * **考點**:並不能防止入侵,只能讓入侵者覺得「會被看見」而放棄。 * 標準:關鍵區域至少要有 2 英尺燭光 (2 foot-candles) 的亮度。 --- ### 3.9.1 配線設施 (Wiring Closets) **配線間 (Wiring Closet)** 是指建築物內用於容納線路與設備的**物理空間**。 在網路架構功能上,它通常容納 **IDF (中間配線架)**,負責將該樓層的線路彙整後連回主機房 (MDF)。 #### 📌 圖解重點:MDF和IDF圖示 ![image](https://hackmd.io/_uploads/r1frGmC7be.png) ![image](https://hackmd.io/_uploads/Hy_ZGQ0XWx.png) #### ⚠️ 常見風險與控制 (Physical Security) 由於配線間通常位於辦公樓層的角落,最常發生以下管理疏失: | 風險 (Risk) | 後果 (Impact) | 控制措施 (Control) | | :--- | :--- | :--- | | **未上鎖** | 駭客可直接實體接線竊聽 (Sniffing) 或拔線斷網。 | **強制上鎖**、門禁卡控管、裝設 CCTV。 | | **堆放雜物** | 變成掃具間或儲藏室,增加火災風險 (Class A)。 | **嚴禁堆放**易燃物 (紙箱、清潔劑)。 | | **通風不良** | 空間狹小導致熱氣聚積,設備**熱當機**或壽命減短。 | 確保獨立空調或通風扇,維持溫濕度監控。 | > **💡 考試關鍵字**: > **MDF (主配線架)**:連接 ISP 的源頭 (Demarc Point)。 > **IDF (中間配線架)**:各樓層的中繼站 (Edge)。 > **Wiring Closet**:這兩者的「家」,最容易被忽略實體安全的地方。 --- ### 3.9.2 伺服器機房與資料中心(Server Rooms / Data Centers) #### 資料中心分級 (Uptime Institute Tiers) | 層級 | 可用性 % | **每年停機時間 (約)** | 冗餘/特性 (考點) | | :-: | :---: | :---: | :--- | | **Tier 1** | 99.671% | 28.8 小時 | **N** (無冗餘),單迴路,有多個單點故障。 | | **Tier 2** | 99.741% | 22.0 小時 | **N+1** (部分冗餘),有備用發電機/冷卻。 | | **Tier 3** | 99.982% | 1.6 小時 | **N+1 (雙迴路)**,**可同時維修 (Concurrently Maintainable)**。 | | **Tier 4** | 99.995% | 26 分鐘 | **2N (雙系統)**,**容錯 (Fault Tolerant)**,電力與冷卻完全獨立。 | --- ### 3.9.3 限制區與工作區安全(Restricted & Work Area Security) #### 實體周界防護標準 (Perimeter Security) 針對實體圍籬 (Fences) 的高度與防護效果,教材有明確的分級標準: | 圍籬高度 | 防護效果 (考點) | | :--- | :--- | | **3 - 4 英尺** (約 1m) | **阻擋誤入 (Casual Trespassers)** | | **6 - 7 英尺** (約 2m) | **阻擋多數入侵者** (太高不好爬) | | **8 英尺以上** (約 2.4m) | **阻擋決心入侵者 (Determined Intruders)**<br>*(通常需搭配帶刺鐵絲網)* | > **💡 控制的功能順序 (The 6 D's)** > 在設計實體安全時,應遵循以下邏輯順序: > 1. **Deter (威嚇)**:如照明、警示牌。 > 2. **Deny (拒絕)**:如上鎖的門、防火牆。 > 3. **Detect (偵測)**:如 CCTV、感測器。 > 4. **Delay (延遲)**:如圍籬、雙重門 (爭取反應時間)。 > 5. **Determine (判定)**:確認是否為誤報。 > 6. **Decide (決定)**:執行回應程序。 #### 窗戶與入侵感測器選型 (Sensor Types) (補充) 針對窗戶防護,需依環境噪音選擇感測器: | 感測器類型 | 原理 | 適用環境 | | :--- | :--- | :--- | | **衝擊感測器**<br>(Shock Sensor) | 偵測實體**振動** (Vibration) | ✅ **吵雜環境** (如路邊、派對房)。<br>因為它不聽聲音,只感應敲擊震動。 | | **玻璃破碎感測器**<br>(Glass Break) | 偵測玻璃破碎的**音頻** (Microphone) | ✅ **安靜環境**。<br>一顆感測器可監聽多個窗戶,但易受環境噪音干擾。 | | **被動紅外線**<br>(PIR) | 偵測**熱能/溫度**變化 | ❌ **忌諱陽光直射**或熱源附近 (如印表機),易誤報。 | #### 五大關鍵 ![Gemini_Generated_Image_z84jiyz84jiyz84j](https://hackmd.io/_uploads/rkC6FVA7-g.png) 資料來源:AI產生 1. **分區與動線**: * 將區域劃分為 **Public (公開)** / **Controlled (管制)** / **Restricted (受限)**。 * 就像機場一樣,越往內層,檢查越嚴格 (Layered Defense)。 2. **訪客管理 (Visitor Control)**: * 關鍵字:**登記 (Log)**、**配戴識別證 (Badge)**。 * 考點:訪客必須 **「全程陪同 (Escorted)」**,不可讓其獨自行動。 3. **門禁與防尾隨 (Anti-tailgating)**: * 技術:刷卡、生物辨識。 * 物理設施:**旋轉門 (Turnstile)**、**人員陷阱 (Mantrap)**。 * *註:Mantrap 是防止尾隨最有效的物理控制。* 4. **監控與威嚇**: * **CCTV**:事後蒐證用 (Detective)。 * **照明 (Lighting)**:最便宜的威嚇手段 (Deterrent),主要為了保護人員安全。 * **保全 (Guards)**:最具彈性與判斷力的控制 (但也最貴)。 5. **工作區資料防護 (Work Area Security)**: * **淨空桌面 (Clean Desk Policy)**:機密文件不可留在桌上。 * **螢幕鎖定 (Screen Lock)**:離開座位自動鎖定。 * **防窺片 (Privacy Screen)**:防止肩窺 (Shoulder Surfing)。 #### 📌 圖解重點:Mantrap ![Mantrap 示意圖](https://hackmd.io/_uploads/BJBwSMAQWg.png) > **Mantrap (人員陷阱/雙重門)**: > 一次只過一個人,第一道門關上鎖住後,第二道門才能開。是**防止尾隨 (Piggybacking/Tailgating)** 的終極解法。 :::spoiler 補充:法拉第籠 (Faraday Cage) 與 訊號遮蔽 除了軍事等級的防護外,法拉第籠在現代商業資安中主要用於**阻隔無線訊號**。 #### 1. 核心原理 利用金屬網或導電材質包覆特定空間,形成等電位,使外部的電磁波無法進入,內部的電磁波無法傳出。 #### 2. 應用場景 * **防止 TEMPEST(電磁洩漏攻擊)**:阻隔螢幕或設備發出的微弱電磁輻射,防止被還原成畫面(防竊聽/側錄)。 * **阻斷通訊 (Signal Blocking)**: * **機密會議室 (SCIF)**:牆壁內夾銅網,確保手機、Wi-Fi、錄音筆無法將訊號傳輸出去,防止「帶路雞」洩密。 * **數位鑑識 (Digital Forensics)**:警方查扣嫌疑犯手機時,會放入**法拉第袋 (Faraday Bag)**,防止手機接收到遠端「清除資料 (Remote Wipe)」的指令,確保留存證據。 * **防禦 EMP (電磁脈衝)**:保護關鍵設備不因核爆或太陽風暴產生的瞬間高壓而燒毀。 #### 3. 生活實例 * **微波爐**:門上的金屬網就是法拉第籠,孔洞大小設計為擋住微波(長波長),但讓可見光(短波長)通過。 * **電梯**:在訊號不好的舊式金屬電梯裡手機沒格,就是被法拉第籠效應遮蔽了。 :::info **💡 補充:主動 vs. 被動** * **法拉第籠**是「被動」屏蔽,在特定區域**物理性**阻擋訊號。(合法,常用於機房) * **訊號干擾器 (Jammer)** 是「主動」發射雜訊蓋過正常訊號。(通常**違法**,因為會干擾到周邊公共通訊) ::: --- ### 3.9.4 公用事業與 HVAC (Utilities/HVAC) 機房環境控制的核心目標是在**降低風險**(靜電、過熱、結露)與**提高能源效率**(PUE)之間取得平衡。 目前業界普遍遵循權威機構 **ASHRAE (美國採暖、製冷與空調工程師學會)** 的最新建議標準。 #### 環境溫濕度風險對照表 (ASHRAE 標準) | 環境因子 | 狀態 / 範圍 | 主要風險 / 後果 (Consequence) | | :--- | :--- | :--- | | **濕度**<br>(Humidity) | **太低 (<40%)** | **靜電 (ESD)**:可能瞬間擊穿敏感晶片,造成永久損壞。<br>*(註:即便有防靜電地板,濕度過低仍會產生高壓靜電)* | | | **太高 (>60%)** | **結露 (Condensation)**:導致電路短路、金屬接點腐蝕。 | | | ✅ **建議範圍** | **40% – 60% RH** (相對濕度) | | | | | | **溫度**<br>(Temperature) | **太冷 (<18°C)** | **浪費能源**:PUE 值過高,且增加冷熱交會時的結露風險。 | | | **太熱 (>27°C)** | **設備過熱**:導致熱當機 (Thermal Shutdown)、零件壽命縮短。 | | | ✅ **建議範圍** | **18°C – 27°C** (攝氏) / **64°F – 81°F** (華氏) | >雖然機器普遍說軍規可以耐高溫,但實務上遇過機房冷氣壞掉氣溫上升,機器為了保護自己全部關機。 #### 機房冷卻最佳實踐:冷熱通道 (Hot / Cold Aisles) (補充) 為了避免冷氣與熱氣混合 (Mixing) 導致效率降低,機房機櫃的排列必須遵循特定規則: * **排列方式**:**「面對面,背對背」** (Face-to-Face, Back-to-Back)。 * **冷通道 (Cold Aisle)**:機櫃**正面**相對,冷氣從高架地板吹出,設備吸入。 * **熱通道 (Hot Aisle)**:機櫃**背面**相對,熱風匯集,由天花板抽走。 ![image](https://hackmd.io/_uploads/SyA1UGRXWl.png) > 圖示:典型的冷熱通道氣流動線,資料來源網路 ### 3.9.4-1 機房特殊設施 (補充) (Facility Details) #### 1. 高架地板 (Raised Floor) 機房通常會在地板上架高 18~24 英吋,形成一個夾層。 * **主要功能**: 1. **充氣室 (Plenum)**:作為冷空氣的輸送通道 (Cold Air Distribution)。精密空調將冷風打入地板下,透過開孔地板 (Perforated Tiles) 向上冷卻設備。 2. **線路管理 (Cabling)**:隱藏電源線與網路線,避免絆倒人員。 3. **接地網 (Grounding)**:地板下的金屬支架可作為訊號參考接地網 (Signal Reference Grid),減少雜訊干擾。 4. **防淹水緩衝**:若發生小規模漏水,水會流在地板下,不會直接浸泡伺服器。 * **相關風險**: * 地板下不可堆放垃圾或易燃物 (Housekeeping)。 * 需定期清潔,防止灰塵堆積被冷風吹入機器。 #### 2. 空調冷卻方式:氣冷 vs. 水冷 機房冷氣**不一定**是水冷的,取決於規模與熱負載。 | 類型 | 專有名詞 | 原理 (白話文) | 優缺點 (CISSP 觀點) | | :--- | :--- | :--- | :--- | | **氣冷式**<br>(Air Cooled) | **DX 系統**<br>(Direct Expansion) | **跑冷媒**。<br>就像家裡的冷氣,銅管內流動冷媒,透過室外機散熱。 | ✅ **安全**:機房內無大量水源。<br>❌ **效率差**:不適合超大型機房。<br>📍 **適用**:中小型機房 (Server Room)。 | | **水冷式**<br>(Water Cooled) | **CW 系統**<br>(Chilled Water) | **跑冰水**。<br>由中央空調製造冰水,透過水管送到機房內的空調箱 (CRAH)。 | ✅ **效率高**:冷卻能力極強。<br>❌ **風險高**:機房內有高壓水管,**爆管風險 (Single Point of Failure)**。<br>📍 **適用**:大型資料中心 (Data Center)。 | > **💡 趨勢補充 (液冷時代)**: > 隨著 AI 伺服器 (如 NVIDIA H100) 發熱量暴增,傳統氣冷/水冷已快扛不住。 > 最新技術是 **「浸沒式冷卻 (Immersion Cooling)」**——直接把伺服器泡在不導電的特殊液體裡散熱。這在未來的考試可能會出現。 ### 3.9.4-2 天花板設施 (補充) (Ceilings) #### 1. 懸吊式天花板 (Suspended / Drop Ceiling) 類似高架地板的概念,在真實樓板下方架設的「假天花板」。 * **主要功能**: * **熱回風 (Hot Air Return)**:作為熱氣回收的充氣室 (Plenum)。 * **美觀與管線遮蔽**。 #### 2. 關鍵實體弱點:"Up-and-Over" 攻擊 * **風險**:若隔間牆只蓋到假天花板的高度,攻擊者可從隔壁房間爬過天花板上方侵入機房。 * **防禦 (Control)**: * 機房牆面必須是 **Slab-to-Slab (樓板到樓板)**,也就是「頂天立地」,穿過假天花板直抵真實結構。 #### 3. 消防安全:Plenum-rated Cables * **原理**:天花板上方常作為空調回風路徑。 * **風險**:普通纜線 (PVC) 燃燒會產生**有毒氣體**,隨空調擴散全棟。 * **對策**:必須使用 **Plenum 等級 (CMP)** 線材,其外皮燃燒時無毒、低煙。 #### 4. 現代趨勢:上方走線 (Overhead Cabling) 將纜線架設於機櫃上方的 **Ladder Rack (梯形架)**,而非藏在地板下。 * **優點**: 1. 避免阻擋地板下的冷空氣流動 (Better Airflow)。 2. 避免地板淹水損壞線路 (Water Protection)。 --- ### 3.9.5 環境問題(Environmental Issues) * **天然威脅**:地震、洪水、颱風、雷擊。 * **人為威脅**:爆炸、化學洩漏、施工震動、粉塵、鄰近高風險設施。 * **控制措施**:避開洪泛區、安裝漏水偵測 (Water Leakage Detector)、架高地板、除塵濾網。 * **重要觀念**:水與電在一起必有損害,**灑水系統啟動前必須自動切斷電源** (EPO)。 --- ### 3.9.6 火災預防與滅火 (Fire Prevention & Suppression) #### 火災發展四階段 (Four Stages of Fire) 了解火災階段有助於選擇正確的偵測器: 1. **初期階段 (Incipient)**:無可見煙霧,只有空氣電離微粒。 *💡 **最佳偵測時機**:使用 **VESDA (極早期偵測)** 可在此階段發現。 2. **發煙階段 (Smoke)**:可見煙霧產生,但尚未起火。 3.**火焰階段 (Flame)**:肉眼可見火焰,火勢蔓延快。 4. **高熱階段 (Heat)**:溫度劇烈升高,一切都在燃燒。 *⚠️ 此時才偵測到通常為時已晚 (熱感應器反應最慢)。 **核心目標**:保護人員安全 (Life Safety) > 保護資產 > 業務連續性。 #### 1. 火災類別與機房對策 (Fire Classes) **考試重點**:機房火災屬於 **Class C (電氣火災)**。 雖然切斷電源後會變成 Class A 或 B,但在切斷前,**絕對嚴禁用水**! | Class | 燃燒物 | 一般場所滅火 (通用) | 機房建議方案 (Best Practice) | |:-----:|--------|-------------------|-----------------------------| | **A** | 普通 (木/紙) | 水、泡沫、ABC 乾粉 | 潔淨氣體 (機房應避免堆積紙箱) | | **B** | 液體 (油) | 泡沫、CO₂、ABC 乾粉 | 潔淨氣體 (機房甚少有油類) | | **C** | **電氣設備** | **ABC 乾粉**、CO₂ | **✅ 潔淨氣體 (FM-200 / Novec)**<br>*(避免使用乾粉造成二次破壞)* | | **D** | 金屬 | 特殊乾粉 (Class D) | ❌ 機房不應發生此類火災 | | **K** | 廚房油脂 | 濕式化學 | ❌ 機房內禁止開伙 | #### 2. 為什麼機房禁用「乾粉 (ABC Dry Powder)」? 這是一個常考的觀念陷阱。市售滅火器標示「適用 ABC」,代表它在**物理上**可以撲滅電氣火災,但在**維運上**是災難。 ![乾粉滅火器的悲劇](https://hackmd.io/_uploads/rygG5MRXbx.jpg) * **清潔難度**:乾粉具腐蝕性、遇熱融化黏在主機板上。 * **結果**:火滅了,但伺服器也報廢了 (設備存活率 0%)。 * **結論**:機房請愛用 **潔淨氣體 (Clean Agent)**。 #### 3. 自動滅火系統 (Suppression Systems) 考試重點在於區分**水系統的運作機制**,以及確認**機房的最佳選擇**。 | 系統類型 | 介質 | 噴頭狀態 | 運作特性 | 機房適用性 (考點) | | :--- | :--- | :--- | :--- | :--- | | **Clean Agent**<br>(潔淨氣體) | **氣體**<br>(FM-200 / Novec) | 開放噴嘴 | **全區淹沒 (Total Flooding)**。<br>氣體充滿空間吸熱或阻斷燃燒,**不傷設備、無殘留**。 | 🏆 **機房首選 (Best Practice)**<br>保護資產的最佳方案。 | | **Pre-action**<br>(預動式) | 水 | 閉合<br>(有玻璃球) | **雙重確認 (Double Interlock)**:<br>需「偵測器觸發」+「溫度夠高」才噴水。<br>**優點**:防止誤噴水。 | ✅ **次佳選擇**<br>若建築法規要求必須裝灑水頭,請指定用此系統。 | | **Wet Pipe**<br>(濕管式) | 水 | 閉合 | 管線常時有水,反應快、成本低。<br>但在機房有漏水風險。 | ⚠️ **普通辦公室用**<br>不建議用於機房。 | | **Dry Pipe**<br>(乾管式) | 空氣 | 閉合 | 管線平常只有空氣,水在閥門後。<br>主要為了防結冰。 | ❄️ **寒冷地區/倉庫用**<br>非機房主要考量。 | | **Deluge**<br>(洪水式)(補充) | 空氣 | **開啟**<br>(無玻璃球) | **全區同時噴水**,水量極大。<br>用於對付延燒極快的火災。 | ❌ **機房絕對禁用**<br>✅ 油庫、飛機棚 | --- #### 🧠 決策邏輯圖 (Decision Tree) 考試時請依照此邏輯選答案: ```mermaid graph TD Start((機房滅火需求)) --> Q1{首選方案是什麼?} Q1 -->|預算足夠/資產極重要| Gas[🏆 潔淨氣體 Clean Agent] Gas --> GasEx[FM-200, Novec 1230] Q1 -->|法規強制用水/預算考量| Water[💧 水基系統 Water Based] Water --> Q2{選擇哪種水系統?} Q2 -->|為了防止誤噴損壞設備| Pre[✅ 預動式 Pre-action] Q2 -->|為了防止管線結冰| Dry[❄️ 乾管式 Dry Pipe] Q2 -->|一般辦公環境| Wet[Wet Pipe] Q2 -->|絕對不能選| Deluge[❌ 洪水式 Deluge] style Gas fill:#d4edda,stroke:#28a745,stroke-width:2px style Pre fill:#fff3cd,stroke:#ffc107,stroke-width:2px style Deluge fill:#f8d7da,stroke:#dc3545,stroke-width:2px ``` #### 4. 火災偵測器類型 (Detectors) 考試重點在於 **「選對地點」**,避免誤報 (False Positive) 或偵測太慢。 **1. 煙霧偵測器 (Smoke Detectors)** - *最常見,適用於人員活動區域* * **光電式 (Photoelectric)**:適用於**一般辦公室** (偵測悶燒)。 * **離子式 (Ionization)**:適用於**化學實驗室** (偵測快速燃燒)。 * **極早期偵測 (Aspirating / VESDA)**:**機房專用 (必考)**。主動吸氣分析微粒,比人類嗅覺更靈敏,能在火災發生前示警。 **2. 溫度偵測器 (Heat Detectors)** - *適用於環境較髒亂區* * 適用於 **廚房、車庫、鍋爐房**。 * **理由**:這些地方平常就有煙霧或廢氣,若裝煙霧偵測器會導致誤報,改用溫度偵測才準。 **3. 火焰偵測器 (Flame Detectors)** - *特殊用途* * 偵測紅外線/紫外線,適用於 **油庫、彈藥庫** (需要極快反應)。 --- ### 3.9.7 電力問題 (Power Issues) 與 防護對策 #### 1. 電力異常名詞定義表 (病症) | 狀態 \ 時間 | 瞬間 (Momentary) | 長時間 (Prolonged) | **對應防護設備 (藥方)** | | :--- | :--- | :--- | :--- | | **高電壓 (High)** | **Spike (尖峰)** | **Surge (突波)** | ✅ **突保護制器 (Surge Protector)** | | **低電壓 (Low)** | **Sag (驟降)** | **Brownout (低壓)** | ✅ **UPS / 穩壓器 (Regulator)** | | **沒電 (None)** | **Fault (故障)** | **Blackout (停電)** | ✅ **UPS (短時) + 發電機 (長時)** | --- #### 2. 常見電力防護設備 (Countermeasures) 針對哪種問題,該使用什麼設備? * **突波保護器 (Surge Protector / Suppressor)**: * **功能**:專門處理 **Spike (尖峰)** 與 **Surge (突波)**(高電壓)。 * **原理**:利用金屬氧化物壓敏電阻 (MOV) 將過多的電壓導向地線,保護設備不被燒毀。 * **不斷電系統 (UPS)**: * **功能**: 1. **Online UPS**:提供純淨電源,修正 Sag (驟降) 與 Brownout (低壓)(電壓不穩)。 2. **Battery Backup**:在 Fault 或 Blackout 時提供臨時電力,爭取**正常關機**或**啟動發電機**的時間。 * **發電機 (Generator)**: * **功能**:專門處理長時間的 **Blackout (停電)**。 * **限制**:啟動需要時間,必須搭配 UPS 來填補市電中斷到發電機啟動之間的空窗期。 * **湧入電流 (Inrush Current)**:設備剛啟動瞬間產生的巨大電流,可能導致跳電。 >實務上客戶就是沒有裝突波保護器,台電電一來然後打壞十多台交換器的電源供應器。 ![image](https://hackmd.io/_uploads/BksT24Cm-e.png) --- ### 3.9.8 媒體儲存(Media Storage) * **實體防護**:防火保險櫃、存放位置需高於地面 (防淹水)、遠離強磁場。 * **管理程序**: * 聘請媒體保管員 (Librarian)。 * 使用登記和借出流程。 * 媒體歸還或報廢時,執行消磁 (Degaussing) 或銷毀。 >廠商POC進入公司的機器歸還時硬碟也要消磁。 --- ### 3.9.9 證據儲存(Evidence Storage) * **Chain of Custody (監管鏈)**:確保從收集到法庭的過程中,證據未被竄改。需完整移交與簽名紀錄。 * **雙人控管 (Two-Person Control)**:存取證據室需兩人同時在場。 * **技術控制**:雜湊驗證 (Hashing)、防竄改封條、隔離網路。 --- ### 3.9.10 冗餘電力系統 (Redundant Power 和 UPS) (補充) #### UPS 的角色定位 UPS (不斷電系統) **不是發電機**!它的核心任務是: 1. **救急 (Short-term)**:提供 5-15 分鐘電力,讓伺服器優雅關機 (Graceful Shutdown)。 2. **橋樑 (Bridge)**:在發電機啟動暖機 (約 1 分鐘) 期間,支撐電力不中斷。 #### 三種 UPS 類型比較 | 類型 | 運作特色 (考點) | 切換時間 | 適用場景 | | :--- | :--- | :---: | :--- | | **離線式**<br>(Off-line) | 平常走市電,停電才切換電池。<br>構造簡單。 | 有<br>(4~10ms) | 個人電腦 | | **在線互動式**<br>(Line-interactive) | 具備 **AVR (自動穩壓)**。<br>電壓不穩時不吃電池,靠變壓器調整。 | 有<br>(較短) | 辦公室網路設備 | | **在線式**<br>(On-line) | **雙轉換 (AC→DC→AC)**。<br>電力品質最純淨。 | **零切換**<br>(0ms) | **關鍵機房**<br>銀行核心系統 | #### 2N 架構示意圖 (Tier 4 等級) ```mermaid graph TD classDef source fill:#f9f,stroke:#333,stroke-width:2px; classDef device fill:#bbf,stroke:#333,stroke-width:2px; classDef critical fill:#f96,stroke:#333,stroke-width:4px; subgraph Side_A ["路徑 A (Active)"] direction TB SourceA["市電 A"]:::source GenA["發電機 A"]:::source ATSA["ATS 自動切換 A"]:::device UPS_A["UPS A (在線式)"]:::critical PDU_A["PDU A"]:::device end subgraph Side_B ["路徑 B (Active)"] direction TB SourceB["市電 B"]:::source GenB["發電機 B"]:::source ATSB["ATS 自動切換 B"]:::device UPS_B["UPS B (在線式)"]:::critical PDU_B["PDU B"]:::device end subgraph Rack ["伺服器機櫃"] Server["關鍵伺服器 (雙 PSU)"]:::device end SourceA --> ATSA GenA --> ATSA ATSA --> UPS_A UPS_A --> PDU_A PDU_A --> Server SourceB --> ATSB GenB --> ATSB ATSB --> UPS_B UPS_B --> PDU_B PDU_B --> Server ``` #### 電力切換流程 (Sequence Diagram) ```mermaid sequenceDiagram autonumber participant Utility as ⚡ 市電 participant ATS as 🤖 ATS participant Gen as 🚜 發電機 participant UPS as 🔋 UPS Note over Utility, UPS: 💥 停電 (Blackout) rect rgb(255, 230, 230) Note right of Gen: 🚀【啟動階段】<br/>UPS 電池放電支撐<br/>發電機暖機 (10-60s) ATS->>Gen: 啟動訊號 Gen->>ATS: 電力 Ready ATS->>UPS: 切換至發電機供電 end Note over Utility, UPS: ... (發電機持續供電) ... Utility->>ATS: 市電恢復 rect rgb(225, 245, 254) Note right of ATS: ⏳【觀察階段】<br/>等待 5-10 分鐘<br/>確認市電穩定 ATS->>UPS: 切回市電 end rect rgb(232, 245, 233) Note right of Gen: ❄️【冷卻階段】<br/>發電機空轉散熱 (Cool-down) Gen->>Gen: 熄火 end ``` --- # CISSP Domain 3.7 - 3.9 模擬試題 (HackMD 版) ## 3.7 密碼分析攻擊 (Cryptanalytic Attacks) #### Q1. 攻擊者攔截了發送給您伺服器的加密訊息,並且試圖通過監測解密過程中的**電力消耗**和**處理時間**來推斷加密金鑰。這屬於哪種類型的攻擊? * A. 選擇明文攻擊 (Chosen-plaintext attack) * B. 旁路攻擊 (Side-channel attack) * C. 生日攻擊 (Birthday attack) * D. 暴力破解攻擊 (Brute-force attack) :::spoiler 點擊查看答案與解析 > **答案:B** > **解析:** 旁路攻擊(Side-channel attack)不直接攻擊加密演算法本身,而是利用系統實作上的物理特徵(如功耗、電磁輻射、執行時間)來竊取資訊。選項 A 涉及加密選定的明文;選項 C 針對雜湊碰撞;選項 D 是嘗試所有可能的金鑰組合。 ::: --- #### Q2. 為了防禦**彩虹表 (Rainbow Table)** 攻擊,下列哪項措施最為有效? * A. 定期更換密碼 * B. 使用更長的密碼 * C. 在雜湊過程中加鹽 (Salting) * D. 使用對稱式加密 :::spoiler 點擊查看答案與解析 > **答案:C** > **解析:** 彩虹表是預先計算好的雜湊值對照表,用來快速破解雜湊密碼。透過「加鹽 (Salting)」,即在密碼雜湊前加入隨機數據,可以確保即使兩個用戶使用相同的密碼,其雜湊值也會不同,從而使彩虹表失效。 ::: --- #### Q3. 在密碼分析中,如果攻擊者擁有**密文**及其對應的**明文**,並試圖推導出金鑰,這種攻擊模式稱為什麼? * A. 唯密文攻擊 (Ciphertext-only attack) * B. 已知明文攻擊 (Known-plaintext attack) * C. 選擇密文攻擊 (Chosen-ciphertext attack) * D. 頻率分析攻擊 (Frequency analysis) :::spoiler 點擊查看答案與解析 > **答案:B** > **解析:** 已知明文攻擊(Known-plaintext attack)是指攻擊者擁有部分明文以及對應的密文,並利用這些資訊來試圖破解金鑰或演算法。 ::: --- #### Q4. 下列哪一種攻擊方式是利用**生日悖論 (Birthday Paradox)** 的機率原理,試圖在雜湊函數中找到兩個不同的輸入產生相同的輸出(碰撞)? * A. 字典攻擊 (Dictionary attack) * B. 中間人攻擊 (Man-in-the-middle attack) * C. 碰撞攻擊 (Collision attack) 或 生日攻擊 * D. 重放攻擊 (Replay attack) :::spoiler 點擊查看答案與解析 > **答案:C** > **解析:** 生日攻擊利用機率論中的生日問題,即在一個群體中,兩人剛好同一天生日的機率比直覺上高得多。在密碼學中,這被用來尋找雜湊碰撞(Collision),即 $H(x) = H(y)$。 ::: --- ## 3.8 & 3.9 實體安全 (Physical Security) #### Q5. CPTED (Crime Prevention Through Environmental Design) 的核心概念中,利用建築設計、照明和景觀美化來提高被觀察的機會,從而嚇阻犯罪者,這稱為: * A. 自然存取控制 (Natural Access Control) * B. 領地強化 (Territorial Reinforcement) * C. 自然監控 (Natural Surveillance) * D. 目標強化 (Target Hardening) :::spoiler 點擊查看答案與解析 > **答案:C** > **解析:** 自然監控(Natural Surveillance)是 CPTED 的原則之一,旨在通過物理設計(如窗戶位置、修剪樹木、適當照明)讓入侵者容易被內部人員或路人看見,從而降低犯罪意圖。 ::: --- #### Q6. 在資料中心遭遇電氣火災(如伺服器機櫃起火)時,應使用哪一類型的滅火器? * A. Class A * B. Class B * C. Class C * D. Class K :::spoiler 點擊查看答案與解析 > **答案:C** > **解析:** > * Class A:普通可燃物(木頭、紙)。 > * Class B:易燃液體(油、汽油)。 > * **Class C:電氣設備火災 (Electrical)**。使用不導電的滅火劑至關重要。 > * Class D:可燃金屬。 > * Class K:廚房油脂。 ::: --- #### Q7. 關於實體安全中的**圍籬 (Fencing)** 高度,若要能夠嚇阻**意志堅定**的入侵者(難以攀爬),建議的最低高度通常是多少? * A. 3-4 英尺 (約 1 公尺) * B. 5 英尺 (約 1.5 公尺) * C. 6-7 英尺 (約 2 公尺) * D. 8 英尺 (約 2.4 公尺) 以上並加裝倒鉤鐵絲網 :::spoiler 點擊查看答案與解析 > **答案:D** > **解析:** > * 3-4 英尺:僅具界線標示作用。 > * 6-7 英尺:對一般人有阻擋作用,因為太高難以輕易攀爬。 > * **8 英尺以上 (加上頂部防護)**:被認為能有效阻擋意志堅定的入侵者。 ::: --- #### Q8. 在設計伺服器機房的 HVAC (暖通空調) 系統時,為了防止外部灰塵和汙染物進入機房,應保持機房內的氣壓為: * A. 正壓 (Positive Pressure) * B. 負壓 (Negative Pressure) * C. 等壓 (Neutral Pressure) * D. 真空 (Vacuum) :::spoiler 點擊查看答案與解析 > **答案:A** > **解析:** 伺服器機房應維持**正壓 (Positive Pressure)**。這意味著當門打開時,空氣會從機房內部流向外部,從而防止外部未經過濾的髒空氣或灰塵被吸入機房內。 ::: --- #### Q9. 下列哪一種門禁系統的失效模式 (Failure Mode) 最適合用於確保**人員安全 (Human Safety)**(例如火災逃生出口)? * A. Fail-Secure (失效安全/閉鎖) * B. Fail-Safe (失效開啟) * C. Fail-Closed (失效關閉) * D. Anti-passback (反潛回) :::spoiler 點擊查看答案與解析 > **答案:B** > **解析:** > * **Fail-Safe (失效開啟)**:當電源中斷或系統故障時,鎖會自動解開,確保人員可以逃生(以人身安全為優先)。 > * Fail-Secure (失效閉鎖):故障時保持上鎖(以財產安全為優先,常用於金庫)。 ::: --- #### Q10. 在選擇資料中心的地點時,下列哪項是**最不**建議的特徵? * A. 建築物外觀低調,沒有明顯標示 * B. 位於地勢較高的區域以防洪水 * C. 位於飛機航道正下方或危險化學工廠旁 * D. 距離緊急服務(如消防局)的回應時間較短 :::spoiler 點擊查看答案與解析 > **答案:C** > **解析:** 實體安全選址應避免危險區域,如飛機航道下方(墜機風險)、化工廠旁(爆炸或毒氣風險)、地震斷層帶或洪水區。選項 A、B、D 均為良好的安全實踐。 :::