攻擊過程
Smurf攻擊通過使用將回復地址設定成受害網路的
廣播地址的ICMP應答請求(ping)數據包,來淹沒受害主機,最終導致該網路的所有主機都對此ICMP應答請求做出答覆,導致
網路阻塞。更加複雜的Smurf將源地址改為第三方的受害者,最終導致第三方崩潰。
攻擊的過程是這樣的:Woodlly Attacker向一個具有大量
主機和網際網路連線的網路的廣播地址傳送一個欺騙性Ping分組(echo 請求),這個目標網路被稱為反彈站點,而欺騙性Ping分組的源地址就是Woodlly希望攻擊的系統。
這種攻擊的前提是,
路由器接收到這個傳送給IP廣播地址(如206.121.73.255)的分組後,會認為這就是廣播分組,並且把
乙太網廣播地址FF:FF:FF:FF:FF:FF:映射過來。這樣路由器因網際網路上接收到該分組,會對本地
網段中的所有主機進行廣播。
讀者肯定能夠想到下面會發生什麼情況。網段中的所有主機都會向欺騙性分組的IP位址傳送echo回響信息。如果這是一個很大的乙太網段,可以會有500個以上的主機對收到的echo請求進行回復。
由於多數系統都會儘快地處理ICMP傳輸信息,Woodlly Attacker把分組的源地址設定為目標系統,因此目標系統都很快就會被大量的echo信息吞沒,這樣輕而易舉地就能夠阻止該系統處理其它任何網路傳輸,從而引起拒絕為正常系統服務。
這種攻擊不僅影響目標系統,還影響目標公司的網際網路連線。如果反彈站點具有T3連線(45Mbps),而目標系統所在的公司使用的是租用線路(56Kbps),則所有進出該公司的通訊都會停止下來。
這種攻擊現在已經很少見,大多數的網路已經對這種攻擊免疫了。
攻擊檢測
在分析Smurf 攻擊原理的基礎上,本文提出Smurf 攻擊的檢測方法。
ICMP 應答風暴的檢測
對網路進行監控和統計發現, 若出現Smurf 攻擊, 則會出現大量的echo 報文。由於存在echo 應答風暴, 此時,echo 報文在所有報文中所占的比例大大增加。所以,如出現這種情況, 就可能遭到了Smurf 攻擊。
報文丟失率和重傳率的上升
由於echo 風暴造成網路負載過重,會出現大量報文丟失和報文重傳現象。所以,若有明顯的報文丟失率和重傳率上升現象,就有可能遭到了Smurf 攻擊。
常出現意外的連線重置的現象
在受到Smurf 攻擊時, 由於網路重載,會使其它的網路連線出現意外的中斷或重置的現象。如反覆出現意外的中斷或重置,也可能受到了Smurf 攻擊。
防禦方法
挫敗一個Smurf攻擊的最簡單的方法就是對邊界路由器的回音應答(echo reply)信息包進行過濾,然後丟棄他們,使網路避免被湮沒。
遭受攻擊
如果你的主機不幸成為了Smurf攻擊的目標,在這兒可以找到很多種方法來限制這種拒絕服務攻擊造成的影響。在最近新進修改的Cisco IOS作業系統中,被訪問列表所拒絕的數據包直接就被丟棄(其丟棄速度幾乎接近於硬體速度)。不過每秒鐘每個列表行有兩個數據包例外,這就是向中間代理回思科學習視頻資料下載中心送ICMP不可達訊息的數據包。因此,如果你不想做為別人Ping的目標,那么在邊界路由器上就直接可以阻塞掉。
激活這個列表的命令是:
ip icmp rate-limit unreachable
如果必須允許Ping命令,你可以通過使用命令訪問速率(Committed Access Rate ,CAR)來限制ICMP的流量。以下列出了其它Cisco IOS的例子:
config t
Access-list 100 permit icmp any {你的網路號} {你的網路子網掩碼} echo-reply
Access-list 100 permit icmp any {你的網路號} {你的網路子網掩碼} echo
Interface e1
Rate-limit input access-group 100 512000 8000 8000 conform action transmit exceed action drop
這個例子限制ICMP的傳輸速率不能超過512Kbps,突發速率不能超過8000bits。所有多出的包將被丟棄。可以有多個速率限制命令同時添加到一個接口上,可以對不同的數據包進行不同的速率限制。
查找黑客
對發起Smurf攻擊的機器的定位非常困難,但並不是不可能的。不過在你開始查找之前,應該考慮是否使用法律這一重要武器。
為了跟蹤這類拒絕服務攻擊的真正源頭,可以採取以下幾步:
確定中間代理的IP位址空間,並與他們的網路管理員取得聯繫。記住你看到的這些包是從中間代理那兒來的,並不是從真正黑客處來的。那些以被攻擊的主機的IP位址為源IP位址的進入該網路的數據包,就是黑客使用的源地址欺騙數據包。
從這些數據包上取得源IP位址欺騙的物理地址,並用這些物理地址做一下ip arp(適用於Cisco IOS),得到的結果就是源IP位址欺騙來的最後一跳節點的IP位址。與他們的管理員取得聯繫。
重複以上幾步,直到你找到與跟蹤的物理地址相同的路由器。
路由器設定
在cisco
路由器上配置如下可以防止將包傳遞到廣播地址上:
Router(config-if)# no ip directed-broadcast
why this command can prevent Smurf attacks?
The reason is that it prevents your network device from being a reflector in an attack.