维护依赖项的最佳做法
保持依赖项的最新状态对于维护安全的软件环境至关重要。 以下是一些建议:
采用以安全性为中心的依赖项管理工具****
- 使用并设置工具,以扫描依赖项是否存在漏洞并自动建议更新。
- 确保将这些工具集成到 CI/CD 管道中,以进行持续监视和更新。
- 设置流程以遵循语义化版本控制,避免出现中断性变更。
定期执行漏洞扫描和审核****
- 计划定期的依赖项审核和依赖项扫描,以识别过时或存在漏洞的依赖项。
自动执行安全修补程序管理****
- 配置依赖项管理工具以自动应用安全修补程序。
- 为关键安全更新设置自动拉取请求,以便快速进行审查和合并。
强制实施有关使用依赖项的策略****
- 实施强制使用依赖项的安全版本的策略。
- 使用能够在拉取请求引入漏洞或未能更新有漏洞的依赖项时阻止拉取请求合并的工具。
在 CI/CD 中集成安全测试****
- 将安全测试工具合并到 CI/CD 管道中。
- 确保对依赖项更新进行安全合规性自动测试。
使用锁定文件和依赖项固定****
- 使用锁定文件(例如,
package-lock.json
、yarn.lock
、Pipfile.lock
)将依赖项固定到已知的安全版本。 - 定期更新和查看这些锁定文件,以确保依赖项是最新的,且不存在意外的安全问题。
监视安全公告****
- 订阅你使用的语言和框架的安全公告。
- 自动将公告集成到开发工作流中,以随时了解新的漏洞。
- 请留意依赖项管理工具提供的仪表板。
- 注意关键更新,尤其是安全修补程序,并优先处理。
版本控制和变更管理****
- 在版本控制中跟踪依赖项更改(例如,通过自动化拉取请求)。
- 进行定期代码评审,以确保更新不会引入新的漏洞。
培训和意识****
- 对开发和运营团队进行培训,让他们了解保持依赖项安全且最新的重要性。
- 提供有关如何有效使用依赖项管理和安全工具的培训。
漏洞响应计划****
- 针对依赖项中发现漏洞的情况,制定清晰的事件响应计划。
- 确保团队知道如何快速处理和修复安全问题。
通过遵循这些做法,可以显著降低因过时和有漏洞的依赖项带来的风险,并维护更安全的环境。
GitHub 能提供哪些帮助
GitHub 提供了多项安全功能,有助于维护代码库的安全性:
依赖项关系图****
- 提供项目依赖项的表格表示形式。
- 该图可帮助你了解项目的依赖项,GitHub 会使用此信息来识别存在漏洞的依赖项。
- 有关详细信息,请参阅“关于依赖关系图”。
依赖项审查
-
集成到 CI/CD 管道中,使你能够在每次拉取请求时捕获代码中不安全的依赖项。 有关详细信息,请参阅“关于依赖项评审”。
-
依赖项审查操作 是能够在拉取请求引入漏洞或未能更新有漏洞的依赖项时阻止拉取请求合并的工具。 如需详细信息,请参阅 关于依赖项评审 中的“关于 依赖项审查操作”。
Dependabot****
-
Dependabot alerts:Dependabot 会扫描依赖项以查找已知漏洞,一旦在仓库中发现漏洞,便会自动创建警报。**** 有关详细信息,请参阅“关于 Dependabot 警报”。
-
Dependabot security updates:自动创建拉取请求,将存在漏洞的依赖项更新为不存在已知漏洞的版本****。 这使你可以快速查看和合并修补程序。 有关详细信息,请参阅“关于 Dependabot 安全更新”。
-
Dependabot version updates:也可以配置为定期自动创建拉取请求,将依赖项更新到最新版本,确保你始终使用最新的包。**** 有关详细信息,请参阅 关于 Dependabot 版本更新。
-
分组更新****:通过将多个更新组合到一个拉取请求中,使审核和部署 Dependabot updates 的拉取请求变得更加容易。请参阅关于分组安全更新以及 优化 Dependabot 版本更新的拉取请求创建 中的示例
安全公告****
-
专用漏洞报告:支持维护者以非公开方式讨论、修复并发布其仓库的安全公告。**** 有关详细信息,请参阅“私下报告安全漏洞”。
-
GitHub Advisory Database:一个安全公告数据库,Dependabot 使用它来识别依赖项中的漏洞。**** 有关详细信息,请参阅“关于 GitHub 公告数据库”。
安全性概述
- 你可以关注安全概览页面上的仪表板,这些仪表板提供有关你的组织或企业的安全状况和进展的信息。 它可帮助用户识别需要关注的仓库,并监视其应用程序安全计划的运行状况。 如需更多信息,请参阅 关于安全概述。
安全策略
- 你可以在仓库中创建一个
SECURITY.md
文件,概述报告和处理安全问题的安全策略与流程。 有关详细信息,请参阅“将安全策略添加到存储库”。
如需获取关于在整个供应链中使用 GitHub 安全功能的更多指导,请参阅 保护端到端供应链。