企业级邮件安全攻防剖析
2022-7-19 19:8:37 Author: FreeBuf(查看原文) 阅读量:41 收藏

从Email诞生到今天,SMTP协议没有从底层变化,仅仅增加了一些安全协议。这对攻击者来说邮件成了一个突破边界的最好的入口之一。随着攻击水平的上升,邮件防护水平也在不断的上升,在不断地攻防对抗中逐渐演化成了四代攻击模型。

上世纪末整个邮件网络内的攻击行为基本就是广告邮件和垃圾邮件,因此诞生了现代网关的雏形,反垃圾邮件网关。

在病毒、木马、蠕虫疯狂发展的和传播的年代,邮件是最好的载体。因此攻击者将单纯的广告、垃圾邮件舍弃,进化为第二代邮件攻击——携带恶意执行文件的邮件。于此同时垃圾邮件网关也不断提升变成了防毒邮件网关。

在邮件网关不断的进化和学习下,传统未免杀的病毒已经无法穿透网关。但是攻击者把攻击对象从机器转向了企业人员。邮件的攻击载体变成了文本内容,逐渐将攻击的重心转到钓鱼和诈骗上,从而潜移默化的诞生了第三代的邮件攻击。为了抵御钓鱼和诈骗,涌现了一批能分析文本内容的邮件网关,也就是现在市面上大家所熟知的邮件网关。

在攻与防的不断对抗中,攻击者的水平已经不断提升到能轻松的绕过现代的邮件网关。导致ATO(账号接管)和APT邮件、BEC(商业诈骗)泛滥成灾。各大企业为之头疼无比。市场上急需检测能力更强、更智能的邮件防护系统。

 邮件安全面临的两大安全威胁问题 

邮件内容安全

总结上来说,恶意邮件的利用方式只有两种载体,附件和正文(正文中会包含图片、链接)。只要能做到不管什么情况下不运行存疑的附件、不点击邮件中的链接、不输入任何敏感信息以上三点,企业的邮件安全就是牢不可破的铁板。

恶意office文件

office文件是office宏病毒的重灾区,目前各大沙箱对office宏的检测能力还算及格,但是一旦涉及到免杀宏、远程模板加载等新攻击的方式,沙箱会束手无策。

比如一个.docx文件,docx后缀的word文档是默认不启用宏的,但是可以通过远程加载一个模板来实现带宏病毒的模板文件替换本地的.docx文档。

【图:office宏病毒绕过检测的方式】

同时并不是只有word文件有宏病毒,Excel也是爆出过CVE-2018-0802、CVE-2017-11882等多个CVE。

恶意执行文件

除了常见的office文件具有很大的迷惑性以外,任何可执行文件都有被制作成恶意文件的可能性,这个时候就需要考验沙箱和网关对恶意可执行文件的检测能力,更重要的是考验对不常见的可执行文件名称的检测能力。比如.iqy .wsh这种不常见后缀的可执行文件。

加密压缩包

市面上绝大多数网关无法解开加密的压缩包,但是加密压缩包却是最常见的APT攻击手法之一,这种情况下就需要安全运维人员对这些重点邮件多进行关注。配合网关将所有的加密压缩包邮件单独提取出来进行检测。

【图:一封真实的APT攻击邮件】

文本

诈骗文本    

诈骗文本通常是定向发送给安全意识较为薄弱的企业人员或者部门。最前最主要的威胁就是BEC(商业欺诈邮件),这种攻击方式主要针对的是企业内的财务人员,通常会冒充企业高管给财务人员发送需要挪用资金或者向供应商打款的邮件。

勒索文本

勒索文本在WannaCry病毒爆出的那段时间内特别流行,因为企业不清楚自身到底是否存在机器沦陷,不过在网关完善和漏洞响应机制健全的现在,勒索邮件基本上不会有人中招。

广告垃圾

由于各大邮件服务商都会引入DNSBL技术,使得垃圾邮件都会被打上SPAM标签被拒收,所以广告之类的垃圾邮件对安全的威胁性较小。

链接

伪造的URL链接

伪造URL一般都会结合诈骗文本使用,在邮件中的URL是可以编辑的,从而使得邮件真正的跳转URL和文本中显示的URL不一致。不过目前的邮件安全网关能较好的识别这种攻击,还原出真实URL并做出告警。

有的企业解决的思路更为安全,将所有邮件中的URL全部提取出来跑一遍威胁情报,确认安全的再放回源邮件,不安全的邮件则打上警告标签,等待二次确认。

