這里來看看操作系統之前先看看內核
操作系統和內核是包含關系,內核是操作系統最基本的部分,它提供了操作系統的最基本功能,是操作系統工作的基礎。
操作系統內核負責操作系統的任務調度、用戶管理、內存管理、多線程支持、多CPU支持等,并包含 必要的網絡協議、驅動等 。
內核是所有軟件的基礎,相應的 內核安全是操作系統安全的基礎 。
這里其實可以理解一下什么內核和操作系統:簡言之,操作系統就是內核掌握了技能之后的樣子。
當前主流操作系統的內核都屬于UNIX(或類UNIX)系統。UNIX是一個強大的多用戶、多任務操作系統,支持多種處理器架構,屬于分時操作系統。
UNIX最早于1969年在AT&T的貝爾實驗室開發,隨著時間演進產生若干分支,并在移動智能終端操作系統中獲得廣泛使用,如 iOS系統基于UNIX BSD規范 ,而 Android則基于Linux,同屬UNIX大類 。
簡單地說,UNIX是現代操作系統的典型代表,也是各種主要OS的技術源泉;而Linux是類UNIX的一個開源版本,具有產品級的系統穩定性。
典型終端操作系統內核使用情況如表所示。
可以看到,除了iOS,其他多數移動智能終端操作系統均采用了Linux內核。但iOS系統是封閉的,整體來說,對Linux內核的安全研究有相當的實際價值。
在Linux基礎之上,2000年12月22日美國國家安全局(NSA,National Security Agency)發布了Linux安全增強版本SELinux, 其全稱為Security-Enhanced Linux ,之后被合并到主線Linux內核版本中。隨著近幾年安全需求的不斷增強,SELinux開始在產品和系統中獲得使用。
于是請歡迎咱們的主角SELinux登場!!!
1、SELinux整體架構
1.1 SELinux基本概念
SELinux由NSA發布,之后,Red Hat、Network Associates、Secure Computing Corporation、Tresys Technology以及Trusted Computer Solutions等公司及研究團隊都為SELinux的發展做出了重要的貢獻。
SELinux本質是一個Linux內核安全模塊 ,可在Linux系統中配置其狀態。SELinux的狀態分為3種,即disabled、permissive和enforcing。
- (1)disabled狀態:指在Linux系統中不啟用SELinux模塊的功能。
- (2)permissive狀態:指在Linux系統中,SELinux模塊處于Debug模式, 若操作違反策略系統將對違反內容進行記錄 ,但不影響后續操作。
- (3)enforcing狀態:指在Linux系統中,SELinux模塊有效, 若操作違反策略,SELinux模塊將無法繼續工作 。
SELinux涉及的重要概念如下。
(1)主體
主體是訪問操作的發起者 ,是系統中信息流的啟動者。主體通常指用戶或代表用戶意圖的進程。
通常, 主體是訪問的發起者,但有時也會成為訪問或受控的對象 。
一個主體可以向另一個主體授權,一個進程可能會控制幾個子進程,這時受控的主體或子進程就是一種客體。
(2)客體
客體相對主體而存在,通常客體 是指信息的載體或從其他主體或客體接收信息的實體 ,即訪問對象。
(3)訪問控制分類
管理方式的不同形成不同的訪問控制方式。
通常,訪問控制方式分為兩類:自主訪問控制(DAC, Discretionary Access Control)和強制訪問控制(MAC, Mandatory Access Control)。
(4)域
域決定了系統中進程的訪問,所有進程都在域中運行 。本質上 ,域是一個進程允許的操作列表,決定了一個進程可以對哪些類型進行操作 。SELinux中域的概念相當于標準Linux中uid的概念。
(5)類型
類型與域的概念基本相似,但是, 域是相對進程主體的概念,類型是相對目錄、文件等客體的概念 。類型分配給一個客體,并決定哪個主體可以訪問該客體。
(6)角色
角色決定了可以使用哪些域 。具體哪些角色可以使用哪些域,需要在策略配置文件中預先定義。如果在策略配置文件中定義了某個角色不可以使用某個域,在實際使用中將會被拒絕。
(7)身份
身份屬于安全上下文的一部分,身份決定了本質上可以執行哪個域。
(8)安全上下文
安全上下文是對操作涉及的所有部分的屬性描述,包括身份、角色、域、類型。
(9)策略
策略是規則的集合,是可以設置的規則。
策略決定一個角色的用戶可以訪問什么,哪個角色可以進入哪個域,哪個域可以訪問哪個類型等。
1.2、SELinux內核架構
最早期的SELinux是Linux系統一個增強安全的補丁集,其后為解決每個系統對安全的細節控制不盡相同的問題,Linux安全框架(LSM, Linux Security Modules)被提出,使SELinux可作為可加載的安全模塊運行。
LSM是一個底層的安全策略框架,Linux系統利用LSM管理所有的系統調用。SELinux通過LSM框架整合到Linux內核中。
當用戶進程執行系統調用時,進程首先遍歷Linux內核現有的邏輯尋找和分配資源,進行一些常規的錯誤檢查,然后進行DAC自動訪問控制。
自主訪問控制(DAC, Discretionary Access Control)
進程僅在內核訪問內部對象之前,由LSM的鉤子詢問LSM模塊可否訪問,LSM模塊處理該策略問題并回答可以訪問或拒絕訪問。
LSM框架主要包括安全服務器、客體管理器和訪問向量緩存。LSM模塊架構如圖所示。
安全服務器負責策略決定,安全服務器使用的策略通過策略管理接口載入。
客體管理器負責按照安全服務器的策略決定強制執行它管理的資源集。
對于內核, 客體管理器可以理解為一個內核子系統 ,負責創建并管理內核級的客體,包括文件系統、進程管理和System V進程間通信(IPC, Inter-Process Communication)。
訪問向量緩存(AVC, Access Vector Cache)提升了訪問確認的速度,并為LSM鉤子和內核客體管理器提供了SELinux接口。
1.3、SELinux策略語言
SELinux架構中,對于內核資源,策略通過策略管理接口載入SELinux LSM模塊安全服務器中,從而決定訪問控制。
SELinux的優勢是其策略規則不是靜態的,用戶必須按照安全目標的要求自行編寫策略。使用和應用SELinux本質上就是編寫和執行策略的過程。
策略在策略源文件中描述。策略源文件名稱為policy.conf,其文件結構包括以下幾點。
- (1)類別許可, 指安全服務器的客體類別 ,對于內核而言, 類別直接關系內核源文件 , 許可指針對每個客體類別的許可。 通常,SELinux策略編寫者不會修改客體的類別和許可定義。
- (2)類型強制聲明,包括所有的類型聲明和所有的TE(Type Enforcement,類型強制)規則,是SELinux策略中最重要的部分。
- (3)約束,是TE規則許可范圍之外的規則,為TE規則提供必要的限制。多級安全(MLS)是一種約束規則。
- (4)資源標記說明,指對所有客體都必須添加的一個“安全上下文”標記,是SELinux實施訪問控制的前提。SELinux根據資源標記說明處理文件系統標記以及標記運行時創建的臨時客體規則。
SELinux策略大而復雜,由一個個小的策略模塊構成。
策略模塊的生成一般采用源模塊法。源模塊法支持單策略的開發,并通過一組shell腳本、m4宏和Makefile一起合并成為文本文件。
多個策略模塊集合組成策略源文件,即policy.conf,策略源文件是文本文件,通過策略編譯器checkpolicy編譯為二進制文件policy.xx(xx為版本號),并通過策略裝載函數security_load_policy載入內核且實施訪問控制。
使用源模塊構造和載入SELinux策略的全過程如圖所示。
- 首先,通過源模塊法生成一個個策略模塊,策略模塊聚合形成一個大的策略源文件policy.conf;
- 其次,策略源文件policy.conf通過策略編譯器checkpolicy,生成可被內核讀取的二進制文件policy.xx;
- 最后,policy.xx通過策略裝載函數security_load_policy載入內核空間并實施訪問控制。
目前,在SELinux策略上常見的是單策略組合。
-
二進制
+關注
關注
2文章
796瀏覽量
41757 -
Linux系統
+關注
關注
4文章
596瀏覽量
27510 -
狀態機
+關注
關注
2文章
492瀏覽量
27649
發布評論請先 登錄
相關推薦
車載終端安全檢測有哪些內容和方法
硬核智造驅動創新,大核桃智能巡檢整體解決方案助力高危行業安全生產
![硬核智造驅動創新,大核桃<b class='flag-5'>智能</b>巡檢<b class='flag-5'>整體</b>解決方案助力高危行業<b class='flag-5'>安全</b>生產](https://file1.elecfans.com/web3/M00/00/D7/wKgZO2dOciOAdTy_AACMqTVxmmU006.png)
電梯應急救援終端:守護安全的智慧防線
嵌入式Hypervisor:架構、原理與應用 閱讀體驗 +分離內核的嵌入式Hyperviso
![嵌入式Hypervisor:<b class='flag-5'>架構</b>、原理與應用 閱讀體驗 +分離<b class='flag-5'>內核</b>的嵌入式Hyperviso](https://file1.elecfans.com/web2/M00/09/5C/wKgZomcKPBqAIQU9AEQ4doUCihQ861.png)
評論