Bayes郵件過濾研究論文
時間:2022-03-12 10:45:00
導(dǎo)語:Bayes郵件過濾研究論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要郵件過濾技術(shù)是反垃圾郵件的重要手段,本文提出了一種基于服務(wù)器端的垃圾郵件過濾系統(tǒng),它采用改進(jìn)的bayes算法,將反映垃圾郵件的特征綜合在一起統(tǒng)稱為“屬性”,用這些“屬性”構(gòu)成表示郵件特征的向量空間模型重點特征向量,避免了單純基于IP、信頭、信封過濾的規(guī)則性太強(qiáng)的缺點,降低將正常郵件判斷為垃圾郵件的風(fēng)險。
關(guān)鍵詞電子郵件;垃圾郵件;郵件過濾
引言
中國互聯(lián)網(wǎng)信息中心2003年7月公布的《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》顯示,中國網(wǎng)民平均每周收到16.1封電子郵件,其中垃圾郵件就占據(jù)了8.9封,垃圾郵件的數(shù)量超過了正常郵件數(shù)量,并有進(jìn)一步增長的趨勢,之所以造成垃圾郵件泛濫,是因為近幾年來寬帶網(wǎng)絡(luò)的快速發(fā)展、網(wǎng)絡(luò)通信成本的不斷下降以及硬件性能的提高并且成本不斷降低給垃圾郵件提供了很好的環(huán)境;電子郵件的易偽造性也是垃圾郵件泛濫的原因之一;還有現(xiàn)在對垃圾郵件,國家缺乏法律和規(guī)范的約束。雖然人們在技術(shù)和法律方面都進(jìn)行不斷的努力,垃圾郵件已經(jīng)得到了一定的控制,但是,在國內(nèi)由于技術(shù)和立法還沒有達(dá)到一個足夠的程度,導(dǎo)致國家已經(jīng)成為世界垃圾郵件的新源頭。
垃圾郵件的泛濫會造成很多危害,不僅影響國家的政治穩(wěn)定、用戶的正常工作學(xué)習(xí),還會影響網(wǎng)絡(luò)的安全性、穩(wěn)定性、高效性;占用網(wǎng)絡(luò)帶寬和存儲空間。所以對于垃圾郵件的防范及過濾技術(shù)的研究很有意義。
1研究現(xiàn)狀
目前存在的反垃圾郵件技術(shù),主要有三個大的方向:
一是修改現(xiàn)有的SMTP協(xié)議,制定一個新的安全可靠郵件協(xié)議,讓垃圾郵件沒有“生存的環(huán)境”。
二是使大量發(fā)送垃圾郵件發(fā)送者承受“巨大的成本”,以致通過電子郵件渠道來大量發(fā)送廣告信息在經(jīng)濟(jì)利益上不合算,來減少垃圾郵件。
第三種是根據(jù)郵件的格式,發(fā)送時間,文件大小,內(nèi)容以及其它特性,來識別該郵件是否為垃圾郵件,如果是,則把垃圾郵件過濾掉。識別的方法多種多樣,過濾垃圾郵件效果的好壞決定于識別方法的準(zhǔn)確度。
第一種方式是通過完善通信協(xié)議,增強(qiáng)安全認(rèn)證性能,消除垃圾郵件泛濫的環(huán)境,來減少或消滅垃圾郵件產(chǎn)生。第二種方式是通過經(jīng)濟(jì)利益杠桿,使得在網(wǎng)絡(luò)上大量的發(fā)送垃圾郵件,要承受巨大的經(jīng)濟(jì)負(fù)擔(dān),以至通過垃圾郵件來廣告宣傳方法是不經(jīng)濟(jì)的,來減少垃圾郵件產(chǎn)生。第三種是當(dāng)垃圾郵件產(chǎn)生以后,通過各種各樣的方法把垃圾郵件從郵件中識別出來并過濾掉,讓接收者感覺不到這些垃圾郵件的騷擾。前兩種是主動的方式,推的方式,從垃圾郵件產(chǎn)生的根源出發(fā),不同的是一個從技術(shù)的角度,一個是從經(jīng)濟(jì)的角度。而第三種方式是被動的方式、拉的方式,它并不能杜絕垃圾郵件的重復(fù)產(chǎn)生,只能當(dāng)垃圾郵件產(chǎn)生以后,通過方法識別出垃圾郵件,及時的剔除他們。前兩種方式應(yīng)用起來更加困難、復(fù)雜而第三種方式相對簡單易行,因此當(dāng)前第三種方式的反垃圾郵件方法研究和應(yīng)用的更多。
垃圾郵件過濾技術(shù)就是第三種方式的反垃圾郵件方法,也是反垃圾郵件技術(shù)發(fā)展的重要方向之一。
從過濾的方法來分,過濾可以分為基于關(guān)鍵字的過濾、基于黑白名單的過濾、基于規(guī)則的過濾、基于內(nèi)容的過濾等等。
2系統(tǒng)設(shè)計
2.1設(shè)計目標(biāo)
目標(biāo)是設(shè)計一個基于SMTP的、位于服務(wù)器前端的、具有較高過濾精度的垃圾郵件過濾系統(tǒng)。對于垃圾郵件的過濾,精度是最重要的問題,因為相比收到幾封垃圾郵件來說,一封正常的郵件被過濾掉更讓人難以接受,本系統(tǒng)所采取的所有方法都是旨在提高垃圾郵件過濾的精度。該系統(tǒng)位于郵件服務(wù)器的前端,代替郵件服務(wù)器接收郵件,完成過濾后,把郵件轉(zhuǎn)發(fā)給郵件服務(wù)器,再由郵件服務(wù)器完成以后的功能。
該系統(tǒng)具備的功能主要有:
⑴郵件數(shù)據(jù)包攔截
⑵郵件數(shù)據(jù)包編、解碼
⑶高精度的自動分詞
⑷垃圾郵件過濾
⑸自主學(xué)習(xí)
⑹垃圾郵件處理
⑺正常郵件轉(zhuǎn)發(fā)
⑻自動回復(fù)
2.2系統(tǒng)流程
因為電子郵件是以一定的編碼方式在網(wǎng)絡(luò)上根據(jù)SMTP協(xié)議傳送的郵件數(shù)據(jù)包,所以系統(tǒng)首先攔截數(shù)據(jù)包,在SMTP會話過程中,可以根據(jù)會話過程中的MailFrom和RcptTo等會話進(jìn)行過濾。經(jīng)過這一層過濾后,將得到的郵件數(shù)據(jù)包進(jìn)行解碼,解碼后的郵件為普通文本格式。電子郵件一般格式包括信頭和信體兩部分,其中信頭包括發(fā)件人地址、收件人地址、主題、日期、路由信息等重要信息,信體是郵件的正文。
很多時候僅僅根據(jù)信頭信息就可以判斷一封郵件是否為垃圾郵件,所以先分離出信頭和信體的信息,然后分別進(jìn)行基于信頭和基于內(nèi)容的過濾。因為文本郵件的內(nèi)容是機(jī)器無法識別的文本,所以首先要進(jìn)行分詞處理:分詞的精度是影響分類的一個重要因素,所以這里必須注意消除歧義字段。根據(jù)垃圾郵件的特征向量構(gòu)造表示該郵件文本的特征向量。然后把文本的特征向量通過郵件過濾器,區(qū)分出正常郵件和垃圾郵件。對于正常郵件,直接編碼,按照SMTP協(xié)議發(fā)送給郵件服務(wù)器;而對于垃圾郵件則需要多種處理,如:保存、刪除、自動回復(fù)等。這樣就完成了一個完整的垃圾郵件過濾系統(tǒng)的功能。我們知道,基于IP和基于信頭的過濾簡單易行,并且有不錯的過濾精度,因此得到了廣泛的應(yīng)用。但是,這兩種方式所依據(jù)的信息比較少,而且會隨著時間而改變,比如一個IP黑名單中的IP地址可能是被利用來進(jìn)行轉(zhuǎn)發(fā)的服務(wù)器,但是由于在黑名單中,那么這個地址所發(fā)送的全部郵件都沒過濾掉,這樣會對正常的業(yè)務(wù)造成損害;或者一個信頭的主題詞中包含一個很多垃圾郵件都包含的關(guān)鍵詞,但是也許這封郵件是基于教育的目的所發(fā)出的,那么也會被無區(qū)分的過濾掉?;谝陨戏治?,我采取了將以上三種方式項結(jié)合的過濾方法:基于“屬性”的過濾,把IP地址、主題詞是否包含關(guān)鍵字、內(nèi)容中的關(guān)鍵詞。附件信息等等都作為屬性,一起構(gòu)成表示郵件的特征向量,根據(jù)這個特征向量進(jìn)行過濾。系統(tǒng)的流程如圖1所示。
2.3系統(tǒng)總體框架
綜合系統(tǒng)需要完成的目標(biāo)和處理流程,設(shè)計出系統(tǒng)的總體框架,如圖2所示。協(xié)議模塊完成截獲郵件數(shù)據(jù)包、數(shù)據(jù)包編解碼和郵件轉(zhuǎn)發(fā)的功能;預(yù)處理模塊完成分離信頭、信體和分詞、特征提取以及構(gòu)造特征向量的功能;過濾模塊采用改進(jìn)的Bayes分類器將郵件過濾;數(shù)據(jù)模塊是系統(tǒng)中所用到的詞典、關(guān)鍵詞表、訓(xùn)練樣本集、規(guī)則庫等信息;管理模塊則為管理員管理維護(hù)系統(tǒng)提供了一個人機(jī)交互接口。2.4模塊設(shè)計
2.4.1協(xié)議模塊
收到后將文件解碼還原,也需要有中文系統(tǒng)才能看所寫的中文信息。協(xié)議模塊是過濾系統(tǒng)的網(wǎng)絡(luò)前端。要對郵件進(jìn)行過濾,首先要捕獲發(fā)送到該服務(wù)器的郵件數(shù)據(jù)包。并對包進(jìn)行解碼。完成過濾后,需要還原該郵件數(shù)據(jù)包,也就是對郵件編碼,然后轉(zhuǎn)發(fā)。由此該模塊主要負(fù)責(zé)完成以下工作:數(shù)據(jù)包攔截、協(xié)議解析、編碼/解碼、郵件轉(zhuǎn)發(fā)。它可以支持不同的內(nèi)容協(xié)議(HTTP、SMTP、POP、IMAP)等,并且是可擴(kuò)展的。模塊共包括4個部分。
⑴數(shù)據(jù)包攔截:其原理是利用網(wǎng)卡驅(qū)動來捕獲數(shù)據(jù)包。網(wǎng)卡驅(qū)動會根據(jù)以太幀中的協(xié)議類型把數(shù)據(jù)包傳給協(xié)議棧進(jìn)行相應(yīng)的處理。
⑵協(xié)議解析:根據(jù)捕獲的TCP數(shù)據(jù)包的應(yīng)用層端口號,判斷其應(yīng)用層協(xié)議類型,只對SMTP郵件數(shù)據(jù)包進(jìn)行處理,對于其他協(xié)議的數(shù)據(jù)包直接轉(zhuǎn)發(fā)。例如SMTP的會話過程包括命令交互階段和數(shù)據(jù)階段,在SMTP會話過程中提取一些對判斷垃圾郵件起作用的重要“屬性”。如MAIL會話階段提取發(fā)信人的主機(jī)地址,多個RCPT會話階段提取收信人地址,在DATA數(shù)據(jù)階段提取出整封郵件的內(nèi)容,包括郵件頭和郵件體,在接受到QUIT命令時將SMTP數(shù)據(jù)進(jìn)行還原。
⑶編碼/解碼:為內(nèi)容過濾引擎統(tǒng)一了內(nèi)容文本的格式。該模塊也是可擴(kuò)展的,它主要完成以下工作:對編碼郵件的解碼(如MIME編碼、UNENCODE等);將有結(jié)構(gòu)的文本內(nèi)容(如HTML、WORD、PDF等)轉(zhuǎn)化為純文本;提取出動態(tài)頁面中的腳本代碼。中文是屬于8位代碼的文字,并不是標(biāo)準(zhǔn)的ASCII碼格式,由于在國內(nèi)中文是通行的文字,所以大部分的郵件服務(wù)器都已經(jīng)能夠處理GB內(nèi)碼的文件,因而不需要做這種編碼/解碼的操作,可以直接傳送。但如果要傳送中文郵件到國外,就需要經(jīng)過這種轉(zhuǎn)換才能傳送,因為國外的郵件服務(wù)器是無法辨認(rèn)中文內(nèi)碼的。中文在經(jīng)過一些不支持中文內(nèi)碼的傳遞主機(jī)時,依然會被裁掉一位,造成文件支離破碎無法讀取,而經(jīng)過編碼的中文郵件,收信人收到后將文件解碼還原,也需要有中文系統(tǒng)才能看到所寫的中文信息。
⑷郵件轉(zhuǎn)發(fā):將過濾后的郵件數(shù)據(jù)包按照郵件協(xié)議轉(zhuǎn)發(fā)。
2.4.2預(yù)處理模塊
因為過濾器是基于VSM模型(VectorSpaceModel),需要對郵件進(jìn)行預(yù)處理得到。在該模型中,我們把郵件的內(nèi)容形式化為多維空間的一個點,以向量的形式給出,向量的元素可以是詞、IP地址、文本格式等能夠判斷郵件是否是垃圾郵件的特征屬性。該模塊主要完成的工作包括:信頭、信體分離,分詞處理,特征向量生成。
⑴信頭、信體處理:電子郵件的格式包括信頭、信體,兩者之間用空行來分隔,可以分別提取信頭和信體的信息。電子郵件的信頭包括:發(fā)件人地址、收件人地址、主題、郵件列表等信息,這些信息常可以判斷一封郵件是否是垃圾郵件。如商業(yè)廣告垃圾郵件的主題通常包含“Buy”、“Save”和“Free”等特征。信封和信頭的內(nèi)容并不完全一致,信封的內(nèi)容比較可靠,因為信頭的內(nèi)容是可以通過客戶端進(jìn)行偽造的,所以可以通過比較信封和信頭的內(nèi)容進(jìn)行過濾。
⑵分詞處理:對于主題和信體中的內(nèi)容,需要經(jīng)過分詞處理。分詞的精度是影響系統(tǒng)準(zhǔn)確率的一個重要因素。我們采用機(jī)械匹配法(向右減字最大匹配和向左增字最小匹配)相結(jié)合,然后再用互信息消除歧義得到比較精確的分詞結(jié)果,這個過程需要借助分詞詞典。
⑶特征向量生成:這個過程分為兩種,一種是根據(jù)訓(xùn)練樣本庫取得表示垃圾郵件類的特征向量,這個過程是對信封、信頭、信體等部分得到的信息進(jìn)行處理,得到分類器所需要的特征向量。因為各部分所得到的特征屬性所構(gòu)成的向量維數(shù)太大,需要進(jìn)行降維處理,對信封、信頭的屬性進(jìn)行比較和合并,而對信體中得到的屬性則進(jìn)行篩選,也就是特征值選擇。首先通過剔除詞詞典將對分詞沒有貢獻(xiàn)的助詞、連詞、冠詞等剔除,然后按照特征向量選擇算法計算每個詞的重要度,按照由高到低的順序選擇一定數(shù)量的特征詞,和前面由信封、信頭中的屬性一起組成特征向量。另一種是根據(jù)由訓(xùn)練文本庫得到的表示垃圾郵件類的特征向量構(gòu)造待分類電子郵件的特征向量。
2.4.3過濾模塊
這個模塊是整個系統(tǒng)的核心模塊,它要完成的功能是對郵件信息進(jìn)行處理,判斷郵件是否是垃圾郵件,并對結(jié)果進(jìn)行處理。因為郵件被表示成由“屬性”組成的向量空間,這些屬性包括:IP地址、附件大小、附件擴(kuò)展名、群發(fā)地址個數(shù)、文本中的關(guān)鍵詞等等信息,根據(jù)這些信息完成傳統(tǒng)的基于IP、基于信封、信頭和基于內(nèi)容的過濾。
貝葉斯算法因為其簡單快捷得到廣泛應(yīng)用,這里采用改進(jìn)的貝葉斯算法來提高過濾精度。
過濾的結(jié)果分為正常郵件和垃圾郵件。對于正常郵件交給協(xié)議模塊進(jìn)行編碼和轉(zhuǎn)發(fā),對于垃圾郵件的處理有:
丟棄:對于不需要保存到數(shù)據(jù)庫中的數(shù)據(jù)包,做丟棄處理,節(jié)約資源;
存儲:對于某些郵件存入數(shù)據(jù)庫,作為訓(xùn)練樣本集;
回復(fù):對于一些郵件進(jìn)行自動回復(fù),通知發(fā)件人該郵件被過濾。
2.4.4數(shù)據(jù)模塊
系統(tǒng)中需要的分詞詞典、剔除詞詞典等等數(shù)據(jù)資源需要一個單獨的模塊來進(jìn)行維護(hù)管理,提供增加、修改、查詢、統(tǒng)計等功能,這個模塊就是數(shù)據(jù)模塊。這個模塊包括七個部分。
⑴分詞詞典:由于分詞算法采用的是機(jī)械匹配的方法,需要分詞詞典提供輔助;
⑵剔除詞詞典:在提取特征詞之前,根據(jù)剔除詞詞典剔除部分詞匯,提高效率;
⑶特征屬性表:基于Bayes算法的過濾方法需要根據(jù)垃圾郵件特征屬性的概率統(tǒng)計信息進(jìn)行過濾,因此系統(tǒng)需要維護(hù)垃圾郵件特征關(guān)鍵詞的概率信息;
⑷訓(xùn)練樣本集:作為訓(xùn)練過濾器的樣本,它的大小和時間性影響過濾的精度;
⑸垃圾郵件表:保存一些過濾掉的郵件的數(shù)據(jù)庫表格,在存儲郵件的源IP和目的IP、郵件的發(fā)件人、主題、發(fā)送時間和郵件體的信息。便于事后統(tǒng)計分析;
⑹IP地址黑名單:保存經(jīng)常發(fā)送垃圾郵件的IP地址;
⑺規(guī)則表:保存生成屬性表過程中需要的一些對信頭特征進(jìn)行提取的規(guī)則。
2.4.5主控模塊
是整個系統(tǒng)的控制協(xié)調(diào)中心。主要負(fù)責(zé)完成以下工作:
⑴系統(tǒng)的初始化;
⑵其它模塊的配置管理;
⑶系統(tǒng)運(yùn)行狀態(tài)監(jiān)控;
⑷為系統(tǒng)配置管理所需的各種數(shù)據(jù)資源;
⑸提供數(shù)據(jù)查詢、統(tǒng)計功能。
3結(jié)術(shù)語
電子郵件是互聯(lián)網(wǎng)中一個普及的應(yīng)用,垃圾郵件的增長也越來越快,然而垃圾郵件卻嚴(yán)重影響了電子郵件的正常使用,帶來諸多的問題。它已成為世界共同關(guān)注的問題,對于垃圾郵件的過濾的研究已取得了一定的成果。本文在分析這些已有的技術(shù)的基礎(chǔ)上提出一種基于Bayes算法的旨在提高分類精度的垃圾郵件處理系統(tǒng)。本文雖然提高了過濾精度,但是還有許多方面需要改進(jìn):
⑴本系統(tǒng)采用基于“屬性”的過濾,對于各種特征屬性概率計算結(jié)果需要重新找到一種好的加權(quán)方法,提高分類精度;
⑵本系統(tǒng)把過濾工作都集中到一起進(jìn)行,雖然增加了精確度,但是有可能造成資源浪費(fèi),因為在過濾的同時垃圾郵件已經(jīng)占用了帶寬,需要采取一些輔助措施;
⑶還有一些功能需要增加:比如支持遠(yuǎn)程監(jiān)督控制,支持用戶發(fā)信認(rèn)證功能。
參考文獻(xiàn)
[1]曹麒麟,張千里.垃圾郵件與反垃圾技術(shù),人民郵電出版社,2003
[2]JONATHANB.POSTEL.SimpleMailTransferProtocol.RFC821,August1982
[3]ChinaAnti-SpamResearchReport,http://,2003,11
[4]詹川.反垃圾郵件技術(shù)的研究.電子科技大學(xué),2005年3月
[5]HALLR.J.Channels:AvoidingUnwantedElectronicMail[M]
[6]沈衛(wèi)超.郵件過濾器系統(tǒng)的設(shè)計與實現(xiàn)[J].信息與電子工程,2003.1(2):18-21