這里來(lái)看看操作系統(tǒng)之前先看看內(nèi)核
操作系統(tǒng)和內(nèi)核是包含關(guān)系,內(nèi)核是操作系統(tǒng)最基本的部分,它提供了操作系統(tǒng)的最基本功能,是操作系統(tǒng)工作的基礎(chǔ)。
操作系統(tǒng)內(nèi)核負(fù)責(zé)操作系統(tǒng)的任務(wù)調(diào)度、用戶管理、內(nèi)存管理、多線程支持、多CPU支持等,并包含 必要的網(wǎng)絡(luò)協(xié)議、驅(qū)動(dòng)等 。
內(nèi)核是所有軟件的基礎(chǔ),相應(yīng)的 內(nèi)核安全是操作系統(tǒng)安全的基礎(chǔ) 。
這里其實(shí)可以理解一下什么內(nèi)核和操作系統(tǒng):簡(jiǎn)言之,操作系統(tǒng)就是內(nèi)核掌握了技能之后的樣子。
當(dāng)前主流操作系統(tǒng)的內(nèi)核都屬于UNIX(或類UNIX)系統(tǒng)。UNIX是一個(gè)強(qiáng)大的多用戶、多任務(wù)操作系統(tǒng),支持多種處理器架構(gòu),屬于分時(shí)操作系統(tǒng)。
UNIX最早于1969年在AT&T的貝爾實(shí)驗(yàn)室開(kāi)發(fā),隨著時(shí)間演進(jìn)產(chǎn)生若干分支,并在移動(dòng)智能終端操作系統(tǒng)中獲得廣泛使用,如 iOS系統(tǒng)基于UNIX BSD規(guī)范 ,而 Android則基于Linux,同屬UNIX大類 。
簡(jiǎn)單地說(shuō),UNIX是現(xiàn)代操作系統(tǒng)的典型代表,也是各種主要OS的技術(shù)源泉;而Linux是類UNIX的一個(gè)開(kāi)源版本,具有產(chǎn)品級(jí)的系統(tǒng)穩(wěn)定性。
典型終端操作系統(tǒng)內(nèi)核使用情況如表所示。

