NEHANGRM/WeCode_ET-AI
GitHub: NEHANGRM/WeCode_ET-AI
Sentinel 是一个基于五 Agent 流水线的自主 SOC 事件响应系统,通过自动化告警分诊和哈希链审计账本缩短安全事件的平均响应时间。
Stars: 0 | Forks: 0
# 🛡️ Sentinel — 自主 SOC 事件响应系统
🚀 **在线演示:** [https://wecode-et-ai.onrender.com](https://wecode-et-ai.onrender.com)
**专为以下活动构建:** ET AI Hackathon 2026
**问题描述:** PS7 — 关键国家基础设施的网络弹性
**领域:** 安全运营中心 (SOC) 事件响应
## 🎯 问题所在
企业 SOC 团队和关键基础设施网络面临的不是检测问题,而是**告警量问题**。手动分诊单个安全告警(收集 IP 信誉、交叉比对威胁情报、决定补救措施)通常需要分析师花费 15-30 分钟。在企业规模下,这种积压会直接增加平均响应时间 (MTTR) ——而 MTTR 是预测违规成本和影响范围的最强指标之一。
企业实际采用的每个自动化补救系统都必须达到一个信任标准:**“系统为什么这样做,我能证明它不是黑盒吗?”** 合规和安全领导层不会将真正的自主权授予无法回答这个问题的系统。Sentinel 就是围绕这一信任标准构建的,将其作为核心产品,而不是事后补充。
## 💡 解决方案
Sentinel 是一个**五 Agent pipeline**,它接收原始安全告警,对其进行调查,决定采取何种行动,并将每一个决定记录到**防篡改、哈希链审计账本**中——这是一个可以在几秒钟内,在持怀疑态度的审查者面前进行实时验证的账本。
**一句话推介:** *一个从不休息、从不疲倦,并且在每个决策上都能展示其工作过程的 SOC 分析师。*
## 🧠 工作原理

```
┌──────────────┐ ┌───────────────┐ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Detection │──▶│ Enrichment │──▶│ Triage │──▶│ Decision │──▶│ Audit │
│ (rule-based) │ │ (LLM + APIs) │ │ (LLM) │ │ (LLM, fixed │ │ (ledger │
│ │ │ │ │ │ │ action set) │ │ write) │
└──────────────┘ └───────────────┘ └──────┬──────┘ └──────────────┘ └─────────────┘
▲ │
│ retry if │
└─ confidence <0.7 ─┘
(once, then escalates
to human if still low)
```
1. **Watcher (Detection) Agent** — 确定性的、基于规则的(请求速率激增、已知恶意 IP 命中)。无 LLM 调用——快速且一致。
2. **Investigator (Enrichment) Agent** — 并行查询 AbuseIPDB、VirusTotal 和 GreyNoise,然后使用 LLM 将调查结果总结为结构化的威胁上下文。
3. **Judge (Triage) Agent** — 使用置信度分数对事件进行分类。如果置信度模棱两可 (40-60%),它会使用更窄的上下文重新查询 Investigator 并重试**一次**。如果仍然没有把握,它会**升级给人工**处理,而不是盲目猜测。它还会记录其推理过程。
4. **Responder (Decision) Agent** — 从**固定的、受限的操作集**(封锁 IP、隔离网段、创建工单、告警值班人员、触发故障转移)中选择补救操作。绝不是自由形式的——这是一项刻意的合规护栏。
5. **Record (Audit) Agent** — 将完整的案例轨迹附加到哈希链 MongoDB 账本中,并将案例标记为已解决。
## ✨ 与众不同之处
- **“Verify Chain”实时验证** — UI 会清晰地重新计算审计日志的 SHA-256 哈希链,以证明没有记录被篡改。如果数据库条目被篡改,它会准确识别出链条断裂的位置。这将“防篡改审计跟踪”从 PPT 上的口号变成了您可以实时验证的东西。
- **有界的自我纠正,而非静默猜测** — 先重试后升级的规则意味着系统绝不会伪装出它所没有的信心。如果不确定,它会将其传递给审核队列以供人工批准。
- **实时 Pipeline 可视化** — 当攻击发生时,通过 WebSockets 实时观看 5 个 Agent 相互交接工作。
## 🏗️ 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | Next.js (App Router), Tailwind CSS v4, Framer Motion, Socket.IO Client |
| 后端 | Next.js API Routes, 自定义 Node Server (用于 Socket.IO) |
| 数据库 | MongoDB (Mongoose) |
| 编排 | 手写的有限状态机 (`lib/agents/pipeline.ts`) |
| AI | Google Gemini API (schema 约束的 JSON 输出) |
| 威胁情报 | AbuseIPDB, VirusTotal, GreyNoise API |
## 📁 项目结构
```
sentinel/
├── app/ # Next.js Frontend & API Routes
│ ├── api/ # API endpoints (events, investigate, judge, respond, audit)
│ ├── dashboard/ # Live operations control room
│ └── audit-log/ # Hash chain verification page
├── components/ # React UI components (GlassPanel, Navbar, Sidebar)
├── lib/ # Backend logic
│ ├── agents/ # Watcher, Investigator, Judge, Responder, Record
│ ├── db/ # MongoDB models (Event, Investigation, Judgment, Action, AuditRecord)
│ ├── integrations/ # AbuseIPDB, VirusTotal, GreyNoise API wrappers
│ └── hashChain.ts # SHA-256 cryptography ledger logic
├── scripts/ # Database seeding and tampering scripts
└── server.ts # Custom server for Next.js + Socket.IO
```
## ⚙️ 设置
### 前置条件
- Node.js 18+
- MongoDB (本地或 Atlas)
- API 密钥:AbuseIPDB, VirusTotal, GreyNoise(免费层级)和 Gemini
### 安装
```
git clone https://github.com/NEHANGRM/WeCode_ET-AI.git
cd "WeCode_ET-AI/sentinel"
# 安装依赖
npm install
# 设置环境变量
cp .env.local.example .env.local
# (添加你的 MONGODB_URI 和 LLM_API_KEY)
# 使用演示场景填充数据库
npx tsx scripts/seed.ts
# 运行开发服务器
npm run dev
```
### 环境变量 (`.env.local`)
```
MONGODB_URI=mongodb://localhost:27017/sentinel
ABUSEIPDB_KEY=
VIRUSTOTAL_KEY=
GREYNOISE_KEY=
LLM_API_KEY=your_gemini_key
```
## 🎬 演示流程
1. **冷启动** — 仪表板显示 pipeline 监控。
2. **触发模拟** — 点击模拟按钮。一个预设的 DDoS 案例将运行完整的 pipeline,Agent 图会通过 WebSockets 实时逐个点亮节点。
3. **重试演示** — 一个刻意模棱两可的预设案例触发了基于置信度的重试循环,并升级到审核队列。
4. **破坏链条** —
- 转到 Audit Log 并点击“Verify Chain Integrity”(显示绿色/成功)。
- 在终端中,运行 `npx tsx scripts/tamper.ts` 来模拟恶意的数据库编辑。
- 再次点击“Verify Chain Integrity”——观察它变红并识别出断裂的哈希链接!
## 🚧 真实与模拟对比
| 组件 | 状态 |
|---|---|
| 5-Agent 编排 | ✅ 功能齐全的异步 pipeline |
| 哈希链账本 + 验证 | ✅ 功能齐全(真实的 SHA-256) |
| AbuseIPDB / VirusTotal / GN | ✅ 真实的 API 调用(带有离线回退) |
| LLM 合成与评分 | ✅ 功能齐全 (Gemini 2.5 Flash) |
| 基于置信度的重试 | ✅ 功能齐全 |
| 补救操作 | ⚠️ 已记录并模拟——没有真实的网络/防火墙集成 |
| 网络流量 | ⚠️ 通过 API 注入的模拟 payload |
## 📊 影响
- 将中位数告警的手动分诊时间从 15-30 分钟缩短至几秒钟。
- 密码学上可验证的审计跟踪支持 NERC CIP、SOC 2 和 ISO 27001 的证据要求。
- 受限的操作空间和有界的重试逻辑意味着系统在关键基础设施上绝不会静默超越其置信度。
## 👥 团队
- Naren
- [添加其他团队成员]
## 📜 许可证
Hackathon 项目 - 不打算未经修改即用于生产环境。
标签:MITM代理, 人工智能, 多智能体, 安全告警分类, 安全运营中心, 审计日志, 用户模式Hook绕过, 网络映射, 自动化响应, 自动化攻击