new_vuln),以及扫描或资产发现失败(failed_stopped)。扫描开始、扫描完成(running、finished)和新资产(new_asset)通知会被接收并丢弃,不产生告警。
ProjectDiscovery 不会推送“漏洞已修复”或“失败已解决”的通知,因此这两类告警不会自动恢复,请在接收告警的协作空间中开启 超时自动关闭(见下文)。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增集成
- 选择 ProjectDiscovery,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 ProjectDiscovery,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 ProjectDiscovery Cloud 中配置
1
在 ProjectDiscovery Cloud 中添加 Webhook 告警配置
操作路径:ProjectDiscovery Cloud › Scans › Configurations › Alerting › Webhook登录 ProjectDiscovery Cloud,选择 Webhook 后填写:
ProjectDiscovery 没有恢复通知,无需配置恢复项,请按下文开启超时自动关闭。
2
在扫描或资产发现任务中启用该配置
操作路径:ProjectDiscovery Cloud › Scans保存告警配置,并在需要通知的扫描或资产发现任务中启用该配置。
3
触发一次通知并验证
操作路径:ProjectDiscovery Cloud › Scans › Configurations › Alerting › Webhook创建 Webhook 时点击 Verify 只能验证连通性(见下方说明)。要验证真实告警,请对已启用该配置的扫描执行一次重复扫描(rescan)并等待发现新漏洞,或等待扫描、资产发现失败,确认 Flashduty 收到告警。回到 Flashduty,集成显示 最新事件时间,说明配置成功。
创建 Webhook 时点击 Verify 会推送
{"type":"verify","message":"This is a test message from PDCP to verify alerting configuration! Please ignore."},Flashduty 返回成功,并创建一条标题为 “ProjectDiscovery test notification” 的独立 Info 告警,请手动关闭。ProjectDiscovery 官方文档没有提到 Verify 按钮,该按钮和上述内容来自旧文档,未确认。推送内容
ProjectDiscovery 以application/json POST 通知,Flashduty 直接解析,无需配置模板。扫描通知携带 scan_name、scan_id,资产发现通知携带 enumeration_name、enumeration_id。
告警标题:新漏洞为
<名称>: new vulnerabilities,失败为 <名称> failed。
Alert Key
Flashduty 使用scan_id(资产发现使用 enumeration_id)作为 Alert Key。ProjectDiscovery 文档将其定义为执行的唯一标识。同一个 ID 的多次通知合并到同一条告警;不同扫描或资产发现生成不同的告警。修改名称、数量或时间不会改变 Alert Key。
新漏洞和失败通知缺少对应 ID 时,Flashduty 返回参数错误,并指出缺少的字段。
状态和告警等级
new_vuln 优先按 rescan_vulns_list 中最高的严重程度判定;列表为空时改用 severity_breakdown 中数量大于 0 的最高级别。扫描失败意味着覆盖缺口,不是服务中断,因此按 Warning 处理。
超时自动关闭
ProjectDiscovery 不推送恢复通知,这两类告警会一直保持活动。请在接收这些告警的协作空间中开启 超时自动关闭,建议时长 24 小时,可按扫描频率调整。关于签名
ProjectDiscovery 的 Webhook 支持可选的自定义认证头。Flashduty 不校验该头,鉴权依靠推送地址中的integration_key,请妥善保管推送地址。
常见问题
为什么扫描完成通知没有产生告警?
为什么扫描完成通知没有产生告警?
finished、running 和 new_asset 只表示任务状态或资产变化,不是需要处理的问题,Flashduty 返回成功后丢弃。只有发现新漏洞和失败才会产生告警。首次扫描发现的漏洞会通知吗?
首次扫描发现的漏洞会通知吗?
ProjectDiscovery 只在重复扫描(rescan)时发送
new_vuln,首次扫描的结果不会通过该通知发送。列表里的漏洞不全?
列表里的漏洞不全?
rescan_vulns_list 每次最多包含 15 条,完整列表请在 ProjectDiscovery 控制台或 API 中查看。排查问题
- ProjectDiscovery 推送失败:确认 Webhook URL 是包含
integration_key的完整 HTTPS 推送地址 - Flashduty 返回参数错误:确认请求体是 ProjectDiscovery 的 JSON 通知,且
new_vuln、failed_stopped带有scan_id或enumeration_id - 告警没有关闭:这是预期行为,请开启超时自动关闭