Spamassassin plugin --> FuzzyOCR 偵測圖像式垃圾郵件
垃圾郵件無所不在,由早期文字形態的信件,進化到圖文並貌的HTML格式。而由於anti-spam技術的進步,幾乎可達到九成的攔阻率。但「道高一尺、魔高一丈」,spammer開始大量運用圖片形態的方式來寄送郵件。圖像式垃圾郵件在圖片內容加入大量的雜訊資料(noisy data),藉以迴避掃描引擎的偵測。
以目前anti-spam市場所推出的產品,若是缺少掃描圖像式垃圾郵件的功能,相信也無法在市場上生存,例如:IronPort、Sophos PureMessage等廠商皆推出具備相,關功能的產品。
中正大學 吳昇教授的研究團隊推出了「無痛式垃圾郵件過濾系統: Nopam」,其設計理念是「垃圾郵件與正常郵件最大的分野在於行為而非內容。」。等於是利用行為模式進行垃圾郵件的偵測,不知是否能有效判別圖像式垃圾郵件呢?
當然,開放源碼的SpamAssassin也不能在此一功能上缺席,也出現了不少相對應的solution,例如:OcrPlugin。
而此篇文章所要介紹的 FuzzyOCR,是一套修改自OcrPlugin的Spamassassin plugin。同樣是利用光學字元辨認(OCR)的方式,來識別圖像式郵件所包含的「文字訊息」,並利用Fuzzy word matching演算法判斷辨識出來的文字。
主要具備了下列的功能:
- Optical Character Recognition using different engines and settings
- Fuzzy word matching algorithm applied to OCR results
- Image hashing system to learn unique properties of known spam images
- Dimension, size and integrity checking of images
- Content-Type verification for the containing email
- 可彈性支援不同的OCR interface,並利用fuzzy word matching演算法來處理辨識的結果。
- 支援DB,可將處理過的圖片,以feature vectors的形態儲存在資料庫。因此相同或是類似的圖片,便可以利用儲存在DB的特徵向量來處理。
- 能檢測不同維度、size與整合性的測試。
- 郵件內容檢測。
- 僅掃描郵件,而非辨認該封信件是否為垃圾信件。信件的分類仍交由spamassassin所判別的分數高低來決定。
- 對於已達到spam分數門檻的郵件,FuzzyOCR在處理該封郵件時會忽略該封信件而不進行掃描,進而減輕系統負載。(3.5版之後提供)
- 藉由比對儲存於DB的feature vectors(dimensions and file size)。若比對成功,則忽略該封信件,而不再進行OCR辨識與處理。
- 可設定掃描郵件timeout的時間,藉以避免Denial of Service的攻擊。
- 使用word sets取代simple lists,避免FuzzyOCR錯判的可能。
列出幾張FuzzyOCR網站的範例圖片供各位參考:
An animated gif is scanned for the first time

The same gif is scanned a second time

Various tricks of Image Spammers

FuzzyOcr Debug output when running SpamAssassin with -D (or enabling debug mode in the config)

沒有留言:
張貼留言