摘要:本文主要講述如何分析Web服務(wù)器記錄,在眾多記錄里查找黑客攻擊的蛛絲馬跡,并針對(duì)當(dāng)今流行的兩類Web服務(wù)器給出具體的一些實(shí)例。
現(xiàn)今的網(wǎng)絡(luò),安全越來(lái)越受到大家的重視,在構(gòu)建網(wǎng)絡(luò)安全環(huán)境時(shí),在技術(shù)手段,管理制度等方面都逐步加強(qiáng),設(shè)置防火墻,安裝入侵檢測(cè)系統(tǒng)等等。但網(wǎng)絡(luò)安全是個(gè)全方位的問(wèn)題,忽略哪一點(diǎn)都會(huì)造成木桶效應(yīng),使得整個(gè)安全系統(tǒng)虛設(shè)。本文從分析Web服務(wù)器的logging記錄來(lái)找出漏洞,防范攻擊,從而加強(qiáng)Web服務(wù)器安全。
Web服務(wù)是Internet所提供最多,最豐富的服務(wù),各種Web服務(wù)器自然也是受到攻擊最多的,我們采用了很多措施來(lái)防止遭受攻擊和入侵,其中查看Web服務(wù)器的記錄是最直接,最常用,又比較有效的一種方法,但logging記錄很龐大,查看logging記錄是很繁瑣的事情,如果抓不住重點(diǎn),攻擊線索就容易被忽略。下面就對(duì)最流行的兩類Web服務(wù)器:Apache和IIS做攻擊的實(shí)驗(yàn),然后在眾多的記錄中查到攻擊的蛛絲馬跡,從而采取適當(dāng)?shù)拇胧┘訌?qiáng)防范。
1、默認(rèn)的web記錄
對(duì)于IIS,其默認(rèn)記錄存放在c:\winnt\system32\logfiles\w3svc1,文件名就是當(dāng)天的日期,記錄格式是標(biāo)準(zhǔn)的W3C擴(kuò)展記錄格式,可以被各種記錄分析工具解析,默認(rèn)的格式包括時(shí)間、訪問(wèn)者IP地址、訪問(wèn)的方法(GET or POST…)、請(qǐng)求的資源、HTTP狀態(tài)(用數(shù)字表示)等。對(duì)于其中的HTTP狀態(tài),我們知道200-299表明訪問(wèn)成功;300-399表明需要客戶端反應(yīng)來(lái)滿足請(qǐng)求;400-499和500-599表明客戶端和服務(wù)器出錯(cuò);其中常用的如404表示資源沒(méi)找到,403表示訪問(wèn)被禁止。
Apache的默認(rèn)記錄存放在/usr/local/apache/logs,其中最有用的記錄文件是access_log,其格式包括客戶端IP、個(gè)人標(biāo)示(一般為空)、用戶名(如果需要認(rèn)證)、訪問(wèn)方式(GET or POST…)、HTTP狀態(tài)、傳輸?shù)淖止?jié)數(shù)等。
2、收集信息
我們模擬黑客攻擊服務(wù)器的通常模式,先是收集信息,然后通過(guò)遠(yuǎn)程命令一步步實(shí)施入侵。我們使用的工具是netcat1.1 for windows,Web服務(wù)器ip為10.22.1.100,客戶端IP為:10.22.1.80。
C:>nc -n 10.22.1.100 80
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Sun, 08 Oct 2002 14:31:00 GMT
Content-Type: text/html
Set-Cookie: ASPSESSIONIDGQQQQQPA=IHOJAGJDECOLLGIBNKMCEEED; path=/
Cache-control: private
在IIS和Apache的log里顯示如下:
IIS: 15:08:44 10.22.1.80 HEAD /Default.asp 200
Linux: 10.22.1.80- - [08/Oct/2002:15:56:39 -0700] "HEAD / HTTP/1.0" 200 0
以上的活動(dòng)看上去很正常,也不會(huì)對(duì)服務(wù)器產(chǎn)生任何影響,但這是通常攻擊的前奏。
3、Web站點(diǎn)鏡像
黑客經(jīng)常鏡像一個(gè)站點(diǎn)來(lái)幫助攻擊服務(wù)器,常用來(lái)鏡像的工具有Windows下的Teleport pro和Unix下的Wget。
下面我們看使用這兩個(gè)工具后在服務(wù)器記錄里的信息:
16:28:52 10.22.1.80 GET /Default.asp 200
16:28:52 10.22.1.80 GET /robots.txt 404
16:28:52 10.22.1.80 GET 200
16:28:52 10.22.1.80 GET 200
16:28:55 10.22.1.80 GET 200
16:28:55 10.22.1.80 GET 200
16:28:55 10.22.1.80 GET 200
16:49:01 10.22.1.81 GET /Default.asp 200
16:49:01 10.22.1.81 GET /robots.txt 404
16:49:01 10.22.1.81 GET 200
16:49:01 10.22.1.81 GET 200
16:49:01 10.22.1.81 GET 200
16:49:01 10.22.1.81 GET 200
16:49:01 10.22.1.81 GET 200
10.22.1.80是使用Wget的Unix客戶端,10.22.1.81是使用Teleport pro的Windows客戶端,都請(qǐng)求robots.txt文件,Robots.txt是請(qǐng)求沒(méi)有被鏡像的文件時(shí)所要用到的。所以看到有對(duì)robots.txt文件的請(qǐng)求,表明有鏡像的企圖。當(dāng)然,在Wget和Teleport pro客戶端,可以手工禁止對(duì)robots.txt文件的訪問(wèn),這時(shí),辨別方法可以看是否有從同一IP地址來(lái)的重復(fù)資源請(qǐng)求。
4、漏洞掃描
隨著攻擊的發(fā)展,我們可以用一些Web漏洞檢查的軟件,如 Whisker,它可以檢查已知曉的各種漏洞,如cgi程序?qū)е碌陌踩[患等。下面是運(yùn)行Whisker1.4的IIS和Apache的相關(guān)記錄:
IIS
12:07:56 10.22.1.81 GET /SiteServer/Publishing/viewcode.asp 404
12:07:56 10.22.1.81 GET /msadc/samples/adctest.asp 200
12:07:56 10.22.1.81 GET /advworks/equipment/catalog_type.asp 404
12:07:56 10.22.1.81 GET /iisadmpwd/aexp4b.htr 200
12:07:56 10.22.1.81 HEAD /scripts/samples/details.idc 200
12:07:56 10.22.1.81 GET /scripts/samples/details.idc 200
12:07:56 10.22.1.81 HEAD /scripts/samples/ctguestb.idc 200
12:07:56 10.22.1.81 GET /scripts/samples/ctguestb.idc 200
12:07:56 10.22.1.81 HEAD /scripts/tools/newdsn.exe 404
12:07:56 10.22.1.81 HEAD /msadc/msadcs.dll 200
12:07:56 10.22.1.81 GET /scripts/iisadmin/bdir.htr 200
12:07:56 10.22.1.81 HEAD /carbo.dll 404
12:07:56 10.22.1.81 HEAD /scripts/proxy/ 403
12:07:56 10.22.1.81 HEAD /scripts/proxy/w3proxy.dll 500
12:07:56 10.22.1.81 GET /scripts/proxy/w3proxy.dll 500
Apache
10.22.1.80-[08/Oct/2002:12:57:28 -0700] "GET /cfcache.map HTTP/1.0" 404 266
10.22.1.80-[08/Oct/2002:12:57:28 -0700] "GET /cfide/Administrator/startstop.html HTTP/1.0" 404 289
10.22.1.80-[08/Oct/2002:12:57:28 -0700] "GET /cfappman/index.cfm HTTP/1.0" 404 273
10.22.1.80-[08/Oct/2002:12:57:28 -0700] "GET /cgi-bin/ HTTP/1.0" 403 267
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "GET /cgi-bin/dbmlparser.exe HTTP/1.0" 404 277
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "HEAD /_vti_inf.html HTTP/1.0" 404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "HEAD /_vti_pvt/ HTTP/1.0" 404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "HEAD /cgi-bin/webdist.cgi HTTP/1.0" 404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "HEAD /cgi-bin/handler HTTP/1.0" 404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "HEAD /cgi-bin/wrap HTTP/1.0" 404 0
10.22.1.80-[08/Oct/2002:12:57:29 -0700] "HEAD /cgi-bin/pfdisplay.cgi HTTP/1.0" 404
檢查這種攻擊的關(guān)鍵是看同一IP地址對(duì)cgi目錄(IIS是scripts,Apache是cgi-bin)文件請(qǐng)求出現(xiàn)多個(gè)404狀態(tài)。這時(shí)就要檢查相應(yīng)cgi目錄里的程序安全性。
5、遠(yuǎn)程攻擊
下面我們以針對(duì)IIS的MDAC攻擊為例,來(lái)了解遠(yuǎn)程攻擊在log里的記錄情況。MDAC漏洞使得攻擊者可以在Web服務(wù)器端執(zhí)行任何命令。
17:48:49 10.22.1.80 GET /msadc/msadcs.dll 200
17:48:51 10.22.1.80 POST /msadc/msadcs.dll 200
當(dāng)攻擊發(fā)生后,在log會(huì)留下對(duì)msadcs.dll請(qǐng)求的記錄。
另一個(gè)有名的攻擊是asp源代碼泄漏的漏洞,當(dāng)這種攻擊發(fā)生時(shí),log文件會(huì)有如下記錄:
17:50:13 10.22.1.81 GET /default.asp+.htr 200
對(duì)于未授權(quán)訪問(wèn)的攻擊記錄,Apache log會(huì)顯示:
[08/Oct/2002:18:58:29 -0700] "GET /private/ HTTP/1.0" 401 462
6、總結(jié)
管理一個(gè)安全站點(diǎn)要求系統(tǒng)管理人員具備安全的常識(shí)和警惕性,從不同的渠道了解安全的知識(shí)不僅能對(duì)付已發(fā)生的攻擊,還能對(duì)將會(huì)發(fā)生的攻擊做到較好的防范。而通過(guò)Log文件來(lái)了解、防范攻擊是很重要但又經(jīng)常容易忽略的手段。
IDS(入侵檢測(cè)系統(tǒng))能幫助你很多,但不能完全代替安全管理。仔細(xì)檢查L(zhǎng)og,IDS所遺漏的東西,就可能在這里發(fā)現(xiàn)。