账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
SPAM防治技术剖析
垃圾邮件攻防战

【作者: 王正豪】2004年01月15日 星期四

浏览人次:【7953】

除了使用电话或手机之外,你会如何连络亲朋好友、同事、或客户?是ICQ、Yahoo/MSN Messenger、还是e-mail?


目前在一般使用电脑的族群中,有相当高的比率以e-mail作为最主要的通讯工具。相信大多数人都有这样的经验:每天上网收e-mail就开始了一天的恶梦,数十封信中可能只有极少数是真正感兴趣的...。根据统计,截至2003年底为止,已有超过50%的电子邮件是垃圾邮件,平均每人每天收到超过3封以上,其中大部份属于产品广告或成人情色类。


更严重的是,如果你在网路​​上还订阅(subscribe)了一些电子报(newsletter)、加入了讨论群组(mailing list)、或是你把邮件地址(e-mail address)直接公布在网页或讨论区上,那么,恭喜你!你很可能会收到更多的垃圾邮件,因为你的邮件地址已经早已被收录在电子邮件名单中,广为流传...


随着电子邮件广泛的使用,垃圾邮件(SPAM;Solicited Pornography and Marketing)造成个人时间浪费,以及网路使用效率不佳,不仅对个人使用者造成困扰、降低生产力,同时对企业、甚至是整体网路环境都造成不小的冲击。


什么是e-mail SPAM?

通常我们将不请自来的(unsolicited)、大量寄出的(bulk)广告信(commercial e-mail)称为垃圾邮件(e-mail SPAM or junk e-mail),而这些寄出垃圾邮件的人称为spammer。


究竟为什么会有那么多垃圾邮件呢?首先,由于免费的邮件地址取得容易,许多spammer可以注册多个地址备用,一方面身份不易曝光,另一方面万一邮件地址被封锁,还有其他地址可以继续寄信。


其次,因为spammer寄信的成本很低,只须收集邮件地址清单或选择一个大量寄件软体(bulk mailer),就可以开始寄信了,但多数收件​​者却必须先收下这些垃圾,然后一封封手动杀掉,相对上收信成本就很高。


而最重要的一项因素其实是e-mail的传输协定SMTP (Simple Mail Transfer Protocol) [10] 太过于简单,因而存在许多漏洞,并可能遭攻击,垃圾邮件的问题才会日益严重。


SMTP的缺点

首先我们来看看 SMTP的基本运作原理。如图一所示,当寄件者寄出一封信时,mail server会先检查DNS server上的MX (Mail eXchanger) record,得知收件地址该往哪里寄,然后一站一站转寄(store-and-forward)到收件者的mail server,放入信箱。等到收件者想收信时,再用mail client透过POP3 [12]或IMAP4 [1]连上mail server,收下信件。这种作法原本就是为了确保信件一定能送达收件者手中。但由于SMTP 过于简单,并未做好寄件者身份验证的工作,因此,才会造成spammer可以假造寄件者地址,隐藏真实身份,避开一般网域的mail server检查,直接寄给收件者的mail server。


《图一 电子邮件传输过程运作原理示意图 [20]》
《图一 电子邮件传输过程运作原理示意图 [20]》

究竟垃圾邮件是怎么办到的?

首先,许多的“spambot”(robot for spammer)不断在网页或讨论区中自动收集邮件地址。如果再经过假的自愿退出名单(opt-out list)或是其他方式确认后,更可筛选出正确有效的电子邮件名单。而这样的名单,不但的确存在,而且还很容易以低价买到。


另外,因为SMTP并没有确认寄件者身份,spammer寄信时就可以假造寄件人位址 (sender address),或是利用 open mail relay或open proxy server1来转信。因此,spammer可以躲开身份认证,肆无忌惮的发广告信。


注释:

Open Mail Relay指的是一个SMTP (mail) server并未限制转寄(relay)对象,因此,所有人都能透过它来转寄信件。而 Open proxy server指的是一个proxy server并未限制任何人经由它来存取资料,因此SMTP packet也可能透过open proxy来转寄信件。


