云原生安全攻防实践与体系构建读书心得
作为云原生生态的两大技术基石,容器和编排系统(Kubernetes为代表)的安全性对集来说非常重要。然而,容器与编排系统面临的威胁和风险客观存在,我们必须了解并认真对待这些威胁风险。
针对容器镜像的软件供应链攻击:随着容器技术的普及,容器镜像成为软件供应链中重要的一部分。然而,业务依赖的基础镜像无论是存在安全漏洞还是包含恶意代码,潜在危害都可能比外部发起的攻击严重。这种攻击方式主要包含两种类型:镜像漏洞利用和镜像投毒。前者指的是镜像本身存在漏洞时,依据镜像创建并运行的容器也通常会存在相同漏洞,攻击者利用镜像中存在的漏洞去攻击容器,往往具有事半功倍的效果。后者指的是攻击者通过某些方式——如上传镜像到公开仓库、入侵系统后上传镜像到受害者本地仓库以及修改镜像名称假冒正常镜像等,欺骗、诱导受害者使用攻击者指定的恶意镜像创建并运行容器,从而实现入侵或利用受害者的主机进行恶意活动的行为。
有程序正在修改镜像劫持容器逃逸:与其他虚拟化技术类似,逃逸是最为严重的安全风险,直接危害了底层宿主机和整个云计算系统的安全。根据层次的不同,容器逃逸的类型可以分为三类:危险配置、挂载导致
的容器逃逸;相关程序漏洞导致的容器逃逸;内核漏洞导致的容器逃逸。另外,在2020年Black Hat北美会议上,安全容器也首次被成功逃逸。
资源耗尽型攻击:容器运行时默认情况下并未对容器内进程在资源使用上做任何限制,以Pod为基本单位的容器编排管理系统也是类似的,Kubernetes在默认情况下同样未对用户创建的Pod做任何CPU、内存使用限制。限制的缺失使得云原生环境面临资源耗尽型攻击风险。
Kubernetes控制权限陷落风险:Kubernetes集的管理控制权限实质上等价于集内每台节点的root权限之和,其重要性可想而知。然而,不安全的组件配置、权限提升漏洞和容器逃逸漏洞等安全问题和风险都可能导致攻击者获取Kubernetes控制权限,从而实现对整个集的控制,后果非常严重。
针对Kubernetes的拒绝服务攻击:Kubernetes通过一系列机制来保证云原生应用的持续稳定运行,然而,如果集控制平面自身遭受拒绝服务攻击,后果不堪设想。拒绝服务攻击有多种类型,常见的是基于流量的拒绝服务攻击和基于漏洞的拒绝服务攻击。传统环境和云原生环境的流量攻击的差异性较小,基于漏洞的拒绝服务攻击则不然,存在于云原生组件的拒绝
服务漏洞很可能并不存在于传统主机环境。诸如CVE-2019-11253、CVE-2019-9512等拒绝服务漏洞可能导致Kubernetes API Server陷入瘫痪。
云原生网络安全风险:默认情况下,Kubernetes集中所有pod组成了一个小型的局域网络,那么就可能发生像中间人攻击这样的针对局域网的攻击行为。通过ARP欺骗、DNS劫持等技术,攻击者能够潜伏在集中,不断对其他Pod的网络流量进行窃听,甚至可以悄无声息地劫持、篡改集其他Pod的网络通信,危害极大。
以上是我们可以从容器和编排系统的角度梳理出的部分威胁风险,除此以外,在具体应用场景中,微服务、服务网格和Serverless的安全风险也不容忽视。安全具有木桶效应,只有全面防御,方能万无一失。本书第三章、第四章对这些威胁进行了深入而详尽的分析。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。