Offline environments

原文:https://docs.gitlab.com/ee/user/application_security/offline_deployments/

Offline environments

未连接到互联网时,可以运行大多数的 GitLab 安全扫描程序.

本文档介绍了如何在脱机环境中操作安全类别(即扫描仪类型). 这些说明还适用于受保护,具有安全策略(例如,防火墙策略)或受其他限制而无法访问整个 Internet 的自我管理安装. GitLab 将这些环境称为脱机环境 . 其他常用名称包括:

  • 气隙环境
  • 受限的连接环境
  • 局域网(LAN)环境
  • 内联网环境

这些环境具有阻止或限制 Internet 访问的物理障碍或安全策略(例如,防火墙). 这些说明是为物理上断开连接的网络而设计的,但在其他用例中也可以遵循这些说明.

Defining offline environments

在离线环境中,GitLab 实例可以是一个或多个服务器和服务,它们可以在本地网络上进行通信,但是对 Internet 的访问没有限制或受到非常严格的限制. 假设可以通过本地网络连接访问 GitLab 实例和支持基础结构(例如,私有 Maven 存储库)中的任何内容. 假定来自 Internet 的任何文件都必须通过物理媒体(USB 驱动器,硬盘驱动器,可写 DVD 等)进入.

Overview

GitLab 扫描仪通常会连接到互联网,以下载最新的签名,规则和补丁集. 通过使用本地网络上可用的资源,需要一些额外的步骤来配置工具以使其正常运行.

Container registries and package repositories

在较高级别,安全分析器以 Docker 映像的形式提供,并且可以利用各种软件包存储库. 当您在联网的 GitLab 安装上运行作业时,GitLab 会检查 GitLab.com 托管的容器注册表,以检查您是否具有这些 Docker 映像的最新版本,并可能连接到软件包存储库以安装必要的依赖项.

在离线环境中,必须禁用这些检查,以便不查询 GitLab.com. 由于 GitLab.com 注册表和存储库不可用,因此您必须更新每个扫描仪以引用不同的内部托管注册表,或提供对单个扫描仪图像的访问.

您还必须确保您的应用可以访问不在 GitLab.com 上托管的常见软件包存储库,例如 npm,yarn 或 Ruby gems. 可以通过临时连接到网络或通过镜像自己的脱机网络中的软件包来获取这些存储库中的软件包.

Interacting with the vulnerabilities

一旦发现漏洞,便可以与其进行交互. 阅读有关如何与漏洞进行交互的更多信息.

请注意,在某些情况下,所报告的漏洞提供的元数据可能包含 UI 中公开的外部链接. 在脱机环境中可能无法访问这些链接.

Suggested Solutions for vulnerabilities

建议的解决方案功能(自动修复)可用于”依赖关系扫描”和”容器扫描”,但可能无法运行,具体取决于实例的配置. 当我们能够访问托管该依赖项或映像的最新版本的最新注册表服务时,我们只能建议解决方案,这些解决方案通常是已修补的最新版本.

Scanner signature and rule updates

连接到 Internet 时,某些扫描仪会参考公共数据库以获取最新的签名集和要检查的规则. 没有连接,这是不可能的. 因此,根据扫描仪的不同,您必须禁用这些自动更新检查,并使用它们随附的数据库并手动更新这些数据库,或者提供对网络中托管的自己的副本的访问权限.

Specific scanner instructions

每个单独的扫描仪可能与上述步骤略有不同. 您可以在以下每个页面上找到更多信息: