`
helloyesyes
  • 浏览: 1269456 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

学习“垃圾邮件过滤技术”笔记

阅读更多

白名单,用户自己维护一个列表,记录可信任的IP和域名,源在列表中可直接接收。

黑名单,不受欢迎的IP和域名。

通过计算垃圾邮件的指纹,这需要维护一个垃圾邮件的指纹数据库。

启发示,为每个邮件打分,分数依靠邮件中出现的关键字加分,超过某个分数值则认为是垃圾邮件。

贝页斯算法。用户参与,不断学习和更新的算法。

企业借助Exchange和SendMail等服务器的反垃圾邮件功能可以实现部分需求。

普通用户借助Foxmail等软件内置的反垃圾邮件功能可以实现部分需求。

中国反垃圾邮件联盟地址:

http://anti-spam.org.cn/

中国反垃圾邮件中心

http://www.spam.com.cn/

目前在黑名单技术上最流行的是实时黑名单(Realtime Blackhole List,简称RBL)技术。通常该技术是通过DNS方式(查询和区域传输)实现的。目前国外流行的几个主要的实时黑名单服务器都是通过DNS方式提供的,如Mail-Abuse的RBL、RBL+等。国内目前只有本站发布了公开的RBL服务。

实时黑名单实际上是一个可供查询的IP地址列表,通过DNS的查询方式来查找一个IP地址的A记录是否存在来判断其是否被列入了该实时黑名单中。举例来说,比如如果要判断一个地址11.22.33.44是否被列入了黑名单,那么使用黑名单服务的软件会发出一个DNS查询到黑名单服务器(如cbl.anti-spam.org.cn),该查询是这样的:查找 44.33.22.11.cbl.anti-spam.org.cn 是否存在A记录?如果该地址被列入了黑名单,那么服务器会返回一个有效地址的答案。按照惯例,这个地址是127.0.0.0/8内的地址如127.0.0.2(之所以使用这个地址是因为127/8这个地址段被保留用于打环测试,除了127.0.0.1用于打环地址,其它的地址都可以被用来做这个使用,比如有时候还用127.0.0.3等。)。如果没有列入黑名单,那么查询会得到一个否定回答(NXDOMAIN)。

目前大多数的主流邮件服务器都支持实时黑名单服务,如Postfix、Qmail、Sendmail、IMail等等。

在有些情况下,你可能需要架设一个自己的实时黑名单服务器,用来为自己的邮件服务器或自己的用户提供实时黑名单服务。

架设黑名单服务器方法包括:

  1. 安装并运行一个DNS服务器。推荐BIND。
  2. 建立黑名单数据区域。比如,黑名单服务叫做myrbl.com,则在DNS中建立一个myrbl.com的区域(zone)。
  3. 建立黑名单数据,在区域数据文件中,添加你的黑名单数据。比如,将11.22.33.44加入黑名单,那么区域数据文件中应该有如下一行:44.33.22.11 IN A 127.0.0.2
  4. 如何建立一个合法的区域数据文件不再赘述,请参考各种DNS的配置手册。
  5. 重新启动你的DNS服务器。测试一下你刚刚加入的黑名单是否可以查询到:dig 44.33.22.11.myrbl.com.
  6. 如果查询结果中有解析的地址:127.0.0.2,那么黑名单服务器已经架设成功了。
  7. 最后,设置邮件服务器使用你自己的黑名单服务器。

邮件过滤技术(Mail Filter),实时黑名单技术是其中的一种特定的方法。

  邮件过滤按照在邮件系统结构中的角色可以分为三类:

  • MTA(邮件传输代理)过滤
  • MDA(邮件递交代理)过滤
  • MUA(邮件用户代理)过滤

  MTA过滤是指MTA在会话过程中对会话的数据进行检查,对于符合过滤条件的邮件进行过滤处理。邮件会话过程中有两个阶段可以进行过滤:

  • 邮件发送邮件数据前,即在发送DATA指令前的过滤。在发送DATA指令前,邮件对话可以在SMTP连接开始、HELO/EHLO指令、MAIL FROM指令和RCPT TO指令中对会话数据进行检查。
    • SMTP连接时,可以检查客户端IP地址是不是特定的不允许连接的地址,如被列入黑名单IP就会被立刻拒绝连接。这里的黑名单可以是实时黑名单(RBL),也可以是访问列表。
    • 对HELO/EHLO指令所提供的身份,可以检查是不是FQDN(完全限定域名,包括完整的主机名、域名的地址)、是不是要求的身份等。
    • 对MAIL FROM指令所提供的邮件来源,可以检查是不是有效域(可以通过DNS反向查询检查)、是不是FQDN、是不是符合RFC822格式等。
    • 对RCPT TO指令所提供邮件接收者,可以检查是不是属于允许转发的域、是不是符合RFC822格式、是不是通过认证的发信人等。

    如果在检查中该会话符合过滤的条件,就可以按照过滤规则采取相应的动作,如直接在会话阶段断开连接、发出警告代码等。

    邮件发送邮件数据前的检查也叫做信封检查。

  • 邮件发送邮件数据后,即在发送DATA指令后的过滤。在通过一个点的单行结束DATA指令后,可以对DATA指令接收到的数据进行检查,这包括信头检查和信体检查。在DATA指令所传送的数据中,信头和信体是通过一个空行分隔开的。
    • 信头检查。通常垃圾邮件在信头中都有一定的特征可供识别。通过这些特定信头字段可以很快地识别为垃圾邮件。
    • 信体检查。有时候通过信头检查还不足以判断一封邮件是否是垃圾邮件,往往还要针对情况进行信体检查。

    信头一般都比较小,通常在1KB-10KB之间,检查信头也比较快。而信体检查就要检查大量的数据,会给邮件服务器带来很大的负载,所以通常信体检查放在其他检查的后面进行。目前最流行的信体检查是贝叶斯(Bayes)算法的内容概率检查。

    邮件发送邮件数据后的检查实际上是在邮件数据传输基本完毕后进行的,因此并不能节省下被垃圾邮件占用的带宽和处理能力,只是可以让用户不再收到这些已被过滤的垃圾邮件。

  MDA过滤是指MDA在从MTA中接收到信件,在本地或远程进行递交时进行检查,对于符合过滤条件的邮件进行过滤处理。

  很多的MDA都支持在这个过程进行过滤,如ProcmailMaildropCyrus-IMAP等,甚至它们本身就是作为过滤器使用的。这些过滤器使用过滤语言(如Sieve,它是一个标准化的邮件过滤语言,现在已成为IETF标准)来制订过滤规则,因此配置比较灵活、功能强大。但是由于是在邮件递交阶段进行过滤,同MTA的邮件发送邮件数据后的检查一样,并不能节省下被垃圾邮件占用的带宽和处理能力,只是可以让用户不再收到这些已被过滤的垃圾邮件。

  MTA和MDA过滤都是邮件服务器端的过滤,而MUA过滤是邮件用户的客户端的过滤。多数流行的邮件客户端,如Outlook、Outlook Express、Netscape Mail、Foxmail等都支持MUA过滤。

  邮件过滤技术作为一个有效的对抗垃圾邮件的手段,就如同杀毒软件对病毒的查杀一样,也是需要不断根据情况更新邮件过滤规则的。通常都是管理员自行根据垃圾邮件监测情况来更新过滤规则。

  邮件过滤是一项应用的相当早也相当广泛的技术,因而也发展的比较完善。绝大多数的主流邮件系统都支持邮件过滤,一些不直接支持该功能的邮件系统也可以通过补丁或外置的邮件过滤器来实现邮件过滤。

David Mertz博士提出一种利用Hashcash防范的方法,原理大概是用质询协议完成邮件的校验,具体参考:

http://anti-spam.org.cn/references/index.php?Action=Show&ID=10

博士的另一篇文章写得也相当好,标题叫《垃圾邮件过滤技术-消除不需要的电子邮件的六种方法》,见

http://anti-spam.org.cn/references/index.php?Action=Show&ID=3

梭子鱼产品的过滤法则:

  1. 垃圾邮件终止法则:若某一层过滤判定该邮件不合法或为垃圾,则立即阻断该邮件,结束进程,后面的各层检查不再进行。
  2. 按序检查法则:一个完整的smtp邮件发送从helo命令开始,因此从该进程的第一条命令开始依次进行检查。如发现为垃圾邮件,其余数据将不再接收。
  3. 低消耗优先法则:占用系统资源较少的过滤层优先,耗费系统资源大的过滤层靠后。这样,系统能以最少的消耗处理最大量的邮件。
  4. 安全优先法则,涉及到系统重要安全的检查先进行。

分享到:
评论

相关推荐

    学习笔记——Python实现垃圾邮件过滤-附件资源

    学习笔记——Python实现垃圾邮件过滤-附件资源

    coursera吴恩达机器学习教程及笔记

    课程将引用很多案例和应用,您还需要学习如何在不同领域应用学习算法,例如智能机器人(感知和控制)、文本理解(网络搜索和垃圾邮件过滤)、计算机视觉、医学信息学、音频、数据库挖掘等领域。

    朴素贝叶斯算法的邮件数据

    《机器学习笔记(2)——使用朴素贝叶斯算法过滤(中英文)垃圾邮件》 一文中的邮件数据

    机器学习实践笔记与代码.zip

    互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域...

    机器学习笔记与项目实战,python.zip

    互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域...

    pxl的吴恩达机器学习笔记(代码部分参考黄海广博士博客).zip

    互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域...

    《python机器学习数据建模与分析》读书笔记及案例代码实操.zip

    互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域...

    Search-Engine-Spam-Blocklist:阻止列表,从搜索引擎的结果中过滤出垃圾邮件域

    定期维护的阻止列表,用于从搜索引擎的结果中过滤出垃圾邮件域。 什么事啊 您知道所有这些奇怪的自动生成的垃圾邮件站点,这些站点经常在搜索结果中弹出,并带有诸如“待售的免费性爱热销刘海丰满的芬兰医疗诊所”之...

    SpamEmailDetector.rar

    老师写的垃圾邮件过滤器(仅包含生成语料库和数据标记过程,剩下的我们自己写,博客机器学习实战笔记6——贝叶斯方法里有提到) 还有垃圾邮件的训练样本,测试样本

    决策树DTC数据分析及鸢尾数据集分析.doc

    比如Gmail邮箱里有垃圾邮件分 类器,一开始的时候可能什么都不过滤,在日常使用过程中,我人工对于每一封邮件点 选"垃圾"或"不是垃圾",过一段时间,Gmail就体现出一定的智能,能够自动过滤掉一些 垃圾邮件了。...

    人工智能安全作业写一个小项目和readme.rar

    人工智能是一种使机器能够模仿人类行为的技术。它是计算机系统的理论和发展,能够执行通常需要人类智能才能完成的任务,例如视觉感知、语音识别、决策制定和语言之间的翻译。因此,基于所有这些功能,...垃圾邮件识别

    smtp-test:自动化SMTP服务器测试以进行渗透测试

    外部smtp服务器(垃圾邮件过滤器应拒绝看起来来自组织内部的来自电子邮件组织外部的电子邮件) 目标smtp服务器(smtp服务器应要求身份验证) 笔记 外部欺骗测试需要SMTP服务器进行中继 请随时提交错误修正或增强...

    OffiLive 免费电子邮件帐户-crx插件

    它提供反垃圾邮件和防病毒功能:SpamAssassin,ClamAV,SPF,DKIM,灰名单,白名单,黑名单。 它使用iRedmail开源产品:Postfix,Dovecot,SpamAssasin,ClamAV,CBPolicyd和SOGo。因此,这是免费的。 支持语言:...

    unix大全(涵盖了UNIX学习的方方面面)

    72.aris 9环境下基于Postfix的反垃圾反病毒邮件服务器构建 73.LARIS8(X86)下安装J2SE 74. cluster 培训笔记 75. cluster 3 的点滴--备忘 76.D制作9的网络安装服务器以及遇到问题的解决 77.aris 性能与调整 78....

    Detecting-Malicious-URL-Machine-Learning

    检测恶意URL使用Pyspark发展环境Apache Spark 2.3.0 Jupyter笔记本数据集此项目中使用的数据集是从以下来源手动获得的:网上诱骗网址Phishtank - 打开公共卫生机构- 垃圾邮件网址JWSPAMSPY- 恶意软件网址DNS-BH- ...

    下一代防火墙设计方案V2.doc

    为了对抗这种新的威胁,安全技术也在不断进化,包括深度包 检测防火墙、应用网关防火墙、内容过滤、反垃圾邮件、SSL VPN、基于网络的防病毒和入侵防御系统(IPS)等新技术不断被应用。但是黑客的动机 正在从引起他人...

    NLP-in-Python:Python 中的一些 NLP 概念介绍

    奖励:在节点的“自然”包中做一些 TF-IDF NLP(但需要注意):——臭名昭著的50 Shades Sex Scene Detection,因为垃圾邮件很无聊- 非常快速地介绍 Python 中的主要 ML 包,用于比较目的; 同性场景数据。 [Intro ...

    SimpleMail-开源

    笔记! 代码和问题在... SimpleMail是易于使用但功能强大的邮件客户端。 它支持SMTP,POP3和IMAP(以简单形式)协议。 此外,除其他功能外,它还可以显示HTML邮件,并可以使用贝叶斯过滤器来识别垃圾邮件。

Global site tag (gtag.js) - Google Analytics