安全漏洞CVE-2019-3874分析

Kubernetes近期重要bug fix分析

Kubernetes v1.13.5 bug fix数据分析

——本周更新内容

安全漏洞CVE-2019-3874分析

3月21日,Kubernetes社区通过Google Group频道Kubernetes developer/contributor discussion发布了安全漏洞CVE-2019-3874以及解决方法。

这个安全漏洞最早由红帽的工程师Matteo Croce,Natale Vinto和Andrea Spagnolo发现。当Kubernetes中的Pod以Root用户运行时,它可以绕过cgroup内存隔离,通过SCTP网络传输,创建一个潜在的DoS攻击,此问题本身与Kubernetes无关,但是涉及到Kubernetes调用的内核模块。问题的严重性被定义为中等,社区建议将SCTP内核模块列入黑名单来规避此问题。用户可以通过执行如下命令来测试是否会到此类攻击。

modprobe sctp; lsmod | grep sctp

用户可以通过执行如下命令来把SCTP列入内核模块的黑名单。

echo "install sctp /bin/true" > /etc/modprobe.d/sctp.conf

如果SCTP模块已经载入内核,则需要重启机器来从内核中卸载SCTP模块。CVE-2019-3874安全漏洞的内核补丁正在开发中,但是通过将SCTP内核模块列入黑名单可以保护用户永久免受此类攻击。

CVE-2019-3874链接:

https://access.redhat.com/security/cve/cve-2019-3874

Kubernetes近期重要bug fix分析

•#74672移除

导致内存泄漏的Reflector Metrics

https://github.com/kubernetes/kubernetes/pull/74672

该问题的背景是#73587这个Issue。用户在升级到v1.12.5之后,发现集群内节点上Kubelet在运行一段时间后吃掉了所有的内存,导致节点故障。使用go tool pprof发现Client Go Metrics耗费了大部分的计算时间。这些Reflector Metrics并不是必不可少,该PR移除了如下的Metrics来解决内存泄漏的问题:

  • reflector_items_per_list

  • reflector_items_per_watch

  • reflector_last_resource_version

  • reflector_list_duration_seconds

  • reflector_lists_total

  • reflector_short_watches_total

  • reflector_watch_duration_seconds

  • reflector_watches_total

•#74865获取不到

包含有InitContainers的Pod的Metrics

https://github.com/kubernetes/kubernetes/pull/74865

该问题的初始现象是Metrics Server获取不到包含有InitContainers的Pod的Metrics。

根本原因在于退出的容器(如InitContainers)CPU和Memory都为Nil导致Metrics服务器将跳过Pod的处理。具体是removeTerminatedContainer的实现忽略了cri提供的runtimeapi.Container和cadvisor提供的cadvisorapiv2.ContainerInfo的不同。

此问题的解决方法是在原有上报Nil的情况下,修改为上报退出容器的CPU和Memory为0。

•#75366延迟CSI Client初始化

以解决CSI Volume Plugin在Kubelet重启后

不可用的问题

https://github.com/kubernetes/kubernetes/pull/75366

该问题的背景是#72500这个Issue。在Kubelet重启后,CSI Volume Plugin可能不会被重新注册。这些Volume Plugin未注册会相应地导致这些Plugin关联的Volume的操作无法进行。解决办法是在Kubelet重启后,单独提取一个csiClientGetter的Get()方法用于当初始化失败时,能通过延迟CSI Client初始化的方式来重新注册CSI Volume Plugin。

•#75364区分Volume Path和Mount Path

https://github.com/kubernetes/kubernetes/pull/75364

通常情况下大部分的Volume Plugin会去检查Mount在Pod的Volume第一层级的目录,但是对于CSI Plugin却不是这样,CSI Plugin可能会Mount在子目录上。这个PR修改了Kubelet中VolumePath和MountPath引用的逻辑,实现对CSI的优化。

Kubernetes v1.13.5 bug fix数据分析

分类数量和占比统计如下:

严重程度数量统计如下(横坐标5为最高,0为最低):

如下为Kubernetes v1.13.5所有bug fix的汇总信息:

相关服务请访问:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019

