一、概述
在這個世界上,人類不斷研究和發(fā)展新的信息安全機制和工程實踐,為戰(zhàn)勝計算機網(wǎng)絡(luò)安全威脅付出了艱巨的努力。似乎如果計算機攻擊手法不再翻新,關(guān)于信息安全的戰(zhàn)爭將很快結(jié)束。雖然,大多數(shù)地下組織研究的攻擊手法都是驚人的相似,無非就是:蠕蟲、后門、rootkits、DoS和sniffer等。但這些手段都體現(xiàn)了它們驚人的威力。到今年,情況愈演愈烈。這幾類攻擊手段的新變種,與去年前年出現(xiàn)的相比,更加智能化,攻擊目標直指互聯(lián)網(wǎng)基礎(chǔ)協(xié)議和操作系統(tǒng)層次。從web程序的控制程序到內(nèi)核級rootkits,黑客的攻擊手法不斷升級翻新,向用戶的信息安全防范能力不斷發(fā)起挑戰(zhàn)。
(注:rootkits, 是一種攻擊腳本、經(jīng)修改的系統(tǒng)程序,或者成套攻擊腳本和工具,用于在一個目標系統(tǒng)中非法獲取系統(tǒng)的最高控制權(quán)限。)
在長期與信息安全專家的較量中,黑客對開發(fā)隱蔽的計算機網(wǎng)絡(luò)攻擊技術(shù)更加得心應(yīng)手。同時,這些工具應(yīng)用起來也越來越簡單。以前很多命令行的攻擊工具被人寫成了GUI(圖形界面)的內(nèi)核級rootkit,將這些高度詭異的攻擊武器武裝到了那些熱中于”玩腳本的菜鳥”手中,這些殺傷力很強的黑客工具,使”腳本菜鳥”們變得象令人敬畏的黑客。
當然,工具本身是不會危及系統(tǒng)安全的-壞事都是人干的。信息安全專業(yè)人員也使用和入侵者同樣使用的掃描和監(jiān)聽工具,對系統(tǒng)安全做例行公事般地審計。在惡意用戶使用前,那些能非法控制web程序的新的滲透測試工具,也被安全人員用來測試系統(tǒng)的漏洞。但是,還有很多的工具有它完全黑暗的一面,比如,蠕蟲程序不斷發(fā)展和傳播,它只用來干壞事;反入侵檢測工具和很多rootkits專門用來破壞系統(tǒng)的安全性。
本文將探討一些黑客工具的獨創(chuàng)性,以及它們令普通人驚訝的功能。這對幫助用戶考慮采用新技術(shù)和傳統(tǒng)措施來防范這些威脅有很重要的意義:在攻擊者攻擊來臨之前,先檢測和修補系統(tǒng)和軟件漏洞。
二、Web應(yīng)用程序:首選目標
日益增長的網(wǎng)絡(luò)業(yè)務(wù)應(yīng)用為脆弱的web應(yīng)用提供了漏洞滋生的土壤。如銀行、政府機構(gòu)和在線商務(wù)企業(yè)都使用了web技術(shù)提供服務(wù)。這些機構(gòu)往往自己開發(fā)整套的web應(yīng)用程序(ASP、JSP和CGI等),而這些開發(fā)者由于沒有獲得過專業(yè)訓(xùn)練,導(dǎo)致這些自產(chǎn)軟件漏洞百出。Web程序的開發(fā)者沒有意識到,任何傳遞給瀏覽器的信息都可能被用戶利用和操縱。不管用不用SSL(安全套接層),惡意用戶可以查看、修改或者插入敏感信息(包括價格、會話跟蹤信息甚至是腳本執(zhí)行代碼)。攻擊者可以通過狀態(tài)操縱攻擊或者SQL代碼嵌入等技術(shù)危及電子商務(wù)網(wǎng)站的安全
所謂狀態(tài)操縱攻擊(state manipulation), 是指攻擊者通過在URL中修改傳遞給瀏覽器的敏感信息,隱藏表格元素和cookies,達到非法訪問的目的。如果一個安全意識松懈的web開發(fā)者,他把數(shù)據(jù)存儲在會話ID中,而沒有考慮到價格和余額等關(guān)鍵數(shù)據(jù)的完整性保護,則攻擊者完全可以修改這些數(shù)據(jù)。再加上如果web程序相信由瀏覽器傳遞過來的數(shù)據(jù),那么攻擊者完全可以竊取用戶帳號、修改價格或者修改帳戶余額。
所謂SQL代碼嵌入(SQL injection),是指攻擊者在普通用戶輸入中插入數(shù)據(jù)庫查詢指令。這些問題相當多情況下是因為輸入檢驗不嚴格和在錯誤的代碼層中編碼引起的,如對逗號”,”和分號”;”等。在這種情況下,攻擊者可以對數(shù)據(jù)庫進行查詢、修改和刪除等操作,在特定情況下,還可以執(zhí)行系統(tǒng)指令。一般情況下,web網(wǎng)頁上的用戶名表單往往是這類攻擊的入口。如果攻擊者使用Proxy server執(zhí)行這類操作,管理員將很難查到入侵者的來源。而要防止這類攻擊,必須在自研軟件開發(fā)程序上下手整治,形成良好的編程規(guī)范和代碼檢測機制,僅僅靠勤打補丁和安裝防火墻是不夠的。
目前有一類新的Web應(yīng)用程序防護產(chǎn)品,通過分析所有的Web連接,防止常見的應(yīng)用層攻擊和應(yīng)用層的敏感數(shù)據(jù)泄露。如Sanctum開發(fā)的AppShield,KaVaDo的InterDo,Ubizen的DMZ/Shield,和SPI Dynamics的WebInspect。這些工具采用學習機制,被配置成為能理解正常的Web應(yīng)用訪問行為,在一個用戶會話中,當異常的修改發(fā)生或者特殊字符輸入出現(xiàn)時,這種攻擊將截停非法修改并向管理員報告異常行為。
另一方面,一個由志愿者組成的開放源碼組織開發(fā)了一個叫Open Web Application Security Project (OWASP)的項目,對web應(yīng)用程序中普遍存在的脆弱性做了歸類,并為建立web安全應(yīng)用和服務(wù)提供詳細指南。還有,OWASP正在開發(fā)一個基于java的”Web甲蟲”(Web Scarab),這是一個評估web應(yīng)用安全的工具。
如果web程序開發(fā)者能理解其系統(tǒng)面臨的威脅并且構(gòu)建防御機制,系統(tǒng)安全性將得到高層次的防護。開發(fā)者用到的,發(fā)送到瀏覽器的敏感數(shù)據(jù)必須具有完整性保護機制,這可以通過MD5哈希(hash)函數(shù)或者時間戳數(shù)字簽名技術(shù)來實現(xiàn);還有,對用戶輸入必須進行細致的檢查,過濾可能危及后臺數(shù)據(jù)庫的特殊字符、腳本語言和命令,包括逗號、引號、括號、星號、百分號、下劃線和管道符等。這些字符檢測機制是在web server實現(xiàn),而不是在瀏覽器端實現(xiàn),因為攻擊者可以通過各種手段繞過客戶端的安全機制。對于這些字符可以采用清除或者強制替換的方法避免它們威脅服務(wù)器的安全。
三、超隱秘”嗅探式”后門
后門對計算機系統(tǒng)安全的侵擾,其歷史已達十年之久。通過后門,攻擊能繞過正常的安全機制自如地訪問系統(tǒng)資源。最近,這類攻擊變得更加隱秘,更加難以察覺。這種新的攻擊與傳統(tǒng)的后門不同之出是,它將sniffer技術(shù)和后門技術(shù)結(jié)合起來了。傳統(tǒng)的后門是通過監(jiān)聽TCP端口和UDP端口,向攻擊者敞開方便之門。對于這類后門,有經(jīng)驗的系統(tǒng)管理員和信息安全人員可以通過定期檢測端口使用情況,來發(fā)現(xiàn)這些新開放的后門服務(wù)。
而新類型的后門技術(shù)排除了把進程建立在端口上的方式,而是使用sniffer(監(jiān)聽)技術(shù),通過類型匹配的方式,被動地捕捉后門操作者發(fā)過來的消息,從而執(zhí)行相應(yīng)的指令,后門采用的指示器可以是一個特定的IP地址、一個TCP標志位,甚至是一個沒有開放(偵聽)的端口。象Cd00r和SAdoor就是類似這樣的后門程序。
嗅探式后門(Sniffer/backdoors)可以工作在混雜模式下,也可以工作在非混雜模式下。(編者注:混雜模式是網(wǎng)絡(luò)監(jiān)聽程序要用到的工作模式,其實就是改變網(wǎng)卡設(shè)置,把網(wǎng)卡原來只接收屬于自己的數(shù)據(jù)包的模式,改為不管什么數(shù)據(jù)包都接收的模式)。
非混雜模式的嗅探式后門,只監(jiān)聽本機通信,只在受害主機上扮演威脅者的角色。
而被設(shè)置為混雜模式的后門,可以監(jiān)聽以太網(wǎng)上其它主機的通信數(shù)據(jù),這種模式將嚴重困擾網(wǎng)絡(luò)安全管理員。設(shè)想以下情況:攻擊者在DMZ區(qū)(?;饏^(qū))其中一臺web服務(wù)器放置嗅探式后門,監(jiān)視另一臺mail服務(wù)器的通信。對于攻擊者來說,他可以只需要向mail服務(wù)器發(fā)送攻擊指令,但mail服務(wù)器上其實沒有裝后門,指令的執(zhí)行者是web服務(wù)器。管理員查來查去還會以為是mail服務(wù)器中了木馬,卻很難想到其實是web服務(wù)器中標。這是典型的偽造現(xiàn)場的作案思路。
盡管查找開放的端口的方式已經(jīng)不夠?qū)Ω蹲钚碌暮箝T技術(shù),但傳統(tǒng)的對付后門方式仍然是十分重要的。另外,由于大多數(shù)后門都針邊界服務(wù)器,因此,可以利用象Tripwire 和AIDE的完整性檢查工具檢查系統(tǒng)文件,有利于發(fā)現(xiàn)后門程序。
想要了解可疑端口的占用 ,可以使用lsof工具(For Unix)或者Inzider工具(For windows)。另外還可以從遠程使用 Nmap 工具進行異常端口占用檢測。如果發(fā)現(xiàn)一個未知的進程占用了一個端口,尤其是以超級用戶權(quán)限運行的進程,應(yīng)該馬上進行調(diào)查,是誰開啟了這個進程。在調(diào)查不清楚的情況下可以果斷關(guān)閉端口或殺掉進程。
要想了解網(wǎng)卡是否被置于混雜模式,可以采用ifstatus(For solaris)或者PromiscDetect(For windows)。如果想遠程檢測混雜模式的sniffer,可以選用packetfactory的Sentinel工具。
最后,要確保用戶單位的安全應(yīng)急小組必須掌握最新的計算機后門技術(shù)動向。當發(fā)現(xiàn)與后門有關(guān)的通信出現(xiàn)的時候,用戶應(yīng)該對端口占用情況、活動進程和網(wǎng)卡工作模式進行檢測,以確定究竟是誰中了后門。
核心級別的rootkits
Rootkits是被廣泛使用的工具,允許攻擊者獲得后門級訪問。過去,rootkits通常是替換操作系統(tǒng)中的正常二進制執(zhí)行程序,如login程序、ifconfig程序等。但這兩年來rootkits發(fā)展很快,發(fā)展到直接對底層內(nèi)核進行操作,而不再需要去修改單個的程序。
通過修改操作系統(tǒng)核心,內(nèi)核級的rootkits使一個被修改內(nèi)核的操作系統(tǒng)看上去和正常的系統(tǒng)沒有區(qū)別,它們通常都包含重定向系統(tǒng)調(diào)用的能力。因此,當用戶執(zhí)行類似ps,netstat或者ifconfig –a之類的指令的時候,實際執(zhí)行的是一個特洛伊的版本。這些工具還可以隱藏進程、文件和端口使用情況等,用戶將得不到真實的系統(tǒng)情況報告。
目前攻擊者使用的rootkits有Linux、solaris和windows等系統(tǒng)的版本。Kernel Intrusion System是其中的一款(For Linux),是功能最強大的內(nèi)核級rootkits之一。
對于非內(nèi)核級的rootkits,可以使用前面說過的完整性檢查工具檢查二進制執(zhí)行程序文件被修改的情況。這個方法對內(nèi)核級rootkits不管用。
要對付內(nèi)核級的rootkits,必須加固臨界系統(tǒng)的內(nèi)核。St. Jude Project是一款監(jiān)測Linux內(nèi)核完整性的工具,它通過監(jiān)測系統(tǒng)調(diào)用表的修改情況來實現(xiàn)對內(nèi)核完整性的監(jiān)控。還可以將系統(tǒng)配置成為固化內(nèi)核的形式,建立一個不支持LKMs(loadable kernel modules)的系統(tǒng)內(nèi)核。這樣的系統(tǒng)效率更高,因為內(nèi)存管理更簡單。
另外的辦法是自己加固內(nèi)核。Argus Systems Group提供的PitBull工具,通過限制用戶訪問系統(tǒng)程序和內(nèi)核來保護Solaris等系統(tǒng)的內(nèi)核。另外象SELinux和Trusted Solaris等系統(tǒng)提供附加的內(nèi)核保護功能。內(nèi)核保護機制不能被濫用,否則會使系統(tǒng)管理變得復(fù)雜,并可能影響其它程序的正常運行。
脈沖蛇神和其它的DDoS伎倆
蛇神,可以指揮大批毒蛇向敵人發(fā)動進攻。用來形容象TFN2K這樣的DDoS攻擊控制工具是再合適不過了。攻擊者通過劫持數(shù)千臺計算機并植入DoS代理后,幾乎就可以所向無敵了。這些DoS代理會在攻擊者的指揮下同時向一臺主機發(fā)送大量的數(shù)據(jù)包,使對方服務(wù)癱瘓,使這臺主機淹沒在大量的數(shù)據(jù)包中。以往,ISP一般情況下尚能對一些DDoS攻擊進行跟蹤,通過逆流而上的方法快速跟蹤數(shù)據(jù)包,可以找到活動的攻擊來源。
去年,一個叫”脈沖蛇神”的攻擊形式使網(wǎng)管難以追查攻擊的來源。攻擊者可以使多個DDoS代理交替發(fā)出Flood數(shù)據(jù)包,這種隨機發(fā)包方式就好象電子脈沖一樣。如果攻擊者有幾千個這樣的代理,追查”蛇神”將變得幾近不可能。
還有更絕的。今年早期,互聯(lián)網(wǎng)上出現(xiàn)了一個叫”反射式DDoS”的攻擊方法。這種新方法用的是借刀殺人的思路,至少將有兩方受害。
反射式DDoS的原理是SYNFlood的巧妙變形。它充分利用了TCP三次握手機制的”優(yōu)點”,一個DDoS代理,用一個假的源地址,向一臺高帶寬的服務(wù)器發(fā)送一個TCP SYN數(shù)據(jù)包,服務(wù)器收到這個包以后,將向這個源地址回送一個SYN-ACK的響應(yīng)包。攻擊者在發(fā)包前可以將這個假的源地址設(shè)置為他要攻擊的主機地址,這樣,就變成了一臺高性能/高帶寬的服務(wù)器DoS目標主機。如果攻擊者用多個線程,相同的源地址,不停地向多臺高帶寬服務(wù)器發(fā)包,則目標主機將受到多臺服務(wù)器的攻擊,目標主機幾乎是”必死無疑”。用這種方式,在目前的互聯(lián)網(wǎng)環(huán)境下,攻擊者可以讓Yahoo或者微軟的Web服務(wù)器去DDoS一臺他想攻擊的主機。而且在這種情況下,想要追查到攻擊者來源,實在是太難了。
為了對付DDoS攻擊,市場上出現(xiàn)了商業(yè)化的抗DoS產(chǎn)品和解決方案。大體分為兩類,一類是基于探頭的工具,如Asta Networks出品的Vantage System 和 Arbor Networks'出品的Peakflow, 它們允許管理員將這些探頭部署到網(wǎng)絡(luò)的各個節(jié)點上,用基于異常的掃描技術(shù)發(fā)現(xiàn)不尋常的Flood數(shù)據(jù)包,發(fā)現(xiàn)后將實時地調(diào)整路由器和防火墻的設(shè)置進行過濾。
另一方面,象Captus Networks出品的CaptIO 和 Top Layer出品的AppSafe則在網(wǎng)絡(luò)邊界處直接發(fā)現(xiàn)和封殺DoS數(shù)據(jù)包。
即使采用這些技術(shù),但面臨者成百上千的“蛇神”的時候,就算系統(tǒng)不停止響應(yīng),網(wǎng)絡(luò)帶寬也會被很快消耗掉。沒有工具能夠防止帶寬的消耗。因此,如果在線連接和點擊量對用戶單位的業(yè)務(wù)非常重要的話,那么用戶有必要要求ISP的應(yīng)急小組充分配合,從上游杜絕Flood數(shù)據(jù)包。在選擇ISP的時候,關(guān)于這個問題,要問清楚ISP對DoS攻擊是如何進行應(yīng)急處理的。
掃描器的發(fā)展
安全掃描是網(wǎng)絡(luò)安全防御中的一項重要技術(shù),其原理是采用仿真黑客入侵的手法去測試系統(tǒng)上有沒有安全上的漏洞,對目標可能存在的已知安全漏洞進行逐項檢查。目標可以是工作站、服務(wù)器、交換機、數(shù)據(jù)庫應(yīng)用等各種對象。然后根據(jù)掃描結(jié)果向系統(tǒng)管理員提供周密可靠的安全性分析報告。
掃描器基本上包含以下三個類型:
端口掃描工具,如端口掃描器NMAP等,它不僅能檢測操作系統(tǒng)類型,也支持隱蔽性掃描。但不能檢測系統(tǒng)漏洞。
漏洞掃描工具,如Web脆弱性掃描器Whisker2.0版。該工具檢測已知的基于web技術(shù)的安全漏洞,如CGI、ASP等。新版本包括內(nèi)置的SSL支持,易用性增強。
最后一類則是企業(yè)級的分布式安全檢測評估系統(tǒng),如CNNS Scanner。它能從瀏覽器直接提交請求,實現(xiàn)多掃描用戶權(quán)限管理。最終得出的安全報告能協(xié)助系統(tǒng)管理員了解系統(tǒng)上的安全漏洞以及如何去修補這些漏洞,并能提供本地下載的升級程序或補丁。
要避免惡意用戶威脅系統(tǒng),我們必須:
1、通過關(guān)閉所有比必要的服務(wù)和安裝系統(tǒng)補丁加固系統(tǒng);
2、保持對最新補丁和安全公告的追蹤,下載補丁后要在實驗環(huán)境進行測試,測試完以后正式安裝在主機上。
3、用黑客的角度審視系統(tǒng)的安全脆弱性,通過端口掃描器和脆弱性掃描器定期對系統(tǒng)進行檢測,至少每月一次。
Sniffer變得主動
在最近兩年,網(wǎng)絡(luò)監(jiān)聽(sniffer)技術(shù)出現(xiàn)了新的重要特征。傳統(tǒng)的sniffer技術(shù)是被動地監(jiān)聽網(wǎng)絡(luò)通信、用戶名和口令。而新的sniffer技術(shù)出現(xiàn)了主動地控制通信數(shù)據(jù)的特點,把sniffer技術(shù)擴展到了一個新的領(lǐng)域。Dug Song寫的Dsniff的工具是第一批擴展了傳統(tǒng)的sniffer概念的監(jiān)聽工具。Dsniff制造數(shù)據(jù)包注入到網(wǎng)絡(luò),并將通信數(shù)據(jù)重定向到攻擊者的機器。在這種方式下,Dsniff允許攻擊者在交換環(huán)境的網(wǎng)絡(luò)內(nèi)竊聽數(shù)據(jù),甚至在攻擊者和攻擊目標不在同一個Lan(局域網(wǎng))的情況下,也能使攻擊者收集到他想要的數(shù)據(jù)。
為在交換環(huán)境下實現(xiàn)sniff,Dsniff是通過對ARP緩存進行改寫重定向通信數(shù)據(jù)包,它改寫了目標機器上的IP地址->Mac地址的映射,因此數(shù)據(jù)包將經(jīng)由交換機發(fā)往監(jiān)聽者的機器。此外,攻擊者還可以通過DNS欺騙、IP/名字欺騙等方式跨越局域網(wǎng)重定向通信數(shù)據(jù)包。Dsniff還包含了一個面向SSH和SSL的”中間人”攻擊工具包。
很明顯,對于象Dsniff這樣的主動監(jiān)聽工具,簡單地采用交換機來防止監(jiān)聽已經(jīng)不夠了。要防止ARP緩存改寫,必須對敏感網(wǎng)絡(luò)中所有主機的ARP緩存表進行硬編碼,這些主機包括在線網(wǎng)站、DNS和Mail服務(wù)器、防火墻和DMZ路由器等。另外還應(yīng)該用Ipsec、VPN和其它的加密技術(shù)來保護敏感信息,如果要遠程管理系統(tǒng),建議用SSH-2或者更新的版本(SSH-1存在”中間人攻擊”的風險)。
無線Sniffer是威脅無線網(wǎng)絡(luò)安全性的強有力工具。無線網(wǎng)絡(luò)常用的WEP(Wired Equivalent Privacy)加密手段,安全性非常脆弱。攻擊者只要一個裝有類似NetStumbler的膝上型電腦和一根廉價的天線,并使用類似Airsnort或者基于java的Mognet等無線sniffer工具,就可以截獲無線網(wǎng)絡(luò)的通信數(shù)據(jù)。隨后攻擊者還可以使用Airsnort對WEP的解密功能對信息進行解密。在監(jiān)聽數(shù)百萬個無線網(wǎng)絡(luò)連接的數(shù)據(jù)包后,Airsnort就能確定用于保護用戶數(shù)據(jù)的密鑰。
要想防止對WLAN的監(jiān)聽攻擊,可以啟用一些安全策略,考慮采用無線VPN產(chǎn)品增強認證和加密功能。