DoS、DDoS網路攻擊 A0953306 沈惇鈺 指導教授:梁明章
DoS攻擊 “Denial of Service”,「阻斷服務攻擊」 是一種利用合理的服務請求佔用過多的服務資源,從而使合法用戶無法得到服務回應的網路攻擊行為
DoS攻擊 難以進行事前預防 利用網際網路協定(TCP/IP)的設計弱點 待管理者在網路不通或系統效能大幅降低時,才驚覺已遭到阻斷服務攻擊
DoS攻擊 依據攻擊封包量的大小區分成軟體刺探(software exploits)跟洪水攻擊(flooding) 我們可大致將阻斷服務攻擊根據攻擊封包量的大小區分成軟體刺探(software exploits)跟洪水攻擊(flooding)兩大類,再針對洪水攻擊(flooding)類的攻擊依據攻擊來源的數量的多寡分成單一來源與多重來源
軟體刺探(Software Exploits) 利用存在於軟體或系統的瑕疵 透過傳送一個或是少量的封包到目標主機 使得應用程式或作業系統無法正確處理所送來封包中的資訊,而發生錯誤來達到癱瘓受害主機的目標。 例如:land攻擊、ping of death、Teardrop 這類阻斷服務攻擊通常是利用存在於軟體或系統的瑕疵,透過傳送一個或是少量的封包到目標主機,使得應用程式或作業系統無法正確處理所送來封包中的資訊,而發生錯誤來達到癱瘓受害主機的目標。
Land 攻擊 利用將 TCP 協定中 SYN 封包中的來源位置和目的地位址都改成受害主機的IP位址 以不合邏輯的封包在受害主機上產生無窮迴圈,使受害主機產生混亂,造成其處理網路封包的速度降低來達成阻斷服務攻擊 例如land 攻擊,是利用將 TCP 協定中 SYN 封包中的來源位置和目的地位址都改成受害主機的IP位址,以不合邏輯的封包在受害主機上產生無窮迴圈,使受害主機產生混亂,造成其處理網路封包的速度降低來達成阻斷服務攻擊。
Ping of Death攻擊 利用 ping 指令(透過送出 ICMP 來確認對方主機是否還活著),將超過正常長度的封包送到受害主機,由於作業系統本身無法處理這種變形封包,因此導致當機的狀況 此問題只存在較老舊的OS中 另外一種阻斷服務攻擊ping of death,主要是利用 ping 指令由於這是OS中對於ICMP處理的漏洞,因此部分的新版OS都已經針對這個問題作了修復。
Teardrop攻擊 利用IP層中封包分割重組間的漏洞,MTU 正常的TCP封包片段應是一個個以互相接續方式傳入目標主機,再由主機的IP層將其重組回原資料段。但若有經過刻意製造的不正常封包序列(如封包大小改變等),這些片段在目的地主機重組時,則可能造成一些系統當機。 在IP層中定義的封包分割和重組的規則為: 分割後的封包的大小必須小於傳輸介面的MTU(最大傳送單位), Teardrop攻擊就是利用這種分割重組間的漏洞而產生的攻擊方式。 Teardrop則是利用IP層實做上封包重組的漏洞,當封包經由網際網路傳送時,由於各個不同的網路協定最大傳輸單位(MTU)所定義的 長度不同,正常的TCP封包片段應該是一個個以互相接續的方式傳入目標主機,再由主機的IP層將其重組回原資料段。但如果有經過刻意製造的不正常封包序列(如封包大小改變等),則有可能會造成某些作業系統的當機或暫停服務。
防範 類似於對病毒或漏洞防範的手法 更新軟體或利用軟體廠商所提供的修補檔 防火牆過濾不必要的 ICMP 封包
單一來源洪水攻擊 主要透過消耗主機運算資源或頻寬資源來達成阻斷合法使用者存取主機資源的攻擊 例如:SYN Flood攻擊
SYN Flood攻擊 利用 TCP 連線時的三方交握(Three Way Handshaking) 攻擊者惡意送出許多TCP SYN封包給被攻擊端,而沒有後續連結的封包傳出時,被攻擊端的SYN queue因儲存太多正在等待連結的資訊而超過其容許量,因而導致暫停服務。 像 SYN Flooding 攻擊就是利用 TCP 連線時三方交握(Three-Way Handshaking)的問題,每一個攻擊封包都是正常合法的封包,但是如果攻擊者利用這個手段來對網站發出大量建立連線的需求,將使得系統的資源都消耗在建立連線的動作上,我們無法透過防火牆來封鎖這類的「合法」封包,即使我們透過入侵偵測系統等工具偵測出阻斷服務攻擊的發生,然後透過設定防火牆來將來自攻擊來源位址的封包阻擋在外,其大量的封包也可能造成防火牆效能的低弱、及對外網路的阻塞。
ICMP封包攻擊 利用消耗網路頻寬的方式 若攻擊者擁有的頻寬大於目標網路的頻寬,則攻擊者可輕易以大量封包,塞爆目標網路的頻寬,讓其使用者無法使用網路。 但若攻擊者所掌握的頻寬不足以塞爆目標網路,則可透過其他方式取得所需的頻寬,例如Smurt攻擊。 利用消耗網路頻寬的方式 假如攻擊者所擁的有頻寬大於目標網路的頻寬,那攻擊者可以輕易的以大量的封包,塞爆目標網路的頻寬,讓其使用者無法使用網路。但若攻擊者所掌握的頻寬不足以塞爆目標網路,攻擊者也可以透過其他方式取得所需的頻寬,例如Smurt攻擊
Smurt攻擊 假冒目標主機的 IP 位址向router發出廣播的ICMP Echo封包 當封包送到廣播位址後,同一個網路內的主機都會收到廣播的封包,並同時向受害主機送出相對應的回應封包,這些突然的大量封包會阻塞受害者的網路頻寬,使目標主機因為無法反應如此多的系統干擾而導致當機。 具有擴大的效應, 讓攻擊者可以取得足以發動阻斷服務攻擊的頻寬,其背後的原理是透過送出將來源位址假冒成目標主機的 IP 位址的 ICMP ECHO 封包到能造成擴大效應網路的廣播位址,當封包送到廣播位址後,同一個網路內的主機都會收到廣播的封包,並同時向受害 者主機送出相對應的回應封包,這些突然的大量封包會阻塞受害者的網路頻寬,所以只要攻擊者找足夠多的網段送出發動 Smurt 攻擊的封包 ,所產生的流量就足以掩沒目標主機,達成阻斷服務攻擊,Smurt 攻擊還有一個變形的 fraggle 攻擊,它是透過 UDP 來進行類似 Smurt 的廣播風暴攻擊。
多重來源洪水攻擊 在 2000 年 2 月 9 日,美國幾個著名的商業網站包含 Yahoo、eBay、CNN、Amazon、buy.com、E*TRAE 及 ZDNet,遭受駭客以「分散式阻斷攻擊」 (Distributed Denial of Service Attacks),使得正常使用者在這些網站遭受攻擊時無法連上這些網站。
DDoS攻擊 利用許多分散在世界各處的DoS agent(攻擊代理人,或稱執行者),在某一時刻對特定目標主機以前述各種攻擊手法的混和方式,將大量封包傳入目標網域,以阻絕被攻擊者的服務功能。 其手法特別之處是必須先選定一定數目的主機,入侵並植入其DDoS agent程式,並在攻擊發起時遠端操控它們的行為;攻擊原理和前述幾種攻擊相同。 目前常見的DDoS工具:TFN、Trinoo、TFN2K、Stacheldraht。分為:daemon 及 client
DDoS攻擊 Daemon:讓攻擊者置入其所攻陷的主機,並等著攻擊者指令發動攻擊 Client:位在攻擊者的主機上,負責將攻擊者所下的指令傳遞給各個 daemon 例如:ICMP flooding、UDP flooding、SYN flood、Smurt 攻擊
DDoS攻擊 每一台 daemon 主機以類似單一來源洪水攻擊的方式進行阻斷服務攻擊 分散式阻斷服務攻擊讓攻擊者可發動攻擊的來源分散在許多台主機上,使其發動攻擊的能量更大,且能有效的隱藏自己 讓透過防火牆過濾來自特定來源的阻斷服務攻擊的過程更加複雜,及事後追查元兇的工作更難以進行
防範 阻斷服務攻擊的特性:發動難度低、難以追蹤和防範 要求每個系統的管理員做好自己系統的安全防護,避免淪為攻擊者發動阻斷服務攻擊的跳板 適當的網路監控,針對不正常的網路行為事先加以注意以防範於未然 由於阻斷服務攻擊具有發動難度低、難以追蹤及防範等特性,讓阻斷服務攻擊的發生也越來越頻繁