利用 vArmor 对特权容器降权
· 阅读需 28 分钟
我们在应用实践一文中简要介绍了 vArmor 的应用场景。在“特权容器加固”方面,面对“企业难以遵循最小权限原则将特权容器降权”的难题,我们提到可以使用 vArmor 的实验功能——行为建模模式来辅助降权。
本文将向您详细介绍移除特权容器的必要性、面临的挑战和方法。并结合实际案例向您演示如何借助 vArmor 的行为建模和观察模式特性来辅助特权容器降权,从而帮助企业提升云原生环境的安全水位。
为什么要减少特权容器
在云原生环境中,特权容器常指在 Pod 资源定义中 .spec.containers[].securityContext.privileged 为 true 的容器。这类容器有以下主要特点:
- 以 root 用户运行 & 拥有所有的 capability
- 拥有宿主机所有设备的访问权限
- Seccomp Profile 不会生效,且缺少 AppArmor Profile 防护
许多研究报告和案例都阐明过使用“特权容器”的危害[1][2]。攻击者可以以它为跳板,使用多种手法进行攻击,最终将恶意代码或恶意软件传播到受感染的主机和网络。因此,企业应当尽可能地收敛特权容器的使用范围,基于最小权限原则授予容器所需的权限。
说明
减少系统组件中的特权容器也有积极意义。在一些场景中,攻击者会借助系统组件的 RCE 漏洞进行渗透入侵。而移除其特权容器可以增加攻击者的难度与成本,并且有助于及时发现和响应攻击者的入侵行为。
面临的挑战
- 企业可能因为历史原因,已经大量使用了特权容器。容器对应的服务、组件可能已处于维护状态不再迭代。维护人缺乏对目标原理的了解,贸然更改配置的风险较大。
- 容器化的系统组件往往需要一些特权才能正常工作,但现代操作系统和 runc 容器的权限管理复杂且精细,研发人员难以按照最小权限原则进行权限配置。
- 缺少帮助研发人员对特权容器进行降权的工具和方法。