Bayes郵件過濾研究論文

時間:2022-03-12 10:45:00

導語:Bayes郵件過濾研究論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

Bayes郵件過濾研究論文

摘要郵件過濾技術是反垃圾郵件的重要手段,本文提出了一種基于服務器端的垃圾郵件過濾系統,它采用改進的bayes算法,將反映垃圾郵件的特征綜合在一起統稱為“屬性”,用這些“屬性”構成表示郵件特征的向量空間模型重點特征向量,避免了單純基于IP、信頭、信封過濾的規則性太強的缺點,降低將正常郵件判斷為垃圾郵件的風險。

關鍵詞電子郵件;垃圾郵件;郵件過濾

引言

中國互聯網信息中心2003年7月公布的《中國互聯網絡發展狀況統計報告》顯示,中國網民平均每周收到16.1封電子郵件,其中垃圾郵件就占據了8.9封,垃圾郵件的數量超過了正常郵件數量,并有進一步增長的趨勢,之所以造成垃圾郵件泛濫,是因為近幾年來寬帶網絡的快速發展、網絡通信成本的不斷下降以及硬件性能的提高并且成本不斷降低給垃圾郵件提供了很好的環境;電子郵件的易偽造性也是垃圾郵件泛濫的原因之一;還有現在對垃圾郵件,國家缺乏法律和規范的約束。雖然人們在技術和法律方面都進行不斷的努力,垃圾郵件已經得到了一定的控制,但是,在國內由于技術和立法還沒有達到一個足夠的程度,導致國家已經成為世界垃圾郵件的新源頭。

垃圾郵件的泛濫會造成很多危害,不僅影響國家的政治穩定、用戶的正常工作學習,還會影響網絡的安全性、穩定性、高效性;占用網絡帶寬和存儲空間。所以對于垃圾郵件的防范及過濾技術的研究很有意義。

1研究現狀

目前存在的反垃圾郵件技術,主要有三個大的方向:

一是修改現有的SMTP協議,制定一個新的安全可靠郵件協議,讓垃圾郵件沒有“生存的環境”。

二是使大量發送垃圾郵件發送者承受“巨大的成本”,以致通過電子郵件渠道來大量發送廣告信息在經濟利益上不合算,來減少垃圾郵件。

第三種是根據郵件的格式,發送時間,文件大小,內容以及其它特性,來識別該郵件是否為垃圾郵件,如果是,則把垃圾郵件過濾掉。識別的方法多種多樣,過濾垃圾郵件效果的好壞決定于識別方法的準確度。

第一種方式是通過完善通信協議,增強安全認證性能,消除垃圾郵件泛濫的環境,來減少或消滅垃圾郵件產生。第二種方式是通過經濟利益杠桿,使得在網絡上大量的發送垃圾郵件,要承受巨大的經濟負擔,以至通過垃圾郵件來廣告宣傳方法是不經濟的,來減少垃圾郵件產生。第三種是當垃圾郵件產生以后,通過各種各樣的方法把垃圾郵件從郵件中識別出來并過濾掉,讓接收者感覺不到這些垃圾郵件的騷擾。前兩種是主動的方式,推的方式,從垃圾郵件產生的根源出發,不同的是一個從技術的角度,一個是從經濟的角度。而第三種方式是被動的方式、拉的方式,它并不能杜絕垃圾郵件的重復產生,只能當垃圾郵件產生以后,通過方法識別出垃圾郵件,及時的剔除他們。前兩種方式應用起來更加困難、復雜而第三種方式相對簡單易行,因此當前第三種方式的反垃圾郵件方法研究和應用的更多。

垃圾郵件過濾技術就是第三種方式的反垃圾郵件方法,也是反垃圾郵件技術發展的重要方向之一。

從過濾的方法來分,過濾可以分為基于關鍵字的過濾、基于黑白名單的過濾、基于規則的過濾、基于內容的過濾等等。

2系統設計

2.1設計目標