常见的系统解决方法(heuristic-based approach)

针对垃圾邮件问题,目前最常见的解决办法大多采用过滤 (filtering)的方式,分别在伺服器(server)及用户端(client)进行筛选,但是作用各不相同。 Server端所须要的filter是尽早将大家所认定可能的spam挡下来。如果server已经把信收下来,到了client才发现是SPAM,则从 server传输到 client的频宽资源就浪费了。因此,有各种收集SPAM sample的方法,如: DCC [2]、Vipul's Razor [19]、peer-to-peer spam filtering [18]...等,这些都能早期发现可疑e-mail的特征,并将其筛选出来。


但是有些情形必须在 client 过滤,例如:每个人的白名单都不太一样,比较难在server统一做个整体的白名单。因此,个人化的过滤需求就比较适合在client做,以免将频宽浪费在client-server的沟通上。以下分别就各种常见的过滤方法加以探讨,其中黑名单/白名单/灰名单是属于header-based,也就是只看header就能判断出来; 而rule-based关键词比对主要是属于content-based ,必须看到内容才能判断出来。


黑名单 (blacklist) - 拦下可疑人物寄出的信

常见的黑名单有 Realtime Blackhole List (RBLs) [11]、open mail relay、open proxy server等。其原理基本上都是将可疑的主机名称或是IP address,以 DNS record形式存在 DNS server上。如果可疑人物在黑名单中,则查询该笔纪录时,会传回特定的值,例如“127.0.0.2”,如此一来,便可辨认出可疑人物。


不过这种作法的缺点是,各地的spammer可能不相同(有区域性,如:不同语言的特性),因此必须将各地的名单都纳入,才能有效全面防堵。而且黑名单基本上较难维护,因为spammer只要假造邮件地址,或是不断换新的身份来寄信就很难抓到。


白名单 (White List) - 只让好人寄出的信通过

另一种作法就是将每个人所认为没问题的人加入白名单,从这名单寄出的信,就自动让它通过。其他不认识或是第一次连络的寄件地址就须要收件者按钮确认,才会被加入白名单。


这个方法的缺点是,第一次联络的人,例如新认识的朋友或是失散多年的好友,就必须要经过身份认证的手续,对使用者来说会比较麻烦。


灰名单 (Greylisting) [7] - 扣留所有陌生人寄出的信

最近还有人提出一种新的方法,观念上很简单,就是从没看过的邮件地址寄出的信,一律先拒收。因为正常信件会重寄,所以经过一段时间的delay后还是会收到。但是大部分大量寄信软体比较笨,没有考虑(也不须考虑)重寄的问题,因此一旦被拒收后,那封信就不会再重寄,所以可以挡掉一些垃圾信。


此法通常会搭配黑名单/白名单,但缺点是,所有人只要还没被加入白名单的,都会被 delay,因此寄件效率会变差。它的假设是,如果SPAM的比例远高于正常邮件,则SPAM被延后的时间加起来,就远大于正常邮件被delay的时间,就可以认为有效果。


邮件规则(Rule-based) - 关键词比对(keyword spotting)

通常现有的实际电子邮件过滤系统大多采用经验式规则(heuristic rule-based)的方法,以易懂且易修改的邮件过滤规则(rule),来侦测某些关键词的出现。只要该信出现某些字词的组合,就认为它一定是垃圾信。这种作法,一开始效果还不错,因为垃圾信常常为了达到其吸引客户的目的,喜欢以夸大耸动的标题来引起人们注意。例如,通常信件中出现“免费”、“便宜”的字眼,大部分都是一种广告信。然而,随着过滤技术的进步,垃圾邮件伪装的技巧也逐渐进步,单凭关键词要写出能精准分辨正常与垃圾邮件的规则,越来越困难,而且垃圾邮件时常改变,规则必须常视需要更新。例如,spammer可能会以同义词或是比较模糊的字眼来代替一些比较敏感,容易被过滤的字词。


