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