常見的DOS攻擊分為三類:
帶寬攻擊、協議攻擊和邏輯攻擊。
帶寬攻擊:是最常見的攻擊,攻擊者使用大量的垃圾數據流填充目標的網絡鏈路。攻擊流量可以基於TCP、UDP\ICMP協議的報文。包括UDP洪水攻擊(flooding)、Smurf攻擊和Fraggle攻擊等
(1)UDP洪水指向目標的指定UDP端口發送大量無用UDP報文以占滿目標帶寬;
(2)Smurf攻擊指攻擊者偽造並發送大量源ip地址為受害主機ip地址,目標地址為廣播地址的ICMP Echo請求報文;
(3)Fraggle攻擊時Smurf的編寫,它使用UDP應答而不是ICMP報文,基於UDP的Chargen或Echo協議實現,他們分別使用DUP端口19和7,當攻擊者向網絡中的所有主機發送目標端口是19或7的UDP求報文時,開始Chargen和Echo服務的主機會發送應答報文給源地址,從而可能造成源地址主機的帶寬被耗盡。
協議攻擊:利用網絡協議的設計和實現漏洞進行的攻擊,典型實例包括SYN洪水攻擊、淚滴攻擊(Tear Drop)、死亡之Ping(Ping of Death)和land攻擊等。
(1)SYN洪水攻擊:發送大量偽造的TCP連接請求,使得目標主機用於處理三路握手連接的內存資源耗盡,從而停止TCP服務。
(2)淚滴攻擊(Tear Drop):利用IP協議有關切片的實現漏洞,向目標主機發送分成若干不同分片的IP報文,但是不同分片之間有重疊,如果目標系統無法正確識別此類畸形分片,在重組這些分片時容易發生錯誤導致系統崩潰,從而停止服務;
(3)死亡之Ping(Ping of Death):指早期操作系統在實現TCP/IP協議棧時,對報文大小超過64k字節的異常情況沒有處理。超過64k的報文,額外的數據就會被寫入其他內存區域,從而產生一種典型的 緩沖區溢出攻擊。
邏輯攻擊:利用目標系統或者服務程序的實現漏洞發起攻擊
DOS攻擊具有如下特點:較難確認、十分隱蔽、資源限制
檢測是否發生DOS攻擊:檢測到短時間內出現大量報文、cpu利用率突然增加、主機長時間無響應、主機隨機崩潰。
DOS防御目前只有有效的檢測手段,沒有特別有效的防范措施和解決方案,通常需要結合多種網絡安全專用設備和工具組成防御體系,其中包括防火牆,基於主機的入侵檢測系統,基於特征的網絡入侵檢測系統和網絡異常行為檢測器等
DDOS原理和防御:
DDOS原理:單一的DOS攻擊時一對一的方式,當攻擊目標的配置不高時,攻擊效果比較顯著,但是當目標是大型服務器時,如商用服務器等,那么使用一台電腦攻擊則達不到預定效果,此時使用DDOS攻擊,操作墮胎主機向目標主機發起攻擊,當同時參與攻擊的服務器有足夠數量和性能時,受到攻擊的主機資源就會很快耗盡,無法提供服務。DDOS是實施最快、攻擊能力最強並且破壞性最大的攻擊方式。
在DDOS中通常會包括以下三種角色:
攻擊者:使用一台主機作為主控制平台,操作整個攻擊過程,並向主控端發布攻擊命令。
主控端:攻擊者預先控制的主機,這些主機用於控制其他的代理主機,主控端負責接受來自攻擊者的攻擊指令,並分發到它控制的代理主機。根據代理端的規模可能存在多台主控端。
代理端:也是攻擊者預先控制的主機,負責運行攻擊程序,接受主控端轉發的指令,也是攻擊的執行者。這些主機被稱為”僵屍網絡“或者”肉雞“。
DDOS防御:當前對於DDOS的防御主要從兩方面展開,首先就是從基礎設施方面的升級,來緩解攻擊,如提高帶寬、增強CPU性能等,二是網絡邊界采用專用的DDOS檢測和防御技術。檢測和防御技術較為有效的方法主要有:
(1)動態挑戰算法:
防御工具對傳輸層和應用層協議棧行為進行模擬,作為目標主機和攻擊主機之間的代理,對客戶端發送挑戰報文,只有完成挑戰認證的報文才運行訪問真正的目標主機。常用的動態挑戰算法有SYN Cookie技術和DNS Cookie技術。
(2)多層次限速:
從不同粒度和不同協議層次,對IP報文的吞吐量進行限制,如基於源IP或者目標IP、就有傳輸層和應用層協議,這是對帶寬型攻擊常用的防護方法,用於抵御SYN洪水、UDP Flood和ICMP Flood。
(3)訪問控制:
實現網絡層、傳輸層和應用層等各個層次的不同訪問控制策略。如對於HTTP協議,可以對報文的URL、user-agent和Cookie等參數設置不同策略決定對具體報文時丟棄、限速還是允許;對u有DNS協議,可以對DNS查詢的名字、類型、RR記錄設置相關策略。
(4)行為分析和信譽機制
基於數據分析技術對IP報文的行為和特征建模分析,簡歷通用特征庫,包括IP、URL和上傳下載的文件信息,提取可以報文的特征指紋,從而在網絡邊界自動檢測並丟棄可以的DDOS攻擊報文,此類技術對於僵屍網絡的防御較為有效。