目標是設計一個基于SMTP的、位于服務器前端的、具有較高過濾精度的垃圾郵件過濾系統。對于垃圾郵件的過濾,精度是最重要的問題,因為相比收到幾封垃圾郵件來說,一封正常的郵件被過濾掉更讓人難以接受,本系統所采取的所有方法都是旨在提高垃圾郵件過濾的精度。該系統位于郵件服務器的前端,代替郵件服務器接收郵件,完成過濾后,把郵件轉發給郵件服務器,再由郵件服務器完成以后的功能。

該系統具備的功能主要有:

⑴郵件數據包攔截

⑵郵件數據包編、解碼

⑶高精度的自動分詞

⑷垃圾郵件過濾

⑸自主學習

⑹垃圾郵件處理

⑺正常郵件轉發

⑻自動回復

2.2系統流程

因為電子郵件是以一定的編碼方式在網絡上根據SMTP協議傳送的郵件數據包,所以系統首先攔截數據包,在SMTP會話過程中,可以根據會話過程中的MailFrom和RcptTo等會話進行過濾。經過這一層過濾后,將得到的郵件數據包進行解碼,解碼后的郵件為普通文本格式。電子郵件一般格式包括信頭和信體兩部分,其中信頭包括發件人地址、收件人地址、主題、日期、路由信息等重要信息,信體是郵件的正文。

很多時候僅僅根據信頭信息就可以判斷一封郵件是否為垃圾郵件,所以先分離出信頭和信體的信息,然后分別進行基于信頭和基于內容的過濾。因為文本郵件的內容是機器無法識別的文本,所以首先要進行分詞處理:分詞的精度是影響分類的一個重要因素,所以這里必須注意消除歧義字段。根據垃圾郵件的特征向量構造表示該郵件文本的特征向量。然后把文本的特征向量通過郵件過濾器,區分出正常郵件和垃圾郵件。對于正常郵件,直接編碼,按照SMTP協議發送給郵件服務器;而對于垃圾郵件則需要多種處理,如:保存、刪除、自動回復等。這樣就完成了一個完整的垃圾郵件過濾系統的功能。我們知道,基于IP和基于信頭的過濾簡單易行,并且有不錯的過濾精度,因此得到了廣泛的應用。但是,這兩種方式所依據的信息比較少,而且會隨著時間而改變,比如一個IP黑名單中的IP地址可能是被利用來進行轉發的服務器,但是由于在黑名單中,那么這個地址所發送的全部郵件都沒過濾掉,這樣會對正常的業務造成損害;或者一個信頭的主題詞中包含一個很多垃圾郵件都包含的關鍵詞,但是也許這封郵件是基于教育的目的所發出的,那么也會被無區分的過濾掉。基于以上分析,我采取了將以上三種方式項結合的過濾方法:基于“屬性”的過濾,把IP地址、主題詞是否包含關鍵字、內容中的關鍵詞。附件信息等等都作為屬性,一起構成表示郵件的特征向量,根據這個特征向量進行過濾。系統的流程如圖1所示。

2.3系統總體框架

綜合系統需要完成的目標和處理流程,設計出系統的總體框架,如圖2所示。協議模塊完成截獲郵件數據包、數據包編解碼和郵件轉發的功能;預處理模塊完成分離信頭、信體和分詞、特征提取以及構造特征向量的功能;過濾模塊采用改進的Bayes分類器將郵件過濾;數據模塊是系統中所用到的詞典、關鍵詞表、訓練樣本集、規則庫等信息;管理模塊則為管理員管理維護系統提供了一個人機交互接口。2.4模塊設計

2.4.1協議模塊

收到后將文件解碼還原,也需要有中文系統才能看所寫的中文信息。協議模塊是過濾系統的網絡前端。要對郵件進行過濾,首先要捕獲發送到該服務器的郵件數據包。并對包進行解碼。完成過濾后,需要還原該郵件數據包,也就是對郵件編碼,然后轉發。由此該模塊主要負責完成以下工作:數據包攔截、協議解析、編碼/解碼、郵件轉發。它可以支持不同的內容協議(HTTP、SMTP、POP、IMAP)等,并且是可擴展的。模塊共包括4個部分。

