azmaan09/security-incident-response
GitHub: azmaan09/security-incident-response
基于 Next.js 构建的安全事件响应平台,通过 Webhook 对接 SIEM 工具实现从告警接入、工作流编排到 SLA 监控与报告的全流程 SOC 事件管理。
Stars: 0 | Forks: 0
# 安全事件响应平台
端到端 SOC 事件响应平台,镜像了 ServiceNow Security Incident (`sn_si_incident`) 流程:
```
QRadar / Splunk / EDR
│ REST API / Webhook + API Key
▼
Validate (JWT / API Key + required fields)
▼
Create Security Incident Record
▼
Business Rules (priority, assignment group)
▼
Workflow: Assign Analyst → Notify SOC → Create Tasks → Collect Logs
▼
SLA Monitoring & Escalation
▼
Analyst Investigation (+ optional AI assistant)
▼
Resolve / Close → Reports & Dashboard
```
## 快速开始
```
cd security-incident-response
npm install
npx prisma db push
npm run seed
npm run dev
```
打开 [http://localhost:3000](http://localhost:3000)
### 演示登录
| Email | Role | Password |
|-------|------|----------|
| `admin@soc.local` | ADMIN | `Password123!` |
| `manager@soc.local` | SOC_MANAGER | `Password123!` |
| `analyst1@soc.local` | ANALYST | `Password123!` |
| `analyst2@soc.local` | ANALYST | `Password123!` |
## SIEM webhook (Scripted REST API)
```
curl -X POST http://localhost:3000/api/webhooks/siem \
-H "Content-Type: application/json" \
-H "X-API-Key: sk_splunk_demo_key_change_me" \
-d '{
"sourceTool": "Splunk",
"sourceAlertId": "SPL-1001",
"shortDescription": "Brute force against VPN gateway",
"severity": "HIGH",
"category": "Authentication",
"attackerIp": "203.0.113.10",
"mitreTactics": ["Credential Access"]
}'
```
API keys(见 `.env`):
- Splunk: `sk_splunk_demo_key_change_me`
- QRadar: `sk_qradar_demo_key_change_me`
- EDR: `sk_edr_demo_key_change_me`
## 功能
- **接入**:webhook 验证 + 事件创建(`sn_si_incident` 风格的编号)
- **业务规则**:严重度 → 优先级、分配组路由、SLA 截止日期
- **工作流**:分析师分配、SOC 通知、任务、日志收集
- **SLA:正常 / 有风险 / 已违约 + 经理升级
- **调查**:工作笔记、根本原因、解决方案、关闭
- **AI 助手**:默认提供启发式建议;设置 `OPENAI_API_KEY` 以启用 GPT
- **报告**:未解决事件、SLA 合规性、MTTR、分析师绩效
## 技术栈
Next.js (App Router) · Prisma · SQLite · JWT + API keys · Recharts
标签:SIEM集成, SOC平台, 安全运营, 工单系统, 扫描框架, 网络研究, 自动化攻击