解决方案架构
卡巴斯基容器安全组件根据分发套件中包含的镜像进行部署。下表显示哪些镜像对应于哪些解决方案组件。
卡巴斯基容器安全组件
组件 |
镜像 |
组件功能 |
---|---|---|
ClickHouse DBMS |
clickhouse |
管理 ClickHouse 数据库以存储和处理来自代理的信息消息。 |
PostgreSQL DBMS |
postgresql |
使用分析和优化查询解析和查询引擎的工具管理数据库。 |
PGBouncer 连接池程序 |
pgbouncer |
PostgreSQL 连接池管理。 |
Middleware |
middleware |
实现解决方案服务器组件的数据处理业务逻辑,并为卡巴斯基容器安全的图形用户界面提供 REST API。 |
事件代理 |
event-broker |
确保分布式解决方案系统各个元素之间的通信。 |
镜像处理程序,客户端扫描器 |
image-handler |
使用漏洞和恶意软件扫描程序处理扫描作业:启动扫描作业、扫描对象、汇总和发布扫描结果。 |
扫描程序服务器 |
scanner-server |
管理扫描程序服务器,它被用于存储漏洞数据库和镜像层缓存,以及支持镜像处理程序。 |
许可模块 |
licenses |
管理根据授权许可提供的功能。 |
文件存储 |
minio |
管理存储,用于存储和向用户分发解决方案生成的文件。 |
消息代理 |
nats |
以消息形式确定通信请求的顺序。 |
为专用公司网络提供更新的文件服务器 |
updates |
部署解决方案时提供更新。 |
解决方案界面 |
nginx |
卡巴斯基容器安全图形用户界面的功能。 |
代理 |
node-agent kube-agent |
根据配置的安全策略和与编排器的集成来维护节点上的安全。 |
解决方案包含以下主要组件:
- 卡巴斯基容器安全中间件
- 卡巴斯基容器安全代理
- 卡巴斯基容器安全扫描器
卡巴斯基容器安全的整体架构方案
卡巴斯基容器安全可以部署在公共或专用公司网络中。
Middleware
卡巴斯基容器安全中间件具有以下功能:
- 提供用于交互式管理解决方案的界面(管理控制台)。
- 确保与外部软件组件(SIEM、CI、镜像仓库、LDAP、Telegram、电子邮件)集成并接收来自它们的信息。
- 协调其他解决方案组件的运行。
- 确保安全策略的创建和管理。
- 显示解决方案操作的结果。
代理
卡巴斯基容器安全代理(以下也称为“代理”)是一个作为容器化应用程序运行的解决方案组件,它根据配置的安全策略为节点提供安全保护,特别是:
- 节点上运行的容器的运行时安全性。
- 容器内 Pod 和应用程序之间的网络交互。
- 与编排平台的集成以及分析编排器配置及其组件所需的数据流。
- 从受信任的镜像启动容器,以防止未经验证的镜像运行。
代理将安装到集群的所有节点以及需要保护的所有集群。卡巴斯基容器安全使用两种类型的代理:集群保护代理 (csp-kube-agent) 和节点保护代理 (csp-node-agent)。它们一起组成代理组。对于每个集群,都创建单独的一组代理。可以为一个解决方案安装创建多组代理。
如果集群不包含代理,则某些解决方案功能不可用(例如,运行时策略、资源监控)。
页首扫描器
扫描器是卡巴斯基容器安全的一个软件组件,用于实时扫描对象以评估其安全性并检测已知漏洞、恶意软件、敏感数据迹象以及错误配置。扫描器允许您根据活动的安全策略执行安全检查。
卡巴斯基容器安全采用以下类型的扫描器:
- 基于公共漏洞和暴露 (CVE) 数据库的漏洞扫描器
- 文件威胁防护组件中的文件威胁扫描器
- 配置文件扫描器
- 敏感数据(秘密)扫描器
关于对象扫描
卡巴斯基容器安全在扫描过程中会检查解决方案中部署的对象。
扫描过程会搜索并分析与解决方案中的对象相关的威胁和安全风险。必须定期执行对象扫描以跟踪新出现的安全威胁。
在扫描时,卡巴斯基容器安全可识别以下安全威胁:
- 漏洞
- 恶意软件
- 错误配置
- 敏感数据
- 不符合安全策略要求
扫描过程
扫描器通过镜像处理程序接收扫描作业。镜像处理程序是部署在卡巴斯基容器安全基础架构中的模块,它将扫描作业转发到扫描器并接收扫描器的扫描结果。
转发扫描作业后,扫描器的当前状态将确定为以下状态之一:
- 空闲 – 扫描器当前未处理对象,可以根据请求接受来自镜像处理程序的作业。
- 忙碌 – 扫描器当前正在处理扫描作业。来自镜像处理程序应用程序的新作业将放入队列。
扫描作业队列包含所有转发的扫描作业,在以下情况下生成:
扫描队列中的作业会获得以下状态:
- 未运行 – 创建作业时默认指定的状态。
- 进行中 – 作业正在由镜像处理程序处理。
- 解析结果 – 解决方案处理作业扫描结果并将其显示在界面上。
- 错误 – 扫描作业失败。
- 已完成 – 扫描作业的结果可用。
队列中的扫描作业按照接收顺序提交给镜像处理程序。然后,作业将发送至状态为“空闲”的扫描器,并进行扫描以检查是否存在安全问题。扫描结果将发送回镜像处理程序。如果收到扫描结果,则该作业被视为已完成。如果扫描作业执行了三次或更多次但没有收到结果,则该作业将被标记为“错误”状态。
扫描许多大型对象时,解决方案在用户界面上显示扫描结果的速度可能会较慢。您可能需要等待几分钟才能看到结果。在此期间,扫描作业将与解析结果状态一起显示在扫描器部分。
如果您希望加快扫描结果的处理速度,可以通过更新 Helm Chart 中的变量来为作业处理程序服务分配更多资源(更多详细信息请参阅缩放)。
当发生错误时,解决方案会显示由代码和文本消息组成的错误消息(例如, HNDL-004: scan time out
)。
错误信息以英文显示。下表列出了消息示例及其含义。
扫描后,解决方案将显示扫描结果。如果在对象中检测到安全威胁,卡巴斯基容器安全会提示您执行以下操作之一:
- 删除安全威胁。
- 接受风险。