极狐 GitLab 实例加固的一般指南在主加固文档中有所概述。

以下文档总结了一些极狐 GitLab 实例加固的基本理念。虽然我们提到了极狐 GitLab,但在许多情况下,它们实际上可以适用于所有计算机系统。

分层安全

如果有两种方法可以实施安全性,则应同时实施这两种方法而不是仅仅一种。一个简单的例子是账户安全:

  1. 使用长而复杂且唯一的密码来保护账户。
  2. 实施第二因素身份验证流程以增加安全性。
  3. 使用硬件令牌作为第二因素。
  4. 针对失败的身份验证尝试锁定账户(至少在固定时间内)。
  5. 未使用特定时间段的账户应被禁用,强制执行这一点可以通过自动化或定期审核。

不要仅仅使用列表中的一项或两项,而是尽可能多地使用。这种理念可以应用于除了账户安全之外的其他领域——它应该应用于所有可能的领域。

消除通过隐蔽实现的安全性

通过隐蔽实现的安全性意味着由于担心潜在攻击者可能利用这些细节制定攻击策略而不讨论系统、服务或流程的某些元素。相反,系统应该被安全加固到一个这样的程度,即使其配置细节是公开的,系统仍然可以达到其可能的安全性。实际上,如果攻击者了解了计算机系统配置的细节,这不会给他们带来优势。通过隐蔽实现的安全性的一个缺点是,可能导致系统管理员产生一种虚假的安全感,以为系统比实际上更安全。

一个例子是运行服务在一个非标准的 TCP 端口。例如,服务器上的默认 SSH 守护进程端口是 TCP 端口 22,但可以配置 SSH 守护进程在另一个端口运行,例如 TCP 端口 2222。配置此项的管理员可能认为这样增加了系统的安全性,但通常攻击者会进行端口扫描以发现所有打开的端口,从而快速发现 SSH 服务,并消除任何预期的安全优势。

由于极狐 GitLab 是一个开源核心系统,所有配置选项都已被充分记录并成为公共信息,通过隐蔽实现安全性的理念违背了极狐 GitLab 的核心价值观——透明性。这些加固建议旨在公开,以帮助消除任何通过隐蔽实现的安全性。

攻击面减少

极狐 GitLab 是一个具有众多组件的大型系统。作为安全的一般规则,禁用未使用的系统有助于减少潜在攻击者可能用来进行攻击的“攻击面”。这也可能带来增加可用系统资源的附加优势。

例如,系统上有一个进程每五分钟启动一次并检查队列以获取输入,在执行检查时查询多个子进程。如果不使用该进程,则没有理由配置它,应将其禁用。如果攻击者发现了一个利用该进程的攻击向量,尽管您的组织没有使用它,攻击者可能会利用它。作为一般规则,您应禁用任何未使用的服务。

外部系统

在较大但仍加固的部署中,通常使用多个节点来处理极狐 GitLab 部署所需的负载。在这些情况下,使用外部、操作系统和配置选项的组合来设置防火墙规则。任何使用限制的选项只应开放到足以使子系统正常工作的程度。尽可能使用 TLS 加密进行网络传输。