Linux系統(tǒng)易受網(wǎng)絡(luò)黑客襲擊原因分析
Linux為美國(guó)以外的其它國(guó)家提供了自主發(fā)展操作系統(tǒng)的一條捷徑。主要是因?yàn)?/SPAN>Linux操作系統(tǒng)本身的源代碼是公開的,操作系統(tǒng)開發(fā)方可以對(duì)源代碼自由修改并且從新編譯成二進(jìn)制機(jī)器碼,也就是說用戶可以對(duì)系統(tǒng)及網(wǎng)絡(luò)安全的源代碼根據(jù)自己的需要在進(jìn)行研究后而進(jìn)行修改從而輕松擁有自己版本的操作系統(tǒng)。而特別是在網(wǎng)絡(luò)安全方面,Linux的關(guān)于防火墻及其它網(wǎng)絡(luò)安全協(xié)議的源代碼公開性使商家能夠更加了解操作系統(tǒng)安全的弱點(diǎn)及漏洞所在,通過對(duì)源代碼的修改對(duì)安全進(jìn)行加強(qiáng)鞏固。可是僅僅是源代碼公開并不能解決網(wǎng)絡(luò)不安全的問題。
由于對(duì)源代碼進(jìn)行編譯的編譯程序GCC及Linux的內(nèi)核(Kernel)程序本身有諸多弱點(diǎn),這就造成了躲在防火墻后面的Linux系統(tǒng)程序仍然極其容易受到網(wǎng)絡(luò)黑客的襲擊。
防火墻僅僅提供了最基本的網(wǎng)絡(luò)保護(hù)
防火墻的主要目的是封鎖不必要的端口,并且對(duì)網(wǎng)絡(luò)通訊數(shù)據(jù)進(jìn)行轉(zhuǎn)接過濾。但是只要有開放的端口,網(wǎng)絡(luò)侵襲便是在所難免。如一般單位網(wǎng)絡(luò)服務(wù)器端口,通常為80號(hào)端口,網(wǎng)絡(luò)服務(wù)器主要任務(wù)是為用戶發(fā)送網(wǎng)頁(yè)因此必須全天開通。而黑客則可以通過瀏覽網(wǎng)頁(yè)的HTTP協(xié)議輕松通過80號(hào)端口穿過防火墻從而對(duì)服務(wù)器進(jìn)行攻擊。舉個(gè)例子說,防火墻就好象是一道密集鐵絲網(wǎng),雖然它可以擋住豺狼虎豹的襲擊,可是馬蜂蚊子還是可以輕松穿過。
GCC的內(nèi)在漏洞造成服務(wù)器易受攻擊
由于GCC源于網(wǎng)絡(luò)前時(shí)代,因此對(duì)不少由網(wǎng)絡(luò)而衍生的特殊情況毫無(wú)準(zhǔn)備。GCC有諸多內(nèi)在弱點(diǎn),包括輸出命令printf對(duì)特殊狀態(tài)檢查不足及對(duì)參數(shù)值變量值范圍檢查不足等兩點(diǎn),這些兩點(diǎn)劇情網(wǎng)會(huì)導(dǎo)致內(nèi)存地址輕易受到突破性侵襲。由GCC加工編譯而成的Linux服務(wù)器自然就攜帶了GCC的弱點(diǎn)。這種情況與遺傳性基因疾病非常類似,只要是GCC編譯成的程序均有此遺傳性弱點(diǎn)。黑客經(jīng)過80號(hào)端口通過HTTP協(xié)議便可以對(duì)組成服務(wù)器的printf發(fā)送怪異數(shù)值或者對(duì)其它內(nèi)存參數(shù)值輸入超大或者超小值,服務(wù)器程序?qū)Υ颂厥鉅顟B(tài)不知所措便會(huì)在內(nèi)存內(nèi)胡亂讀取內(nèi)存地址及內(nèi)容,黑客在獲得內(nèi)存地址后便可對(duì)其進(jìn)行修改從而達(dá)到從修改網(wǎng)頁(yè)內(nèi)容到癱瘓服務(wù)器等各種非法目的。
GCC是Linux,Unix及BSD系統(tǒng)源代碼的主要編譯程序 修過計(jì)算機(jī)編程課程的朋友大多使用過GCC。GCC是對(duì)C/C 語(yǔ)言及一些其它語(yǔ)言進(jìn)行二進(jìn)制碼編譯的大型程序。Unix家族有三大獨(dú)立成員,他們分別是美國(guó)電報(bào)電話公司(AT&T)的Unix, 伯克萊大學(xué)(UC Berkley) 的BSD及Linux。GCC目前是U用友通反記賬nix家族操作系統(tǒng)的主要編譯工具,全世界范圍內(nèi)由GCC編譯而成的現(xiàn)行服務(wù)器不計(jì)其數(shù),也就是說黑客們可以侵害的對(duì)象群非常龐大。
治標(biāo)要治本
GCC的漏洞可以通過對(duì)源代碼進(jìn)行保護(hù)性修改來(lái)彌補(bǔ)。如對(duì)網(wǎng)絡(luò)服務(wù)器的源代碼中所有的用戶輸入?yún)?shù)進(jìn)行參數(shù)值范圍檢測(cè),對(duì)超大及超小的輸入值不予通過。但是這樣的做法會(huì)使源代碼數(shù)量及復(fù)雜性大大增加,既費(fèi)時(shí)又難以維護(hù)。而對(duì)GCC編譯器程序的改善則是一個(gè)更好的辦法。對(duì)擁有Linux的單位來(lái)說只要用經(jīng)過安全改善的新版GCC對(duì)現(xiàn)有源代碼從新編譯便可以輕松把安全等級(jí)提高到一個(gè)新的水平。目前世界上有多個(gè)組織及個(gè)人正在致力于對(duì)GCC改善的研究和開發(fā)。美國(guó)的Immunix(譯:免疫Unix)是目前世界第一家把GCC改進(jìn)版進(jìn)行商業(yè)化的高科技公司。該公司的GCC改進(jìn)程序?qū)儆?/SPAN>GPL協(xié)議范圍,也就是對(duì)編譯器GCC修改改善的源代碼本身也是公開的。
網(wǎng)絡(luò)安全前景不容樂觀 雖然目前的幾個(gè)主要漏洞可以通過對(duì)GCC的修改補(bǔ)充來(lái)填補(bǔ),但是由于GCC程序非常龐大,可能存在的潛在漏洞還是很多。俗話說:“道高一尺,魔高一丈”,全世界范圍內(nèi)的黑客正在對(duì)GCC及Linux和微軟操作系統(tǒng)內(nèi)核的各種潛在漏洞進(jìn)行潛心研究,網(wǎng)絡(luò)安全目前的局面是“易攻難守”,黑客們?cè)诎l(fā)現(xiàn)新漏洞后可以迅速發(fā)動(dòng)大規(guī)模攻擊,而對(duì)漏洞的所在的發(fā)現(xiàn)和隨后的彌補(bǔ)措施則是相對(duì)緩慢的。 筆者認(rèn)為我國(guó)自主操作系統(tǒng)的開發(fā)及源代碼自主是一件鼓舞的事情,但是對(duì)源代碼編譯程序的學(xué)習(xí)和了解也同樣重要。