返回介绍

16.2 入站安全防护

发布于 2024-10-11 22:28:33 字数 15784 浏览 0 评论 0 收藏 0

站在攻击者角度来看,黑客直接访问外部邮件系统,利用社工库或者暴力破解得到账号密码就可以进入邮件系统,之后在邮件中各种翻找就可以发现更多信息,甚至找到下一步要攻击的对象;或者发一封邮件给企业内部的员工,邮件中包含恶意的 URL,需要配合点击访问甚至是诱导用户输入自己的用户密码;又或者是邮件包含了恶意的附件,目标用户一旦执行,恶意附件就会控制电脑权限,甚至加密电脑上的文件以便进行勒索。

16.2.1 邮箱账号暴力破解

邮箱暴力破解,除了常见的通过 POP3、SMTP、IMAP 协议进行频繁认证请求外,还有一些是通过访问邮件系统登录页面进行的,比如渗透测试人员非常喜欢的 OWA 或者 EWS 接口,图 16-2 为某 OWA 登录界面。

图 16-2 OWA 登录接口图

大企业员工较多,对外的邮箱基本按名字拼音+域名组合,而邮箱往往又与域账号有关,很多企业的域账号又与员工编号有关。总之,对于别有用心的攻击者来说,利用 SMTP、POP3、IMAP 等协议或请求 Web 登录页面进行猜解,其成功率还是很高的。很多企业邮箱和 AD 做了集成,如果出现了大量暴力破解可能会触发 AD 的账号锁定机制,但这样也在一定程度上影响了企业的正常办公。

针对 SMTP、POP3、IMAP 等协议的暴力破解,邮件网关一般都具备相应的应对功能,比如黑白名单、连接限制、目录攻击防护,而针对 Web 登录页面的防护,主流的方法是使用双因素认证,有条件的企业可以考虑不将登录页面暴露在互联网上。

微软官方也有相应的文章介绍如何在 OWA 上配置 RSA SecurID [1] 。从技术上来讲,Web 页面实现双因素认证还是很容易的,比如通过 Nginx 反向代理实现。但邮件还涉及 SMTP、IMAP、POP3 甚至 Exchange 协议,确实需要花费精力。FreeBuf 上有篇改造 Nginx 让邮件系统支持双因子认证的文章 [2] ,有兴趣的读者可以了解一下。

某企业将邮件系统与 OA 系统对接,账号登录认证在 OA 上完成,当需要使用邮件时,由 OA 直接跳转到邮件系统即可,中间根本不需要用户输入邮箱密码,所以该企业员工根本就不知道自己邮箱密码是什么。这样就可以在后台全局禁止 POP3、IMAP 等协议,减少风险窗口。而针对 OA 系统则采用证书的方式进行保护,即在外网无法直接登录,需要在机器上导入跟个人相关的证书才行,这样就可以有效规避暴力破解风险。在实际运营过程中,还需要关注一些测试、临时开放的 OWA 登录页面,以及 EWS 接口建议限制来源,监测相关认证日志,有问题及时阻断恶意来源。做针对性的测试,若发现没有此类登录失败日志,则需要检查与账户登录相关的审核策略,看是否有了开启 Kerberos 相关的登录验证审核。

[1] 更多内容请参考:https://technet.microsoft.com/zh-cn/library/bb974232(v=exchg.80).aspx。

[2] 链接:http://www.freebuf.com/articles/network/135640.html。

16.2.2 邮箱账号密码泄露

有些员工喜欢在外面一些网站上使用公司邮箱注册账号,可能还在多处使用同一个密码,比如我们所熟知的 CSDN 论坛。一旦这些网站安全措施不到位,也可能间接导致邮箱账号密码泄露。

针对此类问题,建议的做法是常态化的弱口令扫描,同时注意结合外部泄露发生时的主动提醒。邮箱账号密码弱口令扫描工具,网上有很多现成的工具,就不再赘述。搞渗透的同学喜欢收集网上各种社工库,当有某库泄露出来的时候,建议看看有没有与自己企业相关的邮箱,如果有,尽量通知一下,将相关程序做成标准模板,下次泄露发生时还可以直接使用。

