# 安全事件 Runbook **用途**: 处理安全事件和漏洞响应 **适用场景**: 账户被盗、数据泄露、恶意攻击、权限异常 --- ## 安全事件分级 | 级别 | 名称 | 描述 | 响应时间 | |-----|------|------|---------| | P0 | 严重 | 数据泄露、系统入侵、权限被完全绕过 | 立即 | | P1 | 高危 | 账户被盗、密码泄露、疑似入侵 | 1小时内 | | P2 | 中危 | 异常登录、权限提升尝试、API滥用 | 4小时内 | | P3 | 低危 | 可疑行为、配置弱点、潜在风险 | 24小时内 | --- ## 事件响应流程 ``` 发现事件 → 评估确认 → 遏制影响 → 调查取证 → 修复漏洞 → 恢复服务 → 事后复盘 ``` --- ## 1. 发现与评估 ### 识别安全事件 **异常迹象**: - 大量失败登录尝试 - 异常用户活动(异地登录、时间异常) - 未经授权的配置变更 - 服务性能异常下降 - 用户报告账户异常 ### 初步评估 ```bash # 检查最近登录失败 docker-compose logs --since=1h app | grep "status: 401" # 检查异常 IP 访问 docker-compose logs --since=1h app | awk '{print $NF}' | grep -v "user_id" | sort | uniq -c | sort -rn # 检查用户权限异常 docker-compose logs --since=1h app | grep -i "admin\|permission\|role" # 检查配置文件变更 stat configs/config.yaml ls -la configs/config.yaml.* ``` --- ## 2. 遏制影响 ### P0 严重事件 - 立即行动 ```bash # 1. 隔离受影响系统 docker-compose kill # 2. 保存现场 docker-compose logs > logs/security_$(date +%Y%m%d_%H%M%S).log cp -r data data_backup_$(date +%Y%m%d_%H%M%S) # 3. 撤销会话 # 如果使用 Redis,清除所有会话 docker exec user-management-app redis-cli FLUSHALL # 4. 重置所有密码(紧急情况) # 参考下面的密码重置流程 ``` ### P1 高危事件 ```bash # 1. 禁用受影响账户 docker-compose logs app | grep "user_id: XXX" # 找出受影响用户 # 2. 撤销可疑会话 # 检查并清除可疑 token # 3. 加强监控 # 增加日志详细程度 ``` --- ## 3. 调查取证 ### 日志分析 ```bash # 导出相关日志 docker-compose logs --since="2026-04-11T00:00:00" > logs/investigation_$(date +%Y%m%d).log # 分析攻击痕迹 grep -E "error|warning|fail|invalid" logs/investigation_*.log # 分析攻击者行为 docker-compose logs | grep "attacker_ip" -A 5 -B 5 # 检查数据库异常 sqlite3 data/user_management.db "SELECT * FROM users WHERE updated_at > '2026-04-11';" ``` ### 常见攻击特征 | 攻击类型 | 日志特征 | 检查命令 | |---------|---------|---------| | 暴力破解 | 大量 401 状态码 | `grep status: 401` | | SQL 注入 | SQL 关键字在请求中 | `grep -i sql\|union\|select` | | XSS | 脚本标签在请求中 | `grep -i