■賴(lài)葉蕾 葉 晰 溫州醫(yī)科大學(xué)信息與工程學(xué)院
電子商務(wù)指的是利用簡(jiǎn)單、快捷、低成本的電子通訊方式,買(mǎi)賣(mài)雙方不謀面地進(jìn)行各種商貿(mào)活動(dòng)。然而隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,拒絕服務(wù)攻擊也越來(lái)越成為電子商務(wù)網(wǎng)站始終如揮之不去的夢(mèng)魘。
拒絕服務(wù)攻擊(DoS)一般可以被歸納為兩大類(lèi)。第一種DoS攻擊主要是利用網(wǎng)絡(luò)協(xié)議漏洞、操作系統(tǒng)或應(yīng)用軟件的缺陷來(lái)達(dá)到攻擊的目的,如比較有名的pingofdeath攻擊。第二種是攻擊者直接向目標(biāo)機(jī)器發(fā)送大量精心偽造的數(shù)據(jù)包,其主要目標(biāo)往往是目標(biāo)系統(tǒng)中最稀缺的資源,如內(nèi)存,CPU或者網(wǎng)絡(luò)帶寬等。此類(lèi)型的拒絕服務(wù)攻擊一般被稱(chēng)為泛洪(flooding)攻擊,如SYN-Flood攻擊就是屬于此類(lèi)攻擊。
拒絕服務(wù)攻擊威脅著因特網(wǎng)上所有類(lèi)型的服務(wù),DNS服務(wù)器也不例外。與DNS服務(wù)器相關(guān)的攻擊也可以分為兩種。第一種情況是以DNS服務(wù)器為攻擊目標(biāo),即攻擊者直接向DNS服務(wù)器發(fā)送大量的DNS查詢(xún)請(qǐng)求或其他無(wú)用的UDP流量進(jìn)而影響DNS服務(wù)器的正常工作。防御這種蠻力攻擊的簡(jiǎn)單有效的方法是使用Cluster集群技術(shù)進(jìn)行負(fù)載平衡,這也是眾多世界級(jí)公司慣用的抵御DoS攻擊的措施。第二種DNS相關(guān)攻擊更為精巧和策略性,攻擊者往往利用DNS服務(wù)器來(lái)放大攻擊流量(也就是所謂的DNS放大攻擊或反射攻擊)。其基本原理是攻擊者發(fā)送一個(gè)偽造的DNS詢(xún)問(wèn)請(qǐng)求給DNS服務(wù)器,而這個(gè)DNS詢(xún)問(wèn)請(qǐng)求的源地址被設(shè)置為目標(biāo)地址(即被攻擊者地址)。由于DNS應(yīng)答數(shù)據(jù)包的字節(jié)數(shù)遠(yuǎn)大于DNS詢(xún)問(wèn)數(shù)據(jù)包,故無(wú)形中攻擊流量被放大了。因此DNS放大攻擊會(huì)不但會(huì)耗盡被攻擊者的下行帶寬,也會(huì)消耗被利用DNS服務(wù)器的上行帶寬。由于攻擊流量會(huì)被放大,故一個(gè)攻擊者可以輕易的耗盡帶寬比自己大數(shù)倍的目標(biāo)機(jī)器的帶寬。
一個(gè)有效的防御方案的主要任務(wù)是在可承受的計(jì)算能力和內(nèi)存消耗下,能區(qū)分出正常的DNS應(yīng)答數(shù)據(jù)流量和攻擊流量。具體來(lái)說(shuō),正常情況下發(fā)送的DNS詢(xún)問(wèn)請(qǐng)求數(shù)據(jù)包和收到的DNS應(yīng)答數(shù)據(jù)包都是對(duì)應(yīng)的(當(dāng)然未必是一一對(duì)應(yīng),由于某些請(qǐng)求可能未得到回應(yīng),故請(qǐng)求數(shù)據(jù)包的數(shù)量一般大于應(yīng)答數(shù)據(jù)包,但真實(shí)的應(yīng)答數(shù)據(jù)包必然有相對(duì)應(yīng)的詢(xún)問(wèn)數(shù)據(jù)包),而當(dāng)攻擊發(fā)生時(shí)被攻擊機(jī)器將會(huì)收到大量沒(méi)有相應(yīng)發(fā)送請(qǐng)求記錄的應(yīng)答數(shù)據(jù)包(我們可稱(chēng)這些數(shù)據(jù)包為未配對(duì)數(shù)據(jù)包),這些數(shù)據(jù)包就可以被標(biāo)志為可疑的數(shù)據(jù)包。
我們使用snort來(lái)監(jiān)視進(jìn)出機(jī)器的DNS詢(xún)問(wèn)請(qǐng)求和應(yīng)答數(shù)據(jù)包。同時(shí)我們使用PHP語(yǔ)言編寫(xiě)了一個(gè)DNS放大攻擊檢測(cè)軟件DDAA(Detecting DNA Amplification Attacks)來(lái)實(shí)時(shí)處理我們捕獲到的數(shù)據(jù)并把這些信息存放到數(shù)據(jù)庫(kù)中,其中我們根據(jù)端口53來(lái)區(qū)分是否是DNS數(shù)據(jù)流量。其次我們可以把機(jī)器接收到的DNS應(yīng)答數(shù)據(jù)包按照其特征可以被劃分為正?;蚩梢伞?/p>
下圖顯示了我們提出的防御方案的總體架構(gòu)。簡(jiǎn)而言之,當(dāng)DDAA引擎檢測(cè)到DNS數(shù)據(jù)包時(shí)先判定數(shù)據(jù)包是詢(xún)問(wèn)請(qǐng)求包還是應(yīng)答包(可根據(jù)源端口和目的端口來(lái)判定)。如果是詢(xún)問(wèn)請(qǐng)求數(shù)據(jù)包,DDAA會(huì)把該包的信息寫(xiě)入數(shù)據(jù)表,并供以后查詢(xún)。當(dāng)確認(rèn)是應(yīng)答數(shù)據(jù)包后,DDAA會(huì)在數(shù)據(jù)庫(kù)表中尋找與之匹配的詢(xún)問(wèn)請(qǐng)求數(shù)據(jù)包。如果未能在相應(yīng)時(shí)間段內(nèi)(如5秒內(nèi))查詢(xún)到與之匹配的請(qǐng)求數(shù)據(jù)包,則可判定該應(yīng)答數(shù)據(jù)包為可疑數(shù)據(jù)包。當(dāng)可疑數(shù)據(jù)包的數(shù)目超過(guò)一個(gè)閥值后,如下圖所示,DDAA將會(huì)產(chǎn)生一個(gè)警報(bào)信號(hào)并改寫(xiě)防火墻的設(shè)置來(lái)阻塞來(lái)自該IP地址的所有數(shù)據(jù)。DDAA軟件中的所有參數(shù)設(shè)置(如閥值等)都可以根據(jù)系統(tǒng)管理員的安全策略而動(dòng)態(tài)的變化。
為了評(píng)估本方案的識(shí)別攻擊的準(zhǔn)確度,我們按照?qǐng)D1架構(gòu)了系統(tǒng)并模擬了攻擊。根據(jù)我們前面所述的場(chǎng)景,攻擊者偽造了DNS請(qǐng)求數(shù)據(jù)包并發(fā)送給本地DNS服務(wù)器,以便產(chǎn)生DoS攻擊。此場(chǎng)景下受害者可以是DNS服務(wù)器本身或者是其他網(wǎng)絡(luò)里的機(jī)器(只要DNS請(qǐng)求數(shù)據(jù)包里的源地址設(shè)為受害者地址即可)。當(dāng)攻擊者的攻擊達(dá)到一定強(qiáng)度(即警報(bào)數(shù)超過(guò)一定閥值),DDAA會(huì)向防火墻發(fā)出信息,以阻塞該IP地址對(duì)系統(tǒng)的攻擊。一個(gè)指示防火墻阻塞IP地址202.116.64.106的命令如下:
iptables-IRH-Firewall-1-INPUT-pudp-s202.116.64.106-m-tateNEW-mudp-sport 53-j REJECT
分布式拒絕服務(wù)攻擊(DDoS)嚴(yán)重威脅了電子商務(wù)網(wǎng)站的正常運(yùn)作。本文中我們主要討論了基于DNS放大的DDoS攻擊的產(chǎn)生機(jī)理,并提出了一種新穎,有效和易實(shí)現(xiàn)的方法來(lái)減低此種攻擊對(duì)客戶(hù)機(jī)的危害。部署本方案可以較好的保護(hù)本地DNS服務(wù)器和主機(jī),可以把攻擊帶來(lái)的損失降低到最小,從而提高了電子商務(wù)活動(dòng)的安全性。
[1]謝逸等.“新網(wǎng)絡(luò)環(huán)境下應(yīng)用層DDoS攻擊的剖析與防御”.《電信科學(xué)》,2007年01期,89頁(yè)-93頁(yè).
[2]李目海.“基于流量的分布式拒絕服務(wù)攻擊檢測(cè)”.華東師范大學(xué),2010年博士論文.