16.2.3 垃圾邮件

针对垃圾邮件,常规的做法是部署反垃圾邮件模块或者网关,通常效果不错。某位业务人员向笔者反馈,大量发给 QQ 邮箱的通知邮件失败,希望我们能联系 QQ 邮箱解决。与腾讯相关人员进行联系后,对方反馈由于前一天收到大量来自我们通知邮箱的通知邮件,所以将我们对应的邮箱加入了黑名单。临时处理后,我们开始研究相应的解决方案,如 SPF、DKIM、DMARC、RDNS 等。

1.SPF

SPF(Sender Policy Framework)是一种以 IP 地址认证电子邮件发件人身份的技术。当你定义了你域名的 SPF 记录之后,接收邮件方会首先检查域名的 SPF 记录,来确定连接过来的 IP 地址是否包含在 SPF 记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回或丢弃处理。其工作原理图如图 16-3 所示。

SPF 可以防止别人假冒你来发邮件,是一个反伪造性邮件的解决方案。设置正确的 SPF 记录可以提高邮件系统发送外域邮件的成功率,也可以在一定程度上防止别人假冒你的域名发邮件。

2.DKIM

DKIM(Domain Keys Identified Mail)是一种防范电子邮件欺诈的验证技术,通过消息加密认证的方式对邮件发送域名进行验证。在发送邮件时,发送方会利用本域私钥加密生成 DKIM 签名,并将 DKIM 签名及其相关信息插入邮件头,而邮件接收方接收邮件时,通过 DNS 查询获得公钥,并验证邮件 DKIM 签名的有效性,从而确保在邮件发送的过程中,邮件不会被恶意篡改,保证邮件内容的完整性。签名是先对 body 部分进行 HASH,然后把这个 HASH 值放在邮件头里面,再对头部做签名。头部也不是所有字段都签名的,只有一些常用的字段,或者比较有意义的字段会被签名。其工作原理如图 16-4 所示。

图 16-3 SPF 工作原理图

通过 QQ 邮箱发出一封邮件,观察其邮件头,有 DKIM 签名,如图 16-5 所示。

其中,s=s201512,会去查对应的 DNS 记录 s201512._domainkey.qq.com,获取公钥用于验证,而 h=后面一长串字符串则表示会对邮件头中的 Form、To、Subject 等字段进行签名,意味着如果邮件中这些字段任一个被修改就会校验失败。

图 16-4 DKIM 工作原理图

3.DMARC

DMARC(Domain-based Message Authentication,Reporting&Conformance)是一种基于现有的 SPF 和 DKIM 协议的可扩展电子邮件认证协议,在邮件收发双方建立了邮件反馈机制,便于邮件发送方和邮件接收方共同对域名的管理进行完善和监督。DMARC 要求域名所有者在 DNS 记录中设置 SPF 记录和 DKIM 记录,并明确声明对验证失败邮件的处理策略。邮件接收方接收邮件时,首先通过 DNS 获取 DMARC 记录,再对邮件来源进行 SPF 验证和 DKIM 验证,对验证失败的邮件根据 DMARC 记录进行处理,并将处理结果反馈给发送方。其工作原理如图 16-6 所示。

DMARC 能够有效识别并拦截欺诈邮件和钓鱼邮件,保障用户个人信息安全。通过测试我们发现 QQ 邮箱将以上三种措施都实施了,对应的 DNS 查询如图 16-7 所示。

从图 16-7 中可以看到,既有 SPF 记录,也有 DKIM 记录,更有 DMARC 记录,注意都是 txt 类型的。

图 16-5 QQ 邮件头部信息

4.RDNS

除了以上三种方案外,还有 RDNS,即反向解析,把 IP 解析为域名,有时候邮件发出去被退信,选择 RDNS 会好很多,但这需要找运营商去实施。

