對操作系統的安全性進行定性分析,很容易包含主觀意見,得到的結論會由于過去和現在的經驗而有很大的不同。本文的目標是給用戶提供一個框架,讓他們更多的理解Windows和Linux的安全性能。下面的分析并不全面,只是終端用戶進行評估的起點。Linux和Windows在技術上不斷進步,究竟哪個系統更安全的結論也會不斷變化。本文分析的結果:Linux提供了比Windows更好的安全特性。
基本安全
微軟和Linux都提供了對驗證、訪問控制、記帳/日至、受控的訪問保護實體、加密的支持。不過Linux的表現更好一些,因為Linux還提供了Linux安全模塊、SELinux和winbind。Linux用戶不需對內核打補丁就能增加額外的安全機制。
Linux在LSM之上構建了多種訪問控制機制,例如:為應用程序建立了單獨的空間,使它們之間相互分離,也與基本的操作系統隔離,這樣即使應用程序出現了安全問題也不會影響操作系統。Linux的基本安全也可以通過應用程序增強,比如Tripwire(可以定期對系統進行關鍵文件的完整性檢查,如果文件的內容或者屬性有變化就通知系統管理員)。
Windows的限制在于基本安全是依靠MSCAPI的,在代碼簽名時信任多個密鑰。微軟的模型重點在于可以同時對一個產品使用弱加密或者強加密。盡管模塊不是以相同的密鑰進行簽名,MSCAPI卻信任許多根驗證機構,代碼簽名也信任多個密鑰。因此只要有一個密鑰被泄露就會使整個系統異常脆弱。密鑰泄漏的情況:授權的代碼簽名者不小心紕漏了自己的私鑰,或者簽名機構錯誤的簽發了一個證書。這些情況曾經發生,有一次Verisign錯誤的以微軟的名義簽發了兩個證書,并將這些證書的控制權交給了未授權的個人。
網絡安全與協議
Linux與Windows對網絡安全和協議的支持都很不錯。兩者都支持IPSec,這是一個運行于IP層的開放的基于加密的保護方式。IPSec能夠識別終端主機,同時能夠對網絡傳輸數據和加密數據的過程中的修改作出判斷。Linux下使用OpenSSH、OpenSSL和OpenLDAP,分別對應微軟系統下閉合源碼的SSH、SSL和LDAP。
應用安全
由于微軟IIS和Exchange/Outlook不斷出現的安全問題,Linux顯得更勝一籌。Apache和Postfix都是跨平臺的應用程序,比微軟的相應產品更加安全。由于Linux有內建的防火墻使得其安全性有所增強,Snort也是一個優秀的入侵檢測系統。關于基于x86系統的Linux內核,一個很重要的特性就是IngoMolnar的exec-shield,可以保護系統不受緩沖區或者函數指針溢出的攻擊,從而對那些通過覆蓋數據結果或者插入代碼的攻擊程序有所防護。exec-shield補丁使攻擊者很難實現基于shell-code的攻擊程序,因為exec-shield的實現對于應用程序是透明的,因此不需要應用程序的重新編譯。
微軟正在大刀闊斧的重新設計產品的安全架構,并為已安裝的系統提供補丁。不過舊版本的Windows產品仍然存在安全問題,這使得任務變得復雜。許多微軟用戶正面臨安全威脅,而補丁在發布之前必須做好文檔。另外,微軟傾向于將應用程序的數據和程序代碼混合在一起,比如ActiveX,這使得系統外的不可信數據也能被使用,甚至是利用不可信數據執行任意代碼。某些情況下,Windows甚至允許外部系統提供數據簽名的代碼,這就意味著本地的系統管理員也不能審查代碼,不過他仍然知道是誰對代碼簽的名。
在.NET框架下,微軟應用程序的安全性有所改進。當然,對于那些異構平臺,例如Linux、Windows、Unix尤其是建立在Java平臺下的應用程序,微軟的產品是有很大局限性的。
分發和操作
關于分發和操作,Linux與微軟的側重點不同,Linux下大部分的管理都通過命令行接口。Linux的發行商也提供了各種安裝和配置工具,例如:up2date、YaST2和Webmin。Bastille Linux是一個支持Red Hat、Debian、Mandrake、SUSE和Turbolinux的加固工具。相比之下,Windows的系統管理員使用簡單易用的GUI工具,配置的時候也很容易出錯誤。盡管一些人認為,一個周之內將任何人都可能成為Windows的系統管理員,問題是他們到底對管理了解多少?微軟的安全問題,絕大多數都是由于發布與操作時的拙劣配置。Windows自帶安裝和配置工具,微軟也為加固域控制器、架構服務器、文件服務器、打印服務器、IAS服務器、證書服務器和堡壘主機提供了向導,不過加固架構與加固操作系統還是有區別的。
確信度
定義操作系統確信度的標準是公共標準(CC),這是ISO標準(ISO 15408)。關于確信度的等級有一個層次結構 ―― 從EAL1到EAL7。只有在特定的軟件、硬件和系統配置下,公共標準的評估才是有效的。Windows的EAL比Linux要高,達到了EAL4,而Linux目前只達到了EAL3。SUSE正計劃在年底達到EAL4。政府機構大部分都需要CC的確信度。即使只有政府客戶(甚至特指美國國防部)才需要確信度,商業產品滿足這一要求也是一件好事。不過大部分的用戶都不需要達到國防部的標準。
可信計算
可信計算是一種架構,可以避免對應用程序的修改,與廠商的通信也是安全的。許多廠商,比如Intel、微軟和IBM,都在歡迎這項新興的技術。目前,這一功能只供展示,現實中并沒有可用的系統,因此Linux和Windows都不能勝任。微軟的可信計算與數字權力管理有關,而開源社區目前沒有可信計算的項目。
開放標準
Linux要優于Windows,因為它支持所有的開放標準(盡管Windows也支持許多相同的開放便準,如IPSec、IKE和IPv6,也樂意擴展標準)。對于使用異構系統并有互操作需求的公司,"標準"如果代有私有代碼,就使得對缺陷的檢測和錯誤的修正更困難、耗費的時間也更多。一個例子就是微軟對Kerberos標準協議的擴展。微軟提供了對Kerberos票據的授權功能,盡管Kerberos一開始也是按照這個目的設計的,這一功能卻一直沒有使用。微軟擴展了Kerberos標準,在處理過程中也期望其它程序共享票據的授權數據字段。因此,微軟的Kerberos版本與標準不能完全交互。IT經理會發現:在一個異構的IT環境中,使用微軟Kerberos會使得整個環境難以管理,它們需要完全的Windows IT架構。
開源
如果安全操作系統的標準就是開源,那么Linux顯然要優于Windows。微軟的共享源代碼計劃就是為了滿足用戶對源代碼的需要。不過,該計劃的大部分內容都是"可看但不可修改"的情況。俄羅斯、英國、中國和北約參與了微軟的政府安全計劃。盡管該計劃的目標是增加透明度和加強合作,如果某組織需要訪問微軟的源代碼,需要遵守各種各樣的要求。例如:并不是所有的Windows源代碼都可以在線查看,因此如果用戶需要編譯并測試應用程序,必須親自訪問微軟的總部。
推薦
Linux和Windows的安全性必定會引起持續的爭論,到底是開源的操作系統好,還是封閉源代碼的操作系統好?業界的邏輯是:基于開放標準與開放源代碼的操作系統,能提供更好的互用性,更好的錯誤發現和修正機制,這要比通過隱藏來達到安全的模型優秀。開源也促使Linux的發行提供商對生產過程完全透明。每一步對于用戶來說都是可再現的,因此能夠逐漸的增強安全。而Windows的源代碼并不易獲得,因此不能提供等價的透明。
Linux提供了至少不遜于Windows的安全性能。Linux系統的安全取決于對Linux發行版的選擇、使用的內核版本、實現與支持系統的IT員工的水平。一旦你選定了產品,實現并維護操作系統的安全就完全依靠IT員工了,你需要對他們進行培訓,讓他們掌握足夠的專業技能,完成分發、管理和故障排除的任務。要讓IT經理和系統管理員明白如何應用這些慣例。
我們推薦各種機構首先了解自己的功能需要,然后熟悉一下操作系統關鍵性的安全性能,這樣就能減少使用操作系統的風險,確保一致性。
如果你正考慮移植到另一個操作系統或者是升級目前的產品,你需要按照安全性能的要求來選擇操作系統的環境。把你的商業需要與對操作系統安全性的理解相結合,就能在實現功能的同時,兼顧一致性與風險最小化。
原文轉自:http://www.anti-gravitydesign.com