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

?

基于libpcap的無線網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)技術(shù)研究

2014-09-24 21:23:29袁澤宇肖慶正
無線互聯(lián)科技 2014年7期
關(guān)鍵詞:數(shù)據(jù)分析

袁澤宇 肖慶正

摘要:針對網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,分析了基于libpcpap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲應(yīng)用流程,研究了網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)的工作流程:通過對實時/離線數(shù)據(jù)的分析,對各個應(yīng)用層協(xié)議進行還原,并基于還原出的信息進行數(shù)據(jù)挖掘和行為回放。

關(guān)鍵詞:libpcap;數(shù)據(jù)分析;協(xié)議還原1引言

當前的社會是一個信息的社會,網(wǎng)絡(luò)信息是社會活動的重要資源,對政治、經(jīng)濟和文化有著深遠影響。由于移動通信技術(shù)的不斷發(fā)展,探索無線網(wǎng)絡(luò)信息監(jiān)聽與還原技術(shù)有助于信息安全體系的發(fā)展,對于維護社會政治穩(wěn)定和國家信息安全具有重要的現(xiàn)實意義。

無線網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)主要基于捕獲到的無線局域網(wǎng)數(shù)據(jù)幀,采用分層協(xié)議還原技術(shù),并基于各層的信息實現(xiàn)重點目標識別和網(wǎng)絡(luò)行為威脅等級分析。在無線局域網(wǎng)中采用靜默偵聽和存儲轉(zhuǎn)發(fā)兩種工作模式,實現(xiàn)監(jiān)聽、存儲并自動準實時持續(xù)恢復(fù)網(wǎng)絡(luò)用戶的傳輸信息。

2libpcap應(yīng)用流程

libpcap主要由兩部分組成:網(wǎng)絡(luò)分接頭(Network Tap)和數(shù)據(jù)過濾器(Packet Filter)。網(wǎng)絡(luò)分接頭從網(wǎng)絡(luò)設(shè)備驅(qū)動程序中收集數(shù)據(jù)拷貝,過濾器決定是否接收該數(shù)據(jù)包。Libpcap利用BSD Packet Filter(BPF)算法對網(wǎng)卡接收到的鏈路層數(shù)據(jù)包進行過濾。BPF算法的基本思想是在有BPF監(jiān)聽的網(wǎng)絡(luò)中,網(wǎng)卡驅(qū)動將接收到的數(shù)據(jù)包復(fù)制一份交給BPF過濾器,過濾器根據(jù)用戶定義的規(guī)則決定是否接收此數(shù)據(jù)包以及需要拷貝該數(shù)據(jù)包的那些內(nèi)容,然后將過濾后的數(shù)據(jù)給與過濾器相關(guān)聯(lián)的上層應(yīng)用程序。

libpcap的包捕獲機制就是在數(shù)據(jù)鏈路層加一個旁路處理。當一個數(shù)據(jù)包到達網(wǎng)絡(luò)接口時,libpcap首先利用已經(jīng)創(chuàng)建的Socket從鏈路層驅(qū)動程序中獲得該數(shù)據(jù)包的拷貝,再通過Tap函數(shù)將數(shù)據(jù)包發(fā)給BPF過濾器。BPF過濾器根據(jù)用戶已經(jīng)定義好的過濾規(guī)則對數(shù)據(jù)包進行逐一匹配,匹配成功則放入內(nèi)核緩沖區(qū),并傳遞給用戶緩沖區(qū),匹配失敗則直接丟棄。如果沒有設(shè)置過濾規(guī)則,所有數(shù)據(jù)包都將放入內(nèi)核緩沖區(qū),并傳遞給用戶層緩沖區(qū)。

libpcap主要函數(shù)如下:

pcap_findalldevs()函數(shù)用查找機器的所有可用的網(wǎng)絡(luò)接口,用一個網(wǎng)絡(luò)接口鏈表示返回。

pcap_lookupdev()函數(shù)用于查找網(wǎng)絡(luò)設(shè)備,返回可被pcap_open_live()函數(shù)調(diào)用的網(wǎng)絡(luò)設(shè)備名指針。

pcap_open_live()函數(shù)用于打開網(wǎng)絡(luò)設(shè)備,并且返回用于捕獲網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)據(jù)包捕獲描述字。對于此網(wǎng)絡(luò)設(shè)備的操作都要基于此網(wǎng)絡(luò)設(shè)備描述字。

pcap_lookupnet()函數(shù)獲得指定網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)號和掩碼。

pcap_compile()函數(shù)用于將用戶制定的過濾策略編譯到過濾程序中。

pcap_setfilter()函數(shù)用于設(shè)置過濾器。

pcap_loop()函數(shù)或pcap_dispatch()函數(shù)用于捕獲數(shù)據(jù)包,捕獲后還可以進行處理,此外pcap_next()和pcap_next_ex()兩個函數(shù)也可以用來捕獲數(shù)據(jù)包。

pcap_close()函數(shù)用于關(guān)閉網(wǎng)絡(luò)設(shè)備,釋放資源。

