Linux中國

戴文的Linux內核專題:04 安全

AppArmor(應用盔甲)最初是由Immunix寫的安全模塊。自從2009年以來,Canonical維護著這些代碼(Novell在Immunix之後,Canonical以前管理這些代碼)。這個安全模塊已經從2.6.36版本進入Linux主分支之中。AppArmor限制了程序的能力。AppArmor使用文件路徑來跟蹤程序限制。許多Linux管理員稱AppArmor是最容易配置的安全模塊。然而,而許多Linux用戶覺得這個模塊與其它的替代品相比很糟糕。

安全增強Linux(SELinux)是AppArmor的替代品,它最初由美國國家安全局開發(NSA)。SELinux自從2.6版本就進入內核主分支中。SELinux是限制修改內核和用戶空間的工具。SELinux給可執行文件(主要是守護進程和服務端程序)最小特權去完成它們的任務。SELinux也可以用來控制用戶許可權。SELinux不像AppArmor那樣使用文件路徑,而SELinux在追蹤許可權時使用文件系統去標記可執行文件。因為SElinux本身使用文件系統管理可執行文件,所以SELinux不能像AppArmor那樣對整個文件系統提供保護。

注意:守護進程是在後台運行的程序

注意:雖然在內核中有AppArmor、SELinux及其它安全模塊,但只能有一個安全模塊被激活。

Smack是安全模塊的另一種選擇。Smack從2.6.25起進入內核主分支。Smack應能比AppArmor更安全,但比SELinux更容易配置。

TOMOYO,是另外一個安全模塊,在2.6.30進入內核主分支。TOMOYO可以提供安全防護,但是它的主要用途是分析系統安全缺陷。

AppArmor、SELinux、Smack和TOMYO組成了四個標準Linux安全模塊。這些都通過使用強制訪問控制(MAC : mandatory access control)工作,這種訪問控制是通過限制程序或者用戶執行一些任務來實現的。安全模塊還有某些形式的列表規定了它們可以做什麼不可以做什麼。

Yama在Linux內核中一個新安全模塊。Yama還沒有作為標準的安全模塊,但是在將來他會成為第5個標準安全模塊。Yama和其他安全模塊一樣使用相同的機制。

「grsecurity」是一系列Linux內核安全補丁的集合。多數補丁用於處理遠程網路連接和緩衝區溢出的安全問題(以後討論)。grsecurity中有一個叫PaX的有趣組件。PaX補丁允許內存里的代碼使用最少的所需許可權。例如,存儲程序的內存段被標為不可寫。想想看,為什麼一個可執行的程序需要在內存中是可寫的?通過這個補丁,惡意代碼就不能修改目前正在執行的程序。緩衝區溢出是一種當程序由於bug或者惡意代碼在內存上寫入數據,並讓它的內存邊界超出到其他程序的內存頁上的安全事件。當Pax被激活時,它會幫助阻止這些緩衝區溢出,因為程序沒有寫到其他內存頁上的許可權了。

Linux入侵檢測系統(LIDS)是一個內核安全補丁,提供了強制訪問控制(MAC)的特性。這個補丁就像扮演LSM模塊的角色。

Systrace是一個減少和控制應用程序訪問系統文件和系統調用的工具。系統調用是對內核的服務請求。比如,當一個文本編輯器寫入一個文件到硬碟上時,程序將會發送一個系統請求讓內核寫入文件到硬碟中。

這些是在Linux安全系統中非常重要的組件。這些安全模塊和補丁使內核免於受到惡意代碼的攻擊。沒有這些特性,Linux系統將會變成一個不安全的操作系統。

via: http://www.linux.org/threads/the-linux-kernel-security.4223/

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國