
# 集群环境安全概述
#### 什么是集群环境安全
集群是指容器运行所需要的云资源组合，关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群是同一个子网中一个或多个弹性云服务器（又称：节点）通过相关技术组合而成的计算机群体，为容器运行提供计算资源池。
集群环境安全功能支持对Kubernetes集群管理面和数据面资源进行全面扫描，识别基础设施即代码风险、漏洞、配置风险、配置合规性、敏感信息以及权限管理问题，并提供相应的修复方案，助力用户构建全方位的集群安全防护体系。
集群环境安全的具体扫描项如下：
- 系统漏洞：检测Kubernetes集群控制面、数据面以及镜像仓库核心组件操作系统层面的安全漏洞。
- 应用漏洞：识别Kubernetes集群控制面、数据面以及镜像仓库核心组件的应用软件安全漏洞。
- 应急漏洞：检测容器、容器运行时组件及依赖包存在的高危害、需要紧急处理的安全漏洞，如0 day漏洞。
- 配置风险：对Kubernetes集群配置、工作负载、网络策略及RBAC权限等资源进行全面审查，确保集群部署符合最佳安全实践。
- 安全合规：对Kubernetes集群配置、工作负载、网络策略及RBAC权限等资源进行安全合规性评估，确保集群部署符合行业标准和监管要求。
- IaC风险：检查基础设施即代码（Infrastructure as Code）中潜在的安全风险。
 
#### 系统漏洞扫描原理
企业主机安全通过获取Kubernetes集群控制面、数据面以及镜像仓库的核心组件正在使用的容器镜像，对其容器镜像系统漏洞扫描。当前能够扫描的集群组件请参见[表1]。
 表1HSS扫描的集群组件 
| 命名空间              | 组件名称                                                                                                                           |
|:---|:---|
| kube-system       | kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kube-proxy、coredns、metrics-server、calico/node、weaveworks/weave-kube |
| goharbor          | harbor-core、harbor-portal、harbor-registry、harbor-jobservice、trivy-adapter、redis、PostgreSQL                                     |
| docker.bintray.io | artifactory-pro、fluentd、bitnami/nginx                                                                                          |
| releases.jfrog.io | artifactory-pro、xray-server、pipelines、distribution                                                                             |
   
