2018年10月31日 星期三

Mail Server 的 Anti-Spam 垃圾郵件機制知多少?

郵件伺服器有哪些反垃圾郵件機制?

電子郵件如何影響我們的生活?

從互聯網30多年前開始,電子郵件始終是組成互聯網成份中重要的一環。現在,同學們在學校/職場中與同學/同事之間可能就是用Line微信、視訊等等很有效率的聯絡方式。可能都沒有參與到公司之間的聯繫主要是靠電子郵件的那個時代。

小編剛好參與到那個世代。小編待的產業從20幾年前開始到現在,一直很倚重電子郵件的互通有無。即使先前提到的各種通訊機私越來越普遍,電子郵件還是無法被取代,甚至在世界五百強裡面也是這樣。怎麼說呢? 看看微軟的Exchange Server不斷出新版,郵件部份還是其中堅份子就可知一二。

幾十年來,互聯網慢慢地從方方面面融入人們的生活裡面。科技對我們幫助很大,同樣地,也帶來很多不好的部分,例如個人信息的外洩。電子郵件也是一樣。當我們發一封電子郵件,幾秒以後,地球的另一端就收到了,效率非常高。反之,電子郵件的便利以及效率也被惡意廣告商過度利用,也就是被拿來大發垃圾郵件。

電子郵件被濫用的後果?

對於電子郵件被濫用,最淺而易見的例子就是我們幾乎每人一個的hotmail.com、gmail.com等等的郵件信箱。我們常常每隔幾天以後登入信箱的收信匣,會看到數十封甚至上百封的廣告信。大多數跟我們沒有任何關係,不是百貨公司edm,也不是會員信。幾乎都跟色情、賭博等等不好的東西相關。從個人的郵件信箱就已經如此,那可以想像郵件伺服器每天要處理的垃圾郵件數量可能是幾千封、幾萬封甚至更多。輕則浪費伺服器的計算資源,重則癱瘓互聯網的聯通性。

對郵件伺服器以及互聯網來說,垃圾郵件從任何角度來看都是一種沉重的負擔。30幾年前開發者的美意被濫用以後,20多年前開始,業者慢慢開始反思,並開始重視反垃圾郵件機制的佈局。

一般來說,垃圾郵件的濫發,分為從外網發進來還有從內網發出去的。如何防堵? 簡單來說,外網的就是擋住外來的垃圾郵件,這部分就是分析外來垃圾郵件的屬性加以阻擋,例如: 主旨還有內文的內容、郵件來源的IP位址。內網的就是不被當做跳板對外狂發垃圾郵件,這部分就是防止公司內部電腦受到感染還有抓到兇手之後的後續阻擋手段。

不論是濫收或濫發郵件,達到一定量的時候,必定會造成郵件伺服器或是公司網路被癱瘓,造成公司權益以及經濟上的損失。另外一方面,公司合作夥伴或是客戶的郵件伺服器可能會因為公司發出的郵件都被拒收、或被放入垃圾郵件黑名單,這類狀況造成溝通不良以及誤會而錯失良機以及影響公司聲譽,最後得不償失。

小編不才,分享一下有哪些反垃圾郵件機制。下面這些點都是從上述的兩種狀況衍生出來的機制或手段:

郵件帳戶密碼複雜度

以小編過去幾十年在職場工作的經驗來說,10個同事裡面有7到8個同事在登入郵件信箱使用的密碼都是簡單的純數字或純英文字母,由其組合都是4到6個易記字元組合。這種狀況造就了每隔一段時間,就會有某某同事的電子郵件帳號被拿來盜寄郵件,後續的蝴蝶效應有兩個: 從公司寄出的郵件都被收件方退信、退信通知 (DSN) 塞滿所有帳戶的郵箱。要處理這類狀況需要好幾個小時,造成公司每天開門做生意的權益受損。
強烈建議,說服老闆,強制每個人的密碼使用郵件伺服器內建的密碼產生器,產生出來的密碼至少8到12個字元,混合英文大小寫、數字、符號。例如EVO Mail Server上面就有密碼產生器:

登入郵件帳戶失敗次數的上限

一般垃圾郵件源除了到處挖可以用的IP來濫發垃圾郵件之外,也會到處去登入互聯網上面大大小小郵件伺服器,碰碰運氣看看是否可以登入,如果成功了,則可以把這個郵件伺服器當做跳板隨意的到處發垃圾郵件直到被發現。有些郵件伺服器比較簡單,隨便這類垃圾郵件軟體登入幾次也沒有關係,直到登入帳號密碼矇對了。比較有概念的郵件伺服器軟體則會建立一個機制: 若是連線方在一段時間裡密登入失敗幾次,郵件伺服器將該連線IP直接丟到拒絕連線的黑名單裡面。
有一種特例是如果郵件伺服器本身被感染了,會從自身IP做登入錯誤超過預設次數,郵件伺服器若將自身IP方入黑名單的話,會造成完全無法收發。此時,要先清理郵件伺服器上面的受感染狀況,然後把郵件伺服器自身IP從黑名單中移出。

用戶端憑證登入機制

