李 華
鹽城市醫(yī)療保險(xiǎn)基金中心,江蘇鹽城 224001
局域網(wǎng)網(wǎng)絡(luò)類型探測(cè)已作為網(wǎng)絡(luò)安全研究的一項(xiàng)重要內(nèi)容[1]。本文主要根據(jù)局域網(wǎng)網(wǎng)絡(luò)類型探測(cè)的基本技術(shù),尤其是ARP協(xié)議探測(cè)技術(shù),借助于winpcap來(lái)實(shí)現(xiàn)基本的局域網(wǎng)網(wǎng)絡(luò)類型探測(cè)系統(tǒng)。
數(shù)據(jù)環(huán)境配置方面:需要一臺(tái)或一臺(tái)以上的Windows工作站〔具有至少一塊Ether網(wǎng)卡〕,若干臺(tái)工作在TCP/IP協(xié)議下的主機(jī),組成一個(gè)小型工作在同一網(wǎng)段的VLAN,或者該VLAN可以通過(guò)網(wǎng)關(guān)或路由跟外部網(wǎng)絡(luò)建立連接。
軟件環(huán)境方面:操作系統(tǒng)Windows 2000;底層驅(qū)動(dòng) Winpcap 3.0。
硬件環(huán)境方面:網(wǎng)絡(luò)環(huán)境;一臺(tái)PC機(jī);一塊以太網(wǎng)網(wǎng)卡。
該局域網(wǎng)網(wǎng)絡(luò)類型探測(cè)系統(tǒng)實(shí)現(xiàn)的基本功能可以概括為以下幾點(diǎn):
1)首先根據(jù)設(shè)置的過(guò)濾條件對(duì)經(jīng)過(guò)主機(jī)的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行截獲,實(shí)現(xiàn)抓取敏感數(shù)據(jù)包的目的;2)然后把截獲的數(shù)據(jù)包暫時(shí)保存在用戶指定的文件中;3)加載在上一步中保存的數(shù)據(jù)包到軟件,根據(jù)ARP協(xié)議及TCP/IP協(xié)議中各數(shù)據(jù)包的格式對(duì)加載的數(shù)據(jù)包進(jìn)行包分析;4)對(duì)獲得的報(bào)頭中源IP地址、目的1P地址、源端口、目的端口等信息顯示并保存到用戶指定的文件中,以實(shí)現(xiàn)將來(lái)對(duì)相關(guān)內(nèi)容的分析,由此可以判定該局域網(wǎng)是何種類型。
該系統(tǒng)的程序流程圖如圖1所示。其與軟件的模塊相對(duì)應(yīng),并以直觀的方式將軟件流程表示出來(lái),以便于編程過(guò)程中更好地實(shí)現(xiàn)局域網(wǎng)類型探測(cè)的功能。
圖1 系統(tǒng)程序流程圖
可以看出對(duì)具體的數(shù)據(jù)包捕獲和具體的數(shù)據(jù)包解析的過(guò)程是整個(gè)系統(tǒng)最關(guān)鍵是兩大步驟,是最終進(jìn)行類型判定的重要依據(jù)??紤]各種條件判斷,根據(jù)條件判斷的結(jié)果進(jìn)行不同的處理。
本捕獲程序可以分為兩大部分:驅(qū)動(dòng)程序部分和應(yīng)用程序部分[2]。驅(qū)動(dòng)程序部分工作在核心態(tài),負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的接收和發(fā)送;應(yīng)用程序部分工作在用戶態(tài),除了與驅(qū)動(dòng)程序進(jìn)行正確的通訊外,還要將有關(guān)信息顯示出來(lái),并提供存盤,過(guò)濾等操作。緩沖區(qū)由應(yīng)用程序動(dòng)態(tài)分配。實(shí)現(xiàn)過(guò)程的關(guān)鍵代碼如下所示:
捕獲后的數(shù)據(jù)幀經(jīng)過(guò)解析才能得到想要的信息,如所需要的數(shù)據(jù)幀的源地址,目的地址,協(xié)議類型等信息。調(diào)用WinPcap底層驅(qū)動(dòng)接收函數(shù)接收的數(shù)據(jù)包,除了包含用戶數(shù)據(jù)外,還包含時(shí)間戳、IP/TCP報(bào)頭等原始信息,所以獲取數(shù)據(jù)包以后,可以方便的對(duì)數(shù)據(jù)包進(jìn)行分析。實(shí)現(xiàn)過(guò)程的關(guān)鍵偽碼如下所示:
根據(jù)所獲取的數(shù)據(jù),本地主機(jī)不斷地接收數(shù)據(jù)包,進(jìn)行分析處理。如果接收到的包中發(fā)送目的MAC不是本地主機(jī)的MAC,并結(jié)合各數(shù)據(jù)包中的協(xié)議信息,就可以精確地知道報(bào)文是廣播的,因此,可以判定是共享式局域網(wǎng)絡(luò),否則是交換式局域網(wǎng)。
局域網(wǎng)的廣播機(jī)制和網(wǎng)卡的特定的混雜工作模式?jīng)Q定了網(wǎng)絡(luò)數(shù)據(jù)捕獲的可能性。本文的研究,不但可以準(zhǔn)確分析局域網(wǎng)的網(wǎng)絡(luò)類型,還可防止網(wǎng)絡(luò)遭到入侵、攻擊或破壞,甚至可以用來(lái)學(xué)習(xí)網(wǎng)絡(luò)協(xié)議知識(shí)。
[1]王宇,張寧.網(wǎng)絡(luò)監(jiān)聽(tīng)器原理分析與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2008,20(7):142-145.
[2]胡曉元,史浩山.WinPcap包截獲系統(tǒng)的分析及其應(yīng)用[J].計(jì)算機(jī)工程,2009,1,31(2):96-98.