邮件安全篇:邮件反垃圾系统运作机制简介

1. 什么是邮件反垃圾系统?

邮件反垃圾系统是一种专门设计用于检测、过滤和阻止垃圾邮件的技术解决方案。用于保护用户的邮箱免受未经请求的商业广告、诈骗信息、恶意软件、钓鱼攻击和其他非用户意愿接收的电子邮件的侵扰。

反垃圾系统的常见部署形式

2. 邮件反垃圾系统的存在形式

邮件反垃圾系统存在的形式多样,可能的形式包括如下几种:

  • 邮件系统上附加的反垃圾模块,属于邮件系统功能的一部分。
  • 部署在邮件系统之前的独立软件系统(和邮件系统处于同一机房)。
  • 部署在邮件系统之前的独立硬件设备(和邮件系统处于同一机房)。
  • 一种云服务,无需部署在客户本地机房,在云端提供反垃圾能力。
  • 用户电脑终端中由安全防护软件提供的客户端反垃圾功能,这种形式不在本文讨论范围。

邮件反垃圾云网关常见接入形式

3. 反垃圾系统如何发挥作用?

在探讨这个问题之前,可以先思考一封邮件是如何从站点A投递到站点B的?在之前的文章《SMTP协议简单介绍》中介绍了客户端与服务端通过SMTP协议发信的原理,其实两个站点之间发信也是通过SMTP协议。在SMTP这种通信协议基础上,反垃圾系统针对通信过程中各阶段对邮件进行相关检查。

反垃圾系统检查项示例

两个站点间SMTP协议发信过程大致如下:

  • 建立TCP连接
  • EHLO/HELO
  • MAIL FROM
  • RCPT TO(一个收件人对应一条指令)
  • DATA
  • QUIT
  • 断开连接

正常情况下,一封邮件从发信方服务器传递到收件方服务器需要将上述过程完整走完,任何一个阶段提前中止,都会导致信件发送失败。下面分别从每个阶段介绍反垃圾系统可能发起的检查。

3.1 建立TCP连接

在发信方与收件方邮件系统或者反垃圾系统建立连接时,可能进行的检查包括(也可能和后面HELO/EHLO阶段同时检查):

  • IP黑名单:如果发信IP被列入黑名单,则连接会直接被断开。
  • IP白名单:允许连接,后续将不做任何反垃圾检查。
  • IP连接次数:如果IP超过连接次数上线,则连接会被断开。
  • IP同时连接数:如果IP同时连接的次数超过限制,同样会被断开。

3.2 HELO/EHLO阶段

通过HELO或EHLO告知发信方服务器的主机域名信息,可能进行的检查包括:

  • 域名解析一致性检查:检查发信IP的PTR记录,如果PTR记录和声明的发信服务器不匹配或者不存在PTR记录,反垃圾系统会根据配置采取相应的策略。
  • RFC合规性检查:EHLO命令中的域名应该符合DNS命名规范,且不应该频繁更改。
  • 发信IP信誉检查:对发件服务器IP地址或域名的信誉度初步评估,例如通过RBL或其他信誉数据库快速查询。

3.3 MAIL FROM阶段

该阶段主要告诉收件方服务器发件人信息,可能进行的检查包括:

  • RFC合规性检查:检查发件人地址是否符合RFC 5321等相关SMTP标准的规定,包括地址格式是否正确。
  • SPF检查:使用SPF验证发件人地址所在的域名是否允许连接过来的IP代表其发送邮件。
  • 发件人黑名单检查:检查发件人地址是否存在于黑名单数据库中,黑名单中的地址通常是过往确认的垃圾邮件发送者。
  • 发件人信誉度评估:判断发件人的邮件发送历史记录和信誉度,如果发件人地址或其所在IP地址有不良记录,邮件服务器可能采取限制措施。
  • 发信频率:监控发件人地址发送邮件的速度和频率,如果超出正常范围,可能是垃圾邮件发送者的典型行为。

3.4 RCPT TO阶段

在RCPT TO阶段邮件服务器会针对收件人地址执行一系列反垃圾邮件检查,这些检查可能包括:

  • 收件人有效性验证:检查指定的收件人地址是否真实存在并且活跃。
  • 黑名单检查:检查收件人地址是否在黑名单中,黑名单通常包含已知的废弃、无效或滥用的邮箱地址。
  • 灰名单管理:检查收件人地址是否在灰名单上,灰名单上的地址可能暂时限制接收邮件,用于处理疑似垃圾邮件的临时策略。
  • 频率限制:控制发件人在短时间内向相同或相似收件人群体发送邮件的数量,以防止垃圾邮件的大规模滥发。
  • 发件人与收件人关联性检查:对发件人与收件人间的关系进行基本分析,比如检测是否有历史邮件往来记录,以减少陌生邮件带来的垃圾邮件风险。

3.5 DATA阶段

