如何使用GitLab支持ISO 27001合规
翻译:RangWu
原文:《How GitLab can support your ISO 27001 compliance journey — Joseph Longo》
作为一体化平台,通过GitLab可以很容易实现DevSecOps全生命周期管理。GitLab使开发人员能够更快地构建更好的软件应用。但是,它的能力还不仅限于DevSecOps。
2022年10月,ISO组织发布了ISO 27001标准的最新版本。ISO/IEC 27001:2022与其之前的版本相比,包含了一些变化,其中在附件A中新增了对安全编码和配置管理的要求。
利用GitLab产品的功能特性来支持GitLab企业内部的安全合规计划,这是我们内部称为DogFooding的企业文化。GitLab维护的合规和保证凭证概述可以在GitLab的信任中心页面查看。
接下来我们可以一起回顾,如何使用GitLab以支持您的ISO 27001合规之旅。
1. 组织控制
控制ID | 控制描述 |
---|---|
5.3 职责分离 | 应分离冲突职责和冲突责任领域。 |
5.15 访问控制 | 应根据业务和信息安全要求建立和实施控制物理和逻辑访问信息和其他相关资产的规则。 |
5.16 身份管理 | 应管理身份的全部生命周期。 |
8.2 特权访问权 | 应限制和管理特权访问权的分配和使用。 |
8.4 对源代码的访问 | 应适当管理对源代码、开发工具和软件库的读写访问。 |
通过GitLab,您可以在将用户添加到项目或群组时为他们分配角色。用户的角色确定他们在GitLab实例内可以执行的操作。可分配的角色如下:
- 访客(仅限私有和内部项目)
- 报告者
- 开发人员
- 维护者
- 所有者
- 最小访问权限(仅适用于顶级组)
GitLab的角色使您能够根据最小特权原则和您的业务和信息安全要求来限制用户的权限。
通过GITLAB SAML SSO集成,GitLab使您能够集中进行身份验证和责任授权,从而支持GitLab实例的身份验证和授权。GitLab可以与多种身份提供者集成(如Auth0、ADFS、Okta、Oauth2.0、LDAP),以支持客户多样的技术栈。GitLab还支持跨域身份管理系统(SCIM)。通过GitLab的SSO和SCIM集成,您可以以安全和高效的方式自动化用户身份的生命周期管理。
注意: ISO/IEC 27001:2022附件A中关于技术控制的8.2和8.4也包含在上面的图表中,因为它们与组织控制的5.3、5.15和5.16密切相关。GitLab的功能同样可用于支持这些控制要求。
控制ID | 控制描述 |
---|---|
5.8 项目管理中的信息安全 | 应将信息安全集成到项目管理中。 |
使用GitLab,您可以使用我们的计划工具来支持项目管理工作,并确保在项目生命周期的所有阶段都适当考虑了信息安全。
GitLab的团队计划功能允许用户从构思到组织、计划、协调和跟踪项目工作。
史诗、议题和任务可用于构思协作、解决问题以及和信息安全团队的工作协同。描述模板和检查项使用户能够将一致的信息描述和工作流程应用到议题或合并请求上。这些模板可以很好的将信息安全一致地整合到项目管理生命周期中。
标签允许用户根据自己的要求自定义议题的类型。为支持信息安全,标签可用于标识与项目相关的风险级别、项目所处的阶段,或项目对应的信息安全团队。范围标签是一种类似K-V键值对的标签,具有排他性,可防止议题同时具备逻辑冲突的标签(如议题具备devops::configure标签,它就不能同时具备devops::create标签)。在GitLab中,可以利用范围标签来标识分配给不同团队的工作、工作所在的项目阶段以及与工作相关的产品或功能集。
2. 技术控制
控制ID | 控制描述 |
---|---|
8.8 技术漏洞的管理 | 应获取信息系统中技术漏洞的信息,评估组织对这些漏洞的曝露,并采取适当的措施。 |
8.9 配置管理 | 应建立、记录、实施、监控和审查硬件、软件、服务和网络的配置,包括安全配置。 |
8.25 安全开发生命周期 | 应建立和应用软件和系统安全开发的规则。 |
8.26 应用安全要求 | 在开发或采购应用程序时,应确定、规定和批准信息安全要求。 |
8.27 安全系统架构和工程原则 | 应建立、记录、维护和应用到任何信息系统开发活动中的安全系统工程原则。 |
使用GitLab,您可以存储您的硬件和软件配置,保持版本控制,通过合并请求更新您的配置,并利用GitLab的CI/CD流水线将这些配置推送到您的应用程序和基础设施。GitLab使组织能够通过单一平台实施GitOps。
GitLab的基础设施即代码扫描功能使您能够扫描您的IaC配置文件以查找已知漏洞。GitLab的IaC扫描支持多种IaC配置文件和语言,使其适应不同的技术栈。
对于合规专业人员,GitLab使您能够通过合规框架和合规流水线实施统一的、强制的自动化流程,从而支持您的安全规范,并促进遵守组织内部和外部的合规要求。
对于Ultimate(旗舰版)客户,GitLab的合规中心提供了对组合规中项目中应用的不同合规框架的集中视图。您可以看到您的项目是否符合GitLab标准。
控制ID | 控制描述 |
---|---|
8.15 记录 | 应生成、存储、保护和分析记录活动、异常、故障和其他相关事件的记录。 |
8.16 监控活动控制 | 应监控网络、系统和应用程序以寻找异常行为,并采取适当措施评估潜在的信息安全事件。 |
使用GitLab,您可以使用审计事件来跟踪重要事件,包括谁执行了相关操作以及何时执行的。审计事件涵盖了广泛的类别,包括:
- 群组管理
- 身份验证和授权
- 用户管理
- 合规和安全性
- CI/CD
- GitLab Runner
对于Ultimate(旗舰版)客户,可以启用审计事件流。审计事件流使用户能够为顶级组或实例设置流目的地,以接收有关组、子组和项目的所有审计事件的结构化JSON。
控制ID | 控制描述 |
---|---|
8.28 安全编码 | 应将安全编码原则应用于软件开发。 |
8.29 开发和验收中的安全测试 | 应在开发生命周期中定义和实施安全测试流程。 |
您可以使用GitLab的安全阶段中的功能来增强您的软件开发生命周期并提高产品的安全性。GitLab的Secure阶段功能包括:
以及更多!
敏感信息泄露是安全漏洞的主要问题之一。GitLab的秘钥检测功能可以扫描您的代码库,防止您的敏感信息被泄露。
GitLab的安全策略功能使用户能够自定义扫描执行策略和扫描结果策略。这些策略将安全阶段的扫描结果与合并请求批准功能结合,形成安全门禁,可以进一步满足合规要求。
综合来看,GitLab的安全功能为安全的软件开发生命周期程序打下了基础,并使您能够根据组织的要求实践安全编码原则。
控制ID | 控制描述 |
---|---|
8.32 变更管理 | 应按照变更管理程序对信息处理设施和信息系统的更改进行管理。 |
GitLab提供了许多功能,以支持全面的变更管理。
GitLab的源代码管理功能使用户能够使用受保护分支。受保护分支允许GitLab用户对重要分支施加限制,实现:
- 哪些用户可以将更改合并到分支
- 哪些用户可以推送到分支
- 用户是否可以强制推送到分支
- 当某些文件、文件夹发生变更时,是否需要相关负责人审核(代码所有者)
- 哪些用户可以取消保护分支的保护
代码库中的默认分支(如master、main分支)会自动指定为受保护分支。
合并请求(MR)是软件开发生命周期的核心组成部分。GitLab用户可以配置他们的合并请求,以便变更必须获得批准后才能合并。合并请求批准允许用户自定义审批流程,包括:
- 可以设置多条审批规则。
- 每条规则可以针对不同的分支生效。
- 每条规则可以设置不同的审核人、最小审核人数,即使他们没有代码库的合并权限。
- 代码所有者可以审批他们负责的文件、文件夹。
- 代码提交人、合并请求创建人不可参与评审。
正如之前提到的,议题和任务可用于记录和协作变更请求。描述模板使用户能够将一致的信息描述应用于议题或合并请求,实现对变更的统一管理。
3. 了解更多
作为一体化DevSecOps平台,GitLab支持更广泛的需求。ISO在2022年的ISO标准中增加了围绕安全编码和配置管理的附加控制。这表明认证机构对软件整体的安全性有了进一步关注。作为战略合作伙伴,GitLab可以帮助您更好的支持ISO 27001标准,并帮助您更快的开发更好的软件。
要了解更多信息,请查看我们的tutorials库。
如何使用GitLab支持ISO 27001合规