Docker 容器有什么缺陷

Docker 容器有以下缺陷:

  • 容器之间的局域网攻击:主机上的容器之间可以构成局域网,因此针对局域网的 ARP 欺骗、嗅探、广播风暴等攻击方式便可以用上。所以,在一个主机上部署多个容器需要合理的配置网络,设置 iptable 规则。

  • DDoS 攻击耗尽资源:Cgroups 安全机制就是要防止此类攻击的,不要为单一的容器分配过多的资源即可避免此类问题。

  • 有漏洞的系统调用:Docker 与虚拟机的一个重要的区别就是 Docker 与宿主机共用一个操作系统内核。一旦宿主内核存在可以越权或者提权漏洞,尽管 Docker 使用普通用户执行,在容器被入侵时,攻击者还可以利用内核漏洞跳到宿主机做更多的事情。

  • 共享 root 用户权限:如果以 root 用户权限运行容器,容器内的 root 用户也就拥有了宿主机的 root 权限。

  • Docker 自身漏洞:作为一款应用 Docker 本身实现上会有代码缺陷。CVE 官方记录 Docker 历史版本共有超过 20 项漏洞。黑客常用的攻击手段主要有代码执行、权限提升、信息泄露、权限绕过等。目前 Docker 版本更迭非常快,Docker 用户最好将 Docker 升级为最新版本。

解决容器安全问题方法有以下这些:

  • Docker 自身安全性改进:在过去容器里的 root 用户就是主机上的 root 用户,如果容器受到攻击,或者容器本身含有恶意程序,在容器内就可以直接获取到主机 root 权限。Docker 从 1.10 版本开始,使用 UserNamespace 做用户隔离,实现了容器中的 root 用户映射到主机上的非 root 用户,从而大大减轻了容器被突破的风险,因此建议尽可能使用最新版 Docker。

  • 保障镜像安全:为保障镜像安全,我们可以在私有镜像仓库安装镜像安全扫描组件,对上传的镜像进行检查,通过与 CVE 数据库对比,一旦发现有漏洞的镜像及时通知用户或阻止非安全镜像继续构建和分发。同时为了确保我们使用的镜像足够安全,在拉取镜像时,要确保只从受信任的镜像仓库拉取,并且与镜像仓库通信一定要使用 HTTPS 协议。

  • 加强内核安全和管理:宿主机内核尽量安装最新补丁;使用 Capabilities 划分权限,它实现了系统更细粒度的访问控制;启动容器时一般不建议开启特权模式,如需添加相应的权限可以使用–cap-add 参数。

  • 使用安全加固组件:Linux 的 SELinux、AppArmor、GRSecurity 组件都是 Docker 官方推荐的安全加固组件,这三个组件可以限制一个容器对主机的内核或其他资源的访问控制,目前容器报告里的一些安全漏洞。

  • 资源限制:在生产环境中,建议每个容器都添加相应的资源限制,这样即便应用程序有漏洞,也不会导致主机的资源被耗尽,最大限度降低了安全风险。

  • 使用安全容器:容器有着轻便快速启动的优点,虚拟机有着安全隔离的优点,有没有一种技术可以兼顾两者的优点,做到既轻量又安全呢?答案是有的,那就是安全容器。安全容器与普通容器的主要区别在于,安全容器中的每个容器都运行在一个单独的微型虚拟机中,拥有独立的操作系统和内核,并且有虚拟机般的安全隔离性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值