ritvikindupuri/STRATA

GitHub: ritvikindupuri/STRATA

STRATA 是一款基于多 AI agent 架构的 AWS 云自主入侵检测系统,能够端到端自动化处理威胁检测、分诊、遏制与报告,显著减少告警疲劳和人工干预。

Stars: 0 | Forks: 0

# STRATA **专为您的 AWS 云打造的自主入侵检测系统。** STRATA 旨在消除现代云安全运营中固有的告警疲劳和人工繁琐操作。只需连接一个只读的 AWS IAM 密钥,STRATA 就会部署一组由六个专门的自主 agent 组成的集群,端到端地处理整个事件响应生命周期。 STRATA 无需强迫人类分析师从无尽的日志中进行筛选,而是持续轮询 AWS CloudTrail 和 GuardDuty(涵盖身份、API、网络、数据和控制平面),对遥测数据进行标准化,并立即将其输入到先进的 LLM 中进行分诊。海量事件由 Google 的 Gemini 2.5 Flash 进行快速分类和严重性评分,而深度推理任务——例如起草针对特定账户的检测规则和编写面向 CISO 的事件报告——则由 OpenAI 的 GPT-5 处理。 此外,STRATA 不仅是向您发出危险警报;它还能主动阻止危险。当启用自动响应时,一旦确认了严重威胁,确定性的遏制 agent 会立即撤销受损的 IAM 凭证,从而将受到破坏的时间窗口从数小时缩短至数秒。从规则生成到遏制以及最终报告,STRATA 提供了一个无需任何人工干预、完全自动化、透明且高度准确的云防御解决方案。 ## 系统架构

图 1:STRATA 系统架构