可以看到,除了iOS,其他多數(shù)移動(dòng)智能終端操作系統(tǒng)均采用了Linux內(nèi)核。但iOS系統(tǒng)是封閉的,整體來(lái)說(shuō),對(duì)Linux內(nèi)核的安全研究有相當(dāng)?shù)膶?shí)際價(jià)值。
在Linux基礎(chǔ)之上,2000年12月22日美國(guó)國(guó)家安全局(NSA,National Security Agency)發(fā)布了Linux安全增強(qiáng)版本SELinux, 其全稱為Security-Enhanced Linux ,之后被合并到主線Linux內(nèi)核版本中。隨著近幾年安全需求的不斷增強(qiáng),SELinux開(kāi)始在產(chǎn)品和系統(tǒng)中獲得使用。
于是請(qǐng)歡迎咱們的主角SELinux登場(chǎng)!?。?/strong>
1、SELinux整體架構(gòu)
1.1 SELinux基本概念
SELinux由NSA發(fā)布,之后,Red Hat、Network Associates、Secure Computing Corporation、Tresys Technology以及Trusted Computer Solutions等公司及研究團(tuán)隊(duì)都為SELinux的發(fā)展做出了重要的貢獻(xiàn)。
SELinux本質(zhì)是一個(gè)Linux內(nèi)核安全模塊 ,可在Linux系統(tǒng)中配置其狀態(tài)。SELinux的狀態(tài)分為3種,即disabled、permissive和enforcing。
- (1)disabled狀態(tài):指在Linux系統(tǒng)中不啟用SELinux模塊的功能。
- (2)permissive狀態(tài):指在Linux系統(tǒng)中,SELinux模塊處于Debug模式, 若操作違反策略系統(tǒng)將對(duì)違反內(nèi)容進(jìn)行記錄 ,但不影響后續(xù)操作。
- (3)enforcing狀態(tài):指在Linux系統(tǒng)中,SELinux模塊有效, 若操作違反策略,SELinux模塊將無(wú)法繼續(xù)工作 。
SELinux涉及的重要概念如下。
(1)主體
主體是訪問(wèn)操作的發(fā)起者 ,是系統(tǒng)中信息流的啟動(dòng)者。主體通常指用戶或代表用戶意圖的進(jìn)程。
通常, 主體是訪問(wèn)的發(fā)起者,但有時(shí)也會(huì)成為訪問(wèn)或受控的對(duì)象 。
一個(gè)主體可以向另一個(gè)主體授權(quán),一個(gè)進(jìn)程可能會(huì)控制幾個(gè)子進(jìn)程,這時(shí)受控的主體或子進(jìn)程就是一種客體。
(2)客體
客體相對(duì)主體而存在,通常客體 是指信息的載體或從其他主體或客體接收信息的實(shí)體 ,即訪問(wèn)對(duì)象。
(3)訪問(wèn)控制分類
管理方式的不同形成不同的訪問(wèn)控制方式。
通常,訪問(wèn)控制方式分為兩類:自主訪問(wèn)控制(DAC, Discretionary Access Control)和強(qiáng)制訪問(wèn)控制(MAC, Mandatory Access Control)。
(4)域
域決定了系統(tǒng)中進(jìn)程的訪問(wèn),所有進(jìn)程都在域中運(yùn)行 。本質(zhì)上 ,域是一個(gè)進(jìn)程允許的操作列表,決定了一個(gè)進(jìn)程可以對(duì)哪些類型進(jìn)行操作 。SELinux中域的概念相當(dāng)于標(biāo)準(zhǔn)Linux中uid的概念。
(5)類型
類型與域的概念基本相似,但是, 域是相對(duì)進(jìn)程主體的概念,類型是相對(duì)目錄、文件等客體的概念 。類型分配給一個(gè)客體,并決定哪個(gè)主體可以訪問(wèn)該客體。
(6)角色
角色決定了可以使用哪些域 。具體哪些角色可以使用哪些域,需要在策略配置文件中預(yù)先定義。如果在策略配置文件中定義了某個(gè)角色不可以使用某個(gè)域,在實(shí)際使用中將會(huì)被拒絕。
(7)身份
身份屬于安全上下文的一部分,身份決定了本質(zhì)上可以執(zhí)行哪個(gè)域。
(8)安全上下文
安全上下文是對(duì)操作涉及的所有部分的屬性描述,包括身份、角色、域、類型。
(9)策略
策略是規(guī)則的集合,是可以設(shè)置的規(guī)則。
策略決定一個(gè)角色的用戶可以訪問(wèn)什么,哪個(gè)角色可以進(jìn)入哪個(gè)域,哪個(gè)域可以訪問(wèn)哪個(gè)類型等。
1.2、SELinux內(nèi)核架構(gòu)
最早期的SELinux是Linux系統(tǒng)一個(gè)增強(qiáng)安全的補(bǔ)丁集,其后為解決每個(gè)系統(tǒng)對(duì)安全的細(xì)節(jié)控制不盡相同的問(wèn)題,Linux安全框架(LSM, Linux Security Modules)被提出,使SELinux可作為可加載的安全模塊運(yùn)行。
LSM是一個(gè)底層的安全策略框架,Linux系統(tǒng)利用LSM管理所有的系統(tǒng)調(diào)用。SELinux通過(guò)LSM框架整合到Linux內(nèi)核中。
當(dāng)用戶進(jìn)程執(zhí)行系統(tǒng)調(diào)用時(shí),進(jìn)程首先遍歷Linux內(nèi)核現(xiàn)有的邏輯尋找和分配資源,進(jìn)行一些常規(guī)的錯(cuò)誤檢查,然后進(jìn)行DAC自動(dòng)訪問(wèn)控制。
自主訪問(wèn)控制(DAC, Discretionary Access Control)
進(jìn)程僅在內(nèi)核訪問(wèn)內(nèi)部對(duì)象之前,由LSM的鉤子詢問(wèn)LSM模塊可否訪問(wèn),LSM模塊處理該策略問(wèn)題并回答可以訪問(wèn)或拒絕訪問(wèn)。
LSM框架主要包括安全服務(wù)器、客體管理器和訪問(wèn)向量緩存。LSM模塊架構(gòu)如圖所示。

