Linux® 一直被認為是最安全的操作系統之一,但是通過引入安全增強 Linux(Security-Enhanced Linux,SELinux),National Security Agency (NSA) 將 Linux 的安全性提升到了新的高度。SELinux 通過對內核和用戶空間進行修改,對現有的 GNU/Linux 操作系統進行了擴展,從而使其變得堅不可摧。如果您現在正在使用 2.6 版的內核,就會驚奇地發現您已經在使用 SELinux 了!本文將探究 SELinux 背后的思想及其實現方法。
公共網絡(比如 Internet)充滿著危險。只要將電腦連接到 Internet(即使只連接很短的時間),您就會感受到這一點。攻擊者可以利用不安全性來獲得對一個系統的訪問,獲得對信息的未授權訪問,或者對一臺計算機進行改造,以利用它發送垃圾郵件或攻擊其他高端系統(使用 SYN 泛洪攻擊,一種分布式拒絕服務攻擊)。
分布式拒絕服務攻擊(DDoS)通過 Internet 上的多個系統來實現(所以也稱為僵尸電腦),這些系統消耗目標系統上的資源,(利用 TCP 的三向握手)使其不能被合法的用戶訪問。一種帶有 cookie 的四向握手協議(Stream Control Transmission Protocol [SCTP])可以防御這種攻擊,更多信息請參見 參考資料 一節。
![]() |
|
GNU/Linux 非常安全,但它也非常動態:所做的更改會為操作系統帶來新的漏洞,這些漏洞可能被攻擊者利用,盡管人們都非常關心阻止未授權訪問,但是發生入侵后會發生什么呢?
本文將探究 SELinux 背后的思想及其基本架構。關于 SELinux 的完整描述涉及一整本書的內容(參見 參考資料 一節),所以本文只關注其基本原理,使您了解 SELinux 的重要性及其實現過程。
大多數操作系統使用訪問控制來判斷一個實體(用戶或程序)是否能夠訪問給定資源; UNIX® 的系統使用一種自主訪問控制(discretionary access control,DAC)的形式。此方法通常根據對象所屬的分組來限制對對象的訪問。例如,GNU/Linux 中的文件有一個所有者、一個分組和一個權限集。權限定義誰可以訪問給定文件、誰可以讀取它、誰可以向其寫入,以及誰可以執行它。這些權限被劃分到三個用戶集中,分別表示用戶(文件所有者)、分組(一個用戶組的所有成員)和其他(既不是文件所有者,又不是該分組的成員的所有用戶)。
很多這樣的訪問控制都會帶來一個問題,因為所利用的程序能夠繼承用戶的訪問控制。這樣,該程序就可以在用戶的訪問層進行操作。與通過這種方式定義約束相比,使用最小特權原則 更安全:程序只能執行完成任務所需的操作。例如,如果一個程序用于響應 socket 請求,但不需要訪問文件系統,那么該程序應該能夠監聽給定的 socket,但是不能訪問文件系統。通過這種方式,如果該程序被攻擊者利用,其訪問權限顯然是最小的。這種控制類型稱為強制訪問控制(MAC)。
另一種控制訪問的方法是基于角色的訪問控制(RBAC)。在 RBAC 中,權限是根據安全系統所授予的角色來提供的。角色的概念與傳統的分組概念不同,因為一個分組代表一個或多個用戶。一個角色可以代表多個用戶,但它也代表一個用戶集可以執行的權限。
SELinux 將 MAC 和 RBAC 都添加到了 GNU/Linux 操作系統中。下一節將探討 SELinux 實現,以及如何將安全增強透明地添加到 Linux 內核中。
文章來源于領測軟件測試網 http://www.kjueaiud.com/