應看重誤攔率而非攔截準確度:深入透視垃圾郵件防禦的前世今生
基於 85% 以上的 APT 攻擊都是藉由郵件渠道進行的,於是郵件威脅防禦系統的理念便應運而生;不過郵件威脅防禦系統其實並非新鮮事物,假如要追溯它的前生,其實就是以往的反垃圾郵件系統。在 21 世紀初期,2000 年的千年蟲反轉地球之際,也隨之帶來了第一代互聯網不可或缺的妖魔鬼怪產物 - 垃圾郵件。之後的四至五年,簡直可稱得上是垃圾郵件的天下。
眾所週知,電郵雖是遠古產物,然而卻是一項十分重要的溝通渠道,於是坊間有很多防禦方案便採用了多層的反垃圾郵件技術,包括有基礎 MTA 控制(FROM & RCPT CHECK)、連接/發送頻率(DOS 防禦)、黑白名單、實時黑名單(RBL)、關鍵字過濾、規模庫過濾(惡意流量特徵及 ASRC 資料庫)、Bayesian 運算法、Domainkeys 以及 SPF 等。
以上技術,除了基礎 MTA 控制、Domainkeys 及 SPF 之外,其他技術均基於固定的運作模式,那就是「統計」->「分析」->「過濾」;由於通過分析識別垃圾郵件,於是只需稍為花一點心思設計垃圾郵件的話,便可避開這類型方案,固此採用這類型方案最終仍需由人手按實際情況而進行特定的設定,例如黑/白名單、RBL、關鍵字庫、ASRC、雲端指紋庫等等。
至於前幾年備受推崇的 Bayesian 運算法某程度上亦只是基於其他過濾技術,並套用於內容層面上再實現統計分析,可見其基礎並不穩定(可能有漏洞存在),而對於雙節雙字符亦需要有較高的分詞技術,而且需要經過一定時間並累積到足夠的樣本數量時才會見其大能,因此對於新型垃圾郵件或會出現漏網之魚或延緩情況;所以我們往往會把上述提及的技術區分為半自動之統計技術,而且必須加以 ASRC 指紋庫的協助。
而 Domainkyes 和 SPF 在技術層面上,坦白說是需要整個互聯網上的郵件系統支援其規範後,才可以實現到無垃圾郵件,只可以說是一種於測試環境中可取得極高功用的一種技術,在實際應用時還有一段距離。其主要是依賴信任每個郵件系統不會發出垃圾郵件,但是依然存在弱密碼發送垃圾郵件的問題。
最後一種上述提到的就是基礎 MTA 控制。這是一種我認為較少出現誤判的技術,其檢查方式主要是基於穩定的 DNS 服務。Domainkyes 技術基本無法使用,由於稀少的郵件系統部署和弱密碼等問題,因此只作為信賴的檢查其意義亦不大,且存在一定的風險;其他的技術都是基於統計分析再過濾的機制,因此存在一定的漏洞及問題。以下我們先假設:
漏攔率為 S = 漏攔郵件/實際垃圾郵件數
第一層過濾機制的漏攔率為 s1
第二層過濾機制的漏攔率為 s2
第三層過濾機制的漏攔率為 s3
…
第 N 層過濾機制的漏攔率為 sn
由此而算,其公式如下:
S=s1*s2*s3*…*sn
如果在理想環境(實測環境)下,每一層漏攔率為 60% 時,結果如下:
N 層過濾機制 漏攔率
1 ------60%
2 ------36%
3 ------21.6%
4 ------12.96%
5 ------7.77%
6 ------4.66%
7 ------2.79%
8 ------1.67%
9 ------1%
10 ------0.6%
再假設
誤判率為 Y = 誤攔郵件/實際正常郵件數量
可得到的正確放行率為 Z=1-Y
第一層過濾機制的誤攔率為 y1,正確的放行率為 z1=1-y1
第一層過濾機制的誤攔率為 y2,正確的放行率為 z2=1-y2
第一層過濾機制的誤攔率為 y3,正確的放行率為 z3=1-y3
…
由此推算,第 N 層的過濾機制誤攔率為 yn,正確放行率為 zn-1-yn
最終得出以下關係:
最後放行的正常郵件 = 實際正常郵件數 *z1*z2*z3*…*zn
最後得出
Y = (實際正常郵件數 – 最後放行的正常郵件)/實際正常郵件數
= 實際正常郵件數(1-z1*z2*z3*…*Zn)/實際正常郵件數
= 1-z1*z2*z3*…*zn
= 1-(1-y1)*(1-y2)*(1-y3)*…*(1-yn)
如果 y1=y2=y3=…=yn 以及 z1=z2=z3=…=zn=B
及 Y=1-B^n ( 0<B<1,在最理想狀態下是近於 1)
當每一層的誤攔率為 1% 時,及 B 為 99%,結果如下:
N 層過濾機制 誤攔率(Y)
1 ------ 1%
2 ------ 1.99%
3 ------ 2.97%
4 ------ 3.94%
5 ------ 4.9%
6 ------ 5.85%
7 ------ 6.79%
8 ------ 7.72%
9 ------ 8.64%
10 ------ 9.56%
由此,我們基本上可以粗略估計及推斷多層的攔截技術,其層數愈多攔截率便愈高,漏攔率愈少,但也會導致誤攔率愈高。所以要真正有效的反垃圾郵件技術其實並非甚麼高深科技,主要都是通過統計學或概率學的原理作為過濾手段,其主要的矛盾是要解決誤攔率問題。
基於上述理想狀態的計算可以簡單得知,每一層過濾機制的漏攔率(反之或是精準攔截比率)無需太過在意其高與低,我們要留意的是要控制好每一層的誤攔率不能太高,而且最好有獨立的穿插在所有過濾機制之中的誤攔分析技術,藉以來降低每一層的誤攔率。
目前大多數反垃圾郵件系統都是通過隔離郵件列表和用戶的互動,從而通過維護一個白名單來解決誤攔問題。該類系統欠缺了誤攔分析技術,因而影響了系統部署初期的用戶體驗;至於郵件威脅防禦系統,是借助 ASRC 的雲端指紋,對更多的威脅樣本進行分析,並加速了對 Spam Mail 的辨識確認能力,最終能做到及時反饋至用戶端和及時更新指紋庫,令效果有效提高之餘,更可增加攔截的精準度。
鳴謝:明瑜 Hill Ming Softnext 守內安產品技術部副經理/資深工程師 的協助