国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

源端網(wǎng)絡(luò)檢測與抑制DDoS方法的研究

2018-02-05 02:07:45,,
計算機測量與控制 2018年1期
關(guān)鍵詞:內(nèi)核IP地址路由器

, ,

(湖北大學(xué) 計算機與信息工程學(xué)院, 武漢 430062)

0 引言

分布式拒絕服務(wù)攻擊(distributed denial-of-service attack, 簡稱 DDoS)是多年以來互聯(lián)網(wǎng)最具有威脅性的攻擊之一,DDoS攻擊是指攻擊者通過傀儡主機,消耗目標攻擊目標的計算資源,阻止目標為合法用戶提供服務(wù)。近年來物聯(lián)網(wǎng)設(shè)備的廣泛使用,物聯(lián)網(wǎng)安全隨之成為一個重要的問題,如今基于Linux內(nèi)核的物聯(lián)網(wǎng)設(shè)備已經(jīng)變成了網(wǎng)絡(luò)攻擊者青睞的目標[1]。Rob Graham在個人SNS上展示了自己的網(wǎng)絡(luò)攝像頭在幾十秒內(nèi)被惡意軟件感染并發(fā)起DoS攻擊。2016年10月份歐洲因為嵌入式設(shè)備的DDoS攻擊造成大面積斷網(wǎng)。

DDoS防御根據(jù)部署位置可以分為源端網(wǎng)絡(luò)防御、中間網(wǎng)絡(luò)防御和末端網(wǎng)絡(luò)防御三種類型。根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)分類,DDoS防御可以分為網(wǎng)絡(luò)層的防御和應(yīng)用層的防御。末端網(wǎng)絡(luò)防御主要是在被攻擊的主機上建立防御措施。由于對于應(yīng)用層的攻擊較多,大多數(shù)研究基于各種機器學(xué)習(xí)算法,訓(xùn)練出一套區(qū)分正常流量和DDoS流量的模型,使用此模型進行對DDoS攻擊的檢測[3-5]。對于網(wǎng)絡(luò)層的攻擊,主要是通過被攻擊端設(shè)備和主要網(wǎng)絡(luò)設(shè)備對網(wǎng)絡(luò)流量的變化進行監(jiān)控和檢測,并使用大量網(wǎng)絡(luò)設(shè)備資源對攻擊流量進行控制[6-8]。王睿提出一種將在應(yīng)用層對DDoS流量檢測技術(shù)和在網(wǎng)絡(luò)層利用網(wǎng)絡(luò)設(shè)備的回溯攔截攻擊流量結(jié)合的方法[2]。在源端網(wǎng)絡(luò)上,早期Mirkovic等人設(shè)計了D-WARD系統(tǒng),可以在攻擊端(僵尸網(wǎng)絡(luò))基于出入流量比例、流量速率和連接數(shù)量等信息判斷此網(wǎng)絡(luò)是否正在進行DDoS攻擊,從而進一步控制流量[9-10]。于明等人說明了在源端網(wǎng)絡(luò)勻速發(fā)送和組群式發(fā)送下 DDoS 攻擊流的可檢測性[11]。

DDoS作為經(jīng)久不衰的互聯(lián)網(wǎng)攻擊手段,正是因為它的成本不高并且技術(shù)難度不高,但是造成的危害卻極大。DDoS的攻防可以說是一場互聯(lián)網(wǎng)資源的斗爭,大多情況下被攻擊的服務(wù)商只能通過投入大量的金錢去購買網(wǎng)絡(luò)資源來填補被攻擊資源的空缺。而在被攻擊端的檢測和防御手段也需要使用大量的計算設(shè)備,在回溯的方法中甚至還要動用ISP的設(shè)備來幫助控制攻擊流量。在當今物聯(lián)網(wǎng)設(shè)備大規(guī)模運用在生活中,大多數(shù)普通用戶的互聯(lián)網(wǎng)安全意識還不夠健全的情況下,本文圍繞僵尸網(wǎng)絡(luò),根據(jù)DDoS攻擊的特征,提出一種成本相對低廉的DDoS源端的防御方法。

