CISSP 第四章 安全架構和設計

主要內容

軟件缺陷是組織面臨的主要威脅,實現軟件安全的最關鍵的環節之一是它的架構。
當今的操作系統沒有把安全作爲重點來設計架構,只能不斷的打補丁。

4.1 計算機安全

可用性,完整性,機密性

4.2 系統架構

架構提供了“全景”目標,用來指導後面的設計和開發階段。
在設計階段會引入模型,如Bell-Lapadula,Biba和Clark-Wilson,模型被用來幫助系統設計的構建,最終實現架構目標。

4.3 計算機架構

計算機架構由使計算機正常運轉所需的全部部件組成,包括操作系統、存儲器芯片、邏輯電路、存儲設備、輸入輸出電路、安全組件、總線和聯網組件。

4.3.1 中央處理單元CPU

Central Processing Unit是計算機的大腦,從存儲器中提取命令並加以執行。

操作系統必須被設計爲在這個CPU架構中允許,能夠在奔騰處理器上運行的操作系統無法在SPARC處理器上運行。

CPU中包含一些指向存儲器位置的寄存器register,寄存器是一個臨時位置,保存了下一個要執行的指令。訪問存儲器比訪問寄存器要慢很多。

實際執行指令工作的是算法邏輯單元(Arithmetic Logic Unit,ALU),ALU對數據執行數學函數計算和邏輯操作,是CPU的大腦。

CPU有幾種不同類型的寄存器:

  1. 通用寄存器general register用於保存變量和臨時結果
  2. 特殊寄存器,也稱專用寄存器,保存諸如程序計數器,棧指針和程序狀態字之類的信息
  3. 程序計數器寄存器,包含需要提取的下一個指令的存儲器地址

程序狀態字Program Status Word,PSW保存各種不同的條件位,其中一個條件位指出CPU應在用戶模式(問題狀態),還是特權模式(內核模式或監管模式)下工作。

存儲器棧
後入先出,Last In First Out,LIFO的方式讀取和寫入數據的數據結構

4.3.2 多重處理

爲了提高性能,一些專用計算機裝配有多個CPU

對稱模式symmetric mode:計算機有兩個或多個CPU且每個CPU使用加載均衡方式
非對稱模式asymmetric mode:計算機有兩個或多個CPU,且一個CPU僅專門用於一個特定程序,而其他CPU執行通用的處理程序。

4.3.3 操作系統架構

  1. 進程管理
    應用程序作爲獨立的單元運行,這種單元叫進程。
    程序只有加載到存儲器並由操作系統激活後才被視爲進程。

操作系統提供了多程序(multiprogramming)設計功能,同是可以在存儲器中加載幾個程序/進程。因此我們可以在系統中同時運行防病毒軟件,字處理軟件等。

協調式多任務處理cooperative multitasking:要求處理器自願地釋放所使用的資源,如果沒有資源釋放,可能導致資源被應用程序無限期佔用。進程對資源的控制力過於強大。

搶佔式多任務處理preemptive multitasking:操作系統可以控制進程使用某一資源的時間,通過應用分時time sharing,系統可以掛起一個正在使用CPU資源的進程,允許其他進程訪問CPU。

如果一個進程與CPU交互時出現了一箇中斷(即其他進程請求訪問CPU),那麼系統會將進程的信息存儲在進程表中,並由下一個進程獲得與CPU交互的時間。

中斷有兩種類型:
可屏蔽中斷maskable interrupt:分配給不是十分重要的事件,如果中斷髮生,程序不必停止運行。
不可屏蔽中斷non-maskable interrupt:分配給非常重要的事件,中段不能被應用程序忽略。

