DolevAtik/AI-SOC-Analyst

GitHub: DolevAtik/AI-SOC-Analyst

一款融合启发式规则与 Claude AI 的实时安全运营仪表盘,帮助分析师自动检测攻击模式并加速事件调查。

Stars: 0 | Forks: 0

# 🛡️ AI SOC Analyst 实时安全运营中心(SOC)仪表板 —— 使用启发式与 AI 混合引擎检测攻击模式,并允许你通过内置的 Claude 驱动的聊天助手进行威胁调查。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/bcb33b72d2170128.svg)](https://github.com/DolevAtik/AI-SOC-Analyst/actions) ![React](https://img.shields.io/badge/React-19-blue) ![Python](https://img.shields.io/badge/Python-3.11-cyan) ![Claude](https://img.shields.io/badge/AI-Claude_Opus_4.8-purple) ![License](https://img.shields.io/badge/License-MIT-green) ## ✨ 功能 ### 🔍 威胁检测 —— 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, 威胁检测, 安全运营, 扫描框架, 测试用例, 自定义脚本, 请求拦截, 逆向工具