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

news/2024/7/12 1:01:34 标签: devsecops, 软件供应链安全, devops, 安全, ssh

目录

指导准则

分层安全,纵深防御

保密 ≠ 安全

减少攻击面

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

第一步:开启多因素认证

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

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

第四步:强化 SSH 设置

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

第六步:保障 CI 密钥

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


本文来源: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是如何保障安全的,可查阅安全文档 ,希望能够对你有帮助。


http://www.niftyadmin.cn/n/380826.html

相关文章

5分钟带你了解,SAS硬盘和SATA硬盘的区别?

一、SAS和SATA的关系 SAS的接口技术可以向下兼容SATA。具体来说,二者的兼容性主要体现在物理层和协议层的兼容。 在物理层,SAS接口和SATA接口完全兼容,SATA硬盘可以直接使用在SAS的环境中,从接口标准上而言,SATA是SAS的…

【区间】剑指 Offer II 074. 合并区间

文章目录 一、题目1、题目描述2、基础框架3、原题链接 二、解题报告1、思路分析2、时间复杂度3、代码详解 三、本题小知识 一、题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返…

2023年6月18日DAMA-CDGA/CDGP数据治理认证报名指南

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

重学数据结构与算法

学习数据结构与算法的目的: 优化时间复杂度与空间复杂度 优化时间复杂度与空间复杂度 优化时间复杂度与空间复杂度 教程总纲: 暴力解法(模拟)、算法优化(递归/二分/排序/DP)、时刻转换(数据结构) 1.时间复杂度的核心方法论2.增删查——选取数据结构的基…

【Windows安全】授权初探:访问控制基础及应用

▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ 常见名词及缩写汇总主体对象权限(规则) 2️⃣ 常见概念访问控制及安全级别访问令牌(Access tokens)特权 (Privilege) - 线程相关的安全描述符(Security Descriptors,SD)访问控制…

论文阅读 —— 滤波激光SLAM

文章目录 1 FAST-LIO22 FAST-LIO3 EKF4 摘要第一句 1 FAST-LIO2 摘要: 本文介绍了FAST-LIO2:一种快速、稳健、通用的激光雷达惯性里程计框架。 FAST-LIO2建立在高效紧耦合迭代卡尔曼滤波器的基础上,有两个关键的新颖之处,可以实现…

弹性及其应用

弹性 衡量了买者和卖者对市场环境变化作出反应的程度大小是我们能够更精确的分析供给和需求 需求的价格弹性 给定百分之一的价格变化,需求量变量的百分数就是需求的价格弹性它衡量了一种物品的需求量对该物品价格变化作出反应的程度大小 需求价格弹性的决定因素…

【工具学习】- Python通过dxfgrabber库获取CAD信息

Python - dxfgrabber库获取CAD信息 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 一个有梦有戏的人 怒放吧德德 🌝分享学习心得,欢迎…