看門狗定時器watchdog timer:是一個不能被屏蔽的關鍵進程

  1. 線程管理multithreaded
    當進程需要傳送數據給CPU進行處理時,它會生成一個線程。
    線程由一個單獨的指令集和需要由CPU處理的數據組成。
    一次可以執行若干不同任務(顯示、打印、與其他應用程序交互)的程序稱爲多線程應用程序 。
    進程創建的每個線程共享建立該進程的相同資源。
    進程應該只接受被批准實體的指令且它接受的這些指令在實施前應該經過驗證。

  2. 進程調度
    操作系統需要負責調度並同步各種進程及其活動。
    進程的不合理調度可能導致資源耗盡(如DDOS),軟件死鎖。

  3. 進程活動
    爲了保證進程不受彼此的影響,操作系統實施了進程隔離(process isolation),一個進程掛起,不會影響到其他應用軟件的運行。

進程隔離的方法
對象的封裝:封裝提供了數據隱藏能力,外部組件無法知道一個進程的工作方式,也不能修改進程的內部代碼。封裝的進程不會被惡意指令影響。
共享資源的時分複用time multiplexing
命名區分naming distinctions:不同進程擁有自己的名稱或標識值,進程通常分配有進程標識值PID,Process Identification,被隔離的進程就有唯一的PID
虛擬映射:virtual addrsss space mapping虛擬地址空間映射,應用程序在存儲器分配給它的地址空間(即RAM芯片)中運行

  1. 存儲器管理
    所有的操作都在存儲器中進行,所有存儲器管理很重要
    存儲器管理器用於分配並釋放不同存儲器段,實施訪問控制以確保進程僅與它們各自的存儲器交互,在RAM和硬盤間交換存儲內容。

4.3.4 存儲器類型

操作系統指令、應用程序、數據、基本輸入輸出系統(Basic Input/Output System,BIOS)、設備控制器指令和固件都保存在存儲器中,但可能是在存儲器的不同位置,也可能是在不同類型的存儲器上。

1. 隨機存取存儲器RAM
Random Access Memory,是一種臨時的存儲設備,操作系統和應用程序使用其來執行讀寫操作,斷電數據會丟失。

  • 動態RAM:Dynamic RAM,保存在RAM存儲單元中的數據必須不斷動態刷新,使位值保存在存儲單元中
  • 靜態RAM:Static RAM,不需要不斷刷新來保存位值,所有速度比DRAM快。SRAM需要更多的晶體管,因此價格比DRAM貴。
    SRAM用在高速緩存器中,DRAM用在RAM芯片中。

除處理器外,存儲器的類型,存儲器大小,存儲器尋址,總線帶寬都是影響計算機速度的重要因素。

抖動:如果計算機在較小的存儲塊間轉移數據所花的時間比實際處理數據的時間還要長,就稱之爲抖動,抖動會造成系統速度緩慢。

硬件分割:高信任級別的系統要求對進程使用的存儲器進行硬件分割,確保低級別的進程無法訪問和修改高級別進程的存儲器空間。

尋址空間:64位尋址方案的系統比32位尋址方案的系統一次能輸入更多的指令和數據到數據總線。

  • 同步DRAM:Synchronous DRAM,將自身的行爲與CPU時鐘進行協調,使CPU與存儲器活動保持同步,提高了數據傳輸和數據執行的速度。
  • 拓展數據輸出DRAM:Extended Data Out DRAM,比DRAM速度更快,DRAM一次只能訪問一個數據塊,而DEO RAM在將數據塊交給CPU處理時,就能獲得下一個數據塊。
  • 爆發式EDO RAM:Burst EDO RAM,工作方式與EDO RAM相似,但一次能傳送更多數據(爆發)
  • 雙數據速率SDRAM:Double Data Rate SDRAM,每個時鐘週期執行兩次操作,因此傳輸的速率是SDRAM的兩倍。

2. 只讀存儲器ROM
Read Only Memory,數據寫入ROM就不能再被修改,斷電數據也不會丟失。存儲在ROM中的軟件稱爲固件。

  • 可編程ROM:Programmable ROM,是一種在生產後仍能再修改的ROM,只能編程一次。
  • 可擦可編程ROM:Erasable And Programmable ROM,其中的程序可以擦除、修改和升級。
  • 閃存:flash memory,主要用於數碼相機,BIOS芯片,手提電腦存儲卡和電子遊戲控制檯中,更像是一塊硬盤而非儲存器。人們常把閃存當小型硬盤使用,更小更輕更快,除了貴沒毛病。