1 利用IP熵異常流量

1.1 DDOS攻擊普遍特征

在發(fā)生DDOS攻擊時,無論是網(wǎng)絡(luò)層的攻擊還是應(yīng)用層的攻擊,一個顯著的特征是攻擊流量都指向同一個IP地址,并且發(fā)向被攻擊IP地址的流量速率增大。一般而言這種特征會持續(xù)一段時間直到被攻擊主機癱瘓無法提供服務(wù)為止。在DDoS攻擊中,攻擊工具的編寫者一般會使用偽造源地址的方法來混淆目標主機的判斷,導(dǎo)致目標主機無法及時發(fā)現(xiàn)并防御攻擊。而在源端網(wǎng)絡(luò)中,可以在邊緣路由器檢測流量特征,邊緣路由器可以有效提前過濾掉所有來源不屬于自身網(wǎng)絡(luò)的數(shù)據(jù)包。

1.2 IP熵

熵主要指體系的混亂程度,它能夠度量集合的離散程度。信息熵定義如下:

定義1:IP={ip1,ip2,…,ipn}表示單位時間內(nèi)網(wǎng)絡(luò)報文目的IP地址集合。

定義2:P={p1,p2,…,pn},pi表示第i個地址的概率,P為ip地址的概率分布。

定義3:E=-∑pilnpi表示單位時間內(nèi)網(wǎng)絡(luò)報文的目的ip地址的熵。

DDOS發(fā)生時,網(wǎng)絡(luò)報文目的地址集中,單位時間內(nèi)被攻擊主機被訪問的頻率大大增加。而在正常情況下,網(wǎng)絡(luò)報文目的IP應(yīng)該是分散的而且熵值趨于穩(wěn)定,波動較小。對荷蘭的某大學(xué)宿舍區(qū)連向大學(xué)的核心網(wǎng)絡(luò)的匿名數(shù)據(jù)集進行測試,該網(wǎng)絡(luò)上約有2000名用戶連接,每秒的報文數(shù)量達到2000個左右。圖1是該網(wǎng)絡(luò)上的報文IO速率統(tǒng)計圖,由圖3可以得知在一個局域網(wǎng)內(nèi),正常情況下網(wǎng)絡(luò)流量速率是基本穩(wěn)定的。在此數(shù)據(jù)集里,每隔10秒取該10秒內(nèi)的流量數(shù)據(jù),共取10段數(shù)據(jù),計算其目的ip地址的熵值,其中每段數(shù)據(jù)的目的ip數(shù)量大約為500個,如圖2所示。發(fā)現(xiàn)在正常流量環(huán)境下的目的IP的熵值沒有大幅波動。

圖1 網(wǎng)絡(luò)上的IO統(tǒng)計

圖2 正常流量環(huán)境下的目的IP熵值變化

2 SYN flood流量的連接跟蹤

在源端網(wǎng)絡(luò)中,使用ip熵策略發(fā)現(xiàn)某個目標ip地址的流量突然集中,只能說明這屬于可疑流量,還不能判斷為攻擊。造成ip熵減小的可能性除了攻擊以外,還可能是流媒體傳輸、文件上傳、p2p上傳等大流量的操作。所以還需要對可疑流量進行進一步的分析。

2.1 通過網(wǎng)絡(luò)包的連接跟蹤

根據(jù)TCP/IP協(xié)議,TCP傳輸?shù)囊欢耸褂肐P地址和端口號作為唯一的身份標識,客戶端和服務(wù)端使用IP地址:端口號對作為一個連接的唯一標識,如圖3所示。

圖3 TCP連接的唯一標識