3基于libpcap的數(shù)據(jù)包捕獲流程

首先,調(diào)用Open_pcap函數(shù)對網(wǎng)卡進行初始化設(shè)置,使網(wǎng)卡工作在混雜模式,以監(jiān)聽網(wǎng)絡(luò)上的所有數(shù)據(jù)包。當有數(shù)據(jù)包到達時,網(wǎng)卡上的DMA引擎將包放入到內(nèi)核rx_ring空間,同時向CPU發(fā)起中斷服務(wù)請求,進入中斷服務(wù)程序,然后調(diào)用網(wǎng)卡驅(qū)動程序中的函數(shù)將數(shù)據(jù)包封裝成sk_buff結(jié)構(gòu),并脫離驅(qū)動程序,轉(zhuǎn)到通用的處理函數(shù)netif_rx中。netif_rx函數(shù)將數(shù)據(jù)包傳入等待隊列,并置軟中斷標志位,其目的是使上層的處理采用軟中斷(do_softirq)來提高CPU的處理效率。在軟中斷中調(diào)用net_rx_action()函數(shù)輪詢backlog隊列,調(diào)用ip_rev()函數(shù)對每個數(shù)據(jù)包做進一步處理,完成將數(shù)據(jù)傳送到上層協(xié)議[1]。

4網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)流程描述

網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)的工作流程如下圖所示:通過對實時/離線數(shù)據(jù)的分析,對各個應(yīng)用層協(xié)議進行還原,并將還原出的信息存儲至數(shù)據(jù)庫和磁盤,并基于還原出的信息進行數(shù)據(jù)挖掘和行為回放。

4.1 數(shù)據(jù)流重組

數(shù)據(jù)流重組過程將原始的單個數(shù)據(jù)包重組為數(shù)據(jù)流。其主要是根據(jù)各報文的包序號、各個標識位的狀態(tài),丟棄重傳,處理亂序,將所有相關(guān)聯(lián)的報文重組為有序的會話流。

TCP協(xié)議采用了大量的機制保證數(shù)據(jù)的可靠傳輸,但在實際采集到的數(shù)據(jù)包中,將會采集到一些無用的數(shù)據(jù)包,例如重傳報文和亂序報文。因此,數(shù)據(jù)流重組模塊必須對這類數(shù)據(jù)包進行處理。

4.1.1 將無序的數(shù)據(jù)片流有序化

為了方便應(yīng)用層數(shù)據(jù)的還原,需要將無序的數(shù)據(jù)片流有序化,使其排序為一個有序的數(shù)據(jù)片流。在實現(xiàn)數(shù)據(jù)片有序化時,設(shè)置了一個緩沖隊列,該緩沖隊列的最大空間設(shè)置為滑動窗口的最大值。當接收到一個數(shù)據(jù)片段時。首先比較其數(shù)據(jù)片序號和應(yīng)獲得的數(shù)據(jù)片序號,假如兩者相同,則將其歸人已收的數(shù)據(jù)行列,并從緩沖隊列中將滿足出隊條件的數(shù)據(jù)出隊。若沒有,將其納人緩沖隊列中,并比較應(yīng)獲得的數(shù)據(jù)片序號和已獲得的數(shù)據(jù)片,判斷還需要何種數(shù)據(jù)片。

4.1.2 判斷應(yīng)用數(shù)據(jù)的起始和結(jié)束數(shù)據(jù)包

為了確定一個應(yīng)用層數(shù)據(jù)的起點和終點,必須研究對應(yīng)的應(yīng)用層數(shù)據(jù)格式。對于HTTP數(shù)據(jù),其有兩種數(shù)據(jù)內(nèi)容,一種為請求數(shù)據(jù)(Request),一種為響應(yīng)數(shù)據(jù)(Response)。對于請求數(shù)據(jù)來說,可以認為數(shù)據(jù)內(nèi)容以“GET”、“POST”、“HEAD”、“HTTP”開頭的即為起始數(shù)據(jù)片。對于請求信息結(jié)束的判定方法有兩種情況:若請求信息中含有Content-Length域,則可根據(jù)其值依次取出規(guī)定數(shù)目的內(nèi)容,即可確定結(jié)束數(shù)據(jù)片;若請求信息中不含Content-Length域,則可以以兩個CRLF作為結(jié)束標志。對于響應(yīng)數(shù)據(jù)來說,在設(shè)計時可以認為數(shù)據(jù)內(nèi)容為“HTTP”的即為起始數(shù)據(jù)片。對于響應(yīng)信息結(jié)束的判定方法同樣也有兩種情況:若響應(yīng)信息中含有Content-Length域,則可根據(jù)其值依次取出規(guī)定數(shù)目的內(nèi)容,即可確定結(jié)束數(shù)據(jù)片;若響應(yīng)信息中不含Content-Length域,則可根據(jù)該數(shù)據(jù)片是否是FIN片來確定。

