adhithyaragavan/sentinel-hackathon
GitHub: adhithyaragavan/sentinel-hackathon
Sentinel 是一个由五个 AI agent 组成的自主 SOC 事件响应集群,能够在隔离沙箱中引爆可疑文件并自动完成告警分诊、取证、风险评分与修复决策。
Stars: 0 | Forks: 0
# Sentinel — 自主 SOC 事件响应集群
一个由 5 个 agent 组成的集群,可自主对 SOC 告警进行分类,在隔离的 sandbox 中引爆可疑文件,评估遏制风险,并自动修复或通过 Slack 上报给人工。
为 **NVIDIA / gnani.ai / OpenACC Agentic AI Open Hackathon — Track A
(Agentic Workflows)** 打造。
## 架构
一个线性 pipeline,每个 agent 将结构化的 JSON 数据包传递给下一个:
```
EDR alert JSON
│
▼
┌─────────────────┐ classify severity, dedupe
│ 1. Triage │──────────────────────────────► NVIDIA NIM (Nemotron)
└─────────────────┘
│
▼
┌─────────────────┐ IOCs, process tree, threat-intel enrichment
│ 2. Forensic │──────────────────────────────► NVIDIA NIM (Nemotron)
└─────────────────┘
│
▼
┌─────────────────┐ detonate file, capture blocked C2 beacon
│ 3. Tool-Executor│──────────────────────────────► Docker sandbox
└─────────────────┘ (default-deny network)
│
▼
┌─────────────────┐ action + risk_score + rationale
│ 4. Planner │──────────────────────────────► NVIDIA NIM (Nemotron)
└─────────────────┘
│
▼
┌─────────────────┐ risk < threshold → auto-remediate
│ 5. Supervisor │ risk ≥ threshold → escalate ─► Slack webhook
└─────────────────┘
```
| # | Agent | 职责 | 实际集成 |
|---|-------|----------------|------------------|
| 1 | Triage | 分类严重程度,告警去重 | NIM inference |
| 2 | Forensic Examiner | 构建证据包,丰富 IOC | NIM inference + threat-intel |
| 3 | Tool-Executor | 在隔离的 sandbox 中引爆文件 | **Docker**(真实工具调用) |
| 4 | Remediation Planner | 决定行动 + 风险评分 | NIM inference |
| 5 | Supervisor | 自动修复或上报 | **Slack webhook** |
## 演示场景
钓鱼邮件 → 打开恶意附件 → 恶意软件释放并 beacon 到 C2 IP
→ 触发 EDR 告警 → 集群端到端运行 → 在几秒钟内做出主机隔离决策,
并附带完整的证据链。最精彩的是第 3 步:恶意软件的
出站 C2 连接在 Docker sandbox 内部被**实时拦截**。
## 技术栈
- **NVIDIA NIM** — 在 `https://integrate.api.nvidia.com/v1` 进行云端推理。
默认模型为 `nvidia/nemotron-3-nano-30b-a3b`。
- **Docker** — 用于引爆步骤的 sandbox 隔离(`--network none` 拦截
所有出站连接,`--read-only`,`--cap-drop ALL`)。
- **Python 3** — agent 逻辑与编排。仅进行推理,无训练。
## 设置
### 1. 前置条件
- Python 3.10+
- Docker Desktop 运行中(`docker info` 应成功执行)
### 2. 安装 Python 依赖
```
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
```
### 3. 配置密钥
```
cp .env.example .env
# 编辑 .env 并填入:
# NVIDIA_NIM_API_KEY — 来自 build.nvidia.com
# SLACK_WEBHOOK_URL — 你的 Slack 入站 webhook
# RISK_SCORE_THRESHOLD — 默认 0.7
```
### 4. NIM 连通性冒烟测试
```
./scripts/smoke_test.sh
```
## 运行演示
```
./scripts/run_demo.sh
```
这会针对 `mock_data/edr_alert.json` 中的模拟 EDR 告警运行完整的 5-agent pipeline,并将完整的 JSON trace 写入
`pipeline_output.json`。
## 评估
一个小型评估循环会根据已知的 ground truth 衡量每个 agent 的延迟和决策正确性:
```
.venv/bin/python eval/evaluate.py
```
结果将写入 `eval/results.json`。有关指标
和 ground truth fixtures,请参阅 [`eval/`](eval/)。
## 项目结构
```
agents/ one file per agent (triage, forensic, executor, planner, supervisor)
mock_data/ synthetic EDR alert + stubbed threat-intel
sandbox_policy/ Docker sandbox policy (default-deny network)
eval/ evaluation harness + ground truth
docs/ architecture + demo script
scripts/ run_demo.sh, smoke_test.sh
nemoclaw.py NIM Privacy Router wrapper
pipeline.py end-to-end orchestration
```
## 已知限制
- Docker sandbox 是单 container 的 — 无法处理并发的多事件。
- 演示数据是合成的,而非实时的 SIEM feed。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
标签:DLL 劫持, IP 地址批量处理, 大语言模型, 威胁情报, 安全运营, 开发者工具, 扫描框架, 沙箱分析, 网络信息收集, 自动化响应, 请求拦截