DolevAtik/AI-SOC-Analyst
GitHub: DolevAtik/AI-SOC-Analyst
一款融合启发式规则与 Claude AI 的实时安全运营仪表盘,帮助分析师自动检测攻击模式并加速事件调查。
Stars: 0 | Forks: 0
# 🛡️ AI SOC Analyst
实时安全运营中心(SOC)仪表板 —— 使用启发式与 AI 混合引擎检测攻击模式,并允许你通过内置的 Claude 驱动的聊天助手进行威胁调查。
[](https://github.com/DolevAtik/AI-SOC-Analyst/actions)




## ✨ 功能
### 🔍 威胁检测 —— 8 种攻击类型
| 攻击 | 检测方式 |
|---|---|
| 暴力破解 | 来自同一 IP 的重复失败登录 |
| SQL 注入 | 路径和查询参数中的 SQLi payload |
| XSS | 脚本注入模式 |
| 路径遍历 | `../` 及其编码变体 |
| 请求泛洪 / DoS | 单个 IP 的异常请求量 |
| 凭证撞库 | 单个 IP 使用大量用户名 |
| 未授权访问 | 访问 `/admin`、`/.env` 等 |
| 可疑 IP | 匹配托管黑名单的 IP |
### 🤖 AI —— Claude Opus 4.8
- **批量分析** —— 为每个日志批次自动生成安全摘要
- **手动日志分析** —— 粘贴任意日志,获取 `threat_level`、`analysis` 和 `fix_tip`
- **SOC 聊天** —— 使用自然语言询问有关活跃事件的问题
### 📊 仪表板
- 通过 WebSocket 提供实时事件源和统计数据
- 严重性/类型图表、攻击地图和攻击链时间线
- 带有筛选、排序、CSV + PDF 导出功能的事件表
- 场景面板 —— 模拟特定的攻击序列
- IP 黑名单管理
### 🔐 认证
- 通过 Supabase 进行 Google OAuth
- 前端和后端之间的 JWT 会话管理
## 🚀 快速开始
**后端**
```
# backend/.env
ANTHROPIC_API_KEY=sk-ant-...
FLASK_SECRET_KEY=any-secret
# 可选:DATABASE_URL=postgresql://...
cd backend && pip install -r requirements.txt && py app.py
# → http://localhost:5000
```
**前端**
```
# frontend/.env
VITE_SUPABASE_URL=https://.supabase.co
VITE_SUPABASE_ANON_KEY=
VITE_API_URL=http://localhost:5000
cd frontend && npm install && npm run dev
# → http://localhost:5173
```
## 🐳 Docker
```
# 从 Docker Hub 拉取镜像
docker pull dolevatik/soc-analyst-backend:latest
docker pull dolevatik/soc-analyst-frontend:latest
# 生产环境 (nginx + prebuilt images)
docker compose up
# → http://localhost
# 开发环境 (hot reload)
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
# → http://localhost:5173
```
Docker Hub 上的镜像:
[`dolevatik/soc-analyst-backend`](https://hub.docker.com/r/dolevatik/soc-analyst-backend) ·
[`dolevatik/soc-analyst-frontend`](https://hub.docker.com/r/dolevatik/soc-analyst-frontend)
## ⚙️ CI/CD
每次推送到 `main` 分支都会自动运行完整的流水线:
```
push to main
↓
GitHub Actions
├── Frontend — lint, build, security audit
├── Backend — flake8, security audit
└── Docker — build & push to Docker Hub
↓
Railway — auto-deploys backend
Vercel — auto-deploys frontend
```
合并后无需手动操作。
## 🪟 真实 Windows 模式
无需使用模拟日志,后端可以实时读取你机器上实际的 **Windows 安全事件日志**,并将这些事件通过相同的检测器进行处理。这对于针对本机上发生的真实登录尝试、锁定和提权来测试系统非常有用。
### 支持的事件 ID
| 事件 ID | 含义 | 触发的检测器 |
|---|---|---|
| 4625 | 登录失败 | 暴力破解 |
| 4624 | 登录成功 | — |
| 4740 | 账户锁定 | 暴力破解 |
| 4648 | 使用显式凭据登录 | — |
| 4672 | 分配特殊权限 | 未授权访问 |
| 4776 | NTLM 凭据验证 | 暴力破解 |
### 如何启动
**1. 安装 pywin32**(一次即可)
```
pip install pywin32
```
**2. 以管理员身份运行后端**
```
Start-Process powershell -Verb RunAs
```
在新的管理员窗口中:
```
cd "C:\path\to\AI-SOC-Analyst\backend"
py app.py
```
**3. 运行前端**(在单独的终端中,无需管理员权限)
```
cd "C:\path\to\AI-SOC-Analyst\frontend"
npm run dev
# → http://localhost:5173
```
**4. 在仪表板中切换源模式**
转到仪表板 → 点击 **Source Mode** → 选择 **Real Windows**
从此时起,你机器上发生的每一个真实事件(登录、失败、锁定)都会流经检测引擎并显示为一个事件。
### 🧪 测试示例
**暴力破解** —— 生成 5 个登录失败事件(事件 ID 4625):
```
for ($i = 0; $i -lt 5; $i++) {
net use \\localhost\IPC$ /user:fakeuser wrongpass 2>$null
}
```
**凭证撞库** —— 同一 IP,多个不同用户名:
```
"alice","bob","admin","root","john.doe" | ForEach-Object {
net use \\localhost\IPC$ /user:$_ wrongpass 2>$null
}
```
**验证事件是否已记录**(以管理员身份运行):
```
Get-WinEvent -LogName Security -MaxEvents 20 |
Where-Object { $_.Id -in @(4625, 4740) } |
Select-Object TimeCreated, Id, Message |
Format-List
```
几秒钟内,仪表板应显示相应的警报。
## 🏗️ 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 19, Vite, Socket.io-client |
| 后端 | Python, Flask, Flask-SocketIO, Flask-Limiter |
| AI | Anthropic Claude Opus 4.8 |
| 认证 | Supabase (Google OAuth) |
| 数据库 | SQLite (默认) / PostgreSQL |
| 实时 | 通过 gevent 实现的 WebSockets |
| CI/CD | GitHub Actions → Docker Hub → Railway / Vercel |
由 **Dolev Atik** 开发 · MIT License
标签:AI助手, AMSI绕过, CISA项目, Flask, React, Syscalls, 威胁检测, 安全运营, 扫描框架, 测试用例, 自定义脚本, 请求拦截, 逆向工具