``` graph TD subgraph "External Cloud Services" AWS_CT["AWS CloudTrail"] AWS_GD["AWS GuardDuty"] ES_Cluster["Elasticsearch / OpenSearch (Optional)"] end subgraph "STRATA Frontend (TanStack Start + React)" Dashboard["Dashboard View"] Timeline["Timeline View"] Findings["Findings Explorer"] Connect["AWS / ES Connection Wizard"] Reports["Reports & Rules"] end subgraph "STRATA Backend / Server Functions" Orchestrator["Orchestrator (Server Loop)"] Telemetry["Telemetry Agent (AWS SigV4)"] RuleArch["Rule Architect (GPT-5)"] TriageAgent["Triage Agent (Gemini 2.5 Flash)"] Containment["Containment Agent (AWS IAM)"] Reporter["Reporter Agent (GPT-5)"] ES_Sync["Elasticsearch Sync Agent"] end subgraph "Persistence (Supabase)" DB_Connections[("AWS Connections")] DB_Findings[("Findings")] DB_Rules[("Detection Rules")] DB_Actions[("Agent Actions")] DB_Reports[("Incident Reports")] DB_Sessions[("Agent Sessions")] end %% Flow lines Connect -->|Validates Keys via STS| DB_Connections Orchestrator -->|Triggers| Telemetry Orchestrator -->|Triggers| RuleArch Orchestrator -->|Triggers| Containment Orchestrator -->|Triggers| Reporter AWS_CT -->|Polled via LookupEvents| Telemetry AWS_GD -->|Polled via GetFindings| Telemetry ES_Cluster -->|Polled via Search| ES_Sync Telemetry -->|Stores Raw Events| DB_Findings ES_Sync -->|Stores Raw Events| DB_Findings RuleArch <-->|Generates based on shape| DB_Rules DB_Findings -->|Unanalyzed Events| TriageAgent TriageAgent -->|Updates Severity/Category| DB_Findings DB_Findings -->|High/Critical Events| Containment Containment -->|Deactivates Key via UpdateAccessKey| AWS_CT Containment -->|Logs Action| DB_Actions DB_Findings -->|Correlated Criticals| Reporter Reporter -->|Writes Report| DB_Reports Dashboard -->|Reads Stats| DB_Findings Dashboard -->|Reads Runs| DB_Sessions Timeline -->|Reads| DB_Findings Timeline -->|Reads| DB_Actions Timeline -->|Reads| DB_Reports Findings -->|Reads| DB_Findings Reports -->|Reads| DB_Reports Reports -->|Reads| DB_Rules ``` ### 流程详解 1. **连接与凭证验证:** 用户在 STRATA 前端输入只读的 AWS IAM 凭证(以及可选的 Elasticsearch 凭证)。后端通过 `sts:GetCallerIdentity` (AWS SigV4) 进行验证,并将其加密/安全地存储在 Supabase 中。 2. **编排:** Orchestrator Agent 在服务器端按计划的时间间隔(例如每 5 分钟)运行,触发顺序执行的 agent 流水线。 3. **规则架构:** 该 agent 由 GPT-5 提供支持,为所连接的 AWS 账户生成量身定制的基准检测规则集。 4. **遥测同步:** Telemetry Agent 通过确定性的 AWS API 查询 CloudTrail 和 GuardDuty 以检索近期事件。如果连接了 Elasticsearch,Elasticsearch Sync Agent 会同时拉取日志。所有原始事件都会存储在 findings 表中。 5. **分诊:** Triage Agent (Gemini 2.5 Flash) 处理未分析的发现结果,对严重性进行评分,对类别进行分类,编写人类可读的摘要,并建议修复措施。 6. **遏制:** 如果启用了自动响应,Containment Agent 会扫描关键的、基于 IAM 的威胁,并通过 `iam:UpdateAccessKey` 请求立即禁用受损的 Access Keys。 7. **报告:** Reporter Agent (GPT-5) 将过去 24 小时内相关的高/严重级别的发现结果进行聚类,以自动起草一份高管级别的事件报告。 8. **前端可视化:** 用户界面从 Supabase 获取丰富后的发现结果、报告和 agent 操作,并在仪表板、时间轴和 Findings 模块中展示。 ## 技术文档 有关每个功能、agent 角色和内部能力的全面说明,请参阅[技术文档](./TECHNICAL_DOCUMENTATION.md)。 ## 技术栈 * **前端:** React 19, Vite, Tailwind CSS 4, Radix UI, Lucide React。 * **框架:** TanStack Start (Server Functions) 和 TanStack Router。 * **后端与持久化:** Supabase (PostgreSQL, Row Level Security, 通过 Server 集成的 Edge Functions)。 * **AI 与 LLMs:** Lovable AI Gateway,集成了 Google Gemini 2.5 Flash(海量事件分诊)和 OpenAI GPT-5(深度推理)。 * **云端集成:** 原生的 AWS Signature V4 签名,纯粹的基于 fetch 的 API 集成 (CloudTrail, GuardDuty, STS, IAM),Elasticsearch / OpenSearch 查询集成。 * **安全性:** 对存储的 AWS 密钥使用 AES-256-GCM 加密。 ## 设置与安装指南 要在本地设置并运行 STRATA 应用程序: 1. 克隆仓库并安装依赖: npm install 2. 确保您已设置了 Supabase 环境变量(例如 `VITE_SUPABASE_URL`、`VITE_SUPABASE_ANON_KEY`,如果运行本地脚本,可能还需要 `SUPABASE_SERVICE_ROLE_KEY`),并且您的 Lovable API 密钥 (`LOVABLE_API_KEY`) 可在 `.env` 文件中找到。 3. 启动开发服务器: npm run dev **连接 AWS:** 一旦应用程序运行并且您已登录,**要查看有关如何将应用程序连接到 AWS 账户的说明,请单击 STRATA 应用程序中的“Connect AWS”选项卡。** 向导将引导您为 STRATA 创建一个安全的、只读的 IAM 用户。 一旦您的账户成功连接,您将在此同一页面上看到已连接的状态横幅。在这里,您可以选择点击 **Enable auto-response** 按钮。默认情况下,STRATA 在严格的只读权限下运行。启用自动响应意味着您同意进行主动遏制,允许 Containment Agent 发出 `iam:UpdateAccessKey` 请求,以便在检测到严重威胁的瞬间立即撤销受损的 IAM 凭证。 **连接 Elasticsearch / OpenSearch:** 在同一个“Connect AWS”选项卡中,您可以连接一个 Elasticsearch 集群。**请注意,Elasticsearch 的发现结果是对 AWS 发现结果的补充,并且用户必须点击 Sync(或启用自动同步)才能将日志拉取到 STRATA 流水线中。**
标签:AWS, DPI, Web前端, 大模型, 测试用例, 自动化响应, 自动化攻击