在SMTP协议的DATA阶段,邮件系统或反垃圾系统会对邮件的实际内容进行全面的反垃圾邮件检查,这是邮件内容过滤最关键的部分。可能进行的检查包括:

  • 关键字过滤:检查邮件正文中是否存在常见的垃圾邮件关键词、短语或模板。以及管理人员自定义的关键字策略。
  • 语法和拼写分析:分析邮件的语法结构和拼写错误,垃圾邮件往往具有独特的语法特点和大量的拼写错误。
  • 贝叶斯过滤:应用贝叶斯算法对邮件内容进行分析,根据先前学习到的垃圾邮件和正常邮件的特征分配一个垃圾邮件概率分数。
  • URL检查:扫描邮件中的链接,分析链接指向的网站是否被列入黑名单,或是否指向钓鱼网站、恶意软件下载等危险内容。
  • 图片内容识别:对邮件中的图片进行OCR识别,因为垃圾邮件发送者有时会将文字信息嵌入图片以避开纯文本过滤。
  • 收件人数量检查:检查邮件是否被大批量发送给不同的收件人,这也是垃圾邮件的一个典型特征。
  • DKIM检查:根据发件人域名发起DKIM检查,检查邮件是否由该域名授权的服务器签署。
  • DMARC检查:确认邮件是否通过了DMARC验证,包括SPF和DKIM验证的结果。
  • 社会工程和诈骗检测:检查邮件中是否存在社会工程攻击的迹象,例如冒充知名机构或个人的欺诈信息。
  • HTML结构分析:分析邮件的HTML编码和标签,垃圾邮件经常使用特殊的HTML结构来隐藏文本或误导邮件过滤器。
  • 附件检查:检查附件类型、附件内容,以防止恶意程序通过邮件传播。
  • 信头内容检查:检查信头长度、信头内特殊关键字,阻止特定类型的发信。

4. 结束语

在邮件系统防护的领域中,不同厂商提供的反垃圾产品因其独特的检查逻辑而呈现出各异的检测效果。因此,挑选一款功能完善、检测性能卓越的邮件反垃圾系统显得尤为关键。这些先进的反垃圾产品可以借助云端检测技术能力,对邮件进行大数据分析,从而显著提升检测的准确性和效率。面对市面上琳琅满目的邮件反垃圾系统厂商,企业在选择时应当全面考虑,包括厂商的综合实力、技术创新能力、实际应用的成功案例以及产品合规性等多个维度。通过综合考量,企业可以更加精准地选择适合自己需求的邮件反垃圾系统,为邮件系统提供更加稳固和有效的保护。

参考来源:邮件安全篇:邮件反垃圾系统运作机制简介 | MailABC邮件知识百科

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day6 io线程

获取终端输入的字符

深入探究 Golang 反射:功能与原理及应用

Go 出于通用性的考量,提供了反射这一功能。借助反射功能,我们可以实现通用性更强的函数,传入任意的参数,在函数内通过反射动态调用参数对象的方法并访问它的属性。举例来说,下面的bridge接口为了支持灵活调用任意函数&…

python一维表转二维表

一维表转二维表 import pandas as pd # 读取数据 product_df pd.read_csv(rD:\excelFile\practice\物品属性值一维表.csv,encodingutf-8) # print(product_df)# 将一维表转变二维 s pd.Series(list(product_df[属性值]),index[product_df[物品编号],product_df[属性名]]) …

GMSSL2.x编译鸿蒙静态库和动态库及使用

一、编译环境准备 1.1 开发工具 DevEco-Studio下载。 1.2 SDK下载 ​ 下载编译第三方库的SDK有两种方式,第一种方式从官方渠道根据电脑系统选择对应的SDK版本,第二种方式通过DevEco-Studio下载SDK。本文只介绍通过DevEco-Studio下载SDK的方式。 安装…

centos中zabbix安装、卸载及遇到的问题

目录 Zabbix简介Zabbix5.0和Zabbix7.0的区别监控能力方面模板和 API 方面性能、速度方面 centos7安装Zabbix(5.0)安装zabbix遇到的问题卸载Zabbix Zabbix简介 Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参…

大数据架构体系演进

传统离线大数据架构 ​ 21世纪初随着互联网时代的到来,数据量暴增,大数据时代到来。Hadoop生态群及衍生技术慢慢走向“舞台”,Hadoop是以HDFS为核心存储,以MapReduce(简称MR)为基本计算模型的批量数据处理…

MATLAB实验五:MATLAB数据分析

1. 某线路上不同时间对应的电压如下表所示: 1)用 3 次多项式拟合(polyfit)该实验曲线,要求绘制 2 原始采样 点,并在 1~8 范围内,使用时间间隔为 0.2 的数据绘制拟合曲线。 建立一个脚本文件:text5_1.m 如下…

黑马JavaWeb企业级开发(知识清单)01——前端介绍,HTML实现标题:排版