3. 高速緩存存儲器
如果系統需要多次訪問某一特定信息,就會將信息保存在高速緩存存儲器中,以實現方便快捷的訪問。

4. 存儲器映射
通過存儲器映射和尋址來確保數據不遭到破壞和未授權訪問。
軟件對存儲器進行訪問,是通過索引表和指針間接訪問,而不是直接給予訪問存儲器的權限,使用存儲器的邏輯地址。
CPU對存儲器進行訪問,是直接訪問,使用存儲器的物理地址,稱爲絕對地址。

5. 緩衝區溢出
緩衝區是一個已分配的存儲器段,只要數據過多,就會發生溢出的情況。
利用緩衝區溢出時,插入緩衝區的代碼需要具有特定的長度。
防止緩衝區溢出的最好的對策是合理編程,使用邊界檢查,如一個輸入值只能是9個字符,應用程序就只能接受9個字符。
C語言很容易受到緩衝區溢出攻擊,因爲它允許直接操縱指針。

6. 存儲器泄露
應用程序在使用完存儲器後,沒有釋放存儲器,導致一直被佔用,可能被利用發生拒絕服務攻擊。
對策:開發正確釋放存儲器的完善的代碼,使用垃圾收集器這種軟件來通知操作系統標記存儲器。

4.3.5 虛擬存儲器

輔助存儲(secondary storage)與RAM結合得到虛擬存儲器。
RAM易丟失,輔助存儲不易失。
交換空間(swap space)是保留的硬盤空間,用於擴展RAM的容量。

虛擬存儲器分頁(virtual memory paging):當系統的易失性存儲空間滿了,數據就從存儲器寫到硬盤上。如果程序需要訪問這些數據,就以特殊頁的形式將它從硬盤調回存儲器中。這個過程叫虛擬存儲器分頁。

4.3.6 輸入/輸出設備管理

I/O設備通常被視爲塊或字符設備,如磁盤,打印機,網卡,鼠標

控制I/O活動的操作系統軟件目標之一是實現設備獨立,開發人員可以編寫程序來讀寫任何設備,而不需要編寫不同的進程來與各種I/O設備交互。

操作系統採用不同的方式來執行軟件I/O過程:

  • 可編程I/O:CPU向一臺I/O設備發送數據並輪詢該設備,以查看它是否準備好接受更多的數據。浪費時間。
  • 中斷驅動I/O:舉例:CPU向打印機發送一個字符,轉而處理另一個進程的請求,打印機打印完第一個字符後,會向CPU發送一箇中段,CPU中止正在進行的工作向打印機發送另一字符,再去處理另一個進行。
    發送字符-離開處理其他事情-中斷-發送另一個字符,每次發送字符中間都要處理中斷,也會浪費時間。
  • 使用DMA的I/O:Direct Memory Access,直接存儲器訪問,不使用CPU而在I/O設備與系統存儲器間傳輸數據,也稱非映射I/O(unmapped I/O),數據傳輸速度快。
  • 映射前I/O:CPU向I/O設備發送進程的物理存儲器地址,由I/O設備直接與存儲器的內容進行交互。
  • 全面映射I/O:I/O設備與邏輯地址交互,由操作系統來控制兩者的通信。

4.3.7 CPU架構

操作系統是軟件,CPU是硬件。
操作系統和CPU必須能夠通過指令集進行通信。常用指令集是X86。
操作系統輸入指令告訴CPU需要做什麼,CPU執行操作提供結果。

操作系統確保進程不會產生負面影響的方式:
存儲器保護,保護環(protecting ring)
保護環:操作系統最信任的組件可以訪問0環,0環是操作系統內核。

應用程序通常在3環運行。環決定了敏感系統資源的訪問級別,環號越低,爲運行該環內的進程所授予的權限越大。
工作在3環的進程無法直接請求2環或者1環的進程,而是將通信請求發送給操作系統專門制定的負責此事的API。
API是在操作系統內部可信和非可信進程之間提供訪問控制的保障。

