誰把垃圾郵件丟到你家?從技術漏洞談spam mail

記者/蘇伯方

每個人一登入網頁郵件或者收取信件之後的第一個動作是把垃圾郵件都刪除,這幾乎成了習慣動作。最近大型入口網站的信箱通常都會設立一個廣告郵件夾,透過一些黑白名單、人工智慧判斷來過濾進入每一個使用者信箱的郵件,有的將大量寄發的信件或者經過判別以後,懷疑是廣告郵件的搬移到廣告郵件夾,而有的入口網站則直接刪除。微軟的Office 2003也強調新增了垃圾郵件的比對功能,能有效的防制垃圾郵件。垃圾郵件已經成為資訊產業的頭號大敵,而知己知彼,百戰百勝,現在我們就來瞭解spam mail是怎麼產生的。

SPAM原本是美國的Hormel Food Corporation豬肉罐頭註冊商標,被衍伸為到處都是的沒意義垃圾信件的意思。到處充滿沒意義的垃圾信件的原因是什麼呢?這就要從E-mail的基本架構談起:

電子郵件傳輸過程中主要可以分為MUA(Mail User Angent)、MTA(Mail Transfer Angent)以及MTS(Mail Transfer System)。MUA指的是你常用的Outlook Express這一類軟體,最常出現的問題就是有些軟體如OE有太多漏洞,經常被拿來入侵使用者的電腦。或者偽裝成大企業的網頁來欺騙一些不知情使用者的資訊。

而MTA就是傳輸郵件的服務,例如佔有率最高的sendmail、微軟的Exchange等,負責把郵件內容傳遞到收件者位址的電腦中。然後再由MTS保留信件在系統目錄中,直到收件者的MUA來把信領走。

這一切是不是跟郵局的結構很像?你請秘書送出一封信,郵局會替你轉送到對應的地址,然後收件者的秘書再去把信件領走,完成寄送的動作。問題就出在,你在現實生活中要寄送一封信件需要至少五塊錢的郵票,要寄出五百萬封信就要2,500萬元,付出成本太大,沒人會幹那麼傻的事情。而E-mail的轉送動作跟郵局一樣,不會檢查送件者的身份,也就是說負責傳送郵件的SMTP(Simple Mail Transfer Protocol)不會檢查想要傳輸郵件的人所填資料的正確性,你可以偽裝任何一個人寄送信件給所有你所知道的E-mail位址。這樣的設計會導致很多的問題,例如先前提到的無法確定寄件者、匿名使用者大量寄出信件等問題。

目前在Server端所能夠做的只有盡快升級到沒有漏洞的MTA版本,如sendmail 8.9以上、DNS反查、限定轉信機制的權限,並且加裝過濾器來擋掉垃圾信件。但是道高一尺,魔高一丈,透過密件副本(BCC)、偽裝本機網域都可以避開這一些機制。而這一些方法,你都可以買到便宜的發信程式,甚至上google查一下就可以找到許多教學文件,自己寫個程式來發送。

目前系統管理者應該採用需要認證的安全寄信機制,如SSMTP,並且呼籲使用者轉成使用該方式。在下一代的電子郵件協定還沒有完成之前,盡快安裝過濾器以過濾垃圾郵件。在下一代的電子郵件協定完成之前(如果真的可以完成的話),我們還是要過著一上網就先砍掉五封信的生活。

分享此新聞: