專(zhuān)利名稱(chēng):一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全審計(jì)系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)的處理,具體涉及一種基于網(wǎng) 絡(luò)審計(jì)系統(tǒng)的網(wǎng)卡驅(qū)動(dòng)層報(bào)文過(guò)濾方法及一種基于網(wǎng)絡(luò)審計(jì)系統(tǒng)的報(bào)文過(guò)濾 子系統(tǒng)。
背景技術(shù):
高性能報(bào)文捕獲和處理是網(wǎng)絡(luò)安全審計(jì)系統(tǒng)的關(guān)鍵技術(shù)和基本問(wèn)題。網(wǎng) 絡(luò)審計(jì)系統(tǒng)是通過(guò)對(duì)被審計(jì)的網(wǎng)絡(luò)通信的報(bào)文捕獲、報(bào)文解析、碎片重組、 會(huì)話重組、協(xié)議解析等步驟并將協(xié)議參數(shù)及內(nèi)容和審計(jì)策略相匹配,從而對(duì) 違背安全策略的網(wǎng)絡(luò)通信進(jìn)行報(bào)警、記錄和阻斷的系統(tǒng)。該系統(tǒng)通常由部署 在交換機(jī)鏡像端口處的用于捕獲分析網(wǎng)絡(luò)通信報(bào)文的探測(cè)器和部署于普通桌 面計(jì)算機(jī)系統(tǒng)上的控制管理和數(shù)據(jù)存儲(chǔ)子系統(tǒng)構(gòu)成。參見(jiàn)圖1。
在常見(jiàn)的網(wǎng)絡(luò)審計(jì)系統(tǒng)部署方式當(dāng)中,審計(jì)系統(tǒng)的報(bào)文捕獲探測(cè)器部署 在交換機(jī)的鏡像端口處或者集線器的端口處,這樣捕獲的報(bào)文通信流量的大 部分都不是審計(jì)系統(tǒng)所要關(guān)注和記錄的。以下的常規(guī)的報(bào)文捕獲和處理階段
會(huì)消耗大量計(jì)算機(jī)I/0帶寬和CPU運(yùn)算能力、以及內(nèi)存資源。
1 )對(duì)于網(wǎng)絡(luò)報(bào)文的捕獲和傳送過(guò)程,為了獲取所審計(jì)的網(wǎng)絡(luò)的通信報(bào)文, 需要將以太網(wǎng)卡設(shè)置為混雜模式,接在以太網(wǎng)交換機(jī)的鏡像端口,由于通用 的網(wǎng)卡和驅(qū)動(dòng)程序在此模式下無(wú)法區(qū)分哪些是需要的報(bào)文,哪些是無(wú)用的報(bào) 文,其結(jié)果所有通過(guò)交換機(jī)鏡像端口或者集線器進(jìn)入捕獲報(bào)文網(wǎng)卡的報(bào)文都 將需要由驅(qū)動(dòng)程序傳送至操作系統(tǒng)協(xié)議棧的報(bào)文隊(duì)列,然后應(yīng)用程序通過(guò)操 作系統(tǒng)接口全部復(fù)制到應(yīng)用層,在此過(guò)程中,不需要關(guān)注的通信流量占用探
測(cè)器大部分的帶寬和CPU資源。
2 )對(duì)于報(bào)文的預(yù)處理階段,所有捕獲來(lái)的在緩沖區(qū)中的報(bào)文需要逐步 經(jīng)過(guò)報(bào)文的數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層直至應(yīng)用層的協(xié)議解碼,并對(duì)報(bào)文碎片進(jìn)行重組、對(duì)基于流的協(xié)議進(jìn)行流的重組合緩沖、對(duì) 基于會(huì)話的協(xié)議進(jìn)行會(huì)話重組,在此過(guò)程中所有釆集來(lái)的報(bào)文都將進(jìn)行這些 步驟的處理,無(wú)疑浪費(fèi)了探測(cè)器大量的CPU資源和內(nèi)存。
3)對(duì)于模式匹配和異常發(fā)現(xiàn)階段,所有經(jīng)過(guò)解析等預(yù)處理而產(chǎn)生的協(xié)
議參數(shù)、內(nèi)容數(shù)據(jù)需要和審計(jì)策略進(jìn)行比對(duì)、模式匹配、以及和審計(jì)策略中 的正常模式定義進(jìn)行比對(duì),以發(fā)現(xiàn)不符合被審計(jì)對(duì)象安全規(guī)范的服務(wù)操作并 進(jìn)行告警和記錄。在此階段,大量的無(wú)關(guān)數(shù)據(jù)的匹配和比對(duì)浪費(fèi)探測(cè)器的很
多CPU計(jì)算資源。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾方法及 系統(tǒng),提高系統(tǒng)資源的利用率,降低系統(tǒng)對(duì)硬件資源的要求。
為了解決上述問(wèn)題,本發(fā)明提供了一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾方法,
其中,審計(jì)系統(tǒng)的控制管理端將被審計(jì)服務(wù)器主機(jī)的以太網(wǎng)MAC地址信息 發(fā)給探測(cè)器;
所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序根據(jù)網(wǎng)卡捕獲的當(dāng)前網(wǎng)絡(luò)通信報(bào)文,解析得 到該報(bào)文的源、目的MAC地址,與從控制管理端收到的被審計(jì)服務(wù)器主機(jī) 的MAC地址進(jìn)行匹配,過(guò)濾得到匹配成功的通信l艮文。
進(jìn)一步的,所述控制管理端還將被審計(jì)服務(wù)器主機(jī)相應(yīng)的被審計(jì)服務(wù)的 服務(wù)端口地址信息發(fā)給所述探測(cè)器;
所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序?qū)AC地址匹配成功的通信報(bào)文,還解析 出其中的源、目的端口地址,并與被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址進(jìn)行再次匹配, 匹配成功的通信報(bào)文添加到協(xié)議棧報(bào)文隊(duì)列中;
進(jìn)一步的,所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序收到被審計(jì)服務(wù)器主機(jī)的以太網(wǎng) MAC地址信息及其ill務(wù)端口地址信息后,生成MAC地址散列表和力良務(wù)端口 散列表;MAC地址散列表內(nèi)具有相同散列值的MAC地址構(gòu)成一個(gè)MAC地 址單向鏈表;MAC地址單向鏈表中的一個(gè)MAC地址對(duì)應(yīng)一個(gè)服務(wù)端口散列 表,所述服務(wù)端口散列表內(nèi)具有相同散列值的被審計(jì)服務(wù)端口地址構(gòu)成一個(gè)服務(wù)端口單向鏈表;
進(jìn)一步的,在進(jìn)行MAC地址匹配時(shí),根據(jù)計(jì)算出的所述通信才艮文中的
MAC地址(包括源、目的MAC地址)的散列值,在MAC地址散列表中進(jìn) 行匹配,如果該散列值存在,繼續(xù)匹配MAC地址值,提取出匹配成功的MAC 地址對(duì)應(yīng)的服務(wù)端口散列表;然后進(jìn)行服務(wù)端口匹配,根據(jù)計(jì)算出的所述通 信報(bào)文中的端口 (包括源、目的端口)的散列值,在服務(wù)端口散列表中進(jìn)行 匹配,如果該端口的散列值存在,繼續(xù)匹配端口值;
進(jìn)一步的,所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序在對(duì)MAC地址匹配成功的通信 報(bào)文,先解析出其報(bào)文類(lèi)型,如果是被審計(jì)對(duì)象使用的報(bào)文類(lèi)型,則繼續(xù)進(jìn) 行后續(xù)的服務(wù)端口地址的匹配,否則,將其直接丟棄。
為了解決上述問(wèn)題,本發(fā)明還提供了一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾系 統(tǒng),包括相連的控制管理端和探測(cè)器;所述探測(cè)器,還包括網(wǎng)卡驅(qū)動(dòng)單 元、告警解析單元、報(bào)文接收單元、應(yīng)用層傳輸單元以及操作系統(tǒng)協(xié)議棧, 其中
所述控制管理端,用于配置被審計(jì)對(duì)象,并將配置的纟皮審計(jì)服務(wù)器主機(jī) 的以太網(wǎng)MAC地址信息,通過(guò)所述應(yīng)用層傳輸單元轉(zhuǎn)發(fā)給探測(cè)器的網(wǎng)卡驅(qū) 動(dòng)單元;
所述網(wǎng)卡驅(qū)動(dòng)單元,根據(jù)報(bào)文接收單元所捕獲的當(dāng)前網(wǎng)絡(luò)通信報(bào)文,并 解析得到該通信報(bào)文的源、目的MAC地址,與從所述應(yīng)用層傳輸單元收到 的被審計(jì)服務(wù)器主機(jī)的MAC地址進(jìn)行匹配,過(guò)濾得到匹配成功的通信凈艮文;
進(jìn)一步的,所述控制管理端,用于配置^:審計(jì)對(duì)象,并將配置的^f皮審計(jì) 服務(wù)器主機(jī)相應(yīng)的被審計(jì)服務(wù)的服務(wù)端口地址信息,通過(guò)所述應(yīng)用層傳輸單 元轉(zhuǎn)發(fā)給探測(cè)器的網(wǎng)卡驅(qū)動(dòng)單元;
所述網(wǎng)卡驅(qū)動(dòng)單元,對(duì)MAC地址匹配成功的通信"^艮文進(jìn)行解析,得到 其中的源、目的端口地址,并與被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址進(jìn)行再次匹配, 匹配成功的通信報(bào)文發(fā)送給所述操作系統(tǒng)協(xié)議棧,添加到協(xié)議棧報(bào)文隊(duì)列中, 發(fā)送給所述告警解析單元進(jìn)行后續(xù)處理;
進(jìn)一步的,所述報(bào)文接收單元,用于捕獲交互的當(dāng)前通信報(bào)文,并給所述網(wǎng)卡驅(qū)動(dòng)單元處理;
所述網(wǎng)卡驅(qū)動(dòng)單元,收到所述應(yīng)用層傳輸單元轉(zhuǎn)發(fā)的被審計(jì)服務(wù)器主機(jī) 的以太網(wǎng)MAC地址信息及其服務(wù)端口地址信息后,生成MAC地址散列表和 服務(wù)端口散列表,并依據(jù)該散列表對(duì)所述報(bào)文接收單元發(fā)來(lái)的當(dāng)前網(wǎng)絡(luò)通信 報(bào)文進(jìn)行過(guò)濾,將過(guò)濾后的報(bào)文發(fā)送給所述操作系統(tǒng)協(xié)議棧,添加到相應(yīng)協(xié) 議棧的報(bào)文隊(duì)列中;MAC地址散列表內(nèi)具有相同散列值的MAC地址構(gòu)成一 個(gè)MAC地址單向鏈表;MAC地址單向鏈表中的一個(gè)MAC地址對(duì)應(yīng)一個(gè)服 務(wù)端口散列表,所述服務(wù)端口散列表內(nèi)具有相同散列值的被審計(jì)服務(wù)端口地 址構(gòu)成一個(gè)服務(wù)端口單向鏈表;
進(jìn)一步的,所述網(wǎng)卡驅(qū)動(dòng)單元,在進(jìn)行MAC地址匹配時(shí),根據(jù)計(jì)算出 的所述通信報(bào)文中的MAC地址(包括源、目的MAC地址)的散列值,在 MAC地址散列表中進(jìn)行匹配,如果該散列值存在,繼續(xù)匹配MAC地址值, 提取出匹配成功的MAC地址對(duì)應(yīng)的服務(wù)端口散列表;然后進(jìn)行服務(wù)端口匹 配,根據(jù)計(jì)算出的所述通信報(bào)文中的端口 (包括源、目的端口)的散列值, 在服務(wù)端口散列表中進(jìn)行匹配,如果該端口的散列值存在,繼續(xù)匹配端口值;
進(jìn)一步的,所述網(wǎng)卡驅(qū)動(dòng)單元,在對(duì)MAC地址匹配成功的通信報(bào)文, 先解析出其報(bào)文類(lèi)型,如果是被審計(jì)對(duì)象使用的報(bào)文類(lèi)型,則繼續(xù)進(jìn)行后續(xù) 的服務(wù)端口地址的匹配,否則,將其直接丟棄。
與現(xiàn)有技術(shù)相比,本發(fā)明在報(bào)文捕獲的早期階段對(duì)不需要關(guān)注的報(bào)文進(jìn) 行過(guò)濾和拋棄,從而節(jié)省后期各個(gè)階段的處理開(kāi)銷(xiāo),從而帶來(lái)較大的系統(tǒng)資 源裕度,提高了系統(tǒng)的處理能力,降低了網(wǎng)絡(luò)審計(jì)系統(tǒng)對(duì)報(bào)文捕獲探測(cè)器的 硬件需求。
圖1為現(xiàn)有技術(shù)中的網(wǎng)絡(luò)拓樸圖2為本發(fā)明實(shí)施例中的方法流程圖3為本發(fā)明實(shí)施例中的散列表結(jié)構(gòu)示意8圖4為本發(fā)明實(shí)施例中的系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式
本發(fā)明方法包括基于被審計(jì)對(duì)象的網(wǎng)絡(luò)報(bào)文過(guò)濾策略生成方法和過(guò)濾策 略在報(bào)文捕獲驅(qū)動(dòng)程序中的執(zhí)行方法?;诒粚徲?jì)對(duì)象的網(wǎng)絡(luò)報(bào)文過(guò)濾策略
是根據(jù)被關(guān)注的服務(wù)器主機(jī)的以太網(wǎng)地址(MAC地址)和提供的網(wǎng)絡(luò)服務(wù)的 TCP/IP端口號(hào)來(lái)匹配所有通過(guò)交換機(jī)鏡像端口和報(bào)文捕獲網(wǎng)卡所捕獲的所有 以太網(wǎng)報(bào)文,過(guò)濾掉所有不需要關(guān)注的網(wǎng)絡(luò)通信報(bào)文。
下面以具體實(shí)施例進(jìn)一步闡述本發(fā)明所述的基于被審計(jì)對(duì)象的報(bào)文過(guò)濾 方法及系統(tǒng),以下對(duì)具體實(shí)施方式
進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定, 例如本發(fā)明不限定具體使用的散列算法。
在執(zhí)行過(guò)濾流程之前,在驅(qū)動(dòng)程序編寫(xiě)時(shí),增加過(guò)濾執(zhí)行函數(shù)執(zhí)行報(bào)文 過(guò)濾;執(zhí)行該函數(shù)是由網(wǎng)卡的硬件中斷觸發(fā)的,當(dāng)網(wǎng)絡(luò)^Jl來(lái)到時(shí),網(wǎng)卡發(fā) 生接收?qǐng)?bào)文中斷,網(wǎng)卡驅(qū)動(dòng)程序中的中斷服務(wù)函數(shù)被執(zhí)行,中斷服務(wù)函數(shù)調(diào) 用所述報(bào)文過(guò)濾函數(shù)執(zhí)行報(bào)文過(guò)濾。
如圖2所示,為本發(fā)明實(shí)施例中的方法流程圖,包括以下步驟
Sl,系統(tǒng)管理員通過(guò)審計(jì)系統(tǒng)的控制管理端添加被審計(jì)對(duì)象,包括被 審計(jì)服務(wù)器主機(jī)以及相應(yīng)的被審計(jì)服務(wù);
被審計(jì)對(duì)象通常是被重點(diǎn)保護(hù)的存儲(chǔ)有重要信息資產(chǎn)的服務(wù)器和其提供 的網(wǎng)絡(luò)服務(wù)。
向?qū)徲?jì)系統(tǒng)配置被審計(jì)服務(wù)器主機(jī)時(shí),需要提供該被審計(jì)服務(wù)器主機(jī)的 有效網(wǎng)絡(luò)接口的TCP/IP地址,并通過(guò)arp協(xié)議獲取該被審計(jì)服務(wù)器主機(jī)的以 太網(wǎng)地址(MAC地址);
向?qū)徲?jì)系統(tǒng)配置相應(yīng)被審計(jì)服務(wù)時(shí),需要提供該服務(wù)的網(wǎng)絡(luò)端口地址, 該網(wǎng)絡(luò)端口地址將作為被審計(jì)服務(wù)的標(biāo)識(shí)之一;
S2,該控制管理端生成被審計(jì)對(duì)象的報(bào)文過(guò)濾配置文件;
1)審計(jì)系統(tǒng)根據(jù)Sl中的各被審計(jì)主機(jī)的MAC地址和相應(yīng)的被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址,生成如下的內(nèi)存數(shù)據(jù)結(jié)構(gòu)
將不同的被審計(jì)主機(jī)的MAC地址以單向鏈表的結(jié)構(gòu)進(jìn)行組織(參見(jiàn)圖3 中的MAC地址鏈表),其中,鏈表內(nèi)每個(gè)節(jié)點(diǎn)的內(nèi)容如下
struct au一mac—link {
unsigned char mac—addr[6];
struct port—link *pport;
struct au_mac—link 承pnext^
每個(gè)被審計(jì)主機(jī)相應(yīng)的被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址也以單向鏈表的結(jié)構(gòu)
進(jìn)行組織,其中,鏈表內(nèi)每個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)如下 struct port—link {
unsigned short serv_port; struct port—link *pnext;
};
即以多重鏈表的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)各個(gè)被審計(jì)的服務(wù)器主機(jī)的以太網(wǎng)地址 及其主機(jī)上所提供的服務(wù)的端口地址。
2)按照步驟1 )中定義的數(shù)據(jù)結(jié)構(gòu),生成被審計(jì)對(duì)象的報(bào)文過(guò)濾配置文 件,結(jié)構(gòu)如下二N;=1; = A23F23B23C23; [服務(wù)總數(shù)]二M; [服務(wù)端口] = 80; [服務(wù)端口] = 23;[審計(jì)主機(jī)]=2; = A22F23B23C24; [服務(wù)總數(shù)]二M; [月良務(wù)端口] = 80; [服務(wù)端口] = 23;
在另一實(shí)施例中,控制管理端也可以直接載入或配置生成一個(gè)上述的報(bào) 文過(guò)濾配置文件。
S3,該控制管理端將"J艮文過(guò)濾配置文件發(fā)送給探測(cè)器審計(jì)應(yīng)用程序,審 計(jì)應(yīng)用程序控制該探測(cè)器操作系統(tǒng)內(nèi)的網(wǎng)卡驅(qū)動(dòng)程序根據(jù)報(bào)文過(guò)濾配置文件 構(gòu)建報(bào)文過(guò)濾散列表。
1 )在網(wǎng)卡驅(qū)動(dòng)程序中添加過(guò)濾策略加載4妻口 ,審計(jì)應(yīng)用程序通過(guò)該接口 加載控制管理端發(fā)來(lái)的^fe文過(guò)濾配置文件中的過(guò)濾策略;
a在網(wǎng)卡驅(qū)動(dòng)程序中注冊(cè)一個(gè)字符設(shè)備,字符設(shè)備是指在I/O傳輸過(guò) 程中以字符為單位進(jìn)行傳輸?shù)脑O(shè)備;
b編寫(xiě)該字符設(shè)備的ioctl()方法,ioctl()用于設(shè)備的控制操作,參數(shù)配
置等;
c 在ioctl()方法中處理過(guò)濾策略加載命令從審計(jì)應(yīng)用程序加載報(bào)文過(guò) 濾配置文件中的過(guò)濾策略。
2)網(wǎng)卡驅(qū)動(dòng)程序根據(jù)報(bào)文過(guò)濾策略構(gòu)建報(bào)文過(guò)濾散列表;
a參見(jiàn)圖3,首先根據(jù)報(bào)文過(guò)濾配置文件中的被審計(jì)對(duì)象服務(wù)器主機(jī)的 MAC地址,構(gòu)建一個(gè)長(zhǎng)度為256的MAC地址散列表,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu) 定義如下
struct mac—hash {
unsigned short mac—hash;
struct mac—link *pmac—link;};
macjiash是MAC地址的hash值,*pmac_link是指向MAC地址單向鏈 表中第一個(gè)MAC地址的指針。在MAC地址散列表中,再根據(jù)具有相同散列 值的各被審計(jì)主機(jī)的MAC地址,構(gòu)建MAC地址單向鏈表,鏈表中每個(gè)節(jié)點(diǎn) 的數(shù)據(jù)結(jié)構(gòu)如下
struct mac—link {
unsigned char mac一addr[6];
struct port—hash *pport_hash;
struct mac—link *pnext;
};
其中mac^addr[6]為MAC地址,承卯ortjiash為指向該MAC地址主機(jī)的 被審計(jì)服務(wù)端口散列表的指針;*pnext為指向下一 MAC地址的指針。
b在上述MAC地址單向鏈表內(nèi)的每個(gè)MAC地址還對(duì)應(yīng)一個(gè)服務(wù)端口散 列表,參見(jiàn)圖3, 一個(gè)服務(wù)端口散列表是根據(jù)一個(gè)MAC地址對(duì)應(yīng)的被審計(jì)主 機(jī)所提供的相應(yīng)被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址構(gòu)建的,長(zhǎng)度為32,該服務(wù)端口 散列表的節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)定義如下
struct port—hash {
unsigned char port—hash;
struct port—link *pport_link;
};
port—hash是端口的hash值,*pport_link是指向單向鏈表中第 一個(gè)端口值 的指針。在服務(wù)端口散列表中,再根據(jù)具有相同散列值的各被審計(jì)服務(wù)的網(wǎng) 絡(luò)端口地址,構(gòu)建服務(wù)端口單向鏈表,鏈表中每個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)如下
struct port—link {
unsigned short serv_port;
struct port—link *pnext;注意,對(duì)MAC地址和端口地址的散列算法的自由選取不影響本發(fā)明的
思想,本發(fā)明不提供專(zhuān)門(mén)的散列算法。
S4,由過(guò)濾執(zhí)行函數(shù)執(zhí)行報(bào)文過(guò)濾,并將過(guò)濾后得到的報(bào)文添加到探測(cè) 器中#:作系統(tǒng)內(nèi)的TCP/IP協(xié)議棧的才艮文隊(duì)列中;
當(dāng)網(wǎng)絡(luò)報(bào)文來(lái)到時(shí),網(wǎng)卡發(fā)生接收?qǐng)?bào)文中斷,網(wǎng)卡驅(qū)動(dòng)程序中的中斷服 務(wù)函數(shù)被執(zhí)行,中斷服務(wù)函數(shù)調(diào)用該報(bào)文過(guò)濾函數(shù)。
1) 在網(wǎng)卡驅(qū)動(dòng)程序的網(wǎng)卡中斷處理(服務(wù))函數(shù)中,在響應(yīng)報(bào)文接收?qǐng)?bào) 文中斷之后,增加報(bào)文的解析和首次過(guò)濾函數(shù),解析出報(bào)文的源,目的 MAC(以太網(wǎng))地址,將報(bào)文的源和目的MAC地址作為參數(shù)進(jìn)行過(guò)濾散列表的 第一次匹配,如果沒(méi)有命中,則丟棄該報(bào)文,如果命中,返回散列表中端口 散列表地址,繼續(xù)以下步驟2);對(duì)于多數(shù)的報(bào)文而言,應(yīng)該都能夠通過(guò)首 次的過(guò)濾匹配被丟棄掉,剩下的僅僅是和被審計(jì)主機(jī)相關(guān)的通訊報(bào)文;
在進(jìn)行過(guò)濾散列表匹配時(shí),先計(jì)算MAC地址的散列值,在MAC地址散 列表中,相應(yīng)散列值如果沒(méi)有相應(yīng)的單鏈表節(jié)點(diǎn),則改散列值被置-1,先匹 配散列值,如果散列值存在繼續(xù)匹配具體的MAC地址值,如不存在則立即 返回,丟棄目標(biāo)報(bào)文,如成功,提取出匹配成功的MAC地址對(duì)應(yīng)的服務(wù)端 口散列表;
然后進(jìn)行服務(wù)端口匹配,類(lèi)似的,先查找是否存在端口的散列值,如果 不存在,丟棄目標(biāo)報(bào)文,如存在,繼續(xù)匹配端口值;
2) 對(duì)第一次匹配命中的報(bào)文繼續(xù)進(jìn)行解析,得到數(shù)據(jù)鏈路層的報(bào)文類(lèi) 型,如果是非IP報(bào)文(08 00),則丟棄該報(bào)文;如果是IP報(bào)文,則解析出其協(xié) 議類(lèi)型
如果不是TCP或UDP報(bào)文(本實(shí)施例中被審計(jì)對(duì)象使用TCP和UDP 報(bào)文,但本發(fā)明不局限于此,只要采用被審計(jì)對(duì)象通信使用的報(bào)文類(lèi)型來(lái)匹 配即可),則丟棄該報(bào)文;否則,繼續(xù)解析出該報(bào)文的TCP或UDP的源、 目的端口地址,根據(jù)該源、目的端口地址的散列值到上一步返回的服務(wù)端口 散列表中相應(yīng)散列值處的服務(wù)端口單向鏈表中,對(duì)該源、目的端口地址進(jìn)行 第二次搜索和匹配,如果沒(méi)有命中,則丟棄報(bào)文;否則,將第二次匹配命中
13的報(bào)文添加到探測(cè)器中操作系統(tǒng)內(nèi)的TCP/IP協(xié)議棧的報(bào)文隊(duì)列中。
S5,在審計(jì)系統(tǒng)的探測(cè)器內(nèi),執(zhí)行告警解析的應(yīng)用程序通過(guò)其與操作系 統(tǒng)間的報(bào)文捕獲接口接收TCP/IP協(xié)議棧的報(bào)文隊(duì)列中過(guò)濾后得到的網(wǎng)絡(luò)報(bào) 文,繼續(xù)進(jìn)行報(bào)文的協(xié)議解析、流重組,策略匹配等常規(guī)工作;
過(guò)濾流程結(jié)束。
如圖4所示,為本發(fā)明實(shí)施例中的系統(tǒng)結(jié)構(gòu)圖,基于被審計(jì)對(duì)象的報(bào)文 過(guò)濾系統(tǒng),包括相連的控制管理端10和探測(cè)器20,其中
控制管理端10,用于配置被審計(jì)對(duì)象(即被審計(jì)的服務(wù)器主機(jī)及其上被 審計(jì)的網(wǎng)絡(luò)服務(wù)),這里是根據(jù)被審計(jì)服務(wù)器主機(jī)的以太網(wǎng)MAC地址以及 相應(yīng)的被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址,生成被審計(jì)對(duì)象的報(bào)文過(guò)濾配置文件, 并下發(fā)給探測(cè)器20;還用于接收探測(cè)器20發(fā)回的當(dāng)前網(wǎng)絡(luò)通信報(bào)文中的告 警并進(jìn)行審計(jì)處理;
探測(cè)器20,用于根據(jù)報(bào)文過(guò)濾配置文件構(gòu)建報(bào)文過(guò)濾散列表,解析出捕 獲的網(wǎng)絡(luò)通信報(bào)文中的MAC地址和服務(wù)端口,與報(bào)文過(guò)濾散列表中的被審 計(jì)對(duì)象的MAC地址及其服務(wù)端口地址進(jìn)行匹配,過(guò)濾出被審計(jì)對(duì)象相關(guān)的 數(shù)據(jù)報(bào)文并進(jìn)行報(bào)文的協(xié)議解析、流重組,策略匹配等常規(guī)工作,之后將解 析得到的告警發(fā)回給控制管理端10。
該探測(cè)器20包括網(wǎng)卡驅(qū)動(dòng)單元201、告警解析單元202、報(bào)文接收單 元203、應(yīng)用層傳輸單元205以及操作系統(tǒng)協(xié)議棧204,網(wǎng)卡驅(qū)動(dòng)單元201可 由安裝在探測(cè)器上操作系統(tǒng)內(nèi)的網(wǎng)卡驅(qū)動(dòng)程序?qū)崿F(xiàn),告警解析單元202可對(duì) 應(yīng)于解析過(guò)濾后報(bào)文的審計(jì)應(yīng)用程序中的模塊,應(yīng)用層傳輸單元205可對(duì)應(yīng) 于控制管理端與探測(cè)器在應(yīng)用層的接口,也屬于審計(jì)應(yīng)用程序中的模塊,報(bào) 文接收單元203可對(duì)應(yīng)于安裝在探測(cè)器上的網(wǎng)卡,本實(shí)施例是運(yùn)行于混雜才莫 式的以太網(wǎng)網(wǎng)卡;其中
報(bào)文接收單元203,用于捕獲交換機(jī)交互的當(dāng)前通信報(bào)文,并發(fā)給網(wǎng)卡 驅(qū)動(dòng)單元201;
應(yīng)用層傳輸單元205,用于接收控制管理端10發(fā)來(lái)的^J艮文過(guò)濾配置文件,并轉(zhuǎn)發(fā)給網(wǎng)卡驅(qū)動(dòng)單元201;
網(wǎng)卡驅(qū)動(dòng)單元201,根據(jù)應(yīng)用層傳輸單元205發(fā)來(lái)的^JL過(guò)濾配置文件 構(gòu)建報(bào)文過(guò)濾散列表,包括MAC地址散列表和與其中每個(gè)MAC地址對(duì)應(yīng)的 服務(wù)端口散列表;MAC地址散列表中,具有相同散列值的MAC地址構(gòu)成一 個(gè)MAC地址單向鏈表,MAC地址單向鏈表內(nèi)每個(gè)MAC地址都對(duì)應(yīng) 一個(gè)服 務(wù)端口散列表,在每個(gè)服務(wù)端口散列表中,具有相同散列值的被審計(jì)服務(wù)端 口地址構(gòu)成一個(gè)服務(wù)端口單向鏈表;
網(wǎng)卡驅(qū)動(dòng)單元201,接收?qǐng)?bào)文接收單元203發(fā)來(lái)的當(dāng)前網(wǎng)絡(luò)通信報(bào)文, 并解析得到所述通信^^艮文的源、目的MAC地址和端口地址,與其構(gòu)建的才艮 文過(guò)濾散列表中的MAC地址和服務(wù)端口地址分別進(jìn)行匹配,匹配命中的報(bào) 文交給操作系統(tǒng)協(xié)議棧204;
操作系統(tǒng)協(xié)議棧204,接收網(wǎng)卡驅(qū)動(dòng)單元201發(fā)來(lái)的匹配過(guò)濾后的報(bào)文, 并添加到操作系統(tǒng)協(xié)議棧的報(bào)文隊(duì)列中,報(bào)文后續(xù)將通過(guò)操作系統(tǒng)接口發(fā)給 告警解析單元202;
告警解析單元202,用于將收到的操作系統(tǒng)協(xié)議棧204發(fā)來(lái)過(guò)濾后的報(bào) 文進(jìn)行才艮文的協(xié)議解析、流重組,策略匹配等常規(guī)工作,將其中發(fā)生的告警 發(fā)送給控制管理端10。
上述系統(tǒng)功能的一些具體實(shí)現(xiàn)見(jiàn)上述方法中的描述,此處不再贅述。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的 情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形, 但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾方法,其特征在于,審計(jì)系統(tǒng)的控制管理端將被審計(jì)服務(wù)器主機(jī)的以太網(wǎng)MAC地址信息發(fā)給探測(cè)器;所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序根據(jù)網(wǎng)卡捕獲的當(dāng)前網(wǎng)絡(luò)通信報(bào)文,解析得到該報(bào)文的源、目的MAC地址,與從控制管理端收到的被審計(jì)服務(wù)器主機(jī)的MAC地址進(jìn)行匹配,過(guò)濾得到匹配成功的通信報(bào)文。
2、 如權(quán)利要求l所述的方法,其特征在于,所述控制管理端還將被審計(jì)服務(wù)器主機(jī)相應(yīng)的被審計(jì)服務(wù)的服務(wù)端口地 址信息發(fā)給所述探測(cè)器;所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序?qū)AC地址匹配成功的通信報(bào)文,還解析 出其中的源、目的端口地址,并與被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址進(jìn)行再次匹配, 匹配成功的通信報(bào)文添加到協(xié)議棧報(bào)文隊(duì)列中。
3、 如權(quán)利要求2所述的方法,其特征在于, 所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序收到被審計(jì)服務(wù)器主機(jī)的以太網(wǎng)MAC地址 信息及其服務(wù)端口地址信息后,生成MAC地址散列表和服務(wù)端口散列表; MAC地址散列表內(nèi)具有相同散列值的MAC地址構(gòu)成一個(gè)MAC地址單向鏈 表;MAC地址單向鏈表中的一個(gè)MAC地址對(duì)應(yīng)一個(gè)服務(wù)端口散列表,所述 服務(wù)端口散列表中的服務(wù)端口散列表內(nèi)具有相同散列值的被審計(jì)服務(wù)端口地 址構(gòu)成一個(gè)服務(wù)端口單向鏈表。
4、 如權(quán)利要求3所述的方法,其特征在于,在進(jìn)行MAC地址匹配時(shí),分別根據(jù)計(jì)算出的所述通信才艮文中的源、目 的MAC地址的散列值,在MAC地址散列表中進(jìn)行匹配,如果所述散列值存 在,則繼續(xù)匹配MAC地址值,提取出匹配成功的相應(yīng)MAC地址對(duì)應(yīng)的服務(wù) 端口散列表;然后進(jìn)行服務(wù)端口匹配,分別根據(jù)計(jì)算出的所述通信報(bào)文中的 源、目的服務(wù)端口的散列值,在服務(wù)端口散列表中進(jìn)行匹配,如果所述端口 的散列值存在,繼續(xù)匹配端口值。
5、 如權(quán)利要求3所述的方法,其特征在于,所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序在對(duì)MAC地址匹配成功的通信報(bào)文,先解 析出其報(bào)文類(lèi)型,如果是被審計(jì)對(duì)象使用的報(bào)文類(lèi)型,則繼續(xù)進(jìn)行后續(xù)的服 務(wù)端口地址的匹配,否則,將其直接丟棄。
6、 一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾系統(tǒng),其特征在于,包括相連的 控制管理端和探測(cè)器;所述探測(cè)器,還包括網(wǎng)卡驅(qū)動(dòng)單元、告警解析單元、 報(bào)文接收單元、應(yīng)用層傳輸單元以及操作系統(tǒng)協(xié)議棧,其中所述控制管理端,用于配置被審計(jì)對(duì)象,并將配置的被審計(jì)服務(wù)器主機(jī) 的以太網(wǎng)MAC地址信息,通過(guò)所述應(yīng)用層傳輸單元轉(zhuǎn)發(fā)給探測(cè)器的網(wǎng)卡驅(qū) 動(dòng)單元;所述網(wǎng)卡驅(qū)動(dòng)單元,根據(jù)報(bào)文接收單元所捕獲的當(dāng)前網(wǎng)絡(luò)通信報(bào)文,并 解析得到該通信報(bào)文的源、目的MAC地址,與從所述應(yīng)用層傳輸單元收到 的被審計(jì)服務(wù)器主機(jī)的MAC地址進(jìn)行匹配,過(guò)濾得到匹配成功的通信才艮文。
7、 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述控制管理端,用于配置被審計(jì)對(duì)象,并將配置的被審計(jì)服務(wù)器主機(jī) 相應(yīng)的被審計(jì)服務(wù)的服務(wù)端口地址信息,通過(guò)所述應(yīng)用層傳輸單元轉(zhuǎn)發(fā)給探 測(cè)器的網(wǎng)卡驅(qū)動(dòng)單元;所述網(wǎng)卡驅(qū)動(dòng)單元,對(duì)MAC地址匹配成功的通信才艮文進(jìn)行解析,得到 其中的源、目的端口地址,并與被審計(jì)服務(wù)的網(wǎng)絡(luò)端口地址進(jìn)行再次匹配, 匹配成功的通信報(bào)文發(fā)送給所述操作系統(tǒng)協(xié)議棧,添加到協(xié)議棧報(bào)文隊(duì)列中, 發(fā)送給所述告警解析單元進(jìn)行后續(xù)處理。
8、 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述報(bào)文接收單元,用于捕獲交互的當(dāng)前通信報(bào)文,并給所述網(wǎng)卡驅(qū)動(dòng) 單元處理;所述網(wǎng)卡驅(qū)動(dòng)單元,收到所述應(yīng)用層傳輸單元轉(zhuǎn)發(fā)的被審計(jì)服務(wù)器主機(jī) 的以太網(wǎng)MAC地址信息及其服務(wù)端口地址信息后,生成MAC地址散列表和 服務(wù)端口散列表,并依據(jù)該散列表對(duì)所述報(bào)文接收單元發(fā)來(lái)的當(dāng)前網(wǎng)絡(luò)通信報(bào)文進(jìn)行過(guò)濾,將過(guò)濾后的報(bào)文發(fā)送給所述操作系統(tǒng)協(xié)議棧,添加到相應(yīng)協(xié)議棧的報(bào)文隊(duì)列中;MAC地址散列表內(nèi)具有相同散列值的MAC地址構(gòu)成一 個(gè)MAC地址單向鏈表;MAC地址單向鏈表中的 一個(gè)MAC地址對(duì)應(yīng) 一個(gè)服 務(wù)端口過(guò)濾散列表,所述服務(wù)端口散列表內(nèi)具有相同散列值的被審計(jì)服務(wù)端 口地址構(gòu)成一個(gè)服務(wù)端口單向鏈表。
9、 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述網(wǎng)卡驅(qū)動(dòng)單元,在進(jìn)行報(bào)文的MAC地址匹配時(shí),分別根據(jù)計(jì)算出 的所述通信報(bào)文中的源、目的MAC地址的散列值,在MAC地址散列表中進(jìn) 行匹配,如果所述散列值存在,則繼續(xù)匹配MAC地址值,提取出匹配成功 的相應(yīng)MAC地址對(duì)應(yīng)的服務(wù)端口散列表;然后進(jìn)行服務(wù)端口匹配,分別根 據(jù)計(jì)算出的所述通信報(bào)文中的源、目的服務(wù)端口的散列值,在服務(wù)端口散列 表中進(jìn)行匹配,如果所述端口的散列值存在,繼續(xù)匹配端口值。
10、 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述網(wǎng)卡驅(qū)動(dòng)單元,在對(duì)MAC地址匹配成功的通信報(bào)文,先解析出其 報(bào)文類(lèi)型,如果是被審計(jì)對(duì)象使用的報(bào)文類(lèi)型,則繼續(xù)進(jìn)行后續(xù)的服務(wù)端口 地址的匹配,否則,將其直接丟棄。
全文摘要
本發(fā)明公開(kāi)了一種基于被審計(jì)對(duì)象的報(bào)文過(guò)濾方法及系統(tǒng),其中,所述方法,包括審計(jì)系統(tǒng)的控制管理端將被審計(jì)服務(wù)器主機(jī)的以太網(wǎng)MAC地址及服務(wù)端口等信息發(fā)給探測(cè)器;所述探測(cè)器的網(wǎng)卡驅(qū)動(dòng)程序根據(jù)網(wǎng)卡捕獲的當(dāng)前網(wǎng)絡(luò)通信報(bào)文,解析得到該報(bào)文的源、目的MAC地址,源、目的端口,與從控制管理端收到的被審計(jì)服務(wù)器主機(jī)的MAC地址、服務(wù)端口進(jìn)行匹配,過(guò)濾得到匹配成功的通信報(bào)文。本發(fā)明在報(bào)文捕獲的早期階段對(duì)不需要關(guān)注的報(bào)文進(jìn)行過(guò)濾和拋棄,從而節(jié)省后期各個(gè)階段的處理開(kāi)銷(xiāo),從而帶來(lái)較大的系統(tǒng)資源裕度,提高了系統(tǒng)的處理能力,降低了網(wǎng)絡(luò)審計(jì)系統(tǒng)對(duì)報(bào)文捕獲探測(cè)器的硬件需求。
文檔編號(hào)H04L29/06GK101582880SQ200810106659
公開(kāi)日2009年11月18日 申請(qǐng)日期2008年5月14日 優(yōu)先權(quán)日2008年5月14日
發(fā)明者趙海峰 申請(qǐng)人:北京啟明星辰信息技術(shù)股份有限公司