4.4 操作系統架構

系統由所有用於計算機的必要部分組成:硬件、固件、軟件組件。
架構指決定操作系統各組件彼此交互方式和提供應用程序和用戶要求的功能的架構。

操作系統架構:

  1. 單塊架構monolithic architechure
    所有操作系統進程都在內核模式下工作,在複雜性、移植性、延展性、安全性上存在問題。代碼功能遍佈整個系統,難測試排障。
  2. 分層架構Technische Hogeschool Eindhoven
    THE有5個功能層次,不同層次的進程都有可以爲上下層進程使用的接口。整個操作系統還在在內核模式下工作,只是操作系統的功能被分成可以相互調用的不同層。
  3. 微內核架構
    操作系統運行在內核模式中,其餘運行在用戶模式下。具有更小的一套內核進程,更安全。但在處理過程中需要不斷的進行模式轉換(用戶模式和內核模式的轉換),性能很低。
  4. 混合微內核架構hybrid microkernel architechure
    所有操作系統進程運行在內核模式中。核心進程運行在微內核中,其餘運行在客服端/服務器模型中。

虛擬化:使單個硬件裝備能夠在多個操作系統環境中同步運行。
虛擬機:操作系統的虛擬實例

4.5 系統安全架構

4.5.1 安全策略

安全策略通過制定要完成什麼樣的安全機制等目標來精確的標明應該達到什麼樣的安全級別。
任意型訪問控制(DAC)操作系統和強制型訪問控制(MAC)操作系統的安全策略完全不同。

4.5.2 安全架構要求

  1. 可信計算基Trusted Computing Base
    TCB,系統內提供某類安全並實施系統安全策略的所有硬件、軟件和固件的組合。
    TCB可以一條可信路徑、一個可信外殼以及系統完整性檢查功能。可信路徑是用戶或內核之間的通信通道。

可以被用來破壞系統或者使系統處於不穩定狀態的任何組件,都是TCB的一部分,必須被安全地開發和控制。

  1. 安全邊界
    安全邊界是劃分可信和不可信的邊界。
    可信組件和不可信組件之間的通信必須加以控制,通過配備嚴格的API接口來控制TCB內外各組件之間的通信,從而確保系統保持穩定和安全的狀態。

  2. 引用監控器reference monitor
    是主體對客體進行所有訪問的中介,確保主體擁有必要的訪問權限,以及保護客體的非授權訪問和破壞性更改。
    引用控制器是一個訪問控制概念,而不是實際的物理概念,常被稱爲“引用控制器概念”和“抽象機”。
    引用控制器在系統內爲如何以統一協調的方式指定和控制訪問決策指明方向。所有的決策都是由操作系統的、工作在內核裏的、既可信又防篡改的一個組件完成,這正是安全內核的作用。

  3. 安全內核
    安全內核由位於TCB內的硬件、軟件和固件組件組成,並且實現和實施引用控制器概念。

總結
系統的可信度:由如何實施自己的安全策略來定義
準則:判斷安全策略是否得到正確的支持和實施
安全策略:指出與系統如何管理、保護和發佈敏感資源相關的規則和舉措
引用監控器:所有的主體必須具有適當的授權才能訪問客體
安全內核:實施引用監控器概念
多級安全策略:規定系統如何才能同時爲不同許可級別的用戶處理不同分類級別的信息,防止信息從高安全級別流向低安全級別的安全策略

4.6 安全模型

安全策略是一個抽象的術語,描述了系統被認爲安全和可接受時必須滿足和達到的目的與目標。
安全模型將安全策略的抽象目標映射到信息系統的具體內容上,提供實現目標該做什麼,不該做什麼,通常以數學和分析的理念來表示。

4.6.1 狀態機模型state machine model

狀態機模型被用於描述一個系統對不同輸入的響應行爲。
狀態機模型的開發人員必須標識所有的初始狀態,還要概況說明變量如何發生變化,以使最終的各種狀態仍然能夠確保系統的安全。

