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

轉自Linux中國linux

 

 

Linux內核是全部Linux系統的核心。若是有任何惡意代碼控制或破害了內核的任何一部分,那麼系統會嚴重受損,文件可能被刪除或損壞,私人信息可能被盜等等。很明顯,保持內核安全涉及到用戶的最大利益。值得慶幸的是,因爲Linux內核極其安全,Linux是一個很是安全的系統。在用戶比例上,Linux病毒比Windows病毒更少,而且Linux用戶比Windows用戶我的更少感染病毒。(這就是爲何許多公司使用Linux來管理他們的服務器的一個緣由。) 然而,咱們仍然沒有藉口去忽視內核的安全。Linux有幾個安全特性和程序,但本文只討論Linux安全模塊(LSM)及其它的內核安全特性。安全

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更容易配置。spa

TOMOYO,是另一個安全模塊,在2.6.30進入內核主分支。TOMOYO能夠提供安全防禦,可是它的主要用途是分析系統安全缺陷。操作系統

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

Yama在Linux內核中一個新安全模塊。Yama尚未做爲標準的安全模塊,可是在未來他會成爲第5個標準安全模塊。Yama和其餘安全模塊同樣使用相同的機制。unix

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

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

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

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

相關文章
相關標籤/搜索