DevSecOps 成熟度模型 2024
成熟度模式DevSecOps成熟度模型,帮助组织实施和改进DevSecOps实践。
Deployment
11定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且产物符合这些标准。风险:部署不安全或功能异常的产物。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件,例如应用程序。不了解生产环境中存在的应用程序会导致无法对其进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果从“生产制品清单”实施,也同样适用。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量来设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或工件(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的清单(手动或自动收集)。风险:如果存在高或严重等级的漏洞,需要知道该漏洞所在的工件(例如容器镜像)部署的位置。加密确保凭证的机密性,例如防止未授权访问文件系统。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**的风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝绿部署策略可以通过简化回滚流程来提高应用程序的可用性并降低部署风险,以防部署失败。风险:新版本的工件可能存在未知缺陷。标准:定义部署流程可以确保在功能、安全性、合规性和性能方面有已建立的标准,并且工件符合这些标准。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且制品符合这些标准。风险:部署不安全或功能异常的制品。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,依赖跟踪。风险:组织不了解生产环境中的组件,如应用程序。不知道生产环境中已有的应用程序会导致无法进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果实施,还可从“生产工件清单”中移除。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或秘密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未经授权访问存储在源代码或制品(例如容器镜像)中的秘密。已经存在一个记录在生产中使用的工件(如容器镜像)的清单(手动或自动收集)。风险:如果存在高或严重等级的漏洞,需要知道该漏洞所在的工件(例如容器镜像)部署的位置。加密确保凭证的机密性,例如防止未授权访问文件系统。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。执行无需停机的部署*。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚流程来降低部署风险,以防部署失败。风险:新工件的版本可能存在未知缺陷。标准:存在生产环境中组件的文档化清单(手动或自动收集)。例如,一份手动创建的生产环境应用程序文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如存储在 S3 桶/Git 仓库中的 JSON 文件,或在依赖跟踪中。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且制品符合这些标准。风险:部署不安全或功能异常的制品。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件,例如应用程序。不了解生产环境中存在的应用程序会导致无法对其进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果实施,还可从“生产工件清单”中移除。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量来设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或工件(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的清单(手动或自动收集)。风险:如果存在高或严重等级的漏洞,需要知道该漏洞所在的工件(例如容器镜像)部署的位置。加密确保凭证的机密性,例如防止未授权访问文件系统。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**的风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚过程在部署失败时降低部署风险。风险:新版本的工件可能存在未知的缺陷。标准:明确的退役流程确保删除未使用的应用程序。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且制品符合这些标准。风险:部署不安全或功能异常的制品。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件,例如应用程序。不了解生产环境中存在的应用程序会导致无法对其进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果从“生产制品清单”实施,也同样适用。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中制品(如容器镜像)的清单(可手动或自动收集)。风险:如果存在高或严重漏洞,需要知道带有该漏洞的制品(例如容器镜像)部署在哪里。加密确保凭证的机密性,例如防止文件系统上的未经授权访问。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。已有记录的依赖清单存在于容器镜像和容器等工件中。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚流程在部署失败时降低部署风险。风险:新构件的版本可能存在未知缺陷。标准:通过特定平台功能或秘密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且制品符合这些标准。风险:部署不安全或功能异常的制品。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件,例如应用程序。不了解生产环境中存在的应用程序会导致无法对其进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果从“生产制品清单”实施,也同样适用。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的清单(手动或自动收集)。风险:如果存在高或严重等级的漏洞,需要知道该漏洞所在的工件(例如容器镜像)部署位置。加密确保凭证的机密性,例如防止未授权访问文件系统。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚流程在部署失败时降低部署风险。风险:新版本的工件可能存在未知缺陷。标准:评估每个组件的来源以确保可信。例如,源代码、所包括的开发者数量、维护者用来防止维护者账户被盗用的邮箱配置、错字仿冒等……创建镜像评估标准,对镜像进行评估,并创建工件/容器镜像/虚拟机镜像的白名单。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且制品符合这些标准。风险:部署不安全或功能异常的制品。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件,例如应用程序。不了解生产环境中存在的应用程序会导致无法对其进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果从“生产制品清单”实施,也同样适用。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的清单(手动或自动收集)。风险:如果存在高或严重等级的漏洞,需要知道该漏洞所在的工件(例如容器镜像)部署的位置。加密确保凭证的机密性,例如防止未授权访问文件系统。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以通过简化回滚流程来提高应用程序的可用性并降低部署风险,如果部署失败,可以快速回退。风险:新版本的工件可能存在未知缺陷。标准:加密确保凭证的机密性,例如防止文件系统上的未经授权访问。此外,使用凭证管理系统可以帮助保护凭证。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且产物符合这些标准。风险:部署不安全或功能异常的产物。生产环境中的组件有记录在案的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件(如应用程序)。不了解生产环境中现有的应用程序会导致无法进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果实施,还可从“生产工件清单”中移除。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中制品(如容器镜像)的清单(可手动或自动收集)。风险:如果存在高或严重漏洞,需要知道带有该漏洞的制品(例如容器镜像)部署在哪里。加密确保凭证的机密性,例如防止文件系统上的未经授权访问。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝绿部署策略可以提高应用程序的可用性,并通过简化回滚流程来降低部署失败时的风险。风险:新工件的版本可能存在未知缺陷。标准:存在一份关于镜像和容器中使用的依赖项的文档化清单。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且制品符合这些标准。风险:部署不安全或功能异常的制品。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件,例如应用程序。不了解生产环境中存在的应用程序会导致无法对其进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果实施,还可从“生产工件清单”中移除。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的文档清单(可以手动或自动收集)。风险:如果存在高危或严重的漏洞,则需要知道具有该漏洞的工件(例如容器镜像)部署的位置。加密可确保凭证的机密性,例如防止未经授权的文件系统访问。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**的风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚流程在部署失败时降低部署风险。风险:新的工件版本可能存在未知缺陷。标准:执行无停机的部署。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且产物符合这些标准。风险:部署不安全或功能异常的产物。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件(如应用程序)。不了解生产环境中现有的应用程序会导致无法进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果实施,还可从“生产工件清单”中移除。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的文档化清单(手动或自动收集)。风险:如果存在高危或严重的漏洞,则需要知道具有该漏洞的工件(例如容器镜像)部署的位置。加密可确保凭证的机密性,例如防止未经授权的文件系统访问。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以通过简化回滚流程来提高应用程序的可用性并减少部署风险,如果部署失败,可以快速回滚。风险:新构建的版本可能存在未知缺陷。标准:只构建一次的工件并部署到不同环境意味着只有经过测试的工件才能进入生产环境。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且产物符合这些标准。风险:部署不安全或功能异常的产物。生产环境中的组件有记录在案的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,或依赖跟踪。风险:组织未意识到生产环境中的组件(如应用程序)。不了解生产环境中现有的应用程序会导致无法进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果实施,还可从“生产工件清单”中移除。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或机密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未授权访问存储在源代码或制品(例如容器镜像)中的机密。已经存在一个记录在生产中使用的工件(如容器镜像)的清单(手动或自动收集)。风险:如果存在高或严重等级的漏洞,需要知道该漏洞所在的工件(例如容器镜像)部署的位置。加密确保凭证的机密性,例如防止未授权访问文件系统。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**的风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝绿部署策略可以提高应用程序的可用性,并通过简化回滚过程来降低部署风险,如果部署失败。风险:新版本的构件可能存在未知缺陷。标准:使用环境独立的配置参数,即静态功能开关,可以降低在生产中意外启用不安全功能的风险。
定义部署流程可以确保在功能、安全性、合规性和性能方面有既定的标准,并且产物符合这些标准。风险:部署不安全或功能异常的产物。生产环境中的组件有一个已记录的清单(可以手动或自动收集)。例如,通过手动创建的包含生产环境中应用程序的文档。在 Kubernetes 集群中,命名空间可以被自动收集和记录,例如,在 S3 存储桶/ Git 仓库中的 JSON 文件,依赖跟踪。风险:组织不了解生产环境中的组件,如应用程序。不知道生产环境中已有的应用程序会导致无法进行评估。一个明确的退役流程可确保将未使用的应用程序从“生产组件清单”中移除,如果从“生产制品清单”实施,也同样适用。风险:未使用的应用程序无法得到维护,可能存在漏洞。一旦被利用,它们可能被用来攻击其他应用程序或在组织内部进行横向移动。通过使用特定平台功能或秘密管理系统(例如 Kubernetes secrets 或 Hashicorp Vault)存储的环境变量设置配置参数。风险:通过进程列表(例如 ps -ef)未经授权访问存储在源代码或制品(例如容器镜像)中的秘密。已经存在一个记录在生产中使用的工件(如容器镜像)的文档清单(可以手动或自动收集)。风险:如果存在高危或严重的漏洞,则需要知道具有该漏洞的工件(例如容器镜像)部署的位置。加密可确保凭证的机密性,例如防止未经授权的文件系统访问。此外,使用凭证管理系统可以帮助保护凭证。风险:参数通常用于设置凭证,例如通过启动容器或应用程序;这些参数通常可以被任何列出目标系统上运行进程的人看到。存在用于记录工件(如容器镜像和容器)中使用的依赖项的文档化清单。风险:在生产环境中延迟识别组件及其漏洞。如果组织已知某个漏洞,则需要知道带有该漏洞的制品部署在何处,以及其依赖关系。**执行无停机部署**。风险:在进行部署时,应用程序无法访问。一次构建工件并将其部署到不同环境意味着只有经过测试的工件才能进入生产环境。风险:为不同环境构建工件意味着未经测试的工件可能会进入生产环境。使用环境独立的配置参数,称为静态功能开关,可以降低在生产环境中意外启用不安全功能的风险。风险:使用环境变量来启用或禁用功能可能导致功能在生产环境中被意外启用的情况。使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚过程来降低部署风险,以防部署失败。风险:新版本的工件可能存在未知缺陷。标准:使用蓝/绿部署策略可以提高应用程序的可用性,并通过简化回滚过程来降低部署风险,以防部署失败。