使用狀態機模型的系統在其出現的每一個和每一次實例中都處於安全狀態。

形式化模型主要用於不允許出現錯誤或安全脆弱性的系統中,如空中管制系統等。

4.6.2 Bell-LaPadula模型

Bell-LaPadula模型是一個狀態機模型,是多級安全策略的第一個算術模型,用於定義安全狀態機的概念、訪問模式和概述訪問的準則,防止以未經授權的方式訪問信息。

採用Bell-LaPadula模型的系統稱爲多級安全系統(multilevel security system)。

Bell-LaPadula模型使用了實施了3種主要的規則:

  1. 簡單安全規則:規定不能讀取較高安全級別駐留的數據,即不能向上讀
  2. *屬性(星屬性)規則:規定不能將數據寫入較低的安全級別,即不能向下寫
  3. 強星屬性規則:規定一個主體只能在同一安全級別上執行讀寫功能,在較高和較低級別上都不能讀寫

優勢關係dominance relation:dominate意味着高於/超出,主體的訪問等級高於客體的訪問等級,主體只能對客體執行讀取操作,這稱之爲優勢關係。

Bell-LaPadula模型定義了一個安全狀態,表示一個安全的計算環境以及所允許的能夠保持安全性的操作。
基本安全定理basic security theorem:如果系統在安全的狀態下啓動,而且所有允許的狀態轉換都是安全的,那麼無論出現什麼輸入,隨後的每一個狀態都是安全的。
Bell-LaPadula模型還使用了平衡性原則tranquility principle:表示主體和客體一旦初始化,它們的安全級別就不能發生變化。

所有MAC模型都以Bell-LaPadula模型爲基礎。

4.6.3 Biba模型

Biba模型是一種狀態機模型,解決了應用程序內數據的完整性問題。Bell-LaPadula也是狀態機模型,解決的是機密性問題。
Biba模型使用的是格子模型完整性級別,Bell-LaPadula使用的是格子模型安全級別(絕密、機密、祕密等)。

Biba模型通過以下3條規則來提供這種完整性保護:

  1. *完整性公理:主體不能向位於較高完整性級別的客體寫數據,即不能向上寫
  2. 簡單完整性公理:主體不能從較低完整性級別讀取數據,即不能向下讀
  3. 調用屬性:invocation property,主體不能請求(調用)完整性級別更高的主體的服務

4.6.4 Clark-Wilson模型

Clark-Wilson模型採用一些不同的方法來保護信息的完整性。

  • 轉換過程:Transformation Procedure,TP,可編程的抽象操作,如讀寫更改
  • 約束數據項:Constrained Data Item,CDI,只能內TP操縱
  • 非約束項:Unconstrained Data Item,UDI,用戶可以通過簡單的讀寫操作進行操縱
  • 完整性驗證過程:Integrity Verification Procedure,IVP,確保所有關鍵數據(CDI)遵循應用程序預定義的完整性規則。

據上,數據被分爲兩類,不需要高度保護的UDI,需要高度保護的CDI,用戶不能直接更改關鍵數據。CDI的完整性由TP保護。使用TP更改CDI,稱爲格式良好的事務處理(well-formed transaction)

完整性模型的目標:

  1. 防止未授權用戶進行更改-----Biba和Clark-Wilson可以實現
  2. 防止授權用戶進行不正確的更改(職責分離,舉例:用戶取款金額較大時要求用戶進行身份驗證)-----Clark-Wilson可以實現
  3. 維護內部和外部的一致性(格式良好的事務處理)-----Clark-Wilson可以實現

4.6.5 信息流模型

Bell-LaPadula模型主要防止信息從高安全級別流向低安全級別
Biba模型阻止信息從低完整性級別流程高完整性級別

確保代碼中不存在隱蔽通道是確保軟件不會使信息隨意流動的一種方式。
隱蔽通道convert channel:某個實體以未授權方式接收信息的一種方式,是一種不受安全機制控制的信息流。

出現隱蔽通道的原因:

  1. 產品開發過程中的疏忽
  2. 軟件中實現的訪問控制不當
  3. 兩個實體之間存在共享的資源

