DDoS***原理

一、爲何要DDoS
隨着Internet互聯網絡帶寬的增加和多種DDoS***工具的不斷髮布,DDoS拒絕服務***的實施越來越 容易,DDoS***事件正在成上升趨勢。出於商業競爭、打擊報復和網絡敲詐等多種因素,導致很多IDC託管機房、商業站點、遊戲服務器、聊天網絡等網絡服 務商長期以來一直被DDoS***所困擾,隨之而來的是客戶投訴、同虛擬主機用戶受牽連、法律糾紛、商業損失等一系列問題,因此,解決DDoS***問題成爲 網絡服務商必須考慮的頭等大事。
一、什麼是DDoS
DDoS是英文Distributed Denial of Service的縮寫,意即分佈式拒絕服務,那麼什麼又是拒絕服務(Denial of Service)?可以這麼理解,凡是能導致合法用戶不能夠訪問正常網絡服務的行爲都算是拒絕服務***。也就是說拒絕服務***的目的非常明確,就是要阻 止合法用戶對正常網絡資源的訪問,從而達成***者不可告人的目的。雖然同樣是拒絕服務***,但是DDoSDOS還是有所不同,DDoS的***策略側重於 通過很多殭屍主機”(被***者***過或可間接利用的主機)向受害主機發送大量看似合法的網絡包,從而造成網絡阻塞或服務器資源耗盡而導致拒絕服務,分佈 式拒絕服務***一旦被實施,***網絡包就會猶如洪水般涌向受害主機,從而把合法用戶的網絡包淹沒,導致合法用戶無法正常訪問服務器的網絡資源,因此,拒絕 服務***又被稱之爲洪水式***,常見的DDoS***手段有SYN FloodACK FloodUDP FloodICMP FloodTCP FloodConnections FloodScript FloodProxy Flood;DOS則側重於通過對主機特定漏洞的利用***導致網絡棧失效、系統崩潰、主機死機而無法提供正常的網絡服務功能,從而造成拒絕服務,常見 DOS***手段有TearDropLandJoltIGMP NukerBoinkSmurfBonkOOB等。就這兩種拒絕服務***而言,危害較大的主要是DDoS***,原因是很難防範,至於DOS***, 通過給主機服務器打補丁或安裝防火牆軟件就可以很好地防範,後文會詳細介紹怎麼對付DDoS***。  三、被DDoS了嗎?
DDoS的表現形式主要有兩種,一種爲流量***,主要是針對網絡帶寬的***,即大量***包導致網絡帶寬被阻塞,合法網絡包被虛假的***包淹沒而無法到達 主機;另一種爲資源耗盡***,主要是針對服務器主機的***,即通過大量***包導致主機的內存被耗盡或CPU被內核及應用程序佔完而造成無法提供網絡服務。
如何判斷網站是否遭受了流量***呢?可通過Ping命令來測試,若發現Ping超時或丟包嚴重(假定平時是正常的),則可能遭受了流量***,此時若發現 和你的主機接在同一交換機上的服務器也訪問不了了,基本可以確定是遭受了流量***。當然,這樣測試的前提是你到服務器主機之間的ICMP協議沒有被路由器 和防火牆等設備屏蔽,否則可採取Telnet主機服務器的網絡服務端口來測試,效果是一樣的。不過有一點可以肯定,假如平時Ping你的主機服務器和接在 同一交換機上的主機服務器都是正常的,突然都Ping不通了或者是嚴重丟包,那麼假如可以排除網絡故障因素的話則肯定是遭受了流量***,再一個流量***的 典型現象是,一旦遭受流量***,會發現用遠程終端連接網站服務器會失敗。
相對於流量***而言,資源耗盡***要容易判斷一些,假如平時 Ping網站主機和訪問網站都是正常的,發現突然網站訪問非常緩慢或無法訪問了,而Ping還可以Ping通,則很可能遭受了資源耗盡***,此時若在服務 器上用Netstat -na命令觀察到有大量的SYN_RECEIVEDTIME_WAITFIN_WAIT_1等狀態存在,而ESTABLISHED很少,則可判定肯定 是遭受了資源耗盡***。還有一種屬於資源耗盡***的現象是,Ping自己的網站主機Ping不通或者是丟包嚴重,而Ping與自己的主機在同一交換機上的 服務器則正常,造成這種原因是網站主機遭受***後導致系統內核或某些應用程序CPU利用率達到100%無法迴應Ping命令,其實帶寬還是有的,否則就 Ping不通接在同一交換機上的主機了。
當前主要有三種流行的DDoS***:

1SYN/ACK Flood***:這種***方法是經典最有效的DDoS方法,可通殺各種系統的網絡服務,主要是通過向受害主機發送大量僞造源IP和源端口的SYNACK 包,導致主機的緩存資源被耗盡或忙於發送迴應包而造成拒絕服務,由於源都是僞造的故追蹤起來比較困難,缺點是實施起來有一定難度,需要高帶寬的殭屍主機支 持。少量的這種***會導致主機服務器無法訪問,但卻可以Ping的通,在服務器上用Netstat -na命令會觀察到存在大量的SYN_RECEIVED狀態,大量的這種***會導致Ping失敗、TCP/IP棧失效,並會出現系統凝固現象,即不響應鍵 盤和鼠標。普通防火牆大多無法抵禦此種***。
2TCP全連接***:這種***是爲了繞過常規防火牆的檢查而設計的,一般情況下,常規 防火牆大多具備過濾TearDropLandDOS***的能力,但對於正常的TCP連接是放過的,殊不知很多網絡服務程序(如:IISApache Web服務器)能接受的TCP連接數是有限的,一旦有大量的TCP連接,即便是正常的,也會導致網站訪問非常緩慢甚至無法訪問,TCP全連接***就是通 過許多殭屍主機不斷地與受害服務器建立大量的TCP連接,直到服務器的內存等資源被耗盡而被拖跨,從而造成拒絕服務,這種***的特點是可繞過一般防火牆的 防護而達到***目的,缺點是需要找很多殭屍主機,並且由於殭屍主機的IP是暴露的,因此容易被追蹤。
3、刷Script腳本***: 種***主要是針對存在ASPJSPPHPCGI等腳本程序,並調用MSSQLServerMySQLServerOracle等數據庫的網站系 統而設計的,特徵是和服務器建立正常的TCP連接,並不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的調用,典型的以小博大的***方法。一般來說, 提交一個GETPOST指令對客戶端的耗費和帶寬的佔用是幾乎可以忽略的,而服務器爲處理此請求卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對 資源的耗費是很大的,常見的數據庫服務器很少能支持數百個查詢指令同時執行,而這對於客戶端來說卻是輕而易舉的,因此***者只需通過Proxy代理向主機 服務器大量遞交查詢指令,只需數分鐘就會把服務器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛、ASP程序失效、PHP連接數據庫失敗、數據庫 主程序佔用CPU偏高。這種***的特點是可以完全繞過普通的防火牆防護,輕鬆找一些Proxy代理就可實施***,缺點是對付只有靜態頁面的網站效果會大打 折扣,並且有些Proxy會暴露***者的IP地址。
四、怎麼抵禦DDoS

對付DDoS是一個系統工程,想僅僅 依靠某種系統或產品防住DDoS是不現實的,可以肯定的是,完全杜絕DDoS目前是不可能的,但通過適當的措施抵禦90%DDoS***是可以做到的,基 於***和防禦都有成本開銷的緣故,若通過適當的辦法增強了抵禦DDoS的能力,也就意味着加大了***者的***成本,那麼絕大多數***者將無法繼續下去而放 棄,也就相當於成功的抵禦了DDoS***。以下爲筆者多年以來抵禦DDoS的經驗和建議,和大家分享!
1、     採用高性能的網絡設備

首先要保證網絡設備不能成爲瓶頸,因此選擇路由器、交換機、硬件防火牆等設備的時候要儘量選用知名度高、口碑好的產品。再就是假如和網絡提供商有特殊關 系或協議的話就更好了,當大量***發生的時候請他們在網絡接點處做一下流量限制來對抗某些種類的DDoS***是非常有效的。
2、   儘量避免NAT的使用

無論是路由器還是硬件防護牆設備要儘量避免採用網絡地址轉換NAT的使用,因爲採用此技術會較大降低網絡通信能力,其實原因很簡單,因爲NAT需要對地 址來回轉換,轉換過程中需要對網絡包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3、     充足的網絡帶寬保證

   網絡帶寬直接決定了能抗受***的能力,假若僅僅有10M帶寬的話,無論採取什麼措施都很難對抗現在的SYNFlood***,當前至少要選擇100M的共 享帶寬,最好的當然是掛在1000M的主幹上了。但需要注意的是,主機上的網卡是1000M的並不意味着它的網絡帶寬就是千兆的,若把它接在100M的交 換機上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等於就有了百兆的帶寬,因爲網絡服務商很可能會在交換機上限制實際帶寬爲10M 這點一定要搞清楚。
4、     升級主機服務器硬件

  在有網絡帶寬保證的前提下,請儘量提升硬件配置,要有效對抗每秒10 萬個SYN***包,服務器的配置至少應該爲:P4 2.4G/DDR512M/SCSI-HD,起關鍵作用的主要是CPU和內存,若有志強雙CPU的話就用它吧,內存一定要選擇DDR的高速內存,硬盤要盡 量選擇SCSI的,別隻貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價,再就是網卡一定要選用3COMIntel等名牌的,若是 Realtek的還是用在自己的PC上吧。
5、     把網站做成靜態頁面

大量事實證明,把網站儘可能做成靜態頁面,不 僅能大大提高抗***能力,而且還給******帶來不少麻煩,至少到現在爲止關於HTML的溢出還沒出現,看看吧!新 浪、搜狐、網易等門戶網站主要都是靜態頁面,若你非需要動態腳本調用,那就把它弄到另外一臺單獨主機去,免的遭受***時連累主服務器,當然,適當放一些不 做數據庫調用腳本還是可以的,此外,最好在需要調用數據庫的腳本中拒絕使用代理的訪問,因爲經驗表明使用代理訪問你網站的80%屬於惡意行爲。
6、     增強操作系統的TCP/IP

Win2000Win2003作爲服務器操作系統,本身就具備一定的抵抗DDoS***的能力,只是默認狀態下沒有開啓而已,若開啓的話可抵擋約10000SYN***包,若沒有開啓則僅能抵禦數百個,具體怎麼開啓,自己去看微軟的文章吧!

 

利用在 TCP/IP協議棧實現中信任IP碎片中的包的標題頭所包含的信息來實現***
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章