2021-05-12 14:32:11
SELinux的多層安全機制
型別強制策略相比SELinux引入的MAC(強制存取控制)是比較遙遠的。然而,在一些情況下,特別是在分類的政府應用的子集中,傳統的MLS(多層安全機制)強制存取控制加上TE是非常有價值的。在意識到這個情形之後,SELinux也包括一些MLS的形式。在SELinux中,MLS的特徵是可選的,並且相比兩個強制存取控制機制來說是次要的。對於絕大部分安全應用來說,包括許多沒有很少有資料分類的應用來說,對於增強型安全機制,TE策略是最合適的機制。儘管如此,MLS的新增也提高了一些應用的安全性。
MLS的基礎概念在第一章節已經介紹過了,MLS的實際實現是非常複雜的。被MLS系統使用的安全層是分層的敏感度和一系列非層次目錄集合(包括空集合)的綜合體。這些敏感度和目錄被用來反映真實資訊的機密性和使用者許可。在大多數SELinux策略中,敏感度(s0,s1…)和目錄(c0,c1…)被給予通用的名稱,使使用者空間程式和類庫來分配使用者有意義的名稱。(例如,s0可能與UNCLASSIFIED相關聯,s1可能與SECRET相關聯。)
為了支援MLS,安全上下文被擴充套件包含安全層次,例如這些
user_r:role_type:sensitivity[:category,…][-sensitity[:catagory,…]]
注意,MLS安全上下文一定至少有一個安全層(該安全層是由一個單獨的敏感度和0個或者是多個目錄組成),但是能夠包含兩個安全層。這兩個安全層分別被稱作低層(或者是當前進程層)和高層(進程間隙),如果高安全層丟失了,那麼他就被認為是和低層(通常情況下)是一樣的。特別的,對於大多數客體和進程來說,低安全層和高安全層通常是一樣的。一系列的安全層被用於可信任的主體(也就是可以信賴的能夠降密資訊的主體)和多層客體,例如可能包含不同安全層的客體的目錄。為了縱觀這個點,我們假設所有的進程和客體都只有單一的安全層。
存取客體的MLS規則和在第一章節中討論的一樣,除了安全層不是分層的而是受支配關係支配的。不相平等關係中一層要低於或者是高於另外一層,在支配關係中,存在一個稱作無比的第四狀態(也被稱作不可比的。請在下面的列表中檢視不可比(incomp)的定義)。導致安全層和支配相關而不是和平等關係相關的原因就是目錄。,目錄與另外一個目錄是沒有層次關係的。因此,下面列出了能夠將兩個MLS安全層相聯絡的四個支配操作符:
dom: (dominate)SL1 dom SL2,如果SL1的靈敏度要比SL2的靈敏度高或者是相等,並且SL1的目錄是SL2目錄的超級集合。
domby (dominated by)SL1 domby SL2,如果SL1的靈敏度要低於SL2的靈敏度或者是 和SL2相等,同時,SL1的目錄是SL2目錄的子集。
eq: (equals)SL1 eq SL2,如果SL1的靈敏度和SL2的靈敏度相同,並且SL1的目錄 和SL2的目錄是同一個集合。
incomp: (incomparable 或者是 noncomparable)SL1 incomp SL2,如果SL1的目錄和SL2的目錄是不可比的(也就是,兩個誰也不是誰的子集)
給定域關係,Bell-La Padula模型的一個變種在SELinux中被實現,一個進程能夠“讀”一個客體,如果,該進程的當前安全層能夠支配客體的安全層,並且能夠“寫”一個客體,如果進程的安全層是被客體的安全層支配的話。(因此當且僅當兩個安全層是相等的時候,才既能讀,又能寫)。
在SELinux中的MLS約束是在TE規則之外的。如果MLS被使能了,那麼兩個檢查(除了標準linux的存取控制)一定都得通過才能允許存取。第八章節的“多層安全”討論了SELinux可選的MLS特徵。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-05/117168.htm
相關文章