当然,模糊的字眼吸引力就比较小了,但是只要有一小部份人被骗或是不小心点选了,则spammer广告曝光的效果就达到了。毕竟spammer成本太低,所以比起传统广告所要求的曝光率,可以宽松许多。


其他的经验式法则

其他常用的方法包括:根据邮件标头栏位(header fields)、根据寄信流量等来判断是否为垃圾邮件。例如:有些大量寄信软体在发信时,会假造一些栏位,如:寄件人、收件人、寄信时间...等。所以我们可以根据这些栏位来判断是否为垃圾邮件,例如:收件人如果根本不包括你,那一定是垃圾信。但是,密件副本 (Bcc)、mailing list寄出的信、或是 all users 这一类的帐号就不适用了。


此外也可以由邮件伺服器来统计出寄件者每天发出的信件数量、大小等,这也是一个特征。通常在寄信时,server还会先利用DNS反查,检查寄件者的IP address是否如其所述是合法位址。然而寄件者身份的查验就比较困难了,目前仍有IRTF(Internet Research Task Force)的ASRG(Anti-SPAM Research Group) [9] 在研究各种改进、或取代现有SMTP protocol的方法。


学术研究上文件分类的方法 (classification-based approach)

同样是做邮件过滤或邮件分类,在学术界却有着不同的解决方式。在研究上大部分是以传统的文件分类 (text categorization)方法,运用机器学习(machine learning)的技术来完成。基本上邮件可看成是一份文件(document),包含了一些结构化的栏位,如:寄件者、收件者、主旨...等,以及非结构化的本文,也就是邮件内容。只要从大量资料中统计出邮件可能出现的字词特征,找出不同文件的相似程度(similarity),就可以套用文件分类的一些方法,如:TF-IDF (Term Frequency-Inverse Document Frequency)、Naive Bayes、SVM...等,来分辨是否为垃圾邮件。


虽然机器学习的方法准确率很高,但也存在着一些缺点。例如:


  • (1)机器学习需要大量的训练资料(training data),尤其在SPAM特征不断改变的情形下,须要更多样本才能学习出个别特征的差异。


  • (2)spammer也在不断学习:我们找出如何过滤的方法,spammer就会想出逃避的方法,如(表一)所示。


  • (3)个人化(personalization)的趋势:垃圾邮件的认定非常主观,每个人感觉都不尽相同。有些广告大部分人认为是SPAM,但某个人可能很喜欢。因此,SPAM的概念如果单从一个 server 的角度来看,未免太狭隘。因此,个人化(personalized)电子邮件过滤是必要的。例如我们可以经由某个人电子邮件信箱的使用情形,来了解他对各种电子邮件的偏好。



表一 Spammer常见的把戏
欺骗 有些电子邮件,会提供让你选择是否不想要继续订阅(opt-out)的功能,但是绝大部分的opt-out是没有作用的,甚至不少opt-out option已被用来确认这个邮件地址还在使用中...
F R E E 在文字之间加入空格、-、=、_、$、!、...等字元,使得关键词比对heuristic rule甚至是文件分类都可能失效。
Vlagra 将常见字元用人眼不太分辨的相似字元来替换,例如: 1-!-連、"i- 1-!-连、 0、s-5、...等,這也是企圖混淆郵件規則的方法。"o-0、s-5、...等,这也是企图混淆邮件规则的方法。
其他 运用人类视觉可辨识,但是电脑难以自动辨识的技巧。例如: 利用图形,文件分类的方法便不适用了。

其他方法

除了过滤之外,当然还有各式各样的方法来解决SPAM的问题。例如:电子邮资(postage)的方法希望经由增加寄件者的成本,来降低SPAM的成长,有寄信须付费(money)及须要耗费计算时间(computation)等做法。


另外,法律途径可能是最后也是最有效的解决办法。透过立法使得spamming成为一种犯罪行为,因此得以有效遏止SPAM。但是立法速度缓慢,要如何运用技术来辅助法律的举证,也是一大重要课题。


