電腦安全-L1
Computer Security Concepts
CIA Triad
Confidentiality
- Assurance
- Data confidentiality: 私人或機密資訊不會洩漏給
未經授權的人 - Privacy: 個人可以控製或影響與其相關的信息是否被蒐集和儲存
- Data confidentiality: 私人或機密資訊不會洩漏給
- Requirements
- 對資訊存取與揭露的授權限制
- 保護個人隱私與專有資訊的方法
- Definition of Loss
- 資訊在未經授權的情況下被揭露
Integrity
- Assurance
- Data integrity: 資訊與程式只能以
指定且經授權的方式被修改 - System integrity: 系統能在未受損的狀態下,正常執行其預期功能
- Data integrity: 資訊與程式只能以
- Requirements
- 防止資訊被不當修改或刪除
- 確保資訊的
不可否認性與真實性- 不可否認性 (non-repudiation): 送出訊息的人不能事後否認
- Definition of Loss
- 資訊在被經授權的情況下被修改或刪除
Availability
- Assurance
- 系統能夠即時運作,且
不會拒絕授權使用者的服務請求
- 系統能夠即時運作,且
- Requirements
- 確保資訊能被即時且可靠地存取與使用
- Definition of Loss
- 資訊或資訊系統的存取或使用受到中斷
Other Two Concepts
- Authenticity (真實性)
- 某項屬性或資訊是真實的,且可以被驗證與信任
- 能確信一個傳輸內容、訊息或其發送者是有效且真實的
- Accountability (可歸責性)
- 要求某個實體的行為能夠被唯一地追蹤到該實體
- 能夠追查到安全事件的負責方
Challenges of Computer Security
- 需求看起來很簡單,實際的安全機制可能非常複雜
- 成功的攻擊往往從完全不同的角度看問題,並利用意想不到的弱點
- 安全機制通常很複雜,需要考慮到各種威脅
- 放在網路的哪個位置、架構的哪一層?
- 如何產生、分發與保護金鑰?
- 若依賴底層協定,會讓開發更複雜
- Attacker 只需要找到一個漏洞就能成功;Designer 必須堵住所有漏洞
- 使用者直到安全事件發生前都感受不到好處
- 現代環境忙碌、資源有限,難以實時監控
- 不是設計流程的組成部分,常常事後才補充
- 造成使用不便
Threats, Attacks, and Assets
A Model for Computer Security
Vulnerability
系統資源的弱點
- Corrupted: loss of
integrity- Leaky: loss of
confidentiality- Unavailable or very slow: loss of
availability
Threat
可能被利用的弱點 (Vulnerability)
- 對資產的潛在損害
Attack
被實際執行的威脅 (Threat)
- Passive: 學習或利用資訊,但不影響系統資源
- Release of message content
- Traffic analysis
- Active: 修改系統資源或影響其運作
- Replay
- Masquerade
- Modification of messages
- DoS
- Inside: 由
授權使用者發動,但使用方式不被允許- Outside: 由
未授權使用者發動
Countermeasures
用來應對攻擊的手段
- 功能
- 預防攻擊
- 偵測並復原
- 本身可能引入新的漏洞
- 仍可能存在殘餘漏洞
- 目標: 最小化
剩餘風險
- 剩餘風險 (Residual risk): 在風險控制後,仍然存在的風險
Threats and Attacks (RFC 4949)
- Unauthorized Disclosure (未授權揭露): Threats to
confidentiality- Exposure (暴露)
- Interception (攔截)
- Inference (推論)
- Intrusion (入侵)
- Deception (欺騙): Threats to system/data
integrity- Masquerade (冒充)
- Falsification (偽造)
- Repudiation (否認)
- Disruption (中斷): Threats to
availabilityor systemintegrity- Incapacitation (癱瘓)
- Corruption (破壞)
- Obstruction (阻礙)
- Usurpation (奪取控制): Threats to system
integrity- Misappropriation (非法占用)
- Misuse (濫用)
Fundamental Security Design Principles
- Economy of mechanism: 設計應該盡可能簡單且小型化
- Fail-safe defaults: 存取決策應該基於允許 (
permission) 而不是排除 (exclusion) - Complete mediation: 每一次存取都必須經過存取控制機制檢查
- Open design: 系統設計應該是
公開的- ex: NIST 演算法
- Separation of privilege: 依照信任程度、需求與權限要求
分層管理使用者/程式 - Least privilege: 每個使用者/程式只應該擁有完成任務所需的
最小權限 - Least common mechanism: 系統設計應盡量
減少不同使用者共享的機制 - Psychological acceptability: 安全機制
不應過度干擾使用者工作或降低系統可用性 - Isolation: 系統資源彼此隔離
- Encapsulation: 基於物件導向的隔離方式
- Modularity: 安全功能應作為
獨立的受保護模組 - Layering: 使用多層重疊 (multiple, overlapping) 的保護機制
- Least astonishment: 程式或使用者介面的行為應符合使用者預期
Attack Surfaces and Attack Trees
Attack Surfaces
系統中可以被到達且能被利用的
漏洞集合
- Network attack surface
- 網路協定的漏洞
- ex: 對外開放的連接埠 (port)
- Software attack surface
- 應用程式、工具程式或作業系統程式碼中的漏洞
- ex: API 介面、SQL 查詢、Web 表單
- Human attack surface
- 由人為因素造成的漏洞
- ex: 能接觸敏感資料的員工可能受到社交工程攻擊 (social engineering attack)
Attack Trees
一種分支式、階層式的資料結構,用來描述利用安全漏洞的各種可能攻擊方式
- 結構:
- Root: 攻擊目標
- Leaf: 攻擊的具體方法
- Internal Nodes: AND-node or an OR-node
- 功能:
- 有效利用已知的攻擊模式資訊
- 用結構化方式記錄攻擊,並找出關鍵漏洞
- 用來指導系統設計與防禦措施
Computer Security Strategy
Specification/policy
What is the security scheme supposed to do?
- 正式的規則與實務聲明,用來規範系統或組織如何提供安全服務,以保護重要的系統資源
- 考慮因素:
- 被保護資產的價值
- 系統存在的弱點
- 潛在威脅與攻擊發生的可能性
- 便利性與安全性的權衡
- 安全成本與復原成本的權衡
Implementation/mechanisms
How does it do it?
- Prevention 預防
- Detection 偵測
- Response 回應
- Recovery 復原
Correctness/assurance
Does it really work?
- 提供證據讓人相信系統確實能夠執行並遵守安全政策
- 以信任程度 (degree of confidence) 表示
- 基於形式化模型 (Formal Models) 來驗證安全性
- Evaluation: 根據某些評估標準來檢查系統或產品