SELinux 問題集錦(不斷更新中)

【51CTO.com 獨家翻譯】

概述

1、什麼是SELinux?
SELinux是Security-enhanced Linux的縮寫,它最開始是在Linux社區作爲Linux®內核研究的原型和一些增強安全的工具一起證實強制訪問控制的價值,以及如何將這些控制增加到Linux中去,目前SELinux已經集成到Linux 2.6內核的主線和大多數Linux發行版上,SELinux內核包括了新的架構組件,提升了Flask框架操作系統的安全性,這些架構組件提供許多強制訪問控制策略的支持,包括那些基於類型增強(TE)、基於角色的訪問控制和多級安全。

2、SELinux能給我們帶來什麼傳統Linux沒有的東西?
SELinux內核強制訪問控制策略限制用戶程序和系統服務正常工作需要的最小權限,當使用這種方法進行限制後,有效地減低了或消除了這些用戶程序和系統服務泄密引起的危害,這個限制機制與傳統訪問控制機制互相獨立,誰也不妨礙誰,它沒有超級用戶的概念,也不會共用傳統的Linux安全機制的缺陷(例如一個依賴setuid/setgid的二進制文件)
一個沒有修改過的Linux系統的安全依賴於內核的正確性、所有應用程序的權限和它們的配置,這些地方任何一個問題都有可能造成全部系統泄密,相反,一個基於SELinux的經過修改的系統的安全主要依賴於內核的正確性和它的安全策略配置,當正確性或應用程序的配置出現了問題,個別應用程序或系統進程造成了泄密,也不會對其他應用程序或系統進程的安全造成安全威脅。

3、有什麼好處?
SELinux的新特性是基於機密性和完整性需求進行設計,它們被設計成阻止進程讀取數據、數據被篡改、繞過應用程序安全機制,執行不可信任的程序,或干涉其它違背系統安全策略的進程,它們還幫助限制由於惡意或有缺陷的程序引起的潛在危險,它們還可以用於一個單個系統對不用需求的用戶訪問進行不同的安全認證。

4、我如何得到一份拷貝?
你可以在http://www.nsa.gov/selinux/code/下載它或者使用一個已經包括了SELinux支持的發行版,有關詳細信息可以在SELinux Sourceforge project找到。

5、你的發行版包括了什麼?
NSA SELinux發行包括了核心的SELinux應用程序代碼,SELinux支持已經包括在Linux2.6內核的主線裏,可以從kernel.org下載最新的內核,核心的SELinux應用代碼由一個爲二進制策略操作的庫(libsepol)、一個策勒編譯器(checkpolicy)、一個爲安全感知應用程序準備的庫(libsemanage)和幾個與策略有關的工具(policycoreutils).
除此之外,對於一個啓用了SELinux的內核和SELinux核心應用代碼,你將需要一個策略和SELinux補丁包,策略可以從SELinux參考策略項目獲取,在SELinux Sourceforge project可以獲取大多數發行版的SELinux補丁包。

6、我可以在一個已經裝好的Linux系統上安裝SELinux嗎?
是的,你可以在一個已經裝好的Linux系統上僅僅只安裝SELinux或者直接全新安裝一個包括SELinux支持的發行版。SELinux由一個啓用了SELinux的內核、一套核心庫和工具、一些修改了的應用程序包和一個策略配置組成,要在一個沒有SELinux支持的系統上安裝它,你必須編譯軟件及其他需要的軟件包,如果你的系統可以支持SELinux,你不需要編譯或安裝NSA SELinux發行包,除非你想將它更新到最新狀態。

7、SELinux與未改動的Linux兼容性如何?
SELinux提供與現有Linux應用程序和Linux內核模塊二進制兼容性,但是一部分內核模塊需要修改以便與SELinux正確地進行交互,下面詳細討論這兩方面的兼容性:

A.應用程序兼容性
SELinux提供與現有應用程序二進制兼容性,我們已經擴展了內核數據結構以包含新的安全屬性,並且我們爲安全感知應用程序增加了新的API調用,但是我們並沒有對應用程序改變任何數據結構的可視性,也沒有改變現有系統調用的任何接口,因此現有應用程序可以不用修改就可以運行,只要安全策略認證了它們的操作就行。

B.內核模塊兼容性
最初,SELinux僅僅爲內核模塊提供源代碼兼容,那些修改了內核頭的模塊爲了獲取新的增加到內核數據結構的安全屬性而不得不必須重新編譯,自從LSM和SELinux集成到Linux2.6內核主線依賴,SELinux就提供了與內核模塊二進制兼容性,但是,仍然有一些內核模塊需要修改才能與SELinux進行交互,例如:如果一個內核模塊沒有使用正常的內核核心功能來分配並設置一個內核對象,那麼這個對象將缺少特有的安全信息,一部分內核模塊也可能缺少正確的安全控制,任何現有的調用都將觸發SELinux權限檢查,最細粒度的控制或傳統控制都需要強制MAC策略。
SELinux不會引入常規Linux共有的問題,只要所有請求的操作都經過了安全策略配置的認證即可。

8、樣例安全策略配置的目標是什麼?
高級的目標是證明強制訪問控制的靈活性和安全以及提供一個最小應用程序修改的工作系統,低級的目標在策略文檔中有一些目標描述,這些目標包括對數據的原始訪問控制,內核完整性、系統軟件、系統配置信息和系統日誌的保護,限制那些由於開發的原因造成的有潛在危險的權限,保護由於執行惡意代碼的特權進程,保護管理員角色和未經用戶認證而進入的域,阻止常規用戶進程干涉系統進程或管理進程,保護用戶和管理員在他們的瀏覽器裏執行惡意的移動代碼。

9、爲什麼是Linux被選做爲基礎平臺?
Linux被選做爲基礎平臺是因爲它正在走向成功並開放了開發環境,Linux提供了一個極好的機會來證明這個功能能在主流的操作系統上是可以成功的,同時,幫助提高了廣泛使用的系統的安全,Linux平臺也爲接收大量的評價提供了極好的機會,併爲傳統安全研究提供了基礎。

10、爲什麼你要做這個工作?
NSA的信息保障研究組專門負責研究和開發需要的高級技術,讓NSA能提供解決方案、產品和完成美國國家安全部門提供信息保障服務,。
創建一個有生命力的安全操作系統留下了一個重要的研究問題,我們的目標是創建一個有效的爲安全提供必須的支持的系統架構,通過這個方法執行一個應用程序對於用戶來說基本上是透明的,並且對開發商是有吸引力的,我們認爲達到這個目標必要的步驟是如何將強制訪問控制集成到主流的操作系統中去。

