選擇安全操作系統(tǒng)不要邁錯第一步
為你的企業(yè)選擇一個適用的操作系統(tǒng)來做決定往往是一件很復雜的事。許可證成本、支持的軟件、硬件選擇、可靠性、當前的管理能力等等都是這個綜合體中的一部分。安全性同樣在考慮之中,但是有時候?qū)τ谶x擇操作系統(tǒng)來說,到底什么樣的“安全”卻是很難定義的。除此之外,大多數(shù)操作系統(tǒng)安全性方面的市場宣傳夸大其詞,因此很難避免被其安全性宣傳迷惑從而針對應用環(huán)境進行合適的選擇。
從根本上來講,你為你的公司所選擇的操作系統(tǒng)是個今后伴隨使用多年的平臺。從一種操作系統(tǒng)遷移到另外一種操作系統(tǒng)將是一個非常昂貴的選擇。所以,你最好以一種審慎的態(tài)度來做出決定。安全性,也許并不是你最優(yōu)先考慮的事情,但毫無疑問地是,它將會對操作系統(tǒng)的長期使用產(chǎn)生影響。我希望我在這篇文章里所提出的一個關(guān)于操作系統(tǒng)安全性的觀點能夠為你決定選擇什么樣的操作系統(tǒng)提供幫助。在你應該選擇什么樣的操作系統(tǒng)方面我有自己的觀點——我只想很直截了當?shù)馗嬖V你我是一個FreeBSD狂熱者——我將盡量不讓個人主觀因素影響客觀事實。
操作安全性
為了理解什么樣的操作系統(tǒng)能夠迎合你的需求,你必須首先理解在你的操作環(huán)境或者操作體系中的“安全”到底是什么意思。操作安全性是指能夠長期保持穩(wěn)定和可靠操作平臺的能力。彼時彼刻被攻擊之后而恢復正常工作的單一主機系統(tǒng)是不夠的,在企業(yè)內(nèi)的所有系統(tǒng)必須有能力在技術(shù)方面、攻擊方面和應用程序方面保持安全。
任何人都可以學會鎖閉主機。類似微軟或是NIST方面都有相關(guān)的主機鎖閉指導叢書可以很容易讀懂并且照做無誤。任何悟性夠高的IT專業(yè)人員都能夠在這些指導下讓一個系統(tǒng)的安全很難被危及到。但是最終來說,這些步驟都只是一個系統(tǒng)整體安全的一方面。如果你不得不經(jīng)常改變你的系統(tǒng)配置或是根本不清楚操作系統(tǒng)版本的不同而導致安全性的差異,那么你還是沒有達到操作安全性的要求。
操作系統(tǒng)的開發(fā)方式對企業(yè)應用具有深刻影響。操作系統(tǒng)的開發(fā)涵蓋了軟件開發(fā)過程的整個生命周期。怎么樣來做計劃、設計、編碼實現(xiàn)、測試和維護是在根本上影響著你的環(huán)境,但是這些影響就像一場辯論。一些人會說一個結(jié)構(gòu)嚴謹?shù)牟襟E過程是建立一個安全并可升級的軟件的唯一方式。這是一個大家公認的軟件開發(fā)觀點,并且在復雜的系統(tǒng)開發(fā)中是很廣泛流傳的。但是,有其他人會說,僅僅是使用一個合理的開發(fā)過程并不意味著軟件就真的安全了——只是緊緊按部就班的開發(fā)過程就可以了嗎?
相反地,開源世界更傾向于對這個問題持有另一個不同觀點。很多軟件開發(fā)者都以相關(guān)的、相互協(xié)作的態(tài)度來進行系統(tǒng)開發(fā),把所有精力都放在了編寫代碼上,強迫自己說這是唯一“重要”的功能來進行集成。這種開發(fā)模式也許能夠做出正確功能設置的軟件,但這種開發(fā)方式內(nèi)在問題是沒有將安全性提升到系統(tǒng)和系統(tǒng)結(jié)構(gòu)級別水平。
在信息處理中心最常用的三大操作系統(tǒng)(Microsoft Windows,Linux和 FreeBSD)有三種非常不一樣的開發(fā)模式。讓我們逐一來看看并考慮開發(fā)過程是怎么來影響安全性的。
Windows開發(fā)模式
微軟的Windows是一個由像一個國家那樣大的公司開發(fā)出來的商業(yè)化操作系統(tǒng)。對這個操作系統(tǒng)視覺效果的制作,在公司內(nèi)部是由高層一直到所有部門都參與進來的。除此之外,這個視覺因素已經(jīng)超越了操作系統(tǒng)本身,管理工具軟件、普通的用戶登錄應用軟件、甚至開發(fā)軟件都被集成在操作系統(tǒng)里面,整個的保持連貫性。這個操作系統(tǒng)的核心是把架構(gòu)設計和軟件集成于整個微軟產(chǎn)品體系中。舉例來說,加密算法提供商提供的加密算法可以被需要進行加密操作的微軟軟件產(chǎn)品調(diào)用。同樣地,認證信息可以在操作系統(tǒng)所有層級訪問到,并能夠在一個獨特的時尚環(huán)境中被應用程序訪問(并能夠在一個統(tǒng)一的接口中被應用程序訪問)
從一個安全的角度來說,微軟不僅在開發(fā)操作系統(tǒng)過程中來控制安全性能和體系架構(gòu),同樣在給操作系統(tǒng)打補丁時控制系統(tǒng)安全性。這是在操作安全性里是很有爭議的一方面。微軟控制著所有他們操作系統(tǒng)、服務器軟件和生產(chǎn)力開發(fā)軟件的補丁。此外,他們現(xiàn)在有一個規(guī)則的時間表(每一個月的星期二)來發(fā)布所有的補丁。這允許了管理員以養(yǎng)成習慣性的來準備測試和開發(fā)安全補丁。在沒有特別補丁的情況下,微軟允許企業(yè)提前來計劃安全升級并最終可能減少相應的系統(tǒng)停機故障時間。
最后要說的是,微軟控制著初級操作系統(tǒng)和所有支持的應用軟件的長期安全計劃。他們有一個長期的產(chǎn)品路線圖,其中包括了提高安全性和增加功能性。當一個產(chǎn)品的路線圖已經(jīng)不一定意味著更安全的系統(tǒng)時,微軟可靠的開發(fā)者網(wǎng)絡就該起作用了。因為軟件開發(fā)者知曉微軟的產(chǎn)品路線圖,并獲取正式發(fā)布前的測試版本后,所以有預先獲取有關(guān)系統(tǒng)功能安全性和合理使用的信息的可能性。除此以外,微軟的開發(fā)軟件從根本上就支持了Windows的安全功能性。
FreeBSD開發(fā)模式
和Windows不同的是,F(xiàn)reeBSD并不是一個商業(yè)投資產(chǎn)品。FreeBSD是由一群想把操作系統(tǒng)建得真正像一個系統(tǒng)的開發(fā)者開發(fā)出來的。FreeBSD的內(nèi)核是和一整套的系統(tǒng)工具、驅(qū)動程序和配置文件一起發(fā)布的,這是很有代表性的正式發(fā)行。比如說FreeBSD5.2的發(fā)行就包括了核心程序、一個擁有完整功能性的防火墻、網(wǎng)絡驅(qū)動程序、系統(tǒng)管理通用程序以及核心程序的軟件工具包。其他的軟件工具包由第三方開發(fā)者來提供(比如說Mozilla開源組織的Mozilla或是Brian Wotring公司的Osiris),但是這些程序都由FreeBSD打包集成在了整個操作系統(tǒng)里面。在打包集成的過程中,這些軟件由FreeBSD團隊來進行測試,以確保他們能夠與操作系統(tǒng)一起工作正常——但是對于安全問題卻沒有必需的要求。
因為FreeBSD并不僅僅是一個內(nèi)核,所以安全功能性能夠貫穿整個核心程序和核心系統(tǒng)通用程序,在操作系統(tǒng)開發(fā)體系構(gòu)建的時候建立起來。比如說,在FreeBSD的核心程序里有一個“安全等級”概念。不同的安全等級有不同的限制。例如在安全等級2中,文件系統(tǒng)不能夠被安裝,一次時間調(diào)節(jié)不能被調(diào)節(jié)到多于一秒鐘。不僅核心程序了解這個安全等級,核心系統(tǒng)通用程序的修改和幫助都強制性使用安全等級。這可能是因為FreeBSD是作為一個端到端的系統(tǒng)開發(fā)出來的。
整個系統(tǒng)的發(fā)布步驟有一個具有工程背景的發(fā)布團隊來控制,這個團隊決定操作系統(tǒng)的版本與其所包括的特性,以及下個版本的FreeBSD準備什么時候發(fā)布。這個發(fā)布團隊制作了一個發(fā)放時間表,這個表概述了幾個將要發(fā)放的版本的情況,同時決定了什么時候舊的版本將會到達“壽命終止”(EOL)。對于操作系統(tǒng)來說“壽命終止”日期是非常重要的,因為這也是FreeBSD需要為那幾個版本的操作系統(tǒng)發(fā)放補丁的日期。如果你想要保持當前的版本(并確保安全),你必須為你的操作系統(tǒng)在“壽命終止”到來的時候進行更新。
Linux開發(fā)模式
與FreeBSD相比,Linux是一個非常不一樣的東西。盡管它們都是開源操作系統(tǒng),Linux開發(fā)模式卻根本不能和前者相等同。在Linux的核心,只是一個很簡單的內(nèi)核。而核心系統(tǒng)通用程序,包括了管理者們每天所使用的很多驅(qū)動程序和工具,是由另外一個完全不同于制作內(nèi)核的團體所制作的。Linux的內(nèi)核是一個外部開發(fā)的不連續(xù)的實體,然后直接由“Linux社區(qū)”進行直接維護。從一個安全的角度來講,這就意味著安全能力被建在了應用軟件包的通用程序里,而并沒有完全反射到內(nèi)核里面(反之亦然)。
內(nèi)核和應用軟件包由一個發(fā)布者(例如Red Hat或者是Debian公司)整合在一起后成為一個完整的操作系統(tǒng)。當代碼被整合到一起的時候,這個發(fā)布者可能會改變一些內(nèi)核和一些應用軟件包的代碼。一些此類的改變是輕度的耦合改變,還有一些是新功能的部件。每個發(fā)布者以自己的方式來進行整合,這就使每個發(fā)布者有了有效的自己的操作系統(tǒng)。所以,當你來為你的企業(yè)決定操作系統(tǒng)的時候,與其考慮“Linux”,不如說是“Red Hat”、“Debian”、“Mandrake”等等。
在與發(fā)放計劃和安全功能性方面,每個發(fā)布者都有自己的時間表和技術(shù)路線。曾經(jīng)有一段時間,Red Hat維護著一個安全路線(基本上來說它由SELinux整合到核心操作系統(tǒng)中組成),但是這個似乎已經(jīng)被廢棄了。同樣的,每個發(fā)布者(操作系統(tǒng)發(fā)布者)控制著自己的系統(tǒng)終止步驟,所以并沒有單一日期的“Linux系統(tǒng)終止”。
基于Linux的操作系統(tǒng)的修補由兩個步驟組成。當一個系統(tǒng)安全漏洞被發(fā)現(xiàn)的時候,這個系統(tǒng)安全漏洞信息被透露給這個代碼最原先的維護者。然后這個維護者會為這個有攻擊點的軟件發(fā)布一個補丁。然后每一個操作系統(tǒng)發(fā)布者必須趕緊拿到補丁并做出一個專為基于他們具體代碼的自定義的補丁?;谶@個補丁,管理者們才能應用到他們的系統(tǒng)中去。這個兩個階段的補丁過程會導致整個補丁過程的推遲,更重要的事,它會導致混亂和結(jié)構(gòu)管理問題。
結(jié)語
我為Linux操作系統(tǒng)的安全性描繪了一幅非常凄涼的圖畫。因為它的開發(fā)模式,很難為這個操作系統(tǒng)決定一個未來趨勢,或者維護它會成為一個繁瑣之事。盡管如此,Linux還是有非常多的,對許多操作很有用的特性和出色的程序。所以,當在安全性和效用性之間要有一個妥協(xié)的時候,Linux還是在一個可維持的狀態(tài)上的。
當為你的企業(yè)選擇一個適用的操作系統(tǒng),你需要具有超前眼光而不是僅僅關(guān)心某些安全性能,并考慮操作系統(tǒng)長時間的影響是怎么樣的。你需要為每個操作系統(tǒng)都會有的打補丁、升級和維護問題做好準備,并且一定要理解這些活動是怎樣來影響你的安全性和可利用性的。最后,在這篇文章里所討論的企業(yè)操作系統(tǒng)都是很高級的軟件組件,有能力讓全世界的企業(yè)執(zhí)行IT功能。對你適用的功能未必就對你的鄰居適用,但是你必須知道安全性對于這些每一個操作系統(tǒng)來說都是一個復雜的問題,要求像你為企業(yè)選擇其他的軟件那樣非常仔細地來挑選。
【編輯推薦】