【信息安全】深度分析邮件安全及钓鱼攻击防范

news2025/1/18 6:53:42

本博文共计3100余字,预计需阅读20分钟

【邮件安全建设】

一、前言

        邮件系统作为企业办公网络架构中重要的组成部分,同时也是业务高频使用的办公应用,一旦出现安全问题,业务将会被严重干扰甚至中断,本篇博客通过攻守两个方面,深度介绍邮件系统安全防御的内容。

        邮件服务通常受到以下几个方面的安全威胁或干扰:

  1. 垃圾广告邮件
  2. 诈骗类钓鱼邮件攻击
  3. 携带勒索病毒附件邮件攻击
  4. 邮件发件人伪造
  5. 邮件服务器本身的安全漏洞

        通过部署合理的安全防护架构和加固邮件服务器可以大幅度降低以上风险,下面的内容也主要从这两方面展开,当然做完这两项工作并不能代表邮件安全从此“高枕无忧”,安全工作像是垒积木,安全架构的部署只是垒积木的第一步,安全建设永远是动态的,没有一劳永逸的安全解决方案。

二、Gartner - 如何构建有效的电子邮件安全体系结构

        全球技术权威咨询机构Gartner最早在2018年提出电子邮件防御的安全体系架构(How to Build an Effective Email Security Architecture)。

        Gartner指出邮件安全防护是一个系统工程,涉及的内容包括网络、协议、应用、终端等多个方面

        在本篇博客中我们重点探讨网络架构和安全配置方面可以有效提升邮件安全的动作,因为这对任何一个企业都是较为简单但是安全防护收益最大。

三、快速构建基础的邮件安全防护架构

        传统的邮件安全防护体系包含邮件安全网关、邮件沙箱、邮件服务器三个重要的组件。

        邮件安全网关作为连接外部互联网和内部DMZ区的第一道屏障,承载了垃圾邮件、广告钓鱼邮件、病毒特征较明显的攻击邮件的第一层过滤任务。

        对于一些经过携带自签名、免杀处理附件的“安全邮件”,常规的邮件安全网关往往无法拦截,这一类邮件危险系数极大,通常是攻击者实施的精准钓鱼攻击,攻击附件一般是经过伪装的勒索加密程序或者远控木马程序,一旦被企业员工点击运行,将会对内网造成毁灭性风险。

        为应对此类潜在的安全风险,邮件沙箱出现在较多的安全解决方案中,邮件沙箱的基本技术原理在于可以动态分析邮件中携带的链接、文件附件,通过模拟运行的方式检测安全性,检测通过的邮件放行,异常邮件隔离。避免恶意文件被投递到员工PC端。

        通过这种层层过滤、安全检测的机制可以大幅度减低恶意邮件攻击带来的风险,当然这不代表没有恶意邮件漏过,对于钓鱼邮件安全防御的内容在下一章节【钓鱼邮件防范】重点介绍。

 四、邮件安全认证技术

        当前 Email 通信,还是在使用 SMTP 这个协议,SMTP协议工作在应用层,使用25端口。SMTP 的全称为 Simple Mail Transfer Protocol,即简单邮件传输协议。SMTP 实际上是一个非常简单(甚至简陋)的传输协议,本身并没有很好的安全措施。为提升邮件服务的安全性,这里介绍三个重要的邮件安全认证技术:

       4.1、SPF,全称为 Sender Policy Framework,发件人策略框架使用SPF记录

        (1)域名所有者在他们的DNS服务器上注册一个TXT记录,与DKIM记录托管密钥信息的方式相同。TXT信息列出了所有被批准代表域发送电子邮件的电子邮件服务器。如果攻击者使用欺骗的消息头,SPF记录使接收方的电子邮件服务器能够检测欺诈消息,并阻止它们到达预期受害者的收件箱。 SPF记录只能确保欺骗的电子邮件消息不能发送给接收方,但它不能保证攻击者没有篡改消息。

        (2)SPF记录语法介绍

        SPF语法主要包含以下几类参数:

all | ip4 | ip6 | a | mx | ptr | exists | include

        每个参数有四种类型的前缀:

"+"  Pass(通过)
"-"  Fail(拒绝)
"~"  Soft Fail(软拒绝)
"?"  Neutral(中立)

       验证SPF的返回值,可以判断SPF的配置是否规范:

结果含义服务器处理动作
Pass发件IP是合法的接受投递信件
Fail发件IP是非法的拒收投递信件
Soft Fail发件IP是非法的接受信件,但会做标记
NeutralSPF记录中没有发件IP是否合法的信息接受投递信件
None服务器没有设定SPF记录接受来信
PermError发生了严重错误(例如配置语法错误)接受/拒绝,状态不可控
TempError发生了临时错误(例如DNS查询失败)接受/拒绝,状态不可控

          示例语法:  

       只允许在 192.168.0.1 ~ 192.168.255.255 范围内的 IP    

"v=spf1 ip4:192.168.0.1/16 -all"

    它表示支持当前域名的 a 记录和 mx 记录,同时支持一个给定的 IP 地址;其他地址则拒绝:

v=spf1 a mx ip4:182.126.82.125 -all

  

         4.2、DKIM(域名密钥识别邮件,DomainKeys Identified Mail))

       (1) DKIM协议允许组织通过以邮箱提供商可以验证的方式签署消息来承担传输责任。DKIM记录验证通过加密认证成为可能。 实现像DKIM这样的电子邮件认证技术是保护您的员工和客户免受有针对性的电子邮件攻击的最佳方法之一。

      (2)配置DKIM记录的流程

        a.生成密钥对,首先在邮件服务器上使用相关套件生成公私钥,公钥用于验证邮件真实性,私钥用于对邮件进行签名。

        b.将公钥以TXT记录的形式添加到域名的DNS配置中。

        c.配置邮件服务器的DKIM配置,如导入私钥。

        4.3、DMARC(基于域的消息认证、报告和一致性认证,Domain-based Message Authentication, Reporting & Conformance)

        该认证记录也是TXT记录中的一种,是一种基于现有的SPF和DKIM协议的可扩展电子邮件认证协议,其核心思想是邮件的发送方通过特定方式(DNS)公开表明自己会用到的发件服务器(SPF)、并对发出的邮件内容进行签名(DKIM),而邮件的接收方则检查收到的邮件是否来自发送方授权过的服务器并核对签名是否有效。

      

【钓鱼邮件防范】

一、依托安全防护组件进行防范

        通过部署基础的邮件安全网关、邮件安全沙箱完成第一阶段的安全防护架构部署,通过引入终端杀毒/本地HIDS终端防护/数据防泄漏,进行第二阶段的安全防护结构部署。

二、加入反网络钓鱼联盟

        依托一些成熟的国际/国内 反网络钓鱼联盟小组可以共享安全情报,达成分钟级的数据共享,可以有效防范网络钓鱼。

       这里介绍 反网络钓鱼工作组(APWG) ,作为一个国际联盟,致力于消除网络钓鱼及相关事件引起的欺诈和身份盗窃它汇集了受网络钓鱼攻击影响的企业:安全产品和服务公司、执法部门机构、政府机构、行业协会、区域性国际条约组织和通公司。

        APWG由David Jevans于 2003 年创立,拥有来自全球 1700 多家公司和机构的 3200 多名成员。成员包括卡巴斯基实验室、BitDefender、赛门铁克、McAfee、VeriSign、IronKey和Internet Identity等领先的安全公司。金融业成员包括ING 集团、VISA、万事达卡和美国银行家协会。

三、邮件相关服务的加固

        严格检查邮件服务的安全配置是否规范,检查内容包括邮件域的SPF配置、DKIM配置和DMARC配置。

        邮件服务器本身的安全漏洞检查,非必要端口的关闭,服务收敛等基本安全防护操作。

四、安全意识培训、宣传

        千里之堤毁于蚁穴,钓鱼邮件之所以被攻击者高频使用,就是因为攻击成本非常低,但是攻击收益非常高,从内部提升员工的安全意识,拉高员工安全防护意识的”整体水位“是长期但有效的方式。

        可以通过定期的安全意识培训、培训考核、公司内部安全意识材料分发、安全意识海报的张贴等方式,进行安全意识宣贯。

        企业现在做的一场培训在未来可能就会挽救一次网络安全危机,这是对未来的投资。

本文完,感谢阅读!

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

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

相关文章

react中实现拓扑图

react中实现拓扑图关系图 需求echarts代码react代码 需求 项目中的原型图需要使用react实现一个拓扑图(关系图) 通过查找,找到了可以使用的类似的原型:以下图片地址。 通过项目需要以及修改,形成了下边的样式 echar…

Java--业务场景:获取请求的ip属地信息

文章目录 前言步骤在pom文件中引入下列依赖IpUtil工具类在Controller层编写接口,获取请求的IP属地测试接口 IpInfo类中的方法 前言 很多时候,项目里需要展示用户的IP属地信息,所以这篇文章就记录一下如何在Java Spring boot项目里获取请求的…

Java--业务场景:在Spring项目启动时加载Java枚举类到Redis中(补充)

文章目录 前言步骤测试结果 前言 通过Java–业务场景:在Spring项目启动时加载Java枚举类到Redis中,我们成功将Java项目里的枚举类加载到Redis中了,接下来我们只需要写接口获取需要的枚举值数据就可以了,下面一起来编写这个接口吧。 步骤 在…

[算法与数据结构][c++][python]:C++与Python中的赋值、浅拷贝与深拷贝

C与Python中的赋值、浅拷贝与深拷贝 写在前面:Python和C中的赋值与深浅拷贝,由于其各自语言特性的问题,在概念和实现上稍微有点差异,本文将这C和Python中的拷贝与赋值放到一起,希望通过对比学习两语言实现上的异同点&a…

超市商品管理系统设计 C++实现

超市商品管理系统设计—C实现 文章目录 超市商品管理系统设计---C实现一、内容要求大纲图 二、源代码(包含大量注释)1、main.cpp文件2、supermarket.h文件3、supermarket.cpp文件4、administrator.h文件5、administrator.cpp文件6、user.h文件7、user.cp…

系列十二、数组

