Olaf Hartong - Endpoint detection superpowers on the cheap, Threat Hunting app

我创建这个应用程序的原因之一是端点是一种常用的进入网络的方式。有相当多的端点检测和补救 (EDR) 解决方案,其中大多数都非常好,但是它们可能很昂贵,而且并不是每个人都能负担得起(目前)。
我想为检测方面创建一种替代方法,使用 MITRE ATT&CK 框架并使用现有环境。它允许您利用现有的数据平台,在本例中为 Splunk。
这不是灵丹妙药。
它需要调整和真正的调查工作才能在您的环境中真正有效。
话虽如此,这也是一个很好的机会,可以了解很多关于您的环境并真正了解正在运行的内容,因此什么是正常的,什么不是。
目前我的应用程序主要基于 Sysmon 数据。Sysmon 是一个免费的、功能强大的主机级跟踪工具,由 Sysinternals /Microsoft 员工组成的一个规模虽小但规模宏大的团队开发。Sysmon 正在使用一个设备驱动程序和一个在后台运行并在启动过程中很早就加载的服务。此服务还允许您配置正在记录的内容。
我创建了一个模块化配置存储库,我在这里写过博客:MITRE ATT&CK、Sysmon 和我的模块化配置

目标

我想创建一个应用程序,帮助为 Threat Hunters 创建调查工作流方法。
使用 ML(强制性学习)来真正了解您的环境。
为用户提供情境化和调查这些事件的工具
并以 MITRE ATT&CK 为基础,因为它是一个很好的参考点。
在撰写本文时,我已经创建了 125 个报告来查找 117 种 ATT&CK 技术。我会尽我所能,但请注意每种技术都有多种变化,每当我遇到这些变化时,我都会不断更新。
所有这些报告都将其结果写入摘要索引,这是应用程序的主要来源。目前 ATT&CK 的分布是这样的:
image.png

挑战

在创建应用程序时,我遇到了几个挑战,其中很多是由于我没有开发背景,但有些值得注意的是:

  • Splunk 没有我喜欢的数据模型,所以创建了一个基于OSSEM的模型,这是 Roberto Rodriguez 的一个很棒的模型
  • 在 120 多个搜索中发明白名单功能花了我相当长的时间,并重新构建以使其正确
  • 重新构建应用程序超过 4 次以解决我发现效果不佳的问题,我们称之为敏捷
  • 我还没有找到一种生成高性能且可靠的进程树的方法
  • 我仍然想要更多的选择性过滤

    配置

    在这里下载。
    在您能够使用该应用程序之前,您需要安装一些必需的应用程序,创建威胁搜索索引并调整宏以适合您的索引。您需要安装以下应用程序:

  • Punchcard可视化

  • Force Directed可视化
  • Sankey Diagram可视化
  • 查找文件编辑器

你还需要创建所有的白名单,我故意不在应用程序中提供这个,以避免在未来的升级中被覆盖。他们可以在这里下载。

应用程序

打开应用程序,您将进入概览页面,这将为您提供过去 24 小时内每个 ATT&CK 类别的所有触发器的计数,以及最热门的触发技术和受影响最大的主机。
image.png
应用程序中的所有内容都是可点击的,并且深入了解例如 Credential Access 将显示以下概述。

ATT&CK 概述

image.png
此页面动态填充所有通过报告触发指标的 Sysmon 事件类型。在这种情况下,有进程创建、进程访问和图像加载事件类型的触发器。表中的大多数字段都有与之相关的向下钻取操作,所有字段的概述如下:
image.png
我计划随着时间的推移添加更多的钻取操作,请告诉我你的想法!

GUID 向下钻取