安全服務(wù)器負(fù)責(zé)策略決定,安全服務(wù)器使用的策略通過(guò)策略管理接口載入。
客體管理器負(fù)責(zé)按照安全服務(wù)器的策略決定強(qiáng)制執(zhí)行它管理的資源集。
對(duì)于內(nèi)核, 客體管理器可以理解為一個(gè)內(nèi)核子系統(tǒng) ,負(fù)責(zé)創(chuàng)建并管理內(nèi)核級(jí)的客體,包括文件系統(tǒng)、進(jìn)程管理和System V進(jìn)程間通信(IPC, Inter-Process Communication)。
訪問(wèn)向量緩存(AVC, Access Vector Cache)提升了訪問(wèn)確認(rèn)的速度,并為L(zhǎng)SM鉤子和內(nèi)核客體管理器提供了SELinux接口。
1.3、SELinux策略語(yǔ)言
SELinux架構(gòu)中,對(duì)于內(nèi)核資源,策略通過(guò)策略管理接口載入SELinux LSM模塊安全服務(wù)器中,從而決定訪問(wèn)控制。
SELinux的優(yōu)勢(shì)是其策略規(guī)則不是靜態(tài)的,用戶必須按照安全目標(biāo)的要求自行編寫(xiě)策略。使用和應(yīng)用SELinux本質(zhì)上就是編寫(xiě)和執(zhí)行策略的過(guò)程。
策略在策略源文件中描述。策略源文件名稱為policy.conf,其文件結(jié)構(gòu)包括以下幾點(diǎn)。
- (1)類別許可, 指安全服務(wù)器的客體類別 ,對(duì)于內(nèi)核而言, 類別直接關(guān)系內(nèi)核源文件 , 許可指針對(duì)每個(gè)客體類別的許可。 通常,SELinux策略編寫(xiě)者不會(huì)修改客體的類別和許可定義。
- (2)類型強(qiáng)制聲明,包括所有的類型聲明和所有的TE(Type Enforcement,類型強(qiáng)制)規(guī)則,是SELinux策略中最重要的部分。
- (3)約束,是TE規(guī)則許可范圍之外的規(guī)則,為T(mén)E規(guī)則提供必要的限制。多級(jí)安全(MLS)是一種約束規(guī)則。
- (4)資源標(biāo)記說(shuō)明,指對(duì)所有客體都必須添加的一個(gè)“安全上下文”標(biāo)記,是SELinux實(shí)施訪問(wèn)控制的前提。SELinux根據(jù)資源標(biāo)記說(shuō)明處理文件系統(tǒng)標(biāo)記以及標(biāo)記運(yùn)行時(shí)創(chuàng)建的臨時(shí)客體規(guī)則。
SELinux策略大而復(fù)雜,由一個(gè)個(gè)小的策略模塊構(gòu)成。
策略模塊的生成一般采用源模塊法。源模塊法支持單策略的開(kāi)發(fā),并通過(guò)一組shell腳本、m4宏和Makefile一起合并成為文本文件。
多個(gè)策略模塊集合組成策略源文件,即policy.conf,策略源文件是文本文件,通過(guò)策略編譯器checkpolicy編譯為二進(jìn)制文件policy.xx(xx為版本號(hào)),并通過(guò)策略裝載函數(shù)security_load_policy載入內(nèi)核且實(shí)施訪問(wèn)控制。
使用源模塊構(gòu)造和載入SELinux策略的全過(guò)程如圖所示。

- 首先,通過(guò)源模塊法生成一個(gè)個(gè)策略模塊,策略模塊聚合形成一個(gè)大的策略源文件policy.conf;
- 其次,策略源文件policy.conf通過(guò)策略編譯器checkpolicy,生成可被內(nèi)核讀取的二進(jìn)制文件policy.xx;
- 最后,policy.xx通過(guò)策略裝載函數(shù)security_load_policy載入內(nèi)核空間并實(shí)施訪問(wèn)控制。
目前,在SELinux策略上常見(jiàn)的是單策略組合。
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
809瀏覽量
43037 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
614瀏覽量
29915 -
狀態(tài)機(jī)
+關(guān)注
關(guān)注
2文章
499瀏覽量
29152
發(fā)布評(píng)論請(qǐng)先 登錄
局放監(jiān)測(cè)智能終端:設(shè)備安全運(yùn)行
智慧用電安全管理終端使用說(shuō)明書(shū)
MTK平臺(tái)LK階段mt_boot.c配置:SELINUX_STATUS 2的作用與影響
硬件加密引擎在保障數(shù)據(jù)安全方面有哪些優(yōu)勢(shì)呢?
芯源半導(dǎo)體安全芯片技術(shù)原理
華為HiSec Endpoint智能終端安全系統(tǒng)通過(guò)國(guó)際權(quán)威測(cè)試
工控主板,龍芯2K2000強(qiáng)勁“芯”為終端的高效、安全、智能注入持久動(dòng)力
頂堅(jiān)防爆PDA終端賦能石油化工:如何重構(gòu)高危場(chǎng)景作業(yè)安全邊界
云翎智能低軌衛(wèi)星物聯(lián)網(wǎng)終端在核電安全監(jiān)測(cè)與應(yīng)急通信的融合應(yīng)用
芯盾時(shí)代助力企業(yè)終端安全防護(hù)邁入智能化時(shí)代
華為榮獲ITP.NET年度終端安全創(chuàng)新獎(jiǎng)
如何維護(hù)i.MX6ULL的安全內(nèi)核?
頂堅(jiān)本安型防爆智能手持終端:高危行業(yè)安全革新的技術(shù)突破
頂堅(jiān)智能防爆手持終端:確保高危易燃易爆作業(yè)安全無(wú)憂
智能終端安全:內(nèi)核安全-SElinux整體架構(gòu)
評(píng)論