短链接跳转

短链接是攻击者为了绕过URL检测的一种新思路,很多企业的网关或者是沙箱在内网,但是短链接的跳转需要依靠公网,比较智能的网关会打上威胁标签,毕竟正常的邮件中很少会出现短链接。但是没那么优秀的网关就会把这些威胁URL放过,导致企业出现安全隐患。

图片

恶意二维码

恶意二维码其实就是把钓鱼链接或者是其他恶意链接生成二维码放到邮件正文当中,很多情况下企业的邮箱是不出公网的,或者是公网和内网有两套邮件系统。在这种情况下钓鱼链接没法点击,只能通过手机扫码来诱导受害者点击和填入敏感信息。

恶意内容图片

为了绕过对邮件正文的检测,很多攻击者喜欢把钓鱼、诈骗、勒索的信息放到一张图片中,毕竟通过OCR识别威胁极少有人做。

邮件账号安全

在大多数人都只关心能否从邮件接受层防御邮件攻击的时候,攻击者早已经转换了攻击思路从账号层面进行攻击。

获取权限

爆破

测试web及smtp、POP3、imap登录的方式,是否存在爆破的可能性,主要看提示是否做”用户名或密码错误”之类的模糊处理,手动测试测试发现存在相关问题点后,

如:

存在用户密码正确时,提示“认证成功”

存在用户密码错误时,提示“认证错误”

不存在用户密码错误时,提示“非法认证”

可在拥有用户名的基础上,利用“认证成功”及“认证错误”作为特征值,编写脚本进行用户账号遍历。

撞库

很多用户在不同网站使用的是相同的帐号密码,因此攻击者可以通过社工库来对邮件系统进行撞库攻击,这工攻击的成功率往往不低。

劫持嗅探

该种方式适用于获取相关网络设备的权限后进行,如果邮件发送或收取时使用未进行加密的smtp、POP3及imap,我们则可以利用劫持的网络流量,从中提取出对应的邮箱账号及密码等信息。

【图:SMTP中的base64加密流量】
【图:pop3中明文流量】

权限维持

攻击者通过撞库或者社工等方式拿到某一个账号的密码时可以设置代收接管这个账号的所有邮件。有两种方式来长期获取目标邮件

POP3收取

如果是公开邮件服务,通过此方式基本可以无痕的收取所有目标账号上的邮件,如我们可以使用使用gmail代收,设置代收之后在GMAIL中获取的邮件头如下

【图:received头中没有任何关于gmail的信息】

收取邮件为什么要选POP3而不能选IMAP

POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。

而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。

因此如果通过IMAP进行收件后,阅读完毕进行删除,邮件服务器的邮件也会进行删除,容易被账户原主人发现账号的异常问题。

选gmail代收而不是国内直接foxmail收件

如果是自建邮件服务器,则POP3直接收取还是会产生相应的服务器日志,或者存在流量检测设备的话,也可以发现收件主机ip不太正常,那么这个时候选择gmail代收,由于是跨国邮件服务提供商,溯源难度会大幅度增加,一定程度上可以防止溯源到自己。

邮件转发

通过这种方式可以在邮件系统的网页客户端发现痕迹,无法做到完全静默,而且从流量层会发现有大量邮件外发流量。选用gmail理由同上。

在工作中对企业内的邮件安全总结出的一些经验和排查技巧。

 邮件服务器安全检查 

1、注意邮件客户端或者是邮件服务器自身的漏洞,常用的收件客户端foxmaill爆出过XSS,outlook爆出过RCE,邮件服务器爆出过coremail的配置信息泄露、Exchange的SSRF、anymacro的SQL注入。所以及时的更新服务器版本和客户端版本是非常重要的,同时安全管理人员需要时刻的关注有没有最新的0day信息,做好第一时间处理事件的准备。

2、关闭外部通过SMTP、POP3、IMAP直接登录的功能。很多企业空有着铁板一样的web防护,但是邮件服务器25端口是直接暴露在外的,直接telnet上去就可以对内伪造发邮件了。

3、限制同IP和同账号一定时间的登陆频率。

4、如果有条件的话,内对内的邮件使用单独的邮件系统,外到内和内到外使用另一套系统,一旦出网的邮件系统发生了账号失陷问题,对内没法横向移动就能减小影响。

5、尽量不对公网开放web端登录邮件系统的功能,如果有移动办公的需求应该使用企业自身的邮件客户端。

 邮件配置核查 

