吳 凡
某省移動(dòng)公司信息技術(shù)部總經(jīng)理張先生在前一陣子就遇到拒絕服務(wù)(DoS)攻擊的麻煩:用戶投訴說(shuō)網(wǎng)站訪問(wèn)速度太慢,動(dòng)不動(dòng)就超時(shí)斷開(kāi)連接。這個(gè)問(wèn)題該如何處理呢?
說(shuō)到DoS攻擊,相信大家都不陌生。在所有的黑客攻擊行為中,這種攻擊顯得頗為特立獨(dú)行,因?yàn)樗且环N損人不利己的攻擊行為。
錯(cuò)誤配置導(dǎo)致DDoS
典型的DoS攻擊通常表現(xiàn)為用戶的正常服務(wù)請(qǐng)求無(wú)法得到滿足,比如訪問(wèn)緩慢、無(wú)響應(yīng)等,嚴(yán)重情況下甚至?xí)蟹?wù)器死機(jī)現(xiàn)象。
除了常說(shuō)的DoS之外,還有另外一種防范更為困難的分布式拒絕服務(wù)(DDoS)攻擊。DDoS是指借助客戶端/服務(wù)器技術(shù),聯(lián)合多個(gè)(常??蛇_(dá)數(shù)萬(wàn)個(gè))計(jì)算機(jī)作為一個(gè)攻擊平臺(tái),對(duì)目標(biāo)發(fā)起DoS攻擊,由于受控制的攻擊機(jī)器(就是我們通常所謂的傀儡機(jī))數(shù)量龐大,極端情況下即使每臺(tái)傀儡機(jī)都只發(fā)送正常服務(wù)請(qǐng)求,目標(biāo)機(jī)器也有可能由于資源過(guò)載而無(wú)法正常提供服務(wù)。
有人認(rèn)為,DoS攻擊絕對(duì)無(wú)法避免。其實(shí)不盡然,根據(jù)觸發(fā)原因的不同,某些DoS攻擊是可以避免的,其中有一種情況是由于錯(cuò)誤配置或系統(tǒng)BUG導(dǎo)致的。錯(cuò)誤配置造成的DoS攻擊可以通過(guò)修正配置來(lái)避免,系統(tǒng)Bug造成的拒絕服務(wù)攻擊可以通過(guò)打修正Bug的補(bǔ)丁來(lái)避免。
舉個(gè)錯(cuò)誤配置的例子,比如某服務(wù)器系統(tǒng)配置支持1000個(gè)用戶同時(shí)連接,但在該服務(wù)器上的系統(tǒng)軟件上,并未對(duì)用戶連接數(shù)上限做限制,導(dǎo)致同時(shí)連接用戶數(shù)量過(guò)多,服務(wù)器響應(yīng)緩慢。
這里所說(shuō)的系統(tǒng)可能是軟件,也可能是協(xié)議。最著名的導(dǎo)致DoS攻擊的系統(tǒng)Bug就是TCP的三次握手。攻擊者可以偽造大量源地址向服務(wù)器持續(xù)發(fā)送SYN數(shù)據(jù)包,在接收到服務(wù)器端ACK回應(yīng)時(shí)不做任何響應(yīng),使得服務(wù)器端需要保持大量的端口處于監(jiān)聽(tīng)狀態(tài),從而造成拒絕服務(wù)。
DoS類型及應(yīng)對(duì)
根據(jù)DoS類型的不同,DoS攻擊大致可以分為網(wǎng)絡(luò)帶寬消耗型攻擊和資源消耗型攻擊。
1.網(wǎng)絡(luò)帶寬消耗型攻擊
這種攻擊指大量的網(wǎng)絡(luò)服務(wù)請(qǐng)求占用并耗盡了帶寬資源,導(dǎo)致計(jì)算機(jī)無(wú)法再處理合法用戶的請(qǐng)求。通過(guò)抓包,我們可以看到網(wǎng)絡(luò)中存在大量數(shù)據(jù)包,并已經(jīng)達(dá)到了網(wǎng)絡(luò)通信量的上限。一般來(lái)說(shuō),這種情況可以通過(guò)修改服務(wù)器配置或使用QoS設(shè)備來(lái)降低此類攻擊危害。用戶可以通過(guò)以下方式進(jìn)行DoS攻擊防御。
在服務(wù)器上:關(guān)閉不必要的服務(wù),限制同時(shí)打開(kāi)的SYN半連接數(shù),縮短SYN半連接存活時(shí)間。
在防火墻上:禁止對(duì)主機(jī)的非開(kāi)放服務(wù)的訪問(wèn),限制同時(shí)打開(kāi)的SYN最大連接數(shù),限制特定IP地址的訪問(wèn),啟用防火墻的防DDoS的屬性,嚴(yán)格限制對(duì)外開(kāi)放的服務(wù)器的向外訪問(wèn)。
在路由器上:使用Unicast Reverse Path(單播反向路徑),訪問(wèn)控制列表(ACL)過(guò)濾,設(shè)置SYN數(shù)據(jù)包流量速率,升級(jí)版本過(guò)低的ISO,為路由器建立日志記錄。
通常情況下,針對(duì)帶寬消耗型DoS/DDoS的最佳防御位置是在運(yùn)營(yíng)商處。通過(guò)在路由器上對(duì)數(shù)據(jù)包源IP地址進(jìn)行驗(yàn)證,系統(tǒng)如未找到匹配項(xiàng)就將該數(shù)據(jù)包丟棄。這樣可以最大限度保證偽造的數(shù)據(jù)包不會(huì)通過(guò)Internet傳到用戶網(wǎng)絡(luò)中。但這種方法將極大降低路由器的處理性能,故應(yīng)用不多。
一些重要網(wǎng)站,或是在一些重大事件發(fā)生前后,網(wǎng)站無(wú)法訪問(wèn)將會(huì)造成非常嚴(yán)重的影響。帶寬消耗DoS,尤其是那些利用大規(guī)模僵尸網(wǎng)絡(luò)進(jìn)行的攻擊行為,幾乎無(wú)法從“直接防御”這個(gè)角度進(jìn)行防護(hù)。在這種情況下,較好的應(yīng)對(duì)措施就是增加服務(wù)的提供能力,如采用增加帶寬、提高計(jì)算性能、冗余備份、負(fù)載均衡等手段。
2.資源消耗型攻擊
這種攻擊指利用處理缺陷,通過(guò)發(fā)送數(shù)據(jù)包耗盡CPU等處理資源,導(dǎo)致無(wú)法正常提供服務(wù),雖然網(wǎng)絡(luò)流量并不大,但服務(wù)器的資源占用率極高,如出現(xiàn)CPU占用達(dá)到100%。
資源消耗型的攻擊相對(duì)來(lái)說(shuō)易于防御。只要串接在網(wǎng)絡(luò)中的設(shè)備能對(duì)畸形數(shù)據(jù)包進(jìn)行分析和丟棄,用戶就可以避免此類攻擊。入侵防御產(chǎn)品,甚至是防火墻產(chǎn)品都具備此項(xiàng)功能。