Computer Security Concepts

CIA Triad

Confidentiality

  • Assurance
    • Data confidentiality: 私人或機密資訊不會洩漏給未經授權的人
    • Privacy: 個人可以控製或影響與其相關的信息是否被蒐集和儲存
  • Requirements
    • 對資訊存取與揭露的授權限制
    • 保護個人隱私與專有資訊的方法
  • Definition of Loss
    • 資訊在未經授權的情況下被揭露

Integrity

  • Assurance
    • Data integrity: 資訊與程式只能以指定且經授權的方式被修改
    • System 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 availability or system integrity
    • 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: 根據某些評估標準來檢查系統或產品