前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Threatest测试端到端威胁检测规则的有效性

如何使用Threatest测试端到端威胁检测规则的有效性

作者头像
FB客服
发布2023-03-30 18:41:38
6070
发布2023-03-30 18:41:38
举报
文章被收录于专栏:FreeBuf

 关于Threatest 

Threatest是一个基于Go开发的安全测试框架,该框架可以帮助广大研究人员测试端到端威胁检测规则的有效性与可用性。

Threatest允许我们使用各种渗透测试技术对目标进行安全检测,并以此验证是否能够触发期望的安全警报。

 检测工程 

从广义上讲,检测工程是识别与组织相关的威胁、深入了解它们并提出可靠的策略来检测它们的学科。尽管没有标准化流程,但检测工程通常遵循几个阶段:

构思:哪些攻击技术与我们的组织相关? 研究:攻击技术是如何工作的?它生成什么日志或遥测数据? 收集要求:实现检测需要哪些日志?我们是否需要更多的可见性或更广泛的范围来实施检测? 开发:定义具体的检测策略以制定检测规则。 测试和部署:测试规则,最好是针对真实世界的数据,以确保它按预期工作,不会产生太多误报。 维护:持续收集检测规则生成的警报指标,并根据需要采取修改和维护。

 支持的渗透测试技术和警报匹配器 

1、本地命令执行 2、SSH命令执行 3、Stratus红队相关 4、AWS相关 5、Datadog Security信号警报匹配器

 工具下载 

由于该工具基于Go开发,因此我们首先需要在本地设备上安装并配置好Golang环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
代码语言:javascript
复制
git clone https://github.com/DataDog/threatest.git

(向右滑动、查看更多)

 工具使用 

测试Cloud SIEM规则

代码语言:javascript
复制
代码语言:javascript
复制
go test -timeout 99999s cloudsiem_alerts_test.go -v

(向右滑动、查看更多)

输出样例:

代码语言:javascript
复制
=== RUN   TestCloudSIEMAWSAlertsDetonating 'aws.initial-access.console-login-without-mfa' with Stratus Red Team2022/06/16 16:31:08 AWS console login: Confirmed that the expected signal (Datadog security signal 'An IAM user was created') was created in Datadog (took 17 seconds).2022/06/16 16:31:08 AWS console login: Confirmed that the expected signal (Datadog security signal 'AWS Console login without MFA') was created in Datadog (took 17 seconds).2022/06/16 16:31:08 AWS console login: All assertions passedDetonating 'aws.persistence.iam-create-admin-user' with Stratus Red Team2022/06/16 16:31:14 AWS persistence IAM user: Confirmed that the expected signal (Datadog security signal 'An IAM user was created') was created in Datadog (took 0 seconds).2022/06/16 16:31:14 AWS persistence IAM user: All assertions passed--- PASS: TestCloudSIEMAWSAlerts (126.53s)PASS

(向右滑动、查看更多)

测试CWS规则

代码语言:javascript
复制
go test cws_alerts_test.go -v

输出样例:

代码语言:javascript
复制
代码语言:javascript
复制
=== RUN   TestCWSAlertsConnecting over SSHConnection succeeded2022/06/16 16:25:20 curl to metadata service: Confirmed that the expected signal (Datadog security signal 'EC2 Instance Metadata Service Accessed via Network Utility') was created in Datadog (took 12 seconds).2022/06/16 16:25:20 curl to metadata service: All assertions passed2022/06/16 16:25:42 Java spawning shell: Confirmed that the expected signal (Datadog security signal 'Java process spawned shell/utility') was created in Datadog (took 19 seconds).2022/06/16 16:25:42 Java spawning shell: All assertions passed--- PASS: TestCWSAlerts (45.64s)=== RUN   TestCWSAlertsV2Connecting over SSHConnection succeeded=== RUN   TestCWSAlertsV2/curl_to_metadata_service=== PAUSE TestCWSAlertsV2/curl_to_metadata_service=== RUN   TestCWSAlertsV2/java_spawns_shell=== PAUSE TestCWSAlertsV2/java_spawns_shell=== CONT  TestCWSAlertsV2/java_spawns_shell=== CONT  TestCWSAlertsV2/curl_to_metadata_service2022/06/16 16:26:02 curl to metadata service: Confirmed that the expected signal (Datadog security signal 'EC2 Instance Metadata Service Accessed via Network Utility') was created in Datadog (took 11 seconds).2022/06/16 16:26:02 curl to metadata service: All assertions passed2022/06/16 16:26:02 java spawns shell: Confirmed that the expected signal (Datadog security signal 'Java process spawned shell/utility') was created in Datadog (took 17 seconds).2022/06/16 16:26:02 java spawns shell: All assertions passed--- PASS: TestCWSAlertsV2 (0.06s)    --- PASS: TestCWSAlertsV2/java_spawns_shell (20.12s)    --- PASS: TestCWSAlertsV2/curl_to_metadata_service (20.24s)PASS
代码语言:javascript
复制

(向右滑动、查看更多)

测试Stratus Red团队触发的Datadog Cloud SIEM信号

代码语言:javascript
复制
代码语言:javascript
复制
threatest := Threatest()threatest.Scenario("AWS console login").  WhenDetonating(StratusRedTeamTechnique("aws.initial-access.console-login-without-mfa")).  Expect(DatadogSecuritySignal("AWS Console login without MFA").WithSeverity("medium")).  WithTimeout(15 * time.Minute)assert.NoError(t, threatest.Run())

(向右滑动、查看更多)

代码语言:javascript
复制

测试通过SSH运行命令触发的Datadog Cloud Workload Security信号

代码语言:javascript
复制
ssh, _ := NewSSHCommandExecutor("test-box", "", "")threatest := Threatest()threatest.Scenario("curl to metadata service").  WhenDetonating(NewCommandDetonator(ssh, "curl http://169.254.169.254 --connect-timeout 1")).  Expect(DatadogSecuritySignal("EC2 Instance Metadata Service Accessed via Network Utility"))assert.NoError(t, threatest.Run())

(向右滑动、查看更多)

 许可证协议 

本项目的开发与发布遵循Apache-2.0开源许可证协议。

 项目地址 

Threatest:https://github.com/DataDog/threatest

参考资料:

https://securitylabs.datadoghq.com/articles/threatest-end-to-end-testing-threat-detection/

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于Threatest 
  •  检测工程 
  •  支持的渗透测试技术和警报匹配器 
  •  工具下载 
    • (向右滑动、查看更多)
    •  工具使用 
      • 测试Cloud SIEM规则
        • (向右滑动、查看更多)
          • (向右滑动、查看更多)
            • 测试CWS规则
              • (向右滑动、查看更多)
                • 测试Stratus Red团队触发的Datadog Cloud SIEM信号
                  • (向右滑动、查看更多)
                    • 测试通过SSH运行命令触发的Datadog Cloud Workload Security信号
                      • (向右滑动、查看更多)
                      •  许可证协议 
                      •  项目地址 
                      • 参考资料:
                      相关产品与服务
                      腾讯云服务器利旧
                      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档