对企业安全建设来说,人是最大的安全威胁因素,系统再牢固、资产再收缩,也架不住内部员工被社工、被骗后轻而易举的进行破坏。
而社工的主要方式,就是钓鱼邮件了,今年早期搜狐公司的事情大家都听说过,9月份中科大做了一次模拟钓鱼邮件的演练,近10%的人在跳转的钓鱼页面中提交了自己的个人信息。最近,钓鱼邮件攻击似乎又来一波高潮,不断升级的手法、标题、套路。
钓鱼 和 0-day,是每年大型攻防演练中最令人闻风丧胆的事情。钓鱼的风险点取决于内部员工的安全意识水平,这谁能吃的准呢,况且攻击者的套路还在不断变异。中招的人可能是财务,可能是行政,也可能是手握重要权限的系统管理员。
本文结合笔者经验,聊一聊邮件安全体系的建设,从安全设备、暴露面收缩和安全配置、基于数据的安全运营,到安全管理: 一、邮件攻击的主要套路
二、邮件安全建设
1. 安全设备
(1)邮件安全网关
(2)沙箱
(3)流量和主机安全设备
2. 安全配置和暴露面收缩
(1)安全配置
(2)暴露面收缩
3. 数据驱动的安全运营
(1)分析环境
(2)基本分析
(3)一网打尽——聚类分析挖掘攻击团伙
(4)顺藤摸瓜——用黑标签传播出隐藏的坏人
(5)专家运营和协同处置
4. 安全管理:制度、意识培训和钓鱼邮件演练
(1)制度
(2)安全培训
(3)钓鱼邮件演练
一、邮件攻击的主要套路
在现在的邮件安全对抗中,攻击者的攻击手法是不断升级,我们先来盘一盘钓鱼套路:
二、邮件安全建设
如何去构建防御体系,让狡猾的邮件攻击者没有可趁之机呢?以笔者从业经验来看,大致有四个环节:
安全设备 - 暴露面收缩和安全配置 - 数据驱动的安全运营 - 安全意识培训。
其中安全设备是第一道硬门,由于设备大多数是采购的,好坏依赖厂商的能力,而安全意识培训是长期的事情。真正可玩又可控、也决定企业安全防御能力高低的,一是暴露面收缩和安全配置,二是是安全运营环节,在基础措施比较薄弱、人员意识水平又不高的情况下,通过数据分析和运营机制,可以有效弥补。
下面分别说说,其中 重点是 数据驱动的安全运营。
邮件安全的专用设备一般有网关和沙箱。
(1)邮件安全网关
邮件安全网关通过其反垃圾和反病毒引擎对邮件进行一道过滤,此外邮件网关还会根据发件方的IP和地址信誉进行分析,对SPF、DKIM、DMARC等配置进行监测。
注意返回中的 v-spf1 include:xxxx -all,xxx 为记录中的发件服务器地址,-all 表示硬拒绝,邮件直接被丢弃或者隔离,~all表示软拒绝,它会标记IP非法,但不采取强硬措施。
(网图,来源:https://www.altn.com.cn/5730.html)
(2)沙箱
沙箱是对威胁更深入的分析,它基于机器学习、全文语义、威胁情报、杀毒引擎等对可疑邮件的附件、链接做更加深入的扫描和判断。
(3)流量和主机安全设备
前面两个设备一般是串联在邮件服务器前面的,需要实时对邮件的安全性进行风险决策,这绝对它不能做更丰富、耗时更长的分析。因此,有些公司会对邮件的流量旁路一份下来,结合EDR做多维度更丰富的分析和排查,比如可疑的出站外联捕获,加密通信的应用和主机排查,以及敏感数据的外发等。
2. 安全配置和暴露面收缩
安全设备怼上之后,下面就是完善安全配置,以及尽可能收缩邮件暴露面。
(1)安全配置
这包括前面所说的SPF、DKIM、DMARC设置(有些要依赖邮件系统是否支持),以及发、收行为做安全设置,包括:
关闭匿名发送功能;对登录和收发的频率做限制;网关上的安全规则,在不影响业务的情况下能开启尽量开启,等等。
(2)暴露面收缩
此外,邮件的服务尽可能减少对外暴露,比如web端登录服务、外部通过SMTP、POP3、IMAP直接登录服务。应将关闭这些服务对外的暴露,如果怕影响到业务,可以接入到 VPN 或 零信任 后面。这样,即使攻击者拿到了员工的邮件账号,也没有地方登录。
此外,邮件系统和客户端自身的漏洞也要特别关注。
3. 数据驱动的安全运营
碓完安全设备,开启了检测规则,做完安全配置,也收缩了暴露面,至此,能把大部分威胁邮件过滤掉,也可以避免大规模的沦陷,因为至少给我们这个环节的工作争取了时间——“安全运营”。
但回顾前面的攻击套路,攻击者会先拿下一个正常的企业邮件,通过文本变换、内容混淆、附件加密/加壳/远程加载宏等方式,还是有极可能绕过设备和规则检测。尽管网关和沙箱每天可以帮我们过滤大量的威胁邮件,但只要有一份漏过投递成功,那就超出了我们的控制。
所以安全运营工作的目的就是利用已知的信息,通过数据分析挖掘,找出漏过的威胁邮件,并及时进行处置。
(1)分析环境
安全运营的首先前提,各安全设备上的数据已经经过清洗,接入到了一个运营分析平台,这个平台上可以通过SQL、Python对数据做一些分析。
如果企业内有成熟的日志采集机制、日志分析中心,或者数据中台(至少包括 数据集市+数据分析平台),那么可以直接做分析。如果没有,其实搭建一个分析平台也挺简单。参考:
(2)基本分析
包括,
这些基本分析可以直接在kibana里面通过ES SQL写成canvas的表,作为每日风险面板的一部分。
(3)一网打尽——聚类分析挖掘攻击团伙
在 从 AI 到 信息安全 里面说过,攻击者一个特点是 变,为了不被规则稽核,攻击者对邮件的内容、标题做各种变换,让网关和沙箱认为这不是同一份邮件。
推荐做的一个分析,是 T+1 或者 H+1,对投递成功的邮件进行聚类分析,找出一些批量性、聚集性的恶意邮件,分析流程参考:
一个真实的聚类结果如下,因为相似性,这些主题的邮件被聚在了一起。
一个真实的邮件主题聚类结果
实战中,被聚出来的类会非常的多,而且绝大部分是正常的邮件,为了加快人工研判的效率,快速找出异常的类簇,可以结合一些统计指标。比如:
类簇中发件地址历史上被拦截的次数、历史上被判断为风险邮件的数量、涉及的发件地址数等。这些可以帮助判断这个类中邮件的威胁性。
(4)顺藤摸瓜——用黑标签传播出隐藏的坏人
另一个找出漏过的威胁邮件的思路,是充分利用已知的威胁邮件,给他们打上恶意的标签,然后用恶意邮件的发件地址、发件地址域名、发件IP、主题等作为介质,关联出这些介质的其他邮件,重点是已经投递成功的邮件。
一个方法是简单的关联分析,通过 SQL 不断的用去 join,但是简单关联容易把很多正常邮件关联进来,比如攻击者喜欢用的某邮箱后缀 @xxxx,可能正常人也经常用。
另外还可以考虑基于图的 标签传播算法 LPA(Label Propagation Algorithm),它从已知标签出发,通过一些介质和设定的权重,按照一定算法去不断传播、关联,直到形成一个比较合理的群组。
它的好处是不是简单粗暴的join,而是按照一定的策略去传播,所得到的群组更加自然合理。
在邮件安全这个场景,可以用的算法和模型很多,因为 ① 它有足够的训练样本,② 有丰富的多维变量(发件地址、域名、IP、时间行为、文本等),③ 也有上游的网关和沙箱给我们输送黑白标签。因此我们可以还可以用有监督的深度学习去,用基于图的最大连通图挖掘、Fast Unfolding等。
上面的聚类、最大连通图挖掘、标签传播算法,是笔者在邮件安全或相似场景使用过,效果不错的方法。
(5)专家运营和协同处置
以上分析结果,可以汇总在一个面板中,比如kibana 或者 grafana,安全运营人员根据每日面板的高危推送,来进行跟进处理。参照以上分析,一个丰富的运营面板大概是这样的:
对于研判为漏过的威胁邮件,需要及时与邮件管理员进行联动,对尚未读取的邮件进行撤回。如果员工已经读取威胁邮件,则要第一时间与其联系,询问是否打开链接、附件,是否有异常,对有进一步高危操作的员工,应该及时进行杀毒、隔离、改密。
按照以上流程,可以以较快时效、较广覆盖的发现漏过的风险邮件,大部分可以在第一时间,未读的状态下及时处理掉。
4. 安全管理:制度、意识培训和钓鱼邮件演练
在前面“暴露面收缩”中,其实漏了一个最大的暴露面,那就是——人。人始终是最大的不确定项,因此,除了设备、系统的安全管理、数据的安全运营外,还需要搭配安全管理手段。
(1)制度
安全的相关制度应该不断完善,这使得后续的安全管理手段“师出有名”。
(2)培训
应该组织定期的和专项的安全意识培训。定期的通过邮件、内部公众号进行持续宣贯;专项的可以在国家安全宣传周、保密周、重保前期等进行专题宣贯,并且要在新人培训、关键岗位人员的培训中,嵌入安全意识培训。
(3)钓鱼邮件演练
没有什么比真正中过一次招更能加深印象的了,因此企业应该定期组织钓鱼邮件演练。搭配不同的主题、套路。有预算的可以选用专门的厂商,做更加定制化、更加逼真的钓鱼模拟,预算紧张也可以直接用GoFish开源钓鱼框架。
对钓鱼的结果,应该做好分析,对中招的同事进行针对性的强化培训,而且进行多轮次的培训,对结果进行追踪。