DevSecOps 成熟度模型 2024
成熟度模式DevSecOps成熟度模型,帮助组织实施和改进DevSecOps实践。
Build
6构建过程不仅仅包括编译源代码,还包括管理(第三方)依赖、环境配置、运行单元测试等步骤。定义的构建过程已经将这些步骤自动化,以确保一致性。这可以通过 Jenkinsfile、Maven 或类似工具来完成。风险:在没有定义流程的情况下进行构建容易出错;例如,由于安全相关配置不正确的结果。在构建和测试工件时,会使用第三方系统、应用程序框架和第三方库。这些可能由于库的漏洞或在交付阶段被篡改而具有恶意性。风险:在构建和测试工件时,会使用第三方系统、应用框架和第三方库。这些可能因为库存在漏洞或在交付阶段被篡改而具有恶意性。固定工件版本可以确保只有在预期时才进行更改。风险:未经授权的工件操作可能难以发现。例如,这可能导致使用带有恶意代码的图像。此外,预期的重大更改,自动应用于使用的图像,可能会破坏功能。SBOM(软件清单)是一份列出软件应用程序或容器镜像中使用的所有组件、库和依赖项的文档。在构建过程中创建 SBOM 可以帮助确保应用程序的透明性、安全性和许可证合规性。风险:如果存在高或关键严重性的漏洞,需要知道带有该漏洞的制品部署在哪些依赖项中。对提交进行数字签名有助于防止未经授权的源代码篡改。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。要向 GitHub 仓库进行推送,您必须经过身份验证。需要注意的是,GitHub 不会验证经过身份验证的用户的电子邮件地址是否与提交中的地址匹配。为了让审阅者清楚地识别提交的作者,建议对提交进行签名。GitHub 操作,例如 semantic-release-action,并不会自动签署提交,因此可能会遇到问题。为了解决这个问题,您可以参考 DSOMM 的 workflow 文件夹中的一个可行配置示例,该示例演示了如何将 semantic release 操作与 planetscale/ghcommit-action 结合使用。为了增强安全性,建议考虑使用您的组织为特定仓库提供的细粒度个人访问令牌。在项目中将个人访问令牌(PAT)存储为秘密。风险:可能执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。标准:展示您的构建管道和示例工作(构建 测试)。| 显示每个团队成员都有访问权限。| 显示已修复的失败任务。鸣谢:AppSecure-nrw [Security Belts](https://github.com/AppSecure-nrw/security-belts/)
构建过程不仅仅包括编译源代码,还包括管理(第三方)依赖、环境配置、运行单元测试等步骤。定义好的构建过程会将这些步骤自动化,以确保一致性。这可以通过 Jenkinsfile、Maven 或类似工具来完成。风险:在没有定义流程的情况下进行构建容易出错;例如,由于安全相关配置不正确的结果。在构建和测试工件时,会使用第三方系统、应用程序框架和第三方库。这些可能由于库的漏洞或在交付阶段被篡改而具有恶意性。风险:在构建和测试工件时,会使用第三方系统、应用框架和第三方库。这些可能因为库存在漏洞或在交付阶段被篡改而具有恶意性。固定工件版本可以确保更改仅在预期情况下进行。风险:未经授权的工件操作可能难以发现。例如,这可能导致使用带有恶意代码的图像。此外,预期的重大更改,自动用于图像中,也可能破坏功能。SBOM(软件物料清单)是一份列出软件应用程序或容器镜像中使用的所有组件、库和依赖项的文档。在构建过程中创建 SBOM 可以帮助确保应用程序的透明性、安全性和许可证合规性。风险:如果存在高或关键严重性的漏洞,需要知道带有该漏洞的制品部署在哪些依赖项中。对提交进行数字签名有助于防止未经授权的源代码篡改。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。要向 GitHub 仓库进行推送,您必须经过身份验证。需要注意的是,GitHub 不会验证经过身份验证的用户的电子邮件地址是否与提交中的地址匹配。为了让审阅者清楚地识别提交的作者,建议对提交进行签名。GitHub 操作,例如 semantic-release-action,并不会自动签署提交,因此可能会遇到问题。为了解决这个问题,您可以参考 DSOMM 工作流文件夹中的一个可用配置示例,该示例演示了如何将 semantic release 操作与 planetscale/ghcommit-action 结合使用。为了增强安全性,请考虑使用您的组织为特定存储库提供的细粒度个人访问令牌(PAT)。将个人访问令牌(PAT)作为机密存储在您的项目中。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。标准:在构建和测试阶段的每个步骤都在独立的虚拟环境中进行,之后该环境会被销毁。
构建过程不仅仅包括编译源代码,还包括管理(第三方)依赖、环境配置、运行单元测试等步骤。定义的构建过程已经将这些步骤自动化,以确保一致性。这可以通过 Jenkinsfile、Maven 或类似工具来完成。风险:在没有定义流程的情况下进行构建容易出错;例如,由于安全相关配置不正确的结果。在构建和测试工件时,会使用第三方系统、应用程序框架和第三方库。这些可能由于库的漏洞或在交付阶段被篡改而具有恶意性。风险:在构建和测试工件时,会使用第三方系统、应用框架和第三方库。这些可能因为库存在漏洞或在交付阶段被篡改而具有恶意性。固定工件版本可以确保只有在预期时才进行更改。风险:未经授权的工件操作可能难以发现。例如,这可能导致使用带有恶意代码的图像。此外,预期的重大更改,自动用于图像中,也可能破坏功能。SBOM(软件物料清单)是一份列出软件应用程序或容器镜像中使用的所有组件、库和依赖项的文档。在构建过程中创建 SBOM 可以帮助确保应用程序的透明性、安全性和许可证合规性。风险:如果存在高或关键严重性的漏洞,需要知道带有该漏洞的制品部署在哪些依赖项中。对提交进行数字签名有助于防止未经授权的源代码篡改。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。要向 GitHub 仓库进行推送,您必须经过身份验证。需要注意的是,GitHub 不会验证经过身份验证的用户的电子邮件地址是否与提交中的地址匹配。为了让审阅者清楚地识别提交的作者,建议对提交进行签名。GitHub 操作,例如 semantic-release-action,并不会自动签署提交,因此可能会遇到问题。为了解决这个问题,您可以参考 DSOMM 的 workflow 文件夹中的一个可用配置示例,该示例演示了如何将 semantic release 操作与 planetscale/ghcommit-action 结合使用。为了增强安全性,请考虑使用您的组织为特定存储库提供的细粒度个人访问令牌(PAT)。将个人访问令牌(PAT)作为机密存储在您的项目中。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。
构建过程不仅仅包括编译源代码,还包括管理(第三方)依赖、环境配置、运行单元测试等步骤。定义好的构建过程会将这些步骤自动化,以确保一致性。这可以通过 Jenkinsfile、Maven 或类似工具来完成。风险:在没有定义流程的情况下进行构建容易出错;例如,由于安全相关配置不正确的结果。在构建和测试工件时,会使用第三方系统、应用程序框架和第三方库。这些可能由于库的漏洞或在交付阶段被篡改而具有恶意性。风险:在构建和测试工件时,会使用第三方系统、应用框架和第三方库。这些可能因为库存在漏洞或在交付阶段被篡改而具有恶意性。工件固定可以确保更改仅在预期时进行。风险:工件的未授权操作可能很难被发现。例如,这可能导致使用带有恶意代码的图像。此外,预期的重大更改,自动用于图像中,也可能破坏功能。SBOM(软件物料清单)是一份列出软件应用程序或容器镜像中使用的所有组件、库和依赖项的文档。在构建过程中创建 SBOM 可以帮助确保应用程序的透明性、安全性和许可证合规性。风险:如果存在高或关键严重性的漏洞,需要知道带有该漏洞的制品部署在哪些依赖项中。对提交进行数字签名有助于防止未经授权的源代码篡改。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。要向 GitHub 仓库进行推送,您必须经过身份验证。需要注意的是,GitHub 不会验证经过身份验证的用户的电子邮件地址是否与提交中的地址匹配。为了让审阅者清楚地识别提交的作者,建议对提交进行签名。GitHub 操作,例如 semantic-release-action,并不会自动签署提交,因此可能会遇到问题。为了解决这个问题,您可以参考 DSOMM 的 workflow 文件夹中的一个可用配置示例,该示例演示了如何将 semantic release 操作与 planetscale/ghcommit-action 一起使用。为了增强安全性,请考虑使用您的组织为特定存储库提供的细粒度个人访问令牌。在项目中将个人访问令牌(PAT)存储为机密。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。标准:在构建过程中创建组件的SBOM(例如应用程序和容器镜像内容)。
构建过程不仅仅包括编译源代码,还包括管理(第三方)依赖、环境配置、运行单元测试等步骤。定义的构建过程已经将这些步骤自动化,以确保一致性。这可以通过 Jenkinsfile、Maven 或类似工具来完成。风险:在没有定义流程的情况下进行构建容易出错;例如,由于安全相关配置不正确的结果。在构建和测试工件时,会使用第三方系统、应用程序框架和第三方库。这些可能由于库的漏洞或在交付阶段被篡改而具有恶意性。风险:在构建和测试工件时,会使用第三方系统、应用框架和第三方库。这些可能因为库存在漏洞或在交付阶段被篡改而具有恶意性。固定工件版本可以确保只有在预期时才进行更改。风险:未经授权的工件操作可能难以发现。例如,这可能导致使用带有恶意代码的图像。此外,预期的重大更改,自动用于图像中,也可能破坏功能。SBOM(软件物料清单)是一份列出软件应用程序或容器镜像中使用的所有组件、库和依赖项的文档。在构建过程中创建 SBOM 可以帮助确保应用程序的透明性、安全性和许可证合规性。风险:如果存在高或关键严重性的漏洞,需要知道带有该漏洞的制品部署在哪些依赖项中。对提交进行数字签名有助于防止未经授权的源代码篡改。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。要向 GitHub 仓库进行推送,您必须经过身份验证。需要注意的是,GitHub 不会验证经过身份验证的用户的电子邮件地址是否与提交中的地址匹配。为了让审阅者清楚地识别提交的作者,建议对提交进行签名。GitHub 操作,例如 semantic-release-action,并不会自动签署提交,因此可能会遇到问题。为了解决这个问题,您可以参考 DSOMM 的 workflow 文件夹中的一个可用配置示例,该示例演示了如何将 semantic release 操作与 planetscale/ghcommit-action 结合使用。为了增强安全性,请考虑使用您的组织为特定存储库提供的细粒度个人访问令牌(PAT)。将个人访问令牌(PAT)作为机密存储在您的项目中。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。标准:对提交进行数字签名有助于防止未经授权的源代码篡改。
构建过程不仅仅包括编译源代码,还包括管理(第三方)依赖、环境配置、运行单元测试等步骤。定义明确的构建流程可以将这些步骤自动化,以确保一致性。这可以通过 Jenkinsfile、Maven 或类似工具来实现。风险:没有定义流程进行构建容易出错;例如,由于安全相关配置不正确的结果。在构建和测试工件时,会使用第三方系统、应用程序框架和第三方库。这些可能由于库的漏洞或在交付阶段被篡改而具有恶意性。风险:在构建和测试工件时,会使用第三方系统、应用框架和第三方库。这些可能因为库存在漏洞或在交付阶段被篡改而具有恶意性。工件固定可以确保更改仅在预期时进行。风险:工件的未授权操作可能很难被发现。例如,这可能导致使用带有恶意代码的图像。此外,预期的重大更改,自动用于图像中,也可能破坏功能。SBOM(软件物料清单)是一份列出软件应用程序或容器镜像中使用的所有组件、库和依赖项的文档。在构建过程中创建 SBOM 可以帮助确保应用程序的透明性、安全性和许可证合规性。风险:如果存在高或关键严重性的漏洞,需要知道带有该漏洞的制品部署在哪些依赖项中。对提交进行数字签名有助于防止未经授权的源代码篡改。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。要向 GitHub 仓库进行推送,您必须经过身份验证。需要注意的是,GitHub 不会验证经过身份验证的用户的电子邮件地址是否与提交中的地址匹配。为了让审阅者清楚地识别提交的作者,建议对提交进行签名。GitHub 操作,例如 semantic-release-action,并不会自动签署提交,因此可能会遇到问题。为了解决这个问题,您可以参考 DSOMM 的 workflow 文件夹中的一个可用配置示例,该示例演示了如何将 semantic release 操作与 planetscale/ghcommit-action 结合使用。为了增强安全性,请考虑使用您的组织为特定存储库提供的细粒度个人访问令牌(PAT)。将个人访问令牌(PAT)存储为项目中的机密。风险:执行或使用恶意代码或数据,例如通过可执行文件、库或容器镜像。标准:在构建的所有步骤中,尤其是 Docker 镜像上进行数字签名,有助于确保它们的完整性和真实性。