首頁>>>技術>>>email

垃圾郵件技術分析

2004/03/12

垃圾郵件的由來

  去年8月,本報與雅虎中國網(wǎng)站針對垃圾郵件問題進行了一次聯(lián)合調(diào)查,結(jié)果顯示,幾乎所有擁有電子郵箱的人都受到過垃圾郵件的困擾。曾幾何時,相對于“垃圾郵件(spam)這種稱謂,很多人認為“未經(jīng)許可的商業(yè)郵件(Unsolicited Commercial Email,UCE)”是一種更準確的說法。但隨著時間的推移,垃圾郵件的發(fā)送技術被黑客攻擊程序和病毒程序(例如最近流行的MyDoom)所利用,為了施行攻擊甚至僅僅為了浪費網(wǎng)絡帶寬資源而發(fā)送的垃圾郵件大量出現(xiàn)。因此,目前業(yè)界更傾向于使用“未經(jīng)許可的大宗郵件(Unsolicited Bulk Email,UBE)”這種稱謂。在下文中,我們統(tǒng)一使用“垃圾郵件”來代表UBE、UCE,總之,這些是郵件中不請自來,并且多半是不懷好意的不速之客。

  垃圾郵件源于電子郵件營銷,后者是一種許可營銷,是現(xiàn)代營銷的重要手段之一。通常,電子郵件營銷是在征得客戶同意的前提下,向客戶發(fā)送包含產(chǎn)品信息、促銷信息的電子郵件。這種營銷方式的主要成本在于收集和整理包含目標客戶電子郵件地址的數(shù)據(jù)庫。電子郵件營銷具有針對性強、反饋率高的優(yōu)點,因此得到了廣泛的應用。然而,如果免去了積累數(shù)據(jù)庫的時間和費用,電子郵件營銷的成本將遠遠低于其他各種營銷形式,想省去這部分成本的商家則大有人在。由此,收集、銷售各種電子郵件地址數(shù)據(jù)庫以及大規(guī)模發(fā)送電子郵件都成了新的商機。為了提高發(fā)送效率,群發(fā)工具也日趨普及,而對SMTP協(xié)議的缺陷加以利用,則最終導致了垃圾郵件泛濫成災。

  垃圾郵件問題遠不只是技術問題,但是垃圾郵件的產(chǎn)生和防范都有其必然的技術根源,只有了解垃圾郵件產(chǎn)生過程中的技術,才能有效地阻止垃圾郵件的傳播。

