| 版本 | 接收安全修复 |
|---|---|
| 0.3.x | ✅ |
| 0.2.x | ❌ (存在导入断裂,不可运行) |
| < 0.2 | ❌ |
请勿用公开 Issue 报告安全问题。
用 GitHub 私密漏洞报告: https://github.com/CodeCoreLab/alert-engine/security/advisories/new
或邮件联系维护者。
请在报告里包含:
- 受影响版本
- 漏洞类型与影响范围
- 复现步骤或最小复现代码
- 你观察到的实际行为 vs 预期行为
| 阶段 | 时限 |
|---|---|
| 确认收到 | 3 个工作日 |
| 初步评估 | 7 个工作日 |
| 修复发布 | 视严重程度,30 天内 |
alert-engine 是嵌入式降噪引擎,它会丢弃告警。使用前请理解以下风险:
引擎的设计目标是「零误杀前提下最大化降噪率」,但任何过滤规则都存在 误杀可能。不要把 alert-engine 作为唯一的告警通道:
- 生产环境应保留原始告警流(raw alert log)以便事后回溯
- 关键业务(P0 级别)建议旁路一份不降噪的通道
- 上线前用真实历史告警做影子运行(shadow mode),对比降噪前后的漏报
3σ 基线预判依赖历史数据。若上游持续注入异常值,EWMA 基线会被带偏 (均值漂移),导致后续正常告警被误判为异常。部署时:
- 定期检查基线是否稳定(
engine._baselines) - 异常风暴后建议人工重置基线
- 不要把基线持久化后长期不校准
escalation.py 的默认规则里含占位联系人(oncall_p0、+86-xxx)。
部署前必须替换为真实联系人,否则 P0 告警会通知到不存在的通道 ——
这比不通知更危险(会让人误以为通知已送达)。
- 采集适配器若需要 API Token,请从环境变量读取,勿硬编码
- 记忆库(
AlertMemory)落的是告警内容,其中可能含业务敏感信息: 请把 DB 文件放在受控目录,并注意 WAL 模式会额外产生-wal/-shm文件 - 告警
labels里的主机名、路径、业务名属于敏感信息,对外分享前请脱敏
| 限制 | 说明 |
|---|---|
| 单进程内存态 | 指纹、基线、升级状态都在内存,进程重启即丢失。多实例部署会导致降噪效果打折 |
| 无持久化去重窗口 | 去重窗口(默认 600s)依赖内存字典,重启后重复告警会重新走一遍管线 |
| 时间基于本地时区 | mute_timing 的 cron 匹配用 datetime.fromtimestamp()(本地时区)。跨时区部署需自行换算 |