维护依赖项的最佳做法
保持依赖项的最新状态对于维护安全的软件环境至关重要。 以下是一些建议:
**采用以安全为中心的依赖项管理工具**
-
使用并设置可扫描依赖项漏洞并自动建议更新的工具。
-
确保这些工具已集成到 CI/CD 管道中,以实现持续监控和更新。
-
在流程中遵循语义化版本控制,以避免破坏性更改。
**定期执行漏洞扫描和审计** -
定期安排依赖项审计和依赖项扫描,以识别过期或存在漏洞的依赖项。
**自动化安全修补程序管理** -
将依赖项管理工具配置为自动应用安全修补程序。
-
为关键安全更新设置自动化拉取请求,以便快速审查和合并。
**对依赖项的使用实施策略** -
实施策略以强制使用安全版本的依赖项。
-
使用工具在拉取请求引入漏洞或未更新存在漏洞的依赖项时,阻止其合并。
**在 CI/CD 中集成安全测试** -
将安全测试工具纳入 CI/CD 管道。
-
确保依赖项更新会自动进行安全合规性测试。
**使用锁定文件和依赖项固定** -
使用锁定文件(例如
package-lock.json、yarn.lock、Pipfile.lock)将依赖项固定到已知的安全版本。 -
定期更新并审查这些锁定文件,确保依赖项保持最新状态且不会引入意外的安全问题。
**监控安全公告** -
订阅你所使用语言和框架的安全公告。
-
将安全公告自动集成到开发工作流中,以便及时获知新的漏洞信息。
-
密切关注依赖项管理工具提供的仪表板。
-
注意关键更新,尤其是安全修补程序,并优先处理。
**版本控制与变更管理** -
在版本控制中跟踪依赖项更改(例如,通过自动化拉取请求)。
-
定期进行代码审查,以确保更新不会引入新的漏洞。
**培训与意识提升** -
教育开发和运维团队了解保持依赖项安全和最新的重要性。
-
提供有关如何有效使用依赖管理和安全工具的培训。
**漏洞响应计划** -
在依赖项中发现漏洞时,应制定清晰的事件响应计划。
-
确保团队知道如何快速处理和修复安全问题。
通过遵循这些做法,可以显著降低过期或存在漏洞的依赖项带来的风险,并维护更加安全的环境。
GitHub 的帮助方式
GitHub 提供了多项安全功能,有助于维护代码库的安全性:
**依赖项关系图**
-
提供项目依赖项的表格表示形式。
-
依赖关系图可以帮助你了解项目的依赖关系,GitHub 利用此图识别存在漏洞的依赖项。
-
有关详细信息,请参阅“关于依赖关系图”。
**依赖项检查** -
它已集成到你的 CI/CD 管道中,可在每次拉取请求时发现代码中的不安全依赖项。 有关详细信息,请参阅“关于依赖项评审”。
-
依赖项审查操作 是一款工具,当拉取请求引入漏洞或未更新存在漏洞的依赖项时,可阻止其合并。 有关详细信息,请参阅 关于依赖项评审 中“关于 依赖项审查操作”。
**Dependabot** -
**Dependabot alerts**:Dependabot 会扫描你的依赖项中已知的漏洞,并在仓库中发现漏洞时自动创建警报。 有关详细信息,请参阅“[AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)”。 -
**Dependabot security updates**:自动创建拉取请求,将存在漏洞的依赖项更新到没有已知漏洞的版本。 这使你可以快速审查并合并修复。 有关详细信息,请参阅“[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)”。 -
**Dependabot version updates**:还可以配置为定期自动创建拉取请求,将依赖项更新到最新版本,确保始终使用最新的软件包。 有关详细信息,请参阅“[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates)”。 -
**分组更新**:通过将多个更新合并为单个拉取请求,使审查和部署 Dependabot updates 更加便捷,详见 [AUTOTITLE](/code-security/dependabot/dependabot-version-updates/optimizing-pr-creation-version-updates#reducing-the-volume-of-dependabot-pull-requests) 中“[关于分组安全更新及示例](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-grouped-security-updates)” **安全公告** -
**GitHub Advisory Database**:安全公告数据库,Dependabot 利用该数据库识别依赖项中的漏洞。 有关详细信息,请参阅“[AUTOTITLE](/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database)”。 **安全性概述** -
你可以关注安全概览页面上的仪表板,这些仪表板提供有关你的组织或企业的安全状况和进展的信息。 它可帮助用户识别需要关注的仓库,并监视其应用程序安全计划的健康状况。 可以查看组织的安全风险摘要、安全警报的检测/修复和预防趋势以及 GitHub 安全功能的启用状态。 有关详细信息,请参阅“关于安全概述”。
**安全策略** -
你可以在存储库中创建
SECURITY.md文件,概述报告和处理安全问题的策略与流程。 有关详细信息,请参阅“将安全策略添加到存储库”。
有关使用 GitHub 安全功能在整个供应链中获取额外指导,请参阅 保护端到端供应链。