# DDos
# 前述
* 通過向目標網站或服務發送大量流量或請求,使其無法正常運作。
* 使用大量的連線請求,導致正常用用戶無法正常使用服務
* 攻擊前的準備:
攻擊者首先會收集目標網站或服務的資訊,例如IP位址、網站結構、api protocal、架設平台、連線機制等。
* Botnet:
攻擊者通常會使用惡意程式或惡意連接來控制僵屍裝置或計算機。攻擊者可能會通過利用漏洞、社交工程或其他方式來入侵目標裝置,以便在不被發現的情況下將其加入到其攻擊軍團中。可以透過直接購買的方式取得。
* 發動攻擊:
一旦攻擊者控制了足夠的僵屍裝置或計算機,他們會發起大量的流量或請求來淹沒目標網站或服務。攻擊者可能會使用多種攻擊手段
## DDos目的語影響
* 癱瘓主機,拖慢主機,造被攻擊方的服務效能或主機效能明顯降低,造成服務上或營業上的損失。
* 降低偵測設備的敏感度:網路部屬中,在偵測階層的IDPS或是XDR為保持網路流量的暢通,加上DDos本身的封包其實對**接收端口堵塞**以外並沒有其他損害,會足見放寬對此特徵的payload,增加誤判機率,進而從中夾帶有惡意的package。
## DDos攻擊矩陣
| Attack Metric | Features |
| ----------------------------- | ---------------------------------------------------- |
| Automation attribute | Manual, semi-automatic, automatic |
| Targeted weakness | Brute force, semantic |
| Validity of source address | Spoofed, valid |
| Rate dynamics | Constant, variable |
| Characterization possibility | Characterizable, non-characterizable |
| Agent set persistence | Variable, constant |
| Choice of victim | Infrastructure, resource, host, application, network |
|Intended effect on the victim |Degrading, disruptive|
reference: [IOP Conference Series: Materials Science and Engineering: Distributed Denial of Service Attacks and Defense Mechanisms by Dan Tang, Xiaohong Kuang](https://iopscience.iop.org/article/10.1088/1757-899X/612/5/052046/pdf)
## 針對OSI的攻擊方式
| 種類 | 概述 | 相關議題 |
| ---------------- |:------------------------------------------------------------------------------------------------ |:------------------------------------------ |
| Smurf attack | 使用大量偽造icmp封包,以廣播方式向目標主機以外的主機進行發送,造成目標主機接收過多的封包導致癱瘓 | ICMP, Echo-Reply, Package Header |
| TCP/SYN Flood | 在建立TCP通道時在ack階段時來源主機不對接收端主機產生回應,導致接收端主機保留建立的TCP資源占用 | TCP 3HS, SYN flooding. SYN Cookie,IPS, WAF |
| UDP Flood Attack | 單純透過大量的UDP封包到目標主機,造成阻塞。 |ping、 LOIC、 UDP Unicorn、 Nemesis |
| Teardrop | 發送端發送破碎或重複的Tcp封包,Tcp封包重疊或難以重組,再重組過程中過於艱難導致崩潰 | IP reassembly, PPP |
| Ping of Death | Ping的封包大小會比預期得Ping封包還要大,使接收端無法正常接收,重組導致崩潰 | ICMP data size, IPv4 Max Package size |
| Land Attack | 偽造發送封包中的來源主機片段,將其更改為與發送接收端IP相同,導致接收端主機自我問答。 | Attack Packet,Source Code Injection |
| Ping Flood | 以Ping的方式造成目標主機癱瘓。Ping中除了ICMP外還有可能有Udp,Tcp和RAW-IP四總混和。 |hping3 |
| Nuke attack | 透過icmp封包本身,形成巨型icmp封包,或是修改封包時間標籤,造成目標主機混亂導致崩潰。 | icmp, ICMP Payload Length、Error Handling、Time Exceeded |
[HoneyMesh: Preventing Distributed Denial of
Service Attacks using Virtualized Honeypots](https://arxiv.org/ftp/arxiv/papers/1508/1508.05002.pdf)
## DDos會搭配的攻擊手段
### 手段一: DNS放大
大多數的人再透過網路瀏覽資料時,大多是透過網域名進行上網,由於網路上的網站位置是以ip address的形式存在於網路上,因此需又透過DNS來進行轉址。
* DNS功能(Domain Names Server):
1.提供網域轉換為ip address
2.根據你所在的區域給予符合該區域的ip address進行上網
補充資料:
RFC 1034 - From IETF, definition of Domain format, Zoon, Registar, Caching
RFC 1035 - definition of Security , Search, Echo Code and Type
RFC 2181 - From IETF, some fuzzy and controversy solution, Caching, Zones, RRs, Messages, Security
* DNS 運作原理
使用情境: 造透過瀏覽器瀏覽Google search 頁面,透過瀏覽器將domain name "google.com"輸入到網誌列中。
1.瀏覽器以本地端的DNS cache查詢是否有對應的domain name,若是沒有會繼續以下步驟。
2.應用層接收到透過瀏覽器會製作DNS的package,domain name為google.com,傳輸協定為udp。
```
|DNS|google.com|
```
3.傳輸層接收應用層的package將,以udp的通訊協定將package包裝,並protocal為53。
```
|UDP-53|DNS|google.com|
```
4.網路層再將destination ip 與 source ip封裝到package。
```
|192.168.0.101|192.168.0.1|UDP-53|DNS|google.com|
```
5.實體層將mac封裝到package發送到分享器,再由分享器發送到DNS。
```
|fe80::c638:56a1:1b26:7fcb%76|192.168.0.101|192.168.0.1|UDP-53|DNS|google.com|
```
6. DNS接收到package後,優先查詢Caching,若查無再向上查詢(DNS查詢迭帶)
7. 最終DNS會得知ip address,將查詢結果依照原路線進行回傳domain name與ip,並增加ttl值;且傳送ip位置給予初提出request的來源。
ttl: time to life: 此資料要保存的時間,單位為second,預設為600。
8. 當瀏覽器接收到封包,才會正式對google.com進行request。
* DNS放大攻擊手段
透過上述第六步驟,對大多數的DNS發送請求,請求的封包中偽造source ip,對目標進行攻擊。
之所以稱為放大是因為發送出去的DNS package只有130byte,而回傳的DNS封包大小為4000byte,因此稱為DNS放大。
- [ ] 偽造DNS封包header
- [ ] 發送DNS封包至多個DNS
* DNS放大攻擊優勢:
1.利用DNS,手段成本低廉
2.DNS主機並不會記錄查詢來源主機,遭受源頭打擊的困難度很高
3.DNS眾多,防守方很難在第一時間找到源頭,只能對DNS進行流量過濾
*
### Package Overflow
###
## 測試工具
hping, hping3, Nping, LOIC, UDP Unicorn, Nemesis
### hping3
* 相關參數
-s:本地端開啟的portocal
-c:發送封包的個數
-d:每個封包的大小,最大為65535
-S:發送SYN封包
-U:發送udp封包, -2:設定udp封包大小
-w:TCP window大小
-i:ping的方式
-A:用ACK的方式
-p:目標埠,你可以指定任意埠
–flood:儘可能快的發送封包
–rand-source:隱藏來源位置 (隨機產生)
--listen :
```
hping3 192.168.254.2 --listen signature --safe --udp -p 53 | /bin/sh
```
--sign siganature
###
### nmap:
``` .shell
http-title:用於獲取Web服務器的標題。
dns-zone-transfer:用於執行DNS區域傳輸。
ftp-anon:用於查找FTP伺服器上的匿名登錄。
smb-os-discovery:用於獲取SMB伺服器的操作系統信息。
snmp-sysdescr:用於獲取SNMP代理的系統描述符。
ssh-hostkey:用於獲取SSH伺服器的主機密鑰。
telnet-encryption:用於測試Telnet伺服器是否支持加密。
```
## 偵測工具
TCPDunp, Wireshark, ntopng, mrtg
## Bot net工具
Mirai, XOR DDoS, DDoS-bots, JenX, MuhstikLizardStresser
# 防禦手段:
## 硬體軟體設定方面
防火牆的protocol(rule)
IDPS的偵測(rule base)
## 系統架設方面
### Docker
### Kubernetes(k8s)
### DNS
### 黑洞路由(Black Hole Routing):
將攻擊流量轉送到一個不存在的目標地址或黑洞,避免攻擊流量達到被保護系統,例如:HoneyMash。
Feng, W., Li, H., Sun, H., & Zhang, C. (2017). DDoS attacks prevention based on SDN and black hole routing. Cluster Computing, 20(4), 3031-3044.
### 負載均衡(Load Balancing)
訪問流量分配到多台伺服器上,避免單一伺服器遭受攻擊而失效。
Li, Y., Zhang, L., Chen, X., & Chen, G. (2019). A Hybrid Method of Load Balancing for Mitigating DDoS Attacks. IEEE Access, 7, 3631-3641.
### CDN(Content Delivery Network)
使用CDN服務將網站內容分發到多個節點上,提高服務的可用性和可靠性。
Mareddy, S., Prasad, R. V., & Shinde, S. V. (2018). CDN-based approach to mitigate DDoS attacks. In 2018 2nd International Conference on Inventive Communication and Computational Technologies (ICICCT) (pp. 605-609). IEEE.
### CDN加速
使用CDN(Content Delivery Network)技術可以將網站內容分發到不同的伺服器,減少單一伺服器遭受攻擊的風險。相關論文:《基于CDN的DDoS攻击防御技术》
《基于CDN的DDoS攻击防御技术》
### BlockChain Defands
## 流量監控方面
### 流量清洗(Traffic Scrubbing)
清洗所有網路連線,分辨有利與有害連線,進而阻隔。
1. 流量檢測
2. 流量分析
3. 流量過濾
4. 流量恢復
### 流量過濾(Filtering)
透過防火牆或專門的DDoS防禦裝置過濾掉攻擊流量,只將合法流量轉送至被保護系統。
Khan, S., Ahmad, R., & Hamza, W. (2018). A review on DDoS attack mitigation techniques. Journal of Network and Computer Applications, 116, 1-17.
### 流量限制
透過設定速率限制或其他方式限制訪問者的訪問速度,減緩攻擊對系統造成的影響
Lee, B., Lee, J., Kim, Y., & Han, K. (2018). DDoS attack prevention using a software-defined networking-based bandwidth control scheme. Future Generation Computer Systems, 88, 246-255.
## 網絡協議優化
優化網絡協議,例如TCP/IP協議,可以減少被攻擊的風險。
《基于TCP/IP协议的DDoS攻击防御技术研究》(作者:王志強、陳勇)。
## 防火牆限制連接數量(Rate Limiting)
限制網絡設備的連接數量可以減少被攻擊的可能性。
《DDoS攻击中防火墙限制连接数量的研究》
## 智能檢測(Intelligent Detection):
利用機器學習、人工智慧等技術對攻擊流量進行檢測和辨識,快速鑒別出攻擊流量並阻擋。
Chen, Y., Qin, J., Zhang, W., & Cai, H. (2019). A DDoS attacks detection
## Blockchain