Linux內(nèi)核的Netfilter子模塊Connection Track中,用一個結(jié)構(gòu)體描述一個連接, 每個連接都分為original和reply兩個方向,每個方向都用一個元組(tuple)表示,tuple中包含了這個方向上數(shù)據(jù)包的信息,如源IP、目的IP、源port、目的port等。而對于源端DDOS檢測系統(tǒng)而言,連接都是從普通終端發(fā)起,到服務(wù)器或被攻擊終端,所以在這里可以不用區(qū)分連接的方向。在內(nèi)核中,一個連接的可能狀態(tài)可以被定義如下:

NEW:一個新建的連接。這個狀態(tài)表明這個報文是有效的,假如Netfilter只看到一個方向上的流量(如,Netfilter沒有看到任何回復(fù)報文),那么這個連接就處于NEW狀態(tài),也就是這個報文屬于一個有效的初始化序列(如,在一個TCP連接中,收到一個SYN報文)。

ESTABLISHED:連接已經(jīng)被建立了。換句話說,如果連接處于這個狀態(tài),就表明Netfilter看到了一個雙向的通信。

RELATED:這是一個期望的連接。

INVALID:這是一種特殊的狀態(tài),來描述那些沒有按照預(yù)期行為進行的連接。系統(tǒng)管理員可定義一些規(guī)則來記錄這些報文 或者丟掉這些報文。

對于源端DDoS檢測系統(tǒng),我們只需要關(guān)心連接是否正常建立,所以只需要關(guān)注NEW和ESTABLISHED這兩個狀態(tài)。

我們對于每一個需要檢測的報文,使用IP地址和端口作為特征進行哈希,使用散列表來存儲對每一個連接的跟蹤情況。

2.2 SYN Flood攻擊流量特征

SYN flood或稱SYN洪水、SYN洪泛是一種拒絕服務(wù)攻擊,起因于攻擊者發(fā)送一系列的SYN請求到目標系統(tǒng)。

當客戶端試著與服務(wù)器間創(chuàng)建TCP連接時,正常情況下客戶端與服務(wù)器端交換一系列的信息如下:

1)客戶端通過發(fā)送SYN同步(synchronize)信息到服務(wù)器要求創(chuàng)建連接。

2)服務(wù)器通過響應(yīng)客戶端SYN-ACK以抄收(acknowledge)請求。

3)客戶端答應(yīng)ACK,連接隨之建立。

TCP的三次握手是每個使用TCP傳輸協(xié)議創(chuàng)建連接的基礎(chǔ)。

SYN flood攻擊就是利用TCP建立連接的三次握手的漏洞,攻擊端向被攻擊端發(fā)送SYN連接請求后,不再向被攻擊端發(fā)送ACK報文。被攻擊端接收到SYN請求后,會建立一個半開通連接的緩存。攻擊端不斷地向被攻擊端以這種形式發(fā)送報文,最后將會導(dǎo)致被攻擊端資源耗盡。

根據(jù)近期在互聯(lián)網(wǎng)上造成極大影響的物聯(lián)網(wǎng)設(shè)備病毒程序mirai的源碼[14],可以得知一個典型的SYN flood的實現(xiàn)方式與細節(jié)。mirai中使用linux的原生套接字(SOCK_RAW類型),從系統(tǒng)底層直接向服務(wù)器發(fā)送TCP SYN報文,并完全不做后續(xù)的處理,也就是不接收服務(wù)器返回的SYN+ACK報文。

Mirai TCP flood攻擊模塊關(guān)鍵代碼如圖4所示,其主要目的在于:

1)設(shè)置syn標志位為1

2)隨機生成一個源IP地址

3)隨機生成一個目的端口

1BOOLsyn_fl=attack_get_opt_int(opts_len,opts,ATK_OPT_SYN,TRUE);iph->saddr=rand_next();tcph->dest=rand_next();23

圖4 mirai TCP flood關(guān)鍵代碼

根據(jù)源代碼得知,發(fā)生SYN flood攻擊時,可以檢測到很多只有一次發(fā)送SYN的TCP數(shù)據(jù)報。

