吳嘉豪 唐賓徽
摘? 要:由于DDOS攻擊比DOS攻擊具有更強(qiáng)大的破壞力,因此基于DDOS攻擊衍生出多種防范措施,如基于網(wǎng)絡(luò)流量的異常檢測(cè),通過(guò)收集到的正常連接數(shù)據(jù)運(yùn)用數(shù)學(xué)函數(shù)生成一個(gè)閾值,超過(guò)此閾值,即發(fā)出警報(bào),或者快速檢測(cè)偽造 IP 的方法。為了達(dá)到該目的,通過(guò)流量分析系統(tǒng)評(píng)估正常流量的 TTL,作為可訪問(wèn)主機(jī)的參考。若所收到的數(shù)據(jù)包其中TTL與正常TTL不符,則判定此源Ip為偽造Ip。本文提出一種基于web訪問(wèn)路徑的DDOS攻擊防御模型(UAP),UAP部署在web服務(wù)器與應(yīng)用服務(wù)器之間,通過(guò)對(duì)請(qǐng)求路徑、請(qǐng)求分布、路徑循環(huán)、行為時(shí)隙與路徑長(zhǎng)度進(jìn)行異常檢測(cè),檢測(cè)結(jié)果能分辨DDOS攻擊與正常用戶訪問(wèn),并且基于SDN架構(gòu)來(lái)防范DDOS攻擊,在SDN架構(gòu)中簡(jiǎn)化了數(shù)據(jù)轉(zhuǎn)發(fā)分組的過(guò)程,通過(guò)中心控制器連接了所有交換機(jī),從而能實(shí)時(shí)獲取網(wǎng)絡(luò)中信息因此能對(duì)DDOS攻擊做出快速反應(yīng)。該文針對(duì)DDOS攻擊中通過(guò)UDP包攻擊的基本原理及其種類(lèi),包括對(duì)Trinoo攻擊的檢測(cè)及防范為例,對(duì)分布式拒絕服務(wù)攻擊的若干問(wèn)題展開(kāi)探討。
關(guān)鍵詞:DDOS攻擊? 原理? 檢測(cè)? 防范策略
中圖分類(lèi)號(hào):TP393.0 ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2020)07(c)-0169-03
Absrtact: Because DDOS attack is more powerful than DOS attack, many kinds of preventive measures are derived based on DDOS attack, such as: anomaly detection based on network traffic, generating a threshold value by using mathematical function through the collected normal connection data, exceeding this threshold value, that is, sending out an alarm, or quickly detecting forged IP. In order to achieve this goal, TTL of normal traffic is evaluated by traffic analysis system as a reference of accessible host. If the TTL of the received packets does not match the normal TTL, the source IP is determined to be forged IP. This paper proposes a DDOS attack defense model (UAP) based on Web access path. UAP is deployed between web server and application server, and anomaly detection is carried out on request path, request distribution, path cycle, behavior timeslot and path length. The detection results can distinguish DDOS attacks and normal user access, and prevent DDOS Attacks Based on SDN architecture. In SDN architecture, the process of data forwarding and grouping is simplified, and all switches are connected through the central controller, so that the information in the network can be obtained in real time, so it can make rapid response to DDOS attacks. Aiming at the basic principle and types of UDP packet attacks in DDOS attacks, including the detection and prevention of trinoo attacks, this paper discusses some problems of distributed denial of service attacks.
Key Words: DDOS attack; Principle; Detection; Prevention strategy
1? DDOS攻擊的基本原理剖析
普通的DOS攻擊均為一臺(tái)機(jī)器設(shè)備對(duì)特定目標(biāo)發(fā)動(dòng)攻擊,反觀當(dāng)前的DDOS攻擊通常是由大量的設(shè)備借助高寬帶通過(guò)傳送眾多數(shù)據(jù)包對(duì)同一個(gè)目標(biāo)進(jìn)行攻擊和控制,如此一來(lái),便更容易擊潰目標(biāo)網(wǎng)站[1]。除此之外,DDOS攻擊模式的自動(dòng)化屬性更強(qiáng),攻擊者能夠?qū)⒆陨沓绦蛲瑫r(shí)植入到目的僵尸網(wǎng)絡(luò),通過(guò)對(duì)僵尸網(wǎng)絡(luò)攻擊命令的下達(dá),這部分設(shè)備就可以對(duì)目標(biāo)網(wǎng)站進(jìn)行攻擊。這一過(guò)程大致可以分成下列幾個(gè)步驟:第一,攻擊者通過(guò)嗅探軟件尋找出可以被攻擊的計(jì)算機(jī);第二,DDOS借助現(xiàn)階段互聯(lián)網(wǎng)協(xié)議中的各種安全漏洞。即便DDOS攻擊并不是必須借助這些安全漏洞,然而這部分漏洞的存在確實(shí)令DDOS攻擊模式的威力更強(qiáng)大。主要的安全漏洞涵蓋了:緩沖區(qū)溢出、源IP地址能夠自如更改、SYN海量連接、流攻擊、認(rèn)證數(shù)據(jù)的故意丟失、包頭偏址或者其它壞包對(duì)IP棧的攻擊等等[2]。攻擊者侵入至存在安全漏洞的主機(jī)中并竊取根目錄的控制權(quán),這部分主機(jī)通常被叫做“主控端”,一般而言有十幾到幾十臺(tái),且大部分都是UNIX平臺(tái)運(yùn)作的服務(wù)器。第三,在每一臺(tái)被侵入的主機(jī)里裝配主控端程序。在默認(rèn)端口上,利用TCP以及UDP協(xié)議分別和攻擊端、分布端進(jìn)行通訊。第四,進(jìn)一步展開(kāi)入侵與掃描作業(yè),目的是管控成百上千臺(tái)的分布端,在分布端裝配守護(hù)程序,分布端在收到攻擊指令后便會(huì)對(duì)目標(biāo)對(duì)象發(fā)動(dòng)攻擊[3]。
2? DDOS攻擊的主要類(lèi)型研究
到目前為止,攻擊者最普遍采取的分布式拒絕服務(wù)攻擊程序一般包含了Trinoo、TFN2K、TFN以及Stacheldraht等幾類(lèi),下面我們對(duì)這些主要的攻擊類(lèi)型進(jìn)行更加細(xì)致的探究。
2.1 Trinoo攻擊
Trinoo本質(zhì)上屬于UDP包的其中一類(lèi),并以此屬性對(duì)指定目標(biāo)網(wǎng)絡(luò)展開(kāi)攻擊的一種工具軟件。當(dāng)攻擊體系創(chuàng)建起來(lái)后,攻擊端利用Telnet程序遠(yuǎn)程操控并登入主控端,然后發(fā)送一系列的攻擊指令。而主控端則是通過(guò)27665/tcp端口接收攻擊端發(fā)來(lái)的指令,通常而言這一執(zhí)行程序是需要設(shè)定密碼的,與此同時(shí)主控端與分布端建立連接,等待分布端傳來(lái)的UDP報(bào)文。在此基礎(chǔ)上,分布端攻擊守護(hù)程序收到flood命令后通過(guò)對(duì)目標(biāo)主機(jī)發(fā)送數(shù)目龐大的UDP報(bào)文來(lái)執(zhí)行攻擊命令。它們收到命令之后同一時(shí)間對(duì)目標(biāo)主機(jī)發(fā)動(dòng)UDP flood攻擊,從而令寬帶消耗殆盡。大部分的DDOS攻擊時(shí)針對(duì)某特定端口的普通UDP flood攻擊,而Trinoo攻擊是隨機(jī)地指向目標(biāo)端的UDP端口,從而使目標(biāo)主機(jī)產(chǎn)生眾多ICMP無(wú)法到達(dá)報(bào)文,嚴(yán)重占用主機(jī)的寬帶,最終令正常訪問(wèn)的數(shù)據(jù)包難以到達(dá)目標(biāo)主機(jī)[4]。
2.2 Stacheldraht攻擊
Stacheldraht對(duì)指令來(lái)源作假,同時(shí)能夠抵御某些路由器借助RFC2267過(guò)濾。如果檢測(cè)出存在過(guò)濾的情況,其便會(huì)只做假I(mǎi)P地址的最后8位,目的是使用戶無(wú)法真正找出究竟是哪幾個(gè)網(wǎng)段的哪些設(shè)備被攻擊。除此之外,它也具備自動(dòng)更新的功能,Stacheldraht可以伴隨著軟件更新進(jìn)行自主的更新。并且, Stacheldraht攻擊融入了Trinoo攻擊的部分特征,也就是其是由分布端、主控端、攻擊端三者共同構(gòu)成。 Stacheldraht攻擊也融合了TFN、TFN2K的特性,可以同時(shí)借助多類(lèi)手段對(duì)目標(biāo)主機(jī)發(fā)起攻擊,增加了主控端與攻擊端二者間的密切通訊能力。另外,這種攻擊模式可以自動(dòng)更新代理程序,并且其代碼當(dāng)中不包括“on Demand”,這一點(diǎn)和早期的TFN、TFN2K是存在巨大差異的。
2.3 TFN、TFN2K攻擊
首先,TFN即為借助ICMP給主控端或者分布端傳遞指令,它的來(lái)源方便作假。其能夠發(fā)起SYN flood、UDP flood、ICMP flood等多種攻擊。其次,作為T(mén)FN攻擊的升級(jí)版,TFN2K的主要特征為:對(duì)指令數(shù)據(jù)包進(jìn)行加密操作、指令來(lái)源作假、難以查詢指令內(nèi)容等。除了上述攻擊特點(diǎn)外,TFN2K也具有如下特點(diǎn):新添加了MIX、TARGA3等攻擊模式;借助誘騙包操控客戶端進(jìn)程端口;對(duì)客戶端的TCP、UDP或者ICMP的通訊方式進(jìn)行加密操作等。
3? DDOS攻擊的防范策略及若干實(shí)現(xiàn)
從根本上講,DDOS與DOS攻擊不存在差異,但不同的是,DDOS攻擊在方法上更加隱蔽,成功幾率更大,令對(duì)其的檢測(cè)防范更具難度。以Trinoo攻擊為例,對(duì)DDOS攻擊的檢測(cè)、防范做出了研究,并提出:檢測(cè)及防范DDOS攻擊體系應(yīng)當(dāng)從目標(biāo)端、主控端和分布端分別展開(kāi)。
3.1 目標(biāo)端的檢測(cè)防范對(duì)策與實(shí)現(xiàn)
當(dāng)前,盡管有掃描與殺死主控端、分布端程序的專(zhuān)用軟件,但網(wǎng)絡(luò)當(dāng)中仍然存在大量有安全漏洞的PC機(jī)。所以,在目標(biāo)端的檢測(cè)和防御尤為關(guān)鍵。具體來(lái)講,主要涵蓋了入侵檢測(cè)以及防火墻過(guò)濾兩種最關(guān)鍵的網(wǎng)絡(luò)安全技術(shù)。前者是被動(dòng)、動(dòng)態(tài)的監(jiān)視系統(tǒng),而后者是按照預(yù)定的規(guī)則,本質(zhì)上是主動(dòng)防范手段。在實(shí)際的操作環(huán)節(jié),我們不妨將二者有機(jī)結(jié)合起來(lái),并努力構(gòu)建起縝密科學(xué)的防控體系。換言之,由IDS監(jiān)視網(wǎng)絡(luò)UDP流量,若是超過(guò)限定值,即刻報(bào)警,同時(shí)借助System函數(shù)及時(shí)添加相應(yīng)的規(guī)則到Firewall中,把非法UDP流阻擋于邊界路由器之外,最終發(fā)揮防護(hù)目標(biāo)主機(jī)的根本目的。當(dāng)攻擊結(jié)束后,這一體系把新添加的規(guī)則刪掉,并允許正常的UDP流自由進(jìn)出LAN。
3.2 分布端和主控端的防范策略及其實(shí)現(xiàn)
分布端和主控端主機(jī)需要檢測(cè)和防范被攻擊者的入侵,同時(shí)進(jìn)行更好的利用。尋找到master.h以及ns.c并及時(shí)刪除,是二者檢測(cè)及防范的關(guān)鍵[5]。通常而言,主控端會(huì)利用27665/tcp端口來(lái)接收攻擊端的指令,使用31335/udp端口和分布端保持通訊;分布端則是借助端口27444/udp來(lái)接收主控端的指令,也就是AttackertoMasters。在主控端與分布端通信時(shí),他們會(huì)使用udp數(shù)據(jù)包進(jìn)行溝通而udp包一般都是幾個(gè)字節(jié)到十幾個(gè)字節(jié),控制信息就在這十幾個(gè)字節(jié)中[6]。因?yàn)樵诳刂菩畔⒘髦屑词箓卧炝嗽碔p地址也無(wú)法偽造目標(biāo)Ip,不然的話分布端就不會(huì)收到來(lái)自主控端的攻擊信息,當(dāng)Daeon被成功安裝,就會(huì)向Master發(fā)出含有字符串*HELLO*的UDP數(shù)據(jù)包用Ngrep程序檢測(cè)得到#U172.18.16.254:32887->192.168.1.1:31335*HELLO*表明分布端主機(jī)172.18.16.254正在向主控端主機(jī)192.168.1.1發(fā)送安裝成功的消息。還有種方法在計(jì)算機(jī)上安裝了lsof對(duì)其進(jìn)行檢測(cè):
# lsof egrep″:27444″ns 1316 root 3u inet 2502 udp*:27444
表明該計(jì)算機(jī)已被安裝了Trinoo的分布端程序(ns.c)
#lsof egrep″:31335 :27665″master 1292 root 3u inet 2460 UDP *:31335
master 1292 root 4u inet 2461 TCP *:27665
就表明該機(jī)已被安裝主控端程序(master.c)
在攻擊端與主控端,主控端與分布端它們之間通信的數(shù)據(jù)包,當(dāng)中會(huì)有特殊的字符串,當(dāng)找到該數(shù)據(jù)包便可以確定此計(jì)算機(jī)正在遭受DDOS攻擊,并且能判斷該計(jì)算機(jī)處于DDOS網(wǎng)絡(luò)中主控端或是分布端。
4? 結(jié)語(yǔ)
總而言之,對(duì)DDOS攻擊的檢測(cè)與防范作為一種整體、共同行為,一臺(tái)網(wǎng)絡(luò)主機(jī)不僅要注意防止自己成為主控端與分布端,也要注意成為DDOS攻擊的攻擊目標(biāo)。當(dāng)然在現(xiàn)有階段下,仍舊不能從根本上遏制這類(lèi)攻擊,然而DDOS攻擊自身存在的缺陷卻可以被加以利用,從而實(shí)現(xiàn)對(duì)它的防范。
參考文獻(xiàn)
[1] 余思陽(yáng),楊佑君,李長(zhǎng)連.基于DPDK的DDoS攻擊防御技術(shù)分析與實(shí)現(xiàn)[J].郵電設(shè)計(jì)技術(shù),2020(1):70-74.
[2] 趙隴,王志勃,章萬(wàn)靜.基于DDoS安全區(qū)的偽造IP檢測(cè)技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019(9):106-109.
[3] 任皓,許向陽(yáng),馬金龍,等.基于Web訪問(wèn)路徑的應(yīng)用層DDoS攻擊防御檢測(cè)模型[J].河北科技大學(xué)學(xué)報(bào),2019(5):404-413.
[4] 何亨,胡艷,鄭良漢,等.云環(huán)境中基于SDN的高效DDoS攻擊檢測(cè)與防御方案[J].通信學(xué)報(bào),2018(4):139-151.
[5] 劉俊杰.SDN網(wǎng)絡(luò)安全的研究與實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2019.
[6] 楊玉蘭.基于DDoS高防IP系統(tǒng)預(yù)防DDoS攻擊的原理[J].電腦知識(shí)與技術(shù),2019(32):57-58,71.
科技創(chuàng)新導(dǎo)報(bào)2020年21期