shivakumar328/ai-soc-assistant-app

GitHub: shivakumar328/ai-soc-assistant-app

一款集成 LLM 的安全运营中心助手,通过 React 仪表盘与 Flask 后端对 SIEM 告警进行 AI 威胁分析、MITRE ATT&CK 映射与事件响应计划自动生成。

Stars: 0 | Forks: 0

# 🛡️ AI 安全运营中心 (SOC) 助手 这是一个生产级、AI 驱动的 SOC 助手:一个 **React 仪表盘** + **Flask/Claude API 后端**,用于接收 SIEM 警报,执行 AI 威胁分析,将活动映射至 **MITRE ATT&CK**,并生成**事件响应计划**。 ## 📂 项目结构 ``` soc-assistant/ ├── backend/ # Flask + Claude API │ ├── app.py # Main API (8 endpoints, offline-mock fallback) │ ├── advanced_integrations.py # CrowdStrike, SentinelOne, threat hunting, OSINT, etc. │ ├── requirements.txt # Core deps (all you need to run) │ ├── requirements-full.txt# Heavy deps for advanced_integrations connectors │ ├── .env.example │ └── Dockerfile ├── frontend/ # React (Vite) dashboard │ ├── src/ │ │ ├── SOCAssistant.jsx # Dashboard component (alerts, AI analysis, MITRE, IR) │ │ ├── main.jsx │ │ └── index.css # Dark-mode design tokens │ ├── index.html │ ├── package.json │ ├── vite.config.js │ ├── nginx.conf │ └── Dockerfile ├── docs/ # All guides │ ├── MASTER_BUILD_PROMPT.md │ ├── BUILD_SUMMARY.md │ ├── SOC_SETUP_GUIDE.md │ ├── API_DEPLOYMENT_GUIDE.md │ ├── CTF_ETHICAL_HACKING_COMPLETE_GUIDE.md │ └── TOOLS_REFERENCE_GUIDE.md ├── k8s/deployment.yaml # Kubernetes manifests ├── docker-compose.yml └── README.md (this file) ``` ## 🚀 快速开始 ### 选项 A — Docker(推荐) ``` cd soc-assistant # (optional) 添加你的 key 以进行实时 Claude 分析 echo "ANTHROPIC_API_KEY=sk-ant-..." > .env docker compose up -d --build ``` - Frontend → http://localhost:8080 - Backend API → http://localhost:5000/api/health ### 选项 A2 — 一键脚本(无 Docker) ``` cd soc-assistant # (optional) 内联传递你的 Hugging Face key;否则将使用 backend/.env HF_API_KEY=hf_your_token_here ./run.sh ``` `run.sh` 会创建 Python venv,安装后端 + 前端依赖,将你的密钥写入 `backend/.env`,并启动这两个服务器。打开 http://localhost:5173。 使用 `./stop.sh` 停止(或在同一终端中按 Ctrl-C)。 ### 选项 B — 本地运行(无 Docker) **1. 后端** ``` cd backend python3 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt cp .env.example .env # optionally add ANTHROPIC_API_KEY python app.py # serves http://localhost:5000 ``` **2. 前端**(在第二个终端中) ``` cd frontend npm install npm run dev # serves http://localhost:5173 ``` 打开前端 URL,点击警报,然后点击 **Analyze**。 ## 🔌 API 端点 | Method | Path | Description | |--------|--------------------------|-----------------------------------------------| | GET | `/api/health` | 健康状态 + 当前模式 (offline-mock / claude) | | GET | `/api/alerts` | 列出 SIEM 警报(`?severity=critical` 过滤) | | POST | `/api/analyze` | AI 威胁分析 + MITRE 映射 | | POST | `/api/mitre-mapping` | 仅进行 MITRE ATT&CK 映射 | | POST | `/api/incident-response` | 生成事件响应 (IR) 计划 | | GET | `/api/logs` | 示例日志流 (`?limit=N`) | | GET | `/api/incidents` | 打开事件 | | GET | `/api/threat-intel` | 威胁情报指标 (IOCs) | **示例:** ``` curl -X POST http://localhost:5000/api/analyze \ -H "Content-Type: application/json" \ -d '{"alert":{"id":1,"type":"SQL Injection Attempt","severity":"critical","source":"IDS-01","description":"SQLi detected","source_ip":"192.168.1.100"}}' ``` ## 🤖 Claude / API 密钥 - **无密钥** → 离线模拟模式(确定性、逼真的分析)。非常适合用于演示和 CI。 - **有密钥** → 设置 `ANTHROPIC_API_KEY`。请访问 https://console.anthropic.com/account/keys 获取 - **模型** → 使用 `ANTHROPIC_MODEL` 覆盖(默认为 `claude-sonnet-4-20250514`)。 查看你当前所处的模式: ``` curl http://localhost:5000/api/health ``` ## 🤖 LLM 提供商 — Claude **或** Hugging Face (Mistral/Llama/Qwen) 后端支持多个 LLM 提供商,可通过 `LLM_PROVIDER` (`auto` | `huggingface` | `claude` | `offline`) 进行选择: | 提供商 | 环境变量 | 说明 | |----------|----------|-------| | **Hugging Face** | `HF_API_KEY`, `HF_MODEL`, `HF_BASE_URL` | 通过 HF router 进行的免费无服务器推理(兼容 OpenAI)。 | | **Claude** | `ANTHROPIC_API_KEY`, `ANTHROPIC_MODEL` | Anthropic API。 | | **离线** | _(无)_ | 确定性的模拟分析。 | ### 使用 Hugging Face 1. 创建一个 token(读取权限):https://huggingface.co/settings/tokens 2. 在 `backend/.env` 中: LLM_PROVIDER=huggingface HF_API_KEY=hf_your_token_here HF_MODEL=meta-llama/Llama-3.1-8B-Instruct 3. 测试:`cd backend && python test_hf.py` ### ⚠️ 关于 `mistralai/Mistral-7B-Instruct-v0.3` 该特定模型**目前在 Hugging Face 的免费无服务器推理中不可用**。它唯一映射的提供商 (`novita`) 处于错误状态,且 router 将其报告为“非聊天模型”。在 HF router 上验证可用的免费聊天模型包括: - `meta-llama/Llama-3.1-8B-Instruct` ← 默认 - `Qwen/Qwen2.5-7B-Instruct` 要在 HF 重新启用 Mistral 后切换至该模型(或者如果你启用了提供该模型的付费推理提供商),只需设置: ``` HF_MODEL=mistralai/Mistral-7B-Instruct-v0.3 ``` 无需更改代码。 `backend/advanced_integrations.py` 包含用于 CrowdStrike、SentinelOne、威胁狩猎、恶意软件分析(VirusTotal/Hybrid-Analysis/ANY.RUN)、OSINT (Shodan)、网络分析、合规性映射和 IR playbooks 的连接器类。这些需要第三方 API 密钥以及 `requirements-full.txt` 中的额外依赖项。它们是**可选的**,运行核心应用程序时不需要。 ## ☸️ Kubernetes ``` docker build -t soc-assistant-backend:latest ./backend docker build -t soc-assistant-frontend:latest ./frontend kubectl apply -f k8s/deployment.yaml ``` ## 📚 文档 有关完整的构建提示、设置、API/部署、CTF 与道德黑客指南以及工具参考,请参阅 `docs/` 文件夹。 ## ⚠️ 注意事项及与原稿相比的变更 - 修复了无效的 Claude 模型名称 (`claude-opus-4-6`) → 现已可配置,且有有效的默认值。 - 添加了离线/模拟模式,使应用程序无需任何配置即可运行。 - 移除了前端中不安全/有 Bug 的 `eval()` 调用;严重性样式现在使用样式对象。 - 添加了 Vite 项目脚手架、暗黑模式 CSS token、Docker/K8s,并拆分了 requirements。 CTF / 道德黑客材料仅供**授权测试和教育使用。** 仅对你拥有的系统或已获得明确书面许可评估的系统进行测试。 **版本:** 1.0.0
标签:AI辅助分析, Docker与Kubernetes, Flask, React, SIEM告警分析, Syscalls, 子域名突变, 安全运营中心(SOC), 库, 应急响应, 请求拦截, 逆向工具