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

?

網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)的設(shè)計和實現(xiàn)

2012-04-29 14:43:38李佳靜高潤智孫陽陽楊功江趙彥
科技創(chuàng)新導(dǎo)報 2012年34期
關(guān)鍵詞:會話應(yīng)用層報文

李佳靜 高潤智 孫陽陽 楊功江 趙彥

摘 要:應(yīng)用層會話分析可以用來反應(yīng)網(wǎng)絡(luò)狀態(tài)、掌握用戶習(xí)慣以及發(fā)現(xiàn)潛在的安全威脅。該文提出了一種網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)的設(shè)計和實現(xiàn)方法,給出了應(yīng)用層協(xié)議包括固定端口和可變端口協(xié)議的分析算法。實驗表明,該文的方法能夠有效地在對局域網(wǎng)內(nèi)的會話進(jìn)行識別和統(tǒng)計。

關(guān)鍵字:計算機網(wǎng)絡(luò) 協(xié)議分析 端口 數(shù)據(jù)庫

中圖分類字:TP319 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2012)12(a)-00-03

當(dāng)前政府、銀行、企業(yè)等機構(gòu)紛紛連接到互聯(lián)網(wǎng)中,越來越多的核心業(yè)務(wù)在互聯(lián)網(wǎng)上完成。網(wǎng)絡(luò)為人們提供了極大的便利,已經(jīng)逐漸成為很多用戶完成相關(guān)業(yè)務(wù)的非常重要的、不可或缺的手段。然而,網(wǎng)絡(luò)的不斷普及也帶來了其安全問題。各種各樣的后門、代碼攻擊、蠕蟲等無時無刻不在對用戶的網(wǎng)絡(luò)進(jìn)行著攻擊,造成網(wǎng)絡(luò)用戶的服務(wù)被拒絕、企業(yè)或個人機密信息被竊取等等一系列損失。因此對網(wǎng)絡(luò)的監(jiān)測和管理成為一個急需解決的問題。

應(yīng)用層會話分析是網(wǎng)絡(luò)狀態(tài)監(jiān)測和管理的一個重要組成部分。應(yīng)用層會話分析具有如下的意義。

(1)應(yīng)用層會話分析的結(jié)果能夠反映網(wǎng)絡(luò)的狀態(tài)。根據(jù)應(yīng)用層會話的統(tǒng)計信息,能夠得知傳輸中斷、VoIP語音質(zhì)量及應(yīng)用服務(wù)的響應(yīng)時間等,從而提供更好的網(wǎng)絡(luò)服務(wù);

(2)應(yīng)用層會話分析的結(jié)果可以用來掌握用戶的愛好和習(xí)慣,進(jìn)而進(jìn)行網(wǎng)絡(luò)的監(jiān)控等管理;

(3)應(yīng)用層會話分析能夠發(fā)現(xiàn)潛在的安全威脅,比如蠕蟲和網(wǎng)絡(luò)入侵,在沒有造成更大的危害之前進(jìn)行響應(yīng)。

目前,網(wǎng)絡(luò)的監(jiān)測和管理有多種方式可以實現(xiàn),主要分為簡單網(wǎng)絡(luò)管理SNMP,F(xiàn)LOW和Sniffing。簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)是應(yīng)用最廣泛的網(wǎng)關(guān)協(xié)議。SNMP構(gòu)架中包含若干個被管理的網(wǎng)絡(luò)接點設(shè)備以及至少一個管理工作站。工作站通過輪詢或者中斷的方法從被管理的網(wǎng)絡(luò)設(shè)備中收集數(shù)據(jù)信息。Flow技術(shù)采用集中式的管理,由核心交換機或路由器提供信息。Sniffer技術(shù)可以截取完整的數(shù)據(jù)包,因此得到的信息最為完整,甚至可以還原和重現(xiàn)原始的網(wǎng)絡(luò)通信內(nèi)容。

該文在Sniffer技術(shù)的基礎(chǔ)上,提出了網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)的設(shè)計和實現(xiàn)方法。該方法給出了應(yīng)用層會話分析的工作流程,以及在應(yīng)用層會話分析中各種關(guān)鍵問題的算法。基于這些算法,該文實現(xiàn)了一個網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng),并給出使用該系統(tǒng)在真實的網(wǎng)絡(luò)中進(jìn)行實驗的結(jié)果和分析。

1 網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)的設(shè)計

根據(jù)TCP/IP模型,網(wǎng)絡(luò)協(xié)議可以分為鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。為了實現(xiàn)應(yīng)用層會話分析,需要程序能夠獲得鏈路層的報文,并對鏈路層、網(wǎng)絡(luò)層和傳輸層的協(xié)議進(jìn)行解析,并在此基礎(chǔ)上識別應(yīng)用層協(xié)議類型并確定會話的建立和結(jié)束;同時為了方便用戶查詢,需要建立會話信息的數(shù)據(jù)庫表。對應(yīng)于以上的四個功能,將網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)設(shè)計為如下四個模塊:數(shù)據(jù)包捕獲模塊,基本協(xié)議解碼模塊,應(yīng)用層協(xié)議分析模塊和數(shù)據(jù)庫管理模塊。下面分別給出這些模塊的設(shè)計:

