保护您的容器化模型和工作负载

保护容器化模型和工作负载的安全措施

切换到非root用户!

容器化现在已成为部署许多应用程序的事实上标准,Docker是推动其采用的前沿软件。随着其受欢迎程度的增加,攻击风险也随之增加[1]。因此,确保我们在容器中设置用户为非root用户是确保我们的Docker应用程序安全的最基本方法。

目录========为什么使用非root用户?作为默认非root用户能做什么和不能做什么四种场景  1. 从主机上提供模型(只读)  2. 运行数据处理流水线(容器内写入)  3. 库自动写入文件(容器内写入)  4. 保存训练模型(写入主机)总结

为什么使用非root用户?

或者说,为什么不使用root用户呢?让我们以下面的虚拟架构为例。

黑客以root权限进入容器。图像由作者提供

安全通常以多层次的方式来看待。如果攻击者设法进入容器,容器用户的权限将是第一层防御。如果容器用户被赋予了root访问权限,攻击者可以完全控制容器内的一切。通过这种广泛的访问权限,攻击者还可以利用可能存在的任何漏洞,潜在地逃逸到主机上,并完全访问所有连接的系统。后果是严重的,包括以下情况:

  • 获取存储的密码
  • 拦截和破坏您的流量
  • 运行恶意服务,如加密货币挖矿
  • 访问与数据库等敏感服务的连接
攻击者有可能通过root权限穿越您的基础架构服务。图像由作者提供

听起来够可怕的!好在解决办法很简单:将您的容器更改为非root用户!

在我们继续阅读本文的其余部分之前,如果您对Linux权限和访问权没有很好的掌握,请看看我先前的文章 [2]。

默认的非root用户能做什么和不能做什么…