SELinux策略語言
SELinux架構(gòu)中,對于內(nèi)核資源,策略通過策略管理接口載入SELinux LSM模塊安全服務(wù)器中,從而決定訪問控制。
SELinux的優(yōu)勢是其策略規(guī)則不是靜態(tài)的,用戶必須按照安全目標(biāo)的要求自行編寫策略。使用和應(yīng)用SELinux本質(zhì)上就是編寫和執(zhí)行策略的過程。
策略在策略源文件中描述。策略源文件名稱為policy.conf,其文件結(jié)構(gòu)包括以下幾點(diǎn)。
?(1)類別許可,指安全服務(wù)器的客體類別,對于內(nèi)核而言,類別直接關(guān)系內(nèi)核源文件,許可指針對每個客體類別的許可。通常,SELinux策略編寫者不會修改客體的類別和許可定義。
?(2)類型強(qiáng)制聲明,包括所有的類型聲明和所有的TE(Type Enforcement,類型強(qiáng)制)規(guī)則,是SELinux策略中最重要的部分。
?(3)約束,是TE規(guī)則許可范圍之外的規(guī)則,為TE規(guī)則提供必要的限制。多級安全(MLS)是一種約束規(guī)則。
?(4)資源標(biāo)記說明,指對所有客體都必須添加的一個“安全上下文”標(biāo)記,是SELinux實(shí)施訪問控制的前提。SELinux根據(jù)資源標(biāo)記說明處理文件系統(tǒng)標(biāo)記以及標(biāo)記運(yùn)行時創(chuàng)建的臨時客體規(guī)則。
SELinux策略大而復(fù)雜,由一個個小的策略模塊構(gòu)成。
策略模塊的生成一般采用源模塊法。源模塊法支持單策略的開發(fā),并通過一組shell腳本、m4宏和Makefile一起合并成為文本文件。
多個策略模塊集合組成策略源文件,即policy.conf,策略源文件是文本文件,通過策略編譯器checkpolicy編譯為二進(jìn)制文件policy.xx(xx為版本號),并通過策略裝載函數(shù)security_load_policy載入內(nèi)核且實(shí)施訪問控制。
使用源模塊構(gòu)造和載入SELinux策略的全過程如圖所示。
?首先,通過源模塊法生成一個個策略模塊,策略模塊聚合形成一個大的策略源文件policy.conf;
?其次,策略源文件policy.conf通過策略編譯器checkpolicy,生成可被內(nèi)核讀取的二進(jìn)制文件policy.xx;
?最后,policy.xx通過策略裝載函數(shù)security_load_policy載入內(nèi)核空間并實(shí)施訪問控制。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1371瀏覽量
40265 -
Linux
+關(guān)注
關(guān)注
87文章
11261瀏覽量
209177 -
源文件
+關(guān)注
關(guān)注
0文章
30瀏覽量
4586 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1013瀏覽量
21328
發(fā)布評論請先 登錄
相關(guān)推薦
評論