文章目录 前言一、认识web前端、HTML、CSS二、VS Code开发工具&#xff08;插件弃用问题&#xff09;三、HTML结构标签介绍1. 标签页标题< title >2. 图片标签< img >1) 常见属性2) src路径书写方式 3. 标题标签< h >4. 水平分页线标签< hr > 四、用Vs…

安全的备忘录工具有哪些 安全好用的备忘录

在这个数字化的时代&#xff0c;我们的生活中充斥着各种各样的信息&#xff0c;从工作计划到个人琐事&#xff0c;从账号密码到重要日期&#xff0c;这些信息都需要我们牢记。然而&#xff0c;人的记忆毕竟有限&#xff0c;于是&#xff0c;备忘录工具成为了我们日常生活中不可…

运行 npm install 报错-4048

我在已经开发中的项目&#xff0c;执行 npm install 命令时&#xff0c;出现报错&#xff1a; 并且之前在帖子中提到的报错类型还不一样&#xff08;帖子内容如下&#xff09;&#xff1a; 运行 npm run dev 总报错_运行npm run dev报错-CSDN博客 该报错内容主要为权限导致的&…

C# 编程机器人

右边写代码&#xff0c;控制左边机器人移动 冯腾飞/编程机器人 - Gitee.com

SpringBoot框架学习笔记(五):静态资源访问、Rest风格请求处理、配置视图解析器、接收参数的相关注解详解

1 WEB开发-静态资源访问 1.1 基本介绍 &#xff08;1&#xff09;只要静态资源放在类路径的以下目录&#xff1a;/static、/public、/resources、/META-INF/resources 可以被直接访问。maven项目的类路径即为main/resources目录--对应SpringBoot源码为WebProperties.java类 …

基于STM32的PM2.5监测系统设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 &#x1f91e;大家好&#xff0c;这里是5132单片机毕业设计&#xff0c;今天给大家分享的是《基于STM32的PM2.5监测系统设计》。 设备的详细功能见网…

Nginx 怎样处理请求的重试机制?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 Nginx 怎样处理请求的重试机制&#xff1f;一、为何需要重试机制&#xff1f;二、Nginx 中的重试机制原理三、Nginx 重试机制的配置参数四、Nginx 重试机制的实际…

GPT盘新增容量后如何扩容?

场景&#xff1a;一块5T的GPT盘&#xff0c;现有需求再加10T&#xff0c; 在虚拟化平台加10T盘后&#xff0c;机器不重启&#xff0c;执行命令 echo 1 > /sys/block/sdb/device/rescan刷新磁盘容量&#xff0c;可看到容量已刷出。 但执行fdisk /dev/sdb时&#xff0c;发现创…

《0基础》学习Python——第二十二讲__网络爬虫/<5>爬取豆瓣电影封面图

一、爬取豆瓣电影的图片封面 1、经过上节课我们所爬取的豆瓣电影的电影名、年份、国家、导演、主演、剧情&#xff0c;那么接下来我们将学习如何去爬取这些电影的图片&#xff0c;并将这些图片存放在文件夹中。 2、过程实现&#xff1a; 2.1、获取网页源码 首先还是和爬取电影名…

Air780EP-AT开发-HTTP应用指南

简介 关联文档和使用工具&#xff1a; AT固件获取AT指令手册 概述 4G模块支持HTTP和HTTPS协议&#xff0c; HTTP应用的基本流程如下&#xff1a; 1、激活PDP&#xff08;参考&#xff1a;http://oldask.openluat.com/article/937&#xff09;2、初始化HTTP服务3、设置HTTP会话…

服务器上使用Docker部署sonarQube,并集成到Jenkins实现自动化。

目标是要在目标服务器上使用docker工具部署好sonar环境&#xff0c;然后再集成到Jenkins中实现自动化的代码审查工作。 Docker 首先Dokcer的源大部分现在都用不了&#xff0c;于是我上网查询&#xff0c;终于找到了一个可用的镜像。 编辑/etc/docker/daemon.json文件&#x…

Linux中的时间函数

参考&#xff1a; 几种取时间的方法&#xff08;附代码&#xff09; Linux中gmtime和localtime的区别(time_t格式转换为tm格式) C 库函数 - time() mktime和localtime_r能在多线程环境下使用么&#xff1f; Linux_C环境编程&#xff1a;时间日期函数总结 细说时间测量RDT…

探索NVM:让Node.js开发如虎添翼的利器

文章目录 前言一、NVM简介&#xff1a;版本管理的瑞士军刀二、NVM能解决什么问题&#xff1f;三、如何使用NVM​&#xff1f;总结 前言 在这个日新月异的编程世界里&#xff0c;Node.js凭借其高效的非阻塞I/O操作和轻量级的事件驱动模型&#xff0c;成为了全栈开发、微服务架构…