[反垃圾郵件技術(shù)及貝葉斯算法的研究] 貝葉斯算法
發(fā)布時間:2020-02-16 來源: 短文摘抄 點擊:
摘要:垃圾郵件給互聯(lián)網(wǎng)以及廣大的使用者帶來了很大的影響,這種影響不僅僅是人們需要花費時間來處理垃圾郵件、占用系統(tǒng)資源等,同時也帶來了很多的安全問題。過濾器技術(shù)是目前最為廣泛使用的反垃圾郵件技術(shù),反垃圾郵件方案所采用的是多種多類技術(shù)的綜合體。
關(guān)鍵詞:垃圾郵件;安全;過濾器技術(shù);貝葉斯算法
中圖分類號:TP393.098 文獻標識碼:A
1 引言
電子郵件是最常用的網(wǎng)絡(luò)應(yīng)用之一,已經(jīng)成為網(wǎng)絡(luò)交流溝通的重要途徑。但是,垃圾郵件(spam)煩惱著大多數(shù)人,垃圾郵件隨著互聯(lián)網(wǎng)的不斷發(fā)展而大量增長,并且成了計算機病毒新的、快速的傳播途徑。
垃圾郵件給互聯(lián)網(wǎng)以及廣大的使用者帶來了很大的影響,這種影響不僅僅是人們需要花費時間來處理垃圾郵件、占用系統(tǒng)資源等,同時也帶來了很多的安全問題。
垃圾郵件占用了大量網(wǎng)絡(luò)資源,這是顯而易見的。一些郵件服務(wù)器因為安全性差,被作為垃圾郵件轉(zhuǎn)發(fā)站為被警告、封IP等事件時有發(fā)生,大量消耗的網(wǎng)絡(luò)資源使得正常的業(yè)務(wù)運作變得緩慢。隨著國際上反垃圾郵件的發(fā)展,組織間黑名單共享,使得無辜服務(wù)器被更大范圍屏蔽,這無疑會給正常用戶的使用造成嚴重問題。
越來越具有欺騙性的病毒郵件,讓很多企業(yè)深受其害,很多安全事件都是因為郵件產(chǎn)生的,可能是病毒、木馬或者其他惡意程序。對于普通使用者來說,的確很難作出正確的判斷,但是造成的損失卻是很直接的。
2 反垃圾郵件技術(shù)及貝葉斯算法
當(dāng)前的反垃圾郵件技術(shù)可以分為4大類[1]:過濾器(Filter)、反向查詢(Reverse lookup)、挑戰(zhàn)(challenges)和密碼術(shù)(cryptography),這些解決辦法都可以減少垃圾郵件問題,但是都有它們的局限性。下面主要談?wù)勥^濾技術(shù)中的一些方法及貝葉斯算法。
過濾(Filter)是一種相對來說最簡單卻很直接的處理垃圾郵件技術(shù)。這種技術(shù)主要用于接收系統(tǒng)來辨別和處理垃圾郵件。從應(yīng)用情況來看,這種技術(shù)也是使用最廣泛的,比如很多郵件服務(wù)器上的反垃圾郵件插件、反垃圾郵件網(wǎng)關(guān)、客戶端上的反垃圾郵件功能等,都是采用的過濾技術(shù)。
2.1 關(guān)鍵詞過濾
關(guān)鍵詞過濾技術(shù)通常創(chuàng)建一些簡單或復(fù)雜的與垃圾郵件關(guān)聯(lián)的單詞表來識別和處理垃圾郵件。比如某些關(guān)鍵詞大量出現(xiàn)在垃圾郵件中,如一些病毒的郵件標題,比如:test。這種方式比較類似反病毒軟件利用的病毒特征一樣?梢哉f這是一種簡單的內(nèi)容過濾方式來處理垃圾郵件,它的基礎(chǔ)是必須創(chuàng)建一個龐大的過濾關(guān)鍵詞列表。
2.2 黑白名單
黑名單(Black List)和白名單(White List)。分別是已知的垃圾郵件發(fā)送者或可信任的發(fā)送者IP地址或者郵件地址,F(xiàn)在有很多組織都在做BL(block list),將那些經(jīng)常發(fā)送垃圾郵件的IP地址(甚至IP地址范圍)收集在一起,做成block list,比如spamhaus的SBL(Spamhaus Block List),一個BL,可以在很大范圍內(nèi)共享。許多ISP正在采用一些組織的BL來阻止接收垃圾郵件。白名單則與黑名單相反,對于那些信任的郵件地址或者IP就完全接受了。
目前很多郵件接收端都采用了黑白名單的方式來處理垃圾郵件,包括MUA和MTA,當(dāng)然在MTA中使用得更廣泛,這樣可以有效地減少服務(wù)器的負擔(dān)。
2.3 HASH技術(shù)
HASH技術(shù)是郵件系統(tǒng)通過創(chuàng)建HASH來描述郵件內(nèi)容,比如將郵件的內(nèi)容、發(fā)件人等作為參數(shù),最后計算得出這個郵件的HASH來描述這個郵件。如果HASH相同,那么說明郵件內(nèi)容、發(fā)件人等相同。這在一些ISP上在采用,如果出現(xiàn)重復(fù)的HASH值,那么就可以懷疑是大批量發(fā)送郵件了。
2.4 基于規(guī)則的過濾
這種過濾根據(jù)某些特征(比如單詞、詞組、位置、大小、附件等)來形成規(guī)則,通過這些規(guī)則來描述垃圾郵件,就好比IDS中描述一條入侵事件一樣。要使得過濾器有效,就意味著管理人員要維護一個龐大的規(guī)則庫。
2.5 智能和概率系統(tǒng)(貝葉斯算法)
在過濾器中,現(xiàn)在表現(xiàn)最好的應(yīng)該是基于評分(score)的過濾器。評分系統(tǒng)過濾器是一種最基本的算法過濾器,也是貝葉斯算法的基本雛形。它的原理就是檢查垃圾郵件中的詞或字符等,將每個特征元素(最簡單的元素就是單詞,復(fù)雜點的元素就是短語)都給出一個分數(shù)(正分數(shù)),另一方面就是檢查正常郵件的特征元素,用來降低得分的(負分數(shù))。最后郵件整體就得到一個垃圾郵件總分,通過這個分數(shù)來判斷是否spam。
貝葉斯理論現(xiàn)在在計算機行業(yè)中應(yīng)用相當(dāng)廣泛,這是一種對事物的不確定性描述,比如google計算中就采用了貝葉斯理論。貝葉斯算法的過濾器就是計算郵件內(nèi)容中成為垃圾郵件的概率,它要首先從許多垃圾郵件和正常郵件中進行學(xué)習(xí),因此,效果將比普通的內(nèi)容過濾器更優(yōu)秀,錯報就會更少。貝葉斯過濾器也是一種基于評分的過濾器。但不僅僅是一種簡單的計算分數(shù),而更從根本上來識別。它采用自動建立特征表的方式,原理上,首先分析大量的垃圾郵件和大量的正常郵件,算法分析郵件中多種特征出現(xiàn)概率。
貝葉斯算法計算特征的來源通常是[2]:a.郵件正文中的單詞;b.郵件頭(發(fā)送者、傳遞路徑等);c.其他表現(xiàn),比如HTML編碼(如顏色等);d.詞組、短語;e.meta信息,比如特殊短語出現(xiàn)位置等。
比如,正常郵件中經(jīng)常出現(xiàn)單詞AAA,但是基本不在垃圾郵件中出現(xiàn),那么,AAA標示垃圾郵件的概率就接近0,反之則然。
貝葉斯算法的步驟為:
(1)收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。
(2)提取特征來源中的獨立字符串,例如AAA等作為TOKEN串并統(tǒng)計提取出的TOKEN串出現(xiàn)的次數(shù)即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。
。3)每一個郵件集對應(yīng)一個哈希表,hashtable?good對應(yīng)非垃圾郵件集而hashtable?bad對應(yīng)垃圾郵件集。表中存儲TOKEN串到字頻的映射關(guān)系。
。4)計算每個哈希表中TOKEN串出現(xiàn)的概率P=(某TOKEN串的字頻)/(對應(yīng)哈希表的長度)
。5)綜合考慮hashtable?good和hashtable?bad,推斷出當(dāng)新來的郵件中出現(xiàn)某個TOKEN串時,該新郵件為垃圾郵件的概率。數(shù)學(xué)表達式[3]為:
A事件――郵件為垃圾郵件;
t1,t2 ……,tn 代表TOKEN串
則P(A|ti)表示在郵件中出現(xiàn)TOKEN串ti時,該郵件為垃圾郵件的概率。設(shè)
P1(ti)=ti在hashtable?good中的值
P2(ti)=ti在hashtable?bad中的值
則P(A|ti)=P2(ti)[(P1(ti)+P2(ti));
。6)建立新的哈希表hashtable?probability存儲TOKEN串ti到P(A|ti)的映射
。7)根據(jù)建立的哈希表hashtable?probability可以估計一封新到的郵件為垃圾郵件的可能性。
當(dāng)新到一封郵件時,按照步驟2,生成TOKEN串。查詢hashtable?probability得到該TOKEN串的鍵值。假設(shè)由該郵件共得到N個TOKEN串,t1,t2…….tn,hashtable?probability中對應(yīng)的值為P1,P2,……PN,P(A|t1,t2,t3……tn)表示在郵件中同時出現(xiàn)多個TOKEN串t1,t2……tn時,該郵件為垃圾郵件的概率。
由復(fù)合概率公式可得[3]:
P(A|t1,t2,t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]
當(dāng)P(A|t1,t2,t3……tn)超過預(yù)定閾值時,就可以判斷郵件為垃圾郵件。
當(dāng)新郵件到達的時候,就通過貝葉斯過濾器分析,通過使用各個特征來計算郵件是spam的概率。通過不斷的分析,過濾器也不斷地獲得自更新。比如,通過各種特征判斷一個包含單詞AAA的郵件是spam,那么單詞AAA成為垃圾郵件特征的概率就增加了。
3 Foxmail中過濾技術(shù)及貝葉斯算法的應(yīng)用
3.1 Foxmail中反垃圾郵件技術(shù)
在識別垃圾郵件方面,F(xiàn)oxmail使用了“黑名單”、“白名單”、“規(guī)則過濾”、“學(xué)習(xí)法過濾(貝葉斯過濾)”等技術(shù),綜合應(yīng)用這些技術(shù),F(xiàn)oxmail就能夠準確地識別垃圾郵件。
在Foxmail菜單中點擊“工具”-“反垃圾郵件功能設(shè)置”,就可打開反垃圾郵件設(shè)置窗口,如圖1所示。
收取郵件時,F(xiàn)oxmail首先使用“白名單”對郵件進行判斷,如果發(fā)件人的E-mail地址包含在“白名單”中,則把該郵件判定為非垃圾郵件,否則,繼續(xù)進行判斷。
接著使用“黑名單”對郵件進行判斷,如果發(fā)件人的E-mail地址或名字包含在黑名單中,則把該郵件判定為垃圾郵件并直接刪除,否則,繼續(xù)進行判斷。
接著使用“規(guī)則過濾”對郵件進行判斷。在Foxmail中定義了完善的垃圾郵件規(guī)則,每條規(guī)則對應(yīng)一個分數(shù),當(dāng)郵件符合某一條規(guī)則,則給郵件增加相應(yīng)的分數(shù),當(dāng)郵件得到的分數(shù)達到一定值時,就把該郵件判定為垃圾郵件,否則,繼續(xù)進行判斷。
接著使用“貝葉斯過濾”對郵件進行判斷。貝葉斯過濾強大的反垃圾功能,讓系統(tǒng)能夠?qū)⒛鷤人的正常郵件和垃圾郵件的特征詞語采集出來,為反垃圾判斷提供基準。
3.2 Foxmail中貝葉斯算法應(yīng)用
例如:一封含有“法輪功”字樣的垃圾郵件A和一封含有“法律”字樣的非垃圾郵件B。
。1)根據(jù)郵件A生成hashtable?bad,該哈希表中的記錄為:法―1次,輪―1次,功―1次。
計算得在本表中:“法”出現(xiàn)的概率為0.3;“輪”出現(xiàn)的概率為0.3;“功”出現(xiàn)的概率為0.3。
(2)根據(jù)郵件B生成hashtable?good,該哈希表中的記錄為:法―1次,律―1次。
計算得在本表中:“法”出現(xiàn)的概率為0.5;“律”出現(xiàn)的概率為0.5。
。3)綜合考慮兩個哈希表,共有四個TOKEN串:法輪功律。
當(dāng)郵件中出現(xiàn)“法”時,該郵件為垃圾郵件的概率為:P=0.3/(0.3+0.5)=0.375;
出現(xiàn)“輪”時:P=0.3/(0.3+0)=1;
出現(xiàn)“功”時:P=0.3/(0.3+0)=1;
出現(xiàn)“律”時:P=0/(0+0.5)=0。
。4)由此可得第三個哈希表:hashtable?probability,該哈希表中的記錄為:法―0.375,輪―1,功―1,律―0。
當(dāng)新到一封含有“功律”的郵件時,我們可得到兩個TOKEN串:功律。
查詢哈希表hashtable?probability可得:P(垃圾郵件|功)=1,P(垃圾郵件|律)=0。
。5)計算該郵件為垃圾郵件的可能性:P=(0*1)/[0*1+(1-0)*(1-1)]=0。
由此可推出該郵件為非垃圾郵件。
4 總結(jié)
盡管過濾器技術(shù)存在局限,但是,這是目前最為廣泛使用的反垃圾郵件技術(shù)。其實,現(xiàn)在很多反垃圾郵件方案所采用的都不會只是一種技術(shù),而是多種多類技術(shù)的綜合體。
反垃圾郵件從技術(shù)上來說,這跟反攻擊一樣,是一個正反雙方的博弈過程,一種新的反垃圾郵件技術(shù)必然會出現(xiàn)一種對應(yīng)得垃圾郵件技術(shù),況且,任何一種技術(shù),還沒有辦法去解決所有問題,技術(shù)的發(fā)展也將延續(xù)下去。
參考文獻
[1]曹麒麟,張千里.垃圾郵件與反垃圾技術(shù)[M].北京:人民郵電出版社,2003.
[2]詹川.反垃圾郵件技術(shù)的研究[D].電子科技大學(xué),2005.
[3]徐松浦.反垃圾郵件中貝葉斯方法的應(yīng)用研究[D].成都理工大學(xué),2005.
相關(guān)熱詞搜索:算法 反垃圾郵件 研究 反垃圾郵件技術(shù)及貝葉斯算法的研究 樸素貝葉斯+垃圾郵件分類 垃圾郵件分類 貝葉斯
熱點文章閱讀