發新話題

[分享] 反垃圾郵件技術解析

反垃圾郵件技術解析

  1、概述

電子郵件是最常用的網絡應用之一,已經成為網絡交流溝通的重要途徑。但是,垃圾郵件(spam)煩惱著大多數人,近來的調查顯示,93%的被調查者都對他們接收到的大量垃圾郵件非常不滿。一些簡單的垃圾郵件事件也造成了很有影響的安全問題。  
日益增加的垃圾郵件現在會造成1年94億美元的損失(來自chinabyte上一則新聞的數據),在一些文章表明,垃圾郵件可能會花費一個公司內每個用戶600到1000美元。

垃圾郵件隨著互聯網的不斷發展而大量增長,不再像以前一樣,只是小小的一個騷擾,現在的垃圾郵件可以說是鋪天蓋地了。最初,垃圾郵件主要是一些不請自來的商業宣傳電子郵件,而現在更多的有關色情、政治的垃圾郵件不斷增加,甚至達到了總垃圾郵件量的40%左右,並且仍然有持續增長的趨勢。另一方面,垃圾郵件成了計算機病毒新的、快速的傳播途徑。

而且目前世界上50%的郵件都是垃圾郵件,只有少數組織承擔責任。很多反垃圾郵件的措施都被提出出來,但是只有非常少的被實施了。不幸的是,這些解決辦法也都還不能完全阻止垃圾郵件,而且還對正常的郵件來往產生影響。

1.1、什麼是垃圾郵件?

某種程度上,對垃圾郵件的定義可以是:那些人們沒有意願去接收到的電子郵件都是垃圾郵件。比如:

*商業廣告。很多公司為了宣傳新的產品、新的活動等通過電子郵件的方式進行宣傳。

*政治言論。目前會收到不少來自其他國家或者反動組織發送的這類電子郵件,這就跟垃圾的商業廣告一樣,銷售和販賣他們的所謂言論。

*蠕蟲病毒郵件。越來越多的病毒通過電子郵件來迅速傳播,這也的確是一條迅速而且有效的傳播途徑。

*惡意郵件。恐嚇、欺騙性郵件。比如phishing,這是一種假冒網頁的電子郵件,完全是一種詭計,來蒙騙用戶的個人信息、賬號甚至信用卡。

普通個人的電子郵箱怎麼成為了垃圾郵件的目標呢,造成這樣的結果有很多原因,比如在網站、論壇等地方註冊了郵件地址,病毒等在朋友的郵箱中找到了你的電子郵箱,對郵件提供商進行的用戶枚舉,等等。通常情況下,越少暴露電子郵件地址越少接收到垃圾郵件,使用時間越短越少接收到垃圾郵件。一些無奈的用戶就選擇了放棄自己的郵箱而更換新的電子郵箱。

1.2、安全問題

垃圾郵件給互聯網以及廣大的使用者帶來了很大的影響,這種影響不僅僅是人們需要花費時間來處理垃圾郵件、佔用系統資源等,同時也帶來了很多的安全問題。

垃圾郵件佔用了大量網絡資源,這是顯而易見的。一些郵件服務器因為安全性差,被作為垃圾郵件轉發站為被警告、封IP等事件時有發生,大量消耗的網絡資源使得正常的業務運作變得緩慢。隨著國際上反垃圾郵件的發展,組織間黑名單共享,使得無辜服務器被更大範圍屏蔽,這無疑會給正常用戶的使用造成嚴重問題。

垃圾郵件和黑客攻擊、病毒等結合也越來越密切,比如,SoBig蠕蟲就安裝開放的,可以用來支持郵件轉發的代理。隨著垃圾郵件的演變,用惡意代碼或者監視軟件等來支持垃圾郵件已經明顯地增加了。2003年12月31,巴西的一個黑客組織發送包含惡意javascript腳本的垃圾郵件給數百萬用戶,那些通過Hotmail來瀏覽這些垃圾郵件的人們在不知不覺中已經洩露了他們的賬號。另外一個例子就是,近來IE的URL顯示問題,在主機名前添加"%01"可以隱藏真實的主機地址,在被發佈之後幾個星期內就出現在垃圾郵件中了。

越來越具有欺騙性的病毒郵件,讓很多企業深受其害,即便採取了很好的網絡保護策略,依然很難避免,越來越多的安全事件都是因為郵件產生的,可能是病毒、木馬或者其他惡意程序。Phishing的假冒詭計對於普通使用者來說,的確很難作出正確的判斷,但是造成的損失卻是很直接的。

TOP

2、反垃圾郵件技術

已經存在的和在被提及的反垃圾郵件方法試圖來減少垃圾郵件問題和處理安全需求。通過正確的識別垃圾郵件,郵件病毒或者郵件攻擊程序等都會減少。這些解決方法採取多種安全途徑來努力阻止垃圾郵件。

Dr. Neal Krawetz在Anti-Spam Solutions and Security[ref 1]文中將反垃圾郵件技術作了非常好的分類。當前的反垃圾郵件技術可以分為4大類:過濾器(Filter)、反向查詢(Reverse lookup)、挑戰(challenges)和密碼術(cryptography),這些解決辦法都可以減少垃圾郵件問題,但是都有它們的局限性。本文將在下面的內容討論這些技術以及一些主要技術的實現。

2.1、過濾

過濾(Filter)是一種相對來說最簡單卻很直接的處理垃圾郵件技術。這種技術主要用於接收系統(MUA,如OUTLOOK EXPRESS或者MTA,如sendmail)來辨別和處理垃圾郵件。從應用情況來看,這種技術也是使用最廣泛的,比如很多郵件服務器上的反垃圾郵件插件、反垃圾郵件網關、客戶端上的反垃圾郵件功能等,都是採用的過濾技術。