因此如何有效整合 heuristic-based 以及 classification-based两者优点的方法,透过各种现有技术,发展出更有效的电子邮件过滤系统,以进行个人化电子邮件过滤是目前最重要的方向之一。


以下我们提出一个可能的架构 [20],如图二所示。


《图二 整合heuristic-based 与classification-based架构图 》
《图二 整合heuristic-based 与classification-based架构图 》

虽然本文提到的是 anti-spam e-mail filtering,但是对大多数企业而言,最严重的问题却是机密文件的泄漏。也就是说,企业的邮件过滤只是其中的对外信件(outgoing e-mail)的应用而已。然而我们所提到的e-mail过滤观念,基本上对于对内(incoming)或对外(outgoing)的信都适用。


未来该何去何从?

由于垃圾邮件不断的变化,道高一尺,魔高一丈,因此,邮件过滤已成为一场永无止境的战斗。例如最近的SPAM邮件主题或内容会加入一些与收件者相关的基本资料(姓名、日期、时间、...等),这样一来每个人收到的SPAM就不太一样,对文件分类的特征而言增加了一些noise干扰。另外,有一种SPAM内容看起来和你的朋友写给你的一封简短的信没什么两样,只不过它的 link 指向为一个广告网站,而不是朋友真的想和你分享的资讯。这就语意上来说,很难单凭一封信就判断出是否为SPAM。


所以,必须根据一个人之前的收发信记录,以及他所接受与不接受的邮件内容加以训练,才能自动学习出某个人的喜好,「个人化」会是过滤垃圾邮件的一大课题。目前许多Open Source e-mail filter也正朝向这个方向努力,例如: SpamBayes、SpamAssassin、ifile等Bayesian filter。


另外也由于每封垃圾邮件的主题可能相当分歧(diverse),为了能清楚分辨,应根据比较仔细的分类来判断是否为SPAM,其准确率必能提高。


最近,IRTF 的ASRG也在讨论许多新 protocol 或是 SMTP的修正,例如:Designated Senders Protocol、CRI Framework、SMTP Sender authentication、e-mail path verification等,希望从protocol的根本来解决垃圾邮件严重的问题。这些方法不外乎加强寄件者身份的验证、加重 spammer的成本,使其利润降低,进而减少spamming。


如前所述,法律途径可能是比较有效的解决方法,目前各国陆续制定了 anti-spam law [17],将spammer 的行为认定为犯罪,必须处以罚款,如此或许能有效扼止嚣张的行为。例如美国在2003年十月与十一月底,分别由参议院与众议院通过了反垃圾邮件法(CAN-SPAM Act, Controlling the Assault of Non-Solicited Pornography and Marketing Act),日前已经由美国总统签字同意,成为美国第一个反垃圾邮件的联邦法。然而在尚未有法可管的台湾,要如何提高技术的进步,以辅助法律上的不足,的确是刻​​不容缓的事,这有待你我的通力合作。 (作者现职于中央研究院资讯科学研究所)


参考资料:

[1] M. Crispin, "Internet Message Access Protocol - Version 4rev1," RFC 2060, IETF, Dec. 1996.


[2] DCC (Distributed Checksum Clearinghouse), HTTP://呜呜呜.然后唷利特.com/安提-spam/丁春诚/


[3] Joshua Goodman, "Spam Filtering: Text Classification with an Adversary," Invited Talk at Workshop on Operational Text Classification Systems, KDD 2003, Aug. 2003.


[4] Paul Graham, "The Future of Spam Filtering," Seminar by Greater Boston Chapter/ACM, Dec. 12, 2003.


[5] John Graham-Cumming, "Adaptive Filtering: One Year On," Invited Talk at Spam Mini Symposium, USENIX LISA 2003, Oct. 2003.


[6] John Graham-Cumming: The Spammers' Compendium, http://www.jgc.org/tsc/index.htm


[7] Evan Harris, The Next Step in the Spam Control War: Greylisting, http://projects.puremagic.com/greylisting/


[8] ifile, http://www.nongnu.org/ifile/


