simarsinghlamba/Sentinel-AI
GitHub: simarsinghlamba/Sentinel-AI
基于 Llama 3.3 70B 和 ChromaDB 构建的 AI 威胁情报分类系统,能将原始威胁报告自动转化为包含 IOC、TTP 映射和资产风险评估的结构化报告。
Stars: 3 | Forks: 0
# 🛡️ SENTINEL — AI 威胁情报分类系统
基于 100% 免费技术栈构建:Google Colab · Groq (Llama 3.3 70B) · ChromaDB · Gradio · Mailtrap
## 🎬 功能简介
SOC 分析师将原始威胁报告粘贴到 Gradio UI 中。SENTINEL 运行 **6 步智能体流水线** 并生成:
| 步骤 | 执行内容 | AI 概念 |
|------|-------------|------------|
| 1 | 提取 IOC(IP、域名、CVE、哈希值) | Few-shot 提示 · 思维链 · 结构化输出 |
| 2 | 将技术映射到 MITRE ATT&CK | RAG (ChromaDB + 150 项真实技术) |
| 3 | 根据内部资产清单检查提取的 IP | Function Calling / Tool Use |
| 4 | 根据暴露的资产重新评估严重级别 | 智能体重新推理 (temp=0.0) |
| 5 | 组装结构化分类报告 | 状态管理 |
| 6 | 起草并向 CISO **发送** 升级邮件 | 真实操作 (Mailtrap SMTP) |
## 🏗️ 架构
```
[USER] Pastes threat report → Gradio UI (public URL)
↓
┌─────────────────────┐
│ SENTINEL AGENT │
│ Llama 3.3 70B │ ← Groq API (free, ~1-3s response)
│ temp=0.1 extract │
└─────────┬───────────┘
↓ autonomous tool calls
┌─────────┴─────────────────────────┐
│ FUNCTION LAYER │
│ check_asset_inventory() │
│ get_threat_actor_history() │
│ check_cve_patch_status() │
└─────────┬─────────────────────────┘
↓ semantic search
┌─────────┴───────────┐
│ ChromaDB │ ← 150 real MITRE ATT&CK techniques
│ (on Google Drive) │ ranked by real-world prevalence
└─────────┬───────────┘
↓ severity re-rank (temp=0.0)
┌─────────┴─────────────────────────┐
│ STRUCTURED TRIAGE REPORT │
│ IOCs · TTPs · Severity · Actions │
└─────────┬─────────────────────────┘
↓ email draft (temp=0.7)
┌─────────┴───────────┐
│ Mailtrap SMTP │ ← Safe sandbox inbox (no real spam)
│ → CISO Inbox │
└─────────────────────┘
```
## 🛠️ 技术栈
| 组件 | 工具 | 原因 |
|-----------|------|-----|
| 计算 | Google Colab (免费 T4 GPU) | 无需本地设置 |
| 持久化 | Google Drive | 在 Colab 会话重置后依然保留 |
| UI | Gradio + `share=True` | 自动生成公开 URL |
| LLM | Groq / Llama 3.3 70B | 免费、快速、支持 JSON 模式和 Function Calling |
| Embeddings | sentence-transformers (all-MiniLM-L6-v2) | 在 CPU 上免费运行 |
| 向量数据库 | ChromaDB (持久化到 Drive) | 免费、本地、无需服务器 |
| 邮件 | Mailtrap sandbox | 安全的实时邮件演示,免费额度 |
## 🚀 设置指南(分步说明)
### 前置条件
您需要以下免费账号:
- [console.groq.com](https://console.groq.com) — 获取您的 **Groq API 密钥**
- [mailtrap.io](https://mailtrap.io) — 获取您的 **SMTP 凭证**
- [Google 账号](https://drive.google.com) — 用于 Colab + Drive
### 步骤 1 — 设置 Google Drive 文件夹
访问 [drive.google.com](https://drive.google.com) 并创建以下精确的文件夹结构:
```
MyDrive/
└── sentinel/
├── data/
│ ├── sample_reports/ ← upload report_01.txt through report_15.txt here
│ ├── mitre_150.json ← upload here
│ ├── mock_inventory.txt ← upload here
│ └── staged_report.txt ← upload here
└── chroma_db/ ← create this EMPTY folder (ChromaDB writes here)
```
### 步骤 2 — 将 API 密钥添加到 Colab Secrets
在您的 Colab notebook 打开后,点击左侧边栏的 **🔑 钥匙图标**。
精确添加以下三个密钥:
| 密钥名称 | 获取位置 |
|-------------|----------------|
| `GROQ_API_KEY` | [console.groq.com](https://console.groq.com) → API Keys → Create |
| `MAILTRAP_USERNAME` | mailtrap.io → Inboxes → SMTP Settings → Username |
| `MAILTRAP_PASSWORD` | mailtrap.io → Inboxes → SMTP Settings → Password |
### 步骤 3 — 在 Colab 中打开 Notebook
[](https://colab.research.google.com/drive/1LLeHzADM_6XiQ97kI0aiSmagSpc-bXGj)
或者手动将 `sentinel_main_.py` 上传到 Colab 并将其转换为 notebook。
### 步骤 4 — 按顺序运行单元格
**从上到下** 运行每个单元格:
| 单元格 | 执行内容 | 耗时 |
|------|-------------|------|
| Cell 1 | 安装依赖包 | ~2 分钟 (每个会话一次) |
| Cell 2 | 挂载 Drive,加载凭证 | ~10 秒 |
| Cell 3 | 从 MITRE 数据构建 ChromaDB | ~3 分钟 **(仅限首次)** |
| Cell 4 | 定义模拟企业工具 | 即时 |
| Cell 5 | 加载提示模板 | 即时 |
| Cell 6 | 设置 Mailtrap 邮件发送器 | 即时 |
| Cell 7 | 定义 6 步流水线 | 即时 |
| Cell 8 | 启动 Gradio UI | 即时 |
Cell 8 将打印一个 **公开 URL**,例如 `https://xxxxx.gradio.live` —— 在任何设备上打开它。
### 步骤 5 — 运行您的第一次分类
1. 将 `staged_report.txt` 的内容粘贴到输入框中
2. 点击 **🚨 RUN TRIAGE PIPELINE**
3. 注意观察:
- 严重级别升级为 **CRITICAL**
- **CEO 个人笔记本电脑** 出现在资产暴露中
4. 打开您的 Mailtrap 收件箱 —— 升级邮件将在约 30 秒内到达
## 📁 仓库内容
```
sentinel/
├── sentinel_main_.py ← Full source code (all 8 cells)
├── requirements.txt ← Python dependencies
├── .gitignore ← Keeps secrets and temp files out of git
├── .env.example ← Template showing what secrets are needed
├── data/
│ ├── mock_inventory.txt ← Fake asset inventory (demo data)
│ └── sample_reports/ ← 15 test threat reports (LOW/MED/HIGH)
└── README.md ← This file
```
## ⚙️ 会话重启(当 Colab 断开连接时)
Colab 免费版在空闲约 90 分钟后会断开连接。要恢复会话:
1. **Runtime → Run All**(或按 `Ctrl+F9`)
2. Cell 3 将提示 *"150 techniques already loaded — skipping rebuild"*(耗时 5 秒,而非 3 分钟)
3. Cell 8 会生成一个 **新** 的公开 URL —— 复制它
4. 总重启时间:约 3 分钟
## 🔐 安全说明
- **切勿将 API 密钥提交到 GitHub。** 本项目使用 Colab Secrets —— 密钥永远不会接触到代码。
- `GROQ_API_KEY`、`MAILTRAP_USERNAME` 和 `MAILTRAP_PASSWORD` 仅在运行时通过 `userdata.get()` 加载。
- 本仓库中的 `.gitignore` 排除了 `.env` 文件、凭证文件和 ChromaDB 数据。
- 本仓库中的资产清单仅为 **虚假演示数据** —— 未引用任何真实系统。
## 📦 依赖项
```
groq>=0.9.0
gradio>=4.0.0
chromadb>=0.5.0
sentence-transformers>=3.0.0
```
`smtplib` 是 Python 标准库 —— 无需安装。
手动安装请运行:
```
pip install groq gradio chromadb sentence-transformers
```
## 🧠 演示的 AI 概念
| 概念 | 使用位置 |
|---------|-----------|
| Few-shot 提示 | 嵌入在 SYSTEM_PROMPT 中的 2 个示例 |
| 思维链 | IOC 提取前的“逐步思考” |
| 结构化输出 | 强制使用 `response_format=json_object` |
| 动态提示模板 | f-string 注入实时报告文本 |
| 参数调优 | temp=0.1 (提取) / 0.0 (严重级别) / 0.7 (邮件) |
| RAG | ChromaDB + MITRE ATT&CK 知识库 |
| Function Calling | LLM 自主调用 `check_asset_inventory()` |
| 智能体工作流 | 6 步 推理 → 查询 → 执行 → 重新推理 循环 |
| 应用部署 | Gradio + `share=True` 公开 URL |
## 💡 故障排除
**步骤 1 出现 JSON 解析错误?**
**ChromaDB 维度不匹配?**
**Mailtrap 无法连接?**
**Gradio URL 未生成?**
## 📄 许可证
MIT 许可证 —— 可免费使用、修改和分享,需注明出处。
*基于 Groq · Llama 3.3 70B · ChromaDB · Gradio · Mailtrap · Google Colab 构建*
标签:AI代理, AI安全, Chat Copilot, ChromaDB, CISA项目, Claude, Cloudflare, CVE检测, DNS 反向解析, Google Colab, Gradio, IOC提取, IP 地址批量处理, Llama 3.3, Mailtrap, MITRE ATT&CK, RAG, SOC分析师助手, 免费开源, 向量数据库, 威胁分诊, 威胁情报, 威胁报告分析, 子域名变形, 安全运营中心, 开发者工具, 战术技术程序, 插件系统, 无线安全, 智能预警, 检索增强生成, 网络信息收集, 网络安全, 网络安全审计, 网络映射, 逆向工具, 邮件告警, 隐私保护