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

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

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

收起
参与9

查看其它 1 个回答wang1073850525的回答

wang1073850525wang1073850525容器云工程师某金融单位

容器的一个重要的特性是容器的行为都是事先预定且固化的,任何超出预定范围内的行为都代表着异常和攻击,因此,可通过以下举措进行权限控制
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

回答者

wang1073850525
容器云工程师某金融单位
擅长领域: 云计算容器容器云

回答状态

  • 发布时间:2022-05-15
  • 关注会员:3 人
  • 回答浏览:953
  • X社区推广