1.1 數(shù)據(jù)包捕獲模塊

數(shù)據(jù)包捕獲庫模塊實現(xiàn)鏈路層數(shù)據(jù)幀獲取,從網(wǎng)卡中直接獲取數(shù)據(jù)鏈路層數(shù)據(jù)包,對數(shù)據(jù)包進(jìn)行一定的解析,提供一套自己的內(nèi)存管理機制,并向上層應(yīng)用提供一套接口,使上層應(yīng)用程序可以很簡便的完成數(shù)據(jù)包獲取。在實現(xiàn)數(shù)據(jù)包捕獲的時候,還應(yīng)該考慮到效率的問題,盡量減少丟包情況的發(fā)生。

1.2 基本協(xié)議解碼模塊

基本協(xié)議將數(shù)據(jù)包捕獲模塊監(jiān)聽到的數(shù)據(jù)包進(jìn)行協(xié)議解碼,并將標(biāo)志了各個字段的數(shù)據(jù)包上傳給應(yīng)用層協(xié)議分析模塊。基本協(xié)議解析模塊模擬操作系統(tǒng)中的協(xié)議棧處理過程,按照鏈路層、網(wǎng)絡(luò)層、傳輸層的順序以此將數(shù)據(jù)包的包頭各字段進(jìn)行標(biāo)記,同時對數(shù)據(jù)進(jìn)行校驗和檢查。

1.3 會話分析模塊

會話分析在基本協(xié)議解析的基礎(chǔ)上,以會話為單位進(jìn)行網(wǎng)絡(luò)流量的分析。該文利用網(wǎng)絡(luò)報文中的如下字段來判定它所屬于的會話:源IP地址、目的IP地址、源端口、目的端口和應(yīng)用層協(xié)議的類型。即同一個會話中的數(shù)據(jù)報文具有的以上字段具有相同

的值。

因此,分析一個網(wǎng)絡(luò)報文的應(yīng)用層協(xié)議的類型,是進(jìn)行會話分析的基礎(chǔ)。應(yīng)用層的協(xié)議種類繁多,在進(jìn)行分析的時候要針對不同的協(xié)議采用不同的方法。例如對于固定端口的協(xié)議,如http協(xié)議等,可以根據(jù)服務(wù)的端口80或8080來識別;對于一些服務(wù)端口需要經(jīng)過協(xié)商確定的協(xié)議,如bittorrent協(xié)議和skype協(xié)議等,端口匹配的方法不再適用。

這時需要根據(jù)報文數(shù)據(jù)的某些特征,例如包含一些特殊的字符串來進(jìn)行識別。例如在bittorrent協(xié)議的報文數(shù)據(jù)中通常包含一個長度為19字節(jié)的字符串“bittorrent protocol”。

因此需要適當(dāng)?shù)姆椒▽勺兌丝诘膮f(xié)議特征進(jìn)行描述,使用并行模式匹配算法,對報文數(shù)據(jù)進(jìn)行匹配。應(yīng)用層協(xié)議分析模塊同時還要對每個會話中的網(wǎng)絡(luò)報文數(shù)目和數(shù)據(jù)字節(jié)數(shù)進(jìn)行統(tǒng)計。

另外,為了避免網(wǎng)絡(luò)會話數(shù)量的急劇增長,應(yīng)用層協(xié)議分析模塊還要給出判斷會話結(jié)束的策略。會話結(jié)束分為兩種情況:正常結(jié)束和非正常結(jié)束。例如,經(jīng)過TCP協(xié)議的兩次握手,完成會話就是正常結(jié)束的情況;對于一段時間內(nèi)沒有新數(shù)據(jù)包到來的會話,從數(shù)據(jù)庫中刪除。

1.4 數(shù)據(jù)庫模塊

數(shù)據(jù)庫模塊要完成數(shù)據(jù)庫的連接,以及插入新會話、更新會話的信息以及刪除會話記錄的相應(yīng)操作。

2 網(wǎng)絡(luò)應(yīng)用層會話分析工具的實現(xiàn)

基于以上的設(shè)計思路,該文實現(xiàn)了一個網(wǎng)絡(luò)應(yīng)用層會話分析工具。下面分別介紹各模塊實現(xiàn)時的要點。

2.1 數(shù)據(jù)包捕獲模塊的實現(xiàn)

