知识卡片

容器默认root用户的风险

专业/工作 · 522.e

内容

容器默认以 root 用户运行主进程,一旦容器内出现漏洞被利用,攻击者可能借助这个 root 身份进一步拿到宿主机的 root 权限,风险比”进程本身出问题”更大一层。缓解办法很直接:在 Dockerfile 里显式创建一个非特权用户,把容器入口进程切到这个用户身份下运行,遵循最小权限原则——容器进程只应该拥有它完成任务所必需的权限,不该默认继承 root 这种近乎无限的权限。发散:这是最小权限原则在容器场景下最容易被忽略也最容易修的一个点——很多人默认容器”反正是隔离的”就放松了权限管理的警惕,但隔离边界本身也可能被突破(容器逃逸),到那一步时,容器内进程的权限等级直接决定了突破之后能造成多大的破坏,提前把权限收窄是对这类未知漏洞最便宜的一道防线。

参考来源

《Cloud Native Spring in Action》第6章《Containerizing Spring Boot》