【賽迪網-IT技術報道】拒絕服務(DoS)攻擊是目前黑客廣泛使用的一種攻擊手段,它通過獨佔網絡資源、使其他主機不能進行正常訪問,從而導致宕機或網絡癱瘓。
DoS攻擊主要分為Smurf、SYN Flood和Fraggle三種,在Smurf攻擊中,攻擊者使用ICMP資料包阻塞伺服器和其他網絡資源;SYN Flood攻擊使用數量巨大的TCP半連接來佔用網絡資源;Fraggle攻擊與Smurf攻擊原理類似,使用UDP echo請求而不是ICMP echo請求發起攻擊。
儘管網絡安全專家都在著力開發阻止DoS攻擊的設備,但收效不大,因為DoS攻擊利用了TCP協議本身的弱點。正確配置路由器能夠有效防止DoS攻擊。以Cisco路由器為例,Cisco路由器中的IOS軟體具有許多防止DoS攻擊的特性,保護路由器自身和內部網絡的安全。
使用擴展訪問列表
擴展訪問列表是防止DoS攻擊的有效工具。它既可以用來探測DoS攻擊的類型,也可以阻止DoS攻擊。Show ip access-list命令能夠顯示每個擴展訪問列表的匹配資料包,根據資料包的類型,用戶就可以確定DoS攻擊的種類。如果網絡中出現了大量建立TCP連接的請求,這表明網絡受到了SYN Flood攻擊,這時用戶就可以改變訪問列表的配置,阻止DoS攻擊。
使用QoS
使用服務質量優化(QoS)特徵,如加權公平隊列(WFQ)、承諾訪問速率(CAR)、一般流量整形(GTS)以及定制隊列(CQ)等,都可以有效阻止DoS攻擊。需要注意的是,不同的QoS策略對付不同DoS攻擊的效果是有差別的。例如,WFQ對付Ping Flood攻擊要比防止SYN Flood攻擊更有效,這是因為Ping Flood通常會在WFQ中表現為一個單獨的傳輸隊列,而SYN Flood攻擊中的每一個資料包都會表現為一個單獨的資料流。此外,人們可以利用CAR來限制ICMP資料包流量的速度,防止Smurf攻擊,也可以用來限制SYN資料包的流量速度,防止SYN Flood攻擊。使用QoS防止DoS攻擊,需要用戶弄清楚QoS以及DoS攻擊的原理,這樣才能針對DoS攻擊的不同類型採取相應的防範措施。
使用單一地址逆向轉發
逆向轉發(RPF)是路由器的一個輸入功能,該功能用來檢查路由器接口所接收的每一個資料包。如果路由器接收到一個源IP地址為10.10.10.1的資料包,但是CEF(Cisco Express Forwarding)路由表中沒有為該IP地址提供任何路由信息,路由器就會丟棄該資料包,因此逆向轉發能夠阻止Smurf攻擊和其他基於IP地址偽裝的攻擊。
使用RPF功能需要將路由器設為快速轉發模式(CEF switching),並且不能將啟用RPF功能的接口配置為CEF交換。RPF在防止IP地址欺騙方面比訪問列表具有優勢,首先它能動態地接受動態和靜態路由表中的變化;第二RPF所需要的操作維護較少;第三RPF作為一個反欺騙的工具,對路由器本身產生的性能衝擊,要比使用訪問列表小得多。
使用TCP攔截
Cisco在IOS 11.3版以後,引入了TCP攔截功能,這項功能可以有效防止SYN Flood攻擊內部主機。
在TCP連接請求到達目標主機之前,TCP攔截通過攔截和驗證來阻止這種攻擊。TCP攔截可以在攔截和監視兩種模式下工作。在攔截模式下,路由器攔截到達的TCP同步請求,並代表伺服器建立與客戶機的連接,如果連接成功,則代表客戶機建立與伺服器的連接,並將兩個連接進行透明合併。在整個連接期間,路由器會一直攔截和發送資料包。對於非法的連接請求,路由器提供更為嚴格的對於half-open的超時限制,以防止自身的資源被SYN攻擊耗盡。在監視模式下,路由器被動地觀察流經路由器的連接請求,如果連接超過了所配置的建立時間,路由器就會關閉此連接。
在Cisco路由器上開啟TCP攔截功能需要兩個步驟:一是配置擴展訪問列表,以確定需要保護的IP地址;二是開啟TCP攔截。配置訪問列表是為了定義需要進行TCP攔截的源地址和目的地址,保護內部目標主機或網絡。在配置時,用戶通常需要將源地址設為any,並且指定具體的目標網絡或主機。如果不配置訪問列表,路由器將會允許所有的請求經過。
使用基於內容的訪問控制
基於內容的訪問控制(CBAC)是對Cisco傳統訪問列表的擴展,它基於應用層會話信息,智能化地過濾TCP和UDP資料包,防止DoS攻擊。
CBAC通過設置超時時限值和會話門限值來決定會話的維持時間以及何時刪除半連接。對TCP而言,半連接是指一個沒有完成三階段握手過程的會話。對UDP而言,半連接是指路由器沒有檢測到返回流量的會話。
CBAC正是通過監視半連接的數量和產生的頻率來防止洪水攻擊。每當有不正常的半連接建立或者在短時間內出現大量半連接的時候,用戶可以判斷是遭受了洪水攻擊。CBAC每分鐘檢測一次已經存在的半連接數量和試圖建立連接的頻率,當已經存在的半連接數量超過了門限值,路由器就會刪除一些半連接,以保證新建立連接的需求,路由器持續刪除半連接,直到存在的半連接數量低於另一個門限值;同樣,當試圖建立連接的頻率超過門限值,路由器就會採取相同的措施,刪除一部分連接請求,並持續到請求連接的數量低於另一個門限值。通過這種連續不斷的監視和刪除,CBAC可以有效防止SYN Flood和Fraggle攻擊。
路由器是企業內部網絡的第一道防護屏障,也是黑客攻擊的一個重要目標,如果路由器很容易被攻破,那麼企業內部網絡的安全也就無從談起,因此在路由器上採取適當措施,防止各種DoS攻擊是非常必要的。用戶需要注意的是,以上介紹的幾種方法,對付不同類型的DoS攻擊的能力是不同的,對路由器CPU和記憶體資源的佔用也有很大差別,在實際環境中,用戶需要根據自身情況和路由器的性能來選擇使用適當的方式。
(