邮件三大安全协议

SPF、DKIM、DMARC,能完整配置三个协议的企业少之又少,说的通俗一点就是SPF防止别人伪造你发件,DKIM用密钥来校验邮件是否被伪造,DMARC通知收件方服务器当未通过SPF或 DKIM检测时该如何处理。

对于邮件伪造引起的安全问题,SPF、DKIM、DMARC三大策略如果都配置正确,基本可以完全杜绝伪造发件人,其中尤其需要注意的是SPF的配置过程中~all(软拒绝)和-all(硬拒绝)的区别。通常默认是软拒绝,但是软拒绝会把邮件放到垃圾箱,这样不能完全保证安全,所以为了确保不会受到伪造发件人攻击,改为应拒绝拒收邮件比较保险。

同时查询SPF记录的过程中同样会暴露服务器的真实IP,往往很多企业忽略了这些公网IP的安全性!在配置SPF允许范围内的IP时,也需要对这些资产做一次安全性排查!

【图:百度的SPF配置】

RMX协议:

RMX类似于RDNS ,一个MX服务器收到了邮件之后,会去反向查询发件IP地址是否有对应的MX记录解析。

就比如 mx.a.com收到一封IP是1.1.1.1的邮件,该邮件声称自己来自服务器mx.b.com.。这时候mx.a.com会去反向解析1.1.1.1的mx记录看是否能解析出mx.b.com这个域名。

【图:开启反向MX解析需要联系ISP,一个MX服务器如果开启了RMX基本上就完全杜绝了个人IP SMTP发送的邮件。】

开启SSL

这一点应该是必须要做的

设置归档时间:
定期对邮件进行归档,可以防止攻击者拿到收件密码后,过多的收取邮件内容。如果以年为单位进行归档。攻击者就算拿到收件密码,也仅能收取当年度的邮件,这样就可以有效控制数据的泄露范围。如果归档时间更短,则泄密范围就会更小。建议以180天为归档周期,因为企业很少有员工半年不收一次邮件。
配置用户发件权限:
群发邮件对于大部分用户都是很鸡肋的功能,但是对于攻击者来说确是最需要的功能!除了有确定群发需求的账号可以开启无限制群发功能以外,其他的账号都应该限制最大收件人数量,为了彻底贯彻权限最小性原则,更建议所有的通知类邮件都由各部门内的专用通知发件账号发件。
配置单用户发件上限:
为了确保在某一账号失陷后能造成的影响最小化,应该把单用户的发件上限设置一个合理的阈值,再配合群发权限的限制即使单账号实现之后也不能内对内群发大量邮件。

 邮件账号安全防护 

二次认证

登录的时候尽量避免直接使用密码,可以通过密码+短信验证码、密码+内部软件的二次认证码等方式来解决,这样可以完全解决弱口令和web端撞库的问题。

限制登陆口:

限制外部IP通过telnet 25端口连接邮件服务器,很多情况下攻击者可以直接通过命令SMTP来实现邮件内对内伪造发件人发送,这样做不仅绕过了SPF认证,也绕过了web端做的一切防护。而且这个漏洞的非常普遍,企业经常忽略。

禁用web端:

不管什么情况下,公网web端收取邮件始终是存在风险的,可能是爆破撞库,可能是0day。如果不是刚需的情况,建议企业内使用移动端配合客户端的方式来收取邮件。

异常登录锁定:

登陆锁定是防止撞库和爆破的最佳方法,但是可能会遇到恶意输入错密码的锁定行为。通常合理的方法是低阈值短间隔,附加单个IP单日内的上限错误次数。既避免了恶意锁定行为,也避免了撞库爆破攻击。

 邮件的拦截、隔离、预警、应急、溯源 

企业内部应该有自己完整的一套邮件处理流程,包含邮件拦截、拦截成功之后的隔离、预警、未拦截情况下的应急处置和溯源。

拦截

目前的防护体系里对邮件的拦截主要还是依靠网关,网关拦截能力又是有限的,需要不断的去调整规则的松紧度来保证在不影响业务的情况下去最大限度的拦截威胁邮件。很多企业一味追求轻松,为了保证业务邮件的正常发送,把网关拦截策略调成最低,放过大量的高级威胁邮件。这样做非常不可取,还有一种解决方案是在硬件网关前套一层云网关,云网关可以配合第三方厂商来不断优化规则保证对高级威胁邮件的拦截率以及业务的完整性。但在邮件高峰期会造成一定的邮件拥趸,这需要企业来根据自身的情况做取舍。

