问题描述
在使用Docker部署应用程序时,想知道将应用程序复制到Docker镜像的哪个位置更安全。他之前习惯将文件复制到根目录,例如COPY . /AppName
,但他想知道这样做是否安全。
为了找到答案,他阅读了这篇教程,但并没有解释在Docker镜像中将应用程序复制到哪个位置以及为什么。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
根据回答,将应用程序复制到不同的位置并不能提高安全性。无论是外部攻击者还是内部攻击者,都可以很容易地找到文件的位置。
以下是回答中提到的几个观点:
– 外部攻击者可以通过查看最后一个文件系统层来找到文件的位置。
– 内部攻击者可以通过查看进程表中的CWD(当前工作目录)来找到文件的位置。
– 如果镜像存储没有得到保护,攻击者可以轻松地添加另一个文件系统层,覆盖该目录并添加自己的应用程序。
因此,将应用程序复制到固定位置并不能提高安全性,这只是一种安全通过混淆来实现的方法,而混淆并不能真正提供安全性。
从维护的角度来看,将文件放在常见位置更方便,但在容器中,这并不是一个重要的问题,因为容器不应该被修改或维护。
此外,如果你使用了安全工具如SELinux和AppArmor,它们会假设文件位于文件系统标准的位置。如果你将文件放在非常规位置,你需要维护这些映射、标签和控制。
因此,从安全性和维护性的角度考虑,将应用程序复制到常见位置是一个不错的选择。
正文完