如果您集群中的以上组件不是以容器方式运行或者集群网络不可达，暂不支持集群核心组件的系统漏洞扫描。
当前系统漏洞扫描支持扫描的Linux操作系统及版本请参见[漏洞扫描和修复支持的操作系统](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0302.html#hss_01_0302__section11859191113502)。
#### 应用漏洞扫描原理
Kubernetes集群搭建方式包括镜像方式和二进制方式。基于镜像的搭建方式，Kubernetes核心组件等被打包成镜像，以容器形式部署在节点上；基于二进制软件的搭建方式，Kubernetes核心组件是通过二进制可执行文件（非容器镜像），通过手动配置系统服务管理组件运行。
- **容器镜像应用漏洞扫描**
  企业主机安全通过获取Kubernetes集群控制面、数据面以及镜像仓库的核心组件正在使用的容器镜像，对其容器镜像应用漏洞扫描。当前能够扫描的集群组件请参见[表2]。
   表2HSS扫描的集群组件 
  | 命名空间              | 组件名称                                                                                                                           |
  |:---|:---|
  | kube-system       | kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kube-proxy、coredns、metrics-server、calico/node、weaveworks/weave-kube |
  | goharbor          | harbor-core、harbor-portal、harbor-registry、harbor-jobservice、trivy-adapter、redis、PostgreSQL                                     |
  | docker.bintray.io | artifactory-pro、fluentd、bitnami/nginx                                                                                          |
  | releases.jfrog.io | artifactory-pro、xray-server、pipelines、distribution                                                                             |
     
  如果您集群中的以上组件不是以容器方式运行或者集群网络不可达，暂不支持集群核心组件的应用扫描。
  当前支持扫描的应用/中间件包括log4j、slf4j、tomcat、apache、jetty、mysql、druid、commons、spring、shiro、struts、struts2、websocket、json、fastjson、xstream、maven、junit、activemq、libintl、ca-certificates-java、httpclient、httpcore、java、javac2、javaee、Apache2、adaptive_server_enterprise、DB2、http_server、Memcached、nginx、PostgreSQL、bootstrap、zookeeper、plexus-utils、core。
  
- **二进制文件应用漏洞扫描**
  企业主机安全通过获取Kubernetes关键组件的二进制文件进行应用漏洞扫描，扫描覆盖的核心组件包括kube-apiserver kube-controller-manager kubelet kube-proxy kube-scheduler、etcd、cni-plugins。
  
 
#### 配置风险、安全合规扫描原理
**配置风险** 和**安全合规扫描** 是企业主机安全通过预定义的安全框架和动态策略引擎，对Kubernetes集群配置、工作负载、网络策略及RBAC权限进行深度检测，识别潜在风险。但两者的检测维度和适用场景不同，具体区别如[表3]所示。
 表3配置风险和安全合规对比 
| 区别项     | 配置风险                                                                                                       | 安全合规                                                                                            |
|:---|:---|:---|
| 检测维度    | 基于华为云多年云上安全实践经验，从权限管理、网络配置、授权管理等方面，检查Kubernetes组件、工作负载、网络策略等资源的配置，确保其满足最佳安全实践。                             | 基于行业标准和规范，从权限管理、网络配置、授权管理等方面，检查Kubernetes组件、工作负载、网络策略等资源的配置，确保其符合安全合规要求。                        |
| 检测的风险类型 | 包括控制平面、访问控制、密钥管理、网络、工作负载、节点逃逸。 详细介绍请参见[表4]。 | 包括控制平面、访问控制、网络、工作负载。 详细介绍请参见[表4]。 |
| 适用场景    | 适用于重要时期或场景的安全保障，对集群进行全面的安全评估，确保集群内的每个组件都符合最佳安全配置，减少潜在的安全风险。                                                | 适用于合规性检查，确保集群各组件配置符合行业标准以及现行法律法规的要求，降低合规风险。                                                     |
   
有关**配置风险** 和**安全合规** 扫描的风险类型介绍如[表4]所示。
 表4风险类型介绍 
| 风险类型 | 说明                                                                                        |
|:---|:---|
| 控制平面 | 检测Kubernetes控制平面组件的安全性，组件包括API Server、Controller Manager、Scheduler、etcd等。例如，检测etcd数据是否加密。 |
| 访问控制 | 检测与Kubernetes的身份认证（Authentication）、授权（Authorization）以及RBAC配置相关的安全规则。例如，检测用户或服务账户是否有过度权限。  |
| 密钥管理 | 检测Kubernetes中敏感信息（Secrets）的存储、使用和保护方式。例如，检测是否限制了对Secret资源的访问权限。                           |
| 网络   | 检测Kubernetes网络策略（NetworkPolicy）以及服务间通信相关的安全规则。例如，检测是否定义了合理的NetworkPolicy来限制Pod之间的通信。      |
| 工作负载 | 检测Pod、Deployment、StatefulSet、DaemonSet等工作负载对象的安全配置。例如，检测容器是否以非root用户运行。                   |
| 节点逃逸 | 检测是否存在可能导致攻击者从容器逃逸到宿主机的安全风险。例如，检测是否挂载了Docker套接字（/var/run/docker.sock）。                    |
   
#### 应急漏洞扫描原理
通过软件版本比对和POC验证的方式，检测容器节点上以容器运行的软件以及runc等容器运行时组件和依赖包是否存在漏洞。
#### IaC风险扫描原理
基于内置的IaC风险规则库对用户上传的基础设施即代码（Infrastructure as Code）文件进行扫描，检测其中潜在的安全风险。
目前支持扫描的文件类型包括：Dockerfile（镜像的配置文件）、Kubernetes YAML（集群资源的配置文件）以及Helm Charts（Kubernetes应用程序的配置文件）。
#### 集群环境安全的应用场景
- **提高集群环境的安全性**
  通过对集群环境执行安全扫描，可尽早发现并解决潜在的安全漏洞、配置风险、IaC风险等问题，提升集群环境安全性，降低集群被入侵的风险。
  
- **确保集群环境的合规性**
  各行业都有严格的数据保护规范和标准，集群环境安全扫描可以帮助用户确保容器化应用以及相应的配置满足相关规范和要求。
  
- **提升容器化应用和服务的开发质量**
  通过定期的集群安全扫描和问题整改，可以有效帮助容器化应用和服务的开发团队了解相关规范，从而提升开发质量和效率。
  
 
#### 约束限制
- **Kubernetes集群版本**为1.19及以上时，支持使用集群安全扫描功能。
- **IaC风险扫描前提** ：已购买容器版防护配额。具体操作请参见[购买企业主机安全](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0229.html)。
- **系统漏洞、应用漏洞、配置风险、安全合规** **前提** ：
  1. 集群已接入企业主机安全，且接入状态正常。具体操作请参见[安装容器安全Agent](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0636.html)。
  
  2. 集群中至少有一个节点开启了容器版防护。具体操作请参见[开启防护](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0260.html)。
   
- **应急漏洞扫描前提** ：待扫描节点已开启容器版防护。具体操作请参见[开启防护](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0260.html)。
- **集群扫描超时限制** ：默认情况下，扫描任务执行1小时后仍未完成，将被系统判定为扫描超时。
  如果集群中Kubernetes资源对象较多（约2000个Kubernetes对象，可能跟随Kubernetes对象描述文件的大小及复杂程度而发生变动），可能会导致集群扫描超时。建议您分批执行扫描任务，避免因资源量过大导致扫描中断的现象。
  
 
#### 集群环境安全扫描的使用流程
图1使用流程   
![](https://support.huaweicloud.com/usermanual-hss2.0/zh-cn_image_0000002297896972.png)
表5使用流程说明 
| 操作项                                                                                 | 说明                                       |
|:---|:---|
| [扫描集群环境安全](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0748.html)      | 通过手动扫描集群、节点和基础设施即代码（IaC），识别集群环境中潜在的安全风险。 |
| [查看并处理集群环境安全风险](https://support.huaweicloud.com/usermanual-hss2.0/hss_01_0749.html) | 查看集群环境安全扫描结果，及时排查清理安全风险项，提升集群环境安全性。      |
   