3 源端網(wǎng)絡(luò)流量監(jiān)控的設(shè)計

一個包捕獲機制包含三個主要部分:最底層是針對特定操作系統(tǒng)的包捕獲機制,最高層是針對用戶程序的接口,第三部分是包過濾機制。數(shù)據(jù)包常規(guī)的傳輸路徑依次為網(wǎng)卡、設(shè)備驅(qū)動層、數(shù)據(jù)鏈路層、IP 層、傳輸層、最后到達應(yīng)用程序。而包捕獲機制是在數(shù)據(jù)鏈路層增加一個旁路處理,對發(fā)送和接收到的數(shù)據(jù)包做過濾/緩沖等相關(guān)處理,最后直接傳遞到應(yīng)用程序。在linux系統(tǒng)上libpcap是一個典型的包捕獲庫。

伯克利數(shù)據(jù)包過濾器 (BPF, berkeley packet filter)是Libpcap使用的高效的數(shù)據(jù)包捕獲機制。BPF主要由兩部分組成,一是網(wǎng)絡(luò)轉(zhuǎn)發(fā)部分,二是數(shù)據(jù)包過濾部分。網(wǎng)絡(luò)轉(zhuǎn)發(fā)部分從鏈路層捕獲數(shù)據(jù)包,并把它們轉(zhuǎn)發(fā)給過濾部分;數(shù)據(jù)包過濾部分從轉(zhuǎn)發(fā)部分接收過濾規(guī)則相匹配的網(wǎng)絡(luò)數(shù)據(jù)包。

3.1 源端網(wǎng)絡(luò)拓撲示意

在源端網(wǎng)絡(luò)的出口網(wǎng)關(guān)上部署流量檢測系統(tǒng),在使用linux操作系統(tǒng)的網(wǎng)關(guān)上,很容易實現(xiàn)對流量的監(jiān)控以及自定義操作,如圖5所示。同時出口網(wǎng)關(guān)也很容易判別來自內(nèi)部網(wǎng)絡(luò)的偽造源地址數(shù)據(jù)包,可以及時有效地進行攔截。

圖5 在出口網(wǎng)關(guān)上部署sniffer

3.2 偽造源地址過濾

Linux內(nèi)核網(wǎng)絡(luò)棧依賴Iptables/Netfilter框架,任何經(jīng)過Linux內(nèi)核的數(shù)據(jù)包必須通過這套框架的規(guī)則判定,決定數(shù)據(jù)包的丟棄或是通過,因此在內(nèi)核中攔截數(shù)據(jù)包具有絕對的實時性,不會漏放過任何一個報文。經(jīng)過試驗,在這套框架中增加自定義的規(guī)則,不適合進行大量的運算,否則會導(dǎo)致Linux內(nèi)核的崩潰,但是對IP地址的過濾可以很高效的執(zhí)行。因此我們可以使用這套成熟的框架過濾偽造的源地址。對于路由器而言,數(shù)據(jù)包在內(nèi)核中的傳輸方向是INPUT鏈 -> FORWORD鏈 -> OUTPUT鏈,故偽造源地址的過濾規(guī)則應(yīng)直接安放在INPUT鏈上可以使效率達到最高。具體方法如下:

獲取源端網(wǎng)絡(luò)的硬件端口ethi;

獲取該端口的網(wǎng)絡(luò)地址和掩碼ipi,maski;

在INPUT鏈中增加規(guī)則:eth端口的ipi,maski數(shù)據(jù)包放行,余下的數(shù)據(jù)包全部丟棄。

3.3 流量捕獲與多線程數(shù)據(jù)處理

在過濾掉第一批偽造源地址的數(shù)據(jù)報后,剩下的都是規(guī)則上合法的數(shù)據(jù)包,因為本文的分析系統(tǒng)構(gòu)建在Linux用戶空間上,所以這些數(shù)據(jù)包不會被及時攔截,但是會進入用戶空間進行計算分析后延遲攔截。

