Unix主機(jī)漏洞掃描器的設(shè)計(jì)與實(shí)現(xiàn)之背景和必然性分析
Unix主機(jī)漏洞掃描背景分析
自從1993年Internet上首次采用第一種圖形用戶界面NCSA MOSAIC以來(lái),這一全球最大網(wǎng)絡(luò)的用戶數(shù)量與服務(wù)內(nèi)容都有了迅猛增加。商業(yè)集團(tuán)和個(gè)人用戶都很快意識(shí)到,由Internet帶來(lái)的革命化通信時(shí)代,為通信應(yīng)用領(lǐng)域開(kāi)辟了無(wú)限的前景。如今,計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)在信息交互、信息處理、信息查找、信息管理等方面起著越來(lái)越重要的作用?;ミB網(wǎng)絡(luò)為人們獲取信息、交換信息、管理信息和進(jìn)行各種社會(huì)活動(dòng)提供了一個(gè)快速而方便的平臺(tái),為社會(huì)的發(fā)展帶來(lái)了巨大效益。
然而,在人們得益于信息革命所帶來(lái)的巨大機(jī)遇的同時(shí),也不得不面對(duì)信息安全問(wèn)題的嚴(yán)峻挑戰(zhàn)。西方發(fā)達(dá)國(guó)家將由計(jì)算機(jī)武裝起來(lái)的社會(huì)稱為"脆弱的社會(huì)",就是基于以下事實(shí):計(jì)算機(jī)主機(jī)和網(wǎng)絡(luò)系統(tǒng)不斷被非法入侵、計(jì)算機(jī)病毒不斷在產(chǎn)生和傳播,導(dǎo)致重要的經(jīng)濟(jì)、政治和軍事情報(bào)資料被竊取,重要的網(wǎng)絡(luò)服務(wù)時(shí)時(shí)有被攻破和崩潰的危險(xiǎn)。這些給各行各業(yè)帶來(lái)了巨大的經(jīng)濟(jì)損失,甚至危及國(guó)家安全。
綜上所述,信息革命在改變?nèi)祟悅鹘y(tǒng)的生產(chǎn)、生活方式并極大促進(jìn)生產(chǎn)力發(fā)展的同時(shí),也帶來(lái)了不容忽視的負(fù)面影響。網(wǎng)絡(luò)和主機(jī)安全正成為每一個(gè)計(jì)算機(jī)用戶都面臨的緊迫問(wèn)題。就是在這樣的背景下,為了解決這些問(wèn)題,一系列的網(wǎng)絡(luò)安全技術(shù)應(yīng)運(yùn)而生。
主機(jī)漏洞掃描技術(shù)可以說(shuō)是網(wǎng)絡(luò)安全技術(shù)中除了防火墻技術(shù)、入侵檢測(cè)技術(shù)、加密和認(rèn)證之外的另一項(xiàng)重要的安全技術(shù)。不管攻擊者是從外部還是從內(nèi)部攻擊某一網(wǎng)絡(luò)系統(tǒng),攻擊機(jī)會(huì)是由于他利用該系統(tǒng)的已經(jīng)知道的漏洞而得到的。對(duì)于系統(tǒng)管理員來(lái)說(shuō),漏洞掃描器是最好的助手,能夠主動(dòng)發(fā)現(xiàn)Web服務(wù)器主機(jī)系統(tǒng)的漏洞,在主機(jī)系統(tǒng)安全保衛(wèi)戰(zhàn)中做到"有的放矢",及時(shí)修補(bǔ)漏洞,構(gòu)筑堅(jiān)固的安全長(zhǎng)城。
目前,連接于互聯(lián)網(wǎng)中的服務(wù)器大都采用Unix操作系統(tǒng),因此,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了一個(gè)Unix主機(jī)漏洞掃描器,設(shè)計(jì)該漏洞掃描器的出發(fā)點(diǎn)是:以系統(tǒng)管理員的視野,發(fā)掘Unix主機(jī)系統(tǒng)漏洞,目的是增強(qiáng)主機(jī)系統(tǒng)的安全性。如今,在計(jì)算機(jī)安全領(lǐng)域,漏洞掃描器的作用與PC機(jī)病毒檢測(cè)軟件相似,對(duì)于系統(tǒng)管理員來(lái)說(shuō)已經(jīng)是不可或缺的重要工具軟件。
Unix主機(jī)系統(tǒng)安全漏洞存在的必然性分析
這里,我們將從以下四個(gè)方面分析Unix主機(jī)系統(tǒng)安全漏洞存在的必然性。
1.操作系統(tǒng)安全的脆弱性
1.1 操作系統(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)生??墒遣僮飨到y(tǒng)支持程序動(dòng)態(tài)鏈接和數(shù)據(jù)動(dòng)態(tài)交換又是現(xiàn)代操作系統(tǒng)集成和擴(kuò)展必備的功能,因而出現(xiàn)了自相矛盾之處。
1.2 進(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ù)器上安裝"間諜"軟件提供了可能。
1.3 系統(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蠕蟲事件就是一個(gè)明顯的證據(jù):在系統(tǒng)級(jí)別上的安全措施是非常不夠的。盡管蠕蟲事件導(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ù)器提供足夠的保障。
2.應(yīng)用軟件系統(tǒng)安全的脆弱性
2.1 應(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)致致命的漏洞。
2.2 應(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ǔ)。
這里以Sendmail和Netscape Messaging Server 3.6這兩個(gè)著名的郵件服務(wù)軟件為例說(shuō)明這個(gè)問(wèn)題。Sendmail是一個(gè)大型的復(fù)雜程序,可以在公司內(nèi)部或在Internet間發(fā)送電子郵件。在過(guò)去,黑客們探索出Sendmail設(shè)計(jì)上的很多缺陷,因此它也被軟件開(kāi)發(fā)人員無(wú)數(shù)次地修改和打補(bǔ)丁。
盡管如此,黑客們似乎總能發(fā)現(xiàn)新的缺陷。作為商業(yè)化的Email服務(wù)軟件,Netscape Messaging Server 3.6的安全性比前者要好,如果去黑客網(wǎng)站瀏覽一下,Sendmail的漏洞公告牌觸目皆是,而Netscape Messaging Server 3.6就少得多。但我們?cè)谑褂弥?,發(fā)現(xiàn)其存在一個(gè)非常危險(xiǎn)的漏洞。比如為禁絕非法郵件的攻擊和干擾,需要利用其Plugin模塊的Filter功能,編寫filter.cfg腳本來(lái)過(guò)濾郵件。
雖然非法郵件不會(huì)抵達(dá)最終用戶或不會(huì)被轉(zhuǎn)發(fā),但不幸的是,大量的非法郵件依舊會(huì)存儲(chǔ)在Email服務(wù)器內(nèi),一切的過(guò)濾操作均是在服務(wù)器無(wú)條件接收下所有郵件后才進(jìn)行,且不能自動(dòng)刪除。這就為黑客后門程序駐留服務(wù)器提供了可能。可喜的是,Messaging Server 4.0以上的版本解決了這個(gè)致命問(wèn)題。
3.計(jì)算機(jī)網(wǎng)絡(luò)安全的脆弱性
Internet使用的TCP/IP協(xié)議以及FTP、NFS等都包含許多不安全的因素,存在可為黑客所利用的漏洞。
3.1 TCP/IP協(xié)議漏洞
Internet技術(shù)屏蔽了底層網(wǎng)絡(luò)硬件細(xì)節(jié),使得異種網(wǎng)絡(luò)之間可以互相通信。TCP/IP協(xié)議組是目前使用最廣泛的網(wǎng)絡(luò)互連協(xié)議之一。但TCP/IP協(xié)議組本身存在著一些安全性問(wèn)題。這就給"黑客"們攻擊網(wǎng)絡(luò)以可乘之機(jī)。由于大量重要的應(yīng)用程序都以TCP作為它們的傳輸層協(xié)議,因此TCP的安全性問(wèn)題會(huì)給網(wǎng)絡(luò)帶來(lái)嚴(yán)重的后果。
3.2 NFS(Network File System)的安全漏洞
NFS實(shí)際上是互信主機(jī)間的share-mount 文件和目錄共享機(jī)制,其主要作用就是將網(wǎng)絡(luò)上的其他計(jì)算機(jī)對(duì)外共享的文件和目錄資源掛接在另一臺(tái)主機(jī)上,供用戶對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)。NFS服務(wù)器在共享目錄時(shí)如果未設(shè)置相應(yīng)的限制(實(shí)際應(yīng)用中常常如此),其結(jié)果是有太多的客戶機(jī)(包括黑客)可以訪問(wèn)共享目錄,導(dǎo)致數(shù)據(jù)泄露。
如果共享目錄可寫或存在可執(zhí)行的文件,甚至允許客戶在NFS裝入的目錄上創(chuàng)建SetUID程序(可能使黑客獲得root權(quán)限),則數(shù)據(jù)和系統(tǒng)安全性大大降低;即使NFS服務(wù)器在共享目錄時(shí)設(shè)置了相應(yīng)的限制,包括安全身份驗(yàn)證模式,但對(duì)于能夠偽造身份進(jìn)行攻擊的黑客或?qū)τ诰钟蚓W(wǎng)內(nèi)部的使用者來(lái)說(shuō),安全級(jí)別不高。實(shí)踐表明,NFS是一個(gè)網(wǎng)站計(jì)算機(jī)基礎(chǔ)設(shè)施中的薄弱環(huán)節(jié)。
3.3 FTP(File Transfer Protocol)漏洞
FTP往往被黑客用于獲取遠(yuǎn)程系統(tǒng)的訪問(wèn)權(quán)限或存放非法取得的文件(即FTP濫用)。這個(gè)安全漏洞是由于提供FTP服務(wù)的關(guān)鍵文件或目錄的用戶訪問(wèn)權(quán)限設(shè)置不當(dāng)造成的。同時(shí),主機(jī)FTP服務(wù)可能被黑客利用為制造緩沖區(qū)溢出的條件。這個(gè)安全漏洞的形成原因主要是軟件開(kāi)發(fā)設(shè)計(jì)的缺陷,如著名的wu-ftp2.4的軟件bug會(huì)導(dǎo)致黑客通過(guò)FTP登錄來(lái)獲得root權(quán)限。
4.配置不當(dāng)導(dǎo)致的系統(tǒng)漏洞
大部分計(jì)算機(jī)安全問(wèn)題是由于管理不當(dāng),而不是由于上述的三大原因。不同的系統(tǒng)配置直接影響系統(tǒng)的安全性。系統(tǒng)管理漏洞主要有兩個(gè)方面:系統(tǒng)管理員對(duì)系統(tǒng)的設(shè)置存在安全漏洞。如弱勢(shì)口令、被信任主機(jī)等問(wèn)題;系統(tǒng)的部分功能自身存在安全漏洞隱患,如tftp網(wǎng)絡(luò)服務(wù),可以通過(guò)恰當(dāng)?shù)脑O(shè)置去除這些漏洞隱患的威脅。但系統(tǒng)管理員或者未意識(shí)到或者配置失誤,系統(tǒng)自身存在的安全漏洞隱患依舊存在。
不同的系統(tǒng)配置直接影響系統(tǒng)的安全性。不少系統(tǒng)管理員常抱怨系統(tǒng)自身的安全漏洞,實(shí)際上這些所謂的系統(tǒng)自身安全漏洞往往是管理員配置不夠完善形成的。完善的系統(tǒng)配置和嚴(yán)格的系統(tǒng)管理是減少安全漏洞、提高主機(jī)系統(tǒng)安全性的主要手段。
【編輯推薦】