aws-samples/sample-agentic-ai-security-operations-using-quick-suite

GitHub: aws-samples/sample-agentic-ai-security-operations-using-quick-suite

基于AWS CDK的Agentic SOC研讨会基础设施,用于一键部署模拟攻击环境并指导构建AI驱动的多工具安全运营Agent。

Stars: 2 | Forks: 0

# Agentic SOC 研讨会 — CDK 基础设施 本仓库包含 Agentic SOC 研讨会的 AWS CDK 基础设施。它负责配置运行该研讨会所需的所有 AWS 资源,包括身份验证、日志记录、攻击模拟,以及用于构建 AI 驱动的安全运营中心 (SOC) Agent 的支持性基础设施。 ## 目录 1. [前置条件](#prerequisites) 2. [设置](#setup) 3. [项目结构](#project-structure) 4. [架构](#architecture) 5. [部署基础设施](#deploy-the-infrastructure) 6. [构建你的 SOC Agent](#build-your-soc-agent) 7. [故障排除](#troubleshooting) ## 前置条件 在开始之前,请确保您已安装并配置了以下内容: - Python 3.12+ - Node.js(CDK CLI 所需) - AWS CDK CLI:`npm install -g aws-cdk` - 具有足够权限以部署堆栈的 AWS 凭证 ## 设置 ### 1. 配置您的 AWS 环境 ``` # 配置你的 AWS CLI 凭证 aws configure # 或设置 named profile export AWS_PROFILE= ``` ### 2. 创建并激活虚拟环境 ``` python3 -m venv .venv source .venv/bin/activate ``` ### 3. 安装 Python 依赖 ``` pip install -r requirements.txt ``` ## 项目结构 ``` . ├── workshop_constructs/ # Reusable CDK constructs │ ├── authentication_construct.py # Cognito user pool and OAuth clients │ ├── logging_infrastructure_construct.py # CloudTrail, VPC Flow Logs, Glue, Athena │ ├── attack_prerequisites_construct.py # Attacker IAM user, EC2 role, S3 buckets │ ├── attack_post_cleanup_construct.py # Deletes attacker user after simulation │ ├── business_metadata_mcp_construct.py # DynamoDB + Lambda + AgentCore Gateway │ ├── sagemaker_construct.py # SageMaker Studio domain and notebooks │ └── agentcore_resources_construct.py # IAM roles for AgentCore Runtime and Gateways ├── core_infrastructure_stack.py # Core stack definition ├── attack_simulation_stack.py # Attack simulation stack definition ├── lambdas/ # Lambda function handlers ├── app.py # Stack orchestration entry point ├── cdk.json # CDK configuration and context └── README.md # This file ``` ## 架构 本研讨会按顺序使用两个 CloudFormation 堆栈进行部署: ### 1. 核心基础设施堆栈 (`AgenticSOCWorkshopCore`) 配置研讨会开始前所需的所有基础资源: - **身份验证** — 带有 M2M 和 3-legged OAuth 客户端的 Cognito 用户池,用于 Agent 网关 - **日志基础设施** — CloudTrail(包含 S3 数据事件)、VPC Flow Logs、Glue 数据目录,以及用于日志查询的 Athena - **攻击前置条件** — 攻击者 IAM 用户 (`attacker-adam`)、EC2 实例配置文件,以及敏感数据 S3 存储桶 - **业务元数据网关** — 加载了账户元数据的 DynamoDB 表,通过 Bedrock AgentCore MCP Gateway 暴露 - **SageMaker Studio** — 预加载了研讨会笔记本的 JupyterLab 环境 - **AgentCore 资源** — 用于 AgentCore Runtimes 和 Gateways 的 IAM 执行角色 - **QuickSight** — 仪表板的订阅设置 - **GuardDuty** — 威胁检测器(默认启用,请参阅 [GuardDuty 说明](#guardduty-deployment)) ### 2. 攻击模拟堆栈 (`AgenticSOCWorkshopAttackSim`) 运行自动化攻击场景并在完成后进行清理: - **攻击模拟 Lambda** — 使用 `attacker-adam` 凭证执行真实的攻击序列,生成供参与者调查的 GuardDuty 发现和 CloudTrail 事件 - **攻击后清理** — 在模拟完成后删除 `attacker-adam` IAM 用户,以便参与者练习调查已注销的威胁行为者 攻击堆栈依赖于核心堆栈,必须作为第二个进行部署。 ## 部署基础设施 请按顺序部署堆栈。攻击堆栈依赖于核心堆栈创建的资源。 ### 步骤 1 — 部署核心基础设施 ``` cdk deploy AgenticSOCWorkshopCore --context @aws-cdk/core:stackName=workshop-core-infra-template ``` 此过程大约需要 10–15 分钟。完成后,堆栈输出将显示研讨会模块所需的 URL 和凭证。 #### GuardDuty 部署 GuardDuty 检测器部署默认启用(在 `cdk.json` 中设置)。如果您的账户已经启用了 GuardDuty,请跳过检测器以避免冲突: ``` cdk deploy AgenticSOCWorkshopCore \ --context @aws-cdk/core:stackName=workshop-core-infra-template \ --context guardduty=false ``` ### 步骤 2 — 部署攻击模拟 核心堆栈完全部署完成后,运行攻击模拟: ``` cdk deploy AgenticSOCWorkshopAttackSim --context @aws-cdk/core:stackName=workshop-attack-sim-template ``` 这个由 Lambda 支持的自定义资源将在部署期间自动执行攻击序列。`attacker-adam` IAM 用户将在模拟结束时被删除 —— 这是故意的,也是研讨会场景的一部分。 ## 构建您的 SOC Agent 随着基础设施的部署和攻击模拟的完成,您已经准备好构建 AI 驱动的 SOC Agent 了。 ### 您将构建什么 本研讨会将指导您构建一个多工具 SOC Agent,它能够: - 查询**业务元数据网关**以查找账户所有权和分类 - 针对 CloudTrail 和 VPC Flow Logs 运行 **Athena 查询**以调查可疑活动 - 通过 3-legged OAuth 网关采取**自动化遏制措施**(例如,隔离受损的 EC2 实例) - 关联跨数据源的发现以生成事件摘要 ### 开始使用 1. **完整的研讨会指南** — 关于完整的端到端说明(包括如何连接 Agent 聊天界面),请参阅此处的研讨会内容: 👉 [认识 Alex — Agentic SOC 研讨会](https://catalog.us-east-1.prod.workshops.aws/workshops/ee74880e-0eec-4b8b-9900-975dc0ee6d45/en-US/20-meet-alex) 2. **遵循研讨会模块** — 笔记本将使用堆栈输出(网关 URL、OAuth 凭证、IAM 角色 ARN)作为配置值,逐步引导您完成每项 Agent 功能。 ## 故障排除 ### 堆栈卡在 ROLLBACK_COMPLETE 状态 如果部署失败并且堆栈处于 `ROLLBACK_COMPLETE` 状态,请在重试之前将其删除: ``` aws cloudformation delete-stack --stack-name AgenticSOCWorkshopCore aws cloudformation wait stack-delete-complete --stack-name AgenticSOCWorkshopCore ``` 如果存在带有硬编码名称(例如,`workshop-sensitive-data-store-`)的 S3 存储桶仍保留自上次失败的部署中,请先将其删除: ``` aws s3 rb s3://workshop-sensitive-data-store-$(aws sts get-caller-identity --query Account --output text) --force ``` ### 其他有用的命令 ``` # 部署前预览更改 cdk diff AgenticSOCWorkshopCore cdk diff AgenticSOCWorkshopAttackSim # Synthesize CloudFormation templates 而不部署 cdk synth AgenticSOCWorkshopCore cdk synth AgenticSOCWorkshopAttackSim # 列出所有 stacks cdk list # Tear down (先 attack stack,然后 core) cdk destroy AgenticSOCWorkshopAttackSim cdk destroy AgenticSOCWorkshopCore ```
标签:ATT&CK模拟, AWS CDK, CloudTrail, Cognito, C语言, IAM角色, Python, SageMaker, SOC自动化, VPC Flow Logs, 云基础设施部署, 云靶场, 亚马逊云科技, 大语言模型安全, 无后门, 智能安全运营中心, 机密管理, 红队模拟, 网络安全攻防演练, 逆向工具