隱蔽通道的類型:存儲和計時
存儲:進程通過系統上的某種存儲空間進行通信,創建文件是一種實現隱蔽存儲通道攻擊的方式
計時:一個進程通過調節自己對系統資源的使用來向另一個進程中繼傳輸數據,這兩個彼此通信的進程使用相同的共享資源,即時間。
可接受的隱蔽通道數量取決於系統的保護評級,通用準則評級爲EAL6的系統比評級爲EAL3的系統隱蔽通道更少,提供的保護級別更高。

4.6.6 無干擾模型noninterference

位於較高安全級別的實體不能對較低級別的實體產生影響,使其意識到高安全級別實體引發的活動,推斷/猜測出其沒有許可級別/授權而可以知道的信息(稱爲推理攻擊),存在信息泄露的可能。
這個模型的目的是處理隱蔽通道和推理攻擊inference attack。

4.6.7 格子模型lattice model

一個由有限部分有序集與相應上下限運算符組成的結構。
部分有序:系統必須對這個集合應用最大限制的訪問控制
最小上界:系統查看一個訪問控制的陳述和其他訪問控制的陳述,並取最小上界值

4.6.8 Brewer and Nash模型

也稱Chinese Wall模型,提供根據用戶先前活動而動態改變的訪問控制,訪問控制根據用戶的授權、活動和先前的訪問請求而動態改變。
目標是防止用戶訪問被認爲有利益衝突的數據。
模型規定,主體只有在不能讀取位於不同數據集的某個客體時才能寫另一個客體,如股票經紀人不能在讀取到股價下跌的數據庫時寫某人的賬戶,指示應出售持有的股票。

4.6.9 Graham-Denning模型

定義了一組基本權限,即主體能夠在客體上執行的一組命令,來說明如何創建刪除主體和客體,以及分配具體的訪問權限:

  • 如何安全創建一個主體
  • 如何安全創建一個客體
  • 如何安全刪除一個主體
  • 如果安全刪除一個客體
  • 如何安全提供讀訪問權限
  • 如何安全提供授予訪問權限
  • 如何安全提供刪除訪問權限
  • 如何安全提供轉移訪問權限

4.6.10 Harrison-Ruzzo-Ullman模型

HRU模型主要涉及主體的訪問權限以及權限的完整性,主體只能對客體執行一組有限的操作。

4.7 運行安全模式

在決定操作系統應在什麼模式下運行,應考慮:

  • 直接或間接連接到系統的用戶類型
  • 系統處理的數據類型(分類級別、分隔區間和類別)
  • 用戶擁有的許可級別、“知其所需”和正式訪問批准

4.7.1 專用安全模式delicated security model

如果所有用戶都具有對系統上所有信息的訪問許可和相關形式化的知其所需 ,那麼系統就工作在專用安全模式下面。所有用戶都獲得正式訪問批准,並簽署保密協議Nondisclosure Agreement,NDA,這個系統能處理單個信息分類級別。

4.7.2 系統高安全模式system high-security model

所有用戶都有訪問系統上所有信息的安全許可,但不一定對系統內的全部數據擁有知其所需時,系統就工作在系統高安全模式下。
這種模式下,如果主體訪問客體不滿足知其所需,就會受限。

4.7.3 分隔安全模式compartmented security model

如果所有用戶擁有訪問由在系統高安全配置下的系統處理的信息的許可,但可能沒有知其所需和正式訪問批准,系統基於工作在分隔安全模式下。
如果用戶具有必要的許可,那麼分隔模式工作站(Compartmented Mode Workstation,CMW)允許他們同時處理多個數據分隔區間。

4.7.4 多級安全模式multilevel security model

如果一個系統允許同時處理兩個或多個信息分類級別,但並非所有用戶都擁有訪問系統處理的全部信息所需要的許可或正式批准,那麼該系統在多級安全模式下運行。

Bell-Lapudula模型是多級安全模型的一個實例,能處理一個系統內若干不同安全級別上的多種信息分類。

