MarioMM21/aws-detection-as-code

GitHub: MarioMM21/aws-detection-as-code

这是一个AWS检测即代码管道,利用Sigma规则和Terraform自动化部署安全检测,解决了检测工程中的手动管理和一致性问题。

Stars: 0 | Forks: 0

# AWS 检测即代码管道 ![AWS](https://img.shields.io/badge/AWS-Detection%20Engineering-orange?style=for-the-badge&logo=amazon-aws) ![Terraform](https://img.shields.io/badge/Terraform-IaC-purple?style=for-the-badge&logo=terraform) ![Python](https://img.shields.io/badge/Python-3.11-blue?style=for-the-badge&logo=python) ![MITRE](https://img.shields.io/badge/MITRE-ATT%26CK-red?style=for-the-badge) ![Sigma](https://img.shields.io/badge/Sigma-Detection%20Rules-yellow?style=for-the-badge) ![CI/CD](https://img.shields.io/badge/GitHub%20Actions-CI%2FCD-green?style=for-the-badge&logo=github) ## 概述 这是一个生产级别的检测即代码管道,它通过 Terraform 基础设施即代码将版本控制的 Sigma 检测规则部署到 AWS。每条检测规则都映射到一个 MITRE ATT&CK 技术,通过每次推送的 CI/CD 管道进行验证,并连接到一个智能的 Lambda 处理程序,该处理程序在传递结构化通知之前,会使用威胁上下文来丰富警报。 **这不是手动配置的 SIEM。这是将检测工程视为软件——具备版本控制、经过测试、自动化且可审计。** ## 架构 ## MITRE ATT&CK 覆盖范围 | 规则 | 技术 ID | 战术 | 严重性 | |---|---|---|---| | Root 账户 API 调用 | T1078 | 权限提升 | 严重 | | IAM 策略修改 | T1484 | 权限提升 / 防御规避 | 高危 | | 可疑 S3 访问 | T1537 | 数据渗出 | 中等 | | CloudTrail 日志记录被禁用 | T1562 | 防御规避 | 严重 | | 创建新 IAM 用户 | T1136 | 持久化 | 高危 | ## 检测即代码特性 ### 版本控制的检测规则 每条 Sigma 规则都以 YAML 文件形式存储在 `sigma-rules/mitre/` 目录中。所有更改都通过 Git 进行——每一次修改都可追踪、可审查、可回滚。无需手动在控制台更改。 ### CI/CD 验证管道 GitHub Actions 在每次推送时运行三项作业: - **Sigma 规则验证** — 检查所有必填字段、YAML 语法和 MITRE 标签 - **Terraform 验证** — 格式检查、初始化和验证 - **MITRE 覆盖报告** — 生成所覆盖技术的完整报告 ### MITRE ATT&CK 富化 Lambda 处理程序将每个告警映射到其 MITRE 技术、战术和参考 URL。每个告警都包含基于严重性的建议响应措施——严重级别获得立即调查步骤,高危级别获得 1 小时 SLA 指导,中等级别获得 4 小时指导。 ### 基础设施即代码 通过单次 `terraform apply` 部署 19 个 AWS 资源: - 带有 30 天保留期的 CloudWatch 日志组 - 5 个 CloudWatch 指标过滤器(检测逻辑) - 5 个 CloudWatch 告警(触发层) - 将告警路由到 Lambda 的 EventBridge 规则 - 带有 MITRE 富化功能的 Lambda 函数 - 带有邮件订阅的 SNS 主题 - 最小权限 IAM 角色和策略 ## 检测规则 ### T1078 — Root 账户使用(严重) 当 AWS Root 账户凭据用于任何 API 调用时触发。使用 Root 账户是严重的安全违规——生产环境绝不应使用 Root 凭据进行 API 操作。 ### T1484 — IAM 策略修改(高危) 检测对 IAM 策略的修改,包括 PutUserPolicy、PutRolePolicy、AttachUserPolicy、AttachRolePolicy 和 CreatePolicy。可能是权限提升尝试的指标。 ### T1537 — 可疑 S3 访问(中等) 检测不寻常的 S3 访问模式,包括来自非服务主体的 GetObject、ListBucket 和 GetBucketAcl 调用。可能是数据渗出的指标。 ### T1562 — CloudTrail 被禁用(严重) 当 CloudTrail 日志记录被停止、删除或修改时立即触发。这是关键的防御规避指标——攻击者禁用审计跟踪以使防御者失去可见性。 ### T1136 — 创建新 IAM 用户(高危) 检测新 IAM 用户的创建,这可能表明攻击者通过后门账户建立持久性。 ## 技术栈 | 类别 | 技术 | |---|---| | 检测格式 | Sigma (YAML) | | 云平台 | AWS (us-east-1) | | 基础设施即代码 | Terraform v5.x | | 检测逻辑 | CloudWatch 指标过滤器 | | 告警 | CloudWatch 告警 + SNS | | 富化 | Python 3.11 Lambda (boto3) | | 编排 | Amazon EventBridge | | CI/CD | GitHub Actions | | 框架 | MITRE ATT&CK | ## 项目结构 ## 部署 ``` git clone https://github.com/MarioMM21/aws-detection-as-code.git cd aws-detection-as-code terraform init terraform plan terraform apply ``` ## 销毁 ``` terraform destroy ``` ## CI/CD 管道 每次推送到 main 分支时,会运行三个自动化作业: **作业 1 — 验证 Sigma 规则** 解析 sigma-rules/mitre/ 中的每个 YAML 文件,验证必填字段、语法和 MITRE 标签。如果任何规则格式错误,管道将失败。 **作业 2 — 验证 Terraform** 运行 terraform fmt -check、terraform init -backend=false 和 terraform validate。确保基础设施代码始终可部署。 **作业 3 — MITRE 覆盖报告** 生成检测库所覆盖的 MITRE ATT&CK 技术的完整报告。每次推送时作为 CI 工件发布。 ## 实际效果 部署后,此管道立即开始监控真实的攻击技术: - **从检测到告警送达:** 从 CloudWatch 告警触发到 SNS 通知,耗时少于 60 秒 - **MITRE ATT&CK 覆盖:** 覆盖 4 项战术中的 5 项技术——权限提升、防御规避、数据渗出和持久化 - **CI/CD 验证:** 每次推送时 100% 的检测规则和 Terraform 配置自动验证——无需人工审查 - **已部署检测规则:** 5 条 Sigma 规则转换为 CloudWatch 指标过滤器——全部处于活动状态并实时监控 - **误报处理:** 每条规则都包含文档化的误报指导和调优建议 - **平均修复时间 (MTTR):** 自动化的检测管道消除了人工分类——从检测到结构化告警送达的平均时间少于 60 秒 - **已部署基础设施:** 通过单次 terraform apply 配置 19 个 AWS 资源,并可通过 terraform destroy 干净地销毁 ## 展示的关键技能 | 技能 | 证据 | |---|---| | **检测工程** | 5 条 Sigma 规则映射到 MITRE ATT&CK 技术 | | **检测即代码** | 通过 Terraform + CI/CD 部署的版本控制规则 | | **基础设施即代码** | 通过单次 terraform apply 部署 19 个 AWS 资源 | | **Python 安全自动化** | 具有 MITRE 富化和严重性路由的 Lambda 处理程序 | | **CI/CD 管道** | GitHub Actions 在每次推送时验证规则和基础设施 | | **MITRE ATT&CK 框架** | 实现了 T1078、T1484、T1537、T1562、T1136 | | **CloudWatch 工程** | 指标过滤器、告警和具有保留期的日志组 | | **事件驱动架构** | EventBridge 将告警路由到 Lambda 处理程序 | | **IAM 最小权限** | 范围受限的 Lambda 角色——无通配符权限 | | **威胁情报** | 每条规则都包含误报指导和响应措施 | ## 项目演进 | 项目 | 重点 | 资源 | |---|---|---| | [AWS CSPM 管道](https://github.com/MarioMM21/aws-cspm-pipeline) | 云安全态势管理 + 自动修复 | 32 个资源 | | [企业云安全平台](https://github.com/MarioMM21/enterprise-cloud-security) | 企业安全运营 + 严重性路由 | 52 个资源 | | **AWS 检测即代码管道**(本项目) | 检测工程 + MITRE ATT&CK 覆盖 | 19 个资源 | ## 作者 **Mario Myles** 云安全工程师 | AWS | Terraform | Python | 检测工程 | Security+ - GitHub: [github.com/MarioMM21](https://github.com/MarioMM21) - LinkedIn: [linkedin.com/in/mario-myles](https://linkedin.com/in/mario-myles) *构建并部署于 2026 年 5 月*
标签:AMSI绕过, AWS CloudWatch, AWS EventBridge, AWS Lambda, AWS安全, Cloudflare, DevSecOps, ECS, GitHub Actions, MITRE ATT&CK, Python, Sigma规则, Terraform, URL发现, 上游代理, 云安全监控, 云监控, 人工智能安全, 合规性, 威胁上下文, 威胁情报, 威胁检测, 安全信息与事件管理, 安全可观测性, 安全告警, 安全工程, 安全检测, 安全运营, 审计, 开发者工具, 扫描框架, 提示词模板, 搜索引擎爬取, 无后门, 检测即代码, 检测规则, 漏洞利用检测, 版本控制, 特权提升, 目标导入, 结构化通知, 网络资产发现, 自动化部署, 自动笔记, 规则映射, 逆向工具, 静态分析