Skip to content

Security: CodeCoreLab/alert-engine

Security

SECURITY.md

安全政策

支持版本

版本 接收安全修复
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 是嵌入式降噪引擎,它会丢弃告警。使用前请理解以下风险:

1. 降噪即丢失

引擎的设计目标是「零误杀前提下最大化降噪率」,但任何过滤规则都存在 误杀可能。不要把 alert-engine 作为唯一的告警通道:

  • 生产环境应保留原始告警流(raw alert log)以便事后回溯
  • 关键业务(P0 级别)建议旁路一份不降噪的通道
  • 上线前用真实历史告警做影子运行(shadow mode),对比降噪前后的漏报

2. 基线算法会被污染

3σ 基线预判依赖历史数据。若上游持续注入异常值,EWMA 基线会被带偏 (均值漂移),导致后续正常告警被误判为异常。部署时:

  • 定期检查基线是否稳定(engine._baselines)
  • 异常风暴后建议人工重置基线
  • 不要把基线持久化后长期不校准

3. 升级策略的联系方式

escalation.py 的默认规则里含占位联系人(oncall_p0、+86-xxx)。 部署前必须替换为真实联系人,否则 P0 告警会通知到不存在的通道 —— 这比不通知更危险(会让人误以为通知已送达)。

4. 凭据

  • 采集适配器若需要 API Token,请从环境变量读取,勿硬编码
  • 记忆库(AlertMemory)落的是告警内容,其中可能含业务敏感信息: 请把 DB 文件放在受控目录,并注意 WAL 模式会额外产生 -wal / -shm 文件
  • 告警 labels 里的主机名、路径、业务名属于敏感信息,对外分享前请脱敏

已知的架构性限制

限制 说明
单进程内存态 指纹、基线、升级状态都在内存,进程重启即丢失。多实例部署会导致降噪效果打折
无持久化去重窗口 去重窗口(默认 600s)依赖内存字典,重启后重复告警会重新走一遍管线
时间基于本地时区 mute_timing 的 cron 匹配用 datetime.fromtimestamp()(本地时区)。跨时区部署需自行换算

There aren't any published security advisories