华为云用户手册

  • 判断方法 若CCE集群中安装了NGINX Ingress控制器插件,且版本号在3.0.7以下,则受该漏洞影响,否则不受影响。判断方法如下: 使用kubectl查找与cceaddon-nginx-ingress相关的Pod: kubectl get po -A | grep cceaddon-nginx-ingress 若返回如上图,则代表集群中安装了NGINX Ingress控制器插件。 检查NGINX Ingress控制器插件使用的nginx-ingress镜像版本: kubectl get deploy cceaddon-nginx-ingress-controller -nkube-system -oyaml|grep -w image 如上图,若当前安装的NGINX Ingress控制器插件对应的社区nginx-ingress版本低于v1.11.2,则涉及该漏洞。
  • 判断方法 查看节点操作系统及openssh版本: 如果集群node节点OS是EulerOS、Huawei Cloud EulerOS 1.1和CentOS,openssh版本不受该漏洞影响。 如果集群node节点OS是Huawei Cloud EulerOS 2.0,可以用如下命令查看安装包版本: rpm -qa |grep openssh 若openssh版本小于openssh-8.8p1-2.r34,且开放了SSH端口(默认为22),则受该漏洞影响。 如果集群node节点OS是Ubuntu 22.04,可以用如下命令查看安装包版本: dpkg -l |grep openssh 若openssh版本小于1:8.9p1-3ubuntu0.10,且开放了SSH端口(默认为22),则受该漏洞影响。 查看SSH端口是否开放的命令如下: netstat -tlnp|grep -w 22 若查询结果显示存在SSH端口正在监听,则表示该节点已开放了SSH访问。
  • 漏洞消减方案 对于存量的集群节点,请按以下方法进行修复: 针对Ubuntu操作系统,建议您将openssh升级到官方发布的修复版本(1:8.9p1-3ubuntu0.10),详情请参见官方链接。 针对Huawei Cloud EulerOS 2.0操作系统,建议您将openssh升级到官方发布的修复版本(openssh-8.8p1-2.r34),详情请参见官方公告。 对于新建的集群节点,CCE将提供已修复该漏洞的节点镜像,请留意补丁版本发布记录关注修复进展。
  • 相关链接 Ubuntu漏洞公告:https://ubuntu.com/security/CVE-2024-6387 Ubuntu补丁获取链接:https://launchpad.net/ubuntu/+source/openssh/1:8.9p1-3ubuntu0.10 Huawei Cloud EulerOS公告:https://repo.huaweicloud.com/hce/2.0/sa/HCE2-SA-2024-0224.xml
  • 漏洞消减方案 CCE已在云原生日志采集插件1.5.2版本中修复该漏洞,在修复前建议通过关闭指标上报接口消减该漏洞影响: 节点上执行以下命令: kubectl edit cm -n monitoring log-agent-fluent-bit-config-service 将配置项中HTTP_Server On改为HTTP_Server Off,并保存。 重启monitoring命名空间下的log-agent-log-operator组件。
  • 漏洞影响 Fluent Bit 版本2.0.7 - 3.0.3中存在堆缓冲区溢出漏洞,该漏洞存在于Fluent Bit的嵌入式http服务器对跟踪请求的解析中,由于在解析/api/v1/traces 端点的传入请求时,在解析之前未正确验证input_name的数据类型,可通过在请求的“inputs”数组中传递非字符串值(如整数值),可能导致内存崩溃,成功利用该漏洞可能导致拒绝服务、信息泄露或远程代码执行。 CCE集群中安装了云原生日志采集插件,且版本为1.3.4-1.5.1时则涉及该漏洞。
  • 判断方法 您可以在节点上执行命令查看容器引擎使用的cgroup。 容器引擎为containerd的节点,执行以下命令: crictl info |grep -i systemdCgroup 显示如下: "systemdCgroup": false 容器引擎为docker的节点,执行以下命令: docker info |grep "Cgroup" 显示如下: Cgroup Driver: cgroupfs 表明容器引擎使用的cgroup系统为cgroupfs,并未使用systemd cgroup,不受此漏洞影响。
  • 漏洞详情 runc是一个基于OCI标准实现的一个轻量级容器运行工具,是Docker、Containerd、Kubernetes等容器软件的核心基础组件。近日,runc社区发布最新版本,修复了一处高危级别的容器逃逸漏洞(CVE-2024-21626)。由于内部文件描述符泄漏,攻击者可通过控制容器进程的工作目录,或命令路径,将其设置为文件描述符的父级目录下的路径,读写主机任意文件,实现容器逃逸。 详细信息请参见:runc容器逃逸漏洞预警(CVE-2024-21626)
  • 漏洞影响 Linux系统内核在3.15-6.8中的netfilter: nf_tables组件存在释放后重利用漏洞,nft_verdict_init() 函数允许在钩子判定中使用正值作为丢弃错误,当 NF_DROP 发出类似于 NF_ACCEPT 的丢弃错误时,nf_hook_slow() 函数会导致双重释放漏洞,本地攻击者利用此漏洞可将普通用户权限提升至 root 权限。 该漏洞是一个本地提权漏洞,需要攻击者先渗透到集群的node节点,利用难度较高。
  • 判断方法 对于1.23及以下版本的CCE集群、 CCE Turbo 集群,使用web-terminal、cloudshell或者配置kubectl连接集群,运行以下命令,确认是否运行聚合API Server: kubectl get apiservices.apiregistration.k8s.io -o=jsonpath='{range .items[?(@.spec.service)]}{.metadata.name}{"\n"}{end}'
  • 漏洞详情 业界披露了Linux Kernel openvswitch模块权限提升漏洞(CVE-2022-2639)的漏洞细节。由于 openvswitch模块中reserve_sfa_size()函数在使用过程中存在缺陷,导致本地经过身份认证的攻击者可以利用漏洞提升至root权限。目前漏洞poc已公开,风险较高。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 权限提升 CVE-2022-2639 高 2022-09-01
  • 漏洞影响 containerd创建容器时默认把 Linux Process capabilities配置到 Inheritable 集合上,这会导致在容器内的进程在以 Non-Root 用户 execve() 执行可执行文件时Inheritable和文件的Inheritable集合的交集被添加到执行完execve后的进程的Permited集合中,出现非预期的“越权“行为。需要说明的是,这个越权并没有突破 execve 前的进程权限,仅仅是继承之前的 capabilities。 该漏洞的影响范围如下: 1. CCE Turbo集群,使用了低于1.4.1-98版本的containerd作为kuberentes CRI运行时。 2. CCE集群containerd版本低于1.5.11以下的集群。
  • 漏洞详情 containerd开源社区中披露了一个安全漏洞,在containerd创建容器的场景,非root容器进程的初始inheritalbe capability不为空,可能会造成在execve执行可执行文件时提升到允许的cap集合。该问题已被收录为CVE-2022-24769。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 权限提升 CVE-2022-24769 低 2022-3-24
  • 漏洞详情 crowdstrike安全团队披露CRI-O 1.19版本中存在一个安全漏洞,攻击者可以利用该漏洞绕过保护措施并在主机上设置任意内核参数。这将导致任何有权在使用CRI-O的Kubernetes集群上部署Pod的用户都可以滥用kernel.core_pattern内核参数,在集群中的任何节点上以root身份实现容器逃逸和执行任意代码。 该问题已被收录为CVE-2022-0811。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 容器逃逸 CVE-2022-0811 高 2021-03-16
  • 相关链接 Red Hat社区漏洞公告:https://access.redhat.com/security/cve/cve-2022-0811 cr8escape: New Vulnerability in CRI-O Container Engine Discovered by CrowdStrike:https://www.crowdstrike.com/blog/cr8escape-new-vulnerability-discovered-in-cri-o-container-engine-cve-2022-0811/
  • 相关链接 内核修复commit:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=24f6008564183aa120d07c03d9289519c2fe02af Red Hat社区漏洞公告:https://access.redhat.com/security/cve/cve-2022-0492
  • 漏洞影响 该漏洞为Linux内核权限校验漏洞,根因为没有针对性的检查设置release_agent文件的进程是否具有正确的权限。在受影响的OS节点上,工作负载使用了root用户运行进程(或者具有CAP_SYS_ADMIN权限),并且未配置seccomp时将受到漏洞影响。 CCE集群受该漏洞影响的范围如下: x86场景EulerOS 2.5和CentOS镜像不受该漏洞影响。 内核版本小于4.19.36-vhulk1907.1.0.h962.eulerosv2r8.aarch64的EulerOS arm版本。 内核版本小于4.18.0-147.5.1.6.h541.eulerosv2r9.x86_64的EulerOS x86版本。 内核版本为4.15.0-136-generic以及以下内核版本的Ubuntu节点。
  • 漏洞详情 国外安全研究人员William Liu和Jamie Hill-Daniel发现Linux内核中包含一个整数溢出漏洞,可导致写操作越界。本地攻击者可以使用这一点导致拒绝服务(系统崩溃)或执行任意代码,在容器场景下拥有CAP_SYS_ADMIN权限的用户可导致容器逃逸到宿主机。目前已存在poc,但尚未发现已公开的利用代码。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 资源管理错误 CVE-2022-0185 高 2022-01-27
  • 相关链接 https://blog.aquasec.com/cve-2022-0185-linux-kernel-container-escape-in-kubernetes https://ubuntu.com/security/CVE-2022-0185 https://access.redhat.com/security/cve/CVE-2022-0185 https://www.openwall.com/lists/oss-security/2022/01/18/7
  • 漏洞处理方案 目前RedHat、Ubuntu、Debian、SUSE等各大Linux厂商均已发布补丁版本修复了该漏洞,请受影响的用户升级到安全版本,若无法及时升级,可参考厂商官方提供的建议进行缓解。 RedHat;Ubuntu:USN-5252-1、USN-5252-2;Debian、SUSE EulerOS已发布补丁,升级polkit rpm包即可。 升级方法如下 yum clean all yum makecache yum update polkit rpm -qa | grep polkit 检查是否已经修复为对应版本 EulerOS 2.10 修复版本为polkit-0.116-6.h4 EulerOS 2.9 修复版本为polkit-0.116-5.h7 EulerOS 2.8 修复版本为polkit-0.115-2.h14 EulerOS 2.5 修复版本为polkit-0.112-14.h15 若系统没有可用的补丁,可通过将pkexec中的SUID-bit删除进行临时规避,命令如:# chmod 0755 /usr/bin/pkexec 注:修复漏洞前请将资料备份,并进行充分测试。
  • 漏洞详情 国外安全研究团队披露在polkit的pkexec程序中存在一处权限提升漏洞(CVE-2021-4034,亦称PwnKit),攻击者通过在其默认配置中利用此漏洞实现用任何非特权用户获取易受攻击主机的完全root权限,目前漏洞POC/EXP已公开,风险较高。 Polkit(PolicyKit)是一个用于在类Unix操作系统中控制系统范围权限的组件。pkexec是Plokit框架中的一部分,执行具有提升权限的命令,是sudo的替代方案。请使用Polkit的用户及时安排自检并做好安全加固。 参考链接:https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 权限提升 CVE-2021-4034 高 2022-01-28
  • 漏洞详情 Kubernetes开源社区中披露了1个ingress-nginx漏洞,用户通过Ingress 对象的“spec.rules[].http.paths[].path”字段可以获取ingress-controller使用的credentials。这个credentials可以获取集群中所有namespace的secrets。该漏洞被收录为CVE-2021-25748。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 权限提升 CVE-2021-25748 中 2022-6-10
  • 相关链接 CVE-2021-25745社区漏洞issue:https://github.com/kubernetes/ingress-nginx/issues/8502 CVE-2021-25746社区漏洞issue:https://github.com/kubernetes/ingress-nginx/issues/8503 社区已经发布版本修复: https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.2.0
  • 漏洞详情 Kubernetes开源社区中披露了2个nginx-ingress漏洞: 1. 漏洞CVE-2021-25745:用户有权限可以在创建/更新ingress时,利用‘spec.rules[].http.paths[].path’字段,获取到ingress-controller使用的凭证,这个凭证可以获取集群中所有命名空间的密钥。 2. 漏洞CVE-2021-25746:用户有权限可以在创建/更新ingress时,利用‘.metadata.annotations’字段,获取到ingress-controller使用的凭证,这个凭证可以获取集群中所有命名空间的密钥。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 权限提升 CVE-2021-25745 中 2022-4-16 权限提升 CVE-2021-25746 中 2022-4-16
  • 漏洞修复方案 1. 漏洞CVE-2021-25745消减措施:通过实施准入策略,将'networking.k8s.io/Ingress'中的'spec.rules[].http.paths[].path'限制在已知安全字符中(参考社区最新规则,或者采用annotation-value-word-blocklist中的建议值)。 2. 漏洞CVE-2021-25746消减措施:通过实施准入策略,将'metadata.annotations'的值限制在已知的安全字符中(参考社区最新规则,或者采用annotation-value-word-blocklist中的建议值)。
  • 漏洞详情 社区在 Kubernetes 中发现了一个安全问题,用户可以创建一个带有subPath volume挂载的容器,访问卷外的文件和目录,包括主机文件系统上的文件和目录。 容器使用subPath去挂载一些文件或者目录时,攻击者可能利用Symlink Exchange 访问除挂载目录之外的目录或者主机上的文件,造成越权。 表1 漏洞信息 漏洞类型 CVE-ID 漏洞级别 披露/发现时间 资源管理错误 CVE-2021-25741 中 2021-09-15
  • 漏洞影响 该漏洞涉及VolumeSubpath特性开关开启场景(默认开启),可能造成以下影响: 若恶意用户可以创建一个带有子路径卷挂载的容器,则可以访问卷外的文件和目录,包括主机文件系统上的文件和目录。 集群管理员已限制创建 hostPath 挂载的能力的集群受到的影响最严重。利用该漏洞可以在不使用 hostPath 功能的情况下进行类似 hostPath 的访问,从而绕过限制。 在默认的 Kubernetes 环境中,漏洞利用可用于掩盖对已授予特权的滥用。
  • 漏洞处理方案 您可以禁用 kubelet 上的VolumeSubpath feature gate,并删除任何使用subPath功能的现有 Pod。 以root用户登录CCE Node节点。 修改kubelet配置参数,关闭VolumeSubpath特性。 vi /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml 添加VolumeSubpath: false字段 重启kubelet。 systemctl restart kubelet 确认kubelet新进程已启动,且已关闭VolumeSubpath。 vi /var/paas/sys/log/kubernetes/kubelet.log 搜索VolumeSubpath=false,如果能搜到说明关闭成功。 删除任何使用subPath功能的Pod。
  • VolumeSubpath特性开启或回退 修改kubelet配置文件,删除VolumeSubpath相关字段。 vi /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml 重启kubelet。 systemctl restart kubelet 确认kubelet新进程已启动,且重启后的kubelet.log日志中无VolumeSubpath=false相关字段。
  • 防护原理(云模式-CNAME接入、独享模式接入) 通过WAF云模式-CNAME接入或者独享模式将网站添加并接入WAF后,网站所有访问请求将先流转到WAF,WAF检测过滤恶意攻击流量后,将正常流量返回给源站,从而确保源站安全、稳定、可用。 图1 防护原理 流量经WAF返回源站的过程称为回源。WAF通过回源IP代替客户端发送请求到源站服务器,接入WAF后,在客户端看来,所有的目标IP都是WAF的IP,从而隐藏源站IP。 图2 回源IP
共100000条