隔离

当在邮件中检测到威胁、垃圾邮件、限制的附件和/或限制的内容时,客户端可以将此邮件移动到服务器中的隔离文件夹中。此过程将作为邮件/附件删除的备选处理措施,并可防止用户打开受感染的邮件和扩散威胁。

在设置严格的过滤条件时,消除由于误检重要邮件而将其永久删除的可能性

检查触发内容过滤的邮件以确定策略违例的严重性

保留员工可能滥用公司邮件系统的证据

预警

由于网关检测能力是有限的,很多存疑的邮件运维人员也不能一封封的去排查,这个时候预警功能就非常有必要!在邮件服务器中设置一个专用的邮件预警账号,凡是用户在收到存疑的邮件之后预警账户会对用户同时发送一封邮件,标明存疑的地点,比如跳转URL和邮件中显示的URL不一样、文本存在诈骗风险、附件加密压缩等潜在的危险可能。剩下的交给用户自行判研或者转发到专门的运维人员手中判断是否具有威胁。

应急

企业应该有完备的应急预案,模拟单账户沦陷、内网横向发送钓鱼邮件等多种情况,避免在发现问题的时候束手无策,能做到安全事件发生的十分钟内定位到账号,半小时内定位到威胁邮件然后展开溯源。

溯源

安全人员需要有能手工排查邮件头信息的能力,能分辨邮件头中真实的标签和伪造的标签。

邮件头中需要重点关注的主要字段为Received、From、to、subject、cc和bcc五个字段。

Received:该字段的基本格式为Received from A by B for C ,其中A为发送方,B为收件方,C为邮件的收件地址。该字段由接收邮件的邮件服务器添加,可使用该字段来追踪邮件传输路线。

From:在邮件中显示的收件人

To:在邮件中显示的收件人地址

Subject:邮件主题,如果由包含ASCII码以外的字符,需要进行编码

Cc:邮件的抄送地址

Bcc:邮件的暗送地址(邮件客户端通常显示抄送地址而不显示暗送地址)

邮件可伪造的根本原因是基于SMTP协议中几乎所有的字段都可以随意填写形成的,我们使用telnet发送邮件,来理解邮件发送的真实过程。

从上图可看出与我们发出的邮件内容有些不同,多出了Received字段由收件服务器或邮件中继所打上,而大多数高级威胁邮件都会伪造很多received头,这时候能分析头信息是必须要掌握的技能。

 安全意识建设 

钓鱼演练

企业内应当定期组织钓鱼邮件演练,搭配不同的攻击形式,涵盖钓鱼、诈骗、恶意附件等,可以使用GoFish搭建大规模的发送平台,也可以使用SWAKS来进行小规模的发送。

安全意识培训学习

安全意识培训学习主要面向不懂技术的员工,讲清楚威胁邮件的载体,能做到存疑邮件不点击、不输入、不运行三大要素!在做完培训之后可以再做一次钓鱼演练,来对比安全意识培训起到的效果,能对培训的必要性做一个数据证明。

 安全运营情报 

企业内如果有充足的资源和样本,可以构建自己的IOC情报库。在从流量层提出邮件中的发件IP后可以对IP进行IOC的匹配和预警,把从被动收件发现攻击转化成主动匹配情报,及时的发现恶意的攻击组织,避免危害形成或者是扩大。

在企业内推动上文中的运营方式后取得了较为明显的成果,常规的告警流程简化,部分已经实现自动化,运维人员从多台设备来回切换查看告警转换为处理各设备的汇总的syslog即可。在完整配置SPF、DKIM、DMARC、RMX协议后有效的杜绝了发件伪造的行为,实现了向内投递邮件零伪造,同时配合二次认证和异常登陆锁,彻底的避免了账号被爆破、撞库的风险。日均数十万封的总邮件,其中能无告警投递到用户手中的威胁邮件比例低于十万分之一。

ps:笔者曾供职于某乙方安全厂商,实在不能接受厂商销售为了讨好甲方,肆意剽窃知识产权的行为!

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651181450&idx=1&sn=4b5a605a48fadbcac7913e40792340dc&chksm=bd1e43018a69ca17c355baeb21b436b3b25390c58515335786baa29d8f40e5dbae24254052b9#rd
如有侵权请联系:admin#unsafe.sh