[9] IRTF ASRG (Anti-Spam Research Group), HTTP://呜呜呜.IR台风.org/阿萨如果/


[10] J. Klensin, Ed., "Simple Mail Transfer Protocol," RFC 2821, IETF, Apr. 2001.


[11] MAPS RBL (Realtime Blackhole List), HTTP://买了-abuse.org/日办理/


[12] J. Myers and M. Rose, "Post Office Protocol - Version 3," RFC 1939, IETF, May 1996.


[13] Proceedings of Spam Conference 2003, available at: http://spamconference.org/proceedings2003.html


[14] Spam Conference 2004, available at: http://spamconference.org/


[15] SpamAssassin, http://spamassassin.org/


[16] SpamBayes, http://spambayes.sourceforge.net/


[17] SpamLaw, http://www.spamlaws.com/


[18] SpamWatch - A peer-to-peer spam filtering system, http://www.cs.berkeley.edu/~zf/spamwatch/


[19] Vipul's Razor, http://razor.sourceforge.net/


[20] Jenq-Haur Wang and Lee-Feng Chien, "Toward Automated E-mail Filtering - An Investigation of Commercial and Academic Approaches," Proceedings of TANET 2003, pp.687-692, Oct. 2003.

















延 伸 阅 读


























教您七个妙招


- 远离垃圾邮件困扰


从邮件伺服器的管理与设定,到选定电子邮件帐号的技巧,作者以其个人的经验归纳出七个方法来避免垃圾邮件的困扰,依据垃圾邮件的特征,建立起适用的邮件规则,并采取必要的防范措施。


打击Spam总动员


- 谈网路行销与垃圾邮件


Spam原意为猪肉罐头,现在则是垃圾邮件的代称,为了反制垃圾邮件的泛滥,许多防止垃圾邮件攻击的方法及工具应运而生,本文将介绍各种类型的防垃圾邮件软体,以及学者们对这个“趋势”所提出的未来解决之道。

对抗垃圾邮件 还是「法」宝最有用




在对抗垃圾邮件这件事上,软体商的参与是不可或缺的,然而法律也是很重要的一环,文中举出了目前使用法律来杜绝垃圾邮件的实例,也提出一套想法


- 以法律来对抗垃圾邮件的可行性。

善用「邮件规则」


向广告信说No


这是一篇简单的教学文章,让读者可以亲自设定邮件的规则,建立防堵垃圾邮件的第一道关卡。



















相关组织网站





























防垃圾邮件软体SpamAssassin网站
邮件过滤工具SpamBayes网站
SpamLaw


- 介绍各国防垃圾邮件法律

SpamWatch


- 以P2P方式连线作协同判断的垃圾邮件防治系统

ifile


















Open Source Link

































SpamBayes


anti-spam:一个知名的垃圾邮件分类管理软体

Anti-Spam


SMTP Proxy Server:一个提供白名单及Bayesian过滤机制的ASSP伺服器专案

PASP


- Python Anti-Spam Proxy:完全以Python写成的垃圾邮件反制代理伺服器

QwikMail:一个快速、安全又不占磁碟空间的anti-spam邮件器
Spammer:Sendmail的anti-spam邮件过滤器
Anti-Spam


Milter:以C写成的Sendmail的anti-spam邮件过滤器



相关文章
反制垃圾邮件,立法奏效!
立法管制垃圾邮件!
打击Spam总动员
comments powered by Disqus
相关讨论
  相关新闻
» 台达推出5G ORAN小型基地台 实现智慧工厂整合AI应用
» 欧洲航太技术展在德国盛大展开,全球吸睛 镭洋推出卫星通讯整合方案,目标抢占庞大的欧洲卫星商机
» 经济部促成3GPP大会来台争话语权 国内外大厂共商5G/6G新一代技术标准
» 经济部支持跨国研发有成 台欧双方分享B5G~6G规划
» 达梭系统收购IQMS扩展3DEXPERIENCE平台


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK85GDQAUB0STACUKR
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw