容器运行态缺乏有力的权限控制,有什么经验?

一般容器应用并不会对root用户进行限制,生产中应用的化存在安全隐患,可能给逃逸提供机会;同时容器运行态控制直接影响容器微隔离,隔离不好容易引起异常访问等破坏性攻击;当然还有被植入恶意文件、木马等等。

参与9

2同行回答

强哥之神强哥之神架构师&技术经理上汽云计算中心(上海帆一尚行科技有限公司)
讲容器安全,我们一般要分场景考虑,第一种是私有云场景,第二种是公有云场景。一般来说,单从容器自身角度来说,楼上兄弟答的很不错,基本覆盖了相关场面。但如果我们面对的是私有云场景,那么最重要的还是在于镜像安全扫描,包括操作系统缺陷漏洞、应用程序漏洞等;还需要配合网络隔离,安...显示全部

讲容器安全,我们一般要分场景考虑,第一种是私有云场景,第二种是公有云场景。

一般来说,单从容器自身角度来说,楼上兄弟答的很不错,基本覆盖了相关场面。

但如果我们面对的是私有云场景,那么最重要的还是在于镜像安全扫描,包括操作系统缺陷漏洞、应用程序漏洞等;还需要配合网络隔离,安全监控,审计等进行,先把安全问题排除在容器之外。

如果是公有云场景,那么最重要的是要保障VPC网络隔离,还有VPC容器内与宿主机的隔离,IPS/WAF/DDOS等都要配合使用上,也是防止在容器外的安全带到容器内部。

收起
互联网服务 · 2022-05-20
浏览910
wang1073850525wang1073850525容器云工程师某金融单位
容器的一个重要的特性是容器的行为都是事先预定且固化的,任何超出预定范围内的行为都代表着异常和攻击,因此,可通过以下举措进行权限控制 1、命令白名单:容器运行的命令都是固化的,可以限定在容器内可以运行的命令。比如在nginx容器中只需给予运行nginx命令的权限,任何其他命令...显示全部

容器的一个重要的特性是容器的行为都是事先预定且固化的,任何超出预定范围内的行为都代表着异常和攻击,因此,可通过以下举措进行权限控制
1、命令白名单:容器运行的命令都是固化的,可以限定在容器内可以运行的命令。比如在nginx容器中只需给予运行nginx命令的权限,任何其他命令都不允许执行,这样即使黑客利用种种手段进入nginx容器后,他也无法进行任何进一步的渗透和攻击
2、阻断镜像外的可执行程序: 黑客在进入容器后,往往会注入更多的工具进行攻击,比如渗透工具或挖矿软件,比如在容器中下载其他二进制可执行文件进行执行。而如果是开发人员直接在容器中注入镜像外的可执行程序则相当于绕开了镜像安全扫描管控
3、文件保护: 容器中大部分目录都是静态的,包括如bin, lib,usr等系统目录。关键的应用目录也应该设置只读保护以防止黑客进行篡改和攻击。
4、容器启动参数控制:镜像中的entrypoint, cmd, volumes, env, ports, users, workdir参数限定了容器运行的行为,然而这些参数可以在启动镜像时被启动参数所覆盖,这就导致了容器行为无法受控。比如用户可以以bin/bash启动容器从而进入到容器内部shell,或挂载docker主机上的重要系统文件带来安全隐患和风险。同时,以下2个参数启动的容器是不安全的:以privileged参数启动的容器拥有接触docker主机上的所有device的权限以network:host参数启动的容器拥有充分访问本地系统服务的权限,如D-bus
5、容器运行权限:Secure computing mode(Seccomp)是Linux kernel功能,用户可以通过Seccomp来控制容器的运行权限。默认Docker仅禁止了300多个Seccomp中的44个,无法达到安全控制要求,Linux Capability控制了特权用户的运行权限。Docker支持添加和删除Capability,对于用户来说,最好的做法是去除所有非必要的Capability
6、环境变量加密: 容器的环境变量中往往会包含密码和敏感信息,而拥有Inspect权限的用户可以轻易的查看到容器的环境变量从而导致信息的泄露

收起
银行 · 2022-05-15

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-05-06
  • 关注会员:3 人
  • 问题浏览:1429
  • 最近回答:2022-05-20
  • X社区推广