极狐 GitLab 17.2 重点功能解读
沿袭我们的月度发布传统,极狐GitLab 发布了 17.2 版本,该版本带来了针对 Kubernetes pod 和容器的日志流、通过请求变更来阻塞合并请求以及流水线执行策略类型等几十个重点功能的改进。下面是部分重点功能的详细解读。
学习资料
关于极狐 GitLab 的安装升级,可以查看官方指导文档。
17.2 容器镜像
17.2 Helm Chart
17.2 重点改进
针对 Kubernetes pod 和容器的日志流
在极狐 GitLab 16.1 中,我们引入了列举 Kubernetes Pod 和查看详情的功能。然而,你依旧不得不用第三方工具来对你的工作做进一步的分析。现在,极狐 GitLab 提供了基于 Pod 和容器的日志流视图,这样你就可以在不离开应用程序交付工具的前提下对遇到的问题进行快速定位排查,而且是可以跨环境的。
通过请求变更来阻塞合并请求
当你在实施代码审核时,你可以通过选择 批准、 评论或者 请求变更(从极狐 GitLab 16.9 引入)来完成审核过程。在审核过程中,你会发现有一些变更会阻止合并请求的合并,直到它们被解决,因此你可以将审核调整为请求变更状态。
现在,当请求变更时,极狐 GitLab 新增了一个合并检查,用来阻止合并请求的合并,直到要求的变更得到了解决。请求变更的问题可以在初始请求变更用户在重新审核合并请求后解决,随后对合并请求进行批准。如果初始的变更请求用户不能够对变更进行批准,那么任何一个具有合并权限的用户都可以绕过此变更请求,以便开发工作得以继续。
对 OAuth 2.0 设备认证授权的支持
现在,极狐 GitLab 支持 OAuth 2.0 设备认证授权工作流了。此流程能够使在浏览器交互受限的设备上也可以安全验证你的极狐 GitLab 身份。这使得设备授权流程非常适合那些尝试从无服务器、其他没有用户界面或者用户界面受限的设备上可以使用极狐 GitLab 服务的用户。
流水线执行策略类型
流水线执行策略类型是一个新的安全策略类型,能够强化与通用的 CI 作业、脚本以及指令相关的安全。流水线策略类型使安全和合规团队能够执行自定义的极狐 Gitlab 安全扫描模板、极狐 GitLab 或合作伙伴支持的 CI 模板、第三方安全扫描模板、通过 CI 作业的自定义规则报告,或者通过极狐 GitLab CI 自定义的脚本/规则。
流水线执行策略有两种类型:注入和覆盖。注入
模式将作业注入到项目的 CI/CD 流水线中。覆盖
模式会替换项目 CI/CD 流水线中的配置。
与所有极狐 GitLab 策略一样,策略执行可以由制定的安全和合规团队成功进行集中管理,他们负责创建和管理这些策略。
在流水线密钥检测中扩展了对自定义规则集的支持
我们在流水线密钥检测中扩展了对于自定义规则集的支持。
你可以使用两种新的“直传”类型:git 和 url 来配置远端规则集。这让管理工作流变得更加简单,诸如在多个项目中共享规则集配置。
你还可以使用这两种“直传”类型来对具有默认配置的远端规则集进行扩展。
分析器现在支持:
将至多 20 个“直传”链接到单一配置中,以替代预定义的规则。
在“直传”中引用环境变量。
当加载“直传”的时候设置超时时间。
在规则集配置中验证 TOML 语法。
极狐 GitLab 17.2 其他改进
从 Jira 开发面板中移除被删除的分支
之前,当使用极狐 GitLab Jira Cloud app 时,如果在极狐 GitLab 中删了一个分支,该分支会依旧展现在 Jira 的开发面板中。但是在极狐 GitLab 上选择那个分支就会返回 404。
从此版本开始,在极狐 GitLab 中被删除的分支也会从 Jira 开发面板中进行删除。
在 UI 中显示导入的条目
你可以从其他 SCM(源代码托管)将项目导入极狐 GitLab。然而,很难知道项目是否在极狐 GitLab 实例上导入或创建成功。
在此次发布中,我们为从 GitHub、Gitea、Bitbucket Server 和 Bitbucket Cloud 导入的项目添加了可视指示器,这些指示器显示创建者被识别为特定用户的地方。例如,合并请求、问题和注释。
为议题事件 webhook 添加类型属性
议题、任务、事件、需求、目标和关键结果都会在议题事件 webhook 类别下触发有效载荷。直到现在,还没有一种快速方法来确定在事件有效载荷中触发 webhook 的对象类型。此次发布,在议题事件、评论、机密议题事件以及表情事件触发器的负载中引入了一个 object_attributes.type
属性。
分离的 wiki 页面标题和路径字段
在极狐 GitLab 17.2 中,wiki 页面的标题和路径是分开的。在之前的版本中,如果页面的标题发生了变化,路径也会发生变化,这就会导致页面链接的中断。现在,如果页面的标题发生了变化,但是路径却不会发生变化。即使 wiki 页面的路径发生了变化,也会通过设置的自动重定向以防止链接中断。
用于 LFS 的纯 SSH 传输协议
时间回到 2021 年 9 月,git-lfs3.0.0 发布,正式支持使用 SSH 而不是 HTTP 作为传输协议。在 git-lfs3.0.0 之前,HTTP 是唯一支持的传输协议,也就意味在极狐 GitLab 上某些用户是无法使用 git-lfs 的。在此版本中,我们很高兴地宣布提供了将 SSH 作为传输协议的能力。
针对流水线计划的排序选项
现在你可以通过描述、引用、下一次运行、创建日期以及更新日期对流水线计划列表进行排序。
对受保护环境的部署和批准会触发审计事件
对部署事件的可访问记录,比如部署批准,对合规管理来说是非常必要的。直到现在,极狐 GitLab 并不提供部署相关的审计事件,因此合规经理不得不使用自定义的工具或直接在极狐 GitLab 查询这些数据。现在极狐 GitLab 提供了以下三种审计事件:
deployment_started
记录了是谁启动了部署作业以及什么时候启动的。deployment_approved
记录了是谁批准了部署作业以及什么时候批准的。deployment_rejected
记录了是谁拒绝了部署作业以及什么时候拒绝的。
API 安全测试现已支持签名认证请求
API 安全测试已经增加了对“覆盖”的支持,以便对扫描器发出的请求进行修改。然而,这些覆盖必须提前进行设置,而不能基于请求本身进行修改。极狐 GitLab 17.2 新增了一个“预请求脚本”(APISEC_PER_REQUEST_SCRIPT)以允许用户在每个请求发送之前调用一个 C# 脚本。这提供了对使用密钥对请求进行“签名”的支持,而且将其作为一种认证方式。
DAST 分析器更新
在极狐 GitLab 17.2 中,我们发布了以下更新:
我们新增了三个检查:
506.1 是一种被动检查,它可以识别那些很可能被 Polyfill.io CDN 接管的请求 URL。
Check 384.1 是一种被动检查,它可以识别会话固定弱点,这可能允许恶意行为者重用有效的会话标识符。
Check 16.11 是一种主动检查,它可以识别在生产服务器上是否启用了 TRACE HTTP 调试方法,这可能会无意中暴露敏感信息。
我们修复了以下缺陷以减少假阳性问题:
DAST 检查 614.1(敏感 cookie 未设置 Secure 属性)和 1004.1(敏感 cookie 未设置 HttpOnly 属性)在网站通过设置过去的过期日期清除 cookie 时,不再创建发现项。
DAST 检查 1336.1(服务器端模板注入)不再依赖于 500 HTTP 响应状态码来确定攻击是否成功。
我们还做了以下强化功能:
DAST 漏洞发现中的所有响应头现在都作为证据呈现。这些额外的上下文减少了在分类发现上所花费的时间。
现在对 Sitemap.xml 文件进行爬取,以获取额外的 URL,从而实现对目标网站的更好覆盖。
密钥推送保护已经在私有部署上可用,而且改进了对潜在泄露的告警
在极狐 GitLab 17.2 中,我们发布了以下更新:
对于私有化部署的客户来讲,密钥推送保护来到了 Beta。管理员在实例范围内启用此功能后,可按照官方文档描述在项目上开启推送保护。
文本内容中的潜在泄露告警已经通过添加更多细节进行了丰富,让被泄露的信息变得更加容易理解,比如泄露可能议题、史诗故事或者 MR 的描述或评论。
扩展了“扫描执行策略”以便为每一个极狐 GitLab 分析器执行最新的模版
当定义策略规则时,扫描执行策略已经进行了扩展以允许你在极狐 GitLab 的 默认和 最新模板之间进行选择。针对特定的安全分析器,尽管 默认模板真实反映了当前行为,但你也需要将策略升级到 最新以使用仅存在于最新模板中的新功能。
通过使用最新模板,你能够确保扫描和在 最新模板中开启的其他规则在合并请求上被强制执行了。之前,这仅限于分支流水线或指定的时间表。
注意:为了确保策略变更是你真实所需,请在修改策略之前,确保对 默认和 最新模板之间的所有变更进行了审核。
OAuth 授权页面的改进
现在,OAuth 授权页面能够更清晰地描述你所被赋予的权限。针对由极狐 GitLab 提供的应用,还会包含一个“由极狐 GitLab 验证”的部分。之前,不管应用是不是极狐 GitLab 提供的,用户体验都是一样的。此项新的功能提供了额外的信任层。
简化了实例管理员设置
针对新安装的极狐 GitLab,管理员的设置体验已经被简化而且变得更加安全。初始管理员的 root 邮箱地址现在是随机生成的,这就迫使管理员不得不将此账号修改为其能访问的邮箱地址。之前,此项设置是被滞后的,因此管理员可能忘记修改邮箱地址。
rules:changes:compare_to
现已支持 CI/CD 环境变量
在极狐 GitLab 15.3 中,我们为 rules:change
引入了 compare_to
关键字。这使得定义要比较的确切引用成为可能。自极狐 GitLab 17.2 开始,可以在此关键字中使用环境变量了,这使得在多个作业中定义和重用 compare_to
变得更加容易。
使用群组 API 列出一个群组被邀请加入的群组
我们为群组 API 新增了一个端点,用来列出某个群组被邀请加入的群组信息。这项功能补充了列出某个群组被邀请加入项目端点的功能,以便全面了解群组被添加到的所有群组和项目。该端点的速率限制为每分钟每用户 60 次请求。
通过使用命令面板找到项目设置
极狐 GitLab 在项目、群组、实例以及你个人资料方面提供了许多设置选项。为了找到你所需的设置,通常情况下,你不得不在不同配置的 UI 界面上点来点去。在此版本中,你可以通过项目面板来查找项目设置了。通过访问项目 --> 选择“搜索或转到” --> 输入命令 >--> 键入设置部分的命令(诸如保护标签)来尝试此功能。选择某个结果就能直接跳转到配置所在的地方。
一次解决一个待办事项
极狐 GitLab 议题中的讨论可能会变得很忙。极狐 GitLab 通过为与你相关的评论创建待办事项,并在你对议题采取行动后自动解决该事项,来帮助你管理这些对话。之前,当你在议题的某个讨论串(thread)上采取行动时,所有的待办事项都会被解决,即使你在其他不同的讨论串中被提及。现在,极狐 GitLab 只解决那些你正在交互的讨论串中的待办事项。
改进了 wiki 侧边栏
极狐 GitLab 17.2 对 wiki 的侧边栏做了一些改进。现在,wiki 会在侧边栏显示所有的页面(上限 5000 个页面),会显示目录(TOC)以及提供一个搜索框用来快速找到页面。
之前,侧边栏缺少目录,这就让导航至页面的某个具体位置变得很有挑战性。新的目录功能帮助用户清晰地看到页面结构,然后快速导航至不同的部分,从而大大提高了可用性。
额外的搜索框让内容的发现变得更加容易。因为侧边栏现在能够显示所有的页面,所以你就可以丝滑的浏览整个 wiki 了。
新的工作空间代理授权策略
在此版本中,针对工作空间我们实现了一种新的授权策略,以解决传统策略在给群组拥有者和管理员提供更多控制和灵活性方面所存在的一些限制。有了此项新的授权策略,群组拥有者和管理员就能够控制使用哪些集群代理来托管工作空间。
为了保证平稳过渡,使用传统授权策略的用户会自动迁移到新的策略上。那些支持工作空间的既有代理会被允许自动存在于代理所在的位置。即使这些代理在根群组的不同群组中已经存在,这种迁移也会自动发生。
极狐 GitLab Runner 17.2
我们还发布了极狐 GitLab Runner 17.2。极狐 GitLab Runner 是一个轻量级、高扩展的代理,用来运行你的 CI/CD 作业并且将结果发送回极狐 GitLab 实例。极狐 GitLab Runner 和极狐 GitLab CI/CD 绑定在一起,而极狐 GitLab CI/CD 是一个开源且内置在极狐 GitLab 里面的服务。
新特性:
针对 AWS EC2 实例的极狐 GitLab Runner fleet 插件已经 GA
允许配置 Runner 的 livenessProbe 和 readinessProbe
对 Kubernetes 执行器开启和禁用 umask 0000 的能力
极狐 GitLab Runner Operator 支持 Red Hat OpenShift 4.16
修复的缺陷:
极狐 GitLab Runner 升级会移除所有的 cache 卷
完整的变更,可以查看极狐 GitLab Runner 变更日志。
Terraform 模块仓库中的文档模块
现在 Terraform 模块仓库能够显示 Readme 文件啦!有了这个高需求的功能特性,你就可以很透明地记录每个模块的目的、配置和要求。
之前,你不得不通过搜索其他源来获得这些信息,这样模块的评估和使用变得很困难。现在,随着模块文档随时可用,你就可以在使用模块之前快速了解它的能力。这种可访问性使你能够自信地在组织内共享和重用 Terraform 代码。
API 模糊测试现在支持签名认证请求
API 模糊测试已经有了对于“覆盖”的支持,这能够对扫描器发送的请求进行修改。然而,这些覆盖设置必须提前设定,并且不能根据请求本身进行修改。极狐 GitLab 17.2 新增了一个“预请求脚本”(FUZZAPI_PER_REQUEST_SCRIPT),这允许用户可以提供一个 C# 脚本,并在发送每个请求之前调用该脚本。这提供了通过密钥对请求进行“签名”的支持,而且将其作为一种认证形式。
容器扫描:支持对 OS 漏洞的持续扫描
作为对容器扫描 MVC 的持续漏洞扫描的后续跟进,在极狐 GitLab 17.2 中,我们增加了对于操作系统中 APK、RPM 包的扫描支持。
这项增强功能允许我们的分析器能够通过比较 APK 和 RPM 操作系统中 purl 类型的软件包版本,来实现对容器镜像漏洞的持续扫描。
需要注意的是,当前并不支持 RPM 中包含 ^
的软件包。
极狐 GitLab 高级 SAST 对 Go、Java 以及 Python 处于 Beta 版
现在,对于旗舰版用户来说,极狐 GitLab 高级 SAST 功能已经处于 Beta 版。高级 SAST 功能通过跨文件、跨函数的分析来交付高质量的分析结果。当前,已经支持 Go、Java 和 Python。
在 Beta 期间,我们建议在测试项目中使用高级 SAST,而不是直接替代现有的 SAST 分析器。如果要开启高级 SAST 功能,可以查看使能指南。从极狐 GitLab 17.2 开始,高级 SAST 包含在 SAST.latestCI/CD 模版中。
这是我们逐步集成 Oxeye 技术的一部分。在接下来的版本中,我们计划将高级 SAST 提升至 GA,并且增加对其他语言的支持以及引入新的 UI 元素来追踪漏洞是如何流动的。
在子群组合规中心分配合规框架
合规中心是一个让合规团队管理他们的合规标准遵循报告、违规报告以及群组合规框架的集中式地方。之前,所有与合规中心相关的功能都仅在顶级群组可用。这样就意味着对于子群组来说,群组拥有者是没有办法去访问那些只有顶级群组拥有的任何关于合规中心的功能。
为了帮助用户解决这个痛点,我们新增了一个功能,就是可以给子群组分配和取消分配合规框架的能力。现在,除了已经可用的顶级群组的合规中心仪表盘外,群组拥有者还可以在子群组上看到相关的合规状态。
确定多个访问令牌的过期日期
现在,管理员可以通过运行一个脚本来识别多个访问令牌的过期时间。你可以将此脚本和令牌故障排查页面上的其他脚本结合使用,以识别并延长大量可能接近过期日期的令牌,当然,前提是令牌轮换并没有被实施。
简化了 Google 云的集成设置
Google 云命令行现在在设置 Google 云 IAM 集成的工作负载身份联合时原生可用。之前,设置指南使用了通过 cURL 命令下载的脚本。另外,帮助教程也已被添加,用来更好的描述设置流程。此项改进能够帮助群组拥有者可以更快地设置好 Google 云 IAM 集成。
在 Snowflake Data Connector 中增加了 User API
在极狐 GitLab 17.2 中,我们在极狐 GitLab Data Connector 中添加了对于 Users API 的支持,这已经在 Snowflake Marketplace app 中可以使用了。现在,你可以使用 Users API 将私有化部署实例中的用户数据流直接发送到 Snowflake 中了。
改善了群组概览页面的排序和过滤体验
我们已经更新了群组概览页面上的排序和过滤功能。现在会在整个页面中对元素进行搜索,这让你能够更清楚的看到你的搜索选项。我们已经对过滤选项,诸如名称、创建时间、更新时间以及星进行了标准化。
评论