用戶端憑證聽起來蠻抽象的。我們提一個簡單的例子: 銀行提款卡、登入網銀需要的USB大拇哥、還有大型企業主管登入系統時常常拿出來查看跳出亂數的卡或打火機大小的亂數產生器機私等等。在郵件方面,目前支援用戶端憑證登入的郵件伺服器並不多,例如: EVO Mail Server
通常這防止郵件帳戶被駭的安全度是最高的方式必須同時通過密碼以及用戶端憑證的認證。不過話說回來,小編是比較建議複雜的密碼或用戶端憑證皆可,這樣子認證相容度比較高。同時,支援的郵件客戶端軟體也是ㄧ個考量,目前支援的軟體其實不多,就是Mac OS X的Apple Mail、Opera、Thunderbird等等。

防毒軟體掃描郵件病毒機制

郵件伺服器的防毒跟一般系統防毒不太一樣。怎麼說呢? 一般掃毒軟體會鎖定郵件檔案然後去掃描、鎖定透過郵件專用連接埠進出的資料去掃描、鎖定郵件伺服器程式本身去掃描。但是在郵件伺服器上面,如果鎖住檔案的話,會造成郵件發送卡住無法動彈。同時,防毒軟體會發出一些有病毒的通知,或是郵件客戶端軟體會在寄信的時候出現錯誤。
因此,建議的方式是類似EVO Mail Server的方式,單純使用DOS命令列視窗下指令 (ecls.exe)去掃描進出的郵件本身即可。在防毒軟體的設定上,將郵件伺服器軟體所在的資料夾加入掃描例外清單、關閉對任何郵件相關連接埠 (IMAP、POP3、SMTP) 的即時偵測。其它的防毒掃描仍然可以在系統後端執行。

郵件伺服器灰名單機制

灰名單機制是防止垃圾郵件軟體發出郵件以後就不管是否有寄到,因為垃圾郵件通常是盲寄,不管結果的。我們發出一封郵件到對方的時候,對方的郵件伺服器會先退信,並告知有灰名單機制的存在,需要我們在幾分鐘之內再寄一次才會收。如果是垃圾郵件軟體的盲寄,就不會再寄一次。EVO Mail Server也提供灰名單功能。
這機制有好有壞。例如: Apple發出產品發表會的邀請給公司員工,這類的發表會通知都只會寄一次,不會配合灰名單機制再發送一次。這時候,可能公司員工就會漏收通知。一般這類灰名單都不會啟動。但是,要讓公司員工知道有這類的機制存在,如果有退信,不要緊張,看看是不是灰名單機制。如果是,要記得把郵件再寄一次。

與郵件伺服器連線的連線黑名單

承上面"登入郵件帳戶失敗次數的上限"的說明,除了猜密碼失敗的IP會被放入黑名單之外,基於資安理由,我們也可以手動加入特定IP,防止離職員工或是商業間諜嘗試做連線。
當然啦,必須要知道對方的IP或IP區段才可以做這類動作。這裡提供一個撇步。對於已經確定為永遠的黑名單IP位址,我們可以直接將這些IP放入Windows防火牆或是公司網路的硬體防火牆的黑名單。這個動作可以免除不必要的郵件伺服器連線。如果此類連線一下子幾百幾千的進來,就算是一種攻擊了。如果把它們屏除在防火牆外面,可以防止郵件伺服器因為應付這類攻擊造成的癱瘓。

非營利的國際黑名單組織

這類的國際黑名單組織通常會定期把專發垃圾郵件的IP收集起來形成一個清單。大型的郵件服務商都會參考這個黑名單。有名的黑名單組織有spamhaus.org或是dnsbl.info。另外,這些黑名單也都是有互通的。把其他更小黑名單組織的名單整合起來。如果自家的郵件伺服器因為濫發垃圾郵件被某個郵件服務商報給黑名單組織,互聯網上面的大大小小郵件伺服器對你發的郵件就會拒收。這個問題就很大條了。同樣地,如果我們的郵件伺服器參考這些黑名單組織提供的清單,也會拒絕來自清單中IP的電子郵件。
當然啦,例如Spamhaus有它自己的反垃圾郵件機制來決定誰會被放入黑名單。如果同事發來一封退信,裡面的退信原因是黑名單的話,首先找出公司內部哪個帳號或是哪台電腦在濫發垃圾郵件,解決濫發問題之後,查出被列入哪個黑名單? 然後到該網站去做黑名單除名動作。除名動作以前都是幾分鐘就可以解決的,但是現在一些黑名單組織為了賺錢,會延長除名的時間,如果等不了,可以支付USD$10到$20左右做快速除名。如果可以等的話,就不用浪費了。不過,公司可能頂不住未來48小時甚至未來幾天內發信老是被退,所以就看著辦吧。

Senderbase的IP名譽紀錄

這個名譽紀錄 (Reputation) 跟黑名單不大一樣。這是Cisco建立的一個機制。很多反垃圾郵件機私都會採納的一個清單。它給的只是評價,對於過去一段時間內有沒有在濫發垃圾郵件? 還有依照有沒有濫發垃圾郵件給予郵件伺服器IP一個評價。一般就是Googd、Neutral、Poor等等。如果是Neutral以上,就還好,如果是Poort的話,如果沒有像EVO Mail Server幫你做名譽檢查的話:
需要自己到該網站去手動檢查。小編建議還是換一個IP比較快。因為這個機制是每隔一段時間會去觀察你的IP是否有變乖? 等待的時間是抓不準的。

