DoS and DDoS

DoS(Denial-of-Service,阻斷服務)

host system cannot respond to real traffic,if they have an overwhelming number of incomplete connections
利用TCP/IP協定當初設計的缺失
攻擊的模式是一對一的方式
持續送出大量封包或是特異畸形的封包來癱瘓目標主機上的服務,輕則停止服務,重則當機

goal of dos
Render a network or computer incapable of providing normal service
警告或威脅對方
dos成功後替換對方網站,讓client連到假網站

types of dos attacks
DoS attack
DDos attack

……………………………………………………………. 

dos attack technic 
常見技巧如下  
透過廣播位置加倍擴大封包數量
 說明:假冒受害者發送大量封包到廣播位置,以便傳給網段所有電腦,所有電腦收到後回應給假冒來源,讓該來源接收極大的封包
 包括smurf,fraggle(udp flooding)
送出會讓目標無法正常處理的封包導致目標當機
 包括ping of death,teardrop,land
佔用連線秏盡目標資源使目標無法服務
 包括syn attack,ack attack,Script Flood
透過其他機器將流量(reflection)反射/(amplification)增量丟到受害主機
 包括dns reflection/amplification,ntp reflection/amplification 
other:
 包括buffer overflow attack,IGMP Nuker,Boink,Bonk,OOB,…等

refer
DNS攻擊 http://www.cc.ntu.edu.tw/chinese/epaper/0028/20140320_2808.html 
NTP攻擊 http://www.ithome.com.tw/node/85144 

…………………………………………………………..

smurf attack
a huge number of icmp echo reply flooding target host
1 to generate a large amount of ICMP echo traffic to a network broadcast address with a spoofed source ip set to a victim host
2 broadcast address在layer 2將該廣播資訊傳給它的子網路的所有主機
3 the network will be lots of ping replies flooding the spoofed host

fraggle attack
類似smurf,使用 udp
UDP Flood DoS攻擊:又稱Fraggle攻擊,用UDP protocol送出假造來源的UDP broadcast封包至目標網路,以產生放大的資料流

PS:
追捕smurf步驟:
1找到傳播者的 IP 位址空間,然後聯絡它們的網路管理者。記住,這些你所看到的這些封包是來自於傳播者,而非駭客本身。
2請求他們將針對受害網站的 IP 位址傳送資訊的來源的網路傳輸紀錄下來。這些就是偽造來源的網路資料封包。
3取得這些偽造來源的網路資料封包的 MAC 位址,然後請他們對這個 MAC 位址執行 show ip arp 的指令(如果使用的是 Cisco IOS 的話)。
4指令執行結果會顯示偽造來源的資料封包的 hop 的出處。
5找到誰控制那個 hop 出處的路由器,然後通知他們的網路管理者。
6重複步驟 2 到 5 直到找到一個直接連結你正在追蹤的 MAC 位址的路由器為止。

ping of death attack
送出超過65536bytes的icmp packet
早期機器對封包處理較不好,若機器無法處理則會當機
ps:現在攻擊成功率不高

Ping of Death:將Echo Request的Option Data塞入大量資料給對方主機.系統無法處理變形封包而造成當機

teardrop attack
overlapping packet fragments to confuse a target system and cause the system to reboot or crash
將過大封包丟給主機要求分段,但封包裡有奇怪的值,讓主機組合不起來,導致主機當機

利用分割重組間的漏洞,製造的不正常封包序列
利用IP封包重組的漏洞。當資料經由網路傳送,IP封包經常會被切割成許多小片段。
每個小片段和原來封包的結構大致都相同,除了一些記載位移的資訊。
Teardrop創造出一些IP片段,這些片段包含重疊的位移值。當這些片段到達目的地而被重組時,可能就會造成一些系統當機。

Land attack
用特殊 TCP封包傳送至目標,使其因無法判別而當機
會送出一連串的SYN封包給網路上的系統,並且利用”IP Spoofing”的技術讓系統以為這些封包都是他自己發送的
當系統在處理這些封包時,由於他自己並不能回應給自己,而造成系統當機。

syn attack
createing a high number of half-open connections
TCP connection requests floods a target machine is flooded with randomized source address & ports for the TCP ports
signature:a large number of syn packets appearing on a network without the corresponding reply packets
只丟syn,讓對方主機一直等,等到記憶體耗盡

syn flood(TCP SYN攻擊):
利用三向交握,送出許多TCP SYN封包給目標,等待連結的資訊超過其容許量,而導致暫停服務
當前最流行的DoS與DDoS的方式之一
利用TCP協議缺陷,發送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負荷或記憶體不足)的攻擊方式
SYN Timeout:讓伺服器重試一段時間後丟棄未完成的連接的時間,約30秒-2分鐘
ps:
ACK Flood:發送大量偽IP與連接埠的ACK數據包,消耗主機的存儲資源
SYN/ACK Flood攻擊:經典最有效的DDOS方法,可通殺各種系統的網絡服務
TCP全連接攻擊:為了繞過常規防火牆的檢查而設計的,用大量的TCP連接導致網站訪問非常緩慢甚至無法訪問

Script Flood attack
和伺服器建立合法TCP連接,不斷向腳本(ASP,JSP,PHP)提供查詢等大量耗費資料庫資源調用請求

…  

buffer overflow attack
Flooding the target network buffers with data traffic to reduce the bandwidth available to legitimate users

…………………………………………………………………………………………………………………………………

dos attack tools

常見的有
jolt2
bubonic.c
land and latierra
targa
blast20
nemesystr
panther2
crazy pinger
some trouble
udp flood
fsmax
slowhttptest

……………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………….

DDos(Distributed Denial of Service,分散式阻斷服務)

又稱為洪水式攻擊
多台分散的電腦做dos attack,攻擊的模式為多對一,多數係以遙控方式

characteristics of ddos attacks
大規模
難以偵測
難以阻擋,一但發動便很難停止

conduct a ddos attack常見步驟
1 wirte a virus that will send ping packets to a target network/websites
2 infect a minimum of (30,000) compuers with this virus and turn them into zombies
3 trigger the zombies to launch the attack by sending wake-up signals to the zombies or activated by certain data
4 the zombies will start attacking the target server until they are disinfected

常見的操作模式

agent handler model
attack發指令給一群handler,要求handler命令一群agent攻擊victim

irc-based model
attack從irc network下指令要求一群agent攻擊victim

……………………………………………….

ddos attack taxonomy
攻擊弱點分:
 協定攻擊:利用某個網路協定設計上的弱點或執行上的bug消耗大量資源,例如TCP SYN攻擊、對認證伺服器的攻擊等
 暴力攻擊:攻擊方發出的網路流量高於目標所能處理速度,大量正常的連線將消耗掉目標處理能力而無法使用服務
攻擊頻率分:
 持續攻擊:瞬間產生大量流量阻斷目標的服務,容易被偵測到
 變動頻率攻擊:從慢速漸漸增加或頻率高低變化,利用這樣的方式延緩攻擊被偵測的時間
依攻擊形態分:
 bandwidth depletion(流量攻擊):attacker針對頻寬攻擊,阻礙網路流量,讓user無法連到 server
 resource depletion(資源耗盡攻擊):attacker 針對主機攻擊,消耗系統資源,讓server無法服務user

bandwidth depletion:
flood attack:tcp,udp,icmp
amplification attack,smurf,fraggle

resource depletion:
protocol exploit attack:tcp syn attack,push+ack attack
malformed packet attack



攻擊技巧

flooding
attacker 或bot將大量的封包送給victim

amplification
attacker 傳送一個訊息到目地,該目地可將訊息放大
常見的目地有
broadcast address:attacker傳送一個ip到broadcast address,此address會將ip送給該network所有設備,會使封包增加
dns server:attacker送一個大約60byte的dns query到dns server,server最多可回覆512byte,會使流量增加

reflected
attacker 假冒來源ip傳訊息給目標,目標在回應給假冒ip
常見的回應有
icmp:attacker傳送假冒來源ip的icmp request到目標後,該目標會reply給假冒ip
tcp:attacker傳送假冒來源ip可送tcp syn,…等給目標後,該目標會和假冒ip做three way handshaking
dns:attacker傳送假冒來源dns query給目標後,dns server會回傳結果給假冒ip

ps:
reflective dns attack tool:ihateperl.pl

……………………………………………….

ddos attack tools
有些DDoS工具採多層次架構,可控制上千台電腦展開攻擊
攻擊程式分手動、半自動與自動攻擊

tfn(tribal flood network):好用
tfn2k:曾用來攻擊yahoo
shaft
trinity
knight
kaiten
mstream
trinoo
wintrinoo
t-sight
stracheldraht

……………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………….

reflected dos countermeasures

router port 179可block
將假冒ip block

tools for detecting ddos attacks
ipgrep
tcpdstat
findoffer

ddos countermeasures
從被攻擊目標往回推,調查攻擊是由管轄網路的哪些邊界路由器進來
攻擊目標是單一ip:改ip和DNS mapping或許可避開攻擊,這是最快速而有效的方式
攻擊手法單純:由產生的流量找出規則,利用路由器的 ACLs(Access Control Lists)或防火牆規則也許可阻擋
預防:透過網路上各個團體和使用者的共同合作,制定更嚴格的網路標準來解

three esential components:
1
detect and neutralize handlers:偵測是那邊來的,找出控制端
preventing secondary victims
2
detecting or preventing the attack
mitigating or stopping the attack
deflecting the attack
3
post attack forensics

detect and neutralize handlers
駭客會先在許多機器上放置DDoS的常駐攻擊程式,進而利用DDoS攻擊迫使網路主機癱瘓,因此為要有效防制DDoS攻擊,系統管理者只要能找出已經被放置這些常駐攻擊程式的網站主機,就能解決被DDoS攻擊的威脅。
偵測攻擊常駐程式tool:
IIS的Internet Scanner 6.01:能有效地掃描出TribeFlood Network的常駐攻擊程式,並且亦可協助找出網站漏洞,以避免該網站成為駭客進行DDoS攻擊的幫凶。
RealSecure 3.2.1:能夠偵測出在DDoS的發起主機與攻擊伺服器聯繫時的通訊,進而有效地阻止駭客啟動DDoS攻擊。
find_ddos:英國NIPC 針對ddos設計,能讓系統管理者針對自己的系統進行偵測,以確定是否曾被安裝了DDoS之類的攻擊程式

preventing secondary victims:
network service providers
individual users:install software patches,built in defenses

detecting or preventing the attack:
egree filtering:scanning the packet headers of ip packets leaving a network
入侵過濾(Ingress filtering)是一種簡單而且所有網路(ISP)都應該實施的安全策略。在你的網路邊緣(比如每一個與外網直接相連的路由器),應該建立一個路由聲明,將所有資料來來源IP標記為本網位址的資料包丟棄。雖然這種方式並不能防止DDoS攻擊,但是卻可以預防DDoS反射攻擊。
mib statistics

mitigating or stopping the attack
load balancing
throttling
drop request

deflecting the attack
使用honeypots
shadow real network resources
study attack
ps:需注意頻寬問題

post attack forensics
traffic pattern analysis
packet traceback
event logs

test tool:
doshttp tool:http flood dos testing software for windows

………………..

避免syn flood的做法
syn cookies
rst cookies
stack tweaking

SYN Cookie
防範syn flood中最著名的一种,对TCP服务器端的三次握手协议作一些修改,专门用来防范SYN Flood攻击的一种手段。
由D. J. Bernstain和 Eric Schenk发明
原 理:在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接。
SYN Cookie的原理比较简单。到实际的应用中,它有多种不同的实现方式。
一開始不在緩衝區中保留空間,利用 cookie 驗證客戶端的回應,驗證成功後才會在緩衝區中保留空間,非常損耗資源 (因為必須伺服器必須做加密hash)

RST Cookies
反向確認,送回一個假的 SYNACK 封包,應該收到 RST 回應,驗證此主機是合法的,不相容於 Windows 95

Stack Tweaking
複雜的方法,修改 TCP 協定堆疊,只是增加了攻擊的難度而不是變為不可能