魏麗麗,何慶,戚國飛,許敬偉
(1.中國移動通信集團廣東有限公司,廣東 廣州 510640;2.深圳市彩訊科技有限公司,廣東 深圳 518000)
隨著互聯(lián)網(wǎng)技術的迅猛發(fā)展,電子郵件以其低成本、便捷、可查閱等特點有效解決了遠距離溝通的難題,是人與人之間日常溝通必不可少的重要工具。但是日益泛濫的垃圾郵件嚴重影響了人們的日常生活,如何高效地過濾垃圾郵件成為熱點議題。
調(diào)查顯示:2015年第一季度中國電子郵箱用戶平均每周收到14.6封垃圾郵件,占所有郵件的37.37%。其中,93%的被調(diào)查者都對他們接收到的大量垃圾郵件表示非常不滿。一方面,垃圾郵件消耗網(wǎng)絡資源、占用網(wǎng)絡帶寬、浪費用戶的寶貴時間、增加用戶的上網(wǎng)成本,影響企事業(yè)單位的日常辦公和溝通效率;另一方面,垃圾郵件成了計算機病毒傳播的途徑,垃圾郵件的傳播將嚴重威脅網(wǎng)絡安全,已成為網(wǎng)絡公害。
針對反垃圾郵件的方法,有研究者提出基于用戶反饋的個性化垃圾郵件過濾方法[1]:首先,根據(jù)用戶反饋提煉郵件分類特征,由此制定個性化郵件分類標準;其次,綜合全局郵件分類標準和個性化分類標準,利用樸素貝葉斯分類過程,完成用戶郵件的個性化分類。但是篩選參數(shù)會影響選取的郵件特征詞,當篩選參數(shù)取值較小或較大時,此方法在精確度方面的表現(xiàn)并不理想。還有學者提出了基于行為特征加權的決策樹過濾算法[2],這種方法將垃圾郵件的判斷轉化為郵件的路徑權值與垃圾郵件閾值的大小關系的判定。這種優(yōu)化的算法在一定程度上可以提高篩選的精準性,但篩選結果的準確性受行為特征庫影響較大。
現(xiàn)有的這些技術都或多或少的存在缺點,無法進行百分之百的準確判斷。其中,也有學者提出一種基于用戶群組將信譽值高的用戶反饋的規(guī)則同步到信譽值低的用戶的方法,但是這種做法會使用戶的規(guī)則受到影響,無法反映用戶真實的情況,也無法對用戶的信譽值做實時的調(diào)整。垃圾郵件攔截準確率的提高迫切需要一種新的攔截技術。
基于此,本文提出基于郵件用戶行為分析的發(fā)件人信譽值生成方法,通過機器學習的方法,對線上產(chǎn)生的海量日志進行分析,選取多個特征維度,通過海量日志對特征模型進行訓練,對這些特征值生成了一個總體的信譽分值庫,實時的郵件匹配這個特征信譽庫,對滿足條件的發(fā)件人生成發(fā)件人特定的信譽值,提高信譽值的準確度。
對于垃圾郵件,主流的過濾技術有黑白名單、關鍵詞過濾、基于規(guī)則的過濾技術、Hash技術、貝葉斯過濾技術等。
黑名單(Black List)和白名單(White List)技術首先檢查郵件頭,如果白名單有發(fā)件人就接收該郵件[3],否則拒絕接收該郵件。這種方法可以百分之百屏蔽已確認的垃圾郵件制造者所生產(chǎn)的垃圾郵件,但是由于有些用戶是首次聯(lián)系收件人,尚未收錄在收件人的白名單內(nèi),所以黑名單與白名單技術會過濾掉此類正常通信郵件。此外,因為發(fā)送垃圾郵件時可以采用自動郵件偽造郵件發(fā)送者或域名,所以這種技術在垃圾郵件防范領域尚有改進空間。
由于某些垃圾郵件會以較高的頻率使用“贈送”、“禮包”等關鍵詞,如果標識一些垃圾郵件常用的單詞,并以此識別和處理垃圾郵件,那么就能有效攔截垃圾郵件,這就是關鍵詞過濾技術?;谶@種識別原理,關鍵詞過濾技術極有可能導致誤判,比如設置單詞“test”為過濾關鍵字,那么所有含有“test”的郵件都將難逃濾網(wǎng)。
Hash技術是一種近似文本檢測技術,可以描述郵件的內(nèi)容[4],計算Hash時通常以郵件的題目、發(fā)件人等元素作為參數(shù)。Hash技術正是利用了垃圾郵件網(wǎng)絡傳播的高密度性和內(nèi)容高度相似性等特點,通過檢測所收郵件與已知類別郵件的相似性來區(qū)分郵件類別,是檢測垃圾郵件的有效技術手段。
除此之外,郵件系統(tǒng)還可以根據(jù)單詞、大小、位置、附件等特征元素制定規(guī)則[5],并以此描述和判別垃圾郵件。但該技術的缺點是如果要使過濾器有效,管理人員需要維護一個龐大的規(guī)則庫。
相比上述幾種過濾技術來說,貝葉斯算法更加智能化[6],是最為精確的攔截垃圾郵件的技術之一。它通過持續(xù)地學習跟進垃圾郵件的新規(guī)則,可使過濾準確率達到99%[7]。但美中不足的是,過濾的準確性依賴大量的歷史數(shù)據(jù)。
貝葉斯過濾器很難被繞過[8]。為了繞過郵件內(nèi)容檢查,通常垃圾郵件發(fā)送者會減少信中的垃圾詞匯(如免費、禮包)或者在信中摻雜少許正式的詞匯(如會議、文件)。但由于貝葉斯具有強烈的個性化色彩,只有研究單個收件人的偏好才有機會繞過貝葉斯檢查,而這幾乎是不可能完成的任務。
本文提出一種基于用戶行為分析生成發(fā)件人信譽值的方法,用來更好地過濾垃圾郵件。這種方法優(yōu)化實現(xiàn)了對垃圾郵件的過濾,技術方案描述如下:
(1)初始階段:主要包括運行前準備和特征值錄入數(shù)據(jù)庫兩部分。
(2)發(fā)件人信譽值生成階段:主要根據(jù)用戶的歷史行為生成相應的信譽值。
(3)發(fā)件人信譽值入庫階段:根據(jù)發(fā)件人特征值的匹配結果進行后續(xù)操作。
基于用戶行為分析生成發(fā)件人信譽值的流程圖如圖1所示:
圖1 基于用戶行為分析生成發(fā)件人信譽值的流程圖
具體步驟如下:
(1)初始階段。初始化系統(tǒng),加載配置文件,從日志信息中提取發(fā)信人特征值,連接特征數(shù)據(jù)庫等。
1)運行前準備,加載海量日志文件進行分析,從日志信息中提取郵件體大小、發(fā)信成功數(shù)、發(fā)信失敗數(shù)、發(fā)信總數(shù)、收件人回復數(shù)、郵件內(nèi)容、發(fā)件人域名、IP發(fā)信成功數(shù)和失敗數(shù)等信息;
2)將日志提取的特征值保存到特征數(shù)據(jù)庫。
(2)發(fā)件人信譽值生成階段。本階段主要是通過對用戶歷史發(fā)信數(shù)、發(fā)信成功率、當天發(fā)信數(shù)、收件人是否回復以及郵件內(nèi)容進行分析生成相應的信譽值,主要步驟如下:
1)從數(shù)據(jù)庫中提取特征值后進行判斷,如果發(fā)信人歷史發(fā)信總數(shù)小于3封,則數(shù)據(jù)量太少,無法生成信譽值,直接結束流程;
2)當歷史發(fā)信量超過3封,郵件發(fā)送成功率低于0.76時,設置信譽值為30分;
3)當發(fā)信成功率為100%,IP發(fā)信記錄成功率為100%,且收件人有回復、郵件內(nèi)容匹配可信關鍵詞、郵件大小超過500KB或者有向可信域發(fā)信任何一個條件滿足時,設置信譽值為40分;
4)當發(fā)信量超過5封,發(fā)信失敗次數(shù)為0,收件人且總數(shù)超過3個,郵件含有可信關鍵詞時,設置信譽值為80分;
5)當發(fā)信量超過5封,發(fā)信失敗次數(shù)為0,如果當天發(fā)信量超過1封,且郵件匹配的可信關鍵詞超過2個、有向可信域發(fā)信、收件人有回信或者發(fā)送大小超過500KB的郵件超過2封任何一個條件滿足時,設置信譽值為80分;
6)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于0到2封,是可信域發(fā)信,且當天發(fā)信量大于1封時,設置信譽值為70分;
7)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于0到2封,有收件人回信,且當天發(fā)信量大于1封時,設置信譽值為70分;
8)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于0到2封,郵件內(nèi)容含有可信的關鍵詞,郵件內(nèi)容匹配可信的關鍵詞超過2個,且當天發(fā)信量大于1封時,設置信譽值為70分;
9)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于0到2封,郵件內(nèi)容含有可信的關鍵詞,發(fā)送的郵件大小超過500KB至少為1封時,設置信譽值為70分;
10)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于0到2封,郵件內(nèi)容含有可信的關鍵詞,收件人有相同的且總數(shù)超過3個時,設置信譽值為70分;
11)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于2到9封,發(fā)信失敗數(shù)為3且當天發(fā)信量小于3封時,設置信譽值為30分;
12)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于2到9封,發(fā)信量大于20封,郵件內(nèi)容匹配可信的關鍵詞個數(shù)超過4個,收件人總數(shù)超過12個且同名的人數(shù)超過4個時,設置信譽值為70分;
13)當發(fā)信量超過5封,發(fā)信失敗數(shù)大于2到9封,發(fā)信量大于20封,郵件內(nèi)容匹配可信的關鍵詞個數(shù)超過4個且當天發(fā)信量超過4封時,設置信譽值為70分;
14)當發(fā)信量小于5封,發(fā)信失敗數(shù)大于0到2封,大小超過500KB的郵件至少為1封且郵件內(nèi)容含有可信的關鍵詞時,設置信譽值為70分。
(3)發(fā)件人信譽值入庫階段。具體步驟如下:
1)若發(fā)件人的特征值匹配了上述的某一規(guī)則,則將生成的信譽值保存到數(shù)據(jù)庫中;
2)若發(fā)件人的特征值未匹配上述的任意一種規(guī)則,則將特征值保存到數(shù)據(jù)庫,供下次再次分析。
數(shù)據(jù)挖掘[9]是從海量的數(shù)據(jù)中提取潛在的、有價值的信息。通過對用戶長期的發(fā)信行為進行分析可知,用戶歷史發(fā)信行為對將來所發(fā)郵件的性質(是否為垃圾郵件)有一定的預見性[10],即如果發(fā)件人曾經(jīng)有發(fā)送垃圾郵件的歷史,以后再發(fā)一封郵件是垃圾郵件的概率很高。經(jīng)智能算法對用戶的發(fā)信行為進行分析可知,垃圾郵件具備以下特性:
(1)郵件大小不會太大,太大則會影響垃圾郵件的投遞速度。
(2)發(fā)送的成功率不高,某些郵件被反垃圾系統(tǒng)攔截。
(3)發(fā)送量大,郵件一般通過群發(fā)工具發(fā)送。
(4)收件人不會回復。
(5)郵件內(nèi)容多為廣告、政治或色情言論。
(6)發(fā)信域名多為陌生域名。
本方法綜合考慮了郵件體大小、發(fā)信成功數(shù)、發(fā)信失敗數(shù)、發(fā)信總數(shù)、收件人回復數(shù)、郵件內(nèi)容、發(fā)件人域名、IP發(fā)信成功數(shù)和失敗數(shù)等信息,建立了較完備的特征數(shù)據(jù)庫,可以有效提高匹配準確度;同時,將此次尚未定性的用戶信息存入數(shù)據(jù)庫,待達到標準后重新篩選,這種方式使得垃圾郵件的判斷更加便捷、準確。
為評估文中提出的基于郵件用戶行為分析的發(fā)件人信譽值生成方法在提升過濾準確率方面的效果,本文將對2015年3月至5月使用該方法的某郵箱的收件量、垃圾郵件所占比、低信譽發(fā)信人數(shù)及所中信譽占垃圾郵件比例等數(shù)據(jù)進行分析。具體數(shù)據(jù)如表1所示:
表1 某郵箱使用發(fā)件人信譽值生成方法前后的收件情況
由表1可知,3月該郵箱尚未使用文中所述的垃圾郵件過濾方法;4月時該方法正式投入使用,從3 206 741封垃圾郵件中累計識別低信譽發(fā)信人數(shù)為54 876人,該方法為垃圾郵件的判別作出1.473%的貢獻;5月時,隨著特征數(shù)據(jù)庫的不斷豐富,識別能力加強,在垃圾郵件數(shù)基本不變的情況下識別低信譽發(fā)信人數(shù)為126 753人,數(shù)量是4月的兩倍,該方法對垃圾郵件的判別貢獻也增至3.255%。可以看出,隨著使用時間的增加,該方法對垃圾郵件過濾的貢獻也會增加,這是因為海量郵件為數(shù)據(jù)庫提供了大量的垃圾郵件特征,極大地豐富了特征庫,有利于該方法對垃圾郵件的準確判斷。
隨著網(wǎng)絡的日趨復雜,反垃圾郵件技術的重要性和迫切性日益凸顯,垃圾郵件過濾技術作為處理垃圾郵件的主流技術之一,在處理垃圾郵件領域有著至關重要的作用。本文提出的解決方案主要是對海量日志進行用戶行為分析,綜合考慮垃圾郵件的主要特性如發(fā)件人發(fā)信總數(shù)、當天發(fā)信數(shù)量、發(fā)信成功率、郵件大小、郵件內(nèi)容、可信域發(fā)信等信息生成發(fā)件人的信譽值。本方案避免了垃圾郵件的誤判或因某單一特征造成的信譽值偏差,可以更高效地過濾垃圾郵件,是現(xiàn)有垃圾郵件處理技術的有益補充。
但是該方法在垃圾郵件處理的初期表現(xiàn)欠佳,因為收件數(shù)量有限導致特征值數(shù)據(jù)庫有限,所以尚不能快速完成垃圾郵件的判斷。下一步將在算法方面做更多的探索,旨在通過優(yōu)化算法來提高過濾初期的精確度。
[1] 黃國偉,劉云霞,陳志. 基于用戶反饋的個性化垃圾郵件過濾方法[J]. 電子設計工程, 2014,22(15): 53-56.
[2] 李璇. 基于行為識別的垃圾郵件過濾技術的研究與應用[D]. 武漢: 武漢理工大學, 2013.
[3] 詹川. 反垃圾郵件技術的研究[D]. 成都: 電子科技大學, 2005.
[4] 帖凱瑩. 垃圾郵件判決器的研究與設計[D]. 成都: 四川大學, 2006.
[5] 劉英戈. 一種可信的反垃圾郵件網(wǎng)格體系研究與實現(xiàn)[D]. 無錫: 江南大學, 2007.
[6] 陳渝,黃楚亮,吳志豪,等. 企業(yè)信息化中的反垃圾郵件技術[J]. 廣東科技, 2007(7): 63-64.
[7] 張啟宇. 基于貝葉斯算法的垃圾郵件過濾系統(tǒng)的研究與設計[D]. 曲阜: 曲阜師范大學, 2006.
[8] 閆龍,王文杰. 基于貝葉斯方法的一種垃圾郵件過濾的實現(xiàn)[J]. 微電子學與計算機, 2006,23(2): 86-88.
[9] 柳景超,宋勝鋒. 基于參考度的有效關聯(lián)規(guī)則挖掘[J]. 火力與指揮控制, 2011(5): 79-81.
[10] 董建設. 協(xié)作式垃圾郵件過濾關鍵技術研究[D]. 蘭州: 蘭州理工大學, 2009.★