DNS的SPF紀錄

Sender Policy Framework (SPF) 是一筆儲存在DNS服務中的SPF紀錄。在SPF紀錄中,記載該網域名用來負責收發郵件的郵件伺服器主機名稱或IP位址。這筆紀錄提供收信方郵件伺服器查詢並確認新收到的郵件是否真的來自該網域。如果不屬於該網域的時候,可能會將新進的郵件當做垃圾郵件處理,幾年以前SPF紀錄還沒有這麼流通的時候,如果郵件伺服器開啟SPF檢查,新進郵件被當做垃圾郵件處理的機率蠻高的。不過現在不用擔心,已經普遍被使用,甚至各大郵件服務也都已經植入此類檢查。

DNS的DKIM

DKIM (Domainkey Identified Mail) 是一筆儲存在DNS服務中的SPF或TXT紀錄。它的前身是Yahoo的Domainkey。後來CISCO跟Yahoo合作建置一個更完備的版本。DKIM在郵件上面加入郵件伺服器的專屬私鑰簽章,收信端的郵件伺服器可以將郵件內含的簽章與寄信端網域DNS紀錄中提供的DKIM公鑰做解碼配對。如果批配,表示此封郵件來源是沒有問題的。DKIM已經行之後年,但是並沒有太受重視。直到Gmail跟Outlook.com將DKIM放入反垃圾郵件的規範之後,又逐漸有人發現寄到Gmail跟Outlook.com的郵件都被丟倒垃圾郵件或是被退信了,才知道要在自家郵件伺服器裡面添加這個機制。

DMARC紀錄

DMARC (Domain-based Message Authentication Reporting and Comformance) 是ㄧ筆儲存在DNS服務中的TXT紀錄。DMARC讓寄件與收件郵件伺服器做垃圾郵件相關的交流。例如: 我們常期從自家郵件伺服器寄信到Gmail,但是可能有一部份是被盜寄的,又或者是ㄧ些垃圾郵件來源會把From直接塞包含我們網域名的電子郵件地址。建置這筆紀錄之後,Gmail可以每隔一段時間寄一封報表給我們的postmaster郵件帳號。這報表裡面會告訴我們有多少是垃圾郵件、又有多少是真的從我們的郵件伺服器寄過去的。同時,可以分析自家郵件伺服器是否有被拿來盜寄? 進一步可以做防護機制。

SSL/TLS加密連線降低郵件被欄截利用

大家在使用網頁瀏覽器的時候,都會看到網址最左手邊http的標頭。在這幾年來,陸續看到的都是https。這個s代表的就是SSL/TLS,加密的意思。意旨從瀏覽器與對方伺服器連線的時候,傳輸的資料是經過加密的。
同樣的,在郵件伺服器方面,打從很久以前開始也有類似SSL/TLS的加密架構。更確切的說,由於SSL在2015年開始盡管已經到了版本3.0,TLS v1.0以及後來的v1.2已經逐漸取代SSL成為新的工業標準。
透過加密管道傳輸資料也意味著一般互聯網上面的駭客不會這麼容易截取到郵件內容進而拿來做壞事或是把郵件裡面的郵件帳戶匯整到發送垃圾郵件的清單。同時,在非加密的傳輸中,郵件主旨也可能被拿來模仿正規郵件讓它人誤判打開讀取。

郵件各類標頭過濾機制

一封郵件從郵件用戶端軟體的介面看來,是很正常的文字、圖案、附件等等。實際上在其原始的.eml檔案中,看起來就像是html或php一般充滿語法的檔案。
語法中有各式各樣超過35種標頭 (header),這些標頭是可以拿來當做郵件過濾機制的過濾條件。比較的方式莫過於一般的比大、比小、包含、不包含、等於、不等於等等。。。
但是最有效率的還是Regular Expression (RE),也就是正規表示法。好用的地方在於可以把多種比較值匯整到一行裡面。
比較出來的結果可以運用到執行或不執行某個動作。
這些動作方便郵件管理員除了做反垃圾郵件的動作還有其他更進階的郵件管理動作。

關閉DSN信息發送

DSN (Delivery Status Notification) 這東西若是在正常的郵件伺服器運行中對郵件管理員來說是有幫助的。能夠幫助郵件管理員以及寄信者知道為何被退信。
可以在一種特定的狀況下,DSN反倒是有害的,會讓郵件伺服器崩潰。若是某個郵件帳戶被入侵並且拿來盜發大量垃圾郵件,可能從四面八方如海嘯一般的退信通知會把郵件伺服器淹沒。後續會發生的被列於各大黑名單、發郵件總是被對方退信等等後果我們稍早已經提過。因此,暫時關閉DSN可以減緩這類狀況,等到揪出所有被拿來盜寄郵件的帳號都解決以後,在予以開啟。

沒有留言:

張貼留言