張恩萌 代紅


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