Linux系統下安全控制策略SELinux解析
SELinux(Security-Enhanced linux)是增強版Linux,簡稱SELinux,它是一個Linux核心模組,也是Linux的一個安全子系統,主要以核心模組為支援,使用者態程式進行許可權策略管理。
背景
Linux系統下的root許可權相當於系統的最高許可權,例如,當一個Linux木馬程式透過漏洞或釣魚等方式在使用者電腦中執行時,幾乎可以完成任何操作,這給Linux系統安全造成了嚴峻的威脅。
為了降低這一安全風險,Linux系統引入了SELinux安全控制策略。SELinux控制策略的核心思想,相當於給系統設定了2把鎖,除了root許可權使用者之外,還引入了管理員adm使用者,而且這兩個使用者的許可權各不相同,甚至存在相互制約,攻擊者必須同時獲取兩把鑰匙才能取得許可權,這極大降低了暴露的攻擊面和被攻擊的可能。
SELinux安全策略把許可權細化到訪問的目錄或具體的檔案,這意味著每個Linux系統執行的程式只能訪問事先被允許的檔案,訪問其他的檔案就會出現訪問受限或者報錯。如果許可權控制策略寫的非常仔細,或在產品的二進位制中執行RCE shellcode,最終也只能訪問一些無關的不重要資訊。
SELinux的引入降低了系統被攻擊和控制的風險,但同時導致Linux系統在使用上更復雜,因此,這些策略更適用於佈置在已經除錯好的機器。但SELinux也是歷史上最傑出的安全子系統,其中的模組實現細節和安全思想也被多數安全產品借鑑,二次開發出安全產品和引入到其他的類linux系統中。
本文將詳細介紹其中的實現思想,並對控制策略細節進行分析。
策略細節分析
1. 策略3種狀態
在Linux安全作業系統上,SELinux的安全策略狀態有三種:
Enforcing(強制模式): 表示SELinux正在執行,所設定的所有安全策略都被啟用,所有與SELinux安全策略相關的服務和程式被策略限制。
Permissive(寬容模式): 表示SELinux執行,所設定的所有安全策略都被啟用,所有涉及到的安全策略相關的服務和程式不會被策略限制,程式不會受到限制,但是會有日誌記錄。
Disabled(關閉): SELinux安全策略被關閉。
2. 實現細節
SELinux的框架實現的思想是通Linux核心模組的LSM框架進行實現的,LSM框架的思想允許安全模組.ko型別的檔案以外掛的方式進入核心,以便更嚴格地控制基於身份的任意訪問安全性。LSM框架開發了一套系統的鉤子函式介面,可以對Linux系統的檔案進行復制、移動及修改,網路行為監控、IP、埠都對應了其中的配置規則,SELinux作為一個LSM的核心模組載入到核心中,在允許之前進行額外的訪問確認,安全伺服器就是對訪問的規則進行策略判斷,這些策略透過使用者空間的策略管理介面配置到系統中,SELinux策略透過核心的LSM框架為基礎去實現,LSM提供核心訊息鉤子函式去捕獲作業系統的各種操作訊息,在此基礎上,SELinux自己在核心中實現了策略管理器,透過不同的策略與傳遞過來的訊息進行對比,以此判斷放行或阻斷。
3. 配置檔案說明
上述了策略的配置,管理員賬戶可透過使用者態提供策略的介面去配置策略,策略檔案是為策略原始檔作說明的,policy.conf策略的具體組成包括:類別和許可、型別強制宣告(型別、TE規則、角色和使用者)、約束、資源標記說明。
其應用於管理編寫特定規則下的檔案,例如policy.conf,透過策略編譯器checkpolicy去編譯、生成policy.xx的二進位制檔案,同時策略編譯器在編譯規則時會檢測語法是否正確,錯誤的規則語法會判斷編譯不透過,之後編譯檔案的策略二進位制透過checkmodule命令去載入到核心中,規則開始生效。
具體的規則配置官方手冊:
適用場景及優缺點
SELinux安全控制策略作為Linux子系統中的安全防護環節,具有安全可靠、許可權細化等特點。由於開啟SELinux策略的Linux系統,會對所有操作進行審計和規則檢測,如果規則中沒有給瀏覽器對應的埠訪問許可權和特定的檔案執行,訪問就會失敗,因此,SELinux策略更適用於安全產品配置到Linux系統中的一體化硬體裝置中去開啟,也能更大程度發揮出安全策略的優勢。
總結
SELinux安全控制策略是安全體系中端點安全防護中的一環,其主要採用許可權分類和認證的策略,使未經過認證的程式無法被執行,防止作業系統被入侵後陌生程式執行惡意程式和木馬,Android的許可權訪問控制策略也借鑑了其中的安全思想。總的來說,SELinux的安全控制策略擁有優秀的安全控制框架,允許自定義適合自身系統的安全策略,增強Linux的系統安全,防禦未知攻擊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020988/viewspace-2991586/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux系統中 SElinux安全子系統Linux
- 使用semanage管理SELinux安全策略Linux
- 如何使用semanage管理SELinux安全策略Linux
- 基於linux下的selinux強制訪問控制Linux
- selinux控制Linux
- Linux系統開啟或關閉SELinux。Linux
- SELinux策略語法以及示例策略Linux
- Linux下selinux簡單梳理Linux
- 搭建web伺服器的SElinux策略保護SElinux修改預設埠安全web服務Web伺服器Linux
- Linux下常用安全策略設定方法Linux
- linux系統ACL控制Linux
- Linux下常用安全策略設定方法薦Linux
- SELinux 安全模型——TELinux模型
- IE沙箱拖拽安全策略解析
- linux系統服務解析Linux
- 檔案系統、服務、防火牆、SELINUX——安全四大金剛防火牆Linux
- Linux系統下對NFS服務安全加固的方法LinuxNFS
- 讓系統更安全–必知十四大安全策略
- JAVA控制檯下:控制檯商城購物系統Java
- Linux系統安全保護Linux
- 關於UNIX和Linux系統下SUID、SGID的解析LinuxUI
- Linux網路安全策略Linux
- 關於安全策略的幾點解析
- 通過兩個案例初步瞭解Linux下selinux的安全機制工作機制Linux
- Linux 控制系統帳戶過期Linux
- 安全使用RedHat Linux系統(轉)RedhatLinux
- 如何設定 Linux 系統的密碼策略Linux密碼
- 解析linux包管理和系統更新Linux
- Linux的系統的安全如何保障?保護Linux系統安全的九個常用方法Linux
- Linux 系統管理(下)(轉)Linux
- 工業網際網路環境下的工業控制系統安全防護
- 解析Linux系統根檔案系統的目錄樹Linux
- win10系統下沒有本地安全策略和使用者組怎麼辦Win10
- WindowsXP作業系統的八大安全策略Windows作業系統
- LINUX系統中程式如何管理控制(一)Linux
- Win7安全模式下如何修復系統 Win7安全模式下系統修復方法Win7模式
- Linux系統安全常規優化Linux優化
- 工控安全政策系列導讀:資訊保安技術工業控制系統安全控制應用指南