衛士:用於連接在不同安全模式下運行的不同MAC系統 ,以及連接在不同安全級別下運行的不同網絡。 從保證度低的系統接收請求,審查,然後向高級別的系統提交請求,以確保不會出現未授權訪問。
在這裏插入圖片描述

4.7.5 信任與保證

可信計算機系統評估準則(Trusted Computer System Criteria,TCSEC,常稱橘皮書)中,較高保證級別系統的設計和構建工作經過了更爲細緻的審查。

4.8 系統評估方法

保證評估(assurance evaluation)研究系統的安全相關部分,包括TCB、訪問控制機制、引用監控器、內核和保護機制,以及組件間的關係和相互作用。

4.8.1 對產品進行評估的原因

可信產品評估程序(Trusted Product Evaluation Program,TPEP)於1983年開始用於國家安全局(National Security Agency,NSA)
之後出現了可信技術評估計劃(Trusted Technology Assessment Programme,TPEP)
2001年出現了通用標準(Common Criteria)評估框架,產品不再由NSA評估

4.8.2 橘皮書TCSEC

可信計算機系統評估準則 Trusted Computer System Criteria,TCSEC
橘皮書用於評估產品是否包含供應商所聲稱的安全屬性以及它是否適用於特定的應用或功能。
TCSEC解決了機密性問題,但沒有解決完整性問題。

TCSEC提供一個分級系統,將保證級別劃分成下面的不同層次:
A.驗證保護:最高保證級別
B.強制保護
C.自主保護
D.最小保護
編號較大的類提供更高的可信度和保證級別,B2比B1更值得信任,C2可信度比C1高。
每個級別和類都包含級別比它們更低的分級和類的要求。
監督評估過程的團體稱爲TPEP,評估成功的產品會加入到已評估產品清單(Evaluated Products List,EPL),並附帶相應的評定級別。

  1. D分級:最小保護
    經過安全評估但沒有滿足較高分級標準的系統

  2. C分級:自主保護
    C1:自主安全保護,不需要嚴格的訪問控制和審計措施
    C2:受控訪問保護,單獨標識每個用戶以提供更加精準的訪問控制和審計功能。如果用戶可信,但同時需要某種程度的可問責性,就用C2等級的系統環境。C2無法保證客體不會受到威脅,但能夠提供一定程度的保護。

  3. B分級:強制保護
    通過使用安全標籤來實施,以Bell-LaPudula模型爲基礎。
    B1:標籤安全,每個數據客體包含一個分類標籤,每個主體包含一個許可標籤,當主體訪問客體時,系統必須比較主體和客體的安全標籤確保行爲是否可接受。主要應用於要求系統處理分類數據的環境。
    B2:結構化保護,安全策略被明確定義並文本化,增加了系統設計需求。B2要求嚴格的身份驗證機制和在層之間定義完善的接口,不允許存在隱蔽通道,沒有後門。
    B3:安全域,系統的設計和實現都不能太複雜,引用監控器組件需要足夠小,以便進行正確測試,並且能防干擾。系統需要在一個初始安全狀態下啓動,能從故障中恢復,且安全級別不會受到傷害。

  4. A分級:驗證保護
    A1:驗證設計,相比B3,系統設計和規範制定過程的正確性和驗證技巧詳盡性的要求更高。A1系統的開發過程實施了更加嚴格的變更配置,以便整個設計能通過驗證。

4.9 橘皮書和彩虹系列

橘皮書專門針對操作系統,着眼於機密性問題,因此更加適合政府和軍事系統,而不適合用於商業領域。

彩虹系列(Rainbow Series)爲橘皮書的某個需求提供了詳盡的信息和解釋。

紅皮書
Trusted Network Interpretation,TNI,可信網絡解釋,稱爲紅皮書
解釋了網絡和網絡組建的安全評估問題,主要針對局域網和廣域網系統。