為了捕捉到鏈路層上的所有通信,該文將監(jiān)控主機上的網(wǎng)卡設(shè)置為混雜模式。在非交換式網(wǎng)絡(luò)中,這將是整個網(wǎng)絡(luò)的通信。對于交換式網(wǎng)絡(luò),需要在交換機上設(shè)定端口鏡像,使監(jiān)控主機可以截取到廣播之外的網(wǎng)絡(luò)包。考慮到效率問題,該文中使用MMAPed pcap完成數(shù)據(jù)包捕獲工作。MMAPed pcap中使用一個環(huán)狀的緩沖內(nèi)存管理機制,減少了內(nèi)存拷貝的次數(shù),防止在突發(fā)大流量數(shù)據(jù)時丟包情況的發(fā)生。

2.2 基本協(xié)議解析模塊的實現(xiàn)

基本協(xié)議解析模塊的工作分成以下三個步驟。

(1)根據(jù)pcap_datalink函數(shù)的返回值,得到鏈路層協(xié)議的類型,例如以太網(wǎng)或點到點網(wǎng)絡(luò);然后根據(jù)各鏈路層協(xié)議的格式,標(biāo)識出其中每個字段的范圍;并根據(jù)nProtocolType值,得到網(wǎng)絡(luò)層協(xié)議的類型,例如IP協(xié)議,將報文傳遞給網(wǎng)絡(luò)層協(xié)議分析函數(shù);

(2)根據(jù)網(wǎng)絡(luò)層協(xié)議的包頭結(jié)構(gòu),標(biāo)志出網(wǎng)絡(luò)層協(xié)議的各個字段;根據(jù)報文頭部的nIpProto值,得到傳輸層協(xié)議的類型,并傳遞給傳輸層協(xié)議分析函數(shù);

(3)根據(jù)傳輸層各協(xié)議的包頭結(jié)構(gòu),標(biāo)志出傳輸層協(xié)議的各個字段,將數(shù)據(jù)報文傳遞給應(yīng)用層會話分析模塊。

圖1 網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)的工作框架

2.3 會話分析模塊的實現(xiàn)

程序初始化時,將應(yīng)用層協(xié)議的正則表達(dá)式從文件中讀入,每個正則表達(dá)式要進(jìn)行編譯和預(yù)處理,以便能夠進(jìn)行匹配。

圖2中給出了應(yīng)用層會話分析模塊的工作流程。對于每個到來的數(shù)據(jù)包,檢查是否是新的會話;如果是新建的會話,則新建一個會話,填寫它的修改時間為當(dāng)前時間,數(shù)據(jù)包個數(shù)為1,字節(jié)數(shù)為該數(shù)據(jù)包的字節(jié)個數(shù);否則更新會話的修改時間為當(dāng)前時間,數(shù)據(jù)包個數(shù)加1,字節(jié)數(shù)增加該數(shù)據(jù)包的字節(jié)個數(shù)。如果已經(jīng)識別該會話的協(xié)議,則處理下一個數(shù)據(jù)包;否則,若該會話的數(shù)據(jù)包個數(shù)已經(jīng)超過8,則認(rèn)為該會話使用了未知的協(xié)議,將協(xié)議字段填寫為“unknown”。對于數(shù)據(jù)包個數(shù)沒有超過8的協(xié)議,首先判斷端口是否為已知服務(wù),若為已知服務(wù)則填寫協(xié)議。若不為已知服務(wù),則對報文數(shù)據(jù)部分進(jìn)行正則匹配,匹配成功則填寫協(xié)議字段。

對于會話結(jié)束該文采用如下判斷方法:對于連接的雙方A和B,當(dāng)A向B發(fā)送了一個FIN包,B回復(fù)一個ACK包,之后B向A發(fā)送一個FIN包,A回復(fù)一個ACK包,即經(jīng)過了兩次握手則認(rèn)為TCP連接正常結(jié)束。該文為每個會話增加了如下四個數(shù)據(jù)項:srcFIN,dstACK,dstFIN,srcACK來分別表示兩次握手時的數(shù)據(jù)包,它們的初始值為FALSE,當(dāng)該會話接收到相應(yīng)的數(shù)據(jù)包時,將對應(yīng)的數(shù)據(jù)項值更改為TRUE。當(dāng)一個會話的(srcFIN&&dstACK&&dstFIN&&srcACK==TRUE)成立時,則認(rèn)為該會話正常結(jié)束。在一段時間內(nèi)沒有新數(shù)據(jù)包到來則認(rèn)為該會話非正常結(jié)束,在目前的系統(tǒng)中超時設(shè)置為300 s。

2.4 數(shù)據(jù)庫模塊的實現(xiàn)