一、数组 1.1、概述 数组是指可以同时存放固定长度的同一类型的数据。 1.2、数组的声明 数组的声明有三种方式,具体如下: 1.2.1、方式一 /*** 声明数组的第一种方式* cityArray:数组名,注意:不包括[]*/ Test public void d…

MySQL的导入导出及备份

一.准备导入之前 二.navicat导入导出 ​编辑 三.MySQLdump命令导入导出 四.load data file命令的导入导出 五.远程备份 六. 思维导图 一.准备导入之前 需要注意: 在导出和导入之前,确保你有足够的权限。在进行导入操作之前,确保目标数据…

C2-3.3.2 机器学习/深度学习——数据增强

C2-3.3.2 数据增强 参考链接 1、为什么要使用数据增强? ※总结最经典的一句话:希望模型学习的更稳健 当数据量不足时候: 人工智能三要素之一为数据,但获取大量数据成本高,但数据又是提高模型精度和泛化效果的重要因…

代码随想录-刷题第五十二天

300. 最长递增子序列 题目链接:300. 最长递增子序列 思路:动态规划五步曲: dp[i]表示从0到i,以nums[i]结尾的最长递增子序列的长度。 递推公式:if(nums[i]>nums[j]) dp[i] max(dp[i], dp[j] 1) 位置i的最长升序…

Spring cloud聚合父工程project

文章目录 本次微服务版本一. 新建父工程project1.1设置字符集utf-81.2注解生效激活1.3. Java8编译版本 二. 父工程 pom.xml 本次微服务版本 一. 新建父工程project 1.1设置字符集utf-8 1.2注解生效激活 1.3. Java8编译版本 二. 父工程 pom.xml <?xml version"1.0&quo…

HTTP 3xx状态码:重定向的场景与区别

HTTP 状态码是服务器响应请求时传递给客户端的重要信息。3xx 系列的状态码主要与重定向有关&#xff0c;用于指示请求的资源已被移动到不同的位置&#xff0c;需要采取不同的操作来访问。 一、301 Moved Permanently 定义&#xff1a; 服务器表明请求的资源已永久移动到一个新…

Python多线程同步

同步条件(Event) 在Python中&#xff0c;多线程同步可以通过threading模块中的Event对象来实现。Event对象允许一个或多个线程等待某个事件的发生&#xff0c;当事件发生时&#xff0c;等待的线程将被唤醒。 event.isSet()&#xff1a;返回event的状态值 event.wait()&#x…

Vue-11、Vue计算属性

Vue计算属性是Vue实例的属性&#xff0c;用来根据已有的数据进行计算得到新的数据。计算属性的值会根据它的依赖缓存起来&#xff0c;在依赖没有发生改变时直接返回缓存的值&#xff0c;提高了性能。 计算属性的定义方式为在Vue实例中使用computed关键字&#xff0c;并将计算属…

Pycharm中如何配置python环境(conda)

首先在pycharm中点击 "File" > "Settings" 再次点击如下操作&#xff1a; 点击Python Interpreter的最右侧按钮&#xff0c;点击Show All... 找到python文件 最后点击OK

YOLOv8改进 | 主干篇 | 12月最新成果UniRepLknet特征提取网络(附对比试验效果图)

一、本文介绍 本文给大家带来的改进机制是特征提取网络UniRepLknet,其也是发表于今年12月份的最新特征提取网络,该网络结构的重点在于使用Dilated Reparam Block和大核心指导原则,强调了高效的结构进行通道间通讯和空间聚合,以及使用带扩张的小核心进行重新参数化,该网络…

实现LCM在docker之间的通信

目录 1.docker容器互联 新建网络 连接容器 2.设置环境变量 3.在两个docker之间实现通信 1.docker容器互联 新建网络 $ docker network create -d bridge test-net 连接容器 运行一个容器并连接到新建的 test-net 网络: $ docker run -itd --name lcm_1 --network tes…

Postman工具初学一篇快速入门教程

文章目录 下载安装注册登录CollectionFolderRequestGet请求Post请求Header设置Response响应 EnvironmentsGlobal环境变量其他环境变量Collection变量变量使用同名变量的优先级 Postman内置变量Pre-request script和Test script脚本设置、删除和获取变量获取请求参数获取响应数据…

无失真编码之算术编码的python实现——数字图像处理

原理 无失真编码中的算术编码是一种用于将输入数据进行高效压缩的方法&#xff0c;同时保留了原始数据的完整性。 算术编码的实现过程如下&#xff1a; 数据分段&#xff1a;首先&#xff0c;将要进行编码的数据划分为一个个符号或字符。每个符号可以是文本中的一个字母、一幅…

数学建模-Matlab R2022a安装步骤

软件介绍 MATLAB是一款商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境&#xff0c;主要包括MATLAB和Simulink两大部分&#xff0c;可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程…

jenkins构建git项目timeout

问题点&#xff1a; Started by user unknown or anonymous Running as SYSTEM Building in workspace /var/jenkins_home/workspace/test-one using credential f28d956-8ee1-4f20-a32b-06879b487c70 Cloning the remote Git repository Cloning repository http://git.cc.co…