專利名稱:一種垃圾郵件過濾方法及裝置的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡安全技術領域,特別是涉及一種垃圾郵件過濾方法及網(wǎng)絡安全設備。
背景技術:
隨著互聯(lián)網(wǎng)應用的深入,電子郵件已經(jīng)成為人們?nèi)粘9ぷ骱蜕畹慕涣鞴ぞ?,?在發(fā)揮越來越重要的作用。與此同時,垃圾郵件的出現(xiàn)卻破壞了和諧的網(wǎng)絡文明,一方面, 垃圾郵件會浪費企業(yè)生產(chǎn)力,浪費企業(yè)IT資源;另一方面,各類垃圾郵件往往帶有病毒或 惡意軟件進行廣泛傳播,可能造成病毒傳播、信息泄密等其他方面的Web安全威脅,給用戶 的郵件系統(tǒng)帶來了較大的安全隱患。 面對垃圾郵件對電子郵件系統(tǒng)帶來的種種安全威脅,需要采用網(wǎng)絡安全設備對垃 圾郵件進行過濾。網(wǎng)絡安全設備一般都是放置在郵件服務器的外圍,設備中的反垃圾郵件 功能可以先于郵件服務器對網(wǎng)絡中的垃圾郵件流進行過濾,減少郵件服務器的壓力。傳統(tǒng) 的垃圾郵件過濾方法通常是在郵件到達網(wǎng)絡安全設備時,網(wǎng)絡安全設備采用代理技術,完 全接管連接的整個過程,對整封郵件進行接收,然后進行基于貝葉斯決策等處理方法進行 垃圾郵件的識別。但是,該方法會使得網(wǎng)絡安全設備的性能變得非常慢。 為此,現(xiàn)有技術中出現(xiàn)了另一種垃圾郵件過濾方法,在該方法中,在郵件到達網(wǎng)絡
安全設備時,網(wǎng)絡安全設備先利用拷貝技術拷貝郵件報文,并存放到設備內(nèi)存中,等到拷貝
完郵件的最后一個郵件報文之后,再對整封郵件進行基于貝葉斯決策的處理。 然而,該現(xiàn)有技術中由于需要對郵件報文進行拷貝,而拷貝操作會占用較多的CPU
資源,因此,同樣會使得網(wǎng)絡安全設備處理郵件報文的性能降低,進一步地,降低了過濾垃
圾郵件的實現(xiàn)效率。
發(fā)明內(nèi)容
本發(fā)明提供一種垃圾郵件過濾方法及網(wǎng)絡安全設備,能夠在進行垃圾郵件過濾的 過程中節(jié)省CPU資源,提高過濾垃圾郵件的實現(xiàn)效率。
本發(fā)明提供了如下方案 —種垃圾郵件過濾方法,預先建立映射關系表,所述映射關系表用于保存特征串 與垃圾概率之間的映射關系,所述方法包括 當郵件的第一個郵件報文到來時,根據(jù)該郵件報文的源IP地址、端口號、目的IP 地址、目的端口號及協(xié)議號,為該郵件建立連接跟蹤并確定該郵件報文的內(nèi)存地址,為該連 接跟蹤建立私有數(shù)據(jù)空間; 執(zhí)行郵件報文的分析步驟,所述分析步驟包括在所述內(nèi)存地址中查找到所述郵 件報文,對所述郵件報文中的郵件標題和/或內(nèi)容進行分詞;查找預先建立的映射關系表, 獲取切分結(jié)果中包含的特征串,以及所述特征串對應的垃圾概率,將所述特征串與對應的 垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接收端;當該郵件的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵件報文到來; 當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間中的數(shù)據(jù)計算該郵
件是垃圾郵件的概率;根據(jù)所述計算出的概率確定該郵件是否為垃圾郵件,如果是,則將該
郵件作為垃圾郵件過濾。 優(yōu)選的,所述映射關系表以哈希索引表方式建立; 所述查找預先建立的映射關系表包括通過哈希方式查找所述預先建立的映射關 系表。 優(yōu)選的,所述映射關系表具體用于保存特征串的鍵值與該特征串的垃圾概率之間 的映射關系; 所述對所述郵件報文的標題和/或內(nèi)容進行分詞之后還包括 利用與計算特征串鍵值相同的方法計算各個分詞結(jié)果的鍵值; 所述查找預先建立的映射關系表,獲取切分結(jié)果中包含的特征串包括 判斷所述分詞結(jié)果的鍵值是否出現(xiàn)在所述映射關系表中,如果出現(xiàn),則所述切分
結(jié)果中包含特征串。 優(yōu)選的,所述利用所述私有數(shù)據(jù)空間中的數(shù)據(jù)計算該郵件是垃圾郵件的概率包 括
戶.戶……戶 戶=-^^-5-
《.A.…'尸 +(1-尸)(1-尸2)…,'(卜A,) 其中, P為該郵件是垃圾郵件的概率; PpP2…Pn為該郵件的各個郵件報文的標題和/或內(nèi)容中,包含的各個特征串的垃
圾概率; n為正整數(shù); 所述根據(jù)所述計算出的概率確定該郵件是否為垃圾郵件包括 當所述計算出的概率超過預置閾值時,將所述郵件確定為垃圾郵件。 優(yōu)選的,所述將該郵件作為垃圾郵件過濾包括 將該郵件的最后一個郵件報文丟棄。
優(yōu)選的,如果該郵件不是垃圾郵件,還包括 將該郵件的最后一個郵件報文發(fā)送到接收端,以便所述接收端將各個郵件報文組 合為完整的郵件。 —種垃圾郵件過濾裝置,預先建立映射關系表,所述映射關系表用于保存特征串 與垃圾概率之間的映射關系,所述方法包括 跟蹤建立單元,用于當需要轉(zhuǎn)發(fā)郵件的第一個郵件報文時,根據(jù)該郵件報文的源 IP地址、端口號、目的IP地址、目的端口號及協(xié)議號,為該郵件建立連接跟蹤并確定該郵件 報文的內(nèi)存地址,為該連接跟蹤建立私有數(shù)據(jù)空間; 報文分析單元,用于執(zhí)行郵件報文的分析步驟,所述分析步驟包括在所述內(nèi)存 地址中查找到所述郵件報文,對所述郵件報文中的郵件標題和/或內(nèi)容進行分詞;查找預 先建立的映射關系表,獲取切分結(jié)果中包含的特征串,以及所述特征串對應的垃圾概率,將 所述特征串與對應的垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接收
5端;當該郵件的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵件報文到來; 過濾單元,用于當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間中
的數(shù)據(jù)計算該郵件是垃圾郵件的概率;根據(jù)所述計算出的概率確定該郵件是否為垃圾郵
件,如果是,則將該郵件作為垃圾郵件過濾。 優(yōu)選的,所述映射關系表以哈希索引表方式建立; 所述報文分析單元具體用于,通過哈希方式查找所述預先建立的映射關系表。
優(yōu)選的,所述映射關系表具體用于保存特征串的鍵值與該特征串的垃圾概率之間的映射關系;所述裝置還包括 鍵值計算單元,用于對所述郵件報文的標題和/或內(nèi)容進行分詞之后,利用與計算特征串鍵值相同的方法計算各個分詞結(jié)果的鍵值; 所述報文分析單元具體用于,判斷所述分詞結(jié)果的鍵值是否出現(xiàn)在所述映射關系表中,如果出現(xiàn),則所述切分結(jié)果中包含特征串。 優(yōu)選的,所述郵件過濾單元具體用于將該郵件的最后一個郵件報文丟棄。
優(yōu)選的,還包括 發(fā)送單元,用于如果該郵件不是垃圾郵件,將該郵件的最后一個郵件報文發(fā)送到
接收端,以便所述接收端將各個郵件報文組合為完整的郵件。
根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術效果 本發(fā)明在判斷郵件是否為垃圾郵件的過程中,直接在郵件報文所在的內(nèi)存地址進行分析,不需要拷貝郵件報文,因此,能夠在進行垃圾郵件過濾的過程中節(jié)省CPU資源,提高過濾垃圾郵件的實現(xiàn)效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。 圖1是本發(fā)明實施例提供的方法的流程 圖2是本發(fā)明實施例提供的裝置的示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。 由于現(xiàn)有技術中在進行垃圾郵件過濾的過程中,需要對郵件報文進行拷貝,但是拷貝的過程會耗費較多的CPU資源,因此使得網(wǎng)絡安全設備處理郵件報文的性能降低。顯然,如果不對郵件報文進行拷貝,那么自然可以節(jié)省CPU資源,提高垃圾郵件過濾的效率。但是,在進行垃圾郵件過濾的過程中,需要對郵件報文進行分析處理,分析處理會產(chǎn)生一些中間數(shù)據(jù),那么,分析的過程中將郵件報文保存在哪里、分析產(chǎn)生的中間數(shù)據(jù)又保存在哪
里,這些都是需要解決的問題。本發(fā)明實施例正是提供了解決這些問題的方法。 首先,為了便于對郵件報文進行分析計算,本發(fā)明實施例中首先對于預先收集的
訓練庫中的郵件進行統(tǒng)計。在垃圾郵件中,一些字符串的出現(xiàn)的頻率較高,在普通郵件中出
現(xiàn)的次數(shù)很少,例如,"優(yōu)惠"、"商機"、"歡迎訪問"、"點擊"、"體驗"、"代開"、"發(fā)票"、"free"
等在垃圾郵件中出現(xiàn)的概率較高,但在普通的合法郵件中卻很少出現(xiàn),甚至有些垃圾郵件
為了防止被過濾,可能對詞語進行變換,例如,"*免*費*"、"保你賺大錢(文字之間加入空
格)"等,但這種字符串在合法郵件中幾乎不會出現(xiàn)。因此,可以將這些字符串匯總,將其作
為垃圾郵件的特征串。 而在合法郵件中,另一些字符串出現(xiàn)的頻率可能較高,例如"昨天下午"、"請假"、 "吵架"以及一些專業(yè)性質(zhì)的詞匯,如"編譯修改"、"技術答疑"等等,這些字符串在垃圾郵件 中出現(xiàn)的概率可能就很低。 可見,同一個字符串分別在垃圾郵件和合法郵件中所出現(xiàn)的概率可能是不同的 (例如,同一個詞"free",在100封垃圾郵件中,80封會出現(xiàn);而在100封合法郵件中,只有 IO封會出現(xiàn)),因此,可以使用向量化方法,對訓練庫中的郵件內(nèi)容進行切分處理。根據(jù)貝 葉斯定理,對每個出現(xiàn)的特征串,都可以生成一個垃圾郵件概率的指標,并且可以建立一個 存儲特征串的鍵值和垃圾概率指標的映射關系表。參見表1,該映射關系表可以保存為如下 形式 表1
映射關系表特征串鍵值垃;及概率 其中,對郵件內(nèi)容切分后得到的可能是一個一個的單詞,所有的單詞都可能是特 征串,并且,特征串也可能是多個單詞的鏈式組合,例如"單詞+單詞"等。統(tǒng)計結(jié)束時,可 以選擇詞頻最高的部分單詞進行垃圾郵件概率計算,例如每封郵件都取15個詞頻最高的 單詞,當然,這里取15僅僅是舉例說明,不應看作是對本發(fā)明的限制。 在為特征串生成垃圾郵件概率時,可以采用條件概率的計算方法,例如,訓練的郵 件中,垃圾郵件的總數(shù)為l,合法郵件的總數(shù)為T2,其中,單詞w在L中出現(xiàn)的次數(shù)為Q,
在T2中出現(xiàn)的次數(shù)為C2,則該單詞的垃圾郵件概率可以表示為p(w) = (c/g/OVL+cv
T2)。當然,也可以采用其他的計算方法,這里僅僅是舉例說明,不應看作是對本發(fā)明的限 制。 所述特征串的鍵值是指,將特征串轉(zhuǎn)換成數(shù)值,這個數(shù)值可以唯一的標識這個特 征串。具體實現(xiàn)時,可以利用一些現(xiàn)有的算法來進行轉(zhuǎn)換,例如,最常用的哈希算法等。
在完成上述準備工作之后,就可以進行具體的垃圾郵件過濾流程了,下面進行詳 細地介紹。 參見圖l,本發(fā)明實施例提供的垃圾郵件過濾方法包括以下步驟 S101 :當郵件的第一個郵件報文到來時,根據(jù)該郵件報文的源IP地址、端口號、目
的IP地址、目的端口號及協(xié)議號,為該郵件建立連接跟蹤并確定該郵件報文的內(nèi)存地址,
7為該連接跟蹤建立私有數(shù)據(jù)空間; 首先需要說明的是,網(wǎng)絡安全設備通常是指由一個由軟件和硬件設備組合而成、 在內(nèi)部網(wǎng)與外部網(wǎng)之間、專用網(wǎng)與公共網(wǎng)之間的保護屏障。網(wǎng)絡安全設備一般都是放置在 郵件服務器的外圍,先于郵件服務器對網(wǎng)絡中的垃圾郵件流進行過濾。 另外,一封郵件在網(wǎng)絡中傳輸時,會被分成多個郵件報文進行傳送,這些郵件報文
包括報文頭和負載兩部分。其中,在報文頭中記錄有郵件報文的源IP地址、端口號、目的IP
地址、目的端口號、協(xié)議號以及負載的長度等信息,報文負載則包含郵件協(xié)議的命令或郵件
的內(nèi)容。郵件報文的數(shù)量和郵件的大小有關,郵件大,相應報文數(shù)量就多。 其中,通過報文的端口和報文負載就可以確定"第一個"郵件報文。例如,如果報
文的目的端口是TCP的25端口 ,并且報文負載是HEL0命令請求,則可以確定該報文時郵件
的第一個郵件報文。郵件內(nèi)容的開始報文,可以通過DATA命令的報文請求來判斷。 總之,在具體實現(xiàn)時,可以通過報文的端口和報文負載來感知第一個郵件報文的
到來(即需要轉(zhuǎn)發(fā)該第一個郵件報文),然后,從報文頭中就可以獲取到該郵件報文的源IP
地址、端口號、目的I P地址、目的端口號及協(xié)議號信息,同時,根據(jù)這些信息還可以確定該
郵件報文所在的內(nèi)存地址。其中,由于郵件系統(tǒng)采用存儲轉(zhuǎn)發(fā)的方式發(fā)送郵件,因此,這里
所述的郵件報文的內(nèi)存地址是指,當網(wǎng)卡感知到一封郵件發(fā)送時,會為該文件的郵件報文
分配內(nèi)存地址,然后,該郵件的各個報文都會保存在該內(nèi)存地址中(當然,同一時刻該內(nèi)存
地址只有一個郵件報文,當該郵件報文發(fā)送到接收服務器之后,下一個郵件報文再進入到
該內(nèi)存地址,相當于各個郵件報文復用同一內(nèi)存地址)。也就是說,實際上郵件報文具有自
己的內(nèi)存地址,當接收到郵件的第一個郵件報文時,就可以獲知該內(nèi)存地址。 此外,為了獲取該郵件的其他郵件報文,還需要為該郵件建立連接跟蹤,利用該連
接跟蹤可以跟蹤到該郵件的各個郵件報文。同時,為了保存在垃圾郵件分析過程中得到的
中間數(shù)據(jù),本發(fā)明實施例還在為該連接跟蹤建立私有數(shù)據(jù)空間,即對于利用該連接跟蹤得
到的各個郵件報文,分析得到的中間數(shù)據(jù)都可以報文到該私有數(shù)據(jù)空間,因此解決了分析
產(chǎn)生的中間數(shù)據(jù)保存在哪里的問題。 其中,所述連接跟蹤是指,跟蹤并且記錄連接狀態(tài)。S卩,網(wǎng)絡安全設備為每一個經(jīng) 過網(wǎng)絡堆棧的數(shù)據(jù)包,都可以生成一個連接記錄項,此后,所有屬于此連接的數(shù)據(jù)包都被唯 一地分配給這個連接,并標識連接的狀態(tài)。 S102 :執(zhí)行郵件報文的分析步驟,所述分析步驟包括在所述內(nèi)存地址中查找到 所述郵件報文,對所述郵件報文中的郵件標題和/或內(nèi)容進行分詞;查找預先建立的映射 關系表,獲取切分結(jié)果中包含的特征串,以及所述特征串對應的垃圾概率,將所述特征串與 對應的垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接收端;當該郵件 的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵件報文到來;
在步驟S101中發(fā)現(xiàn)了郵件的第一個郵件報文到來,并且獲知了郵件報文所在的 內(nèi)存地址,因此,就可以直接在該內(nèi)存地址中查找到相應的郵件報文,對該郵件報文進行分 析。具體的分析過程可以是對郵件報文中的郵件標題和/或內(nèi)容進行分詞;然后可以利用 與計算特征串鍵值時相同的方法計算各個分詞結(jié)果的鍵值。之后就可以檢索預先建立的映 射關系表中是否存在各個分詞結(jié)果的鍵值,檢索到之后,取出各個鍵值對應的垃圾概率,然 后保存在之前建立的私有數(shù)據(jù)空間即可。
其中,如果在建立映射關系表時,采用哈希算法計算特征串的鍵值,則相當于是以 哈希索引表方式建立所述映射關系表,具體在查找預先建立的映射關系表時,可以通過哈 希方式查找所述預先建立的映射關系表。當然,在計算各個分詞結(jié)果的鍵值時,也需要采用 哈希算法。 當然,由于計算鍵值的方法不限于哈希算法,因此,這里的查找方式也不限于哈希 方式。此外,在其他實施例中,也不一定計算特征串的鍵值,直接用界分結(jié)果與原始特征串 進行比較,也是可以實現(xiàn)的,具體的實現(xiàn)方法這里不再贅述。 在對一個郵件報文分析完畢之后,就可以將該郵件報文轉(zhuǎn)發(fā)到接收端,然后下一 個郵件報文就會保存到上一個郵件報文所在的內(nèi)存空間??梢?,本發(fā)明實施例在對郵件報 文進行分析的過程中,并沒有對郵件報文進行拷貝,而是直接在郵件報文所在的內(nèi)存地址 中對郵件報文進行分析,因此,大大節(jié)省了 CPU資源,網(wǎng)絡安全設備僅需完成分析工作,而 不用執(zhí)行郵件報文的拷貝,提高了報文分析的速度。 同時,在將一個郵件報文分析完之后,該郵件的下一個郵件報文將會到來,此時, 可以重復執(zhí)行分析步驟,即,對各個郵件報文的分析處理時相同的,各個郵件報文分析得到 的中間數(shù)據(jù)都會保存到該郵件的私有數(shù)據(jù)空間中。直到該郵件的最后一個郵件報文到來。
S103 :當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間中的數(shù)據(jù)計 算該郵件是垃圾郵件的概率;根據(jù)所述計算出的概率確定該郵件是否為垃圾郵件,如果是, 則將該郵件作為垃圾郵件過濾。 由于郵件協(xié)議規(guī)定,郵件的結(jié)束的時候,需要發(fā)送一個僅包含單獨的字符"."的報 文作為郵件的結(jié)束報文,根據(jù)這個報文就可以判斷郵件內(nèi)容結(jié)束。顯然,該最后一個郵件報 文由于只有"."一個字符,因此并不包含任何關于郵件內(nèi)容的信息,因此,不用再進行報文 分析。但是,當該最后一個郵件報文到來時,并不是直接將其發(fā)送到接收端,而是先對該郵 件的私有數(shù)據(jù)空間中的數(shù)據(jù)進行統(tǒng)一計算,得到該郵件是垃圾郵件的概率;然后,根據(jù)所述 計算出的概率確定該郵件是否為垃圾郵件,如果是,則不再將該郵件的最后一個郵件報文 發(fā)送到接收端,也就是將該郵件作為垃圾郵件過濾。對于接收端而言,雖然已經(jīng)接收到之前 所有的郵件報文,但是由于最后一個郵件報文沒有接收到,因此,接收端無法組裝成完整的 郵件,而直接將其丟棄。當然,如果判定該郵件不是垃圾郵件,則可以將該郵件的最后一個 郵件報文發(fā)送到接收端,以便所述接收端將各個郵件報文組合為完整的郵件。
其中,判斷一個郵件是否為垃圾郵件的具體計算方法可以是 假設郵件的各個郵件報文中包含特征串S" S2,…,Sn,轉(zhuǎn)換成的鍵值分別為&,
K2,…,Kn,查詢訓練庫中的映射關系表得到各特征串對應的垃圾概率為PpP2,…,Pn。因 此,該郵件連接的哈希索引表中,最后得到的所有私有數(shù)據(jù)為(K力,(K2,P2),…,(Kn,Pn),
其中,n為正整數(shù),具體的取值與具體的郵件報文有關;或者,n的取值也可以是固定的,例 如可以取詞頻最高的15個單詞,即每封郵件都是取15個計算,當然,n的取值應該與訓練時 每封郵件中取的單詞數(shù)目一致,由于訓練時假設從每封郵件中取15個單詞,因此,相應的, 此處的n也應該取為15。 設P(MK, S2,…S》表示郵件為垃圾郵件的概率,則可以由公式(1)所示的復合
概率公式進行計算
<formula>formula see original document page 10</formula> 計算完成之后,當P(MlSp S2,…S》超過預設閾值時,就可以判斷郵件為垃圾郵 件。其中,預設閾值可以根據(jù)統(tǒng)計獲得,或者依據(jù)具體的應用環(huán)境設定,這里不作具體的限定。 為使本發(fā)明的原理、優(yōu)點和特性更加清楚,下面結(jié)合具體實例對本發(fā)明進行描述。
在該實例中,主要基于郵件協(xié)議SMTP (Simple Mail Transfer Protocol,簡單郵 件傳輸協(xié)議)發(fā)送一封電子郵件進行描述,并假設預先設定的垃圾郵件閾值為0. 9,如果計 算出來的概率為達到或超過0. 9,則判定郵件為垃圾郵件;如果計算出來的概率小于0. 9, 則判定為普通郵件。 其中,SMTP協(xié)議屬于TCP/IP協(xié)議族,利用本發(fā)明實施例提供的方法,當一個SMTP 連接建立時,就可以新建一個連接跟蹤,并在該連接跟蹤的私有數(shù)據(jù)空間中創(chuàng)建一個哈希 索引表。然后,直接在郵件報文的內(nèi)存地址對郵件報文進行分析,對郵件報文中包含的特征 串建立映射關系,并保存在該郵件私有數(shù)據(jù)空間的哈希索引表中。到最后一個郵件內(nèi)容結(jié) 束報文"."到來時,對哈希索引表中的數(shù)據(jù),進行統(tǒng)一計算,得到郵件是垃圾郵件的概率。假 設計算出來的概率為0. 9999,該值超過閾值0. 9,因此,可以判定郵件為垃圾郵件。當該連 接結(jié)束時,可以清空并釋放為該郵件連接建立的私有數(shù)據(jù)空間,以留給其他郵件使用。
與本發(fā)明實施例提供的垃圾郵件過濾方法相對應,本發(fā)明實施例還提供了一種垃 圾郵件過濾裝置,首先,需要預先建立映射關系表,所述映射關系表用于保存特征串與垃圾 概率之間的映射關系,具體的,該裝置可以包括以下各個單元 跟蹤建立單元201,用于當需要轉(zhuǎn)發(fā)郵件的第一個郵件報文時,根據(jù)該郵件報文的 源IP地址、端口號、目的IP地址、目的端口號及協(xié)議號,為該郵件建立連接跟蹤并確定該郵 件報文的內(nèi)存地址,為該連接跟蹤建立私有數(shù)據(jù)空間; 報文分析單元202,用于執(zhí)行郵件報文的分析步驟,所述分析步驟包括在所述內(nèi) 存地址中查找到所述郵件報文,對所述郵件報文中的郵件標題和/或內(nèi)容進行分詞;查找 預先建立的映射關系表,獲取切分結(jié)果中包含的特征串,以及所述特征串對應的垃圾概率, 將所述特征串與對應的垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接 收端;當該郵件的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵 件報文到來; 過濾單元203,用于當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間
中的數(shù)據(jù)計算該郵件是垃圾郵件的概率;根據(jù)所述計算出的概率確定該郵件是否為垃圾郵
件,如果是,則將該郵件作為垃圾郵件過濾。 其中,所述映射關系表可以以哈希索引表方式建立; 相應的,報文分析單元202具體用于,通過哈希方式查找所述預先建立的映射關 其中,所述映射關系表具體可以用于保存特征串的鍵值與該特征串的垃圾概率之 間的映射關系;此時,該裝置還包括 鍵值計算單元,用于對所述郵件報文的標題和/或內(nèi)容進行分詞之后,利用與計 算特征串鍵值相同的方法計算各個分詞結(jié)果的鍵值;
相應的,報文分析單元202具體用于,判斷所述分詞結(jié)果的鍵值是否出現(xiàn)在所述 映射關系表中,如果出現(xiàn),則所述切分結(jié)果中包含特征串。 其中,郵件過濾單元203具體用于將該郵件的最后一個郵件報文丟棄,這樣接收 端由于無法接收到郵件的最后一個郵件報文,因此,即使接收到了之前的所有郵件報文,依 然無法組裝成完整的郵件,當?shù)却欢ǖ臅r間之后,就可以將該郵件丟棄。
當然,如果判定出郵件不是垃圾郵件,則該裝置還可以包括 發(fā)送單元,用于如果該郵件不是垃圾郵件,將該郵件的最后一個郵件報文發(fā)送到 接收端,以便所述接收端將各個郵件報文組合為完整的郵件。 以上對本發(fā)明所提供的一種垃圾郵件過濾方法及裝置,進行了詳細介紹,本文中 應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助 理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,
在具體實施方式
及應用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應理解為對本 發(fā)明的限制。
權利要求
一種垃圾郵件過濾方法,其特征在于,預先建立映射關系表,所述映射關系表用于保存特征串與垃圾概率之間的映射關系,所述方法包括當郵件的第一個郵件報文到來時,根據(jù)該郵件報文的源IP地址、端口號、目的IP地址、目的端口號及協(xié)議號,為該郵件建立連接跟蹤并確定該郵件報文的內(nèi)存地址,為該連接跟蹤建立私有數(shù)據(jù)空間;執(zhí)行郵件報文的分析步驟,所述分析步驟包括在所述內(nèi)存地址中查找到所述郵件報文,對所述郵件報文中的郵件標題和/或內(nèi)容進行分詞;查找預先建立的映射關系表,獲取切分結(jié)果中包含的特征串,以及所述特征串對應的垃圾概率,將所述特征串與對應的垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接收端;當該郵件的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵件報文到來;當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間中的數(shù)據(jù)計算該郵件是垃圾郵件的概率;根據(jù)所述計算出的概率確定該郵件是否為垃圾郵件,如果是,則將該郵件作為垃圾郵件過濾。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述映射關系表以哈希索引表方式建立; 所述查找預先建立的映射關系表包括通過哈希方式查找所述預先建立的映射關系表。
3. 根據(jù)權利要求1所述的方法,其特征在于,所述映射關系表具體用于保存特征串的 鍵值與該特征串的垃圾概率之間的映射關系;所述對所述郵件報文的標題和/或內(nèi)容進行分詞之后還包括 利用與計算特征串鍵值相同的方法計算各個分詞結(jié)果的鍵值; 所述查找預先建立的映射關系表,獲取切分結(jié)果中包含的特征串包括 判斷所述分詞結(jié)果的鍵值是否出現(xiàn)在所述映射關系表中,如果出現(xiàn),則所述切分結(jié)果 中包含特征串。
4. 根據(jù)權利要求1任一項所述的方法,其特征在于,所述利用所述私有數(shù)據(jù)空間中的 數(shù)據(jù)計算該郵件是垃圾郵件的概率包括<formula>formula see original document page 2</formula>-其中,P為該郵件是垃圾郵件的概率;PpP2…Pn為該郵件的各個郵件報文的標題和/或內(nèi)容中,包含的各個特征串的垃圾概率;n為正整數(shù);所述根據(jù)所述計算出的概率確定該郵件是否為垃圾郵件包括 當所述計算出的概率超過預置閾值時,將所述郵件確定為垃圾郵件。
5. 根據(jù)權利要求1至4任一項所述的方法,其特征在于,所述將該郵件作為垃圾郵件過濾包括將該郵件的最后一個郵件報文丟棄。
6. 根據(jù)權利要求1至4任一項所述的方法,其特征在于,如果該郵件不是垃圾郵件,還包括將該郵件的最后一個郵件報文發(fā)送到接收端,以便所述接收端將各個郵件報文組合為 完整的郵件。
7. —種垃圾郵件過濾裝置,其特征在于,預先建立映射關系表,所述映射關系表用于保 存特征串與垃圾概率之間的映射關系,所述方法包括跟蹤建立單元,用于當需要轉(zhuǎn)發(fā)郵件的第一個郵件報文時,根據(jù)該郵件報文的源IP地 址、端口號、目的IP地址、目的端口號及協(xié)議號,為該郵件建立連接跟蹤并確定該郵件報文 的內(nèi)存地址,為該連接跟蹤建立私有數(shù)據(jù)空間;報文分析單元,用于執(zhí)行郵件報文的分析步驟,所述分析步驟包括在所述內(nèi)存地址中 查找到所述郵件報文,對所述郵件報文中的郵件標題和/或內(nèi)容進行分詞;查找預先建立的映射關系表,獲取切分結(jié)果中包含的特征串,以及所述特征串對應的垃圾概率,將所述特 征串與對應的垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接收端;當該郵件的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵件報文 到來;過濾單 元,用于當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間中的數(shù) 據(jù)計算該郵件是垃圾郵件的概率;根據(jù)所述計算出的概率確定該郵件是否為垃圾郵件,如 果是,則將該郵件作為垃圾郵件過濾。
8. 根據(jù)權利要求7所述的裝置,其特征在于,所述映射關系表以哈希索引表方式建立; 所述報文分析單元具體用于,通過哈希方式查找所述預先建立的映射關系表。
9. 根據(jù)權利要求7所述的裝置,其特征在于,所述映射關系表具體用于保存特征串的 鍵值與該特征串的垃圾概率之間的映射關系;所述裝置還包括鍵值計算單元,用于對所述郵件報文的標題和/或內(nèi)容進行分詞之后,利用與計算特 征串鍵值相同的方法計算各個分詞結(jié)果的鍵值;所述報文分析單元具體用于,判斷所述分詞結(jié)果的鍵值是否出現(xiàn)在所述映射關系表 中,如果出現(xiàn),則所述切分結(jié)果中包含特征串。
10. 根據(jù)權利要求7至9任一項所述的裝置,其特征在于,所述郵件過濾單元具體用于 將該郵件的最后一個郵件報文丟棄。
11. 根據(jù)權利要求7至9任一項所述的裝置,其特征在于,還包括 發(fā)送單元,用于如果該郵件不是垃圾郵件,將該郵件的最后一個郵件報文發(fā)送到接收端,以便所述接收端將各個郵件報文組合為完整的郵件。
全文摘要
本發(fā)明公開了一種垃圾郵件過濾方法及裝置,所述方法包括當郵件的第一個郵件報文到來時,為該郵件建立連接跟蹤并確定該郵件報文的內(nèi)存地址,為該連接跟蹤建立私有數(shù)據(jù)空間;在所述內(nèi)存地址執(zhí)行郵件報文的分析步驟,將郵件報文中包含的特征串與對應的垃圾概率保存在所述私有數(shù)據(jù)空間中,并將所述郵件報文轉(zhuǎn)發(fā)到接收端;當該郵件的下一郵件報文到來時,重復執(zhí)行所述分析步驟,直到該郵件的最后一個郵件報文到來;當該郵件的最后一個郵件報文到來時,利用所述私有數(shù)據(jù)空間中的數(shù)據(jù)計算該郵件是垃圾郵件的概率;如果是垃圾郵件,則將該郵件作為垃圾郵件過濾。通過本發(fā)明,能夠節(jié)省CPU資源,提高過濾垃圾郵件的實現(xiàn)效率。
文檔編號H04L12/58GK101795273SQ201010101650
公開日2010年8月4日 申請日期2010年1月26日 優(yōu)先權日2010年1月26日
發(fā)明者何毅超 申請人:聯(lián)想網(wǎng)御科技(北京)有限公司