紅皮書涉及的安全項:

  • 通信完整性:身份驗證(數字簽名,加密,時間標記和密碼),消息完整性(身份驗證和加密),不可否認性(機密,數字簽名,公證)
  • 防止拒絕服務:操作的持續性(容錯和冗餘),網絡管理
  • 泄露保護:數據機密性(訪問控制,加密和電纜物理保護),通信流量機密性(消息填充,發送噪聲和虛假消息),選擇性路由(網絡配置和路由表)

4.10 信息技術安全評估準則ITSEC

ITSEC是歐洲國家評估計算機系統安全屬性的單一安全標準,美國參照橘皮書和彩虹系列標準。

ITSEC評估系統保護機制的兩個主要屬性:

  • 功能性:考察和衡量提供給用戶的服務
  • 保證:對保護機制及其持續性執行的能力和效力的信心程度,一般通過檢查開發實踐、文檔、配置管理和測試機制來進行測試

ITSEC與TCSEC對比:
ITSEC:功能性和保證捆綁在一起評級,更靈活,涉及完整性、可用性和機密性,關注聯網系統
TCSEC:單獨評估功能性和保證,僅涉及機密性,僅關注獨立的系統

4.11 通用準則Common Criteria

對產品指定評估保證級別(Evaluation Assurance Level,EAL),級別從僅僅執行功能測試的EAL1到執行徹底的測試並驗證系統設計的EAL7。

通用準則的組成部分:

  • 保護樣板:描述所需的安全解決方案
  • 評估目標:提供所需安全解決方案的產品
  • 安全目標:解釋滿足所需安全解決方案的安全功能和保護機制
  • 安全功能要求:產品必須提供的每一個安全功能
  • 安全保證要求:爲保證安全功能的實現而採取的措施
  • 數據包(即EAL):把功能和保證需求封裝起來,描述每個級別所必須滿足的要求

ISO/IEC 15408是國際標準,是評估CC框架下產品安全屬性的基礎,通常包括三個部分:

  • ISO/IEC 15408-1 入門和通用評估模型,介紹CC評估模型的概念和準則
  • ISO/IEC 15408-2 定義在評估過程中要評估的安全功能要求
  • ISO/IEC 15408-3 定義了保證要求

4.12 認證與認可C&A

認證certification
認證是處於認可的目的而對安全組件及其一致性進行全面的技術評估,確保系統、產品或者網絡能夠適合客戶的目的。

認可accreditation
認可是管理員對系統整體安全和功能的充分性的正式認可,意味着管理層接受在組織機構環境中使用新產品所帶來的風險。

4.13 開放系統與封閉系統

開放系統
開放的系統架構在已公佈了規範的標準、協議和接口之上,使得第三方能夠開發出附加的組件和設備,提供了在不同供應商的產品之間的互操作性。
現在的大部分系統都是開放系統,可以與其他系統兼容,共享信息和使用第三方插件。

封閉系統
封閉系統使用的架構沒有遵循業界標準,只能與類似的系統進行通信。封閉架構能向系統提供更高的安全性。

4.14 一些對安全模型和架構的威脅

4.14.1 編程陷阱maintenance hook

編程陷阱是一種後門,在開發階段非常有用,投入應用前應該刪除。

防止後門的預防性措施:
使用HIDS監視通過後門進入系統的攻擊者
使用文件系統加密來保護敏感信息
實現審計,以檢測任何類型的後門使用

4.14.2 檢驗時間/使用時間攻擊TOC/TOU

Time-Of-Check/Time-Of-Use,也稱異步攻擊asynchronous attack
利用多任務操作系統中發生的事件的時序依賴性,如攻擊者在指令2和3間執行某中操作,就可能會影響活動的結果

競爭條件(race condition)是指兩個不同的進程需要在同一個資源上執行其任務的情況,這些進程必須遵守正確的順序。競爭條件是打亂進程執行順序以控制結果的攻擊。
TOC/TOU是攻擊者進入兩個進程間進行更改,以達到控制結構的目的。

對策:
不要分解能夠改變順序的關鍵任務
如果操作系統能夠應用軟件鎖,最好在它執行檢查任務時鎖定將要使用的項。

發佈了32 篇原創文章 · 獲贊 43 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章