新四季網

一種多協議支持的網絡垃圾信息過濾方法和裝置的製作方法

2023-05-29 03:26:11 2


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