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