# ISSAP Domain 4
* Author: 陳詰昌 Jeff C. Chen
* Email: power.shell@gmail.com
---
# 2025 Exam Outline (2025.8.1生效)
* 課程大綱 [Exam Outline](https://www.isc2.org/certifications/issap/issap-certification-exam-outline#Domain%201:%20Governance,%20Risk,%20and%20Compliance%20(GRC))

## Domain 4: 身份和存取管理 (IAM) 架構 – 佔比 25%
### 4.1 建構身份生命週期
* 4.1.1 建立身份並驗證(例如,實體、邏輯)
* <font color="yellow">4.1.2 分配識別符(例如,給用戶、服務、流程、設備、組件)</font>
* <font color="yellow">4.1.3 身份建立和解供除佈建(例如,新進、異動和離職員工流程)</font>
* 4.1.4 身份管理技術
### 4.2 建構身份驗證
* 4.2.1 定義身份驗證方法(例如,單因子、多因子、基於風險的提升)
* 4.2.2 身份驗證協議和技術(例如,安全斷言標記語言 (SAML)、遠端身份驗證撥號用戶服務 (RADIUS)、Kerberos、開放授權 (OAuth))
* 4.2.3 身份驗證控制協議和技術(例如,可擴展存取控制標記語言 (XACML)、輕量級目錄存取協議 (LDAP))
* 4.2.4 定義信任關係(例如,聯合、獨立)
### 4.3 建構身份授權
* 4.3.1 授權概念和原則(例如,自由裁量/強制性、職責分離 (SoD)、最小權限、互動式、非互動式)
* 4.3.2 授權模型(例如,實體、邏輯、管理)
* 4.3.3 授權流程和工作流(例如,治理、發布、定期審查、撤銷、暫停)
* 4.3.4 與系統、應用程式和資料存取控制相關的角色、權利和職責(例如,群組、數位版權管理 (DRM)、信任關係)
* 4.3.5 特權帳戶管理(例如,特權存取管理 (PAM))
* 4.3.6 授權方法(例如,單一登入 (SSO)、基於規則、基於角色、基於屬性、權杖、憑證)
### 4.4 建構身份會計_
* 4.4.1 確定會計、分析和鑑識要求
* 4.4.2 定義稽核事件
* 4.4.3 建立稽核日誌警報和通知
* 4.4.4 日誌管理(例如,日誌資料保留、日誌資料完整性)
* 4.4.5 日誌分析和報告
* 4.4.6 遵守政策和法規(例如,PCI-DSS、FISMA、HIPAA、GDPR)
# Domain 4: 身份和存取管理 (IAM) 架構 – 佔比 25%
## 4.1 建構身份生命週期
### Overview
* I+3A:
* IAM 的核心由「身份 (Identity)」、「身份驗證 (Authentication)」、「授權 (Authorization)」和「會計 (Accounting)」這三個要素組成。
* 存取控制是主體(subject)存取客體(object)之安全控制
* 主體的權限及對那個客體
* 那個是客體?
* A. 人,錯誤:人是主體。在此上下文中,主體是請求存取資源並可被識別和驗證的實體。在典型的存取控制場景中,主體(例如使用者)會根據其身分及其關聯的權限,被授予或拒絕存取客體(例如檔案、資料庫或裝置)的權限。
* B. 服務,錯誤:服務通常會發起作業或請求存取資源,因此在身分識別管理和存取控制的上下文中,它屬於主體。
* C. 進程(process),錯誤:在此上下文中,進程更有可能被視為主體而不是客體。進程通常會發起操作或請求存取資源,因此它屬於主體。
* D. 網路,正確:在身分識別管理和存取控制的上下文中,網路可以被歸類為客體,因為它代表了主體可能試圖存取的資源。
### 4.1.1 建立身份並驗證(Establish Identity and Verify)
#### 數位身分與驗證
1. 定義與主體:
* 數位身份是主體 (subject) 在線上交易中的獨特代表。
* 這裡的「主體」不僅指人類使用者或客戶,也包含程序 (process) 或其他能夠執行交易的實體。
* 數位身份不一定總是能直接連結到某個特定個人;它也可以透過假名 (pseudonym) 來創建。
2. 身份驗證 (Identity Proofing):
* 身份驗證是建立和核實(verify)身份的過程,其嚴謹程度應與風險成正比。
* 對於低風險系統,可能只需要簡單的驗證方式,如簡訊或電子郵件確認。
* 對於高風險系統,則需要更嚴格的身份證明程序,以確保身份僅授予經過授權的、真實的實體。如親自辦理
3. 授權與權利 (Entitlements):
* 當一個新的數位身份被創建後,必須為其指派權利 (entitlements)。
* 這些權利定義了新身份擁有者為完成其任務所需的特定權限(right)、許可(permission)或存取權限(access privilege)。
4. 持續性挑戰與風險:
* 數位身份面臨的一個持續挑戰是,上一次使用某帳號的人不一定是這一次的使用者。
* 由於身份驗證與核實通常是透過開放網路進行,這為假冒 (impersonation) 和其他攻擊創造了多種機會,可能導致對數位身份的詐欺性宣告。
* 根據NIST SP 800-63A的說明,在註冊過程中可能發生的威脅包括:使用偽造的身份證明文件、詐欺性地使用他人身份,以及用戶事後否認自己曾進行過註冊

5. 安全架構師的職責:
* 安全架構師負責設計企業的身份生命週期,確保所識別的需求完整、符合業務目標、客觀、實際、合法且可衡量。他們也必須在設計時考慮法律要求和限制,特別是涉及隱私、國家安全、關鍵基礎設施和金融資料保護的法規。
6. 保護所有主體與資產:
* 所有需要存取系統的內部和外部使用者(如客戶、業務夥伴、監管機構和供應商)都應被識別。保護範圍不僅限於設備、網路和資料,更擴及組織最寶貴的資產——人員。
### 4.1.2 分配識別符(Assign Identifiers)
1. 識別碼:所有指派的識別碼都應該是唯一且不可共用的
* 唯一性
* 不可共用性:因為這會使責任歸屬變得困難
2. 識別碼的類型:
* 使用者識別碼 (User IDs):為個人使用者指派的唯一值,在佈建生命週期中建立。對於內部使用者和許多外部使用者來說,這通常是唯一的。
* 裝置識別碼 (Device Identifiers):包括網路設備(如路由器或交換器)的 MAC 位址、IP 位址以及行動裝置。這些識別碼可用於建立存取和授權規則或存取控制清單 (ACL)。行動裝置管理 (MDM) 系統在裝置註冊時,會利用製造商指派的唯一號碼,並將使用者身份與裝置關聯起來。
* 程序識別碼 (Process Identifiers):通常由底層作業系統指派,例如 Windows 和 Unix/Linux 系統中的服務帳戶。程序使用者 ID (PUID) 是程序啟動時分配的唯一號碼,用於識別程序並實現程序之間的正確隔離,尤其是在容器環境中將容器的內部使用者映射到主機上的使用者。
3. 身份生命週期 (Identity Life Cycle): 指派識別碼的過程涵蓋了身份的整個生命週期,包括:
* 初始佈建 (Initial Provisioning):根據申請人的請求,在系統上建立識別碼並設定適當的授權級別。這必須符合當地法律、行業標準(如 PCI DSS)和組織政策。註冊員會確保申請完整,並指派唯一的識別碼,檢查其唯一性,並可能附加位置或部門等屬性。
* 維護 (Maintenance):在識別碼的運作壽命期間,對其進行管理。
* 撤銷佈建 (Deprovisioning):在識別碼生命週期結束時,將其停用或終止。在某些情況下,身份可能會被暫停一段時間,然後根據需要重新啟用。
4. 核心安全原則:
* 識別碼應僅發放給合法使用者。
* 應遵循最小權限原則 (Least Privilege),即授予使用者完成其工作職能所需的最低權限。
* 應使用擁有權證明 (Proof of Possession) 來確保識別碼的正確擁有權。
* 「身份、驗證、授權、會計 (IAAA)」模型強調在授予存取權限之前,必須識別請求實體並驗證其合法擁有者身份。
5. HR 與系統變更: 「加入者、異動者和離職者 (Joiners, Movers, and Leavers, JML)」是關鍵的人力資源流程,貫穿員工的整個身份生命週期,並與系統和應用程式的佈建、角色變更和撤銷佈建緊密相關。
### 4.1.3 身份佈建和解除佈建(Identity Provisioning)
1. 身份生命週期的完整流程 (The Provisioning Life Cycle)
* 身份配置 (Provisioning) 是一個涵蓋從申請 (request)、驗證 (validation/verification)、批准 (approval)、維護 (maintenance) 到最終停用 (deprovisioning) 的完整生命週期。
* 
* 此流程不僅適用於新進員工,也包括員工職位異動 (movers) 和離職 (leavers) 的情況,通常被稱為 JML (Joiners, Movers, and Leavers) 流程。
2. I+3A
* 生命週期的目標是將身份與存取管理 (IAM) 的四個核心要素——識別 (Identification)、驗證 (Authentication)、授權 (Authorization) 和會計/稽核 (Accounting)——整合在一起。
* 申請與批准階段 (Request and Approval)
* 流程始於申請者提出身份請求。這個請求可以是手動的,但現在多數已是自動化流程。
* 申請時,申請者必須提供必要的屬性與證明,例如姓名、地址等,並可能需要證明其非自動程式 (bot) 或提供「持有證明」(proof of possession),如回答秘密問題。
* 註冊官 (registrar) 會確保申請資料的完整性,並指派唯一的識別碼。
* 接著進入驗證 (Validation) 和核實 (Verification) 階段,以確保申請者提供的文件(如護照)是真實有效的,並且這些文件確實屬於申請人本人。
* 
* 解析(Resolution)
* 註冊服務機構的角色與職責:
* 在申請配置 (Provisioning Application) 之後,流程進入解析階段,此階段由註冊服務機構 (registrar) 負責。
* 註冊服務機構的首要任務是確保申請者提交的資料的完整性。
* 註冊服務機構會決定並指派一個唯一的識別碼 (identifier) 給該申請者。
* 確保識別碼的唯一性:
* 如果申請者自行選擇了識別碼,註冊服務機構必須確保該識別碼是唯一的,沒有被其他人使用或保留。
* 在某些情況下,識別碼可能需要包含其他屬性以確保其獨特性,例如地點或部門。舉例來說,不同國家的人民可能擁有相同的國民身分證號碼,因此需要將國家屬性與ID關聯,才能使其成為唯一的識別碼。
* 驗證(Validation)
* 驗證過程旨在確保申請中提供的屬性和證據真實、有效且可信。
* 例如,一個國家的邊境官員會先掃描護照,確認其有效性,然後再確定護照是否屬於提交檢查的人。
* 確認(Verification)
* 驗證是為了確保文件屬於提交者本人。
* 例如,當邊境人員拿起護照,將照片與提交人的臉部進行比對時,就會發生驗證。
* 身份維護 (Maintenance of the Identifier)
* 身份配置完成後,必須進行持續的維護,以確保存取權限與使用者當前的業務需求和法律要求保持一致。
* 一個常見的問題是「權限蠕升」(privilege creep),即使用者因職位調動而累積了過多不再需要的權限。維護流程應定期審查並移除這些多餘的權限,以符合知所必需 (Need-to-Know) 原則。
* 維護還包括處理使用者忘記密碼或ID的情況,並透過「持有證明」等方式安全地重置憑證。
* 合規
* 所有存取都必須受到監控,包括已批准和拒絕的存取請求。這將有助於識別惡意或未經授權的活動,並記錄所有授權活動。
* 身份的暫停與停用 (Suspension and Deprovisioning)
* 暫停 (Suspension):當使用者暫時不需要存取權限時(例如休長假、留職停薪或被調派到其他地方),最好是暫停其帳號而非直接刪除。這樣可以防止帳號被濫用,同時也簡化了使用者回歸時重新啟用帳號的流程。這對於管理外部人員(如承包商、季節性員工)的身份尤其重要,因為他們的身份狀態變化更為頻繁。
* 停用 (Deprovisioning):在身份生命週期結束時(例如員工離職或合約終止),必須及時撤銷其所有存取權限。這一步驟至關重要,可以防止已離職人員繼續存取敏感資源。
### 4.1.4 身份管理技術(Identity Management Technologies)
1. 憑證管理系統 (Credential Management Systems):
* 系統透過自動化工具取代手動流程,管理使用者初始註冊到密碼重置,以及向授權使用者授予新權限等身分生命週期。
* 旨在與業務需求同步擴展。
2. 密碼管理工具:
* 組織應透過政策、標準和程序來實施密碼管理,並與會話管理 (session management) 結合,確保閒置會話能及時終止。
* 許多用於儲存密碼的工具本身可能成為單點故障 (single point of failure) 或單點洩漏 (single point of compromise)。
* 與舊系統(legacy systems)整合時,某些密碼管理工具可能以明文形式傳遞身份驗證資訊,帶來安全風險。
3. 憑證技術:
* 憑證 (Certificates):大多數內部使用的證書由內部公鑰基礎設施 (PKI) 頒發,但若維護不當,可能會損害系統安全。
* 智慧卡 (Smartcards):如果卡片將被新使用者重複使用,則必須進行初始化,以確保前一個使用者的權限不會殘留在卡片上。讀卡器應是防篡改 (tamper-proof) 且符合 FIPS 140-2 標準的設備。
* 權杖 (Tokens):權杖可用作硬體或軟體形式。它們通常需要精確的時間同步,並需驗證其是否已過期。權杖本身可透過數位簽章保護,以防止被竄改。
4. 監控與審查:
* 所有系統的使用都應受到監控和審查,以確保存取控制措施有效。
* 監控應著眼於發現異常的登入時間,並透過行為分析來偵測用戶是否在會話期間從事與平常不同的活動。
5. 互通性協議與技術:
* 身份管理領域要求網路安全專業人員實施正確的協議和技術,以實現其目標。這些技術包括:
* 單一登入 (Single Sign-On, SSO):允許使用者透過一組憑證登入一次即可存取多個應用程式或網站。
* OAuth:一個用於授權的開放標準,定義了 OAuth 2.0 授權框架,避免在不同系統之間共用登入憑證。
* 安全斷言標記語言 (Security Assertion Markup Language, SAML):一個用於在不同身份提供者 (IDP) 和服務提供者 (SP) 之間傳遞授權憑證的開放標準,是網站單一登入的一種實現。
* 遠端身份驗證撥號使用者服務 (Remote Authentication Dial-In User Service, RADIUS):作為一個集中式 AAA (身份驗證、授權、會計) 伺服器,提供集中式身份驗證。
* Kerberos:一個使用對稱金鑰加密技術來保護不可信網路通訊的 SSO 方法,已應用多年。
6. 信任關係的建立:
* 網路安全專業人員還必須建立和促進不同類型人員(例如員工、訪客)與組織寶貴設施和資源之間的信任關係。
## 4.2 建構身份驗證 (Architect identity authentication)
### 4.2.1 定義身份驗證方法(Define Authentication Approach)
1. 身份驗證的三個因素: 個人或程序的身份驗證基於三個主要因素:
* 基於知識 (Knowledge-based):這要求個人知道某個秘密,例如密碼或個人識別碼 (PIN)。這類方法可能因易於猜測、洩露或被長期濫用而存在風險。
* 基於所有物 (Ownership-based):這要求使用者擁有一個實體設備,例如智慧卡、權杖 (token) 或 USB 隨身碟。其他例子還包括點數卡 (grid cards) 或透過簡訊 (SMS) 發送的一次性密碼。此類方法可能面臨中間人攻擊的風險。
* 基於特徵 (Characteristics-based):這類驗證越來越普遍,主要使用生物識別技術,即個人的生理或行為特徵作為唯一識別碼。
* 生理生物(biometrics)識別:如掌紋或指紋掃描、視網膜或虹膜掃描、靜脈掃描等。
* 行為生物識別:衡量個人的行為模式,例如簽名方式、鍵盤打字習慣或說話方式(聲紋)。
* 儘管生物識別技術強大,但仍可能被偽造,且註冊和儲存生物識別資料的過程需要仔細保護。
* 生物識別設備的準確性至關重要,需平衡錯誤拒絕率(Type I 錯誤,False Reject)和錯誤接受率(Type II 錯誤,False Accept),其交會點稱為平衡點或交叉錯誤率,代表系統最準確的狀態。

2. 多因子驗證
* MFA 的核心概念是結合兩種或以上不同類別的驗證因子(例如,密碼加上智慧卡),以彌補單一因子可能被破解的弱點。
* 只使用兩種相同類別的因子(例如,兩個密碼)不算是 MFA。
* 採用 MFA 是當前可接受的最低標準,這不僅能增強安全性,也能向外界證明組織已盡到應有的注意義務 (Due Care)。
3. 風險為本驗證方法
* 風險基礎 (Risk-based):應根據風險評估來決定需要何種級別的存取控制。高技能或高動機的威脅來源,需要更強健的控制措施來應對。系統的風險越高,存取控制就應該越嚴格。
4. 屬性為本存取控制 (Attribute-based Access Control, ABAC):
* ABAC 是一種細粒度的存取控制形式,常根據風險設定更嚴格的存取權限,因此也稱為風險智能存取控制。
* 它透過布林邏輯 (Boolean logic) 參數來定義個人的權利,即如果滿足特定條件,則可以採取特定行動。
* ABAC 使用四個主要屬性:
* 主體 (Subject):根據角色、職稱或許可級別賦予權利。
* 行動或操作 (Action or Operation):主體希望執行的動作級別,例如只讀、讀寫或批准流程。
* 客體 (Object):受行動影響的客體分類,例如機密、秘密或非機密。
* 情境 (Context):在特定時間、特定日期或特定位置才授予存取權限。連接類型(直接有線或無線)也可能影響權限。
5. 位置型存取控制 (Location-based Access Control):
* 也被稱為節點身份驗證 (node authentication),其存取控制受主體請求時所在位置的影響。
* 主體可能被要求在受信任的位置、預定義的 IP 位址或媒體存取控制 (MAC) 位址。
* 在某些情況下,存取權限僅從指定的設備序列號或憑藉許可證權杖授予。
* 透過受信任路徑連接,例如設備上的控制台或管理埠,也是一種形式。
### 4.2.2 身份驗證協議和技術(Authentication Protocols and Technologies)
1. 總體趨勢與聯邦化
* 傳統上,許多存取控制系統都是為每個系統客製化的,但現在更普遍的做法是使用標準化的、可互通的協議。
* 聯邦化 (Federation):透過在不同公司之間建立聯邦,可以傳輸身份驗證數據,從而避免了密碼交換的問題。聯邦通常由第三方身份驗證服務管理,允許使用者透過一組憑證登入多個系統。
* 身份驗證可以與輕量級目錄存取協議 (LDAP) 或活動目錄聯邦服務 (ADFS) 整合。
2. 主要的身份驗證協議與技術
* SSO (Single Sign-on, SSO):
* SSO 的概念旨在解決使用者需要記住多組帳號密碼的問題。
* 它允許使用者登入一次後,便能在多個系統和服務之間無縫存取,而無需重複驗證。
* OAuth:授權而非驗證的框架
* 一個用於授權的開放標準 (RFC 6749,OAuth 2.0 框架),基於 HTTP 訊息。
* 優點是避免在不同系統之間共用登入憑證,而是生成一個包含範圍、生命週期和存取屬性的存取權杖(access token)。
* 涉及四個主要角色:資源擁有者(Resource Owner)、資源伺服器(Resource Server)、客戶端(client)和授權伺服器(Authorization Server)。
* 授權伺服器負責向客戶端發放存取權杖,在確認資源擁有者是合作夥伴後給予授權。
* OpenID Connect:基於 OAuth 2.0,更容易實施,並使用 JSON Web Token (JWT) 作為身份識別權杖。
* 
* 安全斷言標記語言 (SAML):
* 一個開放標準,用於在不同身份提供者 (Identity Provider,IDP) 和服務提供者 (Service Provider,SP) 之間傳遞授權憑證。
* SAML 依賴 XML 格式的斷言 (assertion) 來傳遞身份驗證(identity provider)、屬性(principle)或授權決策(service provider)等資訊。
* 要使 SAML 運作,IDP 和 SP 之間必須先建立一個聯盟 (federation) 信任關係。
* 常用於網站的單一登入 (SSO) 實現,尤其適合企業內部的控制。
* 當客戶端成功登入身份提供者後,會獲得一個安全斷言,然後將其傳遞給服務提供者。
* 
* 遠端身份驗證撥號使用者服務 (RADIUS):為遠端存取而生的協定
* 作為一個集中式的 AAA (身份驗證、授權、會計) 伺服器,提供集中式身份驗證服務。
* 它是一個 IETF 標準,使用共享秘密來加密密碼,並支援多種身份驗證協議,包括密碼驗證協議 (PAP)、挑戰握手身份驗證協議 (CHAP) 和可擴展身份驗證協議 (EAP),以及 IEEE 802.1X。
* 可擴展身份驗證協議 (EAP):專為無線網路登入和點對點連線設計,有 EAP-TLS、EAP-TTLS 和 PEAP 等實施。EAP 的一個特點是伺服器發起身份驗證請求,這與 RADIUS 的客戶端發起模式不同。EAP-NOOB (頻外身份驗證) 允許透過獨立通道進行身份驗證,例如使用 QR 碼。
* Kerberos:成熟的 SSO 解決方案
* 一個已應用多年的 SSO 方法,其名稱來源於希臘神話中的三頭犬 Cerberus,象徵著 AAA(身份驗證、授權、會計)三個要素,其核心是金鑰分發中心 (Key Distribution Center, KDC)。。
* 使用對稱金鑰加密來保護不可信網路上的通訊。
* 它保護密碼、集中管理授權,並確保使用者連接到正確的伺服器或應用程式。
* Kerberos 的運作涉及3個組件:驗證伺服器 (Authentication Server, AS)、票證授予伺服器 (Ticket Granting Server, TGS) 和客戶端
* 客戶端向身份驗證伺服器 (AS) 請求票據授予票據 (TGT),然後使用 TGT 向票據授予伺服器 (TGS) 請求服務票據,最終透過服務票據建立客戶端與應用程式之間的安全通訊。身份驗證伺服器 (AS)、票據授予伺服器 (TGS) 和資料庫構成了 Kerberos 金鑰分發中心 (KDC),KDC 是存取控制實施的核心。
* 演唱會先要去搶票,拿到搶票成功憑證,在去超商繳費後取得演唱會門票,拿著門票去演唱會入口進入演唱會
* 
### 4.2.3 身份驗證控制協議和技術(Authentication Control Protocols and Technologies)
1. 輕量級目錄存取協議 (Lightweight Directory Access Protocol, LDAP)
* 定義與標準:LDAP 是 X.500 目錄標準家族的一部分,有其專屬的 RFCs(如 RFC 2251 和 4511,後者描述 LDAPv3)。
* 功能:LDAP 目錄包含使用者名稱和密碼等屬性,可支援本地或全球服務。
* 重要性:由於 LDAP 是存取控制系統的核心元素,因此應具備冗餘性以確保可用性。
* 架構:它被設定為一個層次化的目錄,且是供應商中立 (vendor neutral) 的協定,LDAP 作為一個廣泛部署的協議,常用於支援存取控制政策的實施。
2. 可擴展存取控制標記語言 (Extensible Access Control Markup Language, XACML)
* 定義與標準:XACML 是一個 OASIS 標準,主要應用於屬性為本存取控制 (ABAC)。
* 運作機制:它透過政策決策點 (Policy Decision Points, PDP) 和政策執行點 (Policy Enforcement Points, PEP) 來實施存取控制政策。
* 場景:XACML 則在許多 ABAC 實施中被採用。
### 4.2.4 定義信任關係(Define Trust Relationships)
1. 為不同實體建立信任關係 (Establishing Trust for Different Entities):
* 組織必須為需要存取其設施和資源的各類人員建立信任關係,這包括員工、訪客、業務合作夥伴以及其他非員工身份。
* 這個信任流程的核心是身份識別,確保只有經過授權的人員才能進入建築物、網路、應用程式、資料和系統。
2. 身份證明的角色 (Identification Requirements):
* ID 徽章是一種常見的身份證明方式,可用於建立信任關係,尤其是在實體存取控制方面。
* 為防止偽造,ID 徽章可以加入全息圖 (hologram) 等難以複製的元素。
* 為防止冒用,應將 ID 徽章與多因子驗證 (MFA) 結合,例如要求輸入 PIN 碼、密碼或進行生物辨識驗證。
3. 訪客與廠商的身份管理 (Identification of Visitors):
* 對於訪客,應建立一套流程,要求他們提供身份證明、由內部員工簽署負責,並發放有照片、註明權限且會自動失效的臨時徽章。
* 訪客在安全設施內可能需要全程有員工陪同。
4. 利用技術建立數位信任:
* X.509 憑證:可用於在不同組織的成員之間建立信任關係,這可能需要內部 PKI 系統之間的交互憑證 (cross certification) 或使用外部憑證。
* 防止電子郵件詐騙:透過如 DMARC 和 PKI 等技術,可以減少電子郵件詐騙攻擊,並在業務夥伴間建立信任關係。
* 識別碼技術:
* 磁條 (Ferromagnetic stripes):傳統上用於接觸式門禁卡,但容易受到灰塵和磁力干擾。
* RFID 晶片:用於非接觸式門禁卡,透過近場通訊 (NFC) 運作,讀取器產生的電場會向卡片上的晶片發出詢問。
* Wiegand 卡:一種難以複製的非接觸式卡片技術,其原理是利用嵌入卡內的特殊合金線材在強磁場下改變極性來產生二進位數據 。
5. 聯邦式信任 (Federated Trust):
* 在聯邦式信任模型中,身份提供者 (IdP) 和服務提供者 (SP) 會建立合約關係 。
* IdP 負責身份驗證與授權,而 SP 則信任 IdP 提供的身份驗證結果,並據此授予使用者存取權限 。
* 這種模型將帳號管理與服務本身分離,一個常見的實作是使用 SAML 2.0 。
## 4.3 建構身份授權 (Architect identity authorization)
### 4.3.1 授權概念和原則(Authorization Concepts and Principles)
1. 存取控制的核心地位 存取控制是資訊安全的核心。本節探討了指導存取控制管理發展和實施的幾個核心概念和原則。
2. 強制存取控制 (Mandatory Access Control, MAC) 與自主存取控制 (Discretionary Access Control, DAC)
* 自主存取控制 (DAC):
* 全球大多數存取控制系統都基於 DAC,依賴系統所有者來決定誰可以存取系統以及存取級別。
* 根據主體(如使用者和程序)的身份與「需要知道」 (need to know)原則,或物件(如檔案和資料實體)所屬的群組來限制對物件的存取。
* 控制是「自主的」自主性的 (discretionary),因為擁有特定存取權限的主體可以將該權限(即使是間接的)傳遞給任何其他主體,除非受到強制存取控制的限制。
*
* 強制存取控制 (MAC):
* MAC 是一種「非自主」(nondiscretionary) 存取控制。
* 根據物件中資訊的敏感標籤 (security label) 以及主體存取此類敏感資訊的正式授權 (formal authorization)來限制對物件的存取。
* 存取決策由系統強制執行,使用者無法自行決定。
3. 其他關鍵存取控制原則 除了 MAC 和 DAC,還有幾個其他重要的存取控制原則:
* 職責分離 (Separation of Duties, SoD):
* 旨在防止單一人員完成整個組織流程。例如,經理只能批准由他人提交的費用報告,而非自己的。
* SoD 的目標是透過要求多個個人參與來偵測和預防詐欺及錯誤。
* 需要知道 (Need to Know):
* 這項原則限制個人只能存取其履行職責所需的資訊。例如,實驗室的醫務人員可能只需要知道病患樣本的編號,而不需要知道病患姓名。
* 最小權限 (Least Privilege):
* 與「需要知道」密切相關,但兩者並不相同。最小權限設定了個人擁有的存取級別及時間,並可要求其他屬性,例如該個人是否位於受信任或不受信任的位置。
* 在許多情況下,最小權限在「需要知道」之後實施,但並非總是如此。個人或程序可能能夠向較高層級的系統提交資料,但他們不需要知道目標系統或其執行的功能。因此,他們擁有作為最小權限的讀/寫存取權限,但沒有「需要知道」的權限。
4. 互動式與非互動式登入
* 互動式:身份驗證過程先於授權機制,該機制授予對系統和應用程式的存取權限。
* 非互動式:非互動式登入通常指由腳本或程式代表使用者執行登入,通常限於執行特定的任務。自動化任務、軟體更新和排程備份都屬於非互動式登入的類型。
### 4.3.2 授權模型((Authorization Models)
1. 權限 (Permissions):
* 根據使用者的角色、職責和需求來授予或限制其權限。
* 權限決定了使用者可以在特定資源(例如檔案、資料夾或應用程式)上執行哪些操作。
2. 物件擁有權 (Ownership of Objects):
* 每個資源(物件)都有一個擁有者。
* 所有擁有者有權管理該物件的權限,擁有者可以授予或撤銷其他使用者的存取權限。
3. 權限繼承 (Inheritance of Permissions):
* 一些存取控制模型允許權限從父物件傳播到子物件。
* 繼承權限透過確保相關資源之間的一致性來簡化管理。
4. 使用者權利 (User Rights):
* 使用者權利定義了使用者可以在系統內執行的操作。這些權利包括登入、更改密碼或關閉電腦等權限。
* 使用者權利對於維護安全性和系統完整性至關重要。
5. 物件稽核 (Object Auditing):
* 稽核涉及追蹤和記錄與存取控制相關的事件。
* 它有助於監控使用者活動、偵測安全漏洞並維持合規性。
* 稽核日誌會捕獲諸如誰存取了物件、何時存取以及執行了哪些操作等詳細資訊。
### 4.3.3 授權流程和工作流(Authorization Process and Workflow)
1. 基於身份管理生命週期的授權流程:
* 一個有效的授權流程,是建立在一個完整的身份管理生命週期之上的。
* 這個生命週期涵蓋了從入職 (Onboarding)、定期審查 (Periodic reviews) 到撤銷 (Revocation) 的整個過程。
2. 入職與身份建立 (Onboarding and Identity Creation):
* 在入職階段,會為使用者、系統、應用程式或任何需要身份的實體創建身份。
* 這個過程包括透過官方表格和文件來驗證申請者的身份,也可能涉及由證書頒發機構 (CA) 頒發證書或指派數位 ID。
3. 定期審查與身份有效性 (Periodic Reviews):
* 組織必須實施政策和程序,來決定一個身份或憑證的有效期限。
* 這包括了員工的入職和離職流程,以及聯邦或企業法規中關於徽章或證書有效期的規定。
4. 撤銷與停用 (Revocation and Offboarding):
* 撤銷是身份與存取管理 (IAM) 生命週期中的一個關鍵環節。
* 例如,在公鑰基礎設施 (PKI) 系統中,必須遵循正式的撤銷規則和工作流程,以確保過期的證書被取消,並實施相應的政策和控制措施來回收過期的 ID、權杖和證書。
5. 身份的暫停 (Suspension):
* 對於外部身份(如承包商、季節性員工),由於其身份狀態變化頻繁,管理上帶來了獨特的挑戰。
* 一個關鍵需求是具備身份暫停 (Identity suspension) 的能力,也就是能暫時撤銷個人或實體的存取權限。
* 這種暫停能力讓 IT 人員可以輕鬆地停用一個身份,直到暫停被解除為止,從而顯著改善了對頻繁變動的外部和訪客身份的管理。

### 4.3.4 與系統、應用程式和資料存取控制相關的角色、權利和職責
1. 角色型存取模型 (Role-based access models, RBAC)
* 通常應用於系統、應用程式和資料,並涵蓋角色、權利和責任的指派。
* 角色定義:角色是根據個人的要求來定義的,例如他們的工作職能、組織成員身份以及資料的敏感度。
* 權限指派:一旦角色被定義,就會將權限分配給這些角色和群組。
* 身份驗證與監控:必須設定身份驗證方法,並持續監控角色、權限和群組的分配以及其存取權限。
* 避免例外:應避免為個別使用者進行一次性變更,因為這會導致 RBAC 系統變得極其複雜,不再以角色為基礎。
* 稽核:應持續審查系統、角色和群組,以消除任何不必要的存取或過高的權限。
* RBAC 工具:許多系統內建可作為起點的角色,並且可以擴展以適應特定情況。身份管理系統也可用於根據角色自動指派權限。
2. 數位版權管理 (Digital Rights Management, DRM)
* DRM 是一種技術,用於實施對產品的存取控制,例如限制產品的使用、複製、修改和分發。
* 限制安裝啟用:這類技術限制了軟體應用程式的安裝使用者數量,通常需要透過供應商伺服器進行線上啟用。
* 持續線上驗證:又稱「始終開啟」的 DRM,要求使用者必須保持線上連接才能使用產品,例如某些視訊遊戲。
* 軟體篡改:一些供應商引入了一種功能(或潛伏的錯誤),當產品被盜版時,該功能會停用應用程式或視訊遊戲,導致產品在連接時崩潰。
* 產品金鑰:最常見的驗證方式,使用者在安裝時輸入唯一的金鑰進行啟用。
* 企業級DRM:結合加密與身份存取管理,對內容進行加密後,再根據不同實體的身份應用存取和修改策略,常用於文件保護。
* 內容混淆系統:這種加密系統傳統上用於商業製作的多媒體光碟,以確保其無法複製和分發,新的標準使用與藍光和 DVD 相容的 56 位元和 128 位元加密標準。
* 串流服務:Netflix、Apple 和 Amazon Prime 等串流服務使用基於「網域」(domain)概念的授權,允許屬於同一用戶的一組設備共享許可證。
3. 信任關係 (Trust Relationships)
* 信任關係指的是一個組織外部的使用者或實體,因業務需要而被授予存取內部系統和資源的權限。
* 在權威網域伺服器上為外部實體建立獨立的群組原則,根據其使用者、設備和地點授予存取權。
* 網路對網路的信任關係:兩個路由器之間建立信任,透過存取控制清單 (ACL) 來限制來自其他主機或 IP 位址的協議和服務。
* 裝置註冊:記錄裝置以建立信任。
* 多因素身份驗證:根據所需區域或服務,透過多因素身份驗證來授予存取權限。
### 4.3.5 特權帳戶管理(Management of Privileged Accounts)
1. 特權帳號的定義與風險:
* 特權使用者 (Privileged users) 擁有對系統不受限制或管理員級別的存取權限。
* 濫用特權帳號是一個重大的安全風險。憑證竊取可能讓未經授權的人存取系統、安裝惡意軟體、提升權限或竊取資料。
* 這些帳號可能是有意或無意被濫用,對組織安全構成高度風險。
2. 特權帳號管理 (PAM) 的目標與實施:
* PAM (Privileged Account Management) 是一套流程與工具,用於保護、控制和監控對組織系統與資源的特權存取。
* 實施 PAM 的主要目標是減少憑證被盜的可能性,並滿足如職責分離 (Separation of Duties) 和最小權限 (Least Privilege) 等合規要求。
* PAM 透過提供精細的存取控制,例如限制存取時間、地點或設備,來降低風險。
3. 需要管理的特權帳號類型:
* 特權帳號不僅限於系統管理員,還包括多種角色,例如超級使用者 (super-users)、管理者、稽核員,以及一個經常被忽略的類型——廠商帳號 (vendor account)。
* 許多預設帳號(如廠商帳號、訪客帳號或維護帳號)經常帶有預設密碼,這些帳號必須被找出並加以控制(例如停用、暫停或更改密碼),以防被利用。
4. 具體的安全控制措施:
* 增強的密碼政策:特權帳號應遵循更嚴格的密碼規則,例如要求更長、更複雜的密碼,並且可能需要更頻繁地更換,甚至是一次性密碼 (single-use passwords)。
* 多因子驗證 (MFA):應為所有特權帳號強制實施 MFA,以增加額外的安全保護層。
* 屬性為基礎的存取控制 (ABAC):可以利用 ABAC 來限制特權帳號只能從特定的註冊設備、實體位址或連接埠進行存取。
* 持續的稽核與監控:所有特權帳號的活動都應受到持續的稽核與監控。日誌應被妥善保護,防止被刪除或竄改,並建議使用世界協調時間 (UTC) 以確保時間一致性。
### 4.3.6 授權方法(Authorization Approach)
1. 角色型存取控制 (Role-based Access Control, RBAC)
* 核心原則:RBAC 基於使用者所屬的組織和職能角色來授予權限。例如,一個使用者可以是「超級使用者」,被允許代表其他使用者進行某些更改,或是一個「管理員」。
* 優點:它簡化了身份管理,因為權限是分配給角色而非個別使用者。這對於管理大型企業的身份生命週期非常有效。
* 實施:許多身份管理解決方案旨在提供完整的身份生命週期管理服務,消除在整個企業部署域控制器的需求。
2. 屬性型存取控制 (Attribute-based Access Control, ABAC)
* 核心原則:ABAC 是一種基於物件、資料和 IT 資源的特徵(屬性)來授予存取的原則。其目的是保護這些資源免受未經授權的使用者或行動的影響。
* 適用範圍:這可以應用於個別使用者(基於角色、群組等),也可以應用於 IT 裝置,考慮其上下文因素,例如存取嘗試、位置、通訊協定和加密強度作為存取控制的屬性。
* 規則建立:ABAC 透過建立包含「如果/則」語句的存取規則來定義所有元件,包括使用者、資源和行動。
* 優點:它能夠在複雜的系統、應用程式和資料網路中提供細粒度的存取控制。
* 挑戰:由於其複雜性,它是一個勞力密集型模型,需要對通常複雜的規則集進行持續的管理和維護。
3. 權杖 (Tokens)
* 權杖式身份驗證:這是一種產生加密安全權杖的協定,使使用者能夠驗證其身份。
* 多因素身份驗證 (MFA):權杖通常與 MFA 機制結合使用,有助於防止未經授權的存取。
* 類型:存在多種授權權杖,包括硬體權杖(如 USB token)、JSON Web 權杖 (JWT)、一次性密碼 (OTP) 權杖、API token、API keys以及Basic Auth、OAuth和 HMAC。
4. 憑證 (Certificates)
* 憑證式身份驗證 (CBA,Certificate-based authentication):這種方法已被政府機構和其他安全環境使用了數十年,因其在物理環境中的可靠性和有效性而持續存在。它對於符合安全要求和協定至關重要。
## 4.4 設計身份會計
### 4.4.1 確定會計、分析和鑑識要求
1. 紀錄 (Accounting) 的核心功能:
* 紀錄功能能夠判斷使用者和實體的身分、角色以及他們在系統中採取的行動。
* 系統中執行的所有操作都會被賦予都唯一的身份識別碼 (ID) 與時間戳記。
* 紀錄的最終目標是實現可追溯性,這對於責任歸屬至關重要。
2. 可追溯性的重要性:
* 可追溯性指的是能夠追蹤某人所採取的行動,並將這些行動與他們聯繫起來。
* 一個具體的例子是保管鏈 (chain of custody),它要求對實體或邏輯行動的每一次交接都進行記錄,確保整個過程透明且可追蹤。
* 在系統中,這意味著可以追蹤用戶的登入時間、從應用程式或服務獲得授權的時間、打開或關閉檔案的時間,以及登出的時間等活動。
3. 取證要求 (Forensic Requirements):
* 身份管理系統的取證要求包括系統強化 (system hardening)、定期修補管理 (regular patch management)、嚴格的存取控制 (strict access controls) 和權限管理 (privilege management)。這些措施旨在確保系統能夠在發生安全事件時,可靠地支援鑑識調查。
* 為了滿足取證需求,身份管理系統必須具備多項安全措施。
* 系統強化 (System hardening):減少系統的攻擊面。
* 定期的補丁管理 (Regular patch management):修補已知的安全漏洞。
* 嚴格的存取控制 (Strict access controls):確保只有授權人員才能存取系統。
* 特權管理 (Privilege management):嚴格控制和監控具有高權限的帳號。
4. 稽核的重要性 (Auditing):
* 對身份與存取管理 (IAM) 事件進行稽核是身份會計不可或缺的一部分。
* 稽核過程應包括:
* 為所有 IAM 活動啟用日誌記錄,以捕捉使用者登入和政策變更等事件。
* 定期審查存取權限,確保使用者只擁有適當的權限,並移除不必要的存取權。
* 確保職責分離 (segregation of duties),防止任何單一個人擁有過多控制權。
* 定期更新 IAM 政策,使其與最佳實踐保持一致。
* 建立清晰的事件應變計畫,以應對安全漏洞或可疑活動。 * 啟用所有 IAM 活動的日誌記錄,以捕捉使用者登入和政策變更等事件。
* 定期審查 IAM 日誌,以發現異常活動。
* 進行定期的存取審查,確保使用者擁有適當的權限並移除不必要的存取。
* 確保適當的職責分離 (segregation of duties),以防止任何單一員工擁有過多的控制權。
* 定期更新 IAM 政策,使其符合最佳實踐。
* 制定清晰的事件回應計畫,以應對任何安全漏洞或可疑活動。
5. 身份會計計畫的建立:
* 建立一個可重複的流程和程序,以執行完整的身份會計計畫。
* 除了上述的稽核流程,還應定期進行審計,以確保符合安全要求和協議。
* 建立內部舉報熱線,用於報告可疑活動。
* 培訓員工識別深度偽造內容並立即報告可疑活動。
### 4.4.2 定義稽核事件 (Define Audit Events)
1. 稽核事件的定義:
* 一個 IAM 事件是指任何影響身份與存取管理系統的行動或變更。
* 這包括創建、修改或刪除使用者、群組、角色、權限、政策或憑證等活動。
* 這些事件可以由管理者、使用者、應用程式或外部來源觸發,並可能對系統的安全性和效能產生重大影響。
2. 稽核事件的目的與類型:
* 稽核事件可以是個別的目標或要求,例如,對所有使用者帳號的創建和刪除進行年度審查。
* 它也可以是因應特定情況而產生的需求,例如,因身份被盜用而向事件應變團隊提交報告。
* 建立一個有效的稽核流程,必須先審查公司政策和法規要求,以確定需要稽核哪些類型的事件,無論這些事件是計劃性的活動還是按需產生的要求。
### 4.4.3 建立稽核日誌警報和通知(Establish Audit Log Alerts and Notifications)
1. 整合於更廣泛的監控解決方案:
* 建立稽核日誌的警報與通知,通常不是一個獨立的流程,而是整合在一個更廣泛的安全監控與管理解決方案中。
* 所有系統、裝置和應用程式都具備啟用或停用日誌記錄的功能,並且可以對日誌的類型和數量進行配置。
2. 確保日誌功能的啟用與配置:
* 警報與通知流程的第一步是確保相關的日誌記錄與稽核功能已被啟用。
* 由於大量的日誌數據可能會影響系統效能,日誌設定通常會被客製化、匯總或刪除以最小化影響。因此,安全架構師需要確保稽核設定能夠捕捉到相關的資訊,例如事件類型、來源、時間、結果和詳細資訊。
* 日誌應使用加密技術來防止未經授權的存取或竄改。
3. 識別身份相關的日誌來源:
* 作業系統的事件和存取日誌是最常見的身份資訊來源,因為它們會記錄用戶的活動,如登入、存取、使用的服務、時間戳,以及操作成功或失敗的狀態。
* 以 Microsoft Entra ID (舊稱 Azure Active Directory) 為例,其互動式登入的日誌檔案就包含了豐富的身份相關資訊,例如:
* 使用者提供的帳號密碼。
* 使用者通過 SMS 多因子驗證 (MFA) 的挑戰。
* 使用者透過生物辨識(如 Windows Hello)解鎖PC。
* 登入地點。
* 是否應用了條件式存取 (Conditional Access) 政策。
4. 利用現有的警報框架與工具:
* 安全架構師應優先利用現有的資源和工具來設定警報,而不是從頭開發客製化的警報系統,因為後者既昂貴又耗時。
* 大多數作業系統和解決方案供應商都提供了基於安全和威脅防護的預設警報功能。
* 一個很好的實踐是參考如 MITRE ATT&CK® 框架這類的威脅框架。這些框架詳細描述了攻擊者為盜用身份、取得存取權限和竊取數據所採取的策略和技術。許多安全解決方案(如 Microsoft Defender)已經將其警報與 MITRE ATT&CK 框架的戰術進行了對應,例如分為偵察與發現、持續性與權限提升、憑證存取和橫向移動等類別。
5. 安全架構師的角色:
* 安全架構師需要了解各種威脅框架和戰術,並判斷哪些解決方案能為保護和管理身份安全提供最好的支援。
* 他們應了解各種供應商提供的預設日誌記錄和警報功能,以及這些警報在安全營運和事件管理流程中扮演的角色。
### 4.4.4 日誌管理 (Log Management)
1. 日誌的收集與儲存:
* 識別日誌來源:日誌管理的首要任務是識別所有相關的日誌來源。作業系統和設備默認會產生日誌,這些日誌可能包含與身份和存取相關的資訊。例如,Windows 的安全日誌就會提供登入和存取資訊,包括登入嘗試和政策變更。
* 集中化儲存:應將日誌重定向 (redirect) 或封存 (archive) 到一個集中的位置,以便進行分析和長期保留。
* 客製化配置:大多數日誌記錄功能允許進行一定程度的配置,以滿足安全要求,但默認的日誌記錄功能通常無法被客製化。
2. 日誌內容的客製化與配置:
* 捕捉關鍵資訊:日誌記錄與稽核設定應被配置以捕捉相關資訊,這些資訊至少應包括:
▪ 事件類型 (Event type)
▪ 來源 (Source)
▪ 時間 (Time)
▪ 結果 (Outcome)
▪ 詳細資訊 (Details)
* 考慮敏感資訊:安全架構師必須確保日誌中包含的任何敏感資料或隱私相關資料都經過混淆 (obfuscated) 或加密,並且限制對這些日誌的存取,以降低未經授權存取的風險。
* 避免敏感資料洩漏:在某些國家,如GDPR規範的地區,法規可能禁止將用戶的真實姓名作為其身份的一部分記錄在日誌中。
3. 日誌的保留與輪替 (Retention and Rotation):
* 遵循政策與法規:日誌的保留時長由組織的政策、法律及法規要求決定。
* 定期輪替:建議定期輪替日誌,即在特定日期後移除或刪除舊的日誌記錄。
* 降低舊資料風險:安全架構師應了解現有的保留政策,並評估保留過舊的資料是否會帶來不必要的安全風險(例如,舊資料可能被用於協助攻擊)。
### 4.4.5 日誌分析和報告(Log Analysis and Reporting)
1. 目的與重要性:
* 日誌分析旨在對日誌中包含的資訊進行持續審查,以達成多重目標,包括根本原因分析 (root cause analysis)、系統故障排查以及安全目的。
* 對於身份管理而言,日誌分析至關重要,但它可能不是一個獨立的功能,而是整合在更廣泛的營運或安全流程中。
* 稽核功能通常被設計為限制只有特定角色的使用者(如稽核員)才能存取,而事件監控功能則通常限制給負責事件應變和根本原因分析的營運或安全人員。
2. 流程與自動化:
* 由於日誌數據量龐大,純粹的手動視覺審查是不可行的,尤其是在大規模環境中。
* 大多數系統都具備自動化分析和產生報告的能力,也能透過 API 等介面將資訊轉發到其他系統,以關聯身份相關的事件。
3. 報告的建立與客製化:
* 應建立分析和報告流程,以利用現有的系統能力。
* 組織的目標應是建立符合其需求的報告格式和頻率。
* 報告內容可以非常具體,例如,使用者登入數據的使用報告、登入失敗次數最多的應用程式、權限提升事件,以及與使用者相關的角色和存取資訊等。
### 4.4.6 遵守政策和法規 (Comply with Policies and Regulations)
1. 身份治理是合規的關鍵:
* 身份治理是確保組織能夠控制「誰」可以在「何種情況下」存取敏感資料的核心機制 。
* 由於法規對資料處理有越來越嚴格的要求,身份與存取管理 (IAM) 系統必須從傳統的存取控制模型,演變為由政策驅動的適應性模式 。
* 有效的身份治理策略對於滿足如 GDPR、PCI DSS 和 HIPAA 等隱私法規至關重要 。
2. 關鍵的身份治理元素:
* 存取控制與角色管理:實施角色管理,根據使用者的職能和工作需求來分配權限。當使用者職位變動時,這種方式可以簡化權限的增刪,並透過限制存取來最小化未經授權用戶的資料曝險風險 。
* 自動化的身份生命週期管理:自動化確保使用者從入職到離職的整個過程中,存取權限都能根據政策自動地授予和撤銷。這可以減少帳號在使用者不再需要存取權限後仍保持活動的可能性 。
* 資料最小化與角色分割:隱私法規要求組織僅處理特定目的所需的最少量資料。透過角色分割 (Role segmentation),可以確保使用者僅被授予執行其工作職能所需的資料存取權,從而限制對敏感資料的存取 。
3. 滿足特定法規的要求:
* GDPR:要求對資料處理活動有明確且清晰的使用者同意。IAM 系統必須提供簡單的同意機制,並允許使用者輕鬆撤銷其權限 。
* PCI DSS:要求組織保護持卡人資料,並實施強健的存取控制措施以防止未經授權的存取 。
* FISMA:其要求是透過在系統設計初期就識別資料類型及其敏感度來滿足,這為後續滿足隱私要求和法規奠定了基礎 。