使用Hayabusa和SOF-ELK处理Windows事件日志实战指南(第一部分)

本文详细介绍了如何利用Hayabusa工具快速生成Windows事件日志时间线,并通过SOF-ELK平台进行高效分析和威胁狩猎。文章包含完整的实操步骤,从工具配置、规则更新到数据导入和查询分析,帮助安全分析师在数万条日志中快速定位关键安全事件。

使用Hayabusa和SOF-ELK处理Windows事件日志(第一部分)

Windows事件日志是我最喜欢的Windows取证工件之一,但它们数量庞大,在大多数安全调查中只有少量事件具有价值。单个Windows端点通常有数十万条事件日志记录,虽然获取不难,但解析、过滤和搜索以有效高效地获取可操作情报却具有挑战性。在本文第一部分,我们将讨论Hayabusa和"安全运营与取证ELK"(SOF-ELK)如何帮助我们在Windows端点调查中高效处理EVTX文件(Windows事件日志文件)!第二部分,我们将讨论如何将其扩展到多个系统,结合我的"快速端点调查"工作流程。

Hayabusa在日语中意为"游隼",也是一款相当酷的铃木运动摩托车的同名产品,同时还是一个Windows事件日志"快速取证时间线生成和威胁狩猎工具"。Hayabusa由Yamato Security创建和支持,包含超过4,000条SIGMA规则和170多个内置检测规则,帮助我们找到所需的事件日志条目!当我们对EVTX文件运行Hayabusa时,会得到CSV或JSON格式的时间线输出,其中包含规则"命中"的日期/时间戳、规则标题、严重级别(从"信息"到"紧急")和事件详情。

在执行Windows端点调查时,每个主机通常有20万到50万条事件日志记录,我们可以使用Hayabusa来减少和优先处理事件分析。在Hayabusa时间线输出中,事件日志条目将减少约75%,这非常重要,但每个端点仍会留下数万条条目。我们可以通过严重级别进一步过滤Hayabusa输出来优先调查,重点关注高严重级别的规则命中,如"严重"和"高"。即使经过这种程度的减少和优先级排序,我们可能仍需处理数千条条目,这在Excel或其他CSV/JSON工具中可能具有挑战性!

这时就需要"安全运营与取证ELK",即SOF-ELK,这是一个"专注于计算机取证调查员/分析师典型需求的大数据分析平台",以预打包虚拟机形式提供,具有用于Hayabusa摄取的预构建解析器(以及许多其他日志/文件类型),以及用于搜索和过滤的直观Web界面。

总结一下,EVTX文件是有用的Windows端点调查工件,Hayabusa可以帮助我们找到感兴趣的事件,而SOF-ELK可以帮助我们摄取、解析、然后搜索、排序和过滤EVTX输出。让我们深入了解如何为单个Windows端点实现这一目标。

首先,访问Hayabusa GitHub仓库,将最新稳定版本下载到分析系统。注意支持Windows、Mac和Linux平台。我将使用Windows版本(撰写本文时为v.3.3.0 – hayabusa-3.3.0-win-x64.zip)。

我将hayabusa-3.3.0-win-x64.zip文件解压到"C:\Tools",并将测试案例EVTX文件暂存在"D:\cases\test_case_evtx"目录中。

接下来,我打开Windows Terminal – PowerShell 7,导航到"C:\Tools\Hayabusa-3.3.0-win-x64"目录,通过".\hayabusa-3.3.0-win-x64.exe update-rules"命令更新Hayabusa规则。您可能会看到一系列更新规则滚动而过!

现在规则已更新,我将使用以下命令从"test_case_evtx"文件创建JSON时间线以导入SOF-ELK: “.\hayabusa-3.3.0-win-x64.exe json-timeline -d d:\cases\test_case_evtx -w -L -o d:\cases\test_case_evtx\hayabusa-output-Host123.jsonl”

“-d"开关告诉Hayabusa在"目录"中查找所有要处理的EVTX文件,"-w"停止加载"向导”,"-L"指定"JSONL"文件输出,"-o"指定输出的路径和文件名。作为参考,我的输入包括总共381个事件日志文件,约190 MB,处理时间约一分钟。

注意:最好为输出文件命名唯一,例如"hayabusa-output-HostXYZ.jsonl"。当我们需要将多个输出文件导入SOF-ELK时(本博客第二部分),这将使生活更轻松!

命令完成后,您应该有一个"JSONL"输出文件和一个关于扫描、检测、输出、规则等的元数据屏幕。

下载并解压VM(撰写本文时为v20241217.7z存档)后,您可以启动VMWare,单击"File\Open",导航到解压的SOF-ELK VM存档,并打开"SOF-ELK.vmx"。