【独家】K8S漏洞报告 | 近期bug fix解读的更多相关文章

  1. 【独家】K8S漏洞报告|近期bug fix解读&1.11主要bug fix汇总

    内容提要: 1. 高危漏洞CVE-2018-1002105深度解读 2. 11/19--12/11 bug fix汇总分析 3. 1.11重要bug fix解读 4. 1.9重要bug fix解读 在 ...

  2. 【独家】K8S漏洞报告 | 近期bug fix解读&1.9.11主要bug fix汇总

    *内容提要: 1. Kube-proxy长连接优雅断开机制及IPVS模式实现 2. 10/29--11/19 bug fix汇总分析 3. 1.9.11重要bug fix汇总 在本周的跟踪分析中,以1 ...

  3. K8S漏洞报告 | 近期bug fix解读&1.13主要bug fix汇总

    K8s近期漏洞详解 Kubernetes仪表盘漏洞(CVE-2018-18264) 因为这一漏洞,用户可以“跳过”登录过程获得仪表盘所使用的自定义TLS证书.如果您已将Kubernetes仪表盘配置为 ...

  4. 【独家】K8S漏洞报告 | CVE-2019-1002101解读

    kubectl cp漏洞CVE-2019-1002101分析 Kube-proxy IPVS添加flag ipvs-strict-arp 近期bug fix数据分析 ——本期更新内容 kubectl ...

  5. 【代码审计】ESPCMSP8(易思企业建站管理系统)漏洞报告

    0x00简介 项目名称:ESPCMS-P8(易思企业建站管理系统) 测试平台:Windwos 版本信息:P8.19082801稳定版 更新时间:2019-08-30 00:56:32 网站官网:htt ...

  6. 最常见的安全漏洞– Acunetix Web应用程序漏洞报告2021

    每年,Acunetix都会为您提供最常见的Web安全漏洞和网络外围漏洞的分析.我们的年度Web应用程序漏洞报告(现已成为Invicti AppSec指标的一部分)是基于从Acunetix在线获得的真实 ...

  7. Linux内核升级修复系统漏洞-RHSA-2017:2930-Important: kernel security and bug fix update

    公司使用的阿里云服务器(Centos7.4 x86_64bit)内核版本为:3.10.0-693.21.1.el7.x86_64, 2019年3月4日 02:07:58通过云盾安骑士-->漏洞管 ...

  8. MyCat不支持毫秒 bug fix

    问题描述:mysql jdbc的驱动(mysql-connector-java-5.1.34.jar)设置的服务器的版本号最低是5.6.4才不会截取时间毫秒,但是现在取的是mycat 的版本号 5.5 ...

  9. Journal of Proteome Research | Current understanding of human metaproteome association and modulation(人类宏蛋白质组研究近期综述)(解读人:李巧珍)

    文献名:Current understanding of human metaproteome association and modulation(人类宏蛋白质组研究近期综述) 期刊名:J Prot ...

随机推荐

  1. [LeetCode] 228. Summary Ranges 总结区间

    Given a sorted integer array without duplicates, return the summary of its ranges. Example 1: Input: ...

  2. 【Python学习之九】模块

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.模块的使用和安装模块和C语言中的头文件以及Ja ...

  3. android基础---->SharedPreferences的使用

    SharedPreferences 还支持多种不同的数据类型存储,如果存储的数据类型是整型,那么读取出来的数据也是整型的,存储的数据是一个字符串,读取出来的数据仍然是字符串.这样你应该就能明显地感觉到 ...

  4. django models.update

    json/dict类型数据更新字段目前主流的web开放方式都讲究前后端分离,分离之后前后端交互的数据格式大都用通用的jason型,那么如何用最少的代码方便的更新json格式数据到数据库呢?同样可以使用 ...

  5. Linux下安装pj Navicat121 x64版本

    一,先在官网下载https://www.navicat.com.cn/download/navicat-premium Linux 64位版本(说是Linux,其实就是Windows+Wine版本)[ ...

  6. java byte与int互相转换

    一.Int2Byte byte[] bytes = new byte[4]; for (int i = 0; i < 4; i++) { bytes[i] = (byte)(integer &g ...

  7. Prometheus入门到放弃(6)之AlertManager进阶

    前面几个篇幅,我们介绍了alertmanger报警配置,在实际运维过程中,我们都会遇到,报警的重复发送,以及报警信息关联性报警.接下来我们就介绍下通过alertmanger对告警信息的收敛.一.告警分 ...

  8. Inno Setup 检测已安装的.NET Framework 版本

    翻译自:http://kynosarges.org/DotNetVersion.html 由 Jordan Russell 写的 Inno Setup 是一个伟大的安装脚本程序,但缺乏一个内置的函数来 ...

  9. Linux下使用ip netns命令进行网口的隔离和配置ip地址

    1. 添加隔离标记符: ip netns add fd 2. 将指定网卡放入隔离中: ip link set eth1 netns fd 3. 在隔离环境下执行命令: ip netns exec fd ...

  10. Aix6.1下su命令不能切换环境变量的问题

    su是Aix的通用命令,和linux系统下一样,用来切换当前用户.切换用户执行命令使用如下命令: su - $user -c "$command" su -命令区别于su的地方是它 ...