5.部署落地

对比以上技术方案,SPF 只需做 DNS 记录上的调整;DKIM 除了 DNS 设置外还涉及邮件网关上的密钥生成及配置;DMARC 则在 SPF 和 DKIM 基础上多了一个反馈共享机制,需要配套的邮箱来接收这些信息。建议从易到难的方式来实施,实际过程中还需多验证、从子域名着手开始部署,逐步推进。

qq.com 的配置如下:


qq.com text = "v=spf1 include:spf.mail.qq.com -all"

spf.mail.qq.com 是一长串的内容:


spf.mail.qq.com text ="v=spf1 include:spf-a.mail.qq.com include:spf-b.mail.qq.com include:spf-c.mail.qq.com include:spf-d.mail.qq.com include:spf-e.mail.qq.com"

图 16-6 DMARC 工作原理图

图 16-7 QQ 邮箱 SPF_DKIM_DMARC 记录

一直到 spf-a.mail.qq.com 才能看到真实的 IP 地址,其主要原因是腾讯邮箱的服务器太多了,IP 地址段非常多,而 include 语法有长度的限制,所以这是需要关注的。这里还有个细节需要在运营的时候关注,IP 地址过多尤其是写网段的,随着 IP 地址的分配变化,有些 IP 已经不属于该业务或者该企业了,但 SPF 记录如果未更新的话,可能会被别有用心的人利用。

配置好之后,有个在线网站可以帮你评估: www.mail-tester.com ,它会出现一个随机的邮箱,从你的邮箱发一封邮件过去,它就会自动评分,打对勾的表示测试通过,有扣分的会详细告诉你情况。

在邮件网关处对来源 IP 做 SPF 检查,可以有效阻断一些伪造的电子邮件,但在我们实际运营过程中,发现有利用知名公司域名的子域来投递恶意邮件的,这个需要关注,比如有一天你收到来自 xx@support.microsoft.com 的邮件,标题是与 hotfix update 相关的内容,你会点开吗?

16.2.4 邮件钓鱼

除了垃圾邮件外,邮件网关往往还会收到大量的钓鱼邮件,一般是在邮件中嵌入 URL 链接、img 图片、iframe 框架甚至 XSS 代码等。针对此类问题,首先需要关注的是,邮件网关的钓鱼邮件防护能力;其次是邮件系统在向用户展示邮件时对恶意代码的过滤能力;最后是终端及网络上的防护控制。

值得一提的是,在企业中主动对员工发起钓鱼邮件测试,也不失为一个好办法。一方面可以看看现有邮件网关、邮件系统、终端、网络方面的安全防护能力到底如何;另一方面可以加强用户的安全意识教育。

通过一定的技术手段,当被测试对象打开钓鱼邮件的时候,我们可以发现哪些人点击访问了这些特意构造的链接,我们注意到有一个 116 开头的 IP 非常多,反查一下居然是某邮件网关厂商的 IP。

这也间接证明,邮件网关还是在认真干活的,通过其云端机制请求了我们的 URL,起到了有效的防护作用。

16.2.5 恶意附件攻击

邮件网关一般都会集成杀毒引擎或云查杀功能对邮件附件进行检查,当发现病毒时进行隔离或做丢弃处理。很多企业对上网控制得比较严,黑客通过发送带 URL 的钓鱼邮件很难奏效,所以我们在实际过程中,更多是发现邮件带恶意附件的情况。结合笔者实际经验,我们将对抗分为几个阶段,从初级的可执行文件,到脚本文件,再到 Office/PDF 等办公文档,同时在其中引入沙箱、情报、安全运营的概念,供大家参考。

1.可执行文件与沙箱

某日,我们对入站邮件的附件进行分析,得到一个很惊人的数据—直接投递可执行文件的邮件占到了恶意邮件的 90%!于是我们开始针对 exe、dll 等可执行文件直接在邮件网关上进行过滤,凡是附件是可执行文件的直接隔离,以暴制暴,猫和老鼠的游戏从这里开始!exe 不行了就开始有压缩包,压缩包邮件网关也还是能识别的,exe、dll 没了,但还有好多可执行文件格式可以利用,图 16-8 是我们遇到的一起案例样本。