如圖3展示了數(shù)據(jù)包重組的流程,數(shù)據(jù)流重組模塊從數(shù)據(jù)采集模塊的緩沖區(qū)讀取數(shù)據(jù)報,如果該數(shù)據(jù)包是第一個數(shù)據(jù)報,則插入List結(jié)構(gòu)體的第一個位置,否則逆序根據(jù)其報文序列號(Sequence Number)尋找插入位置。如果該序列號的報文已存在,則說明該數(shù)據(jù)報為重傳,將其丟棄。

4.2 應(yīng)用層協(xié)議還原

信息還原模塊的主要職責(zé)是根據(jù)不同的應(yīng)用層協(xié)議,按照特定的邏輯還原出數(shù)據(jù)流中負載的具體數(shù)據(jù)。

實現(xiàn)本模塊時首先需要研究各種常見的應(yīng)用層協(xié)議,整理其工作流程,然后還原出其中負載的數(shù)據(jù)。

4.2.1 HTTP

HTTP協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個標準。此協(xié)議是Web的核心。HTTP還原模塊還原了HTTP請求報文與響應(yīng)報文,從報文中得到通信信息。

4.2.2 FTP

FTP協(xié)議是TCP/IP網(wǎng)絡(luò)上兩臺計算機傳送文件的協(xié)議,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。FTP客戶機可以給服務(wù)器發(fā)出命令來下載文件,上載文件,創(chuàng)建或改變服務(wù)器上的目錄。通過解析FTP控制流進而得到數(shù)據(jù)流,最終從數(shù)據(jù)流中還原出傳輸?shù)奈募?/p>

數(shù)據(jù)存儲負責(zé)存儲重組及還原出的數(shù)據(jù)。此模塊又分為兩大子模塊,分別是數(shù)據(jù)庫存儲模塊和文件存儲模塊。其中,數(shù)據(jù)庫存儲模塊負責(zé)將數(shù)據(jù)包信息、流信息、HTTP信息、FTP信息和MSN信息存入數(shù)據(jù)庫;文件存儲模塊負責(zé)和文件相關(guān)的操作,如保存HTTP網(wǎng)頁文件,F(xiàn)TP文件等。

5結(jié)束語

本文首先對基于libpcap的數(shù)據(jù)包捕獲流程進行了分析,通過對TCP/IP協(xié)議棧進行研究,結(jié)合軟件逆向技術(shù),對HTTP、FTP語音協(xié)議進行分析,提出網(wǎng)絡(luò)數(shù)據(jù)還原方法;與此同時,通過對機器學(xué)習(xí)方法的研究,實現(xiàn)了網(wǎng)絡(luò)行為回放;根據(jù)理論研究并實際進行系統(tǒng)的研發(fā)和測試,實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)分解與重構(gòu)。

[參考文獻]

[1] 周照峰.高速網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)方法研究[J].科技經(jīng)濟市場,2009.

[2]畢學(xué)堯.高速網(wǎng)絡(luò)的數(shù)據(jù)獲取與分析研究[J].北京;中國科學(xué)院高能物理,2003.

[3]汪世義,秦品樂.基于Linux的高速網(wǎng)絡(luò)包捕獲技術(shù)研究[J].微型電腦應(yīng)用,2006.

[4]李芳馨,劉嘉勇.網(wǎng)絡(luò)數(shù)據(jù)流還原重組技術(shù)研究[J].通信技術(shù),2011.

猜你喜歡
數(shù)據(jù)分析
電子物證檢驗的數(shù)據(jù)分析與信息應(yīng)用研究
基于matlab曲線擬合的數(shù)據(jù)預(yù)測分析
商情(2016年40期)2016-11-28 11:28:07
分眾媒體趨勢下場景營銷的商業(yè)前景
商(2016年32期)2016-11-24 17:39:41
佛山某給水管線控制測量探討
科技資訊(2016年18期)2016-11-15 18:05:53
SPSS在環(huán)境地球化學(xué)中的應(yīng)用
考試周刊(2016年84期)2016-11-11 23:57:34
大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
我校如何利用體育大課間活動解決男生引體向上這個薄弱環(huán)節(jié)
體育時空(2016年8期)2016-10-25 18:02:39
Excel電子表格在財務(wù)日常工作中的應(yīng)用
淺析大數(shù)據(jù)時代背景下的市場營銷策略
新常態(tài)下集團公司內(nèi)部審計工作研究
中國市場(2016年36期)2016-10-19 04:31:23
巨鹿县| 泰来县| 新化县| 巧家县| 南平市| 堆龙德庆县| 玉溪市| 正蓝旗| 惠来县| 军事| 枞阳县| 罗田县| 普格县| 轮台县| 贵南县| 玛纳斯县| 富锦市| 徐水县| 白银市| 读书| 策勒县| 温泉县| 贺州市| 饶平县| 启东市| 永昌县| 望江县| 武定县| 景德镇市| 肃北| 肥城市| 富平县| 富阳市| 平果县| 左贡县| 弥渡县| 民乐县| 炉霍县| 简阳市| 五莲县| 鄂托克前旗|