反垃圾郵件

反垃圾郵件

已經存在的和在被提及的反垃圾郵件方法試圖來減少垃圾郵件問題和處理安全需求。通過正確的識別垃圾郵件,郵件病毒或者郵件攻擊程式等都會減少。這些解決方法採取多種安全途徑來努力阻止垃圾郵件。 Dr. Neal Krawetz在Anti-Spam Solutions and Securityref 1文中將反垃圾郵件技術作了非常好的分類。當前的反垃圾郵件技術可以分為4大類:過濾器(Filter)、反向查詢(Reverse lookup)、挑戰(challenges)和密碼術(cryptography),這些解決辦法都可以減少垃圾郵件問題,但是都有它們的局限性。

基本介紹

  • 中文名:反垃圾郵件
  • 外文名:Reverse lookup
  • 實現方式:庫
  • 作用:禁止電子郵件
技術解析,概述,1.1、垃圾郵件,1.2、安全問題,郵件技術,工作原理,設定方法,過濾,關鍵字過濾,黑白名單,HASH技術,基於規則的過濾,智慧型和機率系統,局限性和缺點,驗證查詢,反向查詢技術,DKIM技術,SenderID技術,FairUCE技術,指紋技術,局限性和缺點,挑戰,挑戰-回響,計算性挑戰,密碼術,Data爆發護盾,預警與處置系統,總結,

技術解析

聲明:安全焦點(xfocus security team)是非商業,全方位的網路安全組織,本文檔為安全焦點發布的技術檔案,供自由技術傳播,拒絕商業使用。文檔的所有權歸屬安全焦點,任何使用文檔中所介紹技術者對其後果自行負責,安全焦點以及本文檔作者不對其承擔任何責任。

概述

電子郵件是較常用的網路套用之一,已經成為網路交流溝通的重要途徑。但是,垃圾郵件(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的假冒詭計對於普通使用者來說,的確很難作出正確的判斷,但是造成的損失卻是很直接的。

郵件技術

本文將在下面的內容討論這些技術以及一些主要技術的實現。以JDMail郵件系統為例來具體講解一下,該產品的實際項目套用反垃圾郵件的效率為穩定的98%以上,無誤判,並且可以有效防止垃圾郵件盜號。

工作原理

JDMail郵件系統同時支持發信認證(smtp-auth)、黑名單和系統級垃圾郵件過濾功能,為用戶信箱提供三重保護。用戶可以隨時從國內外反垃圾 郵件組織獲得黑名單列表檔案,導入郵件系統,從而使郵件管理員從被動變為主動。JDMail郵件伺服器黑名單功能支持模糊匹配,可以禁止一個域,也可以只禁止域內的一個用戶。此外,提供多種方式的垃圾郵件過濾功能,防止賬戶被劫持來發垃圾郵件,防郵件攻擊等,全方位保障郵件伺服器的安全。

設定方法

反垃圾實現方式
第一層:網路控制層
經驗分析,傳送垃圾郵件的伺服器一般都會同時大批量向某些域的多個帳號傳送垃圾郵件,對於這些傳送垃圾郵件方式,可通過設定一定網路訪問頻率控制進行有效 的阻隔。JDMail郵件系統提供兩種設定方式對付這種攻擊,並可自動把傳送垃圾郵件的IP歸為垃圾IP(SpamIP)列表。
通過smtp 服務層把明顯的傳送垃圾郵件smtp 連線拒絕,大大減輕後台投遞系統和反垃圾引擎的負擔。
通過統計分析,我們發現很多傳送垃圾郵件的smtp 連線具有以下特點。
1.同一IP同時的smtp連線數非常大。
2.同一IP一段時間內,smtp連線頻率非常高。
一般出現這兩種情況,都表示源發件人非常有可能傳送垃圾郵件。
通過設定以下這兩個參數可控制這類型的smtp連線,從而截斷髮送垃圾郵件的源頭:
系統設定-》SMTP服務-》一分鐘內同一IP允許訪問次數。
同時設定:
系統設定-》SMTP服務-》啟用智慧型反垃圾IP功能參數,把符合以上兩個條件的IP位址自動加入系統的智慧型反垃圾IP列表中(SmartSpamIP),當以後系統碰到這些IP連線時,直接拒絕。
可通過:
系統監控-》智慧型反垃圾IP列表。
查看系統智慧型反垃圾IP 列表。
注意:
當網際網路是經過反垃圾網關再接入郵件系統的情況,由於郵件系統的所有smtp連線都來自反垃圾網關,所以基於Smtp服務反垃圾不再起作用,這裡需要把以上兩個參數設為-1,以免系統smtp服務故障。
第二層:來源分析
根據垃圾郵件傳送者IP的地理位置,與 APNIC 的IP信息庫核對結果,看來源是否真實,如果真實則通過,否則可能為可疑郵件。因為IP 來源無法偽裝,所以這個反垃圾策略比較有效。
第三層:黑名單
通過黑名單, JDMail郵件系統可設定禁止任何一個IP,一個網段;也可禁止任何一個發信人,一個域。
實時黑名單(RBL)主要利用網際網路公開的RBL資源判斷是否垃圾郵件。RBL 一般都通過DNS 查詢的方式提供對某個IP或域名是否是垃圾郵件傳送源進行判斷。另外,由於國外大多數RBL都對來自中國的I 有“歧視”,所以我們並不能完全依靠RBL 來判斷一封郵件是否是垃圾郵件,只能根據RBL查詢結果判斷該郵件是否有垃圾郵件的可能性。可設定以下參數定製RBL:
RBL 伺服器,指定RBL 查詢域名後綴。
DNS 查詢類型,根據具體的RBL 要求指定DNS 查詢記錄類型。
匹配表達式,指定RBL 查詢結果的匹配模式,表達式格式採用perl 正則表達式,如果為空,則表示如果可查到RBL結果,就表示符合條件。
第四層:灰名單
灰名單技術源於: greylist
灰名單技術基本假設是:病毒和垃圾郵件,通常都是一次性的,如果遇到錯誤,不會重試。
一些發垃圾郵件的軟體,這些軟體基本上都不會對郵件伺服器返回的錯誤做出任何重試,而只是簡單的在日誌里記錄傳送失敗而已。而病毒引發的郵件風暴則更加不會識別郵件伺服器返回的錯誤,因為這些病毒僅僅是簡單的傳送郵件,傳送時根本不理會伺服器的狀態。
Greylist的設計大體上是基於一種重試的原則,即第一次看到某個IP想給某個收件人發信,那么 它將簡單的返回一個臨時錯誤(4xx),並拒絕此請求,正常的郵件伺服器都會在一段時間內(如半小時)重發一次郵件。Greylist發現還是剛才同樣的 ip地址和收件人,認為此ip是來自合法伺服器的,予以放行。如果是非正常的郵件,那么或者將永遠也不再進行重試,或者會瘋狂重試,但由於間隔太近,而遭 拒絕。因此,Greylist只要設定一個合適的放行間隔,就可以在很大程度上對這類垃圾郵件有著良好的免疫能力。Greylist的一大特點就是不會丟 信,正規的郵件伺服器認為4xx錯誤只是臨時性、軟性的錯誤,會隔一段時間重試,因此郵件還是可以投遞成功。但Greylist的一大缺點是即時延遲 (delay),延遲從幾分鐘到幾個小時不等。對於一些對郵件及時性很強的客戶,Greylist可能不是一個很好的選擇。
第五層:趨勢分析
趨勢分析原理為,所有垃圾郵件都有目標指向,趨勢分析法就是通過分析郵件里的電話、郵件或網站連結內容,通過匹配判斷他的指向從而判斷郵 件是否是垃圾郵件。
第六層:郵件來源判斷
主要通過分析郵件的來源,如:發件人IP ,發件人,發件域,等內容,來判斷垃圾郵件的可能行。
第七層:SpamFilter內容過濾
通過郵件內容關鍵字分析,可為符合內容分析結果的郵件打上相應的垃圾郵件評分。這類規則的判斷條件類似系統的過濾規則。可參考過濾規則設定來設定過濾評分內容,同時我們也會通過收集客戶反饋的垃圾郵件特點整理成規則內容,定期通知客戶更新。
第八層:主題分析引擎
主題分析原理是基於:同一類垃圾郵件的內容大多都相似,通過相似度進行分析,以確定是否為垃圾郵件。通過對同一類型垃圾郵件的統計分析,可以歸納這類垃圾郵件的主要關鍵字,通過關鍵字匹配度,確認是否是垃圾郵件。
第九層:SpamCheck引擎
SpamCheck技術是基於雲計算的反垃圾技術,JDMail郵件系統通過收集終端用戶反饋的垃圾郵件,統一分析,實時歸納為中心垃圾規則庫。同時當客戶伺服器初步檢測到郵件可能為垃圾郵件時,即計算郵件的特徵摘要,與中心規則庫比較,以確定是否為垃圾郵件。

過濾

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

關鍵字過濾

關鍵字過濾技術通常創建一些簡單或複雜的與垃圾郵件關聯的單詞表來識別和處理垃圾郵件。比如某些關鍵字大量在垃圾郵件中出現,如一些病毒的郵件標題,比如:test。這種方式比較類似反病毒軟體利用的病毒特徵一樣。可以說這是一種簡單的內容過濾方式來處理垃圾郵件,它的基礎是必須創建一個龐大的過濾關鍵字列表。
這種技術缺陷很明顯,過濾的能力同關鍵字有明顯聯繫,關鍵字列表也會造成錯報可能比較大,當然系統採用這種技術來處理郵件的時候消耗的系統資源會比較多。並且,一般躲避關鍵字的技術比如拆詞,組詞就很容易繞過過濾。

黑白名單

黑名單(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位址來製造垃圾。

HASH技術

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

基於規則的過濾

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

智慧型和機率系統

廣泛使用的就是貝葉斯(Bayesian)算法,可以學習單詞的頻率和模式,這樣可以同垃圾郵件和正常郵件關聯起來進行判斷。這是一種相對於關鍵字來說,更複雜和更智慧型化的內容過濾技術。我將在下面詳細描述這種在客戶端和伺服器中使用最廣泛的技術。
2.1.5.1 Bayesian 貝葉斯算法
在過濾器中,表現最好的應該是基於評分(score)的過濾器,因為我們很容易就可以明白對付狡猾的垃圾郵件,那些黑白名單、關鍵字庫或者HASH等過濾器是多么的簡單。評分系統過濾器是一種最基本的算法過濾器,也是貝葉斯算法的基本雛形。它的原理就是檢查垃圾郵件中的詞或字元等,將每個特徵元素(最簡單的元素就是單詞,複雜點的元素就是短語)都給出一個分數(正分數),另一方面就是檢查正常郵件的特徵元素,用來降低得分的(負分數)。最後郵件整體就得到一個垃圾郵件總分,通過這個分數來判斷是否spam。
這種評分過濾器儘量實現了自動識別垃圾郵件的功能,但是依然存在一些不適應的問題:
*特徵元素列表通過垃圾郵件或者正常郵件獲得。因此,要提高識別垃圾郵件的效果,就要從數百郵件中來學習,這降低了過濾器效率,因為對於不同人來說,正常郵件的特徵元素是不一樣的。
*獲得特徵元素分析的郵件數量多少是一個關鍵。如果垃圾郵件傳送者也適應了這些特徵,就可能讓垃圾郵件更象正常郵件。這樣的話,過濾特徵就要更改了。
*每個詞計算的分數應該基於一種很好的評價,但是還是有隨意性。比如,特徵就可能不會適應垃圾郵件的單詞變化,也不會適應某個用戶的需要。
貝葉斯理論在計算機行業中套用相當廣泛,這是一種對事物的不確定性描述,比如google計算中就採用了貝葉斯理論。貝葉斯算法的過濾器就是計算郵件內容中成為垃圾郵件的機率,它要首先從許多垃圾郵件和正常郵件中進行學習,因此,效果將比普通的內容過濾器更優秀,錯報就會更少。貝葉斯過濾器也是一種基於評分的過濾器。但不僅僅是一種簡單的計算分數,而更從根本上來識別。它採用自動建立特徵表的方式,原理上,首先分析大量的垃圾郵件和大量的正常郵件,算法分析郵件中多種特徵出現機率。
貝葉斯算法計算特徵的來源通常是:
·郵件正文中的單詞
·郵件頭(傳送者、傳遞路徑等)
·其他表現,比如HTML編碼(如顏色等)
·詞組、短語
·meta信息,比如特殊短語出現位置等
比如,正常郵件中經常出現單詞AAA,但是基本不在垃圾郵件中出現,那么,AAA標示垃圾郵件的機率就接近0,反之則然。
貝葉斯算法的步驟為:
1. 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。
2. 提取特徵來源中的獨立字元串,例如 AAA等作為TOKEN串並統計提取出的TOKEN串出現的次數即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。
3. 每一個郵件集對應一個哈希表,hashtable_good對應非垃圾郵件集而hashtable_bad對應垃圾郵件集。表中存儲TOKEN串到字頻的映射關係。
4. 計算每個哈希表中TOKEN串出現的機率P=(某TOKEN串的字頻)/(對應哈希表的長度)
5. 綜合考慮hashtable_good和hashtable_bad,推斷出當新來的郵件中出現某個TOKEN串時,該新郵件為垃圾郵件的機率。數學表達式為:
A 事件 ---- 郵件為垃圾郵件;
t1,t2 …….tn 代表 TOKEN 串
則 P(A|ti)表示在郵件中出現 TOKEN 串 ti 時,該郵件為垃圾郵件的機率。設
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.根據建立的哈希表hashtable_probability可以估計一封新到的郵件為垃圾郵件的可能性。
當新到一封郵件時,按照步驟2,生成TOKEN串。查詢hashtable_probability得到該TOKEN 串的鍵值。假設由該郵件共得到N個TOKEN 串,t1,t2…….tn,hashtable_probability中對應的值為 P1 ,P2 ,……PN ,P(A|t1 ,t2, t3……tn) 表示在郵件中同時出現多個TOKEN串t1,t2……tn時,該郵件為垃圾郵件的機率。
由複合機率公式可得:
P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]
當 P(A|t1 ,t2, t3……tn) 超過預定閾值時,就可以判斷郵件為垃圾郵件。
當新郵件到達的時候,就通過貝葉斯過濾器分析,通過使用各個特徵來計算郵件是spam的機率。通過不斷的分析,過濾器也不斷地獲得自更新。比如,通過各種特徵判斷一個包含單詞AAA的郵件是spam,那么單詞AAA成為垃圾郵件特徵的機率就增加了。
這樣,貝葉斯過濾器就有了自適應能力,既能自動進行,也可以用戶手工操作,也就更能適應單個用戶的使用。而垃圾郵件傳送者要獲得這樣的適應能力就很難了,因此,更難逃避過濾器的過濾,但他們當然還是能夠將郵件偽裝成很普遍的正常郵件的樣子。除非垃圾郵件傳送者能去對某個人的過濾器進行判斷,比如,採用傳送回執的辦法來了解哪些郵件被用戶打開了等,這樣他們就可以適應過濾器了。
雖然貝葉斯過濾器還存在有評分過濾器的缺陷,但是它更最佳化了。實踐也證明,貝葉斯過濾器在客戶端和伺服器中效果是非常明顯的,優秀的貝葉斯過濾器能夠識別超過99.9%的垃圾郵件。大多數套用的反垃圾郵件產品都採用了這樣的技術。比如Foxmail中的貝葉斯過濾。

局限性和缺點

現行的很多採用過濾器技術的反垃圾郵件產品通常都採用了多種過濾器技術,以便使產品更為有效。過濾器通過他們的誤報和漏報來分等級。漏報就是指垃圾郵件繞過了過濾器的過濾。而誤報則是將正常的郵件判斷為垃圾郵件。過濾器系統應該是不存在漏報和誤報的,但這是理想情況。
一些基於過濾器原理的反垃圾郵件系統通常有下面的三種局限性:
·可能被繞過。垃圾郵件傳送者和他們用的傳送工具也不是靜態的,他們也會很快適應過濾器。比如,針對關鍵字列表,他們可以隨機更改一些單詞的拼寫,比如("強悍", "弓雖悍", "強-悍").Hash-buster(在每個郵件中產生不同的HASH)就是來繞過hash過濾器的。當前普遍使用的貝葉斯過濾器可以通過插入隨機單詞或句子來繞過。多數過濾器都最多只能在少數幾周才最有效,為了保持反垃圾郵件系統的實用性,過濾器規則就必須不斷更新,比如每天或者每周更新。
·誤報問題。最頭痛的問題就是將正常郵件判斷為垃圾郵件。比如,一封包含單詞sample的正常郵件可能因此被判斷為垃圾郵件。某些正常伺服器不幸包含在不負責任的組織發布的block list對某個網段進行禁止中,而不是因為傳送了垃圾郵件(xfocus的伺服器就是這樣的一個例子)。但是,如果要減少誤報問題,就可能造成嚴重的漏報問題了。
·過濾器複查。由於誤報問題的存在,通常被標記為垃圾郵件的訊息一般不會被立刻刪除,而是被放置到垃圾郵件箱裡面,以便日後檢查。不幸的是,這也意味著用戶仍然必須花費時間去察看垃圾郵件,即便僅僅只針對郵件標題。
更嚴重的問題是,人們依然認為過濾器能有效阻止垃圾郵件。實際上,垃圾郵件過濾器並不能有效阻止垃圾郵件,在多數案例中,垃圾郵件依然存在,依然穿過了網路,並且依然被傳播。除非用戶不介意存在被誤報的郵件,不介意依然會瀏覽垃圾郵件。過濾器可以幫助我們來組織並分隔郵件為垃圾郵件和正常郵件,但是過濾器技術並不能阻止垃圾郵件,實際上只是在"處理"垃圾郵件。
儘管過濾器技術存在局限,但是,這暫時是最為廣泛使用的反垃圾郵件技術。

驗證查詢

SMTP在設計的時候並沒有考慮到安全問題。在1973年,計算機安全還沒有什麼意義,那個時候能夠有一個可執行的郵件協定已經很了不起了。比如,RFC524描述將SMTP作為獨立協定的一些情況:
"雖然人們可以或者可能可以,以本文檔為基礎設計軟體,但請恰如其分地進行批註。請提出建議和問題。我堅信協定中依然存在問題,我希望讀者能夠閱讀RFC的時候能夠將它們都指出來。"
儘管SMTP的命令組已經發展了很長時間,但是人們還是以RFC524為基礎來執行SMTP的,而且還都假定問題(比如安全問題)都會在以後被解決。因此直到2004年,源自RFC524中的錯誤還是依然存在,這個時候SMTP已經變得非常廣泛而很難簡單被代替。垃圾郵件就是一個濫用SMTP協定的例子,多數垃圾郵件工具都可以偽造郵件頭,偽造傳送者,或者隱藏源頭。
垃圾郵件一般都是使用的偽造的傳送者地址,極少數的垃圾郵件才會用真實地址。垃圾郵件傳送者偽造郵件有下面的幾個原因:
*因為是違法的。在多個國家內,傳送垃圾郵件都是違法行為,通過偽造傳送地址,傳送者就可能避免被起訴。
*因為不受歡迎。垃圾郵件傳送者都明白垃圾郵件是不受歡迎的。通過偽造傳送者地址,就可能減少這種反應。
*受到ISP的限制。多數ISP都有防止垃圾郵件的服務條款,通過偽造傳送者地址,他們可以減少被ISP禁止網路訪問的可能性。
因此,如果我們能夠採用類似黑白名單一樣,能夠更智慧型地識別哪些是偽造的郵件,哪些是合法的郵件,那么就能從很大程度上解決垃圾郵件問題,驗證查詢技術正是基於這樣的出發點而產生的。以下還會解析一些主要的反垃圾郵件技術,比如Yahoo!、微軟、IBM等所倡導和主持的反垃圾郵件技術,把它們劃分在反向驗證查詢技術中並不是很恰當,但是,從某種角度來說,這些技術都是更複雜的驗證查詢。

反向查詢技術

從垃圾郵件的偽造角度來說,能夠解決郵件的偽造問題,就可以避免大量垃圾郵件的產生。為了限制偽造傳送者地址,一些系統要求驗證傳送者郵件地址,這些系統包括:
這些技術都比較相近。DNS是全球網際網路服務來處理IP位址和域名之間的轉化。在1986年,DNS擴展,並有了郵件交換紀錄(MX),當傳送郵件的時候,郵件伺服器通過查詢MX紀錄來對應接收者的域名。
類似於MX紀錄,反向查詢解決方案就是定義反向的MX紀錄("RMX"--RMX,"SPF"--SPF,"DMP"--DMP),用來判斷是否郵件的指定域名和IP位址是完全對應的。基本原因就是偽造郵件的地址是不會真實來自RMX地址,因此可以判斷是否偽造。

DKIM技術

DKIM(DomainKeys Identified Mail)技術基於雅虎的DomainKeys驗證技術和思科的Internet Identified Mail。
雅虎的DomainKeys利用公共密鑰密碼術驗證電子郵件發件人。傳送系統生成一個簽名並把簽名插入電子郵件標題,而接收系統利用DNS發布的一個公共密鑰驗證這個簽名。 思科的驗證技術也利用密碼術,但它把簽名和電子郵件訊息本身關聯。傳送伺服器為電子郵件訊息簽名並把簽名和用於生成簽名的公共密鑰插入一個新標題。而接收系統驗證這個用於為電子郵件訊息簽名的公共密鑰是授權給這個發件地址使用的。
DKIM將把這兩個驗證系統整合起來。它將以和DomainKeys相同的方式用DNS發布的公共密鑰驗證簽名,它也將利用思科的標題簽名技術確保一致性。
DKIM給郵件提供一種機制來同時驗證每個域郵件傳送者和訊息的完整性。一旦域能被驗證,就用來同郵件中的傳送者地址作比較檢測偽造。如果是偽造,那么可能是spam或者是欺騙郵件,就可以被丟棄。如果不是偽造的,並且域是已知的,可為其建立起良好的聲譽,並綁定到反垃圾郵件策略系統中,也可以在服務提供商之間共享,甚至直接提供給用戶。
對於知名公司來說,通常需要傳送各種業務郵件給客戶、銀行等,這樣,郵件的確認就顯得很重要。可以保護避免受到phishing攻擊。
DKIM技術標準提交給IETF,可以參考draft文檔
DomainKeys的實現過程
傳送伺服器經過兩步:
1、建立。域所有者需要產生一對公/私鑰用於標記所有發出的郵件(允許多對密鑰),公鑰在DNS中公開,私鑰在使用DomainKey的郵件伺服器上。
2、簽名。當每個用戶傳送郵件的時候,郵件系統自動使用存儲的私鑰來產生簽名。簽名作為郵件頭的一部分,然後郵件被傳遞到接收伺服器上。
接收伺服器通過三步來驗證簽名郵件:
1、準備。接收伺服器從郵件頭提取出簽名和傳送域(From:)然後從DNS獲得相應的公鑰。
2、驗證。接收伺服器用從DNS獲得的公鑰來驗證用私鑰產生的簽名。這保證郵件真實傳送並且沒有被修改過。
3、傳遞。接收伺服器使用本地策略來作出最後結果,如果域被驗證了,而且其他的反垃圾郵件測試也沒有決定,那么郵件就被傳遞到用戶的收件箱中,否則,郵件可以被拋棄、隔離等。

SenderID技術

2004年,Gates曾信誓旦旦地預言微軟能夠在未來消滅垃圾郵件,他所期望的就是Sender ID技術,但是,他則收回了他的預言。這也就是標準之爭,微軟希望IETF能夠採用Sender ID技術作為標準,並且得到了大量支持,比如Cisco, Comcast, IBM, Cisco,Port25,Sendmail,Symantec,VeriSign等,也包括後來又倒戈的AOL的支持,但是在開源社區,微軟一直沒有得到足夠的支持,IETF最終否決了微軟的提議。
SenderID技術主要包括兩個方面:傳送郵件方的支持和接收郵件方的支持。其中傳送郵件方的支持主要有三個部分:發信人需要修改郵件伺服器的DNS,增加特定的SPF記錄以表明其發信身份,比如"v=spf1 ip4:192.0.2.0/24 -all",表示使用SPF1版本,對於192.0.2.0/24這個網段是有效的;在可選情況下,發信人的MTA支持在其外發郵件的發信通信協定中增加SUBMITTER等擴展,並在其郵件中增加Resent-Sender、Resent-From、Sender等信頭。
接收郵件方的支持有:收信人的郵件伺服器必須採用SenderID檢查技術,對收到的郵件檢查PRA或MAILFROM,查詢發件者DNS的SPF紀錄,並以此驗證發件者身份。
因此,採用Sender ID技術,其整個過程為:
第一步,發件人撰寫郵件並傳送;
第二步,郵件轉移到接收郵件伺服器;
第三步,接收郵件伺服器通過SenderID技術對發件人所聲稱的身份進行檢查(該檢查通過DNS的特定查詢進行);
第四步,如果發現發信人所聲稱的身份和其發信地址相匹配,那么接收該郵件,否則對該郵件採取特定操作,比如直接拒收該郵件,或者作為垃圾郵件。
Sender ID技術實際上並不是根除垃圾郵件的法寶,它只是一個解決垃圾郵件傳送源的技術,從本質上來說,並不能鑑定一個郵件是否是垃圾郵件。比如,垃圾郵件傳送者可以通過註冊廉價的域名來傳送垃圾郵件,從技術的角度來看,一切都是符合規範的;還有,垃圾郵件傳送者還可以通過別人的郵件伺服器的漏洞轉發其垃圾郵件,這同樣是SenderID技術所不能解決的。

FairUCE技術

FairUCE(Fair use of Unsolicited Commercial Email)由IBM開發,該技術使用網路領域的內置身份管理工具,通過分析電子郵件域名過濾並封鎖垃圾郵件。
FairUCE把收到的郵件同其源頭的IP位址相連結--在電子郵件地址、電子郵件域和傳送郵件的計算機之間建立起一種聯繫,以確定電子郵件的合法性。比如採用SPF或者其他方法。如果,能夠找到關係,那么檢查接受方的黑白名單,以及域名名聲,以此決定對該郵件的操作,比如接收、拒絕等。
FairUCE還有一個功能,就是通過溯源找到垃圾郵件的傳送源頭,並且將那些傳遞過來的垃圾郵件再轉回給傳送源頭,以此來打擊垃圾郵件傳送者。這種做法利弊都有。好處就是能夠影響垃圾郵件傳送源頭的性能,壞處就是可能打擊倒正常的伺服器(比如被利用的)的正常工作,同時該功能又複製了大量垃圾流量。

指紋技術

郵件指紋”技術作為一種反垃圾郵件的新技術越來越受到人們的關注,這種新的技術給每封傳送的電子郵件信息增加擴張了的報頭信息。這種報頭中會包含一種獨特的簽名信息,簽名信息由相應的加密算法生成,這種算法基於電子郵件用戶身份的特有識別信息以及郵件的時間識別信息等。外部電子郵件器通常返回原始信息的傳輸指令,稱為“報頭信息”,其中包括新指紋的擴展信息和原始信息的一部分。這就允許伺服器檢測簽名信息以確定電子郵件是合法的用戶信息還是垃圾郵件製造者的偽造返回訊息。其目的是利用郵件指紋組織垃圾郵件風暴。當然這種新技術不可能解決所有問題,但可以保證採用這種技術的郵件伺服器免受垃圾郵件的淹沒。

局限性和缺點

這些解決方案都具有一定的可用性,但是也存在一些缺點:
**非主機或空的域名
反向查詢方法要求郵件來自已知的並且信任的郵件伺服器,而且對應合理IP位址(反向MX紀錄)。但是,多數的域名實際上並不同完全靜態的IP位址對應。通常情況下,個人和小公司也希望擁有自己的域名,但是,這並不能提供足夠的IP位址來滿足要求。DNS註冊主機,比如GoDaddy,向那些沒有主機或只有空域名的人提供免費郵件轉發服務。儘管這種郵件轉發服務只能管理接收的郵件,而不能提供郵件傳送服務。
反向查詢解決方案對這些沒有主機或者只有空域名的用戶造成一些問題:
·沒有反向MX記錄。這些用戶可以配置郵件客戶端就可以用自己註冊的域名能傳送郵件。但是,要反向查詢傳送者域名的IP位址就根本找不到。特別是對於那些移動的、撥號的和其他會頻繁改變自己IP位址的用戶。
·不能傳送郵件。要解決上面的問題,一個辦法就是通過ISP的伺服器來轉發郵件,這樣就可以提供一個反向MX紀錄,但是,只要傳送者的域名和ISP的域名不一樣的時候,ISP是不會允許轉發郵件的。
這兩種情況下,這些用戶都會被反向查詢系統攔截掉。
**合法域名
能驗證身份,並不一定就是合法的身份,比如:垃圾郵件傳送者可以通過註冊廉價的域名來傳送垃圾郵件,從技術的角度來看,一切都是符合規範的;還有,很多垃圾郵件傳送者可以通過別人的郵件伺服器漏洞進入合法郵件系統來轉發其垃圾郵件,這些問題對於驗證查詢來說還無法解決。

挑戰

垃圾郵件傳送者使用一些自動郵件傳送軟體每天可以產生數百萬的郵件。挑戰的技術通過延緩郵件處理過程,將可以阻礙大量郵件傳送者。那些只傳送少量郵件的正常用戶不會受到明顯的影響。但是,挑戰的技術只在很少人使用的情況下獲得了成功。如果在更普及的情況下,可能人們更關心的是是否會影響到郵件傳遞而不是會阻礙垃圾郵件。
這裡介紹兩種主要的挑戰形式:挑戰-回響,和 計算性挑戰(challenge-response and proposed computational challenges)

挑戰-回響

挑戰-回響(Challenge-Response:CR)系統保留著許可傳送者的列表。一個新的郵件傳送者傳送的郵件將被臨時保留下來而不立即被傳遞。然後向這個郵件傳送者返回一封包含挑戰的郵件(挑戰可以是連線URL或者是要求回復)。當完成挑戰後,新的傳送者則被加入到許可傳送者列表中。對於那些使用假郵件地址的垃圾郵件來說,它們不可能接收到挑戰,而如果使用真實郵件地址的話,又不可能回復所有的挑戰。但是,CR系統還是有許多局限性:
CR死鎖。假如Alice告訴Bill要給朋友Charlie傳送郵件。Bill傳送一個郵件給Charlie,Charlie的CR系統臨時中斷郵件並傳送給Bill一個挑戰。但是Bill的CR系統又會中斷Charlie這裡傳送出來的挑戰郵件,並傳送自己的挑戰。因此,結果就是,用戶都沒有接收到挑戰,而且用戶也無法回覆郵件。而且用戶也無法知道,在挑戰過程中發生了問題。因此,如果雙方都使用CR系統的話,他們就可能根本無法進行溝通。
自動系統問題。郵件列表或者那些自動系統,比如一些網站的"傳送給朋友……"功能,就不可能回應挑戰。
解釋挑戰。許多CR系統都執行解釋性挑戰。這些複雜的CR系統包含了字元識別和參數匹配,但是即便如此,還是能夠進行自動化操作。比如,Yahoo的CR系統在創建新郵件賬號的時候,對於那些有簡單智慧型字元分析的系統是存在漏洞的。Hushmail的郵件CR系統要求從藍背景圖片中找出指定的圖形(分析背景,找出圖形,提交坐標,這是可能的)
這些在市場宣傳神化中強調了兩點:1、人們必須得提供挑戰,2、這些問題都非常複雜而不太可能自動化操作。但是實際上,多數的垃圾郵件傳送者完全不理睬了這些CR系統,因為他們主要是擔心沒有大量的接收者,而不是擔心挑戰太複雜。許多垃圾郵件傳送者也使用有效的郵件地址。當CR系統會干擾垃圾郵件的時候,那些傳送者也會找出自動化搞定這些挑戰的辦法的。

計算性挑戰

也提出了一些計算性挑戰方案Computational Challenge (CC),如,通過增加傳送郵件的"費用"。多數CC系統使用複雜的算法來有意拖延時間。對於單個用戶來說,這種拖延很難被察覺,但是對於傳送大量郵件的垃圾郵件傳送者來說,這就意味著要花費很多時間了。CC系統的實例,如Hash Cash (http://www. cypherspace .org/adam/hashcash/)。但是,即便如此,CC系統還是會影響快速通訊而不僅僅影響垃圾郵件。這些局限包括:
·不平等影響。計算性挑戰是以CPU、記憶體和網路為基礎的,比如,在1Ghz計算機上挑戰可能花費10秒,但是在500Mhz上就需要花費20秒了。
·郵件列表。許多郵件列表都有數千,甚至數百萬的接受者。比如BugTraq,就可能會被看作垃圾郵件了。CC系統來處理郵件列表是不現實的。如果垃圾郵件傳送有辦法通過合法的郵件列表來繞過挑戰,那么他們也就有辦法繞過其他的挑戰了。
·機器人程式。Sobig或者其他象垃圾郵件一樣的病毒,能讓垃圾郵件傳送者控制大量的機器。這就讓他們能夠用大量的系統來均衡"費用"了。
·合法的機器人程式。垃圾郵件傳送者傳送垃圾郵件是因為會給他們帶來收入。如果這些人聯合起來,就可能提供大量的系統來分擔"費用",這完全是合法的,而且不需要通過病毒了。
當前,計算性挑戰還沒有廣泛套用,因為這種技術還不能解決spam問題,反而可能幹擾正常用戶。

密碼術

提出了一些採用密碼技術來驗證郵件傳送者的方案。從本質上來說,這些系統採用證書方式來提供證明。沒有適當的證書,偽造的郵件就很容易被識別出來,下面就是一些研究中的密碼解決辦法:
郵件協定(SMTP)不能直接支持加密驗證。研究中的解決方案擴展了SMTP(比如S/MIME,PGP/MIME和AMTP),還有一些其他的則打算代替的郵件體系,比如MTP。有趣的是,MTP的作者說到:"SMTP已經有20多年歷史了,然而近代的一些需求則在過去5到10年內發展起來。許多擴展都是針對SMTP的語句和語義,純粹的SMTP不能滿足這些需求,如果不改變SMTP的語句,是很難有所突破的。"但是,很多的擴展的SMTP實例恰恰表明了SMTP的可變性,而不是不變性,完全創造一個新的郵件傳輸協定並不是必須的。
在採用證書的時候,比如X.509或TLS,某些證書管理機構必須得可用,但是,如果證書存儲在DNS,那么私鑰必須得在驗證的時候可用。(換句話說,如果垃圾郵件傳送者可以訪問這些私鑰,那么他們就可以產生有效的公鑰)。另一方面,也要用到主要的證書管理機構(CA),但是,郵件是一種分散式系統,沒有人希望所有的郵件都由單獨的CA來控制。一些解決辦法因此允許多個CA系統,比如,X.509就會確定可用的CA伺服器。這種擴展性也導致垃圾郵件傳送者也可以運行著私有的CA伺服器。
如果沒有證書管理機構,就需要其他的途徑在傳送者和接收者之間來分發密鑰。比如,PGP,就可以預先共享公鑰。在未連線網路或者比較封閉的群組中,這種辦法是可行的,但是在大量個體使用的時候,就不是太適合,特別是對於需要建立新的聯繫的情況下。從本質上來說,預先共享密鑰有些類似白名單的過濾器:只有彼此知道的人才能傳送郵件。
不幸的是,這些加密解決方案還不能阻止垃圾郵件,比如,假設其中的一種加密方案廣泛被接受了。這些辦法都不能確認郵件地址是真實的,而只是可以確認傳送者有郵件的正確密鑰。缺點就是:
·濫用自動化工具。如果在廣大範圍內被套用,就需要有一種辦法為所有用戶產生證書或者密鑰(包括郵件伺服器端,郵件客戶端,依賴與相應的解決辦法)系統很可能通過一種自動化的方法來提供密鑰。可是,可以相信垃圾郵件傳送者也會濫用任何自動化系統,並且用來傳送經認證的垃圾郵件。
·可用性問題。這也有一些可用性的爭論。比如,如果CA伺服器不可用怎么辦?郵件被掛起?退票?還是依然可用?垃圾郵件傳送者對一半以上的提供黑名單網站進行了拒絕服務攻擊,並導致這些網站都無法訪問。顯然,這些垃圾郵件傳送者想阻止別人更新黑名單。對於單一的CA伺服器,很顯然也無法避免這樣的命運。

Data爆發護盾

傳統的病毒掃描程式是基於病毒特徵碼的。要創建這樣的特徵碼,廠商必須至少要有一個被病毒實驗室分析過的某些惡意軟體的樣本的副本,直到有新的病毒特徵碼可用,但是這個過程至少需要花上幾個小時,或幾天的時間。在這種情況下,家用計算機和企業網路都得不到防護。
越來越多的惡意攻擊都是利用了這個時間差。反垃圾爆發戶盾是德國防毒軟體G Data的一個特殊防護病毒郵件技術。G Data通過提供每小時的病毒庫更新,已經減少了惡意攻擊的反應時間,但這種病毒特徵碼的防護水平仍有待提高。所以,傳統的防護是需要通過即刻免受最新威脅的方法來補充的,即可以提供這種補充。
對一個新的惡意軟體樣本的分析,以及一種對抗手段(特徵碼)的產生,儘管防病毒安全廠商全力以赴,仍需要一段可觀的時間,這就是所謂的“反應速度”。爆發護盾技術的融合,則使傳統的引擎掃描技術的缺陷,得到了極大的彌補。
在病毒爆發期間的前幾秒鐘填補雙掃描引擎的不足。反垃圾郵件爆發護盾(OUTBREAKSHIELD)技術的主要成就是能夠提早發現通過大量電子郵件和垃圾郵件分發的惡意軟體。平均而言,在檢測到病毒爆發90秒後,所有其他的電子郵件都被阻止。反垃圾郵件爆發護盾(OUTBREAKSHIELD)對未知病毒實現了95%的檢測率。這遠遠高於通過其他主動防禦方法達到的檢測率。G Data反垃圾郵件爆發護盾(OUTBREAKSHIELD)的錯誤率只有0.00004%。

預警與處置系統

該系統由中國網際網路協會反垃圾信息中心和中國反垃圾郵件聯盟共同開發。主要針對反垃圾郵件工作中的問題,如:獲取垃圾郵件態勢信息滯緩、治理垃圾郵件處理聯動機制不及時、缺乏可靠的電子郵件IP信譽評價體系等,確定垃圾郵件預警與處置機制,並進行系統研發。
在垃圾郵件預警與處置系統的研製過程中,廣泛徵集國內優秀的大型信箱服務提供商提出的建議;同時,中國網際網路協會反垃圾信息中心也積極與廣大自建伺服器企業,進行溝通,了解需求,根據企業在工作中所遇到的問題,立足於信箱服務提供商和自建伺服器企業的角度,從實際出發,多次論證,不斷最佳化,最終建成垃圾郵件預警與處置系統。
該系統可以幫助廣大信箱服務提供商,實時監測其用戶傳送垃圾郵件行為,提供處理依據,而不影響同IP其他用戶傳送行為;提高其電子郵件服務質量。同時,可以幫助自建伺服器的大中小企業用戶,監測IP信譽實時動態,改善IP信譽,提高郵件通暢率等。
中國網際網路協會反垃圾信息中心主任曾明發表示:反垃圾信息中心一直以來遵循“疏堵結合、破立並舉”的理念,圍繞支撐行政監管、推動立法研究、實施行業自律、開展普教宣傳、技術手段建設、加強國際合作六個方面開展反垃圾信息工作,旨在幫助廣大網民節約時間、減少騷擾;為政府提供準確的信息決策依據、有力的監管支撐;幫助企業用戶最佳化疏堵策略、縮減運營成本。而垃圾郵件預警與處置系統正是以解決現行反垃圾郵件中出現的問題為基礎,為業界提供更好的服務。

總結

上面介紹了一些反垃圾郵件的技術,其實,很多反垃圾郵件方案所採用的都不會只是一種技術,而是多種多類技術的綜合體。
垃圾郵件的危害已經深入人心,反垃圾郵件也取得越來越多的成績,比如,Scott Richter向微軟賠款700萬。不少國家也在為反垃圾郵件進行立法,以便能夠得到法律上的支持。
但從技術上來說,這跟反攻擊一樣,是一個正反雙方的博弈過程,一種新的反垃圾郵件技術必然會出現一種對應得垃圾郵件技術,況且,任何一種技術,還沒有辦法去解決所有問題,技術的發展也將延續下去。

相關詞條

熱門詞條

聯絡我們