开始保护您的应用程序
识别并修复应用程序源代码中的漏洞。 通过自动扫描代码以发现潜在的安全问题, 将安全测试集成到软件开发生命周期中。
您可以扫描各种编程语言和框架, 并检测诸如 SQL 注入、跨站脚本(XSS)和不安全依赖等漏洞。 安全扫描结果会显示在 GitLab UI 中, 您可以在此处查看并处理这些问题。
这些功能还可以与其他 GitLab 功能(如合并请求和流水线)集成, 以确保安全在整个开发过程中都得到重视。
有关概述,请参阅 采用 GitLab 应用程序安全
此过程是更大工作流程的一部分:
步骤 1:了解扫描
密钥检测扫描您的代码库,帮助防止密钥泄露。 它适用于所有编程语言。
依赖扫描分析应用程序的依赖项以发现已知漏洞。 它适用于某些语言和包管理器。
有关更多信息,请参阅:
步骤 2:选择要测试的项目
如果您是第一次设置 GitLab 安全扫描,应该从一个项目开始。 该项目应该:
- 使用您组织的典型编程语言和技术, 因为某些扫描功能在不同语言下的工作方式不同。
- 允许您尝试新设置(如必需的审批),而不会干扰团队的日常工作。 您可以创建一个高流量项目的副本,或选择一个不太繁忙的项目。
步骤 3:启用扫描
要识别项目中的泄露密钥和易受攻击的包, 请创建一个启用密钥检测和依赖扫描的合并请求。
此合并请求会更新您的 .gitlab-ci.yml 文件,
使扫描作为项目 CI/CD 流水线的一部分运行。
作为此 MR 的一部分,您可以更改设置以适应项目的布局或配置。 例如,您可能需要排除第三方代码的目录。
当您将此 MR 合并到默认分支后,系统会创建一个基线扫描。 此扫描会识别默认分支上已存在的漏洞。 然后,合并请求将突出显示任何新引入的问题。
如果没有基线扫描,合并请求将显示分支中的所有漏洞, 即使这些漏洞已存在于默认分支中。
有关更多信息,请参阅:
步骤 4:查看扫描结果
让团队习惯在合并请求和漏洞报告中查看安全发现。
建立漏洞分类工作流程。考虑创建标签和问题板 来帮助管理由漏洞创建的问题。通过问题板,所有利益相关者 都能对所有问题有统一的视图,并可以跟踪修复进度。
监控安全仪表板趋势,以评估修复现有漏洞 和防止引入新漏洞的成功程度。
有关更多信息,请参阅:
步骤 5:安排未来的扫描任务
使用扫描执行策略来强制执行计划的安全扫描任务。
这些计划任务独立运行,与您可能在合规框架流水线
或项目的 .gitlab-ci.yml 文件中定义的任何其他安全扫描无关。
计划扫描对于开发活动较少且流水线扫描不频繁的项目或重要分支最有用。
有关更多信息,请参阅:
步骤 6:限制新漏洞
为了强制执行所需的扫描类型并确保安全与工程之间的职责分离, 请使用扫描执行策略。
为了防止新漏洞合并到默认分支, 请创建合并请求审批策略。
在您熟悉扫描的工作方式后,可以选择:
- 遵循相同的步骤在更多项目中启用扫描。
- 同时在更多项目中强制执行扫描。
有关更多信息,请参阅:
步骤 7:持续扫描新漏洞
随着时间的推移,您需要确保不会引入新的漏洞。
- 要发现代码库中已存在的新发现的漏洞, 请运行定期的依赖和容器扫描。
- 要扫描生产集群中的容器镜像以发现安全漏洞, 请启用操作容器扫描。
- 启用其他扫描类型,如 SAST、DAST 或模糊测试。
- 为了在临时测试环境中进行 DAST 和 Web API 模糊测试, 考虑启用审查应用。
有关更多信息,请参阅: