关于卡巴斯基容器安全平台
卡巴斯基容器安全(以下称为“解决方案”)可发现安全问题,并为真个容器应用程序全生命周期(开发、部署控制至运行时)提供保护。
解决方案功能:
- 与镜像仓库(例如,Docker Hub、JFrog Artifactory、Sonatype Nexus Repository OSS、GitLab 仓库、Harbor)集成,扫描仓库中的镜像以查找 NVD 和 数据安全威胁数据库(FSTEC) 发布的已知漏洞、秘密(密码、访问密钥、令牌)、错误配置和恶意软件。
- 作为管道阶段集成入 流程,扫描 是否存在错误配置,以及扫描容器镜像是否存在漏洞、恶意软件和敏感数据(秘密)。
- 检查集群节点是否符合信息安全基准。
- 在构建和运行应用程序时监控已配置安全策略的合规情况,包括运行时中的容器启动控制。
- 监控受控集群使用的资源。
您可以通过管理控制台配置和访问卡巴斯基容器安全的功能。控制台以 Web 界面的形式实现,可通过 Chromium(Google Chrome、Microsoft Edge)、Apple Safari 或者 Mozilla Firefox 浏览器访问。
最新功能
卡巴斯基容器安全 2.0 提供以下新功能和改进:
- 集中调查 CI/CD 构件、镜像仓库和运行时中的漏洞。
- 增强了记录与网络流量(入站和出站)、文件操作、启动的进程和文件威胁防护防护相关的容器事件的功能。
- 对包含多达数千个节点的基础设施进行不间断监控。
- 与 HashiCorp Vault 外部机密存储集成:
- 读取为卡巴斯基容器安全组件预先创建的 Secret。
- 使用 Vault PKI 创建用于跨服务交互的 TLS 证书。
- 与安全信息与事件管理 (SIEM) 软件集成:
- 在 UI 中配置与多种产品的集成。
- 针对各种事件(管理、警报、CI/CD、策略、资源、扫描器、准入控制器、API)发送消息的参数规范。
- 针对与与网络流量(入站和出站)、文件操作和启动进程相关的容器事件发送消息的参数规范。
- 生成 .JSON 和 .XML 格式的报告。
- 扫描基础架构以符合集群安全基准。
- 生成集群基准摘要报告。
- 改进了与 LDAP(绑定 DN 方案)的集成。
- 基于容器性能分析 (Autoprofiling) 的容器运行时配置文件生成。
- OpenAPI 的改进:
- 获取核心健康检查的数据
- 管理扫描器策略、保障策略、响应策略和运行时策略。
- 运行时配置文件管理。
- 获取系统事件日志。
- 获取容器事件日志
- 风险管理。
- 自动分析任务管理。
- 获取有关与镜像签名验证器集成的信息
- 支持与以下外部镜像仓库集成:
- Amazon Elastic Container Registry
- Red Hat Quay
- 在 CI/CD 进程中扫描 OCI 目录。
分发包
有关购买应用程序的信息,请访问 https://www.kaspersky.com 或联系我们的合作伙伴。
分发包包括一个 Helm Chart 软件包,其中包含部署和安装卡巴斯基容器安全组件所需的容器化资源。下表列出了分发套件中的容器化组件。
卡巴斯基容器安全分发套件中的容器化组件
组件 |
镜像 |
Pod |
---|---|---|
ClickHouse DBMS |
clickhouse |
kcs-clickhouse |
PostgreSQL DBMS |
postgresql |
kcs-postgres |
Middleware |
middleware |
kcs-middleware |
事件代理 |
event-broker |
kcs-eb |
镜像处理程序,客户端扫描器 |
image-handler |
kcs-ih |
扫描器 |
scanner-server |
kcs-scanner |
Licenses |
licenses |
kcs-licenses |
文件存储(Minio) |
minio |
kcs-s3 |
多线程基于事件的键值缓存存储 (Memcached) |
memcached |
kcs-memcached |
更新专用公司网络的文件服务器(更新) |
updates |
kcs-updates |
解决方案界面(面板) |
nginx |
kcs-panel |
代理中介 |
agent-broker |
kcs-ab |
代理 |
node-agent |
node-agent |
Helm 包还包括一个values.yaml配置文件,其中包含安装和更新解决方案的设置值。
下载并保存 Helm 包到选定目录后,编排器会将镜像从 Helm 包中指定的源直接下载到编排平台节点。
激活应用程序所需的信息将通过电子邮件发送给您。
页首硬件和软件要求
要安装和运行卡巴斯基容器安全,必须满足以下基础设施要求:
- 以下编排器平台之一:
- Kubernetes 1.21 或更高版本
- OpenShift 4.8、4.11 或更高版本
- DeckHouse 1.52 或 1.53 (CNI: Flannel)
- DropApp 2.1
- 具备可在开发过程中扫描容器镜像的 CI 系统(如 GitLab CI)。
- 安装了包管理器 Helm 3.10.0 或更高版本。
要使用容器运行时配置文件实现运行时监控,编排器节点必须满足以下要求:
- Linux 内核 4.18 或更高版本。
Linux内核 5.8 或更高版本使用了一些在 Linux 内核级别管理进程权限的机制。如果 Linux 内核版本低于 5.8,则在安装卡巴斯基容器安全时,必须禁用 kcs-ih 组件的这些进程权限管理机制列表,并将其设置为特权模式。
设置特权模式的示例 - 容器运行时 (CRI):containerd、CRI-O。
- 容器网络接口 (CNI) 插件:Flannel、Calico、Cilium。
架构要求:
卡巴斯基容器安全支持 x86 架构:
实现使用容器运行时配置文件进行运行时监控所需的 Linux 发行版和 Linux 内核的最低支持版本:
- CentOS 8.2.2004 或更新版本 + 内核 4.18.0-193 或更新版本
- Ubuntu 18.04.2 或更新版本 + 内核 4.18.0 或更新版本
- Debian 10 或更新版本 + 内核 4.19.0 或更新版本
- Astra Linux SE 1.7. * + 内核 6.1.50-1-generic
如果使用 Astra Linux OS,内核配置必须具有
CONFIG_DEBUG_INFO_BTF=y
选项。 - RHEL 9.4 或更高版本 + 内核 5.14 或更高版本
- Red Hat Enterprise Linux CoreOS 416.94.202408200132-0 + kernel 5.14.0-427.33.1.el9_4.x86_64
- RED OS 7.3 或更高版本 + 内核 6.1 或更高版本(CRI:CRI-O,CNI:Calico)。
- Sber Linux 8.9、9.3 + 内核 5.14(CRI:CRI-O,CNI:Calico,Cilium)
当使用 Cilium 1.16 时,您必须设置
enableTCX
为false
。
如果您的基础设施包含运行其他 Linux 发行版的主机服务器,我们建议联系技术支持。技术支持将检查解决方案与您的发行版的兼容性。如果不存在这种兼容性,则卡巴斯基容器安全的未来版本可能会支持这些发行版。
卡巴斯基容器安全可确保在 Istio 服务网格基础设施中使用时正确运行。
该解决方案支持与 Hashicorp Vault 1.7 或更高版本的集成。
卡巴斯基容器安全与 ClickHouse 22.6 或更高版本兼容。
使用外部数据库管理系统时,卡巴斯基容器安全支持以下 DBMS:
- PostgreSQL 11.*, 13.*, 14.*, 15.*
- Pangolin 6.2.0
卡巴斯基容器安全支持与以下镜像仓库的集成:
- GitLab 14.2 或更高版本
- Docker Hub V2 API
- JFrog Artifactory 7.55 或更高版本
- Sonatype Nexus Repository OSS 3.43 或更高版本
- Harbor 2.х
- Yandex Registry(使用 Yandex Container Registry API 进行集成)
- Docker Registry(使用 Docker V2 API 进行集成)
- Red Hat Quay 3.x
卡巴斯基容器安全同时支持 IPv4 和 IPv6 网络。
镜像要求(操作系统、版本、扫描的软件包):
- AlmaLinux,版本 8、9。扫描通过 dnf/yum/rpm 安装的软件包。
- Alpine Linux,版本 2.2 - 2.7、3.0 - 3.20、Edge。扫描通过 apk 安装的软件包。
- Amazon Linux,版本 1、2、2023。扫描通过 dnf/yum/rpm 安装的软件包。
- Astra Linux SE,版本 1.6.x、1.7.x。扫描通过 apt/dpkg 安装的软件包。
- CBL-Mariner,版本 1.0、2.0。扫描通过 dnf/yum/rpm 安装的软件包。
- CentOS,版本 6、7、8。扫描通过 dnf/yum/rpm 安装的软件包。
- Chainguard,所有版本。扫描通过 apk 安装的软件包。
- Debian GNU/Linux,版本 7、8、9、10、11、12。扫描通过 apt/dpkg 安装的软件包。
- openSUSE Leap,版本 42、15。扫描通过 zypper/rpm 安装的软件包。
- openSUSE Tumbleweed,所有版本。扫描通过 zypper/rpm 安装的软件包。
- Oracle Linux,版本 5、6、7、8。扫描通过 dnf/yum/rpm 安装的软件包。
- Photon OS,版本 1.0、2.0、3.0、4.0。扫描通过 tdnf/yum/rpm 安装的软件包。
- Red Hat Enterprise Linux,版本 6、7、8。扫描通过 dnf/yum/rpm 安装的软件包。
- RedOS 版本 7.1、7.2、7.3.х、8.0。扫描通过 dnf/yum/rpm 安装的软件包。
- Rocky Linux,版本 8、9。扫描通过 dnf/yum/rpm 安装的软件包。
- SUSE Enterprise Linux,版本 11、12、15。扫描通过 zypper/rpm 安装的软件包。
- SUSE Linux Enterprise Micro,版本 5、6。扫描通过 zypper/rpm 安装的软件包。
- Ubuntu,Canonical 支持的所有版本。扫描通过 apt/dpkg 安装的软件包。
- Wolfi Linux,所有版本。扫描通过 apk 安装的软件包。
- 安装了具有 Conda 命令行工具的操作系统。通过 conda 安装的软件包得到扫描。
当在有三个工作节点、三个扫描器 Pod (kcs-ih) 和最大镜像扫描大小为 10 GB 的集群中配置卡巴斯基容器安全时,集群工作节点必须满足以下要求:
- 至少 12 个处理器核心
- 至少 20 GB 的 RAM
- 40 GB 可用磁盘空间
- 集群组件之间至少有 1 Gbps 的通信通道带宽
为了运行集群中的代理,必须为每个工作节点提供以下额外资源:
- 基本要求:
- 0.2 个处理器核心
- 200 MB 的 RAM
- 15 GB 可用磁盘空间
- 启用以下代理功能时的要求(除了基线要求之外):
- 网络和进程监控:
- 2 个安装的处理器核心
- 2 GB 的已添加 RAM
- 反恶意软件保护:
- 2 个安装的处理器核心
- 2 GB 的已添加 RAM
- 网络和进程监控:
当启用所有代理功能时,必须满足以下额外资源要求:
- 2 个处理器核心
- 4 GB 的 RAM
如果工作节点停止工作,工作节点上的代理也会停止运行。
您必须根据受监控节点的数量为 ClickHouse DBMS 分配可用磁盘空间。每个节点需要 1 GB 的可用磁盘空间用于 ClickHouse 持久卷。
上述要求仅适用于卡巴斯基容器安全部署;他们不考虑客户端资源上的其他负载。
卡巴斯基容器安全用户工作站要求:
- 在公共公司网络中部署时,可永久连接互联网。
- 可访问卡巴斯基容器安全管理控制台页面(需使用客户企业内部网络地址,在安装期间指定)。
- 带宽至少为 10 Mbit/s 的通信信道。
- 以下浏览器之一:
- Google Chrome 版本 73 或更高版本。
- Microsoft Edge 版本 79 或更高版本。
- Mozilla Firefox 版本 63 或更高版本。
- Apple Safari 版本 12.1 或更高版本。
- Opera 版本 60 或更高版本。
缩放扫描 Pod 的数量
卡巴斯基容器安全支持缩放扫描 Pod 数量,以确保可以扫描传入的镜像量。您可以在解决方案运行时随时缩放扫描 Pod 数量。
添加扫描 Pod 时,系统资源有如下增加:
- 节点处理器的数量 – 增加 2。
- 节点上的 RAM 量 – 增加 2 GB。
- 节点硬盘驱动器上的可用磁盘空间量 – 增加 12 GB。
为扫描大于 10 GB 的镜像,对于每个扫描 Pod,每增加 1 GB,都必须按如下方式增加 kcs-ih 服务资源。
- 节点上的 RAM 量 – 增加 300 MB。
- 节点硬盘驱动器上的可用磁盘空间量 – 增加 1 GB。
在标准操作模式下,如果没有扫描镜像以查找配置文件中的错误,则无需增加扫描 Pod 上的 RAM。
为了更快地处理许多大型对象的扫描结果,您可以通过更新 Helm 包中的变量来为作业处理程序服务分配更多资源。
要添加更多扫描作业处理资源:
- 打开 Helm 包,并在
default
部分的scanWorkers
变量中为kcs-middleware
参数指定所需的处理程序数量。 - 在
requests
和limits
变量中,指定根据以下公式确定的 RAM 大小:memory = X * scanWorkers / 2
,其中memory
是分配给镜像处理程序服务的 RAM 大小。X
是表示 RAM 大小的变量的原始值。scanWorkers
是步骤 1 中所指定的处理程序的数量。scanWorkers/2
的结果不能为零。 - 在
requests
和limits
变量中,指定根据以下公式计算的 CPU 资源:cpu = X*scanWorkers
,其中cpu
是分配给镜像处理程序服务的 CPU 资源。X
是表示 CPU 资源的变量的原始值。scanWorkers
是步骤 1 中所指定的处理程序的数量。
缩放时考虑所服务的集群节点数量
卡巴斯基容器安全的一个实例支持最多 600 个受监控集群。每个集群的服务节点数量可通过更改以下组件来扩展:
- kcs-ab可增加或减少组件副本的数量。
- kcs-memcached可增加或减少组件的资源分配要求。
默认情况下,卡巴斯基容器安全附带为这些组件设置的以下值:
- kcs-ab:
- 每个副本 1 个 pod,可为 2000 个节点提供服务。
- 请求的资源量:节点 0.5 个 CPU 核心;节点 512 MB RAM。
- 最大资源使用量:节点 1 个 CPU 核心;节点 1 GB RAM。
- kcs-memcached:
- 请求的资源量:节点 2 个 CPU 核心;节点 2 GB RAM。
- 最大资源使用量:节点 4 个 CPU 核心;节点 4 GB RAM。
卡巴斯基容器安全通过增加以下参数进行缩放:
- 对于 kcs-ab,向副本添加一个 Pod 会使支持的节点数量增加 2000 个。
- 对于 kcs-memcached,向 kcs-ab 组件添加一个 Pod 需要按以下数量增加 kcs-memcached 组件的请求资源和最大资源使用量:
- 请求的资源量:节点 0.5 个 CPU 核心;节点 2 GB RAM。
- 最大资源使用量:节点 0.5 个 CPU 核心;节点 2 GB RAM。
例如,如果卡巴斯基容器安全实例为用户集群中的 10,000 个节点提供服务,则适用以下参数:
- kcs-ab:
- 每个副本有 5 个 Pod。
- 请求的资源量:每个节点 0.5 个 CPU 核心;每个节点 512 MB RAM。
- 最大资源使用量:节点 1 个 CPU 核心;节点 1 GB RAM。
- kcs-memcached:
- 请求的资源量:节点 4 个 CPU 核心;节点 10 GB RAM。
- 最大资源使用量:节点 6 个 CPU 核心;节点 12 GB RAM。
给出的值是近似值,因为部署需要考虑虚拟化设置的细节和给定基础设施中主机服务器(节点)的性能。
页首基础镜像的系统软件包
卡巴斯基容器安全使用以下操作系统镜像作为基础镜像:
- Alpine 3.18.4。
- Ubuntu 23.10。
- Oracle Linux 9.2。
软件包管理系统(“软件包管理器”)用于管理各种软件组件的安装、删除、配置和更新。卡巴斯基容器安全对其基础操作系统中使用以下软件包管理器:
- 对于 Alpine,使用 apk。
- 对于 Ubuntu,使用 apt。
- 对于 Oracle Linux,使用 rpm。
要获取有关已安装的系统软件包的信息,
请使用标准编排器工具访问正在运行的容器,并(根据所使用的软件包管理器)输入以下 bash 命令:
- 对于 apk:
apk -q list | grep "installed"
- 对于 apt:
apt list --installed
- 对于 rpm:
yum list installed
扫描的应用软件包
卡巴斯基容器安全支持指定编程语言的以下扫描应用程序软件包:
- Ruby:
- gemspec(镜像已扫描)。
- Gemfile.lock(CI/CD 中的仓库已扫描)。
- Python:
- egg 包、wheel 包、conda 包(镜像已扫描)。
- Pipfile.lock、poetry.lock、requirements.txt(CI/CD 中的仓库已扫描 )。
- PHP的:
- installed.json(镜像已扫描)。
- composer.lock(CI/CD 中的仓库已扫描)。
- Node.js:
- package.json(镜像已扫描)。
- package-lock.json、yarn.lock、pnpm-lock.yaml(CI/CD 中的仓库已扫描)。
- .NET:packages.lock.json、packages.config、.deps.json、Packages.props(CI/CD 中的镜像和仓库已扫描)。
- Java:
- *.jar、*.war、*.par 和 *.ear(镜像已扫描)。
- pom.xml、* gradle.lockfile、* .sbt.lock(CI/CD 中的仓库已扫描)。
- Go:
- 二进制文件(镜像已扫描)。
- go.mod(CI/CD 中的仓库已扫描)。
- Rust:
- Cargo 检查的二进制文件(镜像已扫描)。
- Cargo.lock(CI/CD 中的镜像和仓库已扫描)。
- C/C++: conan.lock(CI/CD 中的仓库已扫描)。
- Elixir: mix.lock(CI/CD 中的仓库已扫描)。
- Dart: pubspec.lock(CI/CD 中的仓库已扫描)。
- Swift: Podfile.lock、Package.resolved(CI/CD 中的仓库已扫描)。
- Julia:Manifest.toml(CI/CD 中的镜像和仓库已扫描)。