PAAS容器安全防护

一、风险和挑战

1、脆弱性和安全

(1)软件风险

a、局域网攻击

从网络实现来看,Docker 支持多种组网模式,在默认的桥接模式组网下,即同一主机上
创建的容器都桥接挂在网桥 docker0 上
,这样同一主机上的容器之间可以构成局域网
因此针对局域网的 ARP 欺骗、嗅探、广播风暴等攻击方式将会对这些容器造成安全威
胁。所以在一个主机上部署多个容器需要进行合理的网络配置,设置访问控制规则,实现
网络之间的隔离和边界。

b、拒绝服务攻击

容器实例共享主机的资源,也就是说底层的 CPU、内存和磁盘等资源由主机操作系统进
行统一的调度和分配。如果不对每个容器的可用资源进行有效的限制和管理,就会造成容
器之间资源使用不均衡,严重时可能导致主机和集群资源耗尽,造成拒绝服务。

c、有漏洞的系统调用

Docker 与虚拟机的主要区别是,Docker 与主机共用一个操作系统内核,如果主机内核
存在横向越权或者提权漏洞,尽管容器是以非特权模式运行的,但容器中的攻击者还是可以利用内核漏洞逃逸到主机,进行恶意行为操作。

d、特权模式共享root权限

既然容器与宿主机共用一个操作系统内核,当以特权模式运行容器时,容器内的 root 用
户也就拥有了主机的 root 权限
,进而可以在容器中进行几乎无限制的操作。

e、未隔离的文件系统

虽然 Docker 已经对文件系统进行隔离,但是有一些重要的文件暂时没有被隔离,如
/sys,/proc/sys,/proc/bus

(2)API接口安全

按照 Docker 的实现架构,Docker 服务默认监听在 Unix Socket 上,比如
unix:///var/run/docker.sock , 为了实现集群管理,Docker 官方还提供了一个远程管
理接口的 REST API,允许通过 TCP 远程访问 Docker 服务

例如在使用 Docker Swarm 时,Docker 节点上会开放一个 TCP 端口 2375,绑定在
0.0.0.0 上。
开启这种没有任何加密和访问控制的 Docker Remote API 服务是非常危险的。尤其
是将默认的 2375 端口暴露到互联网中,一旦被攻击者发现,攻击者无需认证即可访问到
容器数据,从而导致敏感信息泄露;也可以恶意删除容器上的数据,或可进一步利用容器
自身特性,直接访问主机上的敏感信息,获取服务器 root 权限,对敏感文件进行修改并
最终完全控制服务器

(3)有毒的安全镜像

开发者通常会在 Docker 官方的 Docker Hub 仓库下载镜像,这些镜像一部分来源于
开发镜像内相应软件的官方组织,但还有大量镜像来自第三方组织甚至个人。在整个应用
生命周期中,开发人员、测试人员和运维人员会根据不同需求下载并运行镜像,所以在容
器运行前进行镜像检查非常重要。
除了 Docker Hub 外,还有大量的第三方镜像仓库,如国内的网易 163、中国科学
技术大学、daoclud、阿里云等。这些第三方镜像仓库,在提供方便获取镜像的同时,也
带来了潜在的安全风险。例如,下载镜像内软件本身是否包含漏洞,下载的镜像是否被恶
意的植入后门,镜像在传输过程中是否被篡改。

a、镜像使用包含漏洞的软件

<

你可能感兴趣的:(云原生,云原生)