黑客通過控制傀儡機中的某一臺(或他自己的計算機,為安全起見,一般他會選擇一臺傀儡機來控制其他的傀儡機),再利用這臺傀儡機來指揮其余的傀儡機向目標服務(wù)器發(fā)動攻擊。當然,這只是一個簡單的示意圖,還可以把上圖想得更加復雜:黑客控制手中的十臺、二十臺傀儡機,再分別通過被這十臺、二十臺中的傀儡機去控制成千、上萬乃至數(shù)十萬的傀儡機對目標發(fā)動毀滅性的攻擊。
打個形象而又不太恰當?shù)谋扔鳎簝蓚€人打架,其中某一個人對付不了對方,于是他把他的朋友全都叫來,多個對付一個,一個人面對那么多個人,你怎么也對付不了。
拒絕服務(wù)就是用超出被攻擊目標處理能力的海量數(shù)據(jù)包消耗可用系統(tǒng),帶寬資源,致使正常的網(wǎng)絡(luò)服務(wù)癱瘓的一種攻擊手段。拒絕服務(wù)攻擊采用的是單一的一對一的攻擊手段,當CPU處理速度低、內(nèi)存小及網(wǎng)絡(luò)帶寬小等,拒絕服務(wù)攻擊的效果就很明顯。
但是,隨著互聯(lián)網(wǎng)技術(shù)及硬件技術(shù)的飛速發(fā)展,現(xiàn)在的帶寬都是以百兆、千兆為單位來計算,CPU多數(shù)亦是雙核或四核的,內(nèi)存現(xiàn)在也可以說是白菜價了。在這種環(huán)境下,使得拒絕服務(wù)的攻擊的困難程度就加大了。
這樣,分布式拒絕服務(wù)(DDoS)攻擊就出現(xiàn)了。如果你理解了拒絕服務(wù)(DoS)攻擊的話,在它的基礎(chǔ)上,分布式拒絕服務(wù)攻擊就不難理解了。如果說計算機與網(wǎng)絡(luò)的處理攻擊的能力加大了10倍,用一臺傀儡機來攻擊不再能起作用的話,攻擊者使用10臺傀儡機同時攻擊呢?用100臺呢?DDoS就是利用更多的傀儡機來發(fā)起進攻,以比從前更大的規(guī)模來進攻受害者。
二、DoS/DDoS攻擊的現(xiàn)象
那么,服務(wù)器被DoS/DDoS攻擊會是怎樣的現(xiàn)象呢?
1、被攻擊主機上有大量等待的TCP連接;
2、網(wǎng)絡(luò)中充斥著大量的無用的數(shù)據(jù)包,源地址為假地址或私網(wǎng)中才可能出現(xiàn)的地址;
3、制造高流量無用數(shù)據(jù),造成網(wǎng)絡(luò)擁塞,使受害主機無法正常和外界通訊;
4、利用受害主機提供的服務(wù)或傳輸協(xié)議上的缺陷,反復高速的發(fā)出特定的服務(wù)請求,使受害主機無法及時處理所有正常請求;
5、嚴重時會造成系統(tǒng)運行緩慢或假死、甚至死機;
三、DoS/DdoS攻擊的類型:
1、Synflood:該攻擊以多個隨機的源主機地址向目的主機發(fā)送SYN包,而在收到目的主機的SYN ACK后并不回應(yīng),這樣,目的主機就為這些源主機建立了大量的連接隊列,而且由于沒有收到ACK一直維護著這些隊列,造成了資源的大量消耗而不能向正常請求提供服務(wù)。
2、Smurf:該攻擊向一個子網(wǎng)的廣播地址發(fā)一個帶有特定請求(如ICMP回應(yīng)請求)的包,并且將源地址偽裝成想要攻擊的主機地址。子網(wǎng)上所有主機都回應(yīng)廣播包請求而向被攻擊主機發(fā)包,使該主機受到攻擊。
3、Land-based:攻擊者將一個包的源地址和目的地址都設(shè)置為目標主機的地址,然后將該包通過IP欺騙的方式發(fā)送給被攻擊主機,這種包可以造成被攻擊主機因試圖與自己建立連接而陷入死循環(huán),從而很大程度地降低了系統(tǒng)性能。
4、Ping of Death:根據(jù)TCP/IP的規(guī)范,一個包的長度最大為65536字節(jié)。盡管一個包的長度不能超過65536字節(jié),但是一個包分成的多個片段的疊加卻能做到。當一個主機收到了長度大于65536字節(jié)的包時,就是受到了Ping of Death攻擊,該攻擊會造成主機的宕機。
5、Teardrop:IP數(shù)據(jù)包在網(wǎng)絡(luò)傳遞時,數(shù)據(jù)包可以分成更小的片段。攻擊者可以通過發(fā)送兩段(或者更多)數(shù)據(jù)包來實現(xiàn)TearDrop 攻擊。第一個包的偏移量為0,長度為N,第二個包的偏移量小于N。為了合并這些數(shù)據(jù)段,TCP/IP堆棧會分配超乎尋常的巨大資源,從而造成系統(tǒng)資源的缺乏甚至機器的重新啟動。
6、PingSweep:使用ICMP Echo輪詢多個主機。
7、Pingflood:該攻擊在短時間內(nèi)向目的主機發(fā)送大量ping包,造成網(wǎng)絡(luò)堵塞或主機資源耗盡。
四、如何防御DoS/DdoS攻擊
當某一天,你登陸服務(wù)器時,感覺服務(wù)器運行緩慢,甚至是根本就遠程連接不上,數(shù)據(jù)中心機房工作人員通知你服務(wù)器流量非常大。這時候,你得分析是不是一定是受到了DoS/DDoS攻擊。
以上講了很多理論性的東西,各位看官可能還不一定都“消化”了。
那么在此告訴你們一條簡單且易懂的命令就可以判定服務(wù)器是否真的受到了DoS/DdoS攻擊:
在命令提示符下執(zhí)行netstat –an,查看當前服務(wù)器對外的所有連接,如果發(fā)現(xiàn)有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等狀態(tài)存在,而ESTABLISHED很少,則可判定肯定是遭受了資源耗盡攻擊。
如果你的服務(wù)器托管在一家比較有條件的數(shù)據(jù)中心機房里,同時這一家公司又有抗DoS/DdoS攻擊設(shè)備,不過據(jù)我所知,目前市面上大部分數(shù)據(jù)中心機房里的抗DoS/DDoS攻擊設(shè)備不是無償使用的。
具體怎么得到抗DoS/DDoS攻擊設(shè)備在此不詳細描述,可能是用數(shù)據(jù)中心機房的設(shè)備,有條件的單位也可以自己購買設(shè)備。
這種方法只能夠抵抗一小部分的攻擊,由于DoS/DDoS攻擊的類型很多,加上新的變種攻擊手段也層出不窮。
當你的抗DoS/DDoS攻擊設(shè)備無法識別那些新的DoS/DDoS攻擊,或由于攻擊力度太大,抗DoS/DdoS攻擊設(shè)備自身已經(jīng)無法正常影響了,甚至攻擊的帶寬已經(jīng)遠遠超出數(shù)據(jù)中心機房出口的總帶寬,這時候安裝什么抗攻擊設(shè)備都是無能為力的。
相信你理解了Dos/DDoS攻擊的真正含義后,你應(yīng)該會明白我說那句話的意思。
這個時候你得讓數(shù)據(jù)中心機房通知上級ISP運營商,在他們上級路由上將你的服務(wù)器IP地址臨時過濾掉。并且你需要與數(shù)據(jù)中心機房實時保持聯(lián)系,讓他們及時在上級ISP運營商那里得到最新的消息,以便第一時間內(nèi)將你服務(wù)器IP地址予以解封。
最后,給大家一些比較好的建議:
1、采用高性能的網(wǎng)絡(luò)設(shè)備
首先要保證網(wǎng)絡(luò)設(shè)備不能成為瓶頸,因此選擇路由器、交換機、硬件防火墻等設(shè)備的時候要盡量選用知名度高、口碑好的產(chǎn)品。再就是假如和網(wǎng)絡(luò)提供商有特殊關(guān)系或協(xié)議的話就更好了,當大量攻擊發(fā)生的時候請他們在網(wǎng)絡(luò)接點處做一下流量限制來對抗某些種類的DDOS攻擊是非常有效的。
2、盡量避免NAT的使用
無論是路由器還是硬件防護墻設(shè)備要盡量避免采用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT的使用,因為采用此技術(shù)會較大降低網(wǎng)絡(luò)通信能力,其實原因很簡單,因為NAT 需要對地址來回轉(zhuǎn)換,轉(zhuǎn)換過程中需要對網(wǎng)絡(luò)包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3、充足的網(wǎng)絡(luò)帶寬保證
網(wǎng)絡(luò)帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論采取什么措施都很難對抗現(xiàn)在的SYNFlood攻擊,當前至少要選擇 100M的共享帶寬,最好的當然是掛在1000M的主干上了。但需要注意的是,主機上的網(wǎng)卡是1000M的并不意味著它的網(wǎng)絡(luò)帶寬就是千兆的,若把它接在 100M的交換機上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等于就有了百兆的帶寬,因為網(wǎng)絡(luò)服務(wù)商很可能會在交換機上限制實際帶寬為10M,這點一定要搞清楚。
4、升級主機服務(wù)器硬件
在有網(wǎng)絡(luò)帶寬保證的前提下,請盡量提升硬件配置,要有效對抗每秒10萬個SYN攻擊包,服務(wù)器的配置至少應(yīng)該為:P4 2.4G/DDR512M/SCSI-HD,起關(guān)鍵作用的主要是CPU和內(nèi)存,若有志強雙CPU的話就用它吧,內(nèi)存一定要選擇DDR的高速內(nèi)存,硬盤要盡量選擇SCSI的,別只貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價,再就是網(wǎng)卡一定要選用3COM或Intel等名牌的,若是 Realtek的還是用在自己的PC上吧。
5、把網(wǎng)站做成靜態(tài)頁面
大量事實證明,把網(wǎng)站盡可能做成靜態(tài)頁面,不僅能大大提高抗攻擊能力,而且還給黑客入侵帶來不少麻煩,至少到現(xiàn)在為止關(guān)于HTML的溢出還沒出現(xiàn),看看吧!新浪、搜狐、網(wǎng)易等門戶網(wǎng)站主要都是靜態(tài)頁面,若你非需要動態(tài)腳本調(diào)用,那就把它弄到另外一臺單獨主機去,免的遭受攻擊時連累主服務(wù)器,當然,適當放一些不做數(shù)據(jù)庫調(diào)用腳本還是可以的,此外,最好在需要調(diào)用數(shù)據(jù)庫的腳本中拒絕使用代理的訪問,因為經(jīng)驗表明使用代理訪問你網(wǎng)站的80%屬于惡意行為。
在以上五點建議的基礎(chǔ)上,同時建議各位服務(wù)器管理員朋友,經(jīng)常檢查一下你所管理的服務(wù)器運行狀況,千萬別讓自己管理的服務(wù)器變成了黑客用來攻擊別人的傀儡機,對自己不好,對別人也不好。