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 [![在 Colab 中打开](https://colab.research.google.com/assets/colab-badge.svg)](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分析师助手, 免费开源, 向量数据库, 威胁分诊, 威胁情报, 威胁报告分析, 子域名变形, 安全运营中心, 开发者工具, 战术技术程序, 插件系统, 无线安全, 智能预警, 检索增强生成, 网络信息收集, 网络安全, 网络安全审计, 网络映射, 逆向工具, 邮件告警, 隐私保护