在Windows系统上运行VM时,我通常"编辑虚拟机设置"并启用"Virtualize IOMMU"以获得更好的UI性能,但这是可选的!

现在您可以启动SOF-ELK VM,使用"elk_user"登录,密码为"forensics",然后运行"sudo sof-elk_update.sh"确保SOF-ELK是最新的。

SOF-ELK更新完成后,我们可以将Hayabusa输出复制到正确的"logstash"文件夹中,耐心等待SOF-ELK魔法发生,然后通过Web UI开始分析数据。

我们将使用"scp"(安全复制)将输出数据从主机系统复制到SOF-ELK。首先,检查SOF-ELK VM的IP地址:$ip -br a

注意:您的IP地址将与我的略有不同!

现在在主机系统上打开Windows PowerShell提示符,输入以下命令,将IP地址更改为匹配您的SOF-ELK VM的IP: scp d:\cases\test_case_evtx\hayabusa-output-HostXYZ.jsonl elk_user@192.168.x.x:/logstash/hayabusa/

首次通过scp验证到SOF-ELK VM时,系统会提示您接受证书指纹。输入"yes"并按回车继续,然后输入"elk_user"密码:forensics。您应该会看到文件传输完成100%。

在SOF-ELK VM上,您可以运行以下命令检查摄取进度和Elasticsearch索引的填充情况:sof-elk_clear.py -i list

同样,耐心等待,您应该会看到类似以下截图的内容,表明"evtxlogs"索引正在被填充。

注意:您的文档编号将不同!

现在我们可以访问SOF-ELK Web UI并开始审查Hayabusa输出。在主机系统上,打开浏览器并访问您的SOF-ELK IP地址,指定端口5601:http://192.168.x.x:5601

这应该会将您带到SOF-ELK默认仪表板,以便您查看漂亮的ELK(甚至是双管?!我超级嫉妒!)。

让我们单击"汉堡"(三条线)图标并选择"Discover"。

接下来,选择"Data View"下拉菜单,将数据视图更改为"evtxlogs-*"。

重要:现在,我们需要更改"数据视图"日期范围以反映调查的相关日期。最简单的方法是单击"Date quick select"并选择一个相对范围,例如"Last 90 days"。在调查中设置此范围时相对精确是个好主意,以准确约束结果并提高性能。

设置日期后,我们应该开始看到结果填充到数据视图中。在更改任何Web UI参数后,注意单击"Refresh"按钮是个好主意!

对于我的样本EVTX文件(来自受感染的测试系统),我起始约有14.5万条事件日志条目,产生的Hayabusa时间线条目略低于1.6万条。这又是一个巨大的减少!下一步是查找恶意活动!

我喜欢SOF-ELK(Elastic)的一点是Web UI在很大程度上可以自我引导。我喜欢从展开一个事件开始,然后选择我想要在文档视图中看到的数据字段。

单击文档条目的"Toggle dialog with details"双箭头。

这将在右侧展开文档表格。现在我们可以开始审查可用字段,并在文档视图中"切换"字段的开关。我将切换以下字段:

  • host.hostname
  • rule.level
  • rule.name
  • winlog.event_id

重要:可用字段将根据原始事件类型而变化。随着我们缩小搜索结果并逐步进行分析,我们将希望根据正在分析的事件类型调整"切换"的字段。

注意:您可能还希望将"labels.type"字段添加到视图中,以区分标准EVTX日志和Hayabusa处理的EVTX日志,两者都驻留在"evtxlogs"索引中。对于此示例,我们仅使用Hayabusa输出。

接下来,我通常希望审查高严重性检测。您可以"过滤进"这些规则级别(rule.level)或过滤掉低严重性级别。我将使用以下KQL语法过滤掉"低严重性"规则级别(info、low、med): NOT rule.level: "info" and NOT rule.level: "low" and NOT rule.level: "med"

注意:有大约93种格式化SOF-ELK查询的方法!如果您有适合您的方法,就那样做!有更短的方法来起草上述查询,但此查询故意冗长和迂腐,以超级清晰且易于理解/编辑。

我现在已将样本数据减少到23个文档进行初步审查。审查完高严重性条目后,我将为分析构建上下文(日期/时间、用户、文件、路径等),然后使用该上下文指导我对"med"规则命中的分析。

现在您可以让分析工作流程指导您!缩小到与调查相关的日期/时间,切换字段以突出显示调查问题的潜在答案,根据任何字段或多个字段过滤进/出结果,扩展和收缩所有上述内容,直到确定攻击范围,并将精确过滤的数据导出为CSV以安全保存或与他人共享。

请继续关注第二部分,我们将在本文基础上扩展,将EVTX处理从"一个"主机扩展到"多个"主机,作为我"快速端点调查"工作流程的一部分。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计