保護好您的郵件地址

  用戶在收到垃圾郵件的時候,除了感到煩惱和無奈之外,往往覺得奇怪—對方是怎樣得到自己的郵箱地址的?垃圾郵件發(fā)送者獲取郵箱地址的最常見方式是網(wǎng)上遍歷收集,使用俗稱“機器人(robot)”的自動搜索程序遍歷Web,并收集其中的電子郵件地址。有時,垃圾郵件發(fā)送者還會對收集來的地址數(shù)據(jù)庫通過專用工具進行驗證,將無效地址排除。收集來的郵件地址很可能會被轉(zhuǎn)售,而某些不負責任的論壇或網(wǎng)站也會將注冊用戶的郵件地址出售。除此之外,有的垃圾郵件發(fā)送工具還會使用字典窮舉的方法對MTA進行大量郵件發(fā)送嘗試,其中,少數(shù)成功的嘗試會導致一些用戶收到垃圾郵件,而其余的則全部作為無效退信在一定時間內(nèi)存放在MTA的隊列中,耗費大量系統(tǒng)資源。


  出于為反垃圾郵件產(chǎn)品評測積累樣本的目的,記者于2003年12月在“計算機世界網(wǎng)”上張貼了一個誘餌信箱,令人吃驚的是,僅僅在誘餌信箱發(fā)布后不到5分鐘,第一封垃圾郵件就不期而至。自從該誘餌信箱發(fā)布以來,其垃圾郵件的數(shù)量增長情況如上圖所示。

  普通用戶為了避免垃圾郵件的困擾,應盡量避免在網(wǎng)頁上公開自己的E-mail地址,在進行論壇或網(wǎng)站成員注冊時也應該盡量謹慎。如果懷疑哪個網(wǎng)頁泄漏了自己的E-mail地址,可以通過google等搜索引擎對自己的地址進行檢索,并采取相應的措施。

  對此,郵件系統(tǒng)的管理員應該盡量確保自己的前端MTA主機只接收本地存在的目的E-mail地址,限制來自同一IP或子網(wǎng)的并發(fā)連接數(shù)。如今Postfix等多數(shù)主流MTA都有這方面的功能。此外,禁用SMTP協(xié)議中有可能泄漏本地用戶名列表的EXPN命令也是十分必要的。

  垃圾郵件防范技術

  垃圾郵件發(fā)送技術的演化


  有了郵件地址和郵件內(nèi)容,垃圾郵件發(fā)送者要做的就是在盡量短的時間內(nèi)將垃圾郵件發(fā)送出去。他們通常使用專用的群發(fā)工具或郵件列表系統(tǒng)來達到目的。

  在早些時候,Sendmail和IMS等多數(shù)MTA默認設置是開放轉(zhuǎn)發(fā)(Open Relay)的。任何用戶都可以通過Internet上大量存在的開放轉(zhuǎn)發(fā)MTA主機來發(fā)送郵件。于是垃圾郵件制造者會首先查找一定數(shù)量的響應速度快的開放轉(zhuǎn)發(fā)的MTA主機,通過它們來完成收件人服務器名字解析及發(fā)送的工作。后來,為了避免成為垃圾郵件的中轉(zhuǎn)站,各種主流MTA程序的默認設置都改為默認禁止開放轉(zhuǎn)發(fā),而且,越來越多的開放轉(zhuǎn)發(fā)的服務器都被列入各種黑名單過濾,Internet上可用的開放轉(zhuǎn)發(fā)的主機正不斷減少。因此,垃圾郵件制造者開始廣泛使用本身具有收件服務器名字解析功能的群發(fā)工具和郵件列表系統(tǒng),這些發(fā)送者通常使用家庭寬帶進行發(fā)送,其IP地址也不斷變化,為追蹤和屏蔽制造了障礙。

  垃圾郵件的發(fā)送環(huán)節(jié)與對抗垃圾郵件的過濾環(huán)節(jié)具有直接的對應關系,在這個環(huán)節(jié)上可用的技術很多,用戶應當從自身的實際情況出發(fā)進行遴選和應用。

SMTP用戶認證

  一個最常見但十分有效的方法是在MTA上對來自本地網(wǎng)絡以外的Internet的發(fā)信用戶進行SMTP認證,僅允許通過認證的用戶進行遠程轉(zhuǎn)發(fā)。這既能夠有效避免MTA主機為垃圾郵件發(fā)送者所利用,又為出差在外或在家工作的員工提供了便利。如果不采取SMTP認證,在不犧牲安全的前提下,設立面向Internet的Web郵件網(wǎng)關也是可行的。

  此外,如果SMTP服務(MTA)和POP3服務集成在同一主機上,在用戶試圖發(fā)信之前對其進行POP3訪問驗證(POP before SMTP)就是一種更加安全的方法,但在應用的時候要考慮到當前支持這種認證方式的郵件客戶端程序還不多。

逆向名字解析

  無論哪一種認證,其目的是避免MTA被垃圾郵件發(fā)送者所利用,對于發(fā)送到本地的垃圾郵件仍然無可奈何。要解決這個問題,最簡單有效的方法是對發(fā)送者的IP地址進行逆向名字解析。通過DNS查詢來判斷發(fā)送者的IP與其聲稱的名字是否一致,例如其聲稱的名字為mx.yahoo.com,而其連接地址為20.200.200.200,與其DNS記錄不符,則予以拒收。這種方法可以有效過濾掉來自動態(tài)IP的垃圾郵件,對于某些使用動態(tài)域名的發(fā)送者,也可以根據(jù)實際情況進行屏蔽。

  但這種方法對于借助Open Relay的垃圾郵件依然無效。對此,更進一步的技術是假設合法的用戶只使用本域具有合法Internet名稱的MTA主機發(fā)送E-Mail。例如,若發(fā)件人的郵件地址為somebody@google.com,則其使用的MTA的Internet名字應具有google.com的后綴。這種限制并不符合SMTP協(xié)議,但在多數(shù)情況下是切實有效的。

  需要指出的是,逆向名字解析需要進行大量的DNS查詢,從而耗用大量的系統(tǒng)資源和網(wǎng)絡資源,為了提高性能和避免出現(xiàn)由于DNS服務中止或查詢超時,該方法并未被普遍采用。