11、它與早先的NSA OS研究是如何聯繫的?
NSA的信息保障研究組的研究人員與安全計算公司(SCC)一起工作,共同開發一個基於類型增強的強壯的、靈活的強制訪問控制架構,首先是爲LOCK系統開發的一個結構,NSA和SCC開發了兩個基於Mach的架構原型:DTMach和DTOS(http://www.cs.utah.edu/flux/dtos/)。NSA和SCC後來與猶他州立大學研究組合作將這個架構移植到Fluke操作系統上,在移植過程中,架構爲更好地提供動態安全策略支持進行了增強。這個增強的架構就是今天的Flask(http://www.cs.utah.edu/flux/flask/),NSA現在已經將Flask架構集成到Linux操作系統中了,並將這個技術轉移給大型的開發者和用戶社區。

12、SELinux是一個可靠的操作系統嗎?
短語“可靠的操作系統”通常是相對於提供充足的多級安全支持和滿足政府部門特殊需求的操作而言,SELinux吸取了這些系統有用的想法,但主要集中在強制訪問控制,SELinux開發最初的焦點是爲真實環境創建一個有用的保護措施,SELinux本身並不是一個可信賴的操作系統,但是它提供了一個重要的安全特性 – 強制訪問控制 – 可信賴操作系統需要的。SELinux已經被集成到依靠標記安全保護配置文件通過評估的Linux發行版,有效的產品信息和評估中的產品信息可以在http://niap-ccevs.org/找到。

13、它安全嗎?
一個安全的系統概念包括很多屬性(如物理安全,個人安全等),SELinux僅僅訪問一套非常有限的屬性(如在操作系統上強制訪問控制),安全系統意味着足夠安全地保護現實世界的信息,這些信息是信息所有者的敵人和/或用戶關心的。SELinux僅僅想證明在類似Linux的現代操作系統中的強制訪問控制,我們認爲這個技術在SELinux中被證明是有用的,這對創建安全系統的人們來說是非常有價值的。

14、在提高保障方面你都做過什麼?
這個項目的目標是給Linux增加強制訪問控制並做最小的改動,後來的目標大大限制了提高保障能做的事情,沒有將精力集中在提高Linux保障方面的工作,另一方面,增強依靠先前設計一個高保障的安全架構工作,並且這些設計原則大部分都在SELinux中得到了延續。

15、SELinux將被CCEVS評估嗎?
單獨地,SELinux沒有被設計成訪問一套完整的安全體系,雖然它可能獨立地評估目前的功能,我們認爲這樣一個評估可能限制了它的價值,但是,我們已經和其他發行商合作將這個技術集成到Linux發行版中去了,可以在http://niap-ccevs.org/看到有關的產品信息和評估信息。

16、你嘗試過修復任何缺陷嗎?
沒有,我們在我們的工作中還沒有找到或發現過任何缺陷,我們僅僅爲增加新的結構進行了大量改動。

17、它被政府認可使用嗎?
SELinux沒有爲政府使用指定特殊的或額外的認可,超越了其他的Linux版本。

18、它與其他成就有何不同?
SELinux有一個爲靈活的強制訪問控制定義的非常好的架構,它已經經過幾個原型系統(DTMach, DTOS, Flask)得到了證實,架構支持非常多的安全策略,請參考http://www.cs.utah.edu/flux/dtos/http://www.cs.utah.edu/flux/flask/
架構提供了細粒度的控制超過了其他沒有訪問控制的系統的內核抽象概念和服務,一些SELinux系統的不同特徵如下:
從強制清楚策略的區別
定義良好的策略接口
獨立於特殊的策略和策略語言
獨立於特殊的安全標記格式和內容
爲內核對象和服務特殊標記和控制
爲提升效率緩存訪問決策
支持策略改變
控制進程初始化和繼承以及程序執行
控制文件系統、目錄、文件和打開文件描述
控制套接字、消息和網絡接口
控制功能的使用

19、在它上面有什麼許可限制?
在這個站點上發行的所有源代碼都具有相同的條款和條件,例如:linux內核補丁和這裏現有的工具的補丁都是基於GPL發行的。

20、它有出口控制嗎?
沒有爲SELinux設置額外的出口控制,超過了其他Linux版本。

21、NSA計劃在內部使用它嗎?
由於衆所周知的原因,NSA不對操作使用上做解釋。

22、2002/7/26日安全計算公司關於保障的陳述改變了NSA的位置,使得SELinux使用GPL協議發佈嗎?
NSA的位置沒有改變,NSA繼續遵循GPL協議使用,拷貝,發佈和對SELinux的修改,請查看2001/1/2日的NSA發行註記

23、NSA贊成開放源代碼嗎?
NSA在提高軟件安全方面同時兼顧了專有技術和開放源代碼,在我們的研究活動中可以同時使用它們,NSA的工作提升軟件的安全出於一個簡單的考慮:有效地使用我們的資源儘可能地給NSA的客戶提供最好的安全選項,NSA的研究目標是開發能與軟件開發社區共享的高級技術,NSA不贊成或宣傳任何特殊的軟件產品或商業模塊,當然,NSA正在促進安全增強。

【51CTO.COM 獨家翻譯,轉載請註明出處及作者!】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章