背景知识
在 Docker Hub 上托管的镜像没有经过审计 。它们是“按原样“提供的 。它们可能是不安全的(甚至包含恶意软件),而且没有人会通知你这一点 。因此,使用 Docker Hub 中不安全的基础镜像也会让你的镜像变得不安全 。
另外,你不应该把审计和上面提到的 Docker 的内容信任混为一谈!内容信任只确认来源(镜像上传者)的身份,并不会确认与镜像安全性有关的任何事实 。
测试你的镜像是否能在降低能力的情况下工作
Linux capabilities 是 Linux 内核的一个特性,它允许你控制一个应用程序可以使用哪些内核特性,例如一个进程是否可以发送信号(如 SIGKILL)、配置网络接口、挂载磁盘,或调试进程等 。完整的列表见这里 。一般来说,你的应用程序需要的功能越少越好 。
启动你的镜像容器的所有人都可以给予(或拿走)这些能力,例如通过调用“docker run --cap-drop=ALL <image>“ 。默认情况下 Docker 会放弃所有能力,除了这里定义的那些以外 。你的应用程序可能不需要所有这些功能 。
作为一个最佳实践,你可以尝试启动你的镜像容器,放弃所有能力(使用--cap-drop=ALL),看看它是否仍然正常工作 。如果不能,请搞清楚哪些功能是缺失的,并且你是否真的需要它们 。然后请记录你的镜像需要哪些功能(以及为什么),这会给运行你镜像的用户带去更多信心 。
总结
提升你的镜像安全性并非闲庭信步 。你需要花时间来评估和实施每一种实践 。本文中的列表应该可以节省你的时间,因为收集和排序重要步骤的工作已经为你做好了 。
所幸,提升你的应用程序的安全性是一个迭代过程 。你可以从小处着手,每次实施一个步骤 。不过你确实需要得到管理层的支持 。这有时是很难办的,特别是有时你的经理会对建议有抵触情绪,他们可能倾向于从过去的经验来做推断(“我们,或我们的客户,以前从未被黑过,那么为什么这种问题现在会发生在我们身上?我们需要的是特性!“) 。你有几个选择:可以说服你的经理为安全性分配资源 。例如,如果你有一个直接接触客户的渠道(你在为其构建软件),那么可以说服他们,让他们要求把安全性作为一个“特性“ 。或者在你的行业中寻找安全漏洞的报告(例如一个直接的竞争对手受到了影响),以证明黑客攻击确实发生了,甚至你的行业也出了问题,而且它们有严重的(财务)影响 。
原文链接:
https://www.augmentedmind.de/2022/02/20/optimize-docker-image-security/
【12 个优化 Docker 镜像安全性的技巧】
推荐阅读
- 热血传奇|热血传奇:战士一刀一个法师?后期法师就真的弱吗?
- 羊毛被怎么样哪个牌子比较好
- 取卵后小腹疼痛
- 手腕一样粗的阴茎?
- 龟头表皮褶皱
- 科学变美的100个基本|网红必读“教材”《科学变美的100个基本》,职场小白也用得上
- 如何轻松食用香螺
- 如何挑选慈菇
- 如何挑选空心菜
- 头条抄书,1个月破300粉,日收益破1,努力坚持就有收获
