开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术的未来。
本篇内容是Elastic社区布道师刘征带来的如何规划和执行威胁狩猎的方法
分享人:Elastic社区布道师刘征
视频地址:https://developer.aliyun.com/live/246151
关于如何规划和执行威胁狩猎,本文将通过三个部分展开介绍:
- 流行的攻击生命周期框架
- 规划可重复的威胁狩猎流程
- 安全威胁检测规则的管理
一、流行的攻击生命周期框架
首先看一下目前企业可能面临的安全威胁和一些风险。目前,不管企业规模大小,几乎所有的员工都使用着各种各样的IT基础设施和服务,因此我们的攻击面就充满了各种各样的安全盲点。每一个服务,甚至每一个人都可能是被攻击的目标和被黑客袭击的对象。
我们组织里面的安全分析师也早已是四面楚歌,不堪重负。在Elastic Stack这样一个技术创新发展的演进过程当中,Elastic stack逐渐形成了一个日臻完备的威胁狩猎平台。
在当前最新版的Elastic Stack技术栈中,我们内置了在威胁狩猎方面非常重要的一个核心组件,这个组件包括了检测规则和检测引擎。检测规则和检测引擎将利用大量的ESC兼容的各种安全的告警和事件,这些安全告警事件都是通过我们现有的Beats,Logstash和elastic endpoint模块采集和集成过来的。除了具有检测规则和检测引擎之外,我们还在右侧这边集成了很多自动化的工作流,包括检测的告警,基于时间线的案例研究,外部的安全事故管理,和流程平台的一些对接。在Elastic Stack技术堆栈中,我们可以使用它来做一些安全事件管理,并基于安全事件管理的数据基础做比较可行和完备的威胁狩猎安全管理工作。
二、规划可重复的威胁狩猎流程
【安全威胁建模步骤】
如果我们想做威胁狩猎,就需要对安全威胁进行建模。在一个纷繁复杂的IT环境中,我们首先要有威胁的假设,然后基于这些假设做管理。有如下四个步骤:
- 谁是你的敌人?
- 敌人的动机?
- 敌人的目标?
- 攻击成功后会有什么影响和损失?
基于这个初步思索,我们会再用到一些比较缜密的业内流行的安全威胁攻击的生命周期的框架。
我们推荐使用Mitre ATT&CK的企业矩阵,Mitre ATT&CK的企业矩阵,将所有的安全威胁攻击都通过战术,技术和流程等方式有条理地进行梳理。比如在这个表格中,表头包括初始的入侵,入侵后的执行,提权操作。在你的网络中发现,网络中信息往外的渗透,并执行一些命令和控制。上面都是一些战术,这些战术可以分阶段地组合成对我们企业IT资产和服务人员不同的攻击行为。在每一个战术中,也就是每一列,都分别列出了不同使用的技术,这些攻击技术中都是使用这种字母排序的形式给我们做梳理和展示。所以当企业在做威胁狩猎的时候,我们就非常推荐参考Mitre ATT&CK的企业矩阵模型。
【典型事例】
我们从中找出一个非常典型的事例,来看一下这个矩阵模型告诉了我们什么。
下面有一个网址,这个网址中非常详细地叙述了鱼叉式钓鱼攻击这样一个攻击的技术。在这个网页上我们可以看见这个攻击的技术还可以和其他三个技术相关联,比如这个网页是基于邮件附件的鱼叉式钓鱼攻击,这个鱼叉式钓鱼攻击还可以和邮件的链接相关,还可以跟钓鱼的服务相关。我们可以看到在这样一个非常详尽的说明当中,有关于这个战术的所处阶段,也就是Mitre ATT&CK的的企业矩阵的表头部分,每一种特定的攻击有一个具体的ID,这些信息将让我们的安全管理人员互相之间的沟通更加专业一致。 在这个案例中, 我们可能就以安全威胁ID t1566.01这样一个ID来做文档中沟通的一个核心信息。
如果我们想应对这样的安全威胁,我们也要去利用到现有的一些检测的数据源。 安全威胁攻击的流程大致是像上图表格中的步骤, Mitre ATT&CK中不仅描述了某一个特定的安全攻击行为的特征,而且还提出了相应的防御技术,以及预防缓解的方法。比如在这个鱼叉式攻击当中,我们可以使用防病毒软件,防恶意软件,IDS,网络的防入侵检测系统等等帮我们做抵御。 另外,我们检测这种安全威胁的发生也有一些特定的策略,比如这里使用网络的入侵检测系统,IDS,或者是防病毒的一些实践,报告检测,和相应的威胁风险的迹象。 在Mitre ATT&CK的官网上一共描述了大概有两百多种典型的攻击行为的特征,有些是像这种鱼叉式钓鱼攻击比较详细的描述,有些就描述地比较概要。 因此Mitre ATT&CK是一个非常可信的参考框架,让我们来对威胁狩猎的这种工作进行组织,可以作为一个参考的源头。
【经典案例分析】
再举一个更详细的案例,刚才讲到的是鱼叉式钓鱼攻击,我们用一个可能更普遍的一种攻击为案例来看一下我们如何在Elastic Stack当中去实施bits Jobs的安全风险的狩猎过程。
首先,我们需要利用Mitre ATT&CK给我们提供的TTP语言去描述BITS Jobs。 BITS Jobs本身是Windows操作系统后台的一个智能数据,是非常底层的传输服务,它有它底层的一个可执行文件,就是bitsadmin.exe这样一个程序,但它的战术是通过滥用这个可执行的下载或执行恶意的代码,通过HTTP的方式去解释在我们这个工作环境中BITS Jobs的安全威胁。
为了防范和防御安全威胁,我们就要进行威胁狩猎,这也是基于一个威胁狩猎假设的。我们的假设可以描述成在我们的工作环境当中,或者说IT环境当中,可能潜在的敌方或者黑客滥用名为bitsadmin.exe的程序创建BITS Jobs相关的作业。 这个BITS Jobs相关的作业在环境当中的发生和存在可能会执行相关的恶意程序和代码,这就是我们对这个安全威胁工作的描述。对这样一个安全威胁的狩猎过程,我们会用文档做详细的记录,在这个文档中要非常具体地记录时间或资源的规划,比如我们会计划两名安全管理团队人员在五个工作日之内完成对以上安全威胁假设的狩猎过程,可以利用到的数据源有Windows操作系统的事件日志。我们是没有例外的系统或数据源的,希望对我们工作范围内所有的主机都去分析它Windows的事件日志。 最后,这一次威胁狩猎的工作过程以及结果会记录在我们安全团队所使用的Wiki上,这就是我们对整个具体的威胁狩猎工作的描述。
接下来,在执行阶段当中,首先我们要使用Winlogbeats去采集每一个Windows操作系统中的每一个端点的所有日志。这个采集和归集的时间限度我们希望是最近一年的时间,分析的对象就是这个进程的名字,名为bitsadmins.exe 的可执行程序的执行次数。我们可以首先在这一年的Windowslog日志当中进行一个快速的搜索。
上图就可以清晰地展示出哪些天的执行次数,是怎样的趋势。搜索出这样一个具体的进程结果之后,我们对需要的结果做可视化分析,要用到Kibana里面的可视化分析工具。首先,我们可以对这个分析的结果做一个排序和排名,可以排出这些貌似比较异常的作业,我们会去聚焦在bitsadmins这个执行参数中包含外部网址的事件当中,也就是说某些机器可能会被滥用,去执行外部的一些网站上下载的恶意代码,因此我们就进一步锁定到了在一年的事件中有一次这样的行为。 因为这个行为是被具体到了某一次或几次事件当中,所以我们就从大量的实践当中更进一步地缩小了范围,这个事件也给我们带来了更丰富的上下文,我们可以将这次事件具体到哪一个用户所使用的哪一台什么样的设备,那天整个工作当中还有哪些相关的事件。因此这整个事件的结果,一个事件详情的揭露,可能会为本次的威胁狩猎带来一个非常大的收获,这就是我们一个阶段性的成果。
三、安全威胁检测规则的管理
基于这样一个非常具体的Kibana探测的规则,我们可以编写出Kibana里面查询的威胁探测规则的语句。
这个威胁探讨规则语句就如上图中显示的Process.name=bitsadmin.exe,并且它这个进程是需要带有五个标志性的参数,这些参数往往就是可疑事件的一些发生。因此,由于我们前期的工作已经探测到这个环境当中确实曾经发生过这种安全入侵的事件,虽然只有一例,但是我们也证明了这个安全威胁在环境当中是存在的。我们在以后就希望通过一个自动化的方式能够通知或提醒到BITS Jobs安全威胁事故的复发,因此我们可以基于刚才分析的结果创建一条自定义的探测规则,可以使用Kibana当中的SIEM这个app进入到探测规则的管理界面当中,创建一条叫自定义的查询规则。 这个自定义的查询规则一旦创建之后, 就可以在后台持续运行。
我们针对BITS Jobs的威胁狩猎的阶段性成果就形成了两个重要的成果:
第一、我们刚才所描述的整个过程都会形成文档,记录在安全管理团队的Wiki上,这个文档也会公布给所有的干系方,告诉大家我们这个环境当中确实是有这样一个安全事故发生的。
第二、我们会去创建一条自动化的安全威胁风险的检测规则,这个规则在后期会被持续地在Elastic Stack这个技术平台上去运行,通过它来预防后续可能发生的BITS Jobs滥用的安全风险。这个规则一旦创建之后,还是需要有些维护的,包括安全管理人员可能会多次对这个规则进行测试,确保规则的灵敏性。更重要的是,维护测试也确保了这个规则在今后的安全威胁防护的过程当中是一个长效的存在。
接下来,我们再回顾一下狩猎的基础是什么。
狩猎的基础还是安全事件的数据源,我们可以使用Elastic Stack当中各种各样的beats, 包括 Packetbeat, Filebeat, Winlogbeat, 还有Auditbeat这些工具,让我们从网络应用,云平台,主机和网络活动当中收集到这些数据。有了这些数据之后,我们就可以对这些数据进行更进一步的优化。我们希望将任何一条收集上来的裸的安全事件进行处理,这些处理包括了跟威胁情报的关联,IP地理信息的丰富,以及其他外围系统的查询。
经过丰富之后的这些的数据就更具有意义,就是一条安全的情报数据。原数据不具备情报的价值,我们把它丰富之后,每一条数据都变成一个安全管理的情报数据了。这些情报数据里面标明了一些非常重要的,基于地理的一些信息系统,来自哪些国家和城市的链接或者网络活动,IP地址是不是一个已知的非法的IP地址,或者已知的恶意的IP地址。
有了这些数据之后,我们就可以开展安全分析之旅了。
讲到威胁狩猎这个具体的工作,其实是我们安全分析工作当中一个比较高阶的工作,我们基于安全威胁情报对它进行特定的分析。 当然,上文也提到了BITS Jobs本来就是Mitre Att&ck攻击生命周期框架当中的一条,讲述的具体案例只是通过Elastic Stack里 SEIM的应用将狩猎的工作进行落地,因此如果想要做这样一个非常高端的威胁狩猎工作的话,还是需要从最底层开始。通过最底层打通各种数据源,归集各种数据源,通过ECS的方式统一各种数据源的定义,并且将裸的安全信息数据进一步的可视化,把分析的结果提供给安全管理的相关的人员。 安全管理的相关人员用SEIM这个应用和SOC工作流程的其他工具来执行他们安全运维方面的一些日常工作,比如说安全巡检,威胁狩猎等。这些工作的结果,每日工作内容知识的沉淀,可以汇聚成我们SEIM应用当中的一些检测规则。我们比较乐观的一个推测是我们的检测规则可以和实际企业的IT环境基础设施更加地匹配,我们在这个环境设施当中会有意去收集更多的数据源,从而达到最后的威胁情报集成或用户分析的效果。
所谓的威胁狩猎其实就是在安全分析之旅当中一个比较高阶,最顶层的威胁情报集成和管理的工作。其实检测规则以及上文所提到的所有内容都还是基于人为对已知攻击模式的检测和判断。除此之外,我们其实也可以利用Elastic Stack当中内置的机器学习功能,对于我们现有的所有的安全数据进行异常检测,通过它来帮我们探测到那些未知的安全事件的隐患,这些安全事件的隐患通常会存在于一些异常的用户行为、主机行为、网络行为或应用行为当中。我们通过人工加机器学习的方式,更加强化了我们安全运维的能力,可以将威胁狩猎的工作做得更好。
假如要做威胁狩猎这样一个工作的话,我们还是非常推荐使用这个MITRE ATT&CK的这样一个全方位的攻击生命周期的框架,因为这个攻击生命周期框架当中已经涵盖了两百多种比较流行的,已知的,黑客所惯用的一些攻击的策略和手段,而且这些攻击的模式已经变成一个可用的检测规则,内置在了我们的Elastic Stack这个技术站当中,也就是说安装了Elastic Stack这个技术站后就可以进入我们的SEIM应用,在规则管理当中启用这些两百多条内置的基于MITRE ATT&CK的检测规则。你可以基于这些检查规则去检测现在企业当中已有的数据,也可以用它来做未来威胁狩猎的规划的基础。
基于Elastic Stack进行威胁狩猎的工作,我们首先会聚焦在多数据源的关联分析上,将黑客的一些攻击的模式通过已知的安全情报或者模式匹配的方式把它暴露出来,并且通过人工的方式对已有数据元的关联分析,把它所有发生过的一些安全隐患的事故都暴露出来。我们可以基于机器学习,对于一些人无法分析到的,或者我们未知的一些潜在威胁做一个基于机器学习的判断。机器学习不仅是可以按需去调用的,而且它也可以把我们的一些安全规则内置到到它探测检测的过程当中,从而为我们检测出我们可能不知道的一些潜在风险和威胁。
最后总结一下,Elastic是一家专注于搜索的公司,今天讲到的这个威胁狩猎它的核心能力还是和搜索能力相关。我们希望达到在非常大量的数据源中做近实时的一个安全狩猎的工作。在Elastic Stack当中已经内置了SEIM应用,这个应用也内置了很多的安全检测的规则,可以非常方便地帮助我们去规划和执行企业当中所需要的这种,针对任意IT环境或已有数据的威胁狩猎的工作。Elastic stack这个技术站的话是一个快速发展技术站,它安全管理方面的探测规则也是在社区里面以开源的方式开放出来的。
【阿里云Elastic Stack】100%兼容开源ES,独有9大能力,提供免费 X-pack服务(单节点价值$6000)
相关活动
更多折扣活动,请访问阿里云 Elasticsearch 官网
阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费
下载白皮书:Elasticsearch 八大经典场景应用