图 16-8 putty.zip 样本图

邮件附件名是 putty.zip,搞运维的同学都不陌生,点进去就是一个 src 屏保文件,双击就执行了。于是游戏继续。某日,我们又发现一个附件是加密压缩包,而且将密码写在邮件中。将这个压缩包下载,输入邮件正文中的密码进去发现是个 CPL 的文件,如图 16-9 所示。

图 16-9 带密码的恶意样本

这个 CPL 双击也是可以执行的,执行之后会启动 Word 打开一个 doc 文档,大约 4 分钟后会与外部通信。带密码的网关默认是没法解密了,不过也还是有办法,如果发现附件是加密的,但同时又在邮件正文中出现密码、password 等关键字,可以在邮件网关上做进一步的处理。现在市面上有一些网关号称可以提取邮件中的密码对压缩包进行解密,也可以实际测试一下效果和性能。

针对可执行文件,除了依靠邮件网关防护外,建议有条件的企业接入沙箱:一种是将邮件流量丢给沙箱设备;另一种是直接将邮件网关和沙箱集成。这样的好处是,当发现邮件网关防护失效后,还可以依靠沙箱进行发现,并且可以不断通过查漏补缺的方式提升现有邮件网关的安全防护能力。

某日,我们又发现漏放进来了几封邮件,居然还是.7zip 的压缩包,里面赤祼祼的还是一个可执行文件。经过不断测试发现,7-zip 有四种压缩方式,而现版本的邮件网关居然只支持其中一种压缩方式,其他三种都无法正常检测。这算是一个坑,经过验证,大版本升级后能解决,但这个细节还需要引起大家的注意。针对压缩包进行检测的场景,邮箱入站检测、后端沙箱、出站检测都会涉及,不支持就意味着有被突破的风险。还有一些产品,默认有一些参数,比如针对大的 Office、PDF 可能不会进行检查,也需要引起关注,在产品测试选型阶段就要搞清楚,以便采取针对性的措施或方案进行弥补。

2.脚本文件

除了可执行文件,邮件网关还会接触到各种各样的脚本文件,比如 JS、JSE、VBS、VBE 文件。我们以 JSE(JScript Encoded Script)为例说明。为什么 JSE 双击就可以运行,其实这与操作系统的环境变量设置有关,如图 16-10 所示。

图 16-10 JSE 环境变量设置

从图 16-10 可以看出,VBS、VBE、JS、JSE 等文件可以直接被执行。

注意:

如果终端机器不需要执行各种脚本,可以直接在环境变更里做修改进行适当的屏蔽。

下面是我们从真实环境中抓到的一些样本截图,比如图 16-11 是 JSE 的勒索病毒样本。

这个 JSE 并非真正被微软加密过的 JSE 文件,而是病毒作者自己用了各种技术写成的一个脚本。仔细分析,可以得知脚本经过混淆和加密—一个是变量加长混淆;一个是关键函数加密。变量加长的前缀为 wololosampsonFROG2 或者 Wololosampson。针对此类的变种,基本的思路是替换,将 wololosampsonFROG2 替换为空,然后将 Wololosampson 替换为空,得到的结果如图 16-12 所示。

这时候余下的就是作者自定义的加密函数了,考验人耐心的时候到了。图 16-13 是真正解密后的关键代码,为了方便大家看懂加入了一些注释。

整个脚本的流程就是访问特定 URL 下载病毒文件并执行,这里下载后的文件是加密的文件,需要解密后再执行,最后的效果是在感染机器上启动浏览器,打开页面如图 16-14 所示。

随着 PowerShell 的流行,我们也抓到下面这样一个 JS 样本,原始邮件内容如图 16-15 所示。

图 16-11 JSE 源码图

图 16-12 JSE 源码初步解密效果图