⑴數據包攔截:其原理是利用網卡驅動來捕獲數據包。網卡驅動會根據以太幀中的協議類型把數據包傳給協議棧進行相應的處理。

⑵協議解析:根據捕獲的TCP數據包的應用層端口號,判斷其應用層協議類型,只對SMTP郵件數據包進行處理,對于其他協議的數據包直接轉發。例如SMTP的會話過程包括命令交互階段和數據階段,在SMTP會話過程中提取一些對判斷垃圾郵件起作用的重要“屬性”。如MAIL會話階段提取發信人的主機地址,多個RCPT會話階段提取收信人地址,在DATA數據階段提取出整封郵件的內容,包括郵件頭和郵件體,在接受到QUIT命令時將SMTP數據進行還原。

⑶編碼/解碼:為內容過濾引擎統一了內容文本的格式。該模塊也是可擴展的,它主要完成以下工作:對編碼郵件的解碼(如MIME編碼、UNENCODE等);將有結構的文本內容(如HTML、WORD、PDF等)轉化為純文本;提取出動態頁面中的腳本代碼。中文是屬于8位代碼的文字,并不是標準的ASCII碼格式,由于在國內中文是通行的文字,所以大部分的郵件服務器都已經能夠處理GB內碼的文件,因而不需要做這種編碼/解碼的操作,可以直接傳送。但如果要傳送中文郵件到國外,就需要經過這種轉換才能傳送,因為國外的郵件服務器是無法辨認中文內碼的。中文在經過一些不支持中文內碼的傳遞主機時,依然會被裁掉一位,造成文件支離破碎無法讀取,而經過編碼的中文郵件,收信人收到后將文件解碼還原,也需要有中文系統才能看到所寫的中文信息。

⑷郵件轉發:將過濾后的郵件數據包按照郵件協議轉發。

2.4.2預處理模塊

因為過濾器是基于VSM模型(VectorSpaceModel),需要對郵件進行預處理得到。在該模型中,我們把郵件的內容形式化為多維空間的一個點,以向量的形式給出,向量的元素可以是詞、IP地址、文本格式等能夠判斷郵件是否是垃圾郵件的特征屬性。該模塊主要完成的工作包括:信頭、信體分離,分詞處理,特征向量生成。

⑴信頭、信體處理:電子郵件的格式包括信頭、信體,兩者之間用空行來分隔,可以分別提取信頭和信體的信息。電子郵件的信頭包括:發件人地址、收件人地址、主題、郵件列表等信息,這些信息??梢耘袛嘁环忄]件是否是垃圾郵件。如商業廣告垃圾郵件的主題通常包含“Buy”、“Save”和“Free”等特征。信封和信頭的內容并不完全一致,信封的內容比較可靠,因為信頭的內容是可以通過客戶端進行偽造的,所以可以通過比較信封和信頭的內容進行過濾。

⑵分詞處理:對于主題和信體中的內容,需要經過分詞處理。分詞的精度是影響系統準確率的一個重要因素。我們采用機械匹配法(向右減字最大匹配和向左增字最小匹配)相結合,然后再用互信息消除歧義得到比較精確的分詞結果,這個過程需要借助分詞詞典。

⑶特征向量生成:這個過程分為兩種,一種是根據訓練樣本庫取得表示垃圾郵件類的特征向量,這個過程是對信封、信頭、信體等部分得到的信息進行處理,得到分類器所需要的特征向量。因為各部分所得到的特征屬性所構成的向量維數太大,需要進行降維處理,對信封、信頭的屬性進行比較和合并,而對信體中得到的屬性則進行篩選,也就是特征值選擇。首先通過剔除詞詞典將對分詞沒有貢獻的助詞、連詞、冠詞等剔除,然后按照特征向量選擇算法計算每個詞的重要度,按照由高到低的順序選擇一定數量的特征詞,和前面由信封、信頭中的屬性一起組成特征向量。另一種是根據由訓練文本庫得到的表示垃圾郵件類的特征向量構造待分類電子郵件的特征向量。

