張恩萌 代紅
摘要:網(wǎng)絡(luò)環(huán)境下發(fā)送的數(shù)據(jù)在到達(dá)指定目標(biāo)之前,通常會(huì)經(jīng)過不同的網(wǎng)絡(luò)設(shè)備。網(wǎng)絡(luò)數(shù)據(jù)采集分析器可以達(dá)到防止數(shù)據(jù)被竊取的目的。采集分析器是利用網(wǎng)絡(luò)上傳輸數(shù)據(jù)的捕獲、數(shù)據(jù)包的過濾來實(shí)現(xiàn)后續(xù)入侵檢測(cè)的分析和預(yù)警。這有助于系統(tǒng)處理網(wǎng)絡(luò)攻擊,擴(kuò)展系統(tǒng)管理員的安全管理能力。
關(guān)鍵詞:數(shù)據(jù)采集 局域網(wǎng) 數(shù)據(jù)交換 協(xié)議分析
1引言
數(shù)據(jù)采集在網(wǎng)絡(luò)安全上一直是一個(gè)比較熱點(diǎn)的話題,信息來源有基于網(wǎng)絡(luò)和基于日志兩種?;谥鳈C(jī)的信息源一般是通過主機(jī)系統(tǒng)曰志、應(yīng)用程序和監(jiān)控系統(tǒng)調(diào)用的信息收集途徑,對(duì)收集到的數(shù)據(jù)進(jìn)行檢測(cè)和分析。基于網(wǎng)絡(luò)的信息來源,即網(wǎng)絡(luò)通信過程中產(chǎn)生的數(shù)據(jù)包信息更加豐富,信息量更大。收集信息時(shí)一般將網(wǎng)卡設(shè)置為混合模式,這樣收集的信息更加全面,通過監(jiān)聽網(wǎng)絡(luò)段中所有的數(shù)據(jù)包進(jìn)行判斷。為此研究一種能夠服務(wù)于人類的數(shù)據(jù)采集分析器具有一定的理論和實(shí)用價(jià)值。
2系統(tǒng)需求分析
監(jiān)聽技術(shù)是網(wǎng)絡(luò)管理和應(yīng)用的基礎(chǔ),隨此系統(tǒng)設(shè)計(jì)就是實(shí)時(shí)觀測(cè)數(shù)據(jù)流動(dòng)情況,并智能的統(tǒng)計(jì)數(shù)據(jù)、分析數(shù)據(jù)、采集數(shù)據(jù),以獲得有用的信息,用于后期的網(wǎng)絡(luò)監(jiān)測(cè),時(shí)刻監(jiān)視網(wǎng)絡(luò)的狀態(tài)。系統(tǒng)需要實(shí)現(xiàn)的功能結(jié)構(gòu)圖如圖1所示。
3網(wǎng)絡(luò)數(shù)據(jù)采集分析器的設(shè)計(jì)與實(shí)現(xiàn)
3.1系統(tǒng)類的設(shè)計(jì)
系統(tǒng)使用套接字進(jìn)行編程,為了實(shí)現(xiàn)系統(tǒng)功能,設(shè)計(jì)了協(xié)議分析類、數(shù)據(jù)包統(tǒng)計(jì)類、程序界面類和繪制圖形類。程序開始需要使用JDCaptor類開啟線程,用來截獲數(shù)據(jù)包處理。具體利用Jpcap.processPacket()函數(shù)截獲數(shù)據(jù)包。再使用Jpcap類的包處理接口,每截獲一個(gè)數(shù)據(jù)包都放人數(shù)據(jù)包向量中。為了保證數(shù)據(jù)的實(shí)時(shí)性,使用Timer.start()和Timer.setRepeats()來進(jìn)行動(dòng)態(tài)綁定更新。使用向量來存儲(chǔ)協(xié)議所有的數(shù)據(jù)包,協(xié)議向量在每分析完一個(gè)數(shù)據(jù)包后加一。
協(xié)議分析類是根據(jù)不同協(xié)議層的數(shù)據(jù)包結(jié)構(gòu)格式而設(shè)計(jì)的相應(yīng)數(shù)據(jù)包解析類,具體包括IPV4協(xié)議分析類、ICMP協(xié)議分析類、TCP協(xié)議分析類和UDP協(xié)議分析類等各個(gè)協(xié)議分析類的編寫。數(shù)據(jù)包統(tǒng)計(jì)類是對(duì)所截獲的數(shù)據(jù)包按照所屬協(xié)議所在的不同層次分別進(jìn)行統(tǒng)計(jì),并動(dòng)態(tài)更新統(tǒng)計(jì)數(shù)據(jù)。設(shè)計(jì)的類包含NetworkStat、TransportStat和ApplicationStat統(tǒng)計(jì)類。
3.2采集分析器的流程設(shè)計(jì)
首先主線程開始時(shí)先將網(wǎng)卡設(shè)置成混雜模式。為了提供更好的人機(jī)界面,調(diào)用JDFrame類顯示分析器的主界面,同時(shí)對(duì)不同組件的不同狀態(tài)進(jìn)行設(shè)置,使其進(jìn)行動(dòng)態(tài)更新操作。同時(shí)利用JD CaptureDialog .getDeviceList()和JDCaptureDialog.getDeviceDescription()獲取局域網(wǎng)上所有的監(jiān)聽設(shè)備,即可以監(jiān)聽本局域網(wǎng)上所有設(shè)備的數(shù)據(jù)包。如果需要對(duì)指定的IP地址進(jìn)行監(jiān)聽,可以利用JSourceDialog類的功能。利用上文介紹的Jpcap.processPacket()函數(shù)可以循環(huán)截獲數(shù)據(jù)包。然后再對(duì)各層上捕獲到的數(shù)據(jù)包進(jìn)行協(xié)議首部分析。采集分析器的具體流程如圖2所示。
3.3捕獲數(shù)據(jù)包分析
在數(shù)據(jù)包捕獲后使用數(shù)據(jù)包分析裝載類將各個(gè)層上的協(xié)議分析類存儲(chǔ)到向量中,再利用此向量對(duì)數(shù)據(jù)包進(jìn)行解析。TCP/IP每一層上都有其重要協(xié)議,通過數(shù)據(jù)包采集和分析,可以獲取數(shù)據(jù)鏈路層以太網(wǎng)的源MAC地址、目的MAC地址;網(wǎng)絡(luò)層上的ARP數(shù)據(jù)報(bào)首部、IP數(shù)據(jù)報(bào)首部,從而得出IP首部的重要信息字段,如源IP地址、目的IP地址;傳輸層上的TCP協(xié)議首部和UDP協(xié)議首部等相關(guān)重要信息,包括源端口號(hào)和目的端口號(hào)等。這些信息為網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)判斷攻擊類型提供依據(jù)。例如滿足“(same_srv_rate<=0.22)and(diffsrv_rate<=0.09)”條件的為Neptune攻擊,即滿足連接到相同主機(jī)的相同servlce端口上的連接記錄百分比小于等于0.22,并且連接到相同主機(jī)的不同servlce端口上的連接記錄百分比小于等于0.09,則為Neptune攻擊。再如滿足“(samesrv_rate>0.22) and (wrong_fragment>O)and(protocol_type=icmp)”條件的,為pod攻擊。其含義為滿足連接到相同主機(jī)的相同servlce端口上的連接記錄百分比大于0.22,錯(cuò)誤分片數(shù)目大于O,并且協(xié)議類型為icmp,則為pod攻擊。
3.4數(shù)據(jù)采集分析器的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)采集分析器可以運(yùn)行在Windows XP操作系統(tǒng),在Eclipse平臺(tái)下采用Java語言進(jìn)行編程開發(fā)。在系統(tǒng)環(huán)境配置上需要安裝Java虛擬機(jī),安裝配置Jpcap包和WinPcap包。完成了JDCaptor、JDPacketAnalvzerLoader、JDStatisticsTakerLoader、JSniffer及各個(gè)層協(xié)議分析類的編寫。
分析器編程實(shí)現(xiàn)后,對(duì)其按照軟件工程開發(fā)思想進(jìn)行了單元測(cè)試集成測(cè)試確認(rèn)測(cè)試和系統(tǒng)測(cè)試以確保系統(tǒng)可以實(shí)現(xiàn)其預(yù)定功能,達(dá)到為網(wǎng)絡(luò)管理人員和網(wǎng)絡(luò)分析師的工作提供幫助的作用。
4結(jié)束語
數(shù)據(jù)采集分析器可以實(shí)現(xiàn)同一個(gè)局域網(wǎng)上數(shù)據(jù)的捕獲、各層協(xié)議首部的分析、局域網(wǎng)數(shù)據(jù)包的統(tǒng)計(jì)分析,并能將結(jié)果可視化進(jìn)行顯示,通過餅狀圖等方式查看每個(gè)協(xié)議的數(shù)據(jù)量,也可以通過輸入指定的IP地址進(jìn)行指定對(duì)象監(jiān)聽等操作。
參考文獻(xiàn)
[1]李世忠,一種智能網(wǎng)頁數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)與軟件工程,2018.(6):169.
[2]牛祥.淺析網(wǎng)絡(luò)數(shù)據(jù)采集的常規(guī)方法[J].信息系統(tǒng)工程,2018,(1):20-24.
[3]陳錦平,通信層數(shù)據(jù)交換中間件設(shè)計(jì)實(shí)現(xiàn)[J].2013,(3): 955-959.
[4]喬加強(qiáng).計(jì)算機(jī)網(wǎng)絡(luò)的安全威脅及防御技術(shù)[J].電子技術(shù)與軟件工程,2018,12:203.
[5]劉海燕,張鈺,畢建權(quán)等,基于分布式及協(xié)同式網(wǎng)絡(luò)入侵檢測(cè)技術(shù)綜述[J].計(jì)算機(jī)工程與應(yīng)用,2018,54(8):1-7.