CCERT中文垃圾郵件過濾規則集

2022-08-27 13:48:07 字數 3357 閱讀 8279

ccert中文垃圾郵件過濾解決方案 ccert-anti-spam-solutions.pdf

1. 什麼是 chinese_rules.cf

2. chinese_rules.cf的理論背景

3. chinese_rules.cf的生成和使用框架

4. chinese_rules.cf的匹配速度問題

5. chinese_rules.cf 的準確率

6. chinese_rules.cf 的使用者統計

7. chinese_rules.cf 的使用方法

chinese_rules.cf

是用於業界廣泛使用的免費垃圾郵件過濾系統spamassassin

的中文垃圾郵件過濾規則集。由於以前沒有中文的過濾規則集,spamassassin對中文郵件過濾的準確性不高。ccert反垃圾郵件研究小組利用ccert所掌握的最新和豐富的樣本資料,推出了第乙個基於spamassassin的中文垃圾郵件過濾規則集chinese_rules.cf。該規則集每週更新一次,時效性非常好。

chinese_rules.cf是郵件內容過濾規則集。目前郵件內容過濾技術可以分為兩種方法:基於規則和基於統計的方法。基於規則的方法就是在郵件內容中尋找特定的模式,例如主題包含「免費」。基於統計的就是使用統計方法解決郵件的二元分類問題,其中分類機跟據垃圾郵件和正常郵件的樣本訓練出來。在垃圾郵件過濾技術中最常用的統計方法就是貝葉斯準則。

基於規則方法的優點是規則可以共享,因此它的推廣性很強。乙個人寫出的規則可以提供給多個人,多個伺服器使用。然而它的缺點就是更新速度慢。因為規則一般都是人工編寫生成,所以新規則的產生速度跟不上新垃圾郵件出現的速度,換句話說,它的時效性較差。

基於統計的方法的優點就是分類機由程式自動訓練出來,只要及時更新樣本訓練集就可以使分類機更新的速度跟得上垃圾郵件出現的速度,即它的時效性很強。然而該方法的缺點就是分類機不能共享,某個使用者用自己的郵件樣本集訓練出來的分類機對其他使用者可能效果不佳,因此該方法的推廣性較差。

chinese_rules.cf使用基於統計規則的新方法,即它所使用的規則是由統計方法自動生成的。該方法吸取了基於規則和基於統計的優點:因為它是一種基於規則的方法,因此推廣性很強,又因為它的規則是由統計方法自動生成的,因此它的時效性也很強。chinese_rules.cf和傳統方法比較如表1所示。

表1、chinese_rules.cf和傳統方法比較

推廣性時效性

基於規則好差

基於統計差好

chinese_rules.cf好好

ccert反垃圾郵件組自從2023年成立以來,每天都處理大量的垃圾郵件投訴,掌握最新和最豐富的樣本資料。chinese_rules.cf就在此最新和最豐富的樣本資料庫的基礎上,通過統計方法自動產生的。

圖1、chinese_rules.cf 的生成和使用框架

chinese_rules.cf規則集一般被控制在500個規則左右。這一數字也許使人對chinese_rules.cf的匹配速度有點置疑。仔細分析和測試結果表明chinese_rules.cf的匹配效能還是比較高的,原因是:一、chinese_rules.cf的規則都很簡單,都是乙個比較短的字串,中間沒有帶任何乙個萬用字元,這樣匹配速度比複雜的規則要快的多;二、chinese_rules.cf中有90%是郵件主題的規則,只有10%是信體的規則。由於郵件主題往往比較短,因此chinese_rules.cf的匹配速度會比較快。

以上是對效能的理論分析。我們用一台普通pc(p4 2.8g cpu),用chinese_rules.cf (2004 dec 21的版本) 對178482封郵件匹配,則結果是平均匹配一封大小為5.0k的郵件只需要 0.04秒。這個結果實非常好的,因為如果乙個郵件伺服器的郵件平均大小為5.0k(不算附件),那麼只要一台普通pc每天就可以處理216萬封郵件。一般的學生郵件伺服器每天收發30萬封左右。換句話說,只要在現有的郵件伺服器加上如同上述一台pc的處理效能就足以滿足處理垃圾郵件的硬體需求。

chinese_rules.cf的每乙個版本都帶有對準確率的測試結果。當前版本的測試結果如下:

chinese_rules.cf,2005 jan 2

閾值垃圾郵件查全率

(共16729)

正常郵件誤判率

(共93655)

0.595.0%

5.1%

1.092.9%

1.6%

1.590.4%

0.4%

2.087.9%

0.1%

2.584.5%

0.0%

3.081.1%

0.0%

3.576.6%

0.0%

4.072.4%

0.0%

4.567.0%

0.0%

掃瞄一封郵件大小為 1932.37 位元組需要 0.03 秒(p4-2.8g cpu)

表2中的結果就是在測試規程中,除了chinese_rules.cf 以外不使用其他任何規則。在實際情況,chinese_rules.cf一般都會跟spamassassin的預設規則同時使用。因為spamassassin的預設規則中有一部分是描述郵件行為的規則,對檢測中文垃圾郵件起作用,因此實際的效能會比以上實驗結果要好。

注意、 對於每天處理40萬封郵件以上的郵件伺服器來說,能夠容忍的效能是正常郵件誤判率小於5%的同時,垃圾郵件的檢測率大於90%。

ccert於2023年9月7日在網上發布chinese_rules.cf。從9月至12月的使用者統計情況如下。圖2就是使用者檢視規則集的統計(按ip)。可以看出規則集的知名度在直續上公升。

圖2、使用者檢視規則集統計(按ip)

圖3就是在unix/linux伺服器上使用的使用者統計(安不同ip),其中深灰色表示老客戶,即上個月已經出現的ip。

圖3、使用者使用規則集統計(按不同ip)

# wget -n -p /usr/share/spamassassin www.ccert.edu.cn/spam/sa/chinese_rules.cf

每次更新chinese_rules.cf都需要重啟載入spamassassin規則的程式。如果你用spamd則通常重啟的方法是:

# ps –ax | grep spamd

察看spamd程序的pid,然後

# kill -hup pid

如果你用mimedefang則要重起mimedefang。假設mimedefang的重起指令碼為 /etc/init.d/init-script, 則命令如下:

# /etc/init.d/init-script restart

0 0 1 * * wget -n -p /usr/share/spamassassin www.ccert.edu.cn/spam/sa/chinese_rules.cf; /etc/init.d/init-script restart

更多資訊請參見ccert中文垃圾郵件解決方案

ccert-anti-spam-solutions.pdf

電子郵件營銷必知 垃圾郵件過濾方法和原理

作為乙個電子郵件營銷工作者,了解垃圾郵件的過濾方法和原理是理所當然的一件事。下面博主為大家介紹一下垃圾郵件過濾方法和原理。一 以黑名單為標準的過濾方法。目前有一些主要從事垃圾郵件黑名單的組織和機構,這些組織專門接受使用者的垃圾郵件投訴,如果經過他們確認為垃圾郵件,那麼,該組織會將垃圾郵件的傳送方伺服...

樸素貝葉斯 垃圾郵件的識別過濾

建立單詞表 defcreatevocablist dataset vocabset set 建立乙個空的集合 for document in dataset vocabset vocabset set document union of the two sets return list vocabs...

利用NLTK sklearn進行垃圾郵件分類

利用nltk來進行資料處理和提取特徵,再交由sklearn進行機器學習訓練分類器,嘗試了多個機器學習演算法並評價分類效能。上 import nltk from nltk.corpus import stopwords from nltk.stem import wordnetlemmatizer i...