概述#

Security(安全性)是保護系統免受未經授權存取、使用、揭露、中斷、修改或破壞的能力。安全性關注的核心是維護三大特性:機密性(Confidentiality)、完整性(Integrity)與可用性(Availability),合稱 CIA 三元組

與安全性密切相關的是隱私(Privacy)議題。歐盟的 GDPR(General Data Protection Regulation)等法規要求組織保護個人可識別資訊(Personally Identifiable Information, PII),包括姓名、社會安全碼、出生日期、生物辨識記錄,以及醫療、教育、財務和就業等可連結至個人的資訊。架構師經常需要確認 PII 對不需存取權限的開發團隊成員是隱藏的。

安全性通用情境(Security General Scenario)#

安全性的通用情境描述了攻擊來源、刺激、受影響的成品、環境、回應及回應度量六個面向:

  • 來源(Source):攻擊可能來自組織內部或外部,由人類或其他系統發起,可能是已知或未知的攻擊者
  • 刺激(Stimulus):未經授權的嘗試,包括顯示資料、擷取資料、變更或刪除資料、存取系統服務、改變系統行為、降低可用性
  • 成品(Artifact):被攻擊的目標,包括系統服務、系統內的資料、系統的元件或資源、系統產生或消費的資料
  • 環境(Environment):系統可能處於上線/離線、連網/斷網、防火牆後方/開放網路、完全運作/部分運作/未運作等狀態
  • 回應(Response):系統確保機密性、完整性與可用性,包括保護資料與服務免受未授權存取、識別交易方身分、確保不可否認性、記錄存取行為、偵測並通知攻擊事件
  • 回應度量(Response Measure):被入侵的資源比例、攻擊偵測準確度、偵測攻擊所需時間、抵禦攻擊次數、從成功攻擊中復原的時間、特定攻擊下可受影響的資料量

Figure 11.1: Sample scenario for security

具體情境範例:一位心懷不滿的員工從遠端嘗試在正常運作期間非法修改薪資表。系統偵測到未授權存取、維護稽核軌跡,並在一天內恢復正確資料。

安全性戰術(Tactics for Security)#

安全性戰術可透過實體安全的類比來理解:安全設施限制進入(圍牆與安檢站)、偵測入侵者(訪客證)、有嚇阻機制(武裝警衛)、有反應機制(自動鎖門)、有復原機制(異地備份)。對應到軟體架構,戰術分為四大類:偵測(Detect)、抵禦(Resist)、反應(React)與復原(Recover)。

Figure 11.2: Goal of security tactics

Figure 11.3: Security tactics

偵測攻擊(Detect Attacks)#

  • Detect Intrusion(偵測入侵):比對網路流量或服務請求模式與已知惡意行為的特徵資料庫,特徵可基於協定特性、請求特性、封包大小、應用程式、來源/目的位址或埠號
  • Detect Service Denial(偵測阻斷服務):比對進入系統的網路流量模式與已知 DoS 攻擊的歷史特徵檔
  • Verify Message Integrity(驗證訊息完整性):使用校驗和(Checksum)或雜湊值(Hash Value)驗證訊息、資源檔案、部署檔案與配置檔案的完整性。即使原始內容有微小變動,雜湊值也會產生顯著變化
  • Detect Message Delivery Anomalies(偵測訊息傳遞異常):偵測潛在的中間人攻擊(Man-in-the-Middle Attack),檢查訊息傳遞時間是否異常,以及連線/斷線次數是否不尋常

抵禦攻擊(Resist Attacks)#

  • Identify Actors(識別行為者):識別所有外部輸入的來源,使用者透過 User ID 識別,其他系統透過存取碼、IP 位址、協定、埠號等方式識別
  • Authenticate Actors(驗證行為者):確認行為者確實是其所宣稱的身分,方法包括密碼、一次性密碼、數位憑證、雙因素驗證(Two-Factor Authentication)、生物辨識,以及 CAPTCHA 挑戰回應測試
  • Authorize Actors(授權行為者):確認已驗證的行為者擁有存取與修改資料或服務的權限,透過存取控制機制實現,可按個人、類別或角色分配
  • Limit Access(限制存取):限制對電腦資源的存取,減少存取點數量或限制可通過的流量類型,以最小化系統的攻擊面(Attack Surface)。典型範例是 DMZ(非軍事區),位於網際網路與內部網路之間,受兩端防火牆保護
  • Limit Exposure(限制曝露):最小化敵對行為造成的損害效果,屬於被動防禦。透過減少單一存取點可觸及的資料或服務量來實現
  • Encrypt Data(加密資料):透過加密實現機密性,保護持久化資料與通訊。加密可分為對稱式(讀寫方使用相同金鑰)和非對稱式(使用成對的公開/私密金鑰)
  • Separate Entities(分離實體):透過實體分離(不同伺服器、不同網路)、虛擬機器或氣隙(Air Gap,無電子連接)來限制攻擊範圍。敏感資料通常與非敏感資料分開存放
  • Validate Input(驗證輸入):在系統接收輸入時進行清理與檢查,使用安全框架執行過濾、正規化與淨化。這是防禦 SQL InjectionXSS(Cross-Site Scripting)攻擊的主要手段
  • Change Credential Settings(變更認證設定):強制使用者更改系統預設安全設定,避免攻擊者透過公開的預設設定取得存取權限。許多系統也要求使用者在一定時間後更換密碼

反應攻擊(React to Attacks)#

  • Revoke Access(撤銷存取):若系統認為攻擊正在進行,可嚴格限制對敏感資源的存取,即使是正常的合法使用者也可能被暫時限制
  • Restrict Login(限制登入):重複的登入失敗嘗試可能表示潛在攻擊。系統可限制特定電腦的存取,並在每次失敗後加倍鎖定時間
  • Inform Actors(通知行為者):偵測到攻擊時,必須通知操作人員、相關人員或協作系統等相關行為者

從攻擊中復原(Recover from Attacks)#

復原包括恢復服務(如保留備用伺服器或網路連線),由於成功的攻擊本質上是一種故障,因此 Chapter 4 中的可用性恢復戰術同樣適用。此外還有兩個專屬戰術:

  • Audit(稽核):記錄使用者與系統行為及其效果,協助追蹤並識別攻擊者,分析稽核軌跡以起訴攻擊者或建立更好的防禦
  • Nonrepudiation(不可否認性):保證訊息發送者無法否認已發送訊息,接收者無法否認已收到訊息。透過數位簽章與受信任第三方的驗證來實現

安全性戰術問卷(Tactics-Based Questionnaire)#

戰術問卷是一套結構化的檢查工具,分析師可逐一詢問以下問題,記錄系統是否支援(Y/N)、風險、設計決策與假設。主要問題涵蓋:

偵測攻擊類:

  • 系統是否支援透過比對網路流量模式來偵測入侵?
  • 系統是否支援偵測阻斷服務攻擊?
  • 系統是否支援透過校驗和或雜湊值驗證訊息完整性?
  • 系統是否支援偵測訊息傳遞延遲?

抵禦攻擊類:

  • 系統是否支援透過 User ID、存取碼、IP 位址等識別行為者?
  • 系統是否支援透過密碼、數位憑證、雙因素驗證等驗證行為者?
  • 系統是否支援授權機制,確保已驗證者擁有適當權限?
  • 系統是否支援限制存取點數量或流量類型?
  • 系統是否支援限制曝露以減少單一攻擊點影響範圍?
  • 系統是否支援傳輸中與靜態資料的加密?
  • 系統設計是否考慮了實體分離、虛擬機器或氣隙?
  • 系統是否支援定期或關鍵事件時變更認證設定?
  • 系統是否以一致的方式驗證輸入(如安全框架進行過濾與淨化)?

反應攻擊類:

  • 系統是否支援在攻擊期間撤銷存取權限?
  • 系統是否支援在多次登入失敗後限制登入?
  • 系統是否支援在偵測到攻擊時通知相關人員或系統?

復原攻擊類:

  • 系統是否維護稽核軌跡以追蹤攻擊者?
  • 系統是否保證不可否認性?
  • 是否檢查了 Chapter 4 的「從故障復原」戰術?

安全性模式(Patterns for Security)#

Intercepting Validator(攔截驗證器)#

此模式在訊息的來源與目的地之間插入一個包裝器(Wrapper)軟體元素,尤其當訊息來源位於系統外部時更為重要。

  • 主要職責:實作「驗證訊息完整性」戰術,也可整合「偵測入侵」、「偵測阻斷服務」與「偵測訊息傳遞異常」等戰術
  • 優點:單一元件可涵蓋「偵測攻擊」類別的大部分戰術
  • 權衡:引入中介者會帶來效能代價;入侵模式隨時間演變,此元件需持續更新以維持有效性

Intrusion Prevention System(入侵防禦系統)#

IPS 是一個獨立元素,主要目的是識別與分析可疑活動。被判定為可接受的活動予以放行,可疑活動則予以阻擋並回報。IPS 觀察整體使用模式,而非僅檢查單一異常訊息。

  • 優點:可涵蓋大部分「偵測攻擊」與「反應攻擊」戰術
  • 權衡
    • 活動模式不斷演變,模式資料庫須持續更新
    • 系統會產生效能成本
    • IPS 可作為商用現成元件(COTS)取得,無需自行開發但可能無法完全適合特定應用

其他安全模式#

  • Compartmentalization(隔離分區):結合「限制存取」與「限制曝露」戰術,針對資訊的隔離
  • Distributed Responsibility(分散責任):同樣結合這兩個戰術,針對活動的分散

由於成功的攻擊本質上是使系統停止運作,因此 Chapter 4 的可用性模式同樣適用於安全性場景。

延伸閱讀#

安全性架構戰術僅是建構安全系統的一個面向,其他面向包括:

  • 編碼安全:安全編碼實踐(如 Seacord 的 Secure Coding in C and C++
  • 組織流程:NIST 800-53 提供組織安全控制的列舉,須考慮內部威脅(佔攻擊的 15-20%)
  • 技術流程:如 Microsoft 的 Security Development Lifecycle 中的威脅建模
  • 常見弱點列舉:CWE(Common Weakness Enumeration)列出最常見的漏洞類別,包括 SQL Injection 與 XSS
  • 領域特定標準:如 PCI(Payment Card Industry)的信用卡處理安全標準
  • 存取控制標準:OAuth 是常見的存取控制標準