專利名稱:一種基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法。
背景技術(shù):
隨著電腦的廣泛應(yīng)用和網(wǎng)絡(luò)的不斷普及,來(lái)自網(wǎng)絡(luò)內(nèi)部和外部的病毒程序也日益增多。目前,人們通常在內(nèi)部網(wǎng)和外部網(wǎng)之間或?qū)S镁W(wǎng)與公共網(wǎng)之間建立一個(gè)應(yīng)用層安全網(wǎng)關(guān),從而保護(hù)內(nèi)部網(wǎng)或?qū)S镁W(wǎng)免受非法用戶的入侵和病毒程序的破壞。應(yīng)用層安全網(wǎng)關(guān)在防黑客攻擊、防病毒、反垃圾郵件和網(wǎng)絡(luò)應(yīng)用流量管理等方面起到重要的作用,應(yīng)用層安全網(wǎng)關(guān)通常包括IPS設(shè)備、AV設(shè)備、反垃圾郵件設(shè)備、應(yīng)用控制網(wǎng)關(guān)、應(yīng)用層網(wǎng)關(guān)、應(yīng)用帶寬
管理設(shè)備和統(tǒng)一威脅管理等設(shè)備。OSI協(xié)議是由IS0(國(guó)際標(biāo)準(zhǔn)化組織)制定的,它有三個(gè)基本的功能提供給開發(fā)者一個(gè)必須的、通用的概念以便開發(fā)完善、可以用來(lái)解釋連接不同系統(tǒng)的框架。OSI將計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)(architecture)從上到下劃分為以下七層7應(yīng)用層,6表示層,5會(huì)話層,4傳輸層,3網(wǎng)絡(luò)層,2數(shù)據(jù)鏈路層,I物理層。目前人們普遍使用的防火墻主要在第二層至第三層起作用,而防火墻的作用在第四層至第七層卻很微弱。而病毒軟體則主要在第五層到第七層起作用?,F(xiàn)有的應(yīng)用層安全網(wǎng)關(guān)主要是通過(guò)讀取相應(yīng)的接口 socket,將相關(guān)的報(bào)文全部讀取出來(lái)放入緩存;讀取完成后,再按照類似文件的方式,進(jìn)行字符串匹配和正則表達(dá)式匹配,來(lái)進(jìn)行防黑客攻擊、防病毒、反垃圾郵件和網(wǎng)絡(luò)應(yīng)用流量管理等后續(xù)處理。在處理過(guò)程中,存在大量的報(bào)文拷貝以及用戶空間和內(nèi)核的交互,因此時(shí)延和性能都比較低。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法,能夠虛擬一個(gè)流文件系統(tǒng),減小緩存中的報(bào)文數(shù)量,提高系統(tǒng)處理的速度和效率。本發(fā)明采用下述技術(shù)方案
一種基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法,包括以下步驟
A :當(dāng)流文件系統(tǒng)檢測(cè)到一個(gè)新建的應(yīng)用層連接時(shí),創(chuàng)建一個(gè)流文件,并將報(bào)文應(yīng)用層數(shù)據(jù)通過(guò)流文件系統(tǒng)寫入流文件;
B:安全網(wǎng)關(guān)的檢測(cè)模塊通過(guò)流文件的讀取接口讀取指定的報(bào)文數(shù)據(jù),并通過(guò)字符串匹配和正則表達(dá)式匹配對(duì)報(bào)文數(shù)據(jù)進(jìn)行檢測(cè);
C:當(dāng)前檢測(cè)完成后,安全網(wǎng)關(guān)的檢測(cè)模塊繼續(xù)對(duì)下一個(gè)流文件內(nèi)的報(bào)文數(shù)據(jù)進(jìn)行檢測(cè)。所述的B步驟還包括以下步驟
BI:流文件系統(tǒng)檢測(cè)并判斷接收到的第一個(gè)報(bào)文中是否包含完整的字段,即第一個(gè)報(bào)文中是否包含分割符且分割符后無(wú)報(bào)文數(shù)據(jù),如果是,則進(jìn)入步驟B2 ;如果否,則進(jìn)入步驟B3 ;B2:流文件系統(tǒng)直接將映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后進(jìn)入步驟B6;
B3:流文件系統(tǒng)將第一個(gè)報(bào)文中的數(shù)據(jù)儲(chǔ)存在緩存中,然后檢測(cè)并判斷接收到的后續(xù)報(bào)文中是否包含分割符,當(dāng)流文件系統(tǒng)遍歷到后續(xù)報(bào)文數(shù)據(jù)中的最后一個(gè)分割符時(shí),如果分割符后無(wú)報(bào)文數(shù)據(jù),則進(jìn)入步驟B4 ;如果分割符后有報(bào)文數(shù)據(jù),則進(jìn)入步驟B5 ;
B4:流文件系統(tǒng)直接將緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)和映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后進(jìn)入步驟B6 ;
B5:流文件系統(tǒng)直接將緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)和多個(gè)映射區(qū)內(nèi)最后一個(gè)分割符前的整個(gè)字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,清空緩存,并通過(guò)文件同步操作將分割符后的安全網(wǎng)關(guān)檢測(cè)模塊未檢測(cè)的報(bào)文數(shù)據(jù)存儲(chǔ)在緩存中,然后進(jìn)入步驟B6 ;
B6:安全網(wǎng)關(guān)的檢測(cè)模塊通過(guò)流文件的讀取接口讀取指定的報(bào)文數(shù)據(jù),并通過(guò)字符串匹配和正則表達(dá)式匹配對(duì)報(bào)文數(shù)據(jù)進(jìn)行檢測(cè),然后進(jìn)入步驟C。本發(fā)明主要在內(nèi)核中虛擬一個(gè)類似文件的流文件系統(tǒng),通過(guò)流文件系統(tǒng)只通過(guò)緩存存儲(chǔ)報(bào)文中的少量數(shù)據(jù)并且對(duì)外提供統(tǒng)一的操作接口,將緩存中的少量報(bào)文數(shù)據(jù)和映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊進(jìn)行檢測(cè),提高系統(tǒng)處理的速度和效率;同時(shí),可使安全網(wǎng)關(guān)的檢測(cè)模塊同時(shí)適應(yīng)報(bào)文的MBUFFER和SKBUFFER結(jié)構(gòu),提高軟件的可移植性和復(fù)用性。
圖I為本發(fā)明的流程 圖2、圖3和圖4分別為基于解析SMTP的方式下三種不同結(jié)構(gòu)的報(bào)文應(yīng)用層數(shù)據(jù)處理方法示意圖。
具體實(shí)施例方式本發(fā)明所述的流是指通過(guò)設(shè)備的一系列數(shù)據(jù)報(bào)文;流文件指的是存儲(chǔ)這些報(bào)文相應(yīng)的數(shù)據(jù)結(jié)構(gòu);流文件系統(tǒng)是指由字符串或二進(jìn)制組成的一類存儲(chǔ)方式。如圖I所示,本發(fā)明包括以下步驟
A :當(dāng)流文件系統(tǒng)檢測(cè)到一個(gè)新建的應(yīng)用層連接時(shí),創(chuàng)建一個(gè)流文件,并將報(bào)文應(yīng)用層數(shù)據(jù)通過(guò)流文件系統(tǒng)寫入流文件;
BI:流文件系統(tǒng)檢測(cè)并判斷接收到的第一個(gè)報(bào)文中是否包含完整的字段,即第一個(gè)報(bào)文中是否包含分割符且分割符后無(wú)報(bào)文數(shù)據(jù),如果是,則進(jìn)入步驟B2 ;如果否,則進(jìn)入步驟B3 ;
B2:流文件系統(tǒng)直接將映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后進(jìn)入步驟B6;
B3:流文件系統(tǒng)將第一個(gè)報(bào)文中的數(shù)據(jù)儲(chǔ)存在緩存中,然后檢測(cè)并判斷接收到的后續(xù)報(bào)文中是否包含分割符,當(dāng)流文件系統(tǒng)遍歷到后續(xù)報(bào)文數(shù)據(jù)中的最后一個(gè)分割符時(shí),如果分割符后無(wú)報(bào)文數(shù)據(jù),則進(jìn)入步驟B4 ;如果分割符后有報(bào)文數(shù)據(jù),則進(jìn)入步驟B5 ;
B4:流文件系統(tǒng)直接將緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)和多個(gè)映射區(qū)內(nèi)的完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后進(jìn)入步驟B6 ;
B5:流文件系統(tǒng)直接將緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)和多個(gè)映射區(qū)內(nèi)最后一個(gè)分割符前的完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后清空緩存,并通過(guò)文件同步操作將分割符后的安全網(wǎng)關(guān)檢測(cè)模塊未檢測(cè)的報(bào)文數(shù)據(jù)存儲(chǔ)在緩存中,然后進(jìn)入步驟B6 ;
B6:安全網(wǎng)關(guān)的檢測(cè)模塊通過(guò)流文件的讀取接口讀取指定的報(bào)文數(shù)據(jù),并通過(guò)字符串匹配和正則表達(dá)式匹配對(duì)報(bào)文數(shù)據(jù)進(jìn)行檢測(cè),然后進(jìn)入步驟C ;
C當(dāng)前檢測(cè)完成后,安全網(wǎng)關(guān)的 檢測(cè)模塊繼續(xù)對(duì)下一個(gè)流文件內(nèi)的報(bào)文數(shù)據(jù)進(jìn)行檢測(cè)。本發(fā)明中,當(dāng)新報(bào)文寫入流文件時(shí),并不直接拷貝,而是將流文件中的映射區(qū)指向報(bào)文的應(yīng)用層數(shù)據(jù),可通過(guò)多個(gè)映射區(qū)分別處理網(wǎng)絡(luò)層分片和應(yīng)用層分段的報(bào)文。由于沒(méi)有拷貝操作,且不需要處理網(wǎng)絡(luò)層分片和應(yīng)用層分段的重組,能夠極大地提升性能和減小延時(shí)。下面以基于解析SMTP的方式進(jìn)行實(shí)例說(shuō)明
如圖2所示,當(dāng)應(yīng)用層報(bào)文包含整個(gè)字段,即第一個(gè)報(bào)文中是否包含分割符且分割符后無(wú)報(bào)文數(shù)據(jù),第一個(gè)報(bào)文中包含有分割符“\n”,且分割符“\n”后無(wú)報(bào)文數(shù)據(jù),因此,第一個(gè)報(bào)文中包含整個(gè)字段“abcd”,流文件系統(tǒng)直接將映射區(qū)整個(gè)字段數(shù)據(jù)“abed”通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,由檢測(cè)模塊進(jìn)行字符串匹配和正則表達(dá)式匹配檢測(cè)。如圖3所示,當(dāng)?shù)谝粋€(gè)應(yīng)用層報(bào)文abed不包含分割符“\n”時(shí),流文件系統(tǒng)將第一個(gè)應(yīng)用層報(bào)文中的數(shù)據(jù)“abed”儲(chǔ)存在緩存中,然后檢測(cè)并判斷接收到的后續(xù)報(bào)文中是否包含分割符,流文件系統(tǒng)遍歷到第二個(gè)應(yīng)用層報(bào)文數(shù)據(jù)中包含的最后一個(gè)分割符“\n”,且分割符“\n”后無(wú)報(bào)文數(shù)據(jù),此時(shí),流文件系統(tǒng)直接將緩存中的第一個(gè)應(yīng)用層報(bào)文中的數(shù)據(jù)“abed”和映射區(qū)整個(gè)字段數(shù)據(jù)“efgh”通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,由檢測(cè)模塊進(jìn)行字符串匹配和正則表達(dá)式匹配檢測(cè)。如圖4所示,當(dāng)?shù)谝粋€(gè)應(yīng)用層報(bào)文“abed”不包含分割符“\n”時(shí),流文件系統(tǒng)將第一個(gè)應(yīng)用層報(bào)文中的數(shù)據(jù)“abed”儲(chǔ)存在緩存中,并將流文件中的多個(gè)映射區(qū)分別指向后續(xù)報(bào)文的應(yīng)用層數(shù)據(jù)“ef”、“gh”和“st”,然后檢測(cè)并判斷接收到的后續(xù)報(bào)文中是否包含分割符“\n”,流文件系統(tǒng)遍歷到應(yīng)用層第二個(gè)應(yīng)用層報(bào)文數(shù)據(jù)中包含的最后一個(gè)分割符“\n”,且分割符“\n”后還有報(bào)文數(shù)據(jù)“st”,此時(shí),流文件系統(tǒng)直接將緩存中的第一個(gè)應(yīng)用層報(bào)文中的數(shù)據(jù)“abed”和兩個(gè)映射區(qū)中“ef”和“gh”整個(gè)字段數(shù)據(jù)(即最后一個(gè)分割符前的整個(gè)字段數(shù)據(jù))通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,由檢測(cè)模塊進(jìn)行字符串匹配和正則表達(dá)式匹配檢測(cè)。隨后,流文件系統(tǒng)清空緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)“abed”,并通過(guò)文件同步操作將分割符“\n”后的安全網(wǎng)關(guān)檢測(cè)模塊未檢測(cè)的報(bào)文數(shù)據(jù)“st”存儲(chǔ)在緩存中,與下一個(gè)通過(guò)流文件系統(tǒng)寫入流文件的報(bào)文應(yīng)用層數(shù)據(jù)進(jìn)行處理。
權(quán)利要求
1.ー種基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法,其特征在于包括以下步驟 A :當(dāng)流文件系統(tǒng)檢測(cè)到一個(gè)新建的應(yīng)用層連接時(shí),創(chuàng)建一個(gè)流文件,并將報(bào)文應(yīng)用層數(shù)據(jù)通過(guò)流文件系統(tǒng)寫入流文件; B:安全網(wǎng)關(guān)的檢測(cè)模塊通過(guò)流文件的讀取接ロ讀取指定的報(bào)文數(shù)據(jù),并通過(guò)字符串匹配和正則表達(dá)式匹配對(duì)報(bào)文數(shù)據(jù)進(jìn)行檢測(cè); C:當(dāng)前檢測(cè)完成后,安全網(wǎng)關(guān)的檢測(cè)模塊繼續(xù)對(duì)下ー個(gè)流文件內(nèi)的報(bào)文數(shù)據(jù)進(jìn)行檢測(cè)。
2.根據(jù)權(quán)利要求I所述的基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法,其特征在于所述的B步驟還包括以下步驟 BI:流文件系統(tǒng)檢測(cè)并判斷接收到的第一個(gè)報(bào)文中是否包含完整的字段,即第一個(gè)報(bào)文中是否包含分割符且分割符后無(wú)報(bào)文數(shù)據(jù),如果是,則進(jìn)入步驟B2 ;如果否,則進(jìn)入步驟B3 ; B2:流文件系統(tǒng)直接將映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后進(jìn)入步驟B6; B3:流文件系統(tǒng)將第一個(gè)報(bào)文中的數(shù)據(jù)儲(chǔ)存在緩存中,然后檢測(cè)并判斷接收到的后續(xù)報(bào)文中是否包含分割符,當(dāng)流文件系統(tǒng)遍歷到后續(xù)報(bào)文數(shù)據(jù)中的最后ー個(gè)分割符時(shí),如果分割符后無(wú)報(bào)文數(shù)據(jù),則進(jìn)入步驟B4 ;如果分割符后有報(bào)文數(shù)據(jù),則進(jìn)入步驟B5 ; B4:流文件系統(tǒng)直接將緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)和映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,然后進(jìn)入步驟B6 ; B5:流文件系統(tǒng)直接將緩存中的第一個(gè)報(bào)文中的數(shù)據(jù)和多個(gè)映射區(qū)內(nèi)最后ー個(gè)分割符前的整個(gè)字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊,清空緩存,并通過(guò)文件同步操作將分割符后的安全網(wǎng)關(guān)檢測(cè)模塊未檢測(cè)的報(bào)文數(shù)據(jù)存儲(chǔ)在緩存中,然后進(jìn)入步驟B6 ; B6:安全網(wǎng)關(guān)的檢測(cè)模塊通過(guò)流文件的讀取接ロ讀取指定的報(bào)文數(shù)據(jù),并通過(guò)字符串匹配和正則表達(dá)式匹配對(duì)報(bào)文數(shù)據(jù)進(jìn)行檢測(cè),然后進(jìn)入步驟C。
全文摘要
本發(fā)明公開了一種基于網(wǎng)絡(luò)應(yīng)用層安全網(wǎng)關(guān)的流文件系統(tǒng)實(shí)現(xiàn)方法,能夠虛擬一個(gè)流文件系統(tǒng),減小緩存中的報(bào)文數(shù)量,提高系統(tǒng)處理的速度和效率。本發(fā)明主要在內(nèi)核中虛擬一個(gè)類似文件的流文件系統(tǒng),通過(guò)流文件系統(tǒng)只通過(guò)緩存存儲(chǔ)報(bào)文中的少量數(shù)據(jù)并且對(duì)外提供統(tǒng)一的操作接口,將緩存中的少量報(bào)文數(shù)據(jù)和映射區(qū)完整的字段數(shù)據(jù)通過(guò)指針映射的方式交給安全網(wǎng)關(guān)的檢測(cè)模塊進(jìn)行檢測(cè),提高系統(tǒng)處理的速度和效率;同時(shí),可使安全網(wǎng)關(guān)的檢測(cè)模塊同時(shí)適應(yīng)報(bào)文的MBUFFER和SKBUFFER結(jié)構(gòu),提高軟件的可移植性和復(fù)用性。
文檔編號(hào)H04L29/06GK102821100SQ20121025925
公開日2012年12月12日 申請(qǐng)日期2012年7月25日 優(yōu)先權(quán)日2012年7月25日
發(fā)明者陳國(guó)斌, 宋蘇宇, 于穎, 王智輝, 管勇, 趙滿滿, 時(shí)興華, 王利娟 申請(qǐng)人:河南省信息中心