写点什么

7 步提升私有化部署的极狐 GitLab 实例安全等级

作者:极狐GitLab
  • 2023-05-31
    江西
  • 本文字数:2034 字

    阅读完需:约 7 分钟

7 步提升私有化部署的极狐GitLab 实例安全等级

本文来源:about.gitlab.com

作者:Ayoub Fandi 

译者:极狐(GitLab) 市场部内容团队


“系统安全程度取决于系统最薄弱的环节” 是一句非常易懂的谚语,好比安全防护的木桶效应。


如果攻击者找到了入侵方法,就会利用安全配置文件中的任何漏洞。「强化」,即关闭未使用功能,并把对安全有影响的设置进行调整的过程,对于限制攻击面并减少潜在攻击向量是非常重要的。


「强化」可以确保应用程序(比如极狐 GitLab)尽可能的安全。目标很简单:保留高效工作所需功能的同时,将风险最小化。


指导准则


以下列举的安全活动需要和其中的一项或者多项结合使用。可以尝试组合尽可能多的方法。

分层安全,纵深防御


分层安全背后的逻辑很简单:尽可能尝试将多种安全方法结合起来。例如,有两种方式实现安全,则应该实现两种,而非只实现一种。


举个例子,如果想保障服务访问安全,可将复杂密码、硬件访问令牌及多因素认证结合起来。这种方法也被称为纵深防御

保密 ≠ 安全


“如果某些东西被隐藏,那么它会变得更安全”的想法,在现如今的信息安全世界里,是行不通的。


当前攻击者的扫描能力足够强大,能够突破严密的安全防控。任何人都很容易对系统的开放端口进行扫描,例如将 SSH 的 22 端口修改为其他端口,诸如 Nmap 之类的网络工具就可以扫描出来。

减少攻击面


极狐 GitLab/GitLab 包含众多组件、服务及依赖,提供强大的产品功能。但拥有的组件越多,攻击者的攻击入口就越多。所以牢记一个法则:禁用运行应用程序不需要的服务。如果有未使用功能,禁用相关服务将减少潜在攻击面,更加安全。


7 步保障私有化部署实例安全


让我们通过简单 7 步,快速强化私有化部署实例。这些速效措施是保障安全的重要开端。额外细节及进一步指导,可参考官方文档

第一步:开启多因素认证


管理员 → 设置 → 通用 → 登陆限制


确保勾选双重认证(Two-Factor authentication,2FA)选项。双因素宽限期的默认值是 48h,将其调整为一个更低的值,比如 8h。


确认勾选管理员模式。具有管理员访问权限的用户,将需要额外的认证操作来执行管理任务。启用 2FA 后,将需要用户进行额外的 2FA 认证操作。


第二步:加强额外的注册检查


管理员 → 设置 → 通用 → 注册限制


确保勾选启用注册功能。


在电子邮件确认设置下,确认开启高级设置。这将要求用户在允许访问其帐户之前,在注册过程中验证其电子邮件地址。


如果强制执行其他身份验证技术,则 12 个字符的最小密码长度(字符数)默认设置是比较合适的。可用的密码复杂度选项包括需包含数字、大小写字母及特殊字符。是否启用密码复杂度功能,取决于你公司内部的密码标准。


如果所有用户邮箱地址都位于单一域名(比如 example.com ) 下面,可在注册限制里,将其添加到允许域名一栏中。这将阻止非此域名下的邮箱进行注册。


第三步:限制群组和项目可见性


管理员 → 设置 → 通用 → 可见性和访问控制


对于新创建的项目和群组,其默认项目可见性和群组可见性都应该设置为私有。只有被赋予特定访问权限的用户,才能访问特定资源。如有必要或在创建新项目或组时,可以对此进行调整。


这能够确保默认模式安全,防止信息意外泄漏。

第四步:强化 SSH 设置


管理员 → 设置 → 通用 → 可见性和访问控制


通常,在启用 Git 访问协议中选择 Both SSH and HTTP(S)。如果用户不用其中某一个 Git 协议,将其设置为 Only SSH 或者 Only HTTP(S)。


这可以通过限制未使用协议来限制危害可能性,减少攻击面。对于 SSH key 的类型,推荐使用的算法有:


  • ED25519;

  • RSA;

  • ECDSA。



当配置默认类型及 SSH key 长度时,请记住上述列表。

第五步:审核账户和限制设置


管理员 → 设置 → 通用 → 账户和限制设置


这部分允许限制附件、推送、导出、导入及仓库的大小。对于特定大小(MB)可以根据公司内部策略来设置并审核。


用户会话时长(分钟)及 SSH key 和所有访问令牌时长(天)也支持配置,以确保时长与公司内部策略相一致并满足安全最佳实践。


第六步:保障 CI 密钥


管理员 → 设置 → CI


密码、令牌、密钥及其他需要任何保护级别保护的敏感信息,都不应该以纯文本形式存储。相反,应该实施加密容器技术(密钥管理器),比如 GCP Secret Manager 及 HashiCorp Vault,许多极狐 GitLab 功能都可以利用 Vault 。



对于外部沟通,需确保 CI/CD 流程中任何外部连接都使用加密通道。强烈推荐使用 TLS 1.2 及以上版本,且在可能的情况下使用 mTLS。

第七步:保护所有分支的流水线


管理员 → 设置 → CI


流水线是工作的一部分,它分阶段执行步骤,代表用户自动化执行任务,是 CI/CD 的核心组成部分。默认情况下,只有默认分支会获得受保护的流水线。遵循这些简单步骤,对其他分支配置同等级别的安全措施,将大大强化你的流水线。


一旦流水线运行起来,代码就会被部署到一个环境上。要限制与该环境的交互,保护它免受未经授权的用户的影响,可将关键环境设为“受保护”。


本文从不同维度阐述了如何强化加固私有化部署极狐 GitLab/GitLab 实例。如果想要学习更多关于极狐 GitLab/GitLab 是如何保障安全的,可查阅安全文档 ,希望能够对你有帮助。

发布于: 2023-05-31阅读数: 7
用户头像

极狐GitLab

关注

开源开放,人人贡献 2021-05-19 加入

开放式一体化DevOps平台,助力行业高速协同增长!

评论

发布
暂无评论
7 步提升私有化部署的极狐GitLab 实例安全等级_DevOps_极狐GitLab_InfoQ写作社区