在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Canarytokens,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Canarytokens,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Canarytokens 中配置
1
为蜜标填写 Webhook 地址
- 打开 canarytokens.org(或您自建的 Canarytokens 站点),选择要创建的蜜标类型
- 在 Mail me here when the alert fires 中填写邮箱。表单要求必填,不填无法创建蜜标
- 在 Remind me of this when the alert fires 中填写备注。它同样必填,并会成为 Flashduty 告警标题的一部分,请写明蜜标的用途和放置位置,例如
财务共享目录上的诱饵文件 - 点击 Add Webhook Notification,把 Flashduty 集成的完整推送地址粘贴到 Notify me here when the alert fires,地址中需包含
integration_key - 点击 Create Canarytoken 创建蜜标,并放置到目标位置
2
开启超时自动关闭
Canarytokens 的告警是一次性事件,不会推送恢复。请在接收这些告警的协作空间中开启 超时自动关闭,建议超时时长为 24 小时,计时起点选择 故障触发。同一个蜜标在告警未关闭期间再次被触碰,会合并到原有告警;关闭后再次被触碰,会创建新的告警。
3
保存并验证
- 保存 Webhook 地址时,Canarytokens 会向该地址发送一条测试请求。Flashduty 会创建一条 Info 级别的测试告警,标题为
Canarytokens test notification,它不会自动恢复,验证后请手动关闭 - 触碰蜜标(例如用浏览器或
curl打开 Web bug 蜜标的链接),确认 Flashduty 收到 Critical 告警
事件类型
Canarytokens 每次推送一个 JSON 对象,不推送恢复。
Alert Key
Flashduty 使用
token(蜜标的固定编号)计算 Alert Key。同一蜜标无论从哪个来源 IP、通过哪个通道被触碰,都使用相同的 Alert Key;备注、来源 IP、时间的变化不会改变它,缺少 token 的请求会被拒绝。蜜标暴露通知使用 token 加 key_id,不会合并到该蜜标的触碰告警。
状态和告警等级
蜜标没有合法的访问者,任何一次触碰都可能是入侵迹象,因此触碰告警固定为 Critical。暴露通知为 Warning,测试请求为 Info。如需区分不同蜜标的严重程度,可在协作空间中按标签(例如
token_type)配置路由或告警处理规则调整等级。
标签
推送中的
manage_url 包含蜜标管理权限的认证参数,Flashduty 不读取、不保存。请到 Canarytokens 的管理页面查看蜜标详情和触碰历史。
关于签名
Canarytokens 的 Webhook 没有签名机制,请求也没有专用的请求头,Flashduty 不做签名校验。推送地址中的
integration_key 是唯一的凭证,请妥善保管。
排查问题
- Flashduty 没有收到推送:确认 Webhook 地址是公网可访问的 HTTPS 或 HTTP 地址,不是内网地址。Canarytokens 请求超时时间为 2 秒,不会重试
- 蜜标的 Webhook 被停用:Canarytokens 在 Webhook 连续 5 次返回错误后会停用它,需要修正推送地址后重新保存 Webhook;请确认推送地址完整且包含
integration_key - 返回参数错误:确认 URL 完整且包含
integration_key;推送内容缺少token时同样会被拒绝 - 重复触碰没有推送:同一来源 IP 在几秒内再次触碰同一蜜标,Canarytokens 可能不会推送,Flashduty 也就收不到
- 告警没有关闭:Canarytokens 没有恢复事件,请开启协作空间的超时自动关闭,或手动关闭;测试请求产生的 Info 告警同样需要手动关闭
- Slack、Teams、Discord、Google Chat 地址:这些地址会收到 Canarytokens 专用的消息格式,不是本页描述的 JSON,不能用于 Flashduty