媳婦兒是一個根正苗紅的文科生,按理說她對IDC這種理科範圍內的技術知識應該一竅不通,但由於她那旺盛的求知慾,使她後來順理成章地入駐IDC公司,成為我的上司...
比如很久之前,她躺在沙發上刷微博,突然問了我一個問題,「什麼是web攻擊」?
阿西八,那會兒她還連IDC的門檻都沒入就問這麼高深的問題了,這要我怎麼跟她解釋呢?
作為一個IDC鐵直男,我打開了百度百科,照著上面乾巴巴地念到,「黑客利用網站作業系統的漏洞和Web服務程序的SQL注入漏洞等得到Web伺服器的控制權限,輕則篡改網頁內容,重則竊取重要內部數據,更為嚴重的則是在網頁中植入惡意代碼,使得網站訪問者受到侵害。」
媳婦眨巴著她那雙卡姿蘭大眼睛:「說人話」。
我只得動動我的小腦袋瓜,來給她解釋,「簡單解釋呢,就是黑客通過鑽系統或者網站的漏洞找茬」。
這種找茬,也有好幾種不同的方式。在媳婦的威(qu)逼(qu)利(nei)誘(yi)下,我從書房取出一張紙和一管筆,給她仔細地畫了起來。
DDoS(Distributed Denial of Service)攻擊
是指處於不同位置的多個攻擊者同時向一個或數個目標發動攻擊,或者一個攻擊者控制了位於不同位置的多臺機器並利用這些機器對受害者同時實施攻擊。由於攻擊的發出點是分布在不同地方的,這類攻擊稱為分布式拒絕服務攻擊,其中的攻擊者可以有多個。
媳婦說:「你舉個形象點的例子呀,這樣我怎麼可能聽得懂呢?」
我只好用筆在紙上給她畫了張圖出來,「你看,這張圖上是不是有很多坐著等吃飯的人啊?」
黑客僱傭了兩百個人去一家一百個座位的西餐廳中佔座但不乾飯、也不讓座,新來的客人無法入座吃飯;假如他源源不斷地僱傭人進來當託,就能把這家餐廳給擠爆,最終導致餐廳無法營業。
媳婦似懂非懂地點點頭,「道理我懂了,但假如運用到實際中,要怎麼進行DDoS攻擊呢?」
我狐疑地看了看媳婦兒:「你莫不是想去當黑客吧,問得這麼清楚?」
DDoS攻擊手段有:UDP類的Fraggle、Trinoo,TCP類的SYN Flood、ACK Flood,DNS Query Flood,ICMP Flood,Slowloris類等等。
UDP Fraggle
黑客向子網廣播地址發送源地址為受害網絡或受害主機的UDP包,目的埠號為 7(ECHO)或 19(Chargen),報文的源IP位址偽裝成受害對象的IP位址。這樣,廣播域中所有啟用了此功能的計算機都會向受害對象發送回應報文,從而產生大量的流量包,導致受害網絡的阻塞或受害主機崩潰。子網上沒有啟動這些功能的系統將產生一個ICMP不可達消息,仍然消耗帶寬。也可將源埠改為19(Chargen)、目的埠7(ECHO),這樣會自動不停地產生回應報文,其危害性更大。
UDP Trinoo
一個盜取來的帳號被用於編譯各種掃描工具、攻擊工具(如緩衝區溢出程序)、rootkit和sniffer、trinoo守護程序、主伺服器、入侵主機、目標主機清單等等。這個系統往往是一些擁有很多用戶、存在管理漏洞和具有高速連接速率(以進行文件傳輸)的大型主機系統,然後對一個大範圍的網絡進行掃描以確定潛在的入侵目標。最有可能的是那些可能存在各種遠程緩衝區溢出漏洞的主機,以便充分利用各種現成的rootkits和後門程序等。
在得到入侵主機清單後,編寫實現入侵攻擊、監聽TCP埠(通常為1524「ingreslock」)和連接到該埠以確定入侵成功的腳本程序。或者通過發送電子郵件到一個免費 WEB郵箱以確認已入侵該主機。
入侵完成後將產生一個「被控制」主機清單,這些主機將被用於放置後門、sniffer 或trinoo守護程序或 trinoo 主伺服器。
從已入侵系統清單中選出滿足建立trinoo網絡需要的主機,放置已編譯好的trinoo守護程序。
最後,運行DoS攻擊腳本,該腳本根據上面建立的被入侵主機清單,生成另外的腳本程序,在後臺以最快的速度自動安裝。腳本使用「netcat」將shell腳本發送到被入侵主機的 1524/TCP埠。
SYN Flood
攻擊者偽造大量無效IP,不斷與目標主機建立TCP連結,導致伺服器維護了一個非常大的連結等待列表,佔用大量系統資源,直至新連結無法建立。
這種攻擊是利用了TCP三次握手的異常處理機制即第三次握手,服務端在沒有收到客戶端ACK報文時,服務端會進行多次SYN+ACK重試,然後維護一個等待列表,而系統會為即將建立的TCP連接分配一部分資源。資源耗盡,系統也就無法再建立TCP連接。
ACK Flood
在TCP連接建立之後,所有的數據傳輸TCP報文都是帶有ACK標誌位的,主機在接收到一個帶有ACK標誌位的數據包的時候,需要檢查該數據包所表示的連接四元組是否存在,如果存在則檢查該數據包所表示的狀態是否合法,然後再向應用層傳遞該數據包。如果在檢查中發現該數據包不合法,例如該數據包所指向的目的埠在本機並未開放,則主機作業系統協議棧會回應RST包告訴對方此埠不存在。
當攻擊程序每秒鐘發送ACK報文的速率達到一定的程度,才能使主機和防火牆的負載有大的變化。當發包速率很大的時候,主機作業系統將耗費大量的精力接收報文、判斷狀態,同時要主動回應RST報文,正常的數據包就可能無法得到及時的處理。這時候客戶端的表現就是訪問頁面反應很慢,丟包率較高。
DNS Query Flood
黑客發送大量偽域名給目標伺服器解析(這些域名均為無效域名),導致DNS伺服器耗用大量資源去處理這些無效域名,造成DNS解析域名超時。
ICMP Flood
攻擊原理和ACK Flood原理類似,屬於流量型的攻擊方式,也是利用大的流量給伺服器帶來較大的負載,影響伺服器的正常服務。
當 ICMP ping 產生的大量回應請求超出了系統的最大限度,以至於系統耗費所有資源來進行響應直至再也無法處理有效的網絡信息流。
簡單說攻擊者向一個子網的廣播地址發送多個ICMP Echo請求數據包,並將源地址偽裝成想要攻擊的目標主機的地址。然後該子網上的所有主機均會對此ICMP Echo請求包作出答覆,向被攻擊的目標主機發送數據包,使該目標主機受到攻擊,導致網絡阻塞。
Slowloris
利用web server的漏洞(或者說是參數配置不合理)直接造成拒絕服務。
提起攻擊,第一反應就是海量的流量、海量的報文;但有一種攻擊卻反其道而行之,以慢著稱,以至於有些攻擊目標被打死了都不知道是怎麼死的。
這就是慢速連接攻擊,最具代表性的是Slowloris。Slowloris是在2009年由著名Web安全專家RSnake提出的一種攻擊方法,其原理是以極低的速度往伺服器發送HTTP請求。由於Web Server對於並發的連接數都有一定的上限,因此若是惡意地佔用住這些連接不釋放,那麼Web Server的所有連接都將被惡意連接佔用,從而無法接受新的請求,導致拒絕服務。
媳婦兒恍然大悟地拍了一下被子,被子的HP-1,「聽起來好像很高大上的樣子,這麼說只要一被攻擊就沒轍了?」
我無語地望著她,「那肯定不是啊,俗話說得好,『上有計策,下有對策』,只要網盾不倒,那肯定是有各種高防類型存在的。」
媳婦:「高防?高級防禦?」
你永遠不會知道網絡對面的是人是狗。
出門在外,當然還是謹慎一點為好,尤其是像網際網路這麼鱗次櫛比的地方更應該小心為上策。
高防是針對web攻擊而產生的一系列網盾防護服務,類似於網絡盾牌一樣守護著伺服器安全,這些服務都有著自己獨特鮮明的優勢。
高防伺服器:
一般來說,我們所接觸到的高防伺服器都是指的物理防禦,是直接在伺服器的硬體上面架設了一層防火牆,這樣的硬體防火牆無疑就像是伺服器的一層「盔甲」,可以起到良好的防禦作用。一般IDC行業中談及的高防伺服器,就是這類物理防禦上面的高防伺服器,能夠使得用戶通過硬體上面的提升,享受到更好的防禦性。
圖中的這個「100G」、「200G」甚至「1000G」,指的不是我們日常生活中的網速5Gps,而是個體防禦流量:假如黑客發來100G攻擊,恰好你用的是100G防禦,那就剛剛好可以扛住;假如對方突然增加了攻擊流量,你的伺服器依然GG,這時候就要加防禦。
高防IP:
假如網際網路是一個國家,那麼每臺伺服器就像一座房屋,每個房子都會有自己的門牌號,無論是訪問還是管理都需要通過IP進行。如果黑客想對目標主機進行DDoS攻擊,就需要知道人家的IP位址。
高防機房提供IP段給用戶,把域名解析到高防IP上,同時在高防上設置轉發規則。假如這個IP出現異常流量,高防機房中的硬體防火牆牽引系統會對流量進行智能識別、過濾惡意流量,保證正常流量能夠對伺服器發出請求並得到正常處理。
除了DDoS攻擊之外,高防IP對於防禦各種web攻擊尤其是CC攻擊都具備有效的防禦能力。
雲WAF
用戶不需要在自己的網絡中安裝軟體程序或部署硬體設備,就可以對網站實施安全防護,它的主要實現方式是利用DNS技術,通過移交域名解析權來實現安全防護。用戶的請求首先發送到雲端節點進行檢測,如存在異常請求則進行攔截否則將請求轉發至真實伺服器。
通俗來講,雲WAF就是基於雲端的web應用防火牆,不需要用戶安裝,只需要把域名進行解析到相關地址,就能使用雲WAF的防護功能。
和高防IP一樣,也可以有效抵禦CC攻擊,不同之處是雲WAF的抵禦能力較高防IP低一些。
媳婦興奮地誇我,「你講得太好了,我也好想去當個網絡安全工程師,然後到處跟人吹!」
我拍拍她的肩,語重心長地勸到,「老老實實當你的小會計就好,不要總想著搞事情,理科的事咱不做,啊。」
我草率了,竟然忘了媳婦兒是一個非常好強的人...
在聽了我這番苦口婆心的勸說後,她不僅以為我是在挑釁她,而且還覺得公司裡有我的小三,於是偷偷去攻城獅修行,苦練網絡安全技術,最後受網盾青睞一躍成為我的部門領導。
江湖上到處都有她的蹤跡,卻不知其人所在...