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 提供了一个无需任何人工干预、完全自动化、透明且高度准确的云防御解决方案。
## 系统架构
```
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 流水线中。**
图 1:STRATA 系统架构
标签:AWS, DPI, Web前端, 大模型, 测试用例, 自动化响应, 自动化攻击