首先是系統(tǒng)的初始化,需要運行較長一段時間獲得該網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)包的IP熵的平均值。接下來開始對異常流量進行檢測,計算一段時間內(nèi)目的IP的熵并和平均值進行比較,如果發(fā)現(xiàn)低于平均值m倍,則認定為有可疑流量的發(fā)生,取該時間段頻次最高的三個IP地址進行連接跟蹤。由于網(wǎng)絡(luò)數(shù)據(jù)包經(jīng)過網(wǎng)關(guān)的速率很高,根據(jù)libpcap庫的源碼,在每一次捕獲到數(shù)據(jù)包后的調(diào)用處理是單線程的方式,由于需要對數(shù)據(jù)包中的元組進行散列運算和對比,需要耗費一定的時間,單線程會對后續(xù)的流量處理造成阻塞,所以這里采用多線程的方式,如圖6所示。

圖6 多線程處理數(shù)據(jù)包

4 實驗結(jié)果和分析

實驗采用普通辦公室的網(wǎng)絡(luò)環(huán)境,約20臺正常使用的設(shè)備連接同一個路由器。該路由器由Raspberry Pi 3B改裝而成,該設(shè)備擁有ARM Cortex-A53 1.2 GHz 四核處理器,1 GB運行內(nèi)存,一個10/100M自適應(yīng)以太網(wǎng)接口,802.11n WiFi無線網(wǎng)卡,具有良好的性能,安裝Openwrt系統(tǒng),可以作為無線路由器使用。

實驗環(huán)境拓撲如圖7所示,Router0為安裝系統(tǒng)的路由器,Server作為被攻擊的服務(wù)器,兩個局域網(wǎng)通過Router1接入互聯(lián)網(wǎng)。使用DDoS攻擊程序改寫自Mirai源碼的TCP SYN attack部分,分為隨機源IP地址和使用真實源IP地址兩種攻擊方式。

圖7 實驗環(huán)境拓撲

在工作時間,測試到整個辦公室的網(wǎng)絡(luò)報文上傳速率為800 Packets/s,將系統(tǒng)設(shè)置為每隔一秒計算一次目的IP熵值,系統(tǒng)運行5分鐘后,得出這5分鐘內(nèi)的平均目的IP熵值為3.88,每秒計算一次目的IP熵值的上下波動不超過20%,在

不開啟后續(xù)連接跟蹤系統(tǒng)的情形下使用攻擊程序的真實源IP地址方式向Server發(fā)起SYN流量,在測試中,攻擊程序1秒內(nèi)可以發(fā)送高達30000個數(shù)據(jù)包,此時的目的IP熵值降低至0.89,故在此環(huán)境中,人為設(shè)定當目的IP熵值達到1.00以下時,判定為初步檢測到可以攻擊流量。

后續(xù)開啟連接跟蹤模塊,并設(shè)定目的IP熵值的臨界點為1.00,測試結(jié)果如下。

表1 攻擊檢測延遲測試

從測試中可以看出,系統(tǒng)對偽造源IP地址的DDoS攻擊可以很好的進行攔截,但是對真實源IP地址的DDoS攻擊的檢測有延遲。由于延遲只有數(shù)秒,因此在檢測出攻擊后,系統(tǒng)通過調(diào)用Netfilter模塊在內(nèi)核層面上攔截,并清空自身所使用的資源,對路由器后續(xù)正常工作基本沒有影響。

5 結(jié)語

本文提出在源端網(wǎng)絡(luò)上利用網(wǎng)絡(luò)流量目的IP熵的特性檢測可疑的DDoS流量,并針對可能的誤報行為提出使用連接跟蹤的方法對可疑流量的進一步分析,發(fā)現(xiàn)TCP層的SYN flood攻擊流量的方法。通過實驗小規(guī)模局域網(wǎng)下某臺機器向互聯(lián)網(wǎng)上某臺機器發(fā)送SYN攻擊的情形,證實本方法的可行性。

