淺析Unix主機系統(tǒng)安全漏洞存在的必然性
Unix系統(tǒng)安全的隱患分析如下:
操作系統(tǒng)體系結(jié)構(gòu)的安全隱患
這是計算機系統(tǒng)脆弱性的根本原因。如Unix系統(tǒng)的許多版本升級開發(fā)都是采用打補丁(Patch)的方式進(jìn)行的,這種方式黑客同樣也可以使用。另外,操作系統(tǒng)的程序可以動態(tài)鏈接,包括I/O驅(qū)動程序與系統(tǒng)服務(wù),但這同樣為黑客提供了可乘之機。如黑客可將磁帶設(shè)備的軟鏈接點/dev/rmt/0進(jìn)行修改,添加某種后門程序,那么當(dāng)用戶執(zhí)行tar cvf /dev/rmt/0 *這類命令的時候,可能激活該后門程序從而導(dǎo)致漏洞的產(chǎn)生。可是操作系統(tǒng)支持程序動態(tài)鏈接和數(shù)據(jù)動態(tài)交換又是現(xiàn)代操作系統(tǒng)集成和擴(kuò)展必備的功能,因而出現(xiàn)了自相矛盾之處。
進(jìn)程創(chuàng)建和遠(yuǎn)程過程調(diào)用(RPC)的安全隱患
一方面,Unix操作系統(tǒng)支持遠(yuǎn)程加載程序,另一方面,它又可以創(chuàng)建進(jìn)程,支持在網(wǎng)絡(luò)節(jié)點上創(chuàng)建和激活遠(yuǎn)程進(jìn)程,并且被創(chuàng)建的進(jìn)程能夠繼承父進(jìn)程的權(quán)限。這兩點結(jié)合在一起就為黑客在遠(yuǎn)程服務(wù)器上安裝"間諜"軟件提供了可能。
系統(tǒng)守護(hù)進(jìn)程的安全隱患
守護(hù)進(jìn)程實際上是一組系統(tǒng)進(jìn)程,它們總是等待相應(yīng)條件的出現(xiàn),一旦條件滿足,進(jìn)程便繼續(xù)進(jìn)行下去。這些進(jìn)程特性是黑客能夠利用的。值得注意的是,關(guān)鍵不是守護(hù)程序本身,而是這種守護(hù)進(jìn)程是否具有與操作系統(tǒng)核心層軟件同等的權(quán)利。
實際上,在Unix剛剛開發(fā)出來的時候,安全性還并不是它主要關(guān)注的因素。它的安全模型是為局域網(wǎng)環(huán)境下的小型或中等規(guī)模的工作組所設(shè)計的。1988年的Internet蠕蟲事件就是一個明顯的證據(jù):在系統(tǒng)級別上的安全措施是非常不夠的。盡管蠕蟲事件導(dǎo)致Carnegie Mellon大學(xué)計算機緊急情況反應(yīng)小組(Computer Emergence Response Team,CERT)的成立,并加強了系統(tǒng)供應(yīng)商和系統(tǒng)管理員的安全意識,但現(xiàn)在人們對于安全問題的認(rèn)識和準(zhǔn)備還是遠(yuǎn)遠(yuǎn)落后于各種專業(yè)或業(yè)余黑客的能力和決心。幸運的是,現(xiàn)在有很多的OEM附加安全部件和第三方產(chǎn)品可以為承擔(dān)風(fēng)險的WWW、FTP、Email Unix服務(wù)器提供足夠的保障。
應(yīng)用軟件在安全設(shè)計上的滯后性
目前Internet上運行的很多應(yīng)用軟件在最初設(shè)計的時候根本或很少考慮到要抵擋黑客的攻擊。為局域網(wǎng)設(shè)計的Client/Server結(jié)構(gòu)的應(yīng)用程序在未做任何修改的情況下,直接聯(lián)到了Internet環(huán)境下,然后便面臨著被攻擊。即使這些軟件獲得了防火墻和其他安全手段的保護(hù),這種危險依舊存在。
實踐表明,不管一個應(yīng)用軟件看起來可能會有多么安全,由于用來開發(fā)和運行這個程序的工具甚至用來保護(hù)它的組件都可能具有安全漏洞,使得該軟件的安全可能變得非常脆弱。也就是說,軟件安全是一個系統(tǒng)工程,系統(tǒng)各相互作用的組件必須放在安全這個統(tǒng)一的標(biāo)尺去衡量、開發(fā)和使用維護(hù)。比如對于系統(tǒng)調(diào)用函數(shù)get(),如果孤立地去考察它,并沒有致命的安全漏洞。
但是當(dāng)黑客借助特權(quán)程序利用get()函數(shù)不檢查參數(shù)長度的缺陷,制造緩沖區(qū)溢出,并轉(zhuǎn)而執(zhí)行一個Shell,則普通用戶就變成了root用戶??梢?,在一個相互作用的系統(tǒng)里,小小的設(shè)計缺陷可能導(dǎo)致致命的漏洞。
應(yīng)用軟件在安全評估上的困難性
由于在Internet上運行的諸如WWW、Email等服務(wù)軟件代碼規(guī)模較大、設(shè)計復(fù)雜,要從理論上證明這類復(fù)雜程序的安全性,以目前的技術(shù)手段,還是一個有待突破的世界難題?,F(xiàn)在評估軟件安全性的常用方法,就是在具體使用中去檢測,甚至借助黑客們的攻擊來發(fā)現(xiàn)軟件的安全漏洞并加以修補。
Unix系統(tǒng)安全的隱患需要大家注意,我們應(yīng)該多多學(xué)習(xí)和掌握。
【編輯推薦】