要問網站和應用最怕什么攻擊,DDoS絕對名列前茅。特別是游戲、電商等對實時性要求較高的行業(yè),一旦被DDoS攻擊,訪問卡頓、業(yè)務中斷,很容易造成用戶流失、營業(yè)額下降。
DDoS,全稱Distributed Denial of Service,即分布式拒絕服務。其原理是通過對承載網站和應用的服務器發(fā)送大量無用請求,耗盡服務器CPU、內存等資源,讓服務器卡頓甚至奔潰,以至本來正常的用戶請求無法響應,即“拒絕”了正常的訪問。
舉個栗子,某面館A生意興隆,對面的面館D看不下去了,決定要搞一下A,于是花錢雇了100個人,每天在A家坐著,但又不點東西,正常的用戶進來一看,連坐的地方都沒有,趕緊到D去吃得了。
可見,DDoS攻擊的本質是:正常的用戶不能得到服務,都被惡意或者垃圾的連接堵塞了。
當然,真正的DDoS攻擊手段很多,但萬變不離其宗,都是利用TCP等協(xié)議棧或服務器本身的漏洞達成攻擊,比如業(yè)界典型的SYN Flood攻擊,就是利用了TCP協(xié)議的漏洞。
學計算機的同學應該對每年必考的TCP三次握手很熟悉:
第一次握手,客戶端向服務器發(fā)送一個SYN報文,就相當于用戶對服務器說:服務器,我要跟你建立TCP連接。
第二次握手,服務器向客戶端發(fā)送一個SYN+ACK報文,ACK是對第一次握手中SYN報文的確認,相當于說:好的,我同意建立連接。
第三次握手,客戶端向服務器發(fā)送一個ACK報文,確認第二次握手中的SYN報文被成功接,TCP連接成功建立,服務器和客戶端開始數據傳輸。
問題就出在第二、第三次握手間。惡意的客戶端如果一直不給服務器發(fā)送本來應該發(fā)送的ACK報文,服務器就會一直等待客戶端的報文,而且還會主動向客戶端發(fā)送SYN+ACK報文,并且等待30秒到2分鐘后,如果還是沒收到客戶端的ACK報文,服務器才會關閉連接。等待的過程也要耗費資源來保存第一、第二次握手產生的參數,攻擊者如果使用大量的惡意客戶端去連接服務器,但又不完成第三次握手,那就會把服務器的CPU和內存耗盡,進而達成攻擊目的。
所以呢,DDoS攻擊無論從技術上還是成本上,都很簡單粗暴,而且效果超好,真可謂“居家旅行、殺人滅口的必備良藥”,也就難怪這么多攻擊者喜歡用DDoS攻擊,而大家又這么怕DDoS攻擊了。
DDoS攻擊者需要發(fā)起很大的流量進行攻擊才有效,最起碼要比被攻擊的目標的帶寬大,比如某服務器的帶寬是200Mbps,那1Gbps的流量打過來,服務器肯定掛了。一般這些大流量來自2個地方,一個是有些黑產做的流量平臺,攻擊者向這些平臺租賃流量。幾年前曾出現過不少“50塊錢包打掛網站”的流量平臺;另一個是自己去攻擊機器,植入木馬,把這些機器變成可以隨意操控的“肉雞”(也稱“傀儡機”,顧名思義,就是被人控制的機器),用這些“肉雞”來組成僵尸網絡,遠程發(fā)送指令讓這些“肉雞”對目標發(fā)起攻擊。CNCERT在2018年共發(fā)現了140萬余臺肉雞,而這只是冰山一角。萬物互聯(lián)時代,每個攝像頭、每個手環(huán)、甚至家里的智能電冰箱、空調,都可能成為“肉雞”。
鑒于DDoS攻擊簡單粗暴的攻擊效果,業(yè)界也發(fā)展出了很多成熟的防攻擊手段,比如華為云的DDoS高防,其原理是當服務器被DDoS時,及時切換到一個受保護的IP上,這個IP能夠抵擋很大的流量,比如華為云的高防單IP最高可防御600Gbps的攻擊,總帶寬更達5Tbps。當大流量攻擊這個受保護的IP時,這個IP會把大流量牽引到云上的防御中心,中心會對惡意和正常流量進行標記和清洗,惡意的,阻斷或者丟棄;正常的,則送回服務器。這樣,對用戶和服務器來說,攻擊似乎就沒有發(fā)生過,因為惡意的流量都被防護中心“消化”掉了。
所以,大流量攻擊就相當于泥沙俱下、奔涌而來的大江大河,防御中心則相當于肚量大如海的蓄水湖,把這些流量統(tǒng)統(tǒng)吸收進來,然后讓干凈的流水慢慢流到下游的田地里,泥沙則被攔截住了。
從上面的敘述,也可以知道,一款DDoS高防產品好不好,核心是3點:
1、帶寬夠不夠大,能承受多大的流量攻擊;
2、清洗夠不夠準,不能把正常的清洗掉,惡意的放走了;
3、速度夠不夠快,不能半天判斷不出來流量的好壞,正常用戶也被晾在一邊了,出現卡頓。特別對游戲網站,不能出現用戶發(fā)出“進攻”操縱半天了,畫面還沒反應。
對應上述三點,華為云DDoS高防單IP最高可防御600Gbps的攻擊、總帶寬更達5Tbps;正常業(yè)務流量0誤殺;清洗延遲毫秒級,不卡頓,體驗好。