SE-Linux
SE-Linux
SE-Linux (Security Enhanced Linux) ,意為安全增強式Linux。這一觀念誕生於NSA(美國國家安全局--美國第一間諜組織),並於2000年12月22日發行給開放源代碼的開發社群。其他的貢獻者包括NetworkAssociates、Secure Computing Corporation、Trusted ComputerSolutions以及Tresys等公司。SE-Linux的執行已開放源碼,確保安全可靠。NSA認為,沒有任何系統可以達到安全控制、或已達到可以捕捉許多違反安全的案例。
據報道,通過合併一個稱為 NetTop 的商業產品,NSA 將使用運行SE-Linux的一台計算機來替代一些在物理上分隔的計算機(這意味著可以將物理上分隔的系統區分成不同的安全性級別——操作安全性的“空隙”方法)
SE-Linux是一種強制存取控制(mandatory access control)的實現。它的作法是以最小許可權原則(principleof least privilege)為基礎,在Linux核心中使用Linux安全模組(Linux SecurityModules)。它並非一個Linux發行版,而是一組可以套用在類Unix操作系統(如Linux、BSD等)的修改。
SE-Linux的思想理念是,Linux 內核中具有必要的訪問控制。而許多現實問題則需要在它廣泛被使用前加以解決(如源代碼的編寫)。
SE-Linux整個安全性體系結構稱為 Flask,在猶他大學和 Secure ComputingCorp 的協助下由 NSA 設計。在Flask體系結構中,安全性策略的邏輯和通用介面一起封裝在與操作系統獨立的組件中,通用介面是用於獲得安全性策略決策的。這個單獨的組件稱為安全性伺服器,雖然它只是個內核子系統而已。
該伺服器的SE Linux 的實現,定義了一種混合的安全性策略,由類型實施(TE)、基於角色的訪問控制 (RBAC) 和可選的多級別安全性 (MLS)組成,因此被廣泛用于軍事安全中。該策略由另一個稱為checkpolicy的程序編譯,它由安全性伺服器在引導時讀取。文件被標為 /ss_policy 。這意味著安全性策略在每次系統引導時都會有所不同。策略甚至可以通過使用 security_load_policy 介面在系統操作期間更改(只要將策略配置成允許這樣的更改)。
Flask 有兩個用於安全性標籤的與策略無關的數據類型 --安全性上下文和安全性標識。安全性上下文是表示安全性標籤的變長字元串。安全性標識(SID) 是由安全性伺服器映射到安全性上下文的一個整數。SID作為實際上下文的簡單句柄服務於系統。它只能由安全性伺服器解釋。Flask通過稱為對象管理器的構造來執行實際的系統綁定。它們不透明地處理SID和安全性上下文,不涉及安全性上下文的屬性。任何格式上的更改都不應該需要對對象管理器進行更改。
部分源代碼