路由器防御Dos攻擊的新方法

2016-08-05 08:10:18 來(lái)源:至頂網(wǎng) 作者:ccyou 人氣: 次閱讀 325 條評(píng)論

DoS(DenialofService)攻擊就是利用合理的服務(wù)請(qǐng)求來(lái)占用過(guò)多的服務(wù)資源,從而使合法用戶(hù)無(wú)法得到服務(wù)的響應(yīng)。dos攻擊的方法很多,但它們都具有一些共同的典型特征,例如:使用欺騙的源地址、使用網(wǎng)絡(luò)協(xié)議的缺陷、使...

 DoS (Denial of Service)攻擊就是利用合理的服務(wù)請(qǐng)求來(lái)占用過(guò)多的服務(wù)資源,從而使合法用戶(hù)無(wú)法得到服務(wù)的響應(yīng)。

  dos攻擊的方法很多,但它們都具有一些共同的典型特征,例如:使用欺騙的源地址、使用網(wǎng)絡(luò)協(xié)議的缺陷、使用操作系統(tǒng)或軟件的漏洞、在網(wǎng)絡(luò)上產(chǎn)生大量的無(wú)用數(shù)據(jù)包消耗服務(wù)資源等。因此,要防御dos攻擊,就必須從這些攻擊的特征入手,分析其特征,制定合適的策略和方法。

  Smurf攻擊的特征描述

  Smurf攻擊是根據(jù)它的攻擊程序命名的,是一種ICMP echo flooding攻擊。

  在這樣的攻擊中,ping包中包含的欺騙源地址指向的主機(jī)是最終的受害者,也是主要的受害者;而路由器連接的廣播網(wǎng)段成為了攻擊的幫兇(類(lèi)似一個(gè)放大器,使網(wǎng)絡(luò)流量迅速增大),也是受害者。

  防御Smurf攻擊的方法

  根據(jù)Smurf攻擊的特征,可以從兩個(gè)方面入手來(lái)防御Smurf的攻擊:一是防止自己的網(wǎng)絡(luò)成為攻擊的幫兇即第一受害者 ;二是從最終受害者的角度來(lái)防御Smurf攻擊。下面就從這兩個(gè)方面來(lái)討論防御的的測(cè)路和方法。

  一、拒絕成為攻擊的幫兇

  Smurf要利用一個(gè)網(wǎng)絡(luò)作為“流量放大器”,該網(wǎng)絡(luò)必定具備以下特征:

  1、路由器允許有IP源地址欺騙的數(shù)據(jù)包通過(guò) ;

  2、路由器將定向廣播(發(fā)送到廣播地址的數(shù)據(jù)包)轉(zhuǎn)換成為第二層(MAC層)的廣播并向連接網(wǎng)段廣播 ;

  3、廣播網(wǎng)絡(luò)上的主機(jī)允許對(duì)ping廣播作出回應(yīng) ;

  4、路由器對(duì)主機(jī)回應(yīng)的ping數(shù)據(jù)流量未做限制 ;

  所以,可以根據(jù)以上四點(diǎn)來(lái)重新規(guī)劃網(wǎng)絡(luò),以使自己的網(wǎng)絡(luò)不具備會(huì)成為“流量放大器”的條件 。

  防止IP源地址欺騙

  IP源地址欺騙可以應(yīng)用在多種不同的攻擊方式中,例如:TCP SYN flooding、UDP flooding、ICMP flooding等。

  偽造的源地址可以是不存在(不允許在公網(wǎng)上發(fā)布)的地址,或者是最終攻擊目標(biāo)的地址。

  在UDP flooding中,攻擊者則是通過(guò)連接目標(biāo)系統(tǒng)的changen端口到偽造源地址指向的主機(jī)的echo端口,導(dǎo)致changen端口產(chǎn)生大量的隨機(jī)字符到echo端口,而echo端口又將接收到的字符返回,最后導(dǎo)致兩個(gè)系統(tǒng)都因耗盡資源而崩潰。

  注意:為了防御UDP flooding,我們必須防止路由器的診斷端口或服務(wù)向管理域之外的區(qū)域開(kāi)放,如果不需要使用這些端口或者服務(wù),應(yīng)該將其關(guān)閉。

  防止IP源地址欺騙的最有效方法就是驗(yàn)證源地址的真實(shí)性,在Cisco路由器上,我們可以采用下列兩種方法:

  a、在網(wǎng)絡(luò)邊界實(shí)施對(duì)IP源地址欺騙的過(guò)濾

  阻止IP源地址欺騙的一個(gè)最簡(jiǎn)單有效的方法是通過(guò)在邊界路由器使用向內(nèi)的訪(fǎng)問(wèn)列表,限制下游網(wǎng)絡(luò)發(fā)進(jìn)來(lái)的數(shù)據(jù)包確實(shí)是在允許接受的地址范圍,不在允許范圍的數(shù)據(jù)將被刪除。同時(shí),為了追溯攻擊者,可以使用log記錄被刪除的數(shù)據(jù)信息 。

  b、使用反向地址發(fā)送

  使用訪(fǎng)問(wèn)控制列表在下游入口處做ip限制,是基于下游ip地址段的確定性 。但在上游入口處,流入數(shù)據(jù)的ip地址范圍有時(shí)是難于確定的。在無(wú)法確定過(guò)濾范圍時(shí),一個(gè)可行的方法是使用反向地址發(fā)送(Unicast Reverse Path Forwarding)。

  反向地址發(fā)送是Cisco路由器的新版iOS提供的一項(xiàng)特性,簡(jiǎn)稱(chēng)uRPF。

  uRPF的工作原理是:當(dāng)路由器在一個(gè)接口上收到一個(gè)數(shù)據(jù)包時(shí),它會(huì)查找CEF(Cisco Express Forward)表,驗(yàn)證是否存在從該接收接口到包中指定的源地址之間的路由,即反向查找路徑,驗(yàn)證其真實(shí)性,如果不存在這樣的路徑就將數(shù)據(jù)包刪除。

  相比訪(fǎng)問(wèn)控制列表,uRPF具有很多優(yōu)點(diǎn),例如:耗費(fèi)CPU資源少、可以適應(yīng)路由器路由表的動(dòng)態(tài)變化(因?yàn)镃EF表會(huì)跟隨路由表的動(dòng)態(tài)變化而更新),所以維護(hù)量更少,對(duì)路由器的性能影響較小。

  uRPF是基于接口配置的,配置命令如下:

  (config)# ip cef

  (config-if)# ip verify unicast reverse-path

  注意:uRPF的實(shí)施,CEF必須是全局打開(kāi),并在配置接口上也是啟用的。

  禁止定向廣播

  在Smurf攻擊中,攻擊者將ping數(shù)據(jù)包發(fā)向一個(gè)網(wǎng)絡(luò)的廣播地址,例如:192.168.1.255。大多數(shù)情況下,路由器在接收到該廣播包之后,默認(rèn)會(huì)將這個(gè)第三層廣播轉(zhuǎn)換成第二層廣播,即將192.168.1.255轉(zhuǎn)換成為以太網(wǎng)的FF:FF:FF:FF:FF:FF 。而該廣播網(wǎng)段上的所有以太網(wǎng)接口卡在接收到這個(gè)第二層廣播之后,就會(huì)向主機(jī)系統(tǒng)發(fā)出中斷請(qǐng)求,并對(duì)這個(gè)廣播作出回應(yīng),從而消耗了主機(jī)資源,并且做出的回應(yīng)可能造成對(duì)源地址所指目標(biāo)的攻擊。

  所以,在絕大多數(shù)情況下,應(yīng)該在邊界路由器上禁止定向廣播,使用以下接口命令禁止

  (config)# no ip directed-broadcast

  注:在絕大部分情況下,是不需要使用路由器的定向廣播功能的,會(huì)使用定向廣播的特例也有,例如,如果一臺(tái)SMB或者NT服務(wù)器需要讓一個(gè)遠(yuǎn)程的LAN能夠看到自己,就必須向這個(gè)LAN發(fā)送定向廣播,但對(duì)于這種應(yīng)用可以通過(guò)使用WINS服務(wù)器解決。

  禁止主機(jī)對(duì)ping廣播作出反應(yīng)

  當(dāng)前絕大部分的操作系統(tǒng)都可以通過(guò)特別的設(shè)置,使主機(jī)系統(tǒng)對(duì)于ICMP ECHO廣播不做出回應(yīng)。

  通過(guò)阻止“放大器”網(wǎng)絡(luò)上的主機(jī)對(duì)ICMP ECHO(ping)廣播做出回應(yīng),可以阻止該廣播網(wǎng)絡(luò)成為攻擊的幫兇。

  限制icmp echo的流量

  當(dāng)大量的數(shù)據(jù)涌入一個(gè)接口的時(shí)候,即使使用了訪(fǎng)問(wèn)策略對(duì)ICMP包進(jìn)行了刪除,接口還是可能會(huì)因?yàn)槊τ诓粩鄤h除大量數(shù)據(jù)而導(dǎo)致接口不能提供正常服務(wù)。

  與被動(dòng)的刪除數(shù)據(jù)相比,一個(gè)主動(dòng)的方法是,在接口上設(shè)置承諾速率限制(committed Access rate,簡(jiǎn)稱(chēng)CAR),將特定數(shù)據(jù)的流量限制在一個(gè)范圍之內(nèi),允許其適量的通過(guò),同時(shí)保證了其它流量的正常通過(guò)。

  例:使用CAR限制ICMP echo flooding

  !建立訪(fǎng)問(wèn)列表,分類(lèi)要過(guò)濾的數(shù)據(jù)

  access-list 102 permit icmp any any echo

  access-list 102 permit icmp any any echo-reply

  !在接口上配置CAR,將ICMP echo流量

  !限制在256k,允許突發(fā)8k

  interface Serial3/0/0

  rate-limit input access-group 102 256000 8000 8000 conform-action transmit exceed-action drop

 二、受害者的策略

  由Smurf攻擊產(chǎn)生的攻擊數(shù)據(jù)流量在經(jīng)過(guò)了“放大器網(wǎng)絡(luò)“放大之后,當(dāng)?shù)竭_(dá)最終攻擊目標(biāo)時(shí),數(shù)據(jù)流量可能是非常巨大的。為了保護(hù)被攻擊的系統(tǒng)免于崩潰,我們可以采取以下兩種策略:

  使用控制訪(fǎng)問(wèn)列表過(guò)濾數(shù)據(jù)

  在最終攻擊目標(biāo)的網(wǎng)絡(luò)邊界路由器上使用訪(fǎng)問(wèn)控制列表,拒絕將ping攻擊數(shù)據(jù)包發(fā)往被攻擊的主機(jī)。但這是一個(gè)粗努的方法,因?yàn)楫?dāng)你在路由器上完全限制了發(fā)往被攻擊主機(jī)的ping數(shù)據(jù)包之后,其它希望正常通過(guò)的ping數(shù)據(jù)包也將無(wú)法通過(guò)。另外,在邊界路由器上使用訪(fǎng)問(wèn)控制列表過(guò)濾ping數(shù)據(jù)之后,雖然可以保護(hù)路由器連接的內(nèi)部網(wǎng)絡(luò)免受攻擊,但攻擊的數(shù)據(jù)還是會(huì)大量涌入路由器,導(dǎo)致路由器接口的阻塞。

  使用CAR限制速率

  在最終攻擊目標(biāo)的網(wǎng)絡(luò)邊界路由器上使用CAR限制是一種更為可取的方法。通過(guò)CAR可以將流入網(wǎng)絡(luò)的某一類(lèi)數(shù)據(jù)包的總流量限制在一定的范圍,從而可以保證其它數(shù)據(jù)的正常通過(guò)。

  結(jié)論

  本文討論的基于路由器配置來(lái)防御dos攻擊的方法在實(shí)際應(yīng)用中有非常顯著的效果。當(dāng)前絕大部分的網(wǎng)絡(luò)仍然使用路由器作為邊界連接設(shè)備,所以本文闡述的方法具有普遍實(shí)施的意義。