lord-dubious/incident-response-copilot
GitHub: lord-dubious/incident-response-copilot
一款本地优先的应急响应副驾驶工具,帮助安全团队在离线环境中完成从告警分诊到事件分析的全流程管理,提供证据收集、时间线构建和可审查的遏制任务指导。
Stars: 0 | Forks: 0
# Incident Response Copilot
本地优先的应急响应副驾驶,用于分诊时间线、证据、遏制任务以及可审查的 playbook。

该项目模拟了安全团队在收到警报后所需的工作流程:创建事件、收集证据、构建时间线、提出响应任务,并在人工审查的监督下进行遏制。它刻意设计为离线和确定性的,因此审查人员无需 SIEM 凭据或生产环境访问权限即可运行。
## 目前的可用功能
- 确定性的事件测试数据,涵盖 SIEM、Kubernetes 和恶意软件分析信号。
- 一个活动的 `POST /api/incidents/triage` endpoint,可将本地告警 payload 转化为事件、证据、时间线条目、响应任务和 playbook 步骤。
- 证据置信度、时间线条目、遏制任务、审批门控和 playbook 指导。
- FastAPI API、SQLite 存储、测试、CI 以及完善的本地仪表板。
## 仪表板
仪表板显示事件计数、关键事件、待处理响应任务、待审批任务和证据数量。侧边栏包含一个带有示例生产环境管理员登录告警的本地分诊表单,以便审查人员可以创建新事件并立即检查生成的证据/任务。
## 架构
```
flowchart TB
subgraph Intake[Local alert intake]
Alert[Alert JSON] --> API[FastAPI triage API]
API --> Classifier[Deterministic severity classifier]
end
subgraph CaseBuild[Incident case building]
Classifier --> Incident[Incident]
Classifier --> Evidence[EvidenceItem list]
Classifier --> Timeline[TimelineEvent list]
Classifier --> Tasks[ResponseTask list]
Classifier --> Playbook[PlaybookStep list]
end
subgraph Review[Human review boundary]
Tasks --> Approval{Requires approval?}
Approval -->|yes| Blocked[Blocked containment task]
Approval -->|no| Todo[Reviewable task]
Playbook --> Notes[Human review notes]
end
Incident --> Store[(SQLite)]
Evidence --> Store
Timeline --> Store
Tasks --> Store
Playbook --> Store
Store --> Dashboard[Dashboard and API]
```
## API 接口
- `GET /api/health` - 就绪检查。
- `GET /api/summary` - 事件、任务、审批和证据计数。
- `GET /api/incidents` - 按开始时间排序的事件列表。
- `GET /api/incidents/{incident_id}` - 事件、证据、时间线、任务和 playbook。
- `POST /api/incidents/triage` - 从告警 payload 创建新的本地事件。
- `POST /api/demo/reset` - 重置确定性的演示数据。
分诊请求示例:
```
{
"title": "Suspicious production admin login spike",
"signal_source": "siem.alert",
"description": "Multiple failed admin logins followed by a successful production login from a new ASN",
"metadata": {
"environment": "production",
"failed_logins": 37,
"asset": "admin-portal"
}
}
```
副驾驶会创建一个高严重性事件、证据记录、时间线条目、包含审批门控的遏制任务,以及可审查的 playbook 步骤。
## 分诊逻辑
分类器被有意设计为确定性的且易于审查:
- 恶意软件、勒索软件、数据泄露、回调通信和凭据转储将被标记为严重。
- 管理员登录失败、生产环境访问和提权操作将被标记为高严重性。
- Kubernetes 出站流量、策略缺口、元数据降级和可疑的低上下文信号将被标记为中严重性。
- 低置信度的信息性警报将保持为低严重性。
- 高严重性和严重事件会生成包含审批门控的遏制任务。
- Kubernetes/出站流量事件会添加一个 NetworkPolicy 干运行任务。
## 快速开始
```
uv run --extra dev pytest
uv run incident-response-copilot
```
打开 `http://127.0.0.1:8060` 并在分诊面板中尝试示例告警。
## 开发
```
uv run --extra dev ruff check src tests
uv run --extra dev ruff format --check src tests
uv run python -m compileall -q src tests
uv run --extra dev pytest tests/ --cov=incident_response_copilot --cov-report=term-missing
```
## 当前的局限性
这是一个本地的事件组合工作区。建议是可审查的指导,而不是自动化的生产环境遏制。它不连接到实时的 SIEM、SOAR、EDR、工单系统或云控制平面。真正的集成、身份验证、签名审批和实时证据摄取将是迈向生产环境的下一步。
标签:AV绕过, Chrome Headless, DAST, ESC漏洞, FastAPI, IR自动化, Kubernetes安全, Local-first, Python, SecOps, SIEM集成, SOP, SQLite, 事件分类, 事件时间线, 云安全架构, 人工审核, 告警分诊, 安全事件响应, 安全仪表盘, 安全剧本, 安全运营, 审批机制, 密码管理, 库, 应急响应, 恶意软件分析, 扫描框架, 数字取证, 无后门, 本地优先, 确定性分析, 离线计算, 网络安全, 自动化脚本, 证据收集, 逆向工具, 遏制任务, 隐私保护