GUID 非常强大,它们是进程的唯一 ID,可让您可靠地跟踪进程并查找其父进程和子进程。使用 ProcessID (pid) 不太可靠,因为它们在活动系统上会很快重用,因此这可能会打乱您的调查。单击这些 GUID 会将您带到一个集中的仪表板,向您显示它的父级和 1 级子级。(我仍在寻找一种以性能可接受的方式生成整棵树的正确方法)
image.png
无论如何,这个页面是对许多情况下事件的一个很好的概述。左图将显示哪些进程与该 GUID 相关联,这应该只有 1。在某些进程注入技术的情况下,可能还有第二个,您想检查一下。右侧的 Sankey 图将显示一个小型流程树。它将查找所用 GUID 的 1 个父级和 1 个子级。在这种情况下,我们看到 PowerShell 正在启动。最重要的是,PowerShell 进程产生了许多子进程,这些子进程在“进程创建”部分和其他可能触发的事件类型中可见,类似于 ATT&CK 概述,此页面将动态填充事件,在这种情况下与父进程相关进程 GUID。
单击这些进程将带您进入类似页面,但随后基于进程 GUID。

计算机钻取

单击 host_fqdn / 计算机名称将引导您进入计算机钻取。此仪表板顶部有一个打孔卡时间线。
image.png
这将为您提供过去 24 小时内(默认情况下)该机器上所有触发器的概览。正如您可能已经发现,常用端口上的第一行显示了一种独特的、重复的模式,该模式在下午 4 点和 6 点发生变化,同时触发更多触发器。这将是深入研究这些时间框架的一个很好的理由,因为这可能表明向 C&C 服务器发送信标。与之前提到的所有仪表板一样,该仪表板也将填充由报告触发的所有事件类型。其中之一将是网络连接钻取。

网络连接明细

单击源或目标 IP 将引导您进入网络连接明细,并显示与该 IP 地址或来自该 IP 地址的所有相关连接。
image.png
左侧的图表将向您显示中间的搜索实体及其周围的所有相应连接。在此示例中,桑基图将更具描述性,因为它还通过使这些条变粗来显示权重或连接数量。然后打孔卡图将显示过去 24 小时内与搜索 IP 的连接。
下面是一个包含所有相关触发器的表格,最后是所有原始事件。这些事件展开后,将提供额外的选项,通过利用 Shodan、GeoIP、ThreatMiner 等形式的工作流操作来获取上下文信息。

白名单

此应用程序的一个关键功能是白名单选项。由于有相当多的报告具有相当通用的参数,因此会有很多可见的可信行为,您在验证后想要摆脱这些行为。我建议与您的 IT 管理员成为好朋友,因为他们将能够解释您将看到的很多内容,然后能够将其列入白名单。
任何表中的任何 _time 字段都是可点击的,并将带您进入对应于相应事件类型的白名单编辑器。该表单将填充表格行中的所有相关字段,允许您编辑它们以添加白名单。这在将多台机器列入白名单或命令行包含动态值时特别有用。唯一需要的是添加一个原因。我建议使用票务系统来存储您的调查并使用票号作为原因。
提交后该事件将被添加到查找列表中,并添加数据和添加白名单条目的用户以供将来参考:
image.png

其他帮助仪表板

计算机调查员

此仪表板将概述为顶部搜索的机器摄取的所有日志。在其下方,它将显示描述触发事件的类似时间线。这将帮助您确定可能发生可疑事情的有趣时间范围:
image.png

PowerShell 向下钻取

此仪表板将搜索所有 PowerShell 命令行,并为找到的 Base64 块生成表,并为下载或启动的 Web 连接生成表:
image.png
单击 base64 块时,它将引导您走向优秀的CyberChef并自动尝试解码该块。从那里您可以进一步调查该代码块以查看在您的机器上执行了什么。

更多的

还有一个 Sysmon 仪表板,显示篡改尝试。除此之外,还有一个横向移动仪表板,显示了各种远程执行尝试,例如 WMI、PsExec 和 WinRM。
YouTube 上提供了该应用程序的演示视频

结束

这篇文章涵盖了部署和维护 Sysmon 及其配置,前一部分包括:

下一个主题将涵盖:

  • 如何开始解释日志记录以帮助您调整配置
  • 更多的… :)