2.4.3過濾模塊

這個模塊是整個系統的核心模塊,它要完成的功能是對郵件信息進行處理,判斷郵件是否是垃圾郵件,并對結果進行處理。因為郵件被表示成由“屬性”組成的向量空間,這些屬性包括:IP地址、附件大小、附件擴展名、群發地址個數、文本中的關鍵詞等等信息,根據這些信息完成傳統的基于IP、基于信封、信頭和基于內容的過濾。

貝葉斯算法因為其簡單快捷得到廣泛應用,這里采用改進的貝葉斯算法來提高過濾精度。

過濾的結果分為正常郵件和垃圾郵件。對于正常郵件交給協議模塊進行編碼和轉發,對于垃圾郵件的處理有:

丟棄:對于不需要保存到數據庫中的數據包,做丟棄處理,節約資源;

存儲:對于某些郵件存入數據庫,作為訓練樣本集;

回復:對于一些郵件進行自動回復,通知發件人該郵件被過濾。

2.4.4數據模塊

系統中需要的分詞詞典、剔除詞詞典等等數據資源需要一個單獨的模塊來進行維護管理,提供增加、修改、查詢、統計等功能,這個模塊就是數據模塊。這個模塊包括七個部分。

⑴分詞詞典:由于分詞算法采用的是機械匹配的方法,需要分詞詞典提供輔助;

⑵剔除詞詞典:在提取特征詞之前,根據剔除詞詞典剔除部分詞匯,提高效率;

⑶特征屬性表:基于Bayes算法的過濾方法需要根據垃圾郵件特征屬性的概率統計信息進行過濾,因此系統需要維護垃圾郵件特征關鍵詞的概率信息;

⑷訓練樣本集:作為訓練過濾器的樣本,它的大小和時間性影響過濾的精度;

⑸垃圾郵件表:保存一些過濾掉的郵件的數據庫表格,在存儲郵件的源IP和目的IP、郵件的發件人、主題、發送時間和郵件體的信息。便于事后統計分析;

⑹IP地址黑名單:保存經常發送垃圾郵件的IP地址;

⑺規則表:保存生成屬性表過程中需要的一些對信頭特征進行提取的規則。

2.4.5主控模塊

是整個系統的控制協調中心。主要負責完成以下工作:

⑴系統的初始化;

⑵其它模塊的配置管理;

⑶系統運行狀態監控;

⑷為系統配置管理所需的各種數據資源;

⑸提供數據查詢、統計功能。

3結術語

電子郵件是互聯網中一個普及的應用,垃圾郵件的增長也越來越快,然而垃圾郵件卻嚴重影響了電子郵件的正常使用,帶來諸多的問題。它已成為世界共同關注的問題,對于垃圾郵件的過濾的研究已取得了一定的成果。本文在分析這些已有的技術的基礎上提出一種基于Bayes算法的旨在提高分類精度的垃圾郵件處理系統。本文雖然提高了過濾精度,但是還有許多方面需要改進:

⑴本系統采用基于“屬性”的過濾,對于各種特征屬性概率計算結果需要重新找到一種好的加權方法,提高分類精度;

⑵本系統把過濾工作都集中到一起進行,雖然增加了精確度,但是有可能造成資源浪費,因為在過濾的同時垃圾郵件已經占用了帶寬,需要采取一些輔助措施;

⑶還有一些功能需要增加:比如支持遠程監督控制,支持用戶發信認證功能。

參考文獻

[1]曹麒麟,張千里.垃圾郵件與反垃圾技術,人民郵電出版社,2003

[2]JONATHANB.POSTEL.SimpleMailTransferProtocol.RFC821,August1982

[3]ChinaAnti-SpamResearchReport,http://,2003,11

[4]詹川.反垃圾郵件技術的研究.電子科技大學,2005年3月

[5]HALLR.J.Channels:AvoidingUnwantedElectronicMail[M]

[6]沈衛超.郵件過濾器系統的設計與實現[J].信息與電子工程,2003.1(2):18-21