将Java应用程序现代化不是一次性事件。 每天都会公布新的 CVE,随着代码不断演进,也会出现新的 CWE 发现,而依赖项也会逐渐变得不再合规。 保持应用程序安全,就意味着持续发现并修复安全债务——这才是看待应用程序安全的长效思路。
GitHub Copilot现代化可帮助你实现两项功能:
- 安全评估 - 扫描代码,了解 ISO/IEC 5055 引导的 CWE 发现 ,并查找直接和可传递依赖项中的 CVE 漏洞 。
- 代码修正 - 生成执行计划以修复所选问题并为你应用修补程序。
可以在以下位置找到这些功能:
- Visual Studio Code - 本文中所述的交互式扫描和修复。
- 现代化 CLI - 安全性是 批量评估中的评估域之一,因此可以在单个运行中扫描应用程序组合。
扫描并解决Visual Studio Code中的安全问题
按照以下步骤,在同一流程中评估并修复安全问题。
1.启动安全扫描
在 GitHub Copilot modernization 窗格中,打开 快速入门 视图,然后选择 扫描并解决安全问题。
Copilot 会对你的项目进行安全域评估。 扫描涵盖:
- 一组特选的 CWE 规则与 ISO/IEC 5055 保持一致,分为六个类别: 文件与路径安全性、 注入攻击、 内存安全、 代码质量、 凭据和机密以及 并发和同步。
- 你的直接依赖和传递依赖中的CVE 发现结果,源自 GitHub 安全通告数据库。
有关 CWE 规则的完整目录和 CVE 覆盖范围的详细信息,请参阅 “了解评估范围”。
注释
CVE 检查无需GitHub身份验证即可工作,但匿名调用速率有限。 对于大型项目,请使用 gh auth login 登录,以避免限流。
2.查看报告
扫描完成后, 会打开评估报告 并显示安全发现。
若要控制显示哪些 CVE,请在评估配置中设置 Security: Minimum CVE Severity。 可接受的值为 critical、high、medium 和 low;默认值为 high。
3.选择要解决的问题并创建计划
选择要修复的问题类别。 操作按钮将更新以显示计数,例如“创建计划”(3)。 选择它以生成执行计划。
4. 查看计划
Copilot将执行计划写入 Markdown 文件,并在预览窗格中打开它,以便你可以在应用任何修补程序之前读取它。 该计划说明了 Copilot 如何对所选问题进行分组并加以处理。 它按依赖项对 CVE 问题进行分组,并按文件对 CWE 发现进行分组。 如果要更改范围或顺序,请直接编辑 Markdown 文件。
5. 执行计划
如果您对该计划感到满意,请在聊天中告诉 Copilot 执行该计划。 Copilot按组解决所选问题组,生成项目以验证每个更改,并在聊天中报告进度。 查看生成的差异,并提交你想保留的更改。
保持常绿
随着新的 CVE 被披露以及你的应用程序发生变化,安全债务会重新出现。 重新运行 扫描并解决安全问题 ,作为常规现代化节奏的一部分(例如,在每个发布分支上),因此你可以持续捕获和修复问题,而不是将它们累积到大升级中。
后续步骤
- 了解评估覆盖范围 - CWE 规则的完整目录和 CVE 覆盖范围详细信息。
- 与评估一起工作
- 使用 GitHub Copilot 现代化代理进行批量评估