maratsal/blackhat-mea-2025-arsenal-lab

GitHub: maratsal/blackhat-mea-2025-arsenal-lab

这是一个基于 MCP 协议将 Falco 运行时检测与 AI 助手结合的端到端云原生安全事件响应实验平台,专注于 Kubernetes 和 AWS 工作负载的威胁检测与智能化调查。

Stars: 0 | Forks: 0

# BlackHat MEA 2025 Arsenal Lab – MCP 驱动的 AI 威胁检测平台 本仓库包含支持我们 BlackHat MEA Arsenal Lab 演示的 Terraform、Helm values 和 Kubernetes manifests。该实验室展示了一个针对 Kubernetes 和 AWS 工作负载的端到端检测与调查技术栈:Falco 持续检查运行时信号,Model Context Protocol (MCP) 服务器将这些信号暴露给生成式 AI 助手进行调查,而 Kong OSS 则作为 AI 工具、日志记录和统计数据的流量骨干。 ## 为什么创建此仓库 - **BlackHat MEA 2025 Arsenal Lab** – 提供一个有主见且可复现的环境,供访客亲身体验。 - **混合遥测** – Falco 监控 Linux syscalls、Kubernetes 审计事件和 AWS CloudTrail(通过 Falco CT 插件),以便集群和云活动都汇入同一管道。 - **AI 加速响应** – MCP 服务器为 AI 助手提供精选 API,以便人类分析师能通过 Kong 托管的端点更快地进行切换调查。 - **默认开源** – 从基础设施(Terraform)到 AI 网关(Kong OSS),一切都保持透明。 ## 高层架构 ``` ┌────────────────────────────┐ │ AWS Cloud │ │ │ │ ┌──────────────────────┐ │ │ │ CloudTrail Service │◀─┼─ Falco CloudTrail plugin pulls events │ └──────────────────────┘ │ │ │ │ ┌──────────────────────┐ │ │ │ CloudWatch Logs │◀─┼─ Falco k8s-audit plugin streams audit logs │ └──────────────────────┘ │ │ │ │ ┌──────────────────────┐ │ │ │ EKS Cluster │ │ │ │ • Falco DaemonSet │◀─┼─ Syscalls + plugin feeds │ │ • Falco MCP │◀─┼─ Consumes Falco Sidekick UI API │ │ • Kubernetes MCP │◀─┼─ Calls Kubernetes API │ │ • Kong Internal GW │──┼─ /mcp/* (http-log → log receiver) │ │ • Kong External GW │──┼─ Any public ingress (optional) │ │ • Open WebUI │──┼─ Runs prompts inside cluster │ │ • cert-manager │──┼─ Let’s Encrypt TLS issuance │ └──────────────────────┘ │ └────────────────────────────┘ │ │ Kong-managed MCP traffic (mirrored) ▼ ┌────────────────────────┐ │ HTTP Log Receiver │ (in-cluster) └────────────────────────┘ ┌────────────────────────┐ │ OpenAI GPT-5.1 API │ ◀── Open WebUI calls for reasoning └────────────────────────┘ ``` - EKS 集群中的 Falco 代理将安全发现流式传输到专用的 MCP 服务(Falco MCP, Kubernetes MCP)。 - Falco 在转发之前收集 Linux syscalls、Kubernetes 审计日志和 AWS CloudTrail 事件(通过 Falco 的 CloudTrail 插件)。 - Falco MCP 和 Kubernetes MCP 服务器部署在同一个 EKS 集群内,以便低延迟访问运行时数据。 - Kong OSS 通过自定义插件(http-log, correlation-id)以及结构化日志记录暴露 MCP 端点,而 Open WebUI 单独托管,仅通过那些 Kong 管理的路由访问集群。 - AWS 级别的检测(例如 GuardDuty)可通过相同的 AI 辅助流程访问,为分析师提供统一的控制台。 ## 仓库结构 | 路径 / 文件 | 描述 | |-------------|-------------| | `main.tf`, `apps.tf`, `falco.tf`, `variables.tf` | 用于 AWS 网络、EKS、IAM、Falco 扩展、Helm/Kubernetes 资源和 DNS 的 Terraform 基础设施。 | | `helm-values/` | 用于 Kong(内部/外部网关)、cert-manager、Falco、Loki、Open WebUI 等的定制化覆盖配置。 | | `k8s-manifests/` | 通过 Terraform 的 `templatefile` 渲染的额外 YAML 模板(例如 `clusterissuer.tpl.yaml`)。 | | `open-webui-config-files/` | 受版本控制的 Open WebUI 配置(系统提示词、提示建议、客户端设置),同步到部署中。 | ## 关键能力 - **运行时检测** – Falco 配备针对 Kubernetes API 滥用、容器逃逸和 AWS 错误配置的自定义规则。 - **AI 驱动的分类** – MCP 服务器向 AI 客户端(目前是 Open WebUI)暴露精选 API,以便分析师提出自由形式的问题(“显示过去一小时内 namespace X 中的 Falco 命中”)。 - **网关可观测性** – Kong OSS 终止所有 AI 流量,注入 correlation ID,并将 http-log payload 转发到集群内接收器以进行取证回放。 - **多云感知** – Terraform 模块涵盖 AWS VPC、NAT、EKS Managed Node Groups、EFS 和 Namecheap DNS,以便您在几分钟内复制该实验室。 ## 部署工作流 该实验室仍然建议采用两阶段 Terraform apply,以避免在 EKS 启动时与 Kubernetes provider 发生竞争: 1. **引导 EKS 和依赖项** terraform init terraform apply -target=module.eks 可选:`aws eks update-kubeconfig ...` 以验证 `kubectl get nodes`。 2. **部署技术栈** terraform apply 此步骤安装 Helm releases(cert-manager、Kong internal/external、Falco、Open WebUI)以及 Kubernetes manifests(storage class、ClusterIssuer、Kong plugins、MCP services 等)。 3. **输出** terraform output terraform output -raw 使用这些命令获取端点(例如 Open WebUI)和初始密钥(如果稍后启用 Argo CD,则为 `argocd_admin_password`)。 ## Falco + MCP 调查流程 1. Falco 代理持续监控 Linux syscalls,从 CloudWatch Logs 摄取 Kubernetes 审计事件(通过 `k8saudit-eks` 插件),并拉取 AWS CloudTrail 异常(通过 Falco CloudTrail 插件)。 2. Falco MCP 通过查询 Falco Sidekick API 接收标准化的 Falco 事件;Kubernetes MCP 通过 Kubernetes API 直接发现资源。 3. 两个 MCP 服务都与 Falco、Open WebUI、Kong 网关和 cert-manager 一起运行在同一个 EKS 集群内。 4. Open WebUI 通过 Kong 内部 ingress(`/mcp/*`)与 MCP 服务通信。Kong 强制执行: - `correlation-id` 用于可追溯性 - `http-log` 将 MCP 流量转发到集群内 HTTP 日志接收器 5. HTTP 日志接收器归档每个请求/响应,而响应通过 Kong 流回 Open WebUI,在那里 AI 助手(由 OpenAI GPT-5.1 支持)总结发现、突出受影响范围并建议后续操作。 结果:安全工程师可以在不离开 AI 控制台的情况下,在 Falco、集群状态和 AWS 上下文之间进行切换。 ## SOC 分析师工作流 1. **从 Open WebUI 提示** – SOC 专家从运行在集群中的 Open WebUI 实例发出自然语言请求(“调查 namespace `payments` 的最新 Falco 命中”)。 2. **MCP 访问** – 请求通过 Kong 的内部 ingress 传输,该 ingress 注入 correlation ID 并将 HTTP 日志镜像到接收器。 3. **上下文组装** – Falco MCP 查询 Falco(包括 CloudTrail + CloudWatch 派生的事件),而 Kubernetes MCP 拉取实时集群状态;两者都通过 Kong 响应。 4. **AI 指导** – Open WebUI 将合并的证据转发给 OpenAI GPT-5.1,接收结构化摘要(时间线、受影响资源、修复提示),并将其呈现给分析师。 此工作流将所有遥测数据保留在集群内,同时提供完全可追溯的 AI 辅助调查。 ### Open WebUI 系统提示词 ``` You are a cybersecurity AI assistant specialized in analyzing security events. Before starting any investigation, please check all available tools first and use those for your investigation. Your task is to: 1. Analyze Falco security events by using falco_* tools from the provided time frame. 2. After gathering initial information from Falco events, analyze potentially affected Kubernetes resources by reviewing them with kubernetes_* tools. 3. Determine if all findings above represent a real security threat. 4. Identify any patterns or correlations between events. 5. Provide a concise summary of the threat (if real). If it doesn't look dangerous, provide an honest opinion. 6. Recommend specific actions to contain and mitigate the threat. Focus on actionable insights and be precise in your recommendations. ``` ## Kong OSS 作为 AI 骨干 - **Ingress Classes**:`kong-internal`(ClusterIP)用于东西向流量,`kong-external`(LoadBalancer)用于面向用户的门户,如 Open WebUI。 - **启用的插件**:`http-log`、`correlation-id`,以及用于 OpenAI 样式路由的自定义插件(用于 API 密钥的 request-transformer 等)。 - **日志记录与统计**:内部网关将日志发送到集群内接收器(`http-log-receiver`),以便我们可以在演示或调查期间回放 AI 对话。 ## 快速入门 ``` # 配置 AWS credentials + 必需的 TF_VAR_* secrets aws sts get-caller-identity export TF_VAR_letsencrypt_email="you@example.com" # 初始化 + 部署 terraform init terraform apply # 检查 Kong + Falco kubectl get pods -n kong-internal kubectl get pods -n falco ``` 如果您需要根据环境调整 Kong、Falco 或 cert-manager 的行为,请使用 `helm-values/` 作为起点。 ## DNS & Namecheap 支持 此实验室假设 DNS 通过 Namecheap 管理: - `apps.tf` 中的 `namecheap_domain_records` 创建指向外部 Kong 负载均衡器的通配符 CNAME(例如 `*.blackhat`)。 - Provider 凭证(`namecheap_user_name`、`namecheap_api_key`、`namecheap_client_ip`)通过 Terraform 变量传递,便于替换为您自己的 Namecheap 账户。 - 如果您在其他地方托管 DNS,请移除 Namecheap provider 并将 CNAME 配置替换为您首选的 DNS 自动化,但保持通配符指向 Kong 外部代理,以便 TLS(通过 cert-manager/Let’s Encrypt)仍然有效。 确保您的 Namecheap 账户允许从您指定的 IP 进行 API 访问,并注意记录可能需要几分钟才能传播。 ## 贡献 / 扩展 - 在 `apps.tf` 下添加新的 MCP 服务(例如 GuardDuty, Config)及匹配的 Kong 路由。 - 将额外的 Helm values 放入 `helm-values/`,并通过 Terraform `helm_release` 资源连接它们。 - 对于新的演示(BlackHat、DEF CON、内部研讨会),fork 并调整 DNS、TLS 或 Open WebUI 提示词。 如果您改进了检测内容、AI 工作流或文档,请提交 issues 或 PRs。 **联系方式**:将问题或演示请求带到 BlackHat MEA Arsenal Lab 展位,或在本仓库提交 issue。
标签:AI副驾驶, AI增强事件响应, AI威胁检测平台, Arsenal Lab, AWS, BlackHat MEA, CloudTrail, DPI, ECS, Falco, Helm, K8s审计日志, Kong网关, Kubernetes清单, MCP智能体, Petitpotam, Terraform, 云工作负载保护, 威胁调查, 子域名突变, 安全运营加速, 敏感词过滤, 数据处理, 模型上下文协议, 混合遥测, 生成式AI, 索引, 请求拦截, 逆向工具