實時黑名單過濾

  以上的防范措施對使用自身合法域名的垃圾郵件仍然無效。對此,最有效的方法可能就是使用黑名單服務了。黑名單服務是基于用戶投訴和采樣積累而建立的、由域名或IP組成的數(shù)據(jù)庫,最著名的是RBL、DCC和Razor等,這些數(shù)據(jù)庫保存了頻繁發(fā)送垃圾郵件的主機名字或IP地址,供MTA進行實時查詢以決定是否拒收相應的郵件。遺憾的是,目前各種黑名單數(shù)據(jù)庫都具有很強的區(qū)域歧視性,例如,北美的RBL和DCC包含了我國大量的主機名字和IP地址,其中有些是早期的Open Relay造成的,有些則是由于誤報造成的。但這些遲遲得不到糾正,在一定程度上阻礙了我國與北美地區(qū)的郵件聯(lián)系,也妨礙了我國的用戶使用這些黑名單服務。在我國,黑名單服務仍處在起步階段,可用服務器較少,其有效性也沒有得到充分驗證。

內(nèi)容過濾

  即使使用了前面諸多環(huán)節(jié)中的技術,仍然會有相當一部分垃圾郵件漏網(wǎng)。對此情況,目前最有效的方法是基于郵件標題或正文的內(nèi)容過濾。其中,比較簡單的方法是結(jié)合內(nèi)容掃描引擎,根據(jù)垃圾郵件的常用標題語,垃圾郵件受益者的姓名、電話號碼、Web地址等信息進行過濾。更加復雜但同時更具智能性的方法是基于貝葉斯概率理論的統(tǒng)計方法所進行的內(nèi)容過濾,該算法最早由Paul Graham提出(http://www.paulgraham.com/spam.html),并使用他自己設計的Arc語言實現(xiàn)。這種方法的理論基礎是通過對大量垃圾郵件中常見關鍵詞進行分析后得出其分布的統(tǒng)計模型,并由此推算目標郵件是垃圾郵件的可能性。這種方法具有一定的自適應、自學習能力,目前已經(jīng)得到了廣泛的應用。最有名的垃圾郵件內(nèi)容過濾是Spamassassin,它使用Perl語言實現(xiàn),集成了以上兩種過濾方法,可以與當前各種主流的MTA集成使用。令人遺憾的是,從記者的使用情況來看,Spamassassin的中文關鍵詞學習能力非常差,很難達到在我國實際應用的要求。

  需要指出的是,內(nèi)容過濾是以上所有各種方法中耗費計算資源最多的,在郵件流量較大的場合,最好配合高性能服務器使用。

反垃圾郵件系統(tǒng)的建議配置

  正如前面一再提到的,進行了各種設置之后,雖然絕大多數(shù)垃圾郵件在劫難逃,但也給MTA系統(tǒng)帶來了沉重的負擔。由于以往多數(shù)MTA與用戶的POP3/IMAP 4服務器甚至群件系統(tǒng)/協(xié)同工作平臺安裝在同一臺機器上,在這種情況下,進行反垃圾郵件的設置勢必會影響系統(tǒng)的整體性能,并有可能進而影響用戶業(yè)務的實時性。因此,設置專門用來過濾垃圾郵件的前端MTA正在逐漸成為一種流行的選擇。目前市場上已經(jīng)出現(xiàn)了一些具有垃圾郵件過濾功能的產(chǎn)品,為了幫助用戶更有效地采購和實施這類產(chǎn)品,《計算機世界》網(wǎng)絡產(chǎn)品評測實驗室將在近期組織相關的橫向評測。

反垃圾郵件技術前景展望

電子郵件——僅存的端到端應用

  相對于Internet形成初期的完全對等的端到端網(wǎng)絡環(huán)境,如今的Internet已經(jīng)有了很大的不同,由于防火墻和代理服務器的限制,絕大多數(shù)應用都已經(jīng)不再進行端到端環(huán)境的假設。但由于SMTP協(xié)議的靈活性、普遍性和特殊性,電子郵件應用仍然保持了端到端的特點。在用戶看來,郵件收發(fā)雙方是對等的,是沒有中間限制的。電子郵件如今成為病毒和黑客的突破口是歷史的必然。

SMTP的先天缺陷

  然而,SMTP本身不具有反垃圾郵件的特點,它的名字本身(簡單郵件傳輸協(xié)議)也說明了這一點。在2001年4月發(fā)布的最新版本SMTP協(xié)議文檔RFC2821(http://www.faqs.org/rfcs/rfc2821.html)中,在第七節(jié)“安全性的考慮”部分明確指出“SMTP(從先前的版本)繼承的特性決定了它在有些場合是不安全的,它不能限制郵件發(fā)送者的某些欺騙行為……”,它進而指出“郵件的安全應該僅僅依賴于基于郵件正文的端到端方案,如通過PGP或S/MIME對郵件進行數(shù)字簽名和加密”。我們必須承認,這種說法是完全符合Internet傳統(tǒng)的,即在傳輸層無法解決的問題,交給應用層來解決。

  然而,IETF并沒有表現(xiàn)出要盡快修改SMTP的意向,關于垃圾郵件控制的IETF官方RFC文本是RFC2505——“對于SMTP MTA的反垃圾郵件推薦設置”,僅僅進行了一些簡單的外圍技術的說明。只是最近由IRTF(互聯(lián)網(wǎng)研究工程組)成立了一個“防垃圾郵件研究小組”,開始對相關的技術進行研究。

可能的解決方法

  與之形成鮮明對照的是,業(yè)界提出了各種解決方案。其中,試圖替代SMTP的協(xié)議就有很多,例如AMTP(http://amtp.bw.org/)等提案都在設計上就考慮到了安全與垃圾郵件等問題。然而我們必須認識到,完全改變SMTP業(yè)已形成的龐大傳輸網(wǎng)絡,試圖另起爐灶是脫離實際的。最有效、最現(xiàn)實的解決辦法必須與現(xiàn)有的SMTP協(xié)議兼容,并具備在SMTP網(wǎng)絡中逐步推廣,并在推廣過程中對用戶透明的能力。

  另有些方法是從提高垃圾郵件發(fā)送成本的角度來考慮,如收取費用或提高MTA的響應時間,但這些方法不可避免地要影響到正常的郵件通信。記者認為,現(xiàn)有的解決方法中,最有可能實施的是與DNS系統(tǒng)結(jié)合的解決方案,這是由電子郵件與DNS密不可分的先天聯(lián)系所決定的,其中有些方法是通過在DNS的目錄系統(tǒng)中加入與反垃圾郵件相關的條目來對郵件路由進行限制。另外,Bill Gates最近在RSA大會上所提的方案則是一方面強制對入站郵件進行DNS驗證,另一方面是對MTA改造,加入類似“來電顯示(Caller ID)”的限制機制。

  值得欣慰的是,垃圾郵件問題已經(jīng)得到了整個社會的關注。我們相信,隨著對抗垃圾郵件的技術和非技術措施不斷出臺,并在業(yè)界形成合力,垃圾郵件的問題終將得到有效的遏制。(反垃圾郵件解決方案可參見同期本報“應用與方案”版C8~C11。)

SMTP協(xié)議與E-mail的發(fā)送流程

  SMTP即簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol)是一種TCP協(xié)議,其端口號為25,它用于電子郵件的傳送。SMTP在收到用戶發(fā)來的郵件后,根據(jù)本地定義的規(guī)則和DNS名字解析的結(jié)果(需要將收件人E-mail地址中的域名解析為IP地址,通常得到其域名的MX紀錄)對郵件進行轉(zhuǎn)發(fā)。在到達POP3或IMAP郵局之前,可能中間會經(jīng)過一個或多個SMTP服務器轉(zhuǎn)發(fā),由于SMTP服務器負責郵件的路由與轉(zhuǎn)發(fā),也被稱作郵件傳輸代理(MTA)。

  MTA通常都和特定的域名綁定,它以此來區(qū)分入站郵件是本域郵件還是遠程郵件。如果是本域郵件,則轉(zhuǎn)發(fā)給本域的POP3或IMAP4郵局供用戶收。蝗绻沁h程郵件,則需要經(jīng)過收件人所屬域的名字解析獲得其對應的MTA IP地址,然后進行遠程轉(zhuǎn)發(fā)。如果MTA的默認設置是不加限制地允許來自任意IP地址的用戶進行遠程轉(zhuǎn)發(fā),則這個MTA是開放轉(zhuǎn)發(fā)(Open Relay)的。

E-mail的工作流程原理如下圖所示。


計算機世界網(wǎng)(www.ccw.com.cn)


相關鏈接:
從“指紋”中找出垃圾郵件 2004-03-12
郵件災禍 2004-03-12
聯(lián)通亞信啟動基于CDMA1X電子郵件系統(tǒng)項目 2004-02-05
Good線電郵軟件趕超BlackBerry 2004-02-05
電子郵件將成為國內(nèi)未來通信類移動增值服務的主要方式 2004-01-31

分類信息:     文摘   技術_email_新聞   技術_email_文摘