拒绝服务攻击详解
目錄
一、拒絕服務攻擊的原理
二、拒絕服務攻擊的分類
1、資源消耗
2、系統或應用程序缺陷
3、配置修改
三、典型的拒絕服務攻擊
1、Ping of Death
2、泛洪攻擊
(1)SYN泛洪
(2)ACK泛洪攻擊
(3)TCPLAND攻擊
(4)UDP泛洪攻擊
3、Smurf攻擊
四、分布式拒絕服務攻擊DDoS
1、組成
2、流程
3、特點
五、DoS/DDoS攻擊的檢測與防御
1、檢測
2、防御困難的原因
3、防御方法
一、拒絕服務攻擊的原理
●拒絕服務(DoS,Denial of Service)是一種典型的破壞服務可用性的攻擊方式。它不以獲得系統權限為目的。
●根據NIST SP 800-61的定義,拒絕服務是一種通過耗盡CPU、內存、帶寬或磁盤空間等系統資源,來阻止或削弱對網絡、系統或者應用程序的授權使用的行為。
●拒絕服務攻擊通常利用傳輸協議弱點、系統漏洞、服務漏洞對目標系統發起大規模進攻,利用超出目標處理能力的海量合理請求數據包消耗可用系統資源、帶寬資源等,造成程序緩沖區溢出錯誤,致使其無法處理合法用戶的請求,無法提供正常服務,最終致使網絡服務癱瘓,甚至系統死機。
●早期的拒絕服務攻擊主要是利用TCP/IP協議或應用程序的缺陷,使得目標系統或應用程序崩潰。
? 當前的拒絕服務攻擊試圖通過耗盡系統資源來達到目標系統不能為授權用戶提供服務的目的。
二、拒絕服務攻擊的分類
1、資源消耗
●可消耗的資源包括目標系統的系統資源(包括CPU資源、內存資源、存儲資源等)和網絡帶寬
●如:發送大量的垃圾數據包占用網絡帶寬,導致正常的數據包因為沒有可用的帶寬資源而無法到達目標系統;發送大量的垃圾郵件,占用系統磁盤空間;制造大量的垃圾進程占用CPU資源等。
2、系統或應用程序缺陷
●主要利用網絡系統或協議的漏洞來完成,一個惡意的數據包可能觸發協議棧崩潰,從而無法提供服務。
●這類攻擊包括死亡之Ping(Ping of Death)、淚滴攻擊(Teardrop)、Land攻擊、Smurf攻擊、IP分片攻擊、UDP泛洪攻擊等。
3、配置修改
●修改系統的運行配置,導致網絡不能正常提供服務。
●如:修改主機或路由器的路由信息、修改注冊表或者某些應用程序的配置文件。
三、典型的拒絕服務攻擊
1、Ping of Death
●ICMP報文長度固定(64KB),很多操作系統只開辟64KB的緩沖區用于存放ICMP數據包。如果ICMP數據包的實際尺寸超過64KB,就會產生緩沖區溢出,導致TCP/IP協議堆棧崩潰,造成主機重啟或死機,從而達到拒絕服務攻擊的目的。
●通過ping命令的-1選項可以指定發送數據包的大小。如果設置的大小超過了緩沖區大小將觸發協議棧崩潰,如:
ping -1 65540 192.168.1.1●現在的操作系統已經修復了該漏洞,當用戶輸入超出緩沖區大小的數值時,系統會提示用戶輸入范圍錯誤。
2、泛洪攻擊
泛洪(Flooding)攻擊是一種常見的依靠大流量來挫敗目標系統的一種攻擊方式。
(1)SYN泛洪
●三步握手過程:
●原理:SYN泛洪利用的是TCP協議的三步握手機制,攻擊者利用偽造的IP地址向目標系統發出TCP連接請求,目標系統發出的響應報文得不到被偽造IP地址的響應,從而無法完成TCP的三步握手,此時目標系統將一直等待最后一次握手消息的到來直到超時,即半開連接。如果攻擊者在較短的時間內發送大量偽造的IP地址的TCP連接請求,則目標系統將存在大量的半開連接,占用目標系統的資源,如果半開連接的數量超過了目標系統的上限,目標系統資源耗盡,從而達到拒絕服務的目的。
●常用工具:hping3。hping是面向命令行的用于生成和解析TCP/IP協議數據包匯編/分析的開源工具,支持TCP、UDP、ICMP、RAW-IP協議,具有跟蹤路由模式。使用hping3可以很方便構建拒絕服務攻擊。如:以下命令將實現對192.168.1.1主機進行SYN泛洪攻擊:
hping -c 10000 -d 120 -S -p 80 --flood --rand-source 192.168.1.1 //-c 10000:表示參數數據包數據量為10000 //-d 120:指定數據包大小為120 //-S:指定發送SYN數據包 //-p 80:指定端口號為80 //--flood:指定進行防洪,即盡可能快的發送數據包 //--rand-source:指隨機化發送數據包的源地址發起攻擊后可以通過Windows任務管理器看到攻擊效果,CPU的占用率幾乎達到了100%。
●針對SYN泛洪的防御:
A.縮短SYN Timeout時間
可以使得攻擊者偽造的SYN還沒有達到目標系統上限時就超時,半開連接被丟棄,從而釋放部分被占用的系統資源。
B.設置SYN Cookie
給每個請求連接的IP分配一個Cookie,如果短時間內連續收到某個IP的重復SYN報文,就認定是攻擊行為,丟棄來自該IP地址的數據包。
C.負反饋策略
一旦SYN半連接的數量超過系統中TCP活動半連接最大連接數的閾值,系統將認為受到攻擊并作出反應:減少SYN Timeout時間、減少SYN-ACK的重試次數、自動對緩沖區中的報文進行延時等措施。
D.退讓策略
SYN泛洪攻擊的缺陷是一旦攻擊開始,將不會再進行域名解析。服務器受到攻擊后迅速更換IP地址,那么攻擊者攻擊的將是一個空的IP地址,而防御方只要將DNS解析更改到新的IP地址就能在很短的時間內恢復正常用戶訪問。為迷惑攻擊者,甚至可以放置一臺“犧牲”服務器讓攻擊者滿足于攻擊的效果。(蜜罐技術)
E.分布式DNS負載均衡
將用戶的請求分配到不同IP的服務器主機上。
F.防火墻
識別SUN泛洪攻擊所采用的攻擊方法,并將攻擊包阻擋在外。
(2)ACK泛洪攻擊
●原理:與SYN泛洪類似,不同的是攻擊者直接偽造三步握手的最后一個ACK數據包。目標系統收到該數據包后會查詢有沒有該ACK對應的握手消息。因為沒有前期握手過程,所以目標系統查詢后會回復ACK/RET。該過程消耗目標系統資源,當攻擊者發送大量的偽造的ACK數據包時,可能會耗盡系統資源,從而導致拒絕服務。
(3)TCPLAND攻擊
●原理:TCPLAND(Local Area Network Denial Attack)攻擊同樣利用了TCP的三步握手過程。通過向目標系統發送TCP SYN報文而完成對目標系統的攻擊。與正常的TCP SYN報文不同的是,LAND攻擊報文的源IP地址和目的IP地址相同,都是目標系統的IP地址。因此,目標系統接收到這個SYN報文后,就會向該報文的源地址(目標系統本身)發送一個ACK報文,并建立一個TCP連接,即目標系統自身建立連接。如果攻擊者發送了足夠多的SYN報文,則目標系統的資源就會耗盡,最終造成DoS攻擊。
●針對LAND攻擊的檢測:只要判斷網絡數據包的源/目標地址是否相同即可。可以通過防火墻設置適當的防火墻過濾規則(入口過濾)來防止該類攻擊。
(4)UDP泛洪攻擊
●原理:攻擊者將UDP數據包發送到目標系統的服務端口上,通常是診斷回送服務Echo,因為此服務一般默認開啟。若目標系統開啟了此服務,就會回應一個帶有原始數據內容的UDP數據包給源地址主機。若目標系統沒有開啟此服務,就會丟棄攻擊者發送的數據包,可能會回應ICMP的“目標主機不可達”類型消息給攻擊者。但是無論服務有沒有開啟,攻擊者消耗目標系統鏈路容量的目的已經達到。幾乎所有的UDP端口都可以作為攻擊目標端口。
3、Smurf攻擊
Smurf攻擊是發生在網絡層的著名DoS攻擊,該攻擊結合了IP欺騙和ICMP響應,使大量網絡傳輸充斥目標系統,是一種典型的放大反射攻擊。
●原理:因為目標系統會優先處理ICMP報文而導致無法為合法用戶提供服務。為了使攻擊有效,Smurf利用了定向廣播技術,即攻擊者向反彈網絡的廣播地址發送源地址為被攻擊者主機IP地址的ICMP數據包。因此反彈網絡會向被攻擊者主機發送ICMP響應數據包,從而淹沒被攻擊主機。
●例:被攻擊者主機的IP地址為10.10.10.10。攻擊者首先找到一個存在大量主機的網絡(反彈網絡),并向其廣播地址(192.168.1.255)發送一個偽造的源地址為被攻擊主機的ICMP請求分組。路由器收到該數據包后,會將該數據包在192.168.1.0/24中進行廣播。收到廣播的所有192.168.1.0/24網段的主機都會向10.10.10.10主機發送ICMP響應。這會導致大量數據包被發往被攻擊主機10.10.10.10,從而導致拒絕服務。
四、分布式拒絕服務攻擊DDoS
分布式拒絕服務攻擊(DDoS,Distributed Denial of Service)是在Dos基礎上產生的,也是目前威力最大的DoS攻擊方法。DDoS攻擊將大量計算機(傀儡主機、僵尸網絡、botnet)聯合起來對一個或多個大型站點發起DoS攻擊,從而提高了DoS的威力。
1、組成
DDoS一般都是基于客戶機/服務器模式。DDoS攻擊程序一般由客戶端、服務端和守護程序組成。客戶端也稱攻擊控制臺,即攻擊者發起攻擊的主機,攻擊者一般不需要直接控制守護程序,而是通過服務器端來控制攻擊過程,這樣更有利于隱藏自己。
服務器端也稱主控端,使一些攻擊者已經入侵成功并可以實施控制的主機。服務器端安裝的程序可以接受來自攻擊控制臺發來的指令,并將這些指令發送到守護程序所在主機。
守護程序所在主機稱為攻擊代理,其同樣是被攻擊者入侵并控制的一部分主機,在其上安裝攻擊性程序,可以接收來自服務器端的指令,并向目標系統發起攻擊。
2、流程
首先需要在互聯網上尋找有漏洞的主機并實施入侵,然后在其中安裝后門程序使其成為傀儡/僵尸主機(由大量僵尸主機組成的網絡稱為僵尸網絡)。攻擊者控制的僵尸網絡里面的主機越多,DDoS攻擊的威力越大。
3、特點
●分布性
通過分布在不同地點協同發起攻擊
●隱蔽性
DDoS通過傀儡主機發起攻擊,對于真正發起攻擊的攻擊者而言具有很好的隱蔽性,導致追蹤攻擊者更為困難
●攻擊威力大
DDoS攻擊的危害性非常巨大,除了會造成攻擊目標服務能力下降外,還會占用大量的網絡帶寬,造成網絡擁塞,威脅到這個網絡的安全運行。
五、DoS/DDoS攻擊的檢測與防御
1、檢測
●出現大量的DNS PTR查詢請求
●超出網絡正常工作時的極限通訊流量
●特大型的ICMP和UDP數據包
●不屬于正常連接通訊的TCP和UDP數據包
●數據段內容只包含文字和數字字符(如:沒有空格、標點和控制字符)
2、防御困難的原因
●定位攻擊者不容易,因為Internet上絕大多數網絡都不限制源地址,即偽造源地址非常容易,因此很難溯源找到攻擊控制端的位置。且各種反射式攻擊導致無法定位攻擊者。
●如果攻擊者構造足夠大的合法流量到達目標網絡,那么流量可能會使目標系統的網絡連接被淹沒,從而限制其他想要連接到目標系統的合理請求。
3、防御方法
●進行合理的帶寬限制:限制基于協議的帶寬。如:端口25只能使用25%的帶寬,端口80只能使用50%的帶寬。
●運行盡可能少的服務,只允許必要的通信
●及時更新系統并安裝系統補丁
●封鎖惡意IP地址
●增強系統用戶的安全意識,避免成為傀儡主機。如果攻擊者無法入侵并控制足夠數量的傀儡主機,則DDoS就無法進行。
●建立健全DoS/DDoS攻擊的應急響應機制。組織機構應該建立相應的計算機應急響應機制,當DoS/DDoS攻擊發生時,應迅速確定攻擊源,屏蔽攻擊地址,丟棄攻擊數據包,最大限度地降低損失。
總結
- 上一篇: 利比亚行动
- 下一篇: 基于单片机的多功能电子医药盒设计