图 16-13 JSE 解密效果

图 16-14 JSE 勒索截图

图 16-15 JS_PowerShell_邮件截图

打开这个附件里面是一个 JS,有 700 多行的代码,包含各种内部加密组合,放到虚拟环境直接看效果,如图 16-16 所示。

这个 JS 最终的目标是调用 PowerShell 去下载后门并执行,此处不再赘述。邮件网关的对策依然是过滤,各种可能有危害的可执行文件、脚本基本在这里被清理得差不多了。

图 16-16 JS_Action_360 简单沙箱

3.办公文档与情报

随着前面的不断查漏补缺,可执行文件和脚本算是先告一段落,后面更多是 Office 和 PDF 了。在这个阶段,重点还是在运营。沙箱的事件开始跟 SOC 对接,SOC 事件每天有人跟进,进而沙箱系统和情报实现对接,将可疑文件送到情报系统做进一步的检测;发现问题后需要配套的快速处理方法,都有不少工作需要做。我们再看一起批量恶意邮件攻击的案例。某个周未,某企业 SOC 风险展示平台上报出大量沙箱事件,事件类型为 HEUR:Trojan-Downloader.Script.Generic,于是安全团队开始进行分析。从后台导出具体事件,经过一些过滤去重,最后发现有 529 笔事件,有以下规律:

·邮件主题为"Document From***"。

·发件人为"Accounts@***"。

·附件为"I-****.doc"。

·发件主机名多为随机字符串或一些单词的随机组合。

部分信息统计截图如图 16-17 所示。

图 16-17 批量邮件攻击_宏

对其中一个样本进行分析,发现 Word 带有宏,代码如图 16-18 所示。

图 16-18 Office 宏代码

从中得到 2 个恶意文件下载链接: http://rtozottosdossder.net/af/JbhbUsfs http://nan-cywillems.nl/JbhbUsfs 。当务之急是清理恶意邮件,并对恶意域名和 URL 进行屏蔽处理。将样本发给外部情报公司对文件和 URL 进行更深入分析,得到以下结果:

·word 样本包含恶意的宏,执行后会从网站 http://actt.gr/JbhbUsfs 下载一个 payload。

·经过威胁分析平台分析,actt.gr 属于失陷网站。

·经过情报库的关联分析,确认了这个 payload 为 Locky 家族,属于勒索软件。

·黑客画像系统已经监测到大批量攻击行为,类似的 Locky 下载站点还有非常多,比如:

http://2-wave.com/JbhbUsfs

http://6tricksguides.com/JbhbUsfs

http://accuflowfloors.com/JbhbUsfs

http://actt.gr/JbhbUsfs

http://acurcioefilhos.pt/JbhbUsfs

http://aegeanlab.gr/JbhbUsfs

http://cancortes.com/JbhbUsfs

http://carriereiserphotography.com/JbhbUsfs

http://grossert.de/JbhbUsfs

http://indiasublime.in/JbhbUsfs

http://nancywillems.nl/JbhbUsfs

http://seoulhome.net/JbhbUsfs

http://swangroup.net/JbhbUsfs

现在外面的情报公司提供了这些 URL 是否全面?经过对这 529 封邮件附件逐一排查,通过脚本导出所有附件宏代码并抓取关键字,发现还有一些漏网之鱼:

http://darca.info/JbhbUsfs

http://nerdydroid.com/JbhbUsfs

http://campuslinne.com/JbhbUsfs

http://ach-wie.net/JbhbUsfs

http://musicphilicwinds.org/JbhbUsfs

http://eselink.com.my/JbhbUsfs

http://love.chuanmeiker.com/JbhbUsfs

http://gardenconcept.pl/JbhbUsfs

http://cagliaricity.com/JbhbUsfs

带有宏的文档可以在邮件网关上进行处理,除了宏文档外,还有一些不需要依赖宏的,比如利用 Office 或 PDF 漏洞的。

