---
# System prepended metadata

title: DDos

---

# 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 

