在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增集成
- 选择 Canarytokens,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Canarytokens,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Canarytokens 中配置
1
在 Canarytokens 中为蜜标填写 Webhook 地址
操作路径:canarytokens.org(或自建站点)› 选择蜜标类型 › Add Webhook Notification
填完后点击 Create Canarytoken 创建蜜标,并放置到目标位置。Canarytokens 从服务端发起请求,Webhook 地址必须是公网可访问的地址,指向内网或保留地址的 URL 会被拒绝。自建 Canarytokens 使用相同的请求格式。
2
在 Flashduty 中开启超时自动关闭
操作路径:Flashduty 控制台 › 协作空间(接收这些告警的空间)Canarytokens 的告警是一次性事件,不会推送恢复。请在接收这些告警的协作空间中开启 超时自动关闭:
同一个蜜标在告警未关闭期间再次被触碰,会合并到原有告警;关闭后再次被触碰,会创建新的告警。
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