2.1.1、關鍵詞過濾

關鍵詞過濾技術通常創建一些簡單或複雜的與垃圾郵件關聯的單詞表來識別和處理垃圾郵件。比如某些關鍵詞大量出現在垃圾郵件中,如一些病毒的郵件標題,比如:test。這種方式比較類似反病毒軟件利用的病毒特徵一樣。可以說這是一種簡單的內容過濾方式來處理垃圾郵件,它的基礎是必須創建一個龐大的過濾關鍵詞列表。

這種技術缺陷很明顯,過濾的能力同關鍵詞有明顯聯繫,關鍵詞列表也會造成錯報可能比較大,當然系統採用這種技術來處理郵件的時候消耗的系統資源會比較多。並且,一般躲避關鍵詞的技術比如拆詞,組詞就很容易繞過過濾。

2.1.2、黑白名單

黑名單(Black List)和白名單(White List)。分別是已知的垃圾郵件發送者或可信任的發送者IP地址或者郵件地址。現在有很多組織都在做*bl(block list),將那些經常發送垃圾郵件的IP地址(甚至IP地址範圍)收集在一起,做成block list,比如spamhaus的SBL(Spamhaus Block List),一個BL,可以在很大範圍內共享。許多ISP正在採用一些組織的BL來阻止接收垃圾郵件。白名單則與黑名單相反,對於那些信任的郵件地址或者IP就完全接受了。

目前很多郵件接收端都採用了黑白名單的方式來處理垃圾郵件,包括MUA和MTA,當然在MTA中使用得更廣泛,這樣可以有效地減少服務器的負擔。

BL技術也有明顯的缺陷,因為不能在block list中包含所有的(即便是大量)的IP地址,而且垃圾郵件發送者很容易通過不同的IP地址來製造垃圾。

2.1.3    HASH技術

HASH技術是郵件系統通過創建HASH來描述郵件內容,比如將郵件的內容、發件人等作為參數,最後計算得出這個郵件的HASH來描述這個郵件。如果HASH相同,那麼說明郵件內容、發件人等相同。這在一些ISP上在採用,如果出現重複的HASH值,那麼就可以懷疑是大批量發送郵件了。

2.1.4    基於規則的過濾

這種過濾根據某些特徵(比如單詞、詞組、位置、大小、附件等)來形成規則,通過這些規則來描述垃圾郵件,就好比IDS中描述一條入侵事件一樣。要使得過濾器有效,就意味著管理人員要維護一個龐大的規則庫。

2.1.5    智能和概率系統

廣泛使用的就是貝葉斯(Bayesian)算法,可以學習單詞的頻率和模式,這樣可以同垃圾郵件和正常郵件關聯起來進行判斷。這是一種相對於關鍵字來說,更複雜和更智能化的內容過濾技術。我將在下面詳細描述這種在客戶端和服務器中使用最廣泛的技術。

2.1.5.1    Bayesian 貝葉斯算法

在過濾器中,現在表現最好的應該是基於評分(score)的過濾器,因為我們很容易就可以明白對付狡猾的垃圾郵件,那些黑白名單、關鍵詞庫或者HASH等過濾器是多麼的簡單。評分系統過濾器是一種最基本的算法過濾器,也是貝葉斯算法的基本雛形。它的原理就是檢查垃圾郵件中的詞或字符等,將每個特徵元素(最簡單的元素就是單詞,複雜點的元素就是短語)都給出一個分數(正分數),另一方面就是檢查正常郵件的特徵元素,用來降低得分的(負分數)。最後郵件整體就得到一個垃圾郵件總分,通過這個分數來判斷是否spam。

這種評分過濾器盡量實現了自動識別垃圾郵件的功能,但是依然存在一些不適應的問題:

*特徵元素列表通過垃圾郵件或者正常郵件獲得。因此,要提高識別垃圾郵件的效果,就要從數百郵件中來學習,這降低了過濾器效率,因為對於不同人來說,正常郵件的特徵元素是不一樣的。

*獲得特徵元素分析的郵件數量多少是一個關鍵。如果垃圾郵件發送者也適應了這些特徵,就可能讓垃圾郵件更像正常郵件。這樣的話,過濾特徵就要更改了。

*每個詞計算的分數應該基於一種很好的評價,但是還是有隨意性。比如,特徵就可能不會適應垃圾郵件的單詞變化,也不會適應某個用戶的需要。

貝葉斯理論現在在計算機行業中應用相當廣泛,這是一種對事物的不確定性描述,比如google計算中就採用了貝葉斯理論。貝葉斯算法的過濾器就是計算郵件內容中成為垃圾郵件的概率,它要首先從許多垃圾郵件和正常郵件中進行學習,因此,效果將比普通的內容過濾器更優秀,錯報就會更少。貝葉斯過濾器也是一種基於評分的過濾器。但不僅僅是一種簡單的計算分數,而更從根本上來識別。它採用自動建立特徵表的方式,原理上,首先分析大量的垃圾郵件和大量的正常郵件,算法分析郵件中多種特徵出現概率。

貝葉斯算法計算特徵的來源通常是:

·郵件正文中的單詞

·郵件頭(發送者、傳遞路徑等)

·其他表現,比如HTML編碼(如顏色等)

·詞組、短語

·meta信息,比如特殊短語出現位置等

比如,正常郵件中經常出現單詞AAA,但是基本不在垃圾郵件中出現,那麼,AAA標示垃圾郵件的概率就接近0,反之則然。

貝葉斯算法的步驟為:

1. 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。

2. 提取特徵來源中的獨立字符串,例如 AAA等作為TOKEN串並統計提取出。

TOP

謝謝您的觀念分享
^^

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。