[1] 李柏松. 物聯(lián)網(wǎng)僵尸網(wǎng)絡(luò)嚴重威脅網(wǎng)絡(luò)基礎(chǔ)設(shè)施安全[J]. 信息安全研究, 2016, 2(11): 1042-1048.

[2] 王 睿. 一種基于回溯的 Web 上應(yīng)用層 DDOS 檢測防范機制[J]. 計算機科學(xué), 2013, 40(11A): 175-177.

[3] 王 進, 陽小龍, 隆克平. 基于大偏差統(tǒng)計模型的 Http-Flood DDoS 檢測機制及性能分析[J]. 軟件學(xué)報, 2012, 23(5): 1272-1280.

[4] 王風(fēng)宇, 曹首峰, 肖 軍, 等. 一種基于 Web 群體外聯(lián)行為的應(yīng)用層 DDoS 檢測方法[J]. 軟件學(xué)報, 2013, 6.

[5] 楊宏宇, 常 媛. 基于 K 均值多重主成分分析的 App-DDoS 檢測方法[J]. 通信學(xué)報, 2014, 35(5): 16-24.

[6] 羅 華,胡光岷,姚興苗. 基于網(wǎng)絡(luò)全局流量異常特征的DDoS攻擊檢測[J]. 計算機應(yīng)用,2007(2):314-317.

[7] Chen Y, Hwang K. Collaborative change detection of DDoS attacks on community and ISP networks[A].Collaborative Technologies and Systems, 2006. CTS 2006. International Symposium on. IEEE[C]. 2006: 401-410.

[8] Yuan J, Mills K. Monitoring the macroscopic effect of DDoS flooding attacks[J]. IEEE Transactions on Dependable and Secure Computing, 2005, 2(4): 324-335.

[9] Mirkovic J, Prier G, Reiher P. Attacking DDoS at the source[A].Network Protocols, 2002. Proceedings. 10th IEEE International Conference on. IEEE[C]. 2002: 312-321.

[10] Mirkovic J. D-WARD: source-end defense against distributed denial-of-service attacks[J]. 2003.

[11] 于 明, 王東菊. TCP DDoS 攻擊流的源端網(wǎng)絡(luò)可檢測性分析[J]. 山東大學(xué)學(xué)報 (理學(xué)版), 2012, 47(11): 50-53.

[12] 江 健, 諸葛建偉, 段海新, 等. 僵尸網(wǎng)絡(luò)機理與防御技術(shù)[J]. 軟件學(xué)報, 2012, 23(1): 82-96.

[13] https://www.simpleweb.org/wiki/index.php/Traces Pcap_Traces[EB/OL].

[14] https://github.com/jgamblin/Mirai-Source-Code[EB/OL].

猜你喜歡
內(nèi)核IP地址路由器
萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
買千兆路由器看接口參數(shù)
科教新報(2022年24期)2022-07-08 02:54:21
強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
鐵路遠動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
Linux內(nèi)核mmap保護機制研究
基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
黑龍江電力(2017年1期)2017-05-17 04:25:16
你所不知道的WIFI路由器使用方法?
無線路由器輻射可忽略
通過QQ郵件查看好友IP地址
济南市| 兴仁县| 溧阳市| 休宁县| 综艺| 凤冈县| 宜春市| 邮箱| 兖州市| 明溪县| 鹰潭市| 且末县| 奉化市| 上饶市| 宜良县| 宽甸| 密山市| 射阳县| 延吉市| 大关县| 红原县| 富宁县| 双柏县| 西充县| 会泽县| 平乐县| 信丰县| 布尔津县| 腾冲县| 高安市| 页游| 蓬安县| 新巴尔虎右旗| 白城市| 镇安县| 利川市| 甘谷县| 盘山县| 绥化市| 京山县| 益阳市|