网络威胁狩猎 三、你的第一次威胁狩猎探险 (3)
yuyutoo 2025-01-20 17:51 4 浏览 0 评论
3.2 威胁狩猎过程
该过程分为三个阶段:准备、执行和沟通。以下部分将追踪这一过程。
3.2.1 准备
我们采取了以下步骤来准备狩猎(图3.8):
1 红队提供的信息触发了威胁狩猎。
2 猎手决定创建一个新的狩猎剧本。
3 猎手遵循第2章介绍并在本节后面展示的标准威胁狩猎剧本模板。
4 对于狩猎,Sysmon是主要的数据源类型,从端点收集Sysmon事件。
5 Sysmon事件被收集并存储在数据存储Humio中。
6 威胁猎手能够访问数据存储,并使用Humio网页界面搜索Sysmon事件。搜索的性能是足够的。
作为准备阶段的一部分,猎人创建了威胁狩猎剧本文档:
标题—寻找由或通过Microsoft Office生成的恶意进程
参考编号—Hunt-Play-Win-01
背景—组织雇佣的外部红队能够绕过安全预防和检测控制。该团队制作了一个带有可疑有效载荷的Microsoft Word文档,将文档附加到一封电子邮件中,并将电子邮件发送给用户。打开文档自动执行了有效载荷。有效载荷中包含的代码绕过了运行Windows 10的用户机器上的现有安全控制,未被防病毒软件检测到。此外,其他安全监控工具没有为安全运营中心(SOC)团队生成安全警报。
假设—我们假设攻击者成功地进行了针对性的网络钓鱼,诱使用户下载并打开一个Microsoft Office Word文档。打开文档执行了恶意代码,允许攻击者破坏终端系统的安全。
范围—此次搜索覆盖了所有微软终端。
威胁技术—制作一个结构良好的针对性网络钓鱼电子邮件,诱使用户点击嵌入的链接并下载恶意的微软Word文档。该活动对应于MITRE ATT&CK子技术T1566.002,网络钓鱼:针对性网络钓鱼链接。
– 程序—通过电子邮件发送,其中包含链接以下载微软Office文档
– 数据源和事件—Windows Sysmon事件
威胁技术—微软Office Word启动Windows命令行解释器(cmd)。该活动对应于MITRE ATT&CK子技术T1059.003,命令和脚本解释器:Windows命令行解释器。
– 程序—微软Office启动命令行解释器
– 数据源和事件—Windows Sysmon事件
威胁技术—微软Office Word启动PowerShell或创建PowerShell脚本文件并执行。该活动对应于MITRE ATT&CK子技术T1059.001,命令和脚本解释器:PowerShell。
– 程序—微软Office启动PowerShell或创建带有.ps1扩展名的PowerShell脚本文件
– 数据源和事件—Windows Sysmon事件
参考文献—
– MITRE ATT&CK命令和脚本解释器:Windows命令行解释器,T1059.003 (https://attack.mitre.org/techniques/T1059/003)
– MITRE ATT&CK命令和脚本解释器:PowerShell,T1059.001 (https://attack.mitre.org/techniques/T1059/001)
– MITRE ATT&CK网络钓鱼:针对性网络钓鱼链接,T1566.002 (https://attack.mitre.org/techniques/T1566/002)
3.2.2 执行
以下是我们在准备狩猎时采取的步骤(见图3.9):
1. 我们从一组初始搜索开始,这些搜索翻译了在规划阶段确定的程序。一些搜索没有产生结果。
2. 基于收集到的证据,我们证明了假设。
3. 在威胁狩猎探险的一个阶段,我们开启了一个新的安全事件案例,并将其分配给了事件响应团队。
4. 我们简要探索了威胁是否扩展到其他系统,但这次简短的探索没有得出任何发现。只有一个终端受到了影响。在接下来的章节中,我们将进行更深入的调查,以了解威胁执行的范围。
3.2.3 通信
基于威胁狩猎期间收集的信息,威胁猎人可以提出新的安全监控规则,并与威胁情报团队分享在探险过程中发现的战术、技术和程序(TTPs)(见图3.10)。我将在后续章节中提供更多关于通信阶段的见解和示例,包括威胁狩猎探险报告。
在我们完成第一次威胁狩猎时,有几个问题浮现在脑海中:
? 是否有可能自动化我们在这个探险中执行的一些搜索?例如,在找到初步线索后,我们能否自动化连接过去和未来事件的搜索,而不需要运行单独的搜索?拥有这种能力将节省时间和精力。
由于缺少事件,我们无法查看网络钓鱼邮件活动。我们如何才能在未来狩猎行动中获取相关事件?
在搜索过程中,我们无法找到一些Sysmon事件,因为终端上的Sysmon配置最初就没有捕获它们。我们应该要求系统管理员对Sysmon配置文件进行更改吗?这些更改需要多少努力,它们会对终端、数据存储和网络产生什么影响?
回答这些问题有助于优化未来狩猎行动的时间和覆盖范围。在接下来的章节中,我会回答这些问题。
3.3 微软Windows Sysmon事件
系统监控器(Sysmon)是Windows安全监控团队和威胁猎人最丰富的数据源之一。这个免费工具作为Windows系统服务和设备驱动运行,并且默认情况下不会安装。安装后,Sysmon会在系统重启后持续运行,监控并记录系统活动到Windows事件日志中。请注意,Sysmon不提供事件分析。
3.3.1 审查 Sysmon 的功能
Sysmon 支持以下关键的系统监控功能:
? 记录进程创建,包括当前进程和父进程的完整命令行
? 使用 SHA1(默认)、MD5、SHA256 或 IMPHASH 捕获进程映像文件的哈希值
? 即使 Windows 重用进程 ID,也能帮助关联事件,包括在 ProcessCreate 事件中添加进程 GUID
? 通过在每个事件中包含会话 GUID,帮助在同一登录会话中关联事件,以便跟踪同一会话内的操作
? 可选地捕获网络连接,记录源进程、IP 地址、端口、主机名和服务名
? 监控文件创建时间的变化,检测文件何时真正被创建,因为恶意软件通常会更改这些时间戳以隐藏其活动
? 提供动态规则过滤,根据需要包含或排除特定事件
表 3.1 显示了 Sysmon 事件中包含的 Sysmon 类型和 ID。
表3.1展示了Sysmon的广泛覆盖范围,使其成为威胁狩猎的最佳数据源之一。然而,使用Sysmon是有代价的。以下场景是类型1(进程创建)的Sysmon事件样本的快照。Sysmon事件以XML格式化,并且相对较大,当被安全信息和事件管理(SIEM)工具收集时,会导致磁盘和许可证消耗。事件的大小约为2 KB。安装了Sysmon的服务器可以根据系统活动和应用的Sysmon配置生成大量Sysmon事件。
一个组织可能拥有数百或数千个Windows服务器。Sysmon事件将被转发到一个数据存储库,以便用于安全监控和威胁狩猎目的。根据数据存储技术的不同,收集和存储这些服务器上的Sysmon事件将需要大量的存储空间并消耗大量的许可证。
在安装Sysmon时,考虑使用一个配置文件来捕获对安全监控和狩猎目的最重要的和相关的事件。例如,使用默认配置文件安装的Sysmon并不收集网络监控事件。应用自定义的Sysmon配置文件可以让你过滤掉不必要的事件,减少Sysmon捕获的事件数量。
提示:一个用于自定义Sysmon配置文件的良好模板可在SwiftOnSecurity(https://mng.bz/4pBj)找到。SwiftOnSecurity的Sysmon配置文件持续维护并有适当的注释,描述了每个Sysmon事件类型以及丢弃或包含特定事件的逻辑。另一个好的资源库位于https://github.com/olafhartong/sysmon-modular,其中包含了大量的Sysmon包含和排除过滤器模板。
威胁猎人应该对Sysmon以及组织使用的Sysmon事件收集配置有很好的理解。安装和管理Sysmon工具不是威胁猎人的责任;威胁猎人应该被告知,并在某些情况下进行咨询。
请注意,我们在本书中用于威胁狩猎的Sysmon配置文件是基于附录中提供的SwiftOnSecurity模板。
3.3.2 搜索Sysmon事件
在搜索Sysmon事件时,您应该构建查询以寻找相关字段。
Sysmon事件类型包含与它们生成的活动相关的字段。例如,类型为11(FileCreate)的Sysmon事件包含Image和TargetFilename等字段。这些字段(Image和TargetFilename)在类型为1(ProcessCreate)或3(NetworkConnect)的事件中是不可用的。
在狩猎时,您会结合使用基于字段的搜索和自由文本搜索。在本章中进行的威胁狩猎探险中,我们执行了基于字段的搜索,就像我们在搜索类型为1的Sysmon事件中的CommandLine字段时所做的那样。我们还执行了自由文本搜索,这种搜索会查看原始事件的内容以寻找匹配的字符串,就像我们在搜索所有Sysmon事件中的www.ps1时所做的那样。在使用Sysmon的环境中,威胁狩猎者应该对Sysmon、其类型以及不同事件类型中包含的字段有一个坚实的理解。
3.4 练习
我们在威胁狩猎探险中发现的安全事件涉及建立出站网络连接以下载.dll文件(www1.dll, www2.dll, www3.dll, www4.dll和www5.dll)。
1. 您能找到Sysmon网络连接事件吗?
2. 在问题1中发现的出站网络连接是由哪个进程发起的?
3. 网络连接的目的IP地址和端口是什么?
4. 更新时间线以反映新的发现。
从GitHub上第3章的存储库下载事件(https://mng.bz/QVxv),并上传到您选择的数据存储中。Sysmon事件是JSON格式的,使用您选择的工具(如Splunk、Elasticsearch或Humio)进行解析非常容易。
提示:使用EventID 3搜索Sysmon事件。
3.5 练习题答案
1 尝试找出与威胁狩猎探险中发现的可疑活动同一时间窗口内由powershell.exe发起的出站连接列表。你可以使用列表3.23中的搜索,通过搜索包含字符串"powershell"(不区分大小写)的EventID为3的Symon事件来列出连接。搜索显示了五个连接;两个连接是到本地IP地址,三个是到互联网IP地址。
2 进程 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 发起了这些连接。
所有使用的连接都使用了TCP端口80。网络连接具有以下目标IP地址:
a 192.168.155[.]134
b 2.20.7[.]24
c 146.112.61[.]110
图3.11显示了添加到时间线的PowerShell连接。
这一部分将我们带到了本章的结尾。这是你的第一次狩猎,所以不要期望一切都井井有条。重要的是要跟踪调查任务并更新时间线。记录你收集的证据,并跟踪有助于你可视化威胁并随后帮助你报告的事件时间线。
狩猎的范围涵盖了运行Windows的端点。运行Windows的机器数量可以从少数到成千上万,或者在大型组织中更多。从大量的端点收集事件在许可证和基础设施要求方面是昂贵的;因此,在某些情况下,你可能没有收集Sysmon事件的奢侈。
总结
来自红队练习的信息是威胁狩猎过程的一个触发因素。你从红队接收到的信息将推动你在创建狩猎计划之前的研究工作。
一次威胁狩猎探险始于寻找推动其余狩猎的线索。找到初始线索可能需要时间,所以不要感到沮丧。
在数据存储中搜索收集的事件是在狩猎行动中常见的活动。
确保你知道你的狩猎行动需要哪些数据源和工具。
Sysmon是安全监控和威胁狩猎的重要数据源。它为在Windows端点上执行的活动提供了显著的可见性。
Sysmon可能是一个昂贵的日志选项,这取决于部署范围和应用的配置。
威胁狩猎行动将带你走过许多路线,在这些路线上你必须探索数据和威胁。使用时间线来跟踪你的发现,并维护一个待办事项列表来跟踪你的活动。
随着你进行更多的狩猎行动并优化你的狩猎方式,你的威胁狩猎技能和信心水平将会提高。
相关推荐
- 全局和隐式 using 指令详解(全局命令)
-
1.什么是全局和隐式using?在.NET6及更高版本中,Microsoft引入了...
- 请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍
-
1、介绍模块化单体是一种架构风格,代码是根据模块的概念构成的。对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。Spri...
- ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战
-
我是一位多年后端经验的工程师,其中前几年用ASP.NET...
- .NET AOT 详解(.net 6 aot)
-
简介AOT(Ahead-Of-TimeCompilation)是一种将代码直接编译为机器码的技术,与传统的...
- 一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)
-
哈喽,我是老鱼,一名致力于在技术道路上的终身学习者、实践者、分享者!...
- asar归档解包(游戏arc文件解包)
-
要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。...
- 在PyCharm 中免费集成Amazon CodeWhisperer
-
CodeWhisperer是Amazon发布的一款免费的AI编程辅助小工具,可在你的集成开发环境(IDE)中生成实时单行或全函数代码建议,帮助你快速构建软件。简单来说,AmazonCodeWhi...
- 2014年最优秀JavaScript编辑器大盘点
-
1.WebstormWebStorm是一种轻量级的、功能强大的IDE,为Node.js复杂的客户端开发和服务器端开发提供完美的解决方案。WebStorm的智能代码编辑器支持JavaScript,...
- 基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享
-
项目简介:基于JS的超轻量级聊天软件。前端:vue、iview、electron实现的PC桌面版聊天程序,主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。支持...
- JetBrains Toolbox推出全新产品订阅授权模式
-
捷克知名软件开发公司JetBrains最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境IntelliJIDEA,相信很多开发者都有所了解。而近期自2015年11月2日起,JetBr...
- idea最新激活jetbrains-agent.jar包,亲测有效
-
这里分享一个2019.3.3版本的jetbrains-agent.jar,亲测有效,在网上找了很多都不能使用,终于找到一个可以使用的了,这里分享一下具体激活步骤,此方法适用于Jebrains家所有产品...
- CountDownTimer的理解(countdowntomars)
-
CountDownTimer是android开发常用的计时类,按照注释中的说明使用方法如下:kotlin:object:CountDownTimer(30000,1000){...
- 反射为什么性能会很慢?(反射时为什么会越来越长)
-
1.背景前段时间维护一个5、6年前的项目,项目总是在某些功能使用上不尽人意,性能上总是差一些,仔细过了一下代码发现使用了不少封装好的工具类,工具类里面用了好多的反射,反射会影响到执行效率吗?盲猜了一...
- btrace 开源!基于 Systrace 高性能 Trace 工具
-
介绍btrace(又名RheaTrace)是抖音基础技术团队自研的一款高性能AndroidTrace工具,它基于Systrace实现,并针对Systrace不足之处加以改进,核心改进...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- .NET 奇葩问题调试经历之3——使用了grpc通讯类库后,内存一直增长......
- 全局和隐式 using 指令详解(全局命令)
- 请停止微服务,做好单体的模块化才是王道:Spring Modulith介绍
- ASP.NET程序集引用之痛:版本冲突、依赖地狱等解析与实战
- .NET AOT 详解(.net 6 aot)
- 一款基于Yii2开发的免费商城系统(一款基于yii2开发的免费商城系统是什么)
- asar归档解包(游戏arc文件解包)
- 在PyCharm 中免费集成Amazon CodeWhisperer
- 2014年最优秀JavaScript编辑器大盘点
- 基于springboot、tio、oauth2.0前端vuede 超轻量级聊天软件分享
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)