新手家庭检测工程实验室搭建指南

本文详细介绍了如何搭建家庭检测工程实验室,包括使用VirtualBox虚拟化平台部署Wazuh SIEM服务器、配置Windows端点代理,以及通过Invoke-Atomic工具模拟MITRE ATT&CK框架中的攻击技术来测试检测能力。

家庭检测工程实验室搭建指南(新手向)

| Niccolo Arboleda | 特邀作者

Niccolo Arboleda是多伦多大学的网络安全爱好者和学生。他通常在家中的实验室里研究各种网络安全工具并开展项目。他热衷于保护关键基础设施免受网络攻击。

环境中总会出现新的、不断演变的威胁。在威胁对人员及其生计造成实际损害之前检测到这些威胁至关重要。

在本博客中,我们将介绍如何构建一个简单的安全信息和事件管理(SIEM)环境来模拟攻击,并让我们了解检测在识别威胁和建立防御方面的重要性。所有使用的软件和相关文档的链接将在博客末尾的参考资料部分提供。

*如果您在某个环节遇到困难,请参考文档。您会在那里找到问题的解决方案。

环境设置

我们需要主机(您的计算机)、一个虚拟机监控程序、一个管理服务器和一个端点来构建环境。

虚拟机监控程序

我们需要做的第一件事是选择一个虚拟机监控程序来构建我们的环境。虚拟机监控程序是一种软件,允许我们使用主机创建虚拟机。在这种情况下它非常有用,因为我们不需要多台物理计算机来创建环境。有许多虚拟机监控程序,但就可访问性和易用性而言,VMware Workstation或VirtualBox的免费版本就足够了。我在这个项目中使用的虚拟机监控程序是VirtualBox。

管理服务器

我们将使用Wazuh作为我们的管理服务器,因为它是开源且得到良好支持的。Wazuh是一个用于威胁检测和事件响应的平台。如果您想探索其他选项,还有其他开源的SIEM解决方案,例如ELK Stack或OSSEC。

在这种情况下,我建议使用OVA版本以简化安装过程。OVA版本是一个独立的Linux(Amazon Linux 2)虚拟机镜像,其中已预装了Wazuh服务器。我在VirtualBox中托管了该服务器。

虽然Wazuh网站的文档部分会有安装说明,但下面部分提供了一个高级概述。

  1. 搜索安装替代方案并点击虚拟机(OVA)链接。
  2. 点击wazuh-4.7.3.ova(sha512)链接下载镜像(请注意版本可能已更改)。
  3. 镜像下载完成后,点击VirtualBox上的导入按钮并加载文件。
  4. 在启动虚拟机之前,我们需要进入设置并将显示设置更改为VMSVGA,以防止虚拟机崩溃,如Wazuh文档中所述。

管理服务器启动并运行后,我们需要使用ipconfig命令记下其IP地址,以便稍后加载仪表板。

端点

端点将包含三个主要部分:操作系统、代理和攻击模拟框架。注意:代理和框架将安装在端点虚拟机上,而不是主机上。

操作系统

Windows将用作端点虚拟机的操作系统。第一步是访问Windows开发者环境网页,获取与我们的虚拟机监控程序兼容的虚拟机。

镜像下载完成后,需要像Wazuh服务器管理器一样导入到VirtualBox中。我们将选择导入并选择Windows VirtualBox实例。

接下来,需要启动虚拟机。

您不需要许可证即可拥有功能正常的Windows虚拟机。

代理

安装说明可以在Wazuh文档中找到。

下载完成后,安装代理并运行管理器。

使用管理服务器的IP地址配置Wazuh代理并保存设置。

要检查一切是否正常,请返回您的主机并打开浏览器。输入https://,它应该允许您访问仪表板。您的端点机器应显示在代理下,如下图中所示。

攻击模拟框架

为了完成检测实验室,我们需要一个框架来参考针对我们特定环境的网络攻击。在这种情况下,我们将使用MITRE ATT&CK框架。

MITRE ATT&CK框架是一个知识库,包含在现实世界中观察到的对手技术和战术。

为了模拟对端点的攻击,我们将使用Invoke-Atomic。Atomic Red Team有一个基于MITRE ATT&CK框架的检测测试库。Invoke-Atomic是Atomic Red Team的PowerShell模块。该工具有助于网络安全专业人员理解并模拟其环境中的相关威胁。

要安装Invoke-Atomic,我们需要绕过可能阻止安装的PowerShell执行策略。在这种情况下,我在管理员权限下运行了一个PowerShell命令,通过替换“授权管理器”来禁用执行策略。

1
2
3
function Disable-ExecutionPolicy {($ctx = $executioncontext.gettype().getfield("_context","nonpublic,instance").getvalue( $executioncontext)).gettype().getfield("_authorizationManager","nonpublic,instance").setvalue($ctx, (new-object System.Management.Automation.AuthorizationManager "Microsoft.PowerShell"))} 

Disable-ExecutionPolicy  .runme.ps1

然后,我运行了Invoke Atomic及其框架的安装命令。

1
2
IEX (IWR 'https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1' -UseBasicParsing);
Install-AtomicRedTeam getAtomics

下面的截图显示了成功安装:

使用Invoke-Atomic进行攻击模拟

所有组件就位并运行后,我们可以开始在端点上模拟攻击,以查看攻击模拟将触发哪些警报。

可以通过PowerShell运行模拟。我使用的命令是:

1
Invoke-AtomicTest T1003 -TestNumbers 6

在这个具体示例中,我使用了攻击参考T1003 – 6,如下所示,这是一种利用kmgr.dll和rund1132.exe的凭据转储攻击。

凭据转储是一种在线攻击,从随机存取存储器(RAM)中窃取凭据。

启动模拟后,触发了以下应用程序(存储的用户名和密码)。

Wazuh仪表板还记录了来自攻击的活动,指出注册表值和密钥完整性的变化。规则750(注册表值完整性校验和更改)和594(注册表密钥完整性更改)被记录下来以供进一步分析。它们可以在Wazuh仪表板的安全事件选项卡中找到。

需要注意的是,并非所有攻击模拟都会产生警报。这不一定是坏事,因为它标识了检测系统中可以填补的空白。您还可以考虑组合出现的警报来创建自己的自定义检测。

总结

构建我们的环境、执行攻击模拟并查看仪表板上是否出现任何警报,可以帮助我们开始识别检测中的空白,并调整我们的SIEM以降低噪音并将相关警报提升到系统的更高层级。这就是您检测工程冒险的开始。

最后,我想说的是,网络安全领域非常广阔,涉及许多学科。如果您是行业新手,并且真心热衷于保护人们免受日益增长的技术威胁,请不要气馁。我们共同踏上这段旅程,我为您加油。

资源

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