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), 库, 应急响应, 请求拦截, 逆向工具