# 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