使用指标对 Dependabot 警报进行优先级排序
应用安全(AppSec)经理经常面临大量 Dependabot 警报,难以判断应首先处理哪些漏洞。Dependabot 指标提供有价值的洞察,帮助高效地对警报进行优先级排序,确保关键安全问题得到及时解决。用户可以做出明智的决策,将资源集中在最具影响力的漏洞上。这种方法提升组织的安全姿态并简化漏洞管理。
了解 Dependabot 指标
Dependabot 指标提供有关您依赖项中检测到的漏洞的详细信息。关键指标包括
- 严重性:指示漏洞的潜在影响(例如,低、中、高、关键)。
- 可利用性:评估漏洞被利用的难易程度。
- 依赖关系:区分直接依赖和传递依赖。
- 依赖范围:区分运行时依赖和开发依赖。确定易受漏洞影响的代码是否实际在您的应用中使用。
- 最近 30 天内关闭的警报数量,包括由 Dependabot 修复、手动忽略和自动忽略的警报数:跟踪警报解决进度。说明 GitHub 代码安全如何帮助您提前发现漏洞。
- 显示每个仓库的未解决警报总数以及严重性和可利用性数据的表格:允许您在仓库层面进行更深入的分析。
有关这些指标的更多信息,请参阅 有关 Dependabot 警报的指标。
此外,您还可以指定复杂过滤器,即现有各个过滤器的组合。有关过滤器的更多信息,请参阅 Dependabot 仪表板视图过滤器。
优先排序警报的步骤
以下初始步骤帮助您识别对组织风险最高的 Dependabot 警报,以便您告诉开发人员哪些警报应优先进行修复。
1. 根据组织需求定制漏斗顺序
您可以在 “Alert prioritization”(警报优先级)图表上自定义默认漏斗顺序,以确保其反映组织的独特风险概况、业务优先级和合规要求。请参阅 查看 Dependabot 警报的指标。
2. 关注关键和高严重性警报
首先使用 severity-critical 或 severity-high 过滤器识别最高严重性的警报。这些漏洞风险最大,通常也在合规标准中被优先处理。
3. 评估可利用性和可达性
优先处理代码库中最可能被利用的漏洞。要找出最可能被利用的警报,可使用 epss_percentage 过滤器并指定数值(例如 epss_percentage>=0.10)。
4. 审核依赖范围和关系
直接依赖通常更易更新,并且对应用安全的影响更大。建议在可能的情况下先处理直接依赖,而后再处理传递依赖。使用 relationship:direct 过滤器可查看受支持生态系统(如 npm)中直接依赖的漏洞。
运行时依赖在生产环境中由应用使用。更新此类依赖可修复安全漏洞、错误以及影响最终用户或系统的性能问题。相反,开发依赖仅在开发、测试或构建过程中使用。虽然同样重要,但这些依赖中的问题通常不会直接影响正在运行的应用或其用户。
您可以使用 scope:runtime 或 scope:development 过滤器,分别仅显示运行时或开发依赖的警报。
5. 考虑警报的年龄
较久的警报可能表明长期存在的风险。请定期审查并处理老旧警报,以防止安全债务累积。例如,一旦确定某个仓库的警报数量比其他仓库更多,需要更高的优先级,您可以
- 点击每个仓库表格中的仓库名称,仅显示该仓库的警报。
- 在 Sort(排序)下拉列表中使用 “Older”(更旧)过滤器,以及其他排序条件,细化可视化结果,按年龄筛选符合您标准的警报。
6. 利用自动化
使用 Dependabot 自动创建的拉取请求快速修复漏洞。将这些更新集成到 CI/CD 流水线中,可实现更快的解决速度和更高的效率。
最佳实践
- 建立服务水平协议(SLA),根据漏洞严重性规定解决时限。
- 定期监控指标,以识别趋势和重复出现的问题。
- 与开发人员协作,确保及时更新并将中断降至最低。
- 记录决策,提供透明度并支持未来的优先级排序。