提交成功,感謝您的反饋!
窗口將于5秒鐘后關(guān)閉1、概述
電子郵件是最常用的網(wǎng)絡(luò)應(yīng)用之一,已經(jīng)成為網(wǎng)絡(luò)交流溝通的重要途徑。但是,垃圾郵件(spam)煩惱著大多數(shù)人,近來的調(diào)查顯示,93%的被調(diào)查者都對(duì)他們接收到的大量垃圾郵件非常不滿。一些簡單的垃圾郵件事件也造成了很有影響的安全問題。日益增加的垃圾郵件現(xiàn)在會(huì)造成1年94億美元的損失(來自chinabyte上一則新聞的數(shù)據(jù)),在一些文章表明,垃圾郵件可能會(huì)花費(fèi)一個(gè)公司內(nèi)每個(gè)用戶600到1000美元。
垃圾郵件隨著互聯(lián)網(wǎng)的不斷發(fā)展而大量增長,不再像以前一樣,只是小小的一個(gè)騷擾,現(xiàn)在的垃圾郵件可以說是鋪天蓋地了。最初,垃圾郵件主要是一些不請(qǐng)自來的商業(yè)宣傳電子郵件,而現(xiàn)在更多的有關(guān)色情、政治的垃圾郵件不斷增加,甚至達(dá)到了總垃圾郵件量的40%左右,并且仍然有持續(xù)增長的趨勢(shì)。另一方面,垃圾郵件成了計(jì)算機(jī)病毒新的、快速的傳播途徑。
而且目前世界上50%的郵件都是垃圾郵件,只有少數(shù)組織承擔(dān)責(zé)任。很多反垃圾郵件的措施都被提出出來,但是只有非常少的被實(shí)施了。不幸的是,這些解決辦法也都還不能完全阻止垃圾郵件,而且還對(duì)正常的郵件來往產(chǎn)生影響。
1.1、什么是垃圾郵件?
某種程度上,對(duì)垃圾郵件的定義可以是:那些人們沒有意愿去接收到的電子郵件都是垃圾郵件。比如:
*商業(yè)廣告。很多公司為了宣傳新的產(chǎn)品、新的活動(dòng)等通過電子郵件的方式進(jìn)行宣傳。
*政治言論。目前會(huì)收到不少來自其他國家或者反動(dòng)組織發(fā)送的這類電子郵件,這就跟垃圾的商業(yè)廣告一樣,銷售和販賣他們的所謂言論。
*蠕蟲病毒郵件。越來越多的病毒通過電子郵件來迅速傳播,這也的確是一條迅速而且有效的傳播途徑。
*惡意郵件。恐嚇、欺騙性郵件。比如phishing,這是一種假冒網(wǎng)頁的電子郵件,完全是一種詭計(jì),來蒙騙用戶的個(gè)人信息、賬號(hào)甚至信用卡。
普通個(gè)人的電子郵箱怎么成為了垃圾郵件的目標(biāo)呢,造成這樣的結(jié)果有很多原因,比如在網(wǎng)站、論壇等地方注冊(cè)了郵件地址,病毒等在朋友的郵箱中找到了你的電子郵箱,對(duì)郵件提供商進(jìn)行的用戶枚舉,等等。通常情況下,越少暴露電子郵件地址越少接收到垃圾郵件,使用時(shí)間越短越少接收到垃圾郵件。一些無奈的用戶就選擇了放棄自己的郵箱而更換新的電子郵箱。
1.2、安全問題
垃圾郵件給互聯(lián)網(wǎng)以及廣大的使用者帶來了很大的影響,這種影響不僅僅是人們需要花費(fèi)時(shí)間來處理垃圾郵件、占用系統(tǒng)資源等,同時(shí)也帶來了很多的安全問題。
垃圾郵件占用了大量網(wǎng)絡(luò)資源,這是顯而易見的。一些郵件服務(wù)器因?yàn)榘踩圆?,被作為垃圾郵件轉(zhuǎn)發(fā)站為被警告、封IP等事件時(shí)有發(fā)生,大量消耗的網(wǎng)絡(luò)資源使得正常的業(yè)務(wù)運(yùn)作變得緩慢。隨著國際上反垃圾郵件的發(fā)展,組織間黑名單共享,使得無辜服務(wù)器被更大范圍屏蔽,這無疑會(huì)給正常用戶的使用造成嚴(yán)重問題。
垃圾郵件和黑客攻擊、病毒等結(jié)合也越來越密切,比如,SoBig蠕蟲就安裝開放的,可以用來支持郵件轉(zhuǎn)發(fā)的代理。隨著垃圾郵件的演變,用惡意代碼或者監(jiān)視軟件等來支持垃圾郵件已經(jīng)明顯地增加了。2003年12月31,巴西的一個(gè)黑客組織發(fā)送包含惡意javascript腳本的垃圾郵件給數(shù)百萬用戶,那些通過Hotmail來瀏覽這些垃圾郵件的人們?cè)诓恢挥X中已經(jīng)泄露了他們的賬號(hào)。另外一個(gè)例子就是,近來IE的URL顯示問題,在主機(jī)名前添加"%01"可以隱藏真實(shí)的主機(jī)地址,在被發(fā)布之后幾個(gè)星期內(nèi)就出現(xiàn)在垃圾郵件中了。
越來越具有欺騙性的病毒郵件,讓很多企業(yè)深受其害,即便采取了很好的網(wǎng)絡(luò)保護(hù)策略,依然很難避免,越來越多的安全事件都是因?yàn)猷]件產(chǎn)生的,可能是病毒、木馬或者其他惡意程序。Phishing的假冒詭計(jì)對(duì)于普通使用者來說,的確很難作出正確的判斷,但是造成的損失卻是很直接的。
2、反垃圾郵件技術(shù)
已經(jīng)存在的和在被提及的反垃圾郵件方法試圖來減少垃圾郵件問題和處理安全需求。通過正確的識(shí)別垃圾郵件,郵件病毒或者郵件攻擊程序等都會(huì)減少。這些解決方法采取多種安全途徑來努力阻止垃圾郵件。
Dr. Neal Krawetz在Anti-Spam Solutions and Security[ref 1]文中將反垃圾郵件技術(shù)作了非常好的分類。當(dāng)前的反垃圾郵件技術(shù)可以分為4大類:過濾器(Filter)、反向查詢(Reverse lookup)、挑戰(zhàn)(challenges)和密碼術(shù)(cryptography),這些解決辦法都可以減少垃圾郵件問題,但是都有它們的局限性。本文將在下面的內(nèi)容討論這些技術(shù)以及一些主要技術(shù)的實(shí)現(xiàn)。
2.1、過濾
過濾(Filter)是一種相對(duì)來說最簡單卻很直接的處理垃圾郵件技術(shù)。這種技術(shù)主要用于接收系統(tǒng)(MUA,如OUTLOOK EXPRESS或者M(jìn)TA,如sendmail)來辨別和處理垃圾郵件。從應(yīng)用情況來看,這種技術(shù)也是使用最廣泛的,比如很多郵件服務(wù)器上的反垃圾郵件插件、反垃圾郵件網(wǎng)關(guān)、客戶端上的反垃圾郵件功能等,都是采用的過濾技術(shù)。
2.1.1、關(guān)鍵詞過濾
關(guān)鍵詞過濾技術(shù)通常創(chuàng)建一些簡單或復(fù)雜的與垃圾郵件關(guān)聯(lián)的單詞表來識(shí)別和處理垃圾郵件。比如某些關(guān)鍵詞大量出現(xiàn)在垃圾郵件中,如一些病毒的郵件標(biāo)題,比如:test。這種方式比較類似反病毒軟件利用的病毒特征一樣??梢哉f這是一種簡單的內(nèi)容過濾方式來處理垃圾郵件,它的基礎(chǔ)是必須創(chuàng)建一個(gè)龐大的過濾關(guān)鍵詞列表。
這種技術(shù)缺陷很明顯,過濾的能力同關(guān)鍵詞有明顯聯(lián)系,關(guān)鍵詞列表也會(huì)造成錯(cuò)報(bào)可能比較大,當(dāng)然系統(tǒng)采用這種技術(shù)來處理郵件的時(shí)候消耗的系統(tǒng)資源會(huì)比較多。并且,一般躲避關(guān)鍵詞的技術(shù)比如拆詞,組詞就很容易繞過過濾。
2.1.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),一個(gè)BL,可以在很大范圍內(nèi)共享。許多ISP正在采用一些組織的BL來阻止接收垃圾郵件。白名單則與黑名單相反,對(duì)于那些信任的郵件地址或者IP就完全接受了。
目前很多郵件接收端都采用了黑白名單的方式來處理垃圾郵件,包括MUA和MTA,當(dāng)然在MTA中使用得更廣泛,這樣可以有效地減少服務(wù)器的負(fù)擔(dān)。
BL技術(shù)也有明顯的缺陷,因?yàn)椴荒茉赽lock list中包含所有的(即便是大量)的IP地址,而且垃圾郵件發(fā)送者很容易通過不同的IP地址來制造垃圾。
2.1.3 HASH技術(shù)
HASH技術(shù)是郵件系統(tǒng)通過創(chuàng)建HASH來描述郵件內(nèi)容,比如將郵件的內(nèi)容、發(fā)件人等作為參數(shù),最后計(jì)算得出這個(gè)郵件的HASH來描述這個(gè)郵件。如果HASH相同,那么說明郵件內(nèi)容、發(fā)件人等相同。這在一些ISP上在采用,如果出現(xiàn)重復(fù)的HASH值,那么就可以懷疑是大批量發(fā)送郵件了。
2.1.4 基于規(guī)則的過濾
這種過濾根據(jù)某些特征(比如單詞、詞組、位置、大小、附件等)來形成規(guī)則,通過這些規(guī)則來描述垃圾郵件,就好比IDS中描述一條入侵事件一樣。要使得過濾器有效,就意味著管理人員要維護(hù)一個(gè)龐大的規(guī)則庫。
2.1.5 智能和概率系統(tǒng)
廣泛使用的就是貝葉斯(Bayesian)算法,可以學(xué)習(xí)單詞的頻率和模式,這樣可以同垃圾郵件和正常郵件關(guān)聯(lián)起來進(jìn)行判斷。這是一種相對(duì)于關(guān)鍵字來說,更復(fù)雜和更智能化的內(nèi)容過濾技術(shù)。我將在下面詳細(xì)描述這種在客戶端和服務(wù)器中使用最廣泛的技術(shù)。
2.1.5.1 Bayesian 貝葉斯算法
在過濾器中,現(xiàn)在表現(xiàn)最好的應(yīng)該是基于評(píng)分(score)的過濾器,因?yàn)槲覀兒苋菀拙涂梢悦靼讓?duì)付狡猾的垃圾郵件,那些黑白名單、關(guān)鍵詞庫或者HASH等過濾器是多么的簡單。評(píng)分系統(tǒng)過濾器是一種最基本的算法過濾器,也是貝葉斯算法的基本雛形。它的原理就是檢查垃圾郵件中的詞或字符等,將每個(gè)特征元素(最簡單的元素就是單詞,復(fù)雜點(diǎn)的元素就是短語)都給出一個(gè)分?jǐn)?shù)(正分?jǐn)?shù)),另一方面就是檢查正常郵件的特征元素,用來降低得分的(負(fù)分?jǐn)?shù))。最后郵件整體就得到一個(gè)垃圾郵件總分,通過這個(gè)分?jǐn)?shù)來判斷是否spam。
這種評(píng)分過濾器盡量實(shí)現(xiàn)了自動(dòng)識(shí)別垃圾郵件的功能,但是依然存在一些不適應(yīng)的問題:
*特征元素列表通過垃圾郵件或者正常郵件獲得。因此,要提高識(shí)別垃圾郵件的效果,就要從數(shù)百郵件中來學(xué)習(xí),這降低了過濾器效率,因?yàn)閷?duì)于不同人來說,正常郵件的特征元素是不一樣的。
*獲得特征元素分析的郵件數(shù)量多少是一個(gè)關(guān)鍵。如果垃圾郵件發(fā)送者也適應(yīng)了這些特征,就可能讓垃圾郵件更象正常郵件。這樣的話,過濾特征就要更改了。
*每個(gè)詞計(jì)算的分?jǐn)?shù)應(yīng)該基于一種很好的評(píng)價(jià),但是還是有隨意性。比如,特征就可能不會(huì)適應(yīng)垃圾郵件的單詞變化,也不會(huì)適應(yīng)某個(gè)用戶的需要。
貝葉斯理論現(xiàn)在在計(jì)算機(jī)行業(yè)中應(yīng)用相當(dāng)廣泛,這是一種對(duì)事物的不確定性描述,比如google計(jì)算中就采用了貝葉斯理論。貝葉斯算法的過濾器就是計(jì)算郵件內(nèi)容中成為垃圾郵件的概率,它要首先從許多垃圾郵件和正常郵件中進(jìn)行學(xué)習(xí),因此,效果將比普通的內(nèi)容過濾器更優(yōu)秀,錯(cuò)報(bào)就會(huì)更少。貝葉斯過濾器也是一種基于評(píng)分的過濾器。但不僅僅是一種簡單的計(jì)算分?jǐn)?shù),而更從根本上來識(shí)別。它采用自動(dòng)建立特征表的方式,原理上,首先分析大量的垃圾郵件和大量的正常郵件,算法分析郵件中多種特征出現(xiàn)概率。
貝葉斯算法計(jì)算特征的來源通常是:
?郵件正文中的單詞
?郵件頭(發(fā)送者、傳遞路徑等)
?其他表現(xiàn),比如HTML編碼(如顏色等)
?詞組、短語
?meta信息,比如特殊短語出現(xiàn)位置等
比如,正常郵件中經(jīng)常出現(xiàn)單詞AAA,但是基本不在垃圾郵件中出現(xiàn),那么,AAA標(biāo)示垃圾郵件的概率就接近0,反之則然。
貝葉斯算法的步驟為:
1. 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。
2. 提取特征來源中的獨(dú)立字符串,例如 AAA等作為TOKEN串并統(tǒng)計(jì)提取出的TOKEN串出現(xiàn)的次數(shù)即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。
3. 每一個(gè)郵件集對(duì)應(yīng)一個(gè)哈希表,hashtable_good對(duì)應(yīng)非垃圾郵件集而hashtable_bad對(duì)應(yīng)垃圾郵件集。表中存儲(chǔ)TOKEN串到字頻的映射關(guān)系。
4. 計(jì)算每個(gè)哈希表中TOKEN串出現(xiàn)的概率P=(某TOKEN串的字頻)/(對(duì)應(yīng)哈希表的長度)
5. 綜合考慮hashtable_good和hashtable_bad,推斷出當(dāng)新來的郵件中出現(xiàn)某個(gè)TOKEN串時(shí),該新郵件為垃圾郵件的概率。數(shù)學(xué)表達(dá)式為:
A 事件 ---- 郵件為垃圾郵件;
t1,t2 …….tn 代表 TOKEN 串
則 P(A|ti)表示在郵件中出現(xiàn) TOKEN 串 ti 時(shí),該郵件為垃圾郵件的概率。設(shè)
P1(ti)=ti 在 hashtable_good 中的值
P2(ti)=ti 在 hashtable_ bad 中的值
則 P(A|ti)=P2(ti)/[(P1(ti)+P2(ti)] ;
6. 建立新的哈希表hashtable_probability存儲(chǔ)TOKEN串ti到P(A|ti)的映射
7.根據(jù)建立的哈希表 hashtable_probability可以估計(jì)一封新到的郵件為垃圾郵件的可能性。
當(dāng)新到一封郵件時(shí),按照步驟2,生成TOKEN串。查詢hashtable_probability得到該TOKEN 串的鍵值。假設(shè)由該郵件共得到N個(gè)TOKEN 串,t1,t2…….tn,hashtable_probability中對(duì)應(yīng)的值為 P1 ,P2 ,……PN ,P(A|t1 ,t2, t3……tn) 表示在郵件中同時(shí)出現(xiàn)多個(gè)TOKEN串t1,t2……tn時(shí),該郵件為垃圾郵件的概率。
由復(fù)合概率公式可得:
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ù)定閾值時(shí),就可以判斷郵件為垃圾郵件。
當(dāng)新郵件到達(dá)的時(shí)候,就通過貝葉斯過濾器分析,通過使用各個(gè)特征來計(jì)算郵件是spam的概率。通過不斷的分析,過濾器也不斷地獲得自更新。比如,通過各種特征判斷一個(gè)包含單詞AAA的郵件是spam,那么單詞AAA成為垃圾郵件特征的概率就增加了。
這樣,貝葉斯過濾器就有了自適應(yīng)能力,既能自動(dòng)進(jìn)行,也可以用戶手工操作,也就更能適應(yīng)單個(gè)用戶的使用。而垃圾郵件發(fā)送者要獲得這樣的適應(yīng)能力就很難了,因此,更難逃避過濾器的過濾,但他們當(dāng)然還是能夠?qū)⑧]件偽裝成很普遍的正常郵件的樣子。除非垃圾郵件發(fā)送者能去對(duì)某個(gè)人的過濾器進(jìn)行判斷,比如,采用發(fā)送回執(zhí)的辦法來了解哪些郵件被用戶打開了等,這樣他們就可以適應(yīng)過濾器了。
雖然貝葉斯過濾器還存在有評(píng)分過濾器的缺陷,但是它更優(yōu)化了。實(shí)踐也證明,貝葉斯過濾器在客戶端和服務(wù)器中效果是非常明顯的,優(yōu)秀的貝葉斯過濾器能夠識(shí)別超過99.9%的垃圾郵件。大多數(shù)目前應(yīng)用的反垃圾郵件產(chǎn)品都采用了這樣的技術(shù)。比如Foxmail中的貝葉斯過濾。
2.1.6 局限性和缺點(diǎn)
現(xiàn)行的很多采用過濾器技術(shù)的反垃圾郵件產(chǎn)品通常都采用了多種過濾器技術(shù),以便使產(chǎn)品更為有效。過濾器通過他們的誤報(bào)和漏報(bào)來分等級(jí)。漏報(bào)就是指垃圾郵件繞過了過濾器的過濾。而誤報(bào)則是將正常的郵件判斷為了垃圾郵件。完美的過濾器系統(tǒng)應(yīng)該是不存在漏報(bào)和誤報(bào)的,但是這是理想情況。
一些基于過濾器原理的反垃圾郵件系統(tǒng)通常有下面的三種局限性:
?可能被繞過。垃圾郵件發(fā)送者和他們用的發(fā)送工具也不是靜態(tài)的,他們也會(huì)很快適應(yīng)過濾器。比如,針對(duì)關(guān)鍵字列表,他們可以隨機(jī)更改一些單詞的拼寫,比如("強(qiáng)悍", "弓雖悍", "強(qiáng)-悍").Hash-buster(在每個(gè)郵件中產(chǎn)生不同的HASH)就是來繞過hash過濾器的。當(dāng)前普遍使用的貝葉斯過濾器可以通過插入隨機(jī)單詞或句子來繞過。多數(shù)過濾器都最多只能在少數(shù)幾周才最有效,為了保持反垃圾郵件系統(tǒng)的實(shí)用性,過濾器規(guī)則就必須不斷更新,比如每天或者每周更新。
?誤報(bào)問題。最頭痛的問題就是將正常郵件判斷為垃圾郵件。比如,一封包含單詞sample的正常郵件可能因此被判斷為垃圾郵件。某些正常服務(wù)器不幸包含在不負(fù)責(zé)任的組織發(fā)布的block list對(duì)某個(gè)網(wǎng)段進(jìn)行屏蔽中,而不是因?yàn)榘l(fā)送了垃圾郵件(xfocus的服務(wù)器就是這樣的一個(gè)例子)。但是,如果要減少誤報(bào)問題,就可能造成嚴(yán)重的漏報(bào)問題了。
?過濾器復(fù)查。由于誤報(bào)問題的存在,通常被標(biāo)記為垃圾郵件的消息一般不會(huì)被立刻刪除,而是被放置到垃圾郵件箱里面,以便日后檢查。不幸的是,這也意味著用戶仍然必須花費(fèi)時(shí)間去察看垃圾郵件,即便僅僅只針對(duì)郵件標(biāo)題。
目前更嚴(yán)重的問題是,人們依然認(rèn)為過濾器能有效阻止垃圾郵件。實(shí)際上,垃圾郵件過濾器并不能有效阻止垃圾郵件,在多數(shù)案例中,垃圾郵件依然存在,依然穿過了網(wǎng)絡(luò),并且依然被傳播。除非用戶不介意存在被誤報(bào)的郵件,不介意依然會(huì)瀏覽垃圾郵件。過濾器可以幫助我們來組織并分隔郵件為垃圾郵件和正常郵件,但是過濾器技術(shù)并不能阻止垃圾郵件,實(shí)際上只是在"處理"垃圾郵件。
盡管過濾器技術(shù)存在局限,但是,這是目前最為廣泛使用的反垃圾郵件技術(shù)。