數(shù)據(jù)庫模塊首先連接數(shù)據(jù)庫,然后根據(jù)應(yīng)用層會話分析模塊的請求,對數(shù)據(jù)庫進(jìn)行操作。比如,根據(jù)應(yīng)用層會話分析模塊的新建會話請求,將新建會話的信息轉(zhuǎn)化為正確的mysql語句,在數(shù)據(jù)表中插入新的表項。為了提高系統(tǒng)的可擴展性,數(shù)據(jù)庫模塊以插件實現(xiàn)。

圖2 會話分析模塊的工作流程

3 實驗和討論

見表1。

基于以上方法,該文實現(xiàn)了一個應(yīng)用層會話分析系統(tǒng)。該系統(tǒng)使用C語言實現(xiàn),在Ubuntu 10.10版本下運行,網(wǎng)絡(luò)環(huán)境為包含兩臺主機的小型局域網(wǎng),控制主機配置為Inter Celeron CPU 1.8 GHZ,2.0G RAM。系統(tǒng)運行10 min之后,統(tǒng)計得到了159個會話,其中ID是系統(tǒng)為每個會話分配的,作為主鍵;srcIP,dstIP,srcPort和dstPort分別表示源IP,目的IP,源端口和目的端口,Protocol表示應(yīng)用層協(xié)議,count表示該會話中的報文個數(shù),datas表示該會話中的數(shù)據(jù)字節(jié)數(shù),firstTime是當(dāng)接收到第一個數(shù)據(jù)包時調(diào)用gettimeofday得到的當(dāng)前時間。由于會話過多,省略一些相似的會話,給出部分實驗結(jié)果。

以上數(shù)據(jù)表明,該文的方法可以捕獲局域網(wǎng)內(nèi)部的全部數(shù)據(jù)包,并且以應(yīng)用層會話為單位,進(jìn)行數(shù)據(jù)包的統(tǒng)計和分析。

4 結(jié)語

應(yīng)用層協(xié)議種類繁多,不同的應(yīng)用層協(xié)議數(shù)據(jù)具有不同的格式,很難找到一種通用的模式來適用于各種應(yīng)用協(xié)議的分析。該文提出了一種對網(wǎng)絡(luò)應(yīng)用層會話分析系統(tǒng)的設(shè)計和實現(xiàn)的方法,針對應(yīng)用層會話分析中的一些關(guān)鍵問題給出了解決辦法。通過在真實網(wǎng)絡(luò)中的實驗,證明該文的方法能夠有效地在對局域網(wǎng)內(nèi)的會話進(jìn)行識別和統(tǒng)計。在應(yīng)用層會話分析的基礎(chǔ)上,可以進(jìn)一步進(jìn)行網(wǎng)絡(luò)的故障管理、性能管理和安全管理等。

參考文獻(xiàn)

[1] 謝希仁.計算機網(wǎng)絡(luò)[M].5版.北京:電子工業(yè)出版社,2008.

[2] 矯健.基于WinPcap網(wǎng)絡(luò)數(shù)據(jù)包捕獲程序的設(shè)計與實現(xiàn)[J].計算機與網(wǎng)絡(luò),2008:163-165.

[3] 平震宇.Libpcap數(shù)據(jù)包捕獲機制剖析與研究[J].信息網(wǎng)絡(luò)安全,2008(8):37-39.

[4] 謝柏林,余順爭.基于應(yīng)用層協(xié)議分析的應(yīng)用層實時主動防御系統(tǒng)[J].計算機學(xué)報,2011,34(3):452-463.

[5] 牟喬.準(zhǔn)確高效的應(yīng)用層協(xié)議分析識別方法[J].計算機工程與科學(xué),2010(8):39-45.

猜你喜歡
會話應(yīng)用層報文
基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
淺析反駁類報文要點
中國外匯(2019年11期)2019-08-27 02:06:30
有意冒犯性言語的會話含義分析
基于分級保護(hù)的OA系統(tǒng)應(yīng)用層訪問控制研究
漢語教材中的會話結(jié)構(gòu)特征及其語用功能呈現(xiàn)——基于85個會話片段的個案研究
ATS與列車通信報文分析
新一代雙向互動電力線通信技術(shù)的應(yīng)用層協(xié)議研究
物聯(lián)網(wǎng)技術(shù)在信息機房制冷系統(tǒng)中的應(yīng)用
沖突語的會話分析研究
喀喇沁旗| 南宁市| 额尔古纳市| 和林格尔县| 大名县| 阿城市| 阿勒泰市| 色达县| 华亭县| 营口市| 怀宁县| 平邑县| 滁州市| 朝阳市| 鲜城| 云林县| 黄梅县| 昌平区| 天等县| 香河县| 金昌市| 双城市| 浪卡子县| 常宁市| 大宁县| 绵阳市| 昌乐县| 云阳县| 扎兰屯市| 博罗县| 阿合奇县| 常州市| 昌乐县| 茶陵县| 电白县| 常熟市| 宁陵县| 内丘县| 屏山县| 化德县| 靖边县|