“夫兵形象水,水之行避高而趨下,兵之形避實而擊虛;水因地而制流,兵因敵而制勝。”
——《孫子兵法》
在這,我會對分布式拒絕服務(wù)攻擊使用的各種方法分別進行介紹,以使大家對分布式拒絕服務(wù)攻擊有比較全面和深入的理解和認識。
在介紹分布式拒絕服務(wù)攻擊方法之前,我有必要對分布式拒絕服務(wù)攻擊的基本形式進行更加深入的理解和剖析。什么是拒絕服務(wù)攻擊?什么是分布式拒絕服務(wù)攻擊?拒絕服務(wù)攻擊和分布式拒絕服務(wù)攻擊之間又有著什么樣的聯(lián)系和區(qū)別呢?
這里我們不妨舉一個貼近現(xiàn)實的例子來進行類比說明。
假設(shè)你對一家快餐店心存不滿(也許你在用餐的時候吃到了蒼蠅,也許你是它的競爭對手餐廳的負責(zé)人,總之,你感到很生氣),打算去砸這家快餐店的場子,從而使快餐店的經(jīng)理害怕,并讓其他客人不再去這家快餐店吃飯。
這時,你會有兩種選擇。
其一,叫上幾個兄弟,拿上鐵鍬、鐵錘、棍棒,沖進這家快餐店,嚇跑店員和店里的客人,砸碎門窗和座椅,砸爛收款臺和廚房……這種方式能夠快速起效。
砸過場子之后也會讓這家快餐店花費幾周時間重新裝修店面,不過,快餐店經(jīng)理報警之后,作為主犯的你將會很容易被抓獲,并且將會面臨幾個月到幾年的牢獄之災(zāi);
其二,請一百來個朋友同時到這家快餐店就餐,每個人只點一小杯可樂(或者每兩三個人點一包小薯條),點餐之后就在座位上聊天,從大清早開始一直聊到快餐店當(dāng)天關(guān)店。
這樣進到快餐店的其他客人會發(fā)現(xiàn)沒有座位可坐,因此會去其他店就餐,表面上看,這種“可樂薯條大作戰(zhàn)”的方式相對溫和,實際上對這家快餐店營業(yè)額的影響非常大,更重要的是,即使餐廳經(jīng)理報警,警察也沒有任何理由逮捕你。
好了,這里這個例子并不是在教各位如何去快餐店砸場子,只是想借用這個例子來說明拒絕服務(wù)攻擊和分布式拒絕服務(wù)攻擊。
首先,拒絕服務(wù)攻擊是指通過一些手段影響服務(wù)的可用性。在這個例子里,就是去快餐店砸場子,從而使其他客人無法(不能或不敢)在這家快餐店就餐。
其次,早期的拒絕服務(wù)攻擊主要基于系統(tǒng)和應(yīng)用程序的漏洞,這種攻擊只需要幾個請求或者數(shù)據(jù)包就能導(dǎo)致長時間的服務(wù)不可用。但是只要系統(tǒng)和應(yīng)用修補了漏洞,就完全不受影響。
同時,這種攻擊也非常容易被入侵檢測系統(tǒng)發(fā)現(xiàn)。在上面這個快餐店的例子里,就是第一種砸場子的方式。如果快餐店部署了保安,就不會讓帶著武器裝備的客人進店;當(dāng)然,砸了場子以后,犯人會很快被警察抓獲。
最后,分布式拒絕服務(wù)攻擊是拒絕服務(wù)攻擊的一種,從名字來看,其主要的特點在于分布式。實際上,分布式拒絕服務(wù)攻擊與早期的拒絕服務(wù)攻擊的原理也并不完全相同。
分布式拒絕服務(wù)攻擊的目的主要在于資源占用和資源消耗,它通過向服務(wù)提供者發(fā)起大量請求或者長時間占用資源的方式來達到拒絕服務(wù)的目的。
這種攻擊從表面上看都是合理的請求,因此無法通過系統(tǒng)升級和打補丁的方式阻止,也不能使用入侵檢測系統(tǒng)進行防御。
在上面這個快餐店的例子里,就是第二種砸場子的方式。
即使快餐店部署了保安,經(jīng)理報了警,他們對于坐在店里慢悠悠地吃薯條喝可樂的客人也是毫無辦法的。
到這里,我們已經(jīng)看到了分布式拒絕服務(wù)攻擊的精髓:利用分布式的客戶端,向服務(wù)提供者發(fā)起大量看似合法的請求,消耗或長期占用大量資源,從而達到拒絕服務(wù)的目的。