2017 年 Office 漏洞层出不穷,各大安全媒体经常会有新发现了某个漏洞正被利用的报道,一般都是这些漏洞刚公布的几天内邮箱就会收到类似的攻击附件。下面这个案例是我们捕获的某个利用 DDE 漏洞的样本,通过脚本提取其特征代码如图 16-19 所示。

图 16-19 Office 文档 DDE 漏洞利用代码

建议有条件的企业,沙箱与情报系统联动起来,图 16-20 为该样本自动对接情报后的效果图,虽然只有 3 家能查杀,但 CVE-2017-0199 已经清晰写上了。

有了恶意 URL,常规做法就是屏蔽,效果图如图 16-21 所示。

针对遗漏的已经投递进来的有问题的邮件,如何快速删除,且尽可能让用户无感知,也是一个需要关注的问题。如果每次都是联系邮件管理员在后台手工处理,那就不那么高大上了。建议的做法是在平台上与邮件系统接口对接,调用邮件系统删邮件的接口进行处理,这中间又涉及一些平衡,比如系统或操作问题导致大批量误删,责任就需要明确了。针对 URL 屏蔽这块,如果企业规模较大,各分公司都有自己的上网出口,怎么快速将这些 URL 分发下去拦截,又是另外一个话题了。总之,尽可能自动化、一键化,同时又要考虑到操作风险。

16.2.6 入站防护体系小结

前面涉及一些具体的案例和场景,介绍得相对零散。笔者建议的邮件入站防护技术体系是前面通过 NGFW 做一层基本的过滤,再由邮件网关启用反垃圾、防病毒、防钓鱼等进行过滤,将可疑或特定类型的附件集成到沙箱去分析,最后在邮件系统上启用一些过滤或杀毒功能,图 16-22 为邮件防护体系示意图。

图 16-20 自动提交到情报分析的结果

图 16-21 URL 封禁效果图

有条件的企业建议全局禁止 POP3、IMAP 协议,防火墙上仅开放到邮件网关的 SMTP 以及邮件系统的 HTTPS。NGFW 的防护范围和控制精度比传统防火墙大大增加,可从应用、用户、内容、时间、威胁、位置六个维度进行一体化的管控和防御。在 NGFW 中启用垃圾/病毒邮件的过滤功能,利用下一代防火墙的高性能,对邮件进行初步过滤,提高垃圾/病毒邮件的处理效率。在部署下一代防火墙时,需要重点考虑以下事宜:

图 16-22 邮件防护体系示意图

·在开启垃圾/病毒邮件过滤功能的情况下,依然能保持高性能。

·支持对 SMTP、POP3、IMAP 传输文件进行病毒检测。

·NGFW 上有预置接口,能够将截获的可疑邮件发送至外部的垃圾邮件网关或安全沙盒,做进一步的分析。

邮件网关本身就有一些过滤功能,包括针对邮件内容中的 URL,甚至对邮件附件内容做一些简单的过滤。邮件 URL 过滤是内置功能,启用即可;而邮件附件内容需要做一些配置。按照经验,将可执行文件、脚本类文件进行过滤或隔离,可以显著减少用户中招的风险。在邮件系统上启用杀毒功能也是一种选择,有时候出于可用性考虑,邮件系统管理员不一定接受该方案。

当然,可能还是会有遗漏进来的问题邮件,这个时候轮到沙箱上场了,如果邮件网关有直接集成沙箱的功能最好,没有的话可以将邮件网关发送到邮件系统的流量镜像给沙箱设备,沙箱对流量分析附件进行还原再做分析,有问题的文件产生告警,告警需要有人跟进处理。建议直接对接邮件系统,对已经放过的有问题邮件进行删除处理。

黑客不一定从外部投递邮件,如果某台终端被控制,那么发送问题邮件的人可能也是内部员工,内部邮件可能直接通过邮件服务器,不会到邮件网关和沙箱上进行分析。这种情况需要在邮件系统和终端上做工作,邮件系统一般都有恶意网页代码过滤的功能,必须开启。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文