2.4 威胁猎杀过程
有几种安全信息和事件管理(Security Information and Event Management,SIEM)解决方案可供选择,已有多篇文章介绍了它们的工作原理以及如何选择适合组织需求的解决方案。在本书的后面,我们将使用一些基于Elastic SIEM开发的开源解决方案。你应该使用这种类型的解决方案来集中从系统收集的所有日志,以帮助分析数据。确保收集到的数据的质量至关重要,低质量的数据很难带来成功的猎杀。
另一个很好的起点是,搜索可以合并到自己流程中的已发布的猎杀程序。你也可以创建新的猎杀程序,同时牢记组织的需求和关注点。例如,你可以创建聚焦于对组织所在行业感兴趣的特定威胁行为体的猎杀流程。尽可能地将这些记录下来并实现自动化,以防止猎杀团队反复重复相同的猎杀。
请记住,要始终假设入侵已经发生,思考威胁行为体是如何操作的以及为什么这样操作,依靠猎杀活动开启新的调查路线,并根据与威胁相关的风险等级来确定猎杀的优先级。持续搜索,不要等待告警发生才实施。
2.4.1 威胁猎杀循环
Sqrrl对威胁猎杀过程的最早定义之一出现在他们称之为威胁猎杀循环(见图2.5)的过程中。
图2.5 Sqrrl的威胁猎杀循环
第一步是构建假设,即猎杀所依赖的假设。之后,就可以使用我们掌握的技能和工具开始调查。在进行分析时,威胁猎人会尝试发现组织环境中的新模式或异常。这一步的目标是试图证明(或反驳)这一假设。循环的最后一步是尽可能地将成功猎杀的过程自动化。这将防止团队重复相同的流程,并使团队能够将精力集中在发现新的入侵上。在这一步中,记录这些发现结果是一个重要的阶段,因为形成的文档将帮助团队更好地了解组织的网络。掌握在组织环境中什么是正常的、什么是不正常的将有助于团队进行更好的猎杀。
2.4.2 威胁猎杀模型
Dan Gunter和Marc Setiz在论文“A Practical Model for Conducting Cyber Threat Hunting”[1](https://pdfs.semanticscholar.org/4900/b5c4d87b5719340f3ebbff84fbbd4a1a3fa1.pdf)中给出了一个更详细的模型,该模型分了六个不同的阶段(见图2.6),并强调了威胁猎杀过程的迭代性质。
●目的:进行威胁猎杀时应牢记组织的目标,例如,猎杀可能以长期业务目标为条件。在这一阶段,我们需要说明猎杀的目的,包括执行猎杀需要哪些数据以及期望的结果是什么。
●范围:此阶段涉及定义假设,并确定我们要从中提取数据的网络、系统、子网或主机。这个范围应该事先确定好,以减少可能干扰猎杀成功的“噪音”的数量。它不能过于具体,因为过于具体可能会忽略环境中攻击者的存在。定义的假设应该可以防止我们偏离猎杀的方向,从而帮助猎人在从一条数据转向另一条数据时保持专注。
●装备:在这一阶段,重点将放在“如何”上。如何收集这些数据呢?收集得够详尽吗?要如何做分析呢?如何才能避免分析员偏见呢?在此阶段结束时,威胁猎人应该对这些问题都有一个深入的回答。收集管理框架(CMF)可以帮助我们跟踪正在收集什么数据以及这些数据来自哪里。[2]
●计划审查:顾名思义,团队或猎杀的负责人将审查到目前为止所做的所有计划,以确保猎杀与组织的目标一致,并且团队拥有成功执行猎杀所需的所有资源(人员、数据、工具和时间)。
●执行:执行阶段指的是计划获得批准后的猎杀过程。
●反馈:此阶段与前面的所有阶段相关联。分析结果将有助于团队以更高的效率执行未来的猎杀。反馈阶段的目的是改进之前的所有阶段。它不仅应该帮助我们确定目标是否已经实现,还应该帮助我们确定团队可能存在的认知偏见、可能的需要修正的数据可见性和收集的数据的差距、资源分配是否正确等。
现在,我们来看数据驱动的方法。
图2.6 SANS威胁猎杀模型
2.4.3 数据驱动的方法
在上述两个模型的基础上,Rodriguez兄弟Roberto(@Cyb3rWard0g)和Jose Luis(@Cyb3r-PandaH)在Insomni'hack 2019大赛(https://www.youtube.com/watch?v=DuUF-zXUzPs)上展示了一种数据驱动的方法。他们设计的威胁猎杀过程(见图2.7)也包括六个不同的阶段,对威胁猎人社区来说,幸运的是他们还设计了四个开源项目,你可以使用它们来构建和执行自己的猎杀行动。
图2.7 Roberto Rodriguez和Jose Luis Rodriguez的基于数据的威胁猎杀方法
Rodriguez兄弟定义的六个阶段如下:
●定义研究目标:为了在执行数据驱动的猎杀时定义研究目标,理解数据并将数据映射到对手的活动至关重要。Roberto Rodriguez提出了一系列在确定研究目标时需要回答的问题:
■猎杀对象是什么?
■理解自己的数据了吗?有数据维基(wiki)吗?
■是否将数据存储在环境中的某个位置?
■是否已将日志映射到对手的行动?
■需要做到多具体?
■每个假设可以涵盖多少个技术或子技术?
■要关注的是技术推动者还是主要行为?
●建立数据模型:这一阶段围绕着了解数据来自哪里、将日志发送到数据湖进行查阅以及通过创建数据字典来组织数据(在数据字典中,每个数据源“需要映射到一个事件”)开展。如果想真正了解正在收集的数据,这会很有用。
OSSEM:为了帮助完成创建数据字典的繁重工作,Rodriguez兄弟创建了开源安全事件元数据(Open Source Security Events Metadata,OSSEM),用于记录和标准化安全事件日志。该项目是开源的,可以通过项目的GitHub资源库(https://github.com/hunters-forge/OSSEM)进行访问。
●对手仿真:对手仿真是红队成员在其组织环境中复制对手行为的一种方式。为了做到这一点,需要映射对手行为,并将它们使用的技术链接在一起,以创建行动计划。MITRE ATT&CKTM框架提供了一个基于APT3创建仿真计划的示例(https://attack.mitre.org/resources/adversary-emulation-plans/)。[3]
Mordor:针对这一阶段,Rodriguez兄弟创建了Mordor项目(https://github.com/hunters-forge/mordor),该项目以JSON格式提供“由模拟对抗技术生成的预先记录的安全事件”。
●定义检测模型:在第二阶段创建的数据模型的基础上支持猎杀,构建要进行猎杀的方式。在上一阶段定义了检测方法之后,我们将在实验室环境中验证检测。如果没有取得任何成果,应该返回并回顾我们在前面几个阶段所做的工作。
●验证检测模型:一旦对实验室环境中所获结果感到满意,并评估了数据质量(完整性、一致性和及时性),我们就可以在生产环境中尝试定义的检测模型。可能会出现以下情况:零个结果,即生产环境中不存在对手的行为;至少一个结果,此时我们需要仔细查看结果以确认入侵;猎杀产生了大量的结果,这通常意味着我们需要对猎杀过程进行进一步的调整。
HELK:这是一个由Roberto Rodriguez设计,基于Elasticsearch、Logstash和Kibana的猎杀平台。它通过Jupyter Notebook和Apache Spark提供了高级分析功能,有关信息详见GitHub资源库(https://github.com/Cyb3rWard0g/HELK)。
●记录和交流研究结果:如果正确遵循了前面的步骤,你可能已经完成了一半的工作。记录猎杀过程的工作应该在执行猎杀的同时进行。
Threat Hunter Playbook:这个开源项目由Rodriguez兄弟维护,旨在帮助记录项目,共享威胁猎杀概念,开发某些技术,并构建假设,更多信息详见项目的GitHub资源库(https://github.com/hunters-forge/ThreatHunter-Playbook)。
重要提示:
除了开发并贡献给社区的所有工具外,Rodriguez兄弟还发起了开放式威胁研究社区(https://twitter.com/OTR_Community),通过自己的Discord频道(https://bitly.com/OTRDiscord)促进共享检测策略。
Roberto还基于Threat Hunting Playbook借助Jupyter Book项目(https://medium.com/threat-hunters-forge/writing-an-interactive-book-over-the-threat-hunter-playbook-with-the-help-of-the-jupyter-book-3ff37a3123c7)创立了交互式图书(interactive book)以分享检测概念。
2.4.4 集成威胁情报的定向猎杀
集成威胁情报的定向猎杀(Targeted Hunting Integrating Threat Intelligence,TaHiTI)方法是几家荷兰金融机构共同努力的结果,旨在帮助建立一个针对威胁猎杀活动的通用方法。
顾名思义,TaHiTI方法与威胁情报密切相关。这是一种使用威胁情报提供的对手信息作为出发点进行猎杀的方法,利用威胁情报对猎杀中发现的内容进行背景分析,甚至找到与对手相关的已知TTP(支点攻击[4])并推动新的猎杀。另外,根据这种模型,猎杀本身可以用来丰富威胁情报,因为利用它可以发现与对手有关的先前未知的TTP和IOC。
TaHiTI分为三大阶段,共八个步骤[5](见图2.8)。
图2.8 TaHiTI的三大阶段
此过程可视化视图如图2.9所示。
图2.9 TaHiTI方法概述
阶段1:启动
在此阶段,猎杀诱因被转换为调查的摘要,并存储在积压列表中。TaHiTI方法将猎杀诱因分为五种:
●威胁情报。
●其他猎杀调查。
●安全监控。
●安全事件响应:从历史事件和红队演练中收集的数据。
●其他:如找出皇冠宝石[6]是什么以及它们是如何失陷的,研究MITRE ATT&CK框架,或者仅仅是猎人的专业知识。
调查摘要是对假设的粗略描述,该假设将在接下来的几个阶段中得以完善。建议你给出有关创建日期、摘要、猎杀诱因和优先级的信息。
阶段2:猎杀
该方法的第二阶段就是实际的猎杀阶段,即调查假设。在执行之前,必须定义和完善假设。这意味着针对猎杀而创建的初始摘要将被扩展,增加更多的细节,并在以后还要增加调查期间发现的新证据。重要的是要包括数据源、选择的分析方法和确定的范围。有关我们掌握的威胁情报、分配的资源和猎杀分类的信息也应该包括在内。
对正在执行的猎杀的分析将被用来验证最初的假设。每次猎杀都有三种可能的结果:
●假设得到证实,一起安全事件被揭露。
●假设不成立。这种状态很难达到,因为找不到东西并不一定意味着它不存在。在声明假设已经被证明是错误的之前,猎人必须真正确定他们没有错过任何可能的场景。
●不确定的结果。当没有足够的信息来证明或反驳假设时,猎杀就会处于这种状态。在这个阶段,有必要继续完善假设,直到达到以上两种状态。
阶段3:结束
TaHiTI方法的最后阶段是记录调查结果。相应的文档必须包括猎杀的结果和从中得出的结论。它可以包含改善组织安全的建议,也可以包含改进团队猎杀过程的建议。一旦完成记录,这些文档就需要在相关的各方之间共享。报告可能需要根据不同的接收人进行调整,有关这些报告的信息可能需要根据它们的安全许可进行编辑或定密。
TaHiTI根据威胁猎杀调查将猎杀过程分为五类:
●安全事件响应:启动IR流程。
●安全监控:创建或更新用例。
●威胁情报:发现了新的威胁行为体的TTP。
●漏洞管理:解决已发现的漏洞。
●对其他团队的建议:向其他团队提出建议,以改善整个组织的安全态势。
下一节将介绍如何构建假设。
[1] 也可从https://www.sans.org/reading-room/whitepapers/threathunting/practical-model-conducting-cyber-threat-hunting-38710获得。——译者注
[2] 根据 Dan Gunter和 Marc Setiz的论文,装备阶段的重点是确定处理数据和证明或反驳已提出假设所需的分析方法和工具。这种解释更便于明白装备的具体含义。——译者注
[3] 更多信息参见https://attackevals.mitre-engenuity.org/using-attack-evaluations.html。———译者注
[4] 支点攻击是使用实例—也称为内线或据点—在网络中四处移动的独特方法。通常使用目标网络内第一个失陷据点危害其他原本无法访问的系统。更多信息参见https://www.offensive-security.com/metasploitunleashed/pivoting/ 或https://www.exploit-db.com/docs/english/43851-metasploit-pivoting.pdf。——译者注
[5] 更多信息参见https://www.betaalvereniging.nl/en/safety/tahiti/。——译者注
[6] 皇冠宝石分析(Crown Jewels Analysis)是一种识别对完成组织使命最关键的网络资产的过程,更多内容参见https://www.mitre.org/publications/systems-engineering-guide/enterprise-engineering/systems-engineering-formission-assurance/crown-jewels-analysis。——译者注