專利名稱::一種多協(xié)議支持的網(wǎng)絡(luò)垃圾信息過(guò)濾方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種多協(xié)議支持的垃圾信息過(guò)濾方法和裝置,利用Linux中的netfilter,iptables模塊對(duì)相關(guān)協(xié)議的包進(jìn)行扣留,然后模擬協(xié)議棧進(jìn)行ip,tcp層的協(xié)議分析和還原,得到完整的網(wǎng)絡(luò)信息(完整郵件信息,短信或者網(wǎng)頁(yè)信息等)。最后利用行為過(guò)濾,bayes過(guò)濾,規(guī)則過(guò)濾等方法對(duì)信息進(jìn)行分析,確定其性質(zhì)。
背景技術(shù):
:國(guó)內(nèi)外有一些垃圾郵件過(guò)濾產(chǎn)品,大多都是基于硬件的,能做到實(shí)時(shí)阻斷,價(jià)格十分昂貴,具體情況參看下圖。大多數(shù)產(chǎn)品都一個(gè)通病,擴(kuò)展性不好。另外程序的執(zhí)行效率太依賴硬件。國(guó)外也有很多的垃圾信息過(guò)濾產(chǎn)品,比如spamato,這是java寫的軟件。它工作與客戶端,例如outlook,一般作為其一個(gè)插件。缺點(diǎn)有1不能實(shí)時(shí)的阻斷垃圾信息,它在垃圾信息到達(dá)后再分析,這樣垃圾信息造成的帶寬占用已經(jīng)形成。2工作于客戶端,只能處理很小流量的信息,不能處理大流量信息。關(guān)于垃圾郵件分類算法的研究,國(guó)內(nèi)外的發(fā)展現(xiàn)狀可以大體概括如下部分發(fā)達(dá)國(guó)家(特別是英語(yǔ)國(guó)家,如美國(guó)、加拿大、英國(guó)、澳大利亞等,這些國(guó)家同時(shí)也是垃圾郵件的重災(zāi)區(qū))偏重于反垃圾郵件基礎(chǔ)理論的研究,致力于嘗試將新理論、新方法引入到反垃圾郵件
技術(shù)領(lǐng)域:
;部分非英語(yǔ)發(fā)達(dá)國(guó)家和發(fā)展中國(guó)家(如中國(guó)、德國(guó)、瑞士、巴西、韓國(guó)、日本)則偏重于對(duì)反垃圾郵件最新研究成果的應(yīng)用,更多是致力于反垃圾郵件術(shù)的本土化,其中也不乏對(duì)已有反垃圾郵件理論和技術(shù)進(jìn)行革新和改進(jìn)的創(chuàng)造性工作。目前的算法研究熱點(diǎn)逐漸傾向于基于內(nèi)容的機(jī)器學(xué)習(xí)判別方法。基于內(nèi)容判別垃圾郵件的方法可以大體分成基于規(guī)則的方法和基于概率統(tǒng)計(jì)的方法。前者常常得出人們可以理解的顯式規(guī)則;后者往往通過(guò)某種計(jì)算表達(dá)式推出結(jié)果。本質(zhì)上,概率統(tǒng)計(jì)方法可以看成規(guī)則方法的一種推廣,只不過(guò)概率統(tǒng)計(jì)方法中得到的規(guī)則是一種不被人輕易理解的“隱式規(guī)則”。無(wú)論是基于規(guī)則的方法還是基于概率統(tǒng)計(jì)的方法,在使用時(shí)都經(jīng)歷從訓(xùn)練到過(guò)濾的過(guò)程。通過(guò)已有的訓(xùn)練集合(正例+反例)訓(xùn)練出相應(yīng)的垃圾郵件規(guī)則(包括顯式規(guī)則或隱式規(guī)則),然后將規(guī)則應(yīng)用到新的郵件判定中去。在實(shí)際應(yīng)用中可能還會(huì)加入人機(jī)交互過(guò)程,通過(guò)用戶對(duì)程序判定誤差的修訂來(lái)調(diào)整和更新垃圾郵件過(guò)濾規(guī)則??偟恼f(shuō)來(lái),國(guó)內(nèi)外學(xué)術(shù)界研究的焦點(diǎn)目前集中于基于統(tǒng)計(jì)方法的垃圾郵件識(shí)別分類技術(shù)。主要的研究手段日趨集中在實(shí)現(xiàn)機(jī)器學(xué)習(xí)領(lǐng)域的模式分類算法向垃圾郵件智能處理領(lǐng)域的移植,例如決策樹方法、bayes算法、Adaboost算法、支持向量機(jī)方法、Winnow算法(一種改進(jìn)的神經(jīng)網(wǎng)絡(luò)分類算法)、粗糙集方法(RoughSet)、最大熵模型、Rocchio方法、神經(jīng)網(wǎng)絡(luò)方法(NN,NeuralNetwork)、k-近鄰算法等。之所以出現(xiàn)這種學(xué)術(shù)研究上的偏好的原因主要有兩點(diǎn)一是在反垃圾郵件支持者與垃圾郵件發(fā)送者兩大陣營(yíng)長(zhǎng)期“斗法”的過(guò)程中,傳統(tǒng)的基于黑白名單和基于規(guī)則過(guò)濾的方法由于其內(nèi)在的缺陷(如靈活性、智能性差、漏報(bào)率和誤報(bào)率高),已經(jīng)難以應(yīng)付手法日益巧妙的垃圾郵件發(fā)送者,而具備學(xué)習(xí)能力的統(tǒng)計(jì)方法則在理論研究和實(shí)際應(yīng)用中表現(xiàn)出異乎尋常的優(yōu)越性,經(jīng)過(guò)良好訓(xùn)練的統(tǒng)計(jì)過(guò)濾器往往能夠以極高的準(zhǔn)確率阻斷某些特征不顯著的垃圾郵件,甚至通過(guò)自學(xué)習(xí)識(shí)別出某些未知特征的垃圾郵件;另一個(gè)原因是將NaiveBayes方法引入到反垃圾郵件處理領(lǐng)域的先驅(qū)PaulGraham在“APlanForSpam”一文中作出的著名論斷“TheAchillesheelofthespammersistheirmessage.”,也就是說(shuō)垃圾郵件無(wú)論怎樣偽裝,都必須包含它希望透露給讀者的內(nèi)容。圍繞這一論斷,人們做了大量試驗(yàn)進(jìn)行驗(yàn)證,兩個(gè)著名的例子是Bogofilter和SpamBayes(Bogofilter和SpamBayes是兩個(gè)Sourceforge組織的開源項(xiàng)目,也是目前所有采用貝葉斯算法過(guò)濾垃圾郵件的開源項(xiàng)目中各項(xiàng)測(cè)評(píng)指標(biāo)表現(xiàn)最優(yōu)異的兩個(gè)項(xiàng)目),這兩個(gè)項(xiàng)目均是采用Graham提出的NaiveBayes方法構(gòu)造垃圾郵件過(guò)濾器。實(shí)踐證明,Graham關(guān)于垃圾郵件本質(zhì)特征的論斷是一個(gè)有遠(yuǎn)見(jiàn)的正確見(jiàn)解,因而被各國(guó)研究垃圾郵件問(wèn)題的科研工作者廣泛接受?;谏鲜鰞蓚€(gè)主要原因,學(xué)術(shù)界自2002年開始掀起了基于統(tǒng)計(jì)方法進(jìn)行垃圾郵件內(nèi)容過(guò)濾的研究熱潮,并一直延續(xù)至今。在理論成果方面,基于統(tǒng)計(jì)方法的反垃圾郵件技術(shù)研究目前基本形成了一套完整的理論體系?;镜闹笇?dǎo)思想可以歸納為垃圾郵件特征建模、垃圾郵件的特征向量化表示、垃圾郵件分類算法建模、采用垃圾郵件樣本訓(xùn)練垃圾郵件分類器、采用垃圾郵件分類器過(guò)濾垃圾郵件并實(shí)施增量學(xué)習(xí)。通過(guò)對(duì)近5年來(lái)發(fā)表在國(guó)內(nèi)外較高級(jí)別期刊和會(huì)議上的相關(guān)文章進(jìn)行調(diào)研,可以看出絕大部分相關(guān)科研工作都遵循這樣的研究思路,比較有影響的原創(chuàng)文章之間的區(qū)別主要在于垃圾郵件的向量化表示方法和所采用的機(jī)器學(xué)習(xí)算法上。關(guān)于統(tǒng)計(jì)分類算法在反垃圾郵件領(lǐng)域的應(yīng)用研究,經(jīng)歷了一個(gè)從貝葉斯算法開始(2002年P(guān)aulGraham公開發(fā)表“Aplanforspam”,被認(rèn)為是將Bayes算法應(yīng)用于垃圾郵件處理研究的開端);到各種方法被先后應(yīng)用于垃圾郵件分類(如決策樹、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等),貝葉斯方法被漸漸忽視;再到貝葉斯方法的效率和準(zhǔn)確性被重新認(rèn)識(shí)和發(fā)現(xiàn),研究熱點(diǎn)逐漸回歸這樣一個(gè)有趣的發(fā)展歷程。
發(fā)明內(nèi)容本專利主要提出一種可擴(kuò)展的多協(xié)議支持的垃圾信息過(guò)濾方法和裝置。該裝置默認(rèn)集成了smtp、pop3、http、cmpp、即時(shí)通訊信息(qq,msn)協(xié)議支持以及基于行為過(guò)濾,基于bayes過(guò)濾,基于規(guī)則過(guò)濾算法支持。二次開發(fā)者可以根據(jù)需要在該框架上擴(kuò)展更多的協(xié)議和算法支持。該裝置實(shí)時(shí)的提取出網(wǎng)絡(luò)中的郵件、網(wǎng)頁(yè)、短信、即時(shí)通訊信息包,并按照相關(guān)協(xié)議對(duì)數(shù)據(jù)包進(jìn)行重組,最后調(diào)用多線程模塊將其保存到相應(yīng)隊(duì)列中準(zhǔn)備進(jìn)行信息識(shí)別。外圍的垃圾短信、垃圾網(wǎng)頁(yè)、垃圾郵件、垃圾即時(shí)通訊信息識(shí)別模塊如果識(shí)別出為垃圾信息就將其丟棄,反之放行??梢愿鶕?jù)實(shí)際需要擴(kuò)展過(guò)濾算法,也可以利用iptables配置需要過(guò)濾協(xié)議的類型,更改配置文件后,擴(kuò)充的功能達(dá)到“即插即用”的效果,充分體現(xiàn)了框架的可擴(kuò)充性。1透明網(wǎng)橋工作在透明網(wǎng)橋之上,可以不配置IP地址從而使過(guò)濾裝置在網(wǎng)絡(luò)上完全透明,裝置采取冗余陣列的形式部署在服務(wù)器前端。裝置的網(wǎng)橋使用于以太網(wǎng)的環(huán)境下,它跟物理網(wǎng)橋不同,是采用在裝有雙網(wǎng)卡的PC機(jī)上安裝相關(guān)軟件模擬而成,具有網(wǎng)橋的功能,卻比網(wǎng)卡具有更高的性價(jià)比和更好的軟件擴(kuò)充性。搭建透明網(wǎng)橋的條件主要有兩點(diǎn)●硬件條件兩塊以太網(wǎng)網(wǎng)卡,以RJ45接口連接網(wǎng)線?!褴浖l件開源軟件開發(fā)包bridge-utils[26]。這里不介紹透明網(wǎng)橋的詳細(xì)配置步驟,參照bridge-utils開源包附帶的使用文檔。2數(shù)據(jù)包重定向技術(shù)本系統(tǒng)運(yùn)行在透明網(wǎng)橋之上,網(wǎng)卡以混雜模式工作。從網(wǎng)絡(luò)到主機(jī)的IP包先進(jìn)過(guò)PRE_ROUTING鉤子點(diǎn),然后經(jīng)過(guò)FORWARD,最后經(jīng)過(guò)POST_ROUTING鉤子點(diǎn),不會(huì)經(jīng)過(guò)LOCAL_IN或LOCAL_OUT。又因?yàn)閚etfilter提供IP包阻斷過(guò)濾的的鉤子點(diǎn)只有LOCAL_IN、LOCAL_OUT和FORWARD,因而,系統(tǒng)選擇在FORWARD鉤子點(diǎn)注冊(cè)鉤子函數(shù)。系統(tǒng)將鉤子函數(shù)掛在FORWARD點(diǎn),鉤子函數(shù)將檢查TCP頭,將源端口是25,80等以及目的端口是25,80等的IP包從內(nèi)核態(tài)定向到用戶態(tài)程序。用戶態(tài)程序在對(duì)該包處理后,再將該包返回FORWARD鉤子點(diǎn),之后該包通過(guò)POST_ROUTING鉤子點(diǎn)流向網(wǎng)絡(luò)。系統(tǒng)使用開發(fā)包iptables來(lái)架載鉤子函數(shù),使用開發(fā)包libipq來(lái)在用戶態(tài)接收IP包。用這種方式完成IP包重定向這一功能。在結(jié)合iptables與libipq開發(fā)時(shí),不必考慮netlink的通訊機(jī)制,因?yàn)閕ptables、ip_queue、libipq已經(jīng)包含具體實(shí)現(xiàn)模塊。3接收和回注IP包技術(shù)本模塊在內(nèi)核空間獲取網(wǎng)橋模塊傳來(lái)的IP包,然后將IP包傳到用戶空間。用戶空間設(shè)有相應(yīng)程序接收該IP包,然后進(jìn)行處理。判斷該報(bào)文的性質(zhì),對(duì)于會(huì)話過(guò)程中的報(bào)文,則執(zhí)行轉(zhuǎn)發(fā)操作;否則截留該報(bào)文,根據(jù)用戶空間垃圾郵件過(guò)濾程序返回的結(jié)果決定轉(zhuǎn)發(fā)或者丟棄該報(bào)文。本模塊提供了兩種IP包的接收方式。(1)只接收IP包的描述信息。(2)接收包括描述信息的整個(gè)IP包。同時(shí)提供兩種回注方式。(1)回注原IP包。(2)回注用戶自定義的IP包(通過(guò)形參告訴IP_QUEUE處理該包的方式DROP或ACCEPT)。4協(xié)議分析技術(shù)IP分片重組的思想分片處理有一個(gè)三級(jí)鏈表,先根據(jù)IP分片的目的地址計(jì)算HASH值在第1級(jí)HASH鏈表找到相應(yīng)結(jié)點(diǎn),接著按IP分片中的標(biāo)志符(identification),以及源,目的地址等找到第2級(jí)鏈表中相應(yīng)的IP分組結(jié)點(diǎn),最后根據(jù)13位的碎片偏移來(lái)找到第3級(jí)鏈表中的IP分片結(jié)點(diǎn),最后把IP分組鏈表粘合起來(lái),形成完整的IP報(bào)文,保存在HASH鏈表中。TCP數(shù)據(jù)流重組的思想用一個(gè)HASH散列表來(lái)保存每個(gè)TCP連接。當(dāng)一個(gè)完整IP包到來(lái)時(shí),先檢查與當(dāng)前數(shù)據(jù)區(qū)尾部有沒(méi)有重合,如果有就進(jìn)行重疊處理(去掉重疊部分),沒(méi)有重疊并且數(shù)據(jù)是很靠后的,那么就將該TCP段加入一個(gè)鏈表,當(dāng)中間部分?jǐn)?shù)據(jù)到來(lái)后再進(jìn)行數(shù)據(jù)粘合。該部分用到的數(shù)據(jù)結(jié)構(gòu)是HASH散列表(即每個(gè)HASH結(jié)點(diǎn)指向一個(gè)雙向鏈表)。當(dāng)一個(gè)IP包到來(lái)時(shí),先進(jìn)行HASH散列表定位。HASH散列表的定位失敗說(shuō)明沒(méi)有相應(yīng)的TCP結(jié)點(diǎn),如果該當(dāng)前TCP段的標(biāo)志位是SYN,則說(shuō)明這是TCP建立連接3次握手的第1次,接著當(dāng)然就是建立相應(yīng)的結(jié)點(diǎn)以便后面的重組處理。理所當(dāng)然,接下來(lái)就是判斷標(biāo)志位是否為ACK+SYN即是否是第2次握手,后面檢查標(biāo)志位是否為ACK且收發(fā)雙方的狀態(tài)是否分別為TCP_SYN_RECV和TCP_SYN_SENT,如果是的話那么第3次握手完成,連接建立。后續(xù)工作繼續(xù)判斷標(biāo)志位是否是RST,是的話就刪除該結(jié)點(diǎn),等待重新建立連接。最后的狀態(tài)處理是連接結(jié)束的處理。這部分的處理不同與IP分片處理,它處理重疊的方法不同,IP分片處理重疊是分別處理分片與上下結(jié)點(diǎn)的重疊情況,而這里的TCP數(shù)據(jù)流重組不是這樣處理的,它的核心思想是先判斷當(dāng)前的段與數(shù)據(jù)緩沖區(qū)有沒(méi)數(shù)據(jù)重疊,有的話就處理重疊,如果沒(méi)有重疊,即數(shù)據(jù)應(yīng)該在當(dāng)前數(shù)據(jù)緩沖區(qū)末數(shù)據(jù)的后面,那么就先把該數(shù)據(jù)保存在一個(gè)緩沖數(shù)據(jù)鏈表中,而不像分片處理那樣處理。當(dāng)處理完當(dāng)前到來(lái)的TCP段后接著搜索緩沖數(shù)據(jù)鏈表,看里面有沒(méi)與當(dāng)前數(shù)據(jù)緩沖區(qū)數(shù)據(jù)重疊的結(jié)點(diǎn),有的話就處理該結(jié)點(diǎn),把沒(méi)重疊的數(shù)據(jù)連接在數(shù)據(jù)緩沖區(qū)中。這樣的處理思想有利于處理TCP段的無(wú)序以及重復(fù)性。上面的對(duì)重疊數(shù)據(jù)處理時(shí),還得判斷當(dāng)前的數(shù)據(jù)是不是緊急數(shù)據(jù)(判斷方法就是看標(biāo)志位的緊急指針位有沒(méi)置1),是的話就按緊急數(shù)據(jù)的處理方式處理,不是的話,就按一般的數(shù)據(jù)處理,即直接把沒(méi)重疊的數(shù)據(jù)存入DATA數(shù)據(jù)緩沖區(qū)。TCP數(shù)據(jù)流重組的思想用一個(gè)HASH散列表來(lái)保存每個(gè)TCP連接。當(dāng)一個(gè)完整IP包到來(lái)時(shí),先檢查與當(dāng)前數(shù)據(jù)區(qū)尾部有沒(méi)有重合,如果有就進(jìn)行重疊處理(去掉重疊部分),沒(méi)有重疊并且數(shù)據(jù)是很靠后的,那么就將該TCP段加入一個(gè)鏈表,當(dāng)中間部分?jǐn)?shù)據(jù)到來(lái)后再進(jìn)行數(shù)據(jù)粘合。該部分用到的數(shù)據(jù)結(jié)構(gòu)是HASH散列表(即每個(gè)HASH結(jié)點(diǎn)指向一個(gè)雙向鏈表)。當(dāng)一個(gè)IP包到來(lái)時(shí),先進(jìn)行HASH散列表定位。HASH散列表的定位失敗說(shuō)明沒(méi)有相應(yīng)的TCP結(jié)點(diǎn),如果該當(dāng)前TCP段的標(biāo)志位是SYN,則說(shuō)明這是TCP建立連接3次握手的第1次,接著當(dāng)然就是建立相應(yīng)的結(jié)點(diǎn)以便后面的重組處理。理所當(dāng)然,接下來(lái)就是判斷標(biāo)志位是否為ACK+SYN即是否是第2次握手,后面檢查標(biāo)志位是否為ACK且收發(fā)雙方的狀態(tài)是否分別為TCP_SYN_RECV和TCP_SYN_SENT,如果是的話那么第3次握手完成,連接建立。后續(xù)工作繼續(xù)判斷標(biāo)志位是否是RST,是的話就刪除該結(jié)點(diǎn),等待重新建立連接。最后的狀態(tài)處理是連接結(jié)束的處理。這部分的處理不同與IP分片處理,它處理重疊的方法不同,IP分片處理重疊是分別處理分片與上下結(jié)點(diǎn)的重疊情況,而這里的TCP數(shù)據(jù)流重組不是這樣處理的,它的核心思想是先判斷當(dāng)前的段與數(shù)據(jù)緩沖區(qū)有沒(méi)數(shù)據(jù)重疊,有的話就處理重疊,如果沒(méi)有重疊,即數(shù)據(jù)應(yīng)該在當(dāng)前數(shù)據(jù)緩沖區(qū)末數(shù)據(jù)的后面,那么就先把該數(shù)據(jù)保存在一個(gè)緩沖數(shù)據(jù)鏈表中,而不像分片處理那樣處理。當(dāng)處理完當(dāng)前到來(lái)的TCP段后接著搜索緩沖數(shù)據(jù)鏈表,看里面有沒(méi)與當(dāng)前數(shù)據(jù)緩沖區(qū)數(shù)據(jù)重疊的結(jié)點(diǎn),有的話就處理該結(jié)點(diǎn),把沒(méi)重疊的數(shù)據(jù)連接在數(shù)據(jù)緩沖區(qū)中。這樣的處理思想有利于處理TCP段的無(wú)序以及重復(fù)性。上面的對(duì)重疊數(shù)據(jù)處理時(shí),還得判斷當(dāng)前的數(shù)據(jù)是不是緊急數(shù)據(jù)(判斷方法就是看標(biāo)志位的緊急指針位有沒(méi)置1),是的話就按緊急數(shù)據(jù)的處理方式處理,不是的話,就按一般的數(shù)據(jù)處理,即直接把沒(méi)重疊的數(shù)據(jù)存入DATA數(shù)據(jù)緩沖區(qū)。5多線程調(diào)度分析技術(shù)當(dāng)協(xié)議分析模塊完成處理后,各種信息得以還原,例如多個(gè)IP包傳送的郵件被還原成一封完整的郵件,然后對(duì)郵件進(jìn)行解碼并插入到郵件隊(duì)列中。裝置最后維護(hù)著一個(gè)工作線程池和一個(gè)調(diào)度線程,如果該調(diào)度線程發(fā)現(xiàn)線程池有空閑線程時(shí),就調(diào)度該線程去郵件隊(duì)列,短信隊(duì)列或網(wǎng)頁(yè)隊(duì)列取出信息進(jìn)行過(guò)濾處理。這里的過(guò)濾處理,本裝置集成了基于行為的過(guò)濾,規(guī)則匹配過(guò)濾,bayes過(guò)濾。當(dāng)任何一種過(guò)濾機(jī)制識(shí)別該信息為垃圾時(shí),就直接反饋到回注模塊,進(jìn)行相應(yīng)的包放行或丟棄操作。實(shí)現(xiàn)過(guò)程中,多線程之間的同步問(wèn)題采用互斥鎖加信號(hào)量的機(jī)制。郵件,短信,即時(shí)通訊信息和網(wǎng)頁(yè)隊(duì)列采用雙緩沖隊(duì)列實(shí)現(xiàn)。6過(guò)濾算法技術(shù)Bayes過(guò)濾算法技術(shù)(1)產(chǎn)生郵件中每個(gè)單詞為垃圾郵件的概率。p(w)=b(w)/(b(w)+g(w))b(w)=(包含單詞w的垃圾郵件的數(shù)目)/(整個(gè)垃圾郵件的數(shù)目)g(w)=(包含單詞w的非垃圾郵件的數(shù)目)/(整個(gè)非垃圾郵件的數(shù)目)(2)第一步算出的這個(gè)概率并不是很精確,為了提高判斷的準(zhǔn)確性,接下來(lái)用robinson的算法對(duì)p(w)做一些改進(jìn)。(公式1)s=背景信息的濃度。x=基于背景信息假想的概率,當(dāng)一個(gè)單詞第一次出現(xiàn)在一封垃圾郵件中時(shí),對(duì)該單詞沒(méi)有更多的信息,就用此值。n=包含單詞w的垃圾和非垃圾郵件的總數(shù)。(3)利用每個(gè)單詞的概率來(lái)計(jì)算整封郵件為垃圾郵件的概率。(公式2)C-1()為inversechi-square函數(shù)。因?yàn)樵摵瘮?shù)對(duì)非垃圾郵件更加有意義,為了提高算法的準(zhǔn)確性,再用(1-f(w))代替f(w)來(lái)計(jì)算一封郵件為非垃圾郵件的概率S。聯(lián)合H,S看一封郵件為垃圾郵件的概率。(公式3)概率接近1則判斷該郵件為垃圾郵件;接近0則判斷該郵件為正常郵件;接近0.5則判斷為不確定。基于行為過(guò)濾技術(shù)方案本模塊的主要設(shè)計(jì)思想是本模塊利用支持向量機(jī)的方法,對(duì)郵件頭進(jìn)行分析,進(jìn)而只根據(jù)郵件頭識(shí)別出垃圾郵件。首先對(duì)郵件進(jìn)行郵件向量化,然后進(jìn)行向量?jī)?yōu)化,去除對(duì)分類無(wú)效的向量,然后利用訓(xùn)練得到的模型,用C-svc進(jìn)行2分類。本模塊用svm的思想實(shí)現(xiàn)基于行為的過(guò)濾,在基于內(nèi)容過(guò)濾前,過(guò)濾掉大量垃圾郵件。當(dāng)不能識(shí)別垃圾郵件時(shí),才繼續(xù)進(jìn)行后面的基于內(nèi)容的過(guò)濾。郵件向量化郵件頭容易偽造的地方有7個(gè)字段。(1)Fromfield;(2)Tofield;(3)Reply-Tofield;(4)Delivered-Tofield;(5)Return-Pathfield;(6)Receivedfield;(7)Datefield在這些字段中,可能出現(xiàn)下面的情況。(1)沒(méi)有這個(gè)字段。(2)有這個(gè)字段,但是為空。(3)郵件地址的用戶名為空,比如@sina.com。(4)郵件地址域名為空。(5)郵件地址格式不對(duì),比如有*這些符號(hào)等。(6)根據(jù)郵件地址域名查不到DNS記錄。(7)郵件地址有兩個(gè)@符號(hào)。(8)郵件地址沒(méi)有@符號(hào)。(9)郵件地址只有一個(gè)@符號(hào),沒(méi)有用戶名和域名。(10)Date里面的年是前幾年的,比如2004年。(11)Received太多,也就是經(jīng)過(guò)的路由太多。同時(shí)在上面提到的7個(gè)字段的前5個(gè)字段中,兩兩結(jié)合又有10種組合。這樣相當(dāng)于有17個(gè)組合。這17種組合最后根據(jù)前面11種情況最后可以提取106種特征(當(dāng)然可以更多或更少)。將一封郵件的郵件頭相關(guān)信息拆分成這106種特征向量的過(guò)程稱為郵件的向量化。郵件向量話的設(shè)計(jì)思想當(dāng)一封郵件到來(lái)時(shí),提取出前面介紹過(guò)的7個(gè)字段信息,如果沒(méi)有就記為空。然后根據(jù)這些字段信息和前面的11種情況,將相應(yīng)的判斷結(jié)果記錄成一個(gè)數(shù)組的形式。供后面的子模塊繼續(xù)處理。向量?jī)?yōu)化向量?jī)?yōu)化的設(shè)計(jì)思想上個(gè)子模塊將郵件優(yōu)化成了106維向量。但是其中很多特征沒(méi)有達(dá)到區(qū)分郵件的目的,比如所有郵件的某維向量都是1或者-1。對(duì)于這些向量,在判斷或者訓(xùn)練前都要將其去除掉,以免影響到判斷效率。在該子模塊設(shè)計(jì)過(guò)程中,設(shè)計(jì)以下梯度矩陣。設(shè)計(jì)這個(gè)矩陣能在對(duì)樣本shrink時(shí)候,減少重建梯度的計(jì)算量。訓(xùn)練模型的獲得訓(xùn)練模型的獲得的設(shè)計(jì)思想本子模塊采取的是C-SVC,所以目標(biāo)函數(shù)的對(duì)偶函數(shù)是。本子模塊接收向量?jī)?yōu)化過(guò)的訓(xùn)練郵件向量,利用支持向量機(jī)的思想,關(guān)鍵計(jì)算幾個(gè)重要參數(shù)。以及最優(yōu)解α=(α1,α2,α3,...αl)T然后選取一個(gè)正分量求出最后將計(jì)算結(jié)果和訓(xùn)練數(shù)據(jù)向量信息寫入模型文件。C-svc兩分類C-svc兩分類的設(shè)計(jì)思想本非線形支持向量機(jī)使用的核函數(shù)是徑向基內(nèi)核函數(shù)。K(xi,xj)=exp(-γ||xi-xj||2),γ>0本子模塊首先載入訓(xùn)練得到的模型文件,然后利用其中的關(guān)鍵參數(shù)以及郵件向量?jī)?yōu)化后的結(jié)果,傳入決策函數(shù),最后得到判斷結(jié)果1(正常郵件),-1(垃圾郵件)。決策函數(shù)如下。規(guī)則過(guò)濾算法設(shè)計(jì)本模塊的主要設(shè)計(jì)思想是本模塊的設(shè)計(jì)參照SpamAssassin的規(guī)則方法,依據(jù)本項(xiàng)目自定義規(guī)則集對(duì)郵件頭和郵件體進(jìn)行模式匹配,對(duì)模式匹配中標(biāo)的規(guī)則執(zhí)行分值疊加操作,得到郵件體的綜合評(píng)分值,再與郵件頭分析模塊得出的郵件頭分值疊加,得到該郵件的總分值,與系統(tǒng)預(yù)設(shè)垃圾郵件閾值比較以判定該郵件是否為垃圾郵件,作為對(duì)該郵件執(zhí)行阻斷或進(jìn)一步過(guò)濾處理的依據(jù)。本模塊的輸入為郵件頭分析模塊傳遞來(lái)的郵件指針和郵件頭評(píng)分值,輸出為基于綜合評(píng)分得出的關(guān)于該郵件是否為垃圾郵件的判定值(0Pending;1Spam)。(1)系統(tǒng)規(guī)則系統(tǒng)規(guī)則是指為識(shí)別垃圾郵件而預(yù)先定義的缺省規(guī)則,一般是一些基本的、通用的規(guī)則,隨著垃圾郵件發(fā)送技術(shù)和垃圾郵件內(nèi)容的變化,系統(tǒng)規(guī)則需定期更新,以確保系統(tǒng)對(duì)垃圾郵件的識(shí)別率。系統(tǒng)規(guī)則的產(chǎn)生是通過(guò)采用基于boostingtree的文本分類技術(shù)學(xué)習(xí)垃圾郵件而得到,并采用基于神經(jīng)網(wǎng)絡(luò)的反饋技術(shù)進(jìn)行增量學(xué)習(xí),定期更新。本系統(tǒng)采用的系統(tǒng)規(guī)則格式為SpamAssassin兼容格式,基本格式如下其中·Section區(qū)段標(biāo)識(shí),可以是信頭、信體、原始郵件、URI等等;·Describe描述字段標(biāo)識(shí);·Score分值字段標(biāo)識(shí);·rule_name規(guī)則名;·regular_expression規(guī)則字符串(正則表達(dá)式);·description規(guī)則描述語(yǔ)句;·value_number該條規(guī)則對(duì)應(yīng)的具體分值(如0.03);正則表達(dá)式是一種可以用于模式匹配和替換的強(qiáng)有力的工具,它(也可以表示為regexes,regexps或Res)廣泛使用在很多搜索程序里,比如grep和findstr,文本處理程序如sed和awk,和編輯器程序,如vi和emacs。一個(gè)正則表達(dá)式就是一種方法,這種方法能夠描述一組字符串,但不用列出所有的字符串。它可以讓用戶通過(guò)使用一系列的特殊字符構(gòu)建匹配模式,然后把匹配模式與數(shù)據(jù)文件、程序輸入以及WEB頁(yè)面的表單輸入等目標(biāo)對(duì)象進(jìn)行比較,根據(jù)比較對(duì)象中是否包含匹配模式,執(zhí)行相應(yīng)的程序。于是正則表達(dá)式的處理就很重要,它直接關(guān)系到模塊的性能和處理能力。Regular_expersion采用的是flex中的正則表達(dá)式,它是perl正則表達(dá)式的一個(gè)子集。下面我們對(duì)flex正則表達(dá)式作簡(jiǎn)單介紹`x′匹配字符’x’`.′除換行之外的任何字符(字節(jié))。`[xyz]′說(shuō)明了一個(gè)“字符類”;此時(shí),模式匹配`x′、`y′或`z′中的任何一個(gè)。`[abj-oZ]′帶有范圍的“字符類”;匹配’a’、’b’,’j’到’o’之間的任何字母,或者’Z’。`[^A-Z]′“非字符類”(negatedcharacterclass),可匹配除“非字符類”中聲明的字符以外的所有字符,本例中,匹配除大寫字母外的所有任何字符。`[^A-Z\n]′除大寫字母和換行外的任何字符。`r*′零個(gè)或多個(gè)r,r可以是任意的正則表達(dá)式。`r+′一個(gè)或多個(gè)r`r?′零個(gè)或一個(gè)r`r{2,5}′2到5個(gè)r`r{2,}′2到無(wú)窮個(gè)r`r{4}′匹配恰好4個(gè)r`{name}′此處將按照前面關(guān)于″name″的定義進(jìn)行展開。`″[xyz]\″foo″′將foo按照字面意思匹配,等同于`[xyz]″foo′,’\’為轉(zhuǎn)義符號(hào)`\x′如果x是`a′,`b′,`f′,`n′,`r′,`t′,或者`v′,那么\x將被解釋為ANSIC-C字符,否則,將按字面意思解釋`x′(用于轉(zhuǎn)義像`*′這樣的操作符)`\0′aNULcharacter(ASCII碼0)`\123′以八進(jìn)制數(shù)123表示的字符`\x2a′以十六進(jìn)制數(shù)2a表示的字符`(r)′匹配一個(gè)r;圓括號(hào)用于改變?cè)凶址膬?yōu)先級(jí)`rs′在正則表式r之后匹配正則表達(dá)式s;這種方式稱為“連接”`r|s′表示匹配正則表達(dá)式r或者正則表達(dá)式s`r/s′表示僅當(dāng)s被匹配時(shí),才匹配r。`/′本身不匹配任何字符,當(dāng)需要確定那個(gè)規(guī)則是最長(zhǎng)匹配時(shí),由s匹配的文本將被包括進(jìn)來(lái),需要注意的是,在動(dòng)作(action)被執(zhí)行之前,由s匹配的文本將被退回到輸入緩沖區(qū)中。因此,在執(zhí)行動(dòng)作時(shí)僅能看到匹配r的文本(注這意味著yytext將不包含匹配s的字符,而且它們也不會(huì)記入yyleng中)。這種類型的模式稱為右上下文模式(trailingcontext)。(flex不能正確識(shí)別某些`r/s′的組合;)`^r′僅在行首位置匹配r(即掃描開始的位置,或者掃描到一個(gè)換行符之后)。很容易通過(guò)創(chuàng)建一個(gè)正則表達(dá)式(或者叫regex)來(lái)聲明一個(gè)模式,即一條規(guī)則,所有這樣的SA格式的規(guī)則組成系統(tǒng)的規(guī)則集。為使系統(tǒng)達(dá)到最優(yōu)的執(zhí)行效率,在使用之前,系統(tǒng)將這組規(guī)則集自動(dòng)轉(zhuǎn)化為二進(jìn)制模式的有限自動(dòng)機(jī),其最終方式以Linux下動(dòng)態(tài)連接庫(kù)的方式存在。(2)用戶規(guī)則用戶自定義規(guī)則是指本產(chǎn)品用戶可以自行設(shè)定一些管理規(guī)則,以嚴(yán)格阻斷某些敏感郵件,或者當(dāng)某些特定類型的郵件流經(jīng)本網(wǎng)橋時(shí)向用戶報(bào)警(本產(chǎn)品預(yù)留報(bào)警接口,可以應(yīng)用戶需求采取郵件報(bào)警或手機(jī)短信報(bào)警)。本系統(tǒng)采用的用戶自定義規(guī)則基本格式如下用戶規(guī)則由用戶管理模塊中的相應(yīng)界面輸入,其保存格式系統(tǒng)自動(dòng)維護(hù)。(3)規(guī)則生成規(guī)則生成是指將SA格式的文本方式規(guī)則集轉(zhuǎn)換成系統(tǒng)所需的二進(jìn)制形式,其最終以系統(tǒng)的動(dòng)態(tài)鏈接庫(kù)形式存在。這樣做的目的是提高系統(tǒng)在進(jìn)行規(guī)則判斷時(shí)模式匹配的效率,其具體步驟是A將SA格式的文本方式規(guī)則集轉(zhuǎn)換成flex所要求的格式B調(diào)用Linux系統(tǒng)下開源工具flex將flex格式的規(guī)則轉(zhuǎn)化為C++源程序C調(diào)用G++對(duì)所得的C++源程序進(jìn)行編譯D調(diào)用G++將編譯所得的文件及其它所需的文件進(jìn)行鏈接,最終得到系統(tǒng)所要的動(dòng)態(tài)鏈接庫(kù),即二進(jìn)制形式的規(guī)則集(4)規(guī)則更新規(guī)則更新是指將用戶定義了自己的個(gè)性規(guī)則加入到系統(tǒng)中使之生效。由于系統(tǒng)規(guī)則最終是以二進(jìn)制形式的動(dòng)態(tài)鏈接庫(kù)存在,所以規(guī)則更新就要將用戶定義的SA格式的文本方式規(guī)則集和系統(tǒng)的二進(jìn)制規(guī)則集融合。這里采用的方法是系統(tǒng)中保留一份SA格式的文本方式規(guī)則集(系統(tǒng)的二進(jìn)制規(guī)則集由該文本規(guī)則集生成),當(dāng)用戶在配置文件中設(shè)置更新規(guī)則時(shí),系統(tǒng)首先從配置文件中得到用戶文本規(guī)則集的路徑,然后將系統(tǒng)文本規(guī)則集與用戶文本規(guī)則集合并,形成最新的文本規(guī)則集。之后調(diào)用規(guī)則生成模塊形成包含用戶自定義規(guī)則的最新二進(jìn)制模式的規(guī)則集。7病毒掃描系統(tǒng)可以集成開源的病毒庫(kù),例如calmav。對(duì)郵件的附件和網(wǎng)頁(yè)中的文件進(jìn)行病毒掃描。圖1總體框架數(shù)據(jù)流圖;圖2接收和回注IP包模塊流程圖;圖3IP分片重組流程圖;圖4基于行為過(guò)濾流程圖;圖5基于bayes過(guò)濾流程圖;圖6規(guī)則匹配打分部分整體流程圖;圖7規(guī)則更新流程圖;具體實(shí)施例方式下面結(jié)合附圖對(duì)技術(shù)方案的實(shí)施作進(jìn)一步詳細(xì)描述。請(qǐng)參閱圖1,該圖為整個(gè)裝置的總流程圖。在網(wǎng)絡(luò)信息通過(guò)internet(101)從源主機(jī)傳送到目的主機(jī)(110)過(guò)程中,數(shù)據(jù)包重定向模塊利用netfilter/iptables(102)將其中的相關(guān)協(xié)議信息進(jìn)行扣留,保存在IP包隊(duì)列中。接收和回注IP包模塊(103)將數(shù)據(jù)包從內(nèi)核態(tài)定向到用戶態(tài),然后對(duì)數(shù)據(jù)包進(jìn)行協(xié)議分析(104),主要完成IP分片重組和TCP數(shù)據(jù)流重組。當(dāng)TCP數(shù)據(jù)流重組完成即可得到完成的信息,例如完成的郵件,還原的信息被保存在雙緩沖隊(duì)列中。多線程調(diào)度分析模塊(105)利用一個(gè)調(diào)度線程調(diào)度線程池中的工作線程,工作線程被喚醒后立即到雙緩沖隊(duì)列中提取信息,接著根據(jù)信息的類型分別進(jìn)行處理,具體有郵件過(guò)濾(106),短信過(guò)濾(107),網(wǎng)頁(yè)過(guò)濾(108),即時(shí)通訊信息過(guò)濾(109)。郵件過(guò)濾(106)進(jìn)行了基于行為過(guò)濾,bayes過(guò)濾,基于規(guī)則過(guò)濾。后3者進(jìn)行基于規(guī)則的過(guò)濾。當(dāng)過(guò)濾模塊判斷結(jié)果為垃圾時(shí),立即交給接收和回注IP包模塊(103),利用其回注功能將該信息丟棄,反之放行。圖2為接收和回注IP包模塊(103)的流程圖,有五個(gè)地方可以放置鉤子函數(shù),PRE_ROUTING(202),F(xiàn)ORWARD(204),POST_ROUTING(205),LOCAL_IN(207),LOCAL_OUT(209)。本裝置將鉤子放置在FROWARD(204)。當(dāng)網(wǎng)絡(luò)數(shù)據(jù)包經(jīng)過(guò)本裝置的網(wǎng)卡時(shí),經(jīng)過(guò)FORWADR(204)時(shí),如果信息的類型為裝置支持的協(xié)議類型,立即將數(shù)據(jù)包進(jìn)行扣留,而不是默認(rèn)的動(dòng)作轉(zhuǎn)發(fā)。圖3為協(xié)議分析中的IP分片處理流程圖。裝置利用三級(jí)鏈表的數(shù)據(jù)結(jié)構(gòu)來(lái)進(jìn)行分片處理。當(dāng)接收和回注IP包模塊(301)得到數(shù)據(jù)包時(shí),先根據(jù)目的IP地址進(jìn)行第1級(jí)鏈表的定位(302),如果定位失敗,創(chuàng)建相應(yīng)的第1級(jí)鏈表結(jié)點(diǎn)(307),反之根據(jù)IP包ID,源,目的地址進(jìn)行第2級(jí)鏈表定位(303),如果不成功,創(chuàng)建相應(yīng)的第2級(jí)鏈表結(jié)點(diǎn)(308),反之判斷包是否完整(304),如果是,清除其在第2級(jí)鏈表中的結(jié)點(diǎn)(309)。如果不是,接著判斷是否是第1個(gè)分片(305),是就記錄其IP頭信息到相應(yīng)的第2級(jí)鏈表結(jié)點(diǎn)中(310),用于粘合IP包(312)時(shí)構(gòu)造IP頭。如果不是第1個(gè)分片,進(jìn)行第3級(jí)鏈表定位(306),找到其上下位置。接著處理該分片包與上下位置結(jié)點(diǎn)數(shù)據(jù)的重疊(315)。處理完重疊后,將分片插入到第3級(jí)鏈表中(314)。判斷該IP包是否完整了(313),如果完整就進(jìn)行IP包的粘連(312),然后將完整的IP包遞交給TCP數(shù)據(jù)流重組模塊處理。圖4為基于行為過(guò)濾的流程圖,當(dāng)多線程調(diào)度分析模塊(105)從郵件隊(duì)列(401)中提取出信息后,首先進(jìn)行郵件向量化(402),形成106維向量。接著進(jìn)行向量?jī)?yōu)化(403),將其中的對(duì)分類無(wú)貢獻(xiàn)的分向量去掉。最后利用c-svc(c支持向量分類機(jī))進(jìn)行信息性質(zhì)分類。圖5為bayes過(guò)濾的流程圖,bayes有兩種工作模式,如果是學(xué)習(xí)模式(502),首先打開wordlist(509),然后讀訓(xùn)練集所在文件夾中的文件,對(duì)一封郵件首先進(jìn)行分詞(511),然后利用bayes的思想進(jìn)行查詢統(tǒng)計(jì),并更新數(shù)據(jù)庫(kù),同時(shí)更新wordlist(513)。如果是判斷模式,首先打開wordlist(503),接著同樣進(jìn)行分詞(505),郵件分類處理(506),得到最后的判斷結(jié)果,如果是垃圾,立即調(diào)用接收和回注IP包模塊(103)進(jìn)行丟棄。圖6為基于規(guī)則過(guò)濾的流程圖。首先從郵件緩沖區(qū)中讀取1個(gè)字符(601),根據(jù)該字符改變規(guī)則自動(dòng)機(jī)的狀態(tài)(602),接著根據(jù)自動(dòng)機(jī)狀態(tài)執(zhí)行相應(yīng)的操作(603),如此循環(huán),直到讀完郵件所有的字符。最后輸出郵件的評(píng)分結(jié)果(605)。圖7為規(guī)則更新的流程圖。當(dāng)用戶配置文件修改后(701),如果規(guī)則需要更新(702),首先合并文本方式的系統(tǒng)和用戶規(guī)則文件(703),接著生成二進(jìn)制的規(guī)則集(704),如果生成成功(705),加載新規(guī)則集所對(duì)應(yīng)的動(dòng)態(tài)鏈接庫(kù)(706),并釋放原有的動(dòng)態(tài)鏈接庫(kù)(707),然后修改配置文件(708),標(biāo)志更新完畢。如果規(guī)則不需要更新,直接加載原有的動(dòng)態(tài)鏈接庫(kù),以提供郵件等信息的規(guī)則過(guò)濾模塊使用。權(quán)利要求1一種搭建在透明網(wǎng)橋上的垃圾信息(垃圾郵件,網(wǎng)頁(yè),短信,即時(shí)通訊信息)過(guò)濾的方法和裝置。利用netfilter和iptables實(shí)現(xiàn)系統(tǒng)底層包選擇,從網(wǎng)絡(luò)流量中提取出郵件,網(wǎng)頁(yè),短信,即時(shí)通訊等信息,將其保存在系統(tǒng)內(nèi)核中的包隊(duì)列中。2當(dāng)權(quán)利要求1中有包扣留的時(shí)候,利用ip_queue將包從內(nèi)核態(tài)傳送到用戶態(tài)。用戶設(shè)有相應(yīng)的程序接收包,接收到包后首先判斷是不是最后一個(gè)包(如果是郵件,那么最后一個(gè)包是\r\n.\r\n),如果是最后一個(gè)包,那么就將其id,sequence等信息保存在ip包hash隊(duì)列中。3如權(quán)利要求2所述的,判斷是否是最后一個(gè)包后,接著進(jìn)行ip層到tcp層的協(xié)議還原,具體為ip分片重組處理和tcp數(shù)據(jù)流重組處理。4如權(quán)利要求3所述,當(dāng)完成ip到tcp數(shù)據(jù)還原后,得到完整的信息(比如一封完整的郵件),然后將其保存在一個(gè)雙緩沖隊(duì)列中。不同協(xié)議的信息以不同的標(biāo)志區(qū)分。5如權(quán)利要求4所述,完整信息保存在雙緩沖隊(duì)列中。接著以多線程的機(jī)制處理隊(duì)列中保存的信息,具體為一個(gè)調(diào)度線程和多個(gè)工作線程,當(dāng)雙緩沖隊(duì)列中的消費(fèi)隊(duì)列為空時(shí)(消費(fèi)完),交換雙緩沖隊(duì)列中的生產(chǎn)隊(duì)列和消費(fèi)隊(duì)列(如果生產(chǎn)隊(duì)列不為空)。調(diào)度線程喚醒工作線程,喚醒的工作線程繼續(xù)前往消費(fèi)隊(duì)列提取信息進(jìn)行處理。當(dāng)消費(fèi)隊(duì)列為空時(shí),所有工作線程睡眠。6如權(quán)利要求5所述,工作線程提取到信息后,根據(jù)保存在隊(duì)列中的地址四元組信息和sequence信息查詢ip包hash隊(duì)列,確保該信息的最后一個(gè)包在該hash隊(duì)列中。7如權(quán)利要求6所述,確保該信息在ip包hash隊(duì)列中有包與之對(duì)應(yīng)后,根據(jù)信息的類型進(jìn)行不同的處理。如果是郵件,接著進(jìn)行基于行為過(guò)濾,基于規(guī)則的過(guò)濾,病毒掃描以及基于bayes的過(guò)濾,其中任意一個(gè)模塊判斷為垃圾郵件,就直接丟棄掉該郵件,反之放行。如果是網(wǎng)頁(yè)主頁(yè)信息,接著進(jìn)行基于規(guī)則的過(guò)濾。判斷結(jié)果為垃圾時(shí),丟棄網(wǎng)頁(yè),反之放行。如果是網(wǎng)頁(yè)文件,接著進(jìn)行病毒掃描,如果是病毒,丟棄該文件,反之放行。如果是短信,接著進(jìn)行基于規(guī)則的過(guò)濾,如果是垃圾短信,丟棄該短信,反之放行。如果是即時(shí)通訊信息,接著進(jìn)行基于規(guī)則的過(guò)濾,如果是垃圾,丟棄該信息,反之放行。8如權(quán)利要求7所述,當(dāng)信息被判斷為垃圾時(shí),直接返回到內(nèi)核丟棄掉該信息的最后一個(gè)包,并且在該最后一個(gè)包超時(shí)重發(fā)時(shí),繼續(xù)丟棄該包。如果被判斷為正常信息,直接返回到內(nèi)核放行該信息的最后一個(gè)包,并且刪除該包在ip包hash隊(duì)列中的相應(yīng)信息。全文摘要本發(fā)明公開了一種多協(xié)議支持的基于透明網(wǎng)橋的網(wǎng)絡(luò)垃圾信息過(guò)濾方法和裝置,屬于信息安全領(lǐng)域。該方法和裝置包含了透明網(wǎng)橋、數(shù)據(jù)包重定向、接收和回注IP包、協(xié)議分析、多線程調(diào)度分析模塊以及各種協(xié)議的過(guò)濾模塊(例如郵件過(guò)濾模塊,短信過(guò)濾模塊等)。技術(shù)方案是在搭建好的linux透明網(wǎng)橋上利用iptables/netfilter將網(wǎng)絡(luò)中相關(guān)信息進(jìn)行扣留,然后完成ip分片處理,tcp數(shù)據(jù)流還原,得到完整的網(wǎng)絡(luò)信息,將其保存在雙緩沖隊(duì)列中。然后調(diào)度線程喚醒線程池中的工作線程從雙緩沖隊(duì)列中提取信息,調(diào)用不同的過(guò)濾模塊進(jìn)行過(guò)濾。當(dāng)判斷為垃圾信息時(shí)候就丟棄該信息,反之放行。該裝置可以放置在大中型企業(yè)的網(wǎng)關(guān)前端或者部署在邊界路由器前端對(duì)網(wǎng)絡(luò)信息進(jìn)行過(guò)濾。文檔編號(hào)H04L12/58GK101330473SQ20071004931公開日2008年12月24日申請(qǐng)日期2007年6月18日優(yōu)先權(quán)日2007年6月18日發(fā)明者何興高,嶸高,秦志光,曉李,程紅蓉,梅鄭申請(qǐng)人:電子科技大學(xué)