结合Atomic Red测试与Falco实现Kubernetes实时威胁检测
| Nigel Douglas
作为Project Falco的开发者倡导者,Nigel Douglas在Sysdig负责推动云原生安全中开源检测与响应(D&R)领域的教育。他通过撰写文章、博客和演讲,帮助提高人们对云安全需求变化的认识。
在云原生环境中,应用程序的伸缩速度远快于传统的单体应用架构,因此实时主动识别和响应威胁的能力至关重要。随着更多组织采用云原生架构进行应用交付,需要引入更强大的安全措施。本文探讨了Kubernetes威胁检测的动态领域,探索开源Falco如何在Kubernetes环境中无缝实时检测Atomic Red Team测试。
Atomic Red Team是一个强大的框架,旨在模拟真实世界攻击,为组织提供受控环境以验证其安全措施的有效性。我们通过贡献一个Kubernetes部署清单进一步推进,通过单一命令加速在Kubernetes集群中部署和测试Atomic Red测试,模拟有用的攻击场景以测试现有开源云原生入侵检测系统(如Falco)的响应能力。
我们的旅程从轻松部署Atomic Red到Kubernetes开始,展示在容器化环境中编排安全测试的简单性和效率。部署后,我们调用特定的Atomic Red Team测试,模拟一系列威胁场景。真正的测试在于Falco根据MITRE ATT&CK框架检测这些威胁的能力,这是一个全球认可的将对手技术映射到防御策略的矩阵。
这次探索不仅仅是识别威胁;这是一项协作努力,旨在增强Kubernetes的安全覆盖范围。如果发现Falco检测能力中的任何差距,我们可以深入修改执行的技术并制定自定义规则。这个迭代过程旨在扩展MITRE ATT&CK覆盖范围,将Atomic Red测试与行业最佳的Kubernetes威胁检测和缓解实践对齐。
部署Atomic Red Team
为避免生产环境中的潜在服务中断,我们建议在测试实验室环境或至少Kubernetes的暂存环境中安装Atomic Red。我们有一个逐步视频,用于在Kubernetes中安装Atomic Red:https://www.youtube.com/watch?v=5QjGnHGnxxo
在开始部署之前,请记住创建atomic-red网络命名空间。
|
|
将部署一个特权设置为true的单一pod。Atomic Red需要管理员级别的securityContext来执行某些需要提升权限的操作。
|
|
注意:这将在‘atomic-red‘网络命名空间中创建一个名为‘atomicred‘的pod。
您可以使用以下命令检查安装状态:
|
|
如果您想从Kubernetes集群中移除Atomic Red项目,只需运行:
|
|
熟悉Atomic Red测试
部署后,您需要shell到Atomic Red pod中执行以下测试场景。
这可能有点令人困惑,但Atomic Red是考虑到PowerShell开发的,因此以下说明要求用户shell到一个容器中,一旦进入运行的pod,他们必须运行PowerShell来导入和调用各种Atomic测试场景。
一旦熟悉了这个逻辑,您会发现Atomic Red是一个真正简单的安全模拟工具。
|
|
如前所述,您需要在Atomic Red pod中运行PowerShell:
|
|
现在,您终于可以加载Atomic Red Team模块:
|
|
检查TTP的详细信息:
|
|
检查先决条件以确保测试条件正确:
|
|
您可以在下面的屏幕截图中看到,执行这些测试不需要先决条件。因此,我们可以调用批量文件删除测试场景。
移除功能标志以执行测试模拟。
|
|
此测试将尝试删除单个文件或单个目录。当我们安装Falco时,此Atomic测试应默认触发‘Warning bulk data removed from disk‘规则。接下来,我们讨论Falco的安装。
恭喜!现在我们知道Atomic Red如何工作,让我们安装Falco并与其并行运行以证明它实时检测这些测试。我们将需要打开两个终端窗口以查看实时响应检测。
安装和测试Falco
对于本实验室指南,我们可以通过Helm在固定版本上安装Falco,在将规则分离到不同规则源(如‘incubating’、‘sandbox’和‘stable’)之前。我们这样做是为了确保所有Falco规则在我们的实验室场景中可访问。要使用最新版本的Falco,只需从Helm安装脚本中移除‘–version’功能标志。
|
|
就像Atomic Red部署一样,我们需要监控Falco安装的进度。pod在安装过程中会几次改变状态,但应在大约一分钟后全部处于‘RUNNING‘状态。请使用以下命令检查Falco pod的状态变化:
|
|
一旦Falco安装完成,我们可以在第二个终端窗口中使用以下命令跟踪生成的事件。
|
|
跳回第一个终端窗口并重新运行批量文件删除Atomic测试 – ‘T1070.004‘:
|
|
您将识别检测规则中的某些噪音。例如,所有Atomic测试都在‘Root’用户下运行,因此,我们总是会检测到在root下运行的脚本。要忽略此噪音,让我们改为仅检查我们想要检测的特定Falco规则:
|
|
万岁!我们看到与Atomic Red测试场景上下文完全匹配的检测。
让我们继续调用下一个Atomic测试。今天有许多Linux测试场景可以测试。
查看官方Atomic Red Team Github项目上的列表。
T1556.003 修改认证过程
在此场景中,Atomic Red生成三个可插拔认证模块(PAM):两个用于Linux和FreeBSD的恶意PAM规则,以及一个用于Linux的恶意PAM模块。这些程序可用于打开和读取敏感文件内容,我们可以同意它们是非信任程序。再次,我们有一个开箱即用的规则用于这些活动:
|
|
现在,是时候模拟我们的威胁了:
|
|
T1036.005 伪装:匹配合法名称或位置
此测试场景从伪装为当前父目录的目录执行进程。
|
|
现在,是时候模拟我们的威胁了。
|
|
您可以在左侧终端窗口中看到,终端中有一条回显消息说‘”Hello from the Atomic Red Team.”‘ 命令行中的任何字符串输出也可以在Falco的输出中检测到。
T1070.002 主机上的指标移除
对手可能清除系统日志以隐藏入侵证据。macOS和Linux都通过系统日志跟踪系统或用