网易首页 > 网易号 > 正文 申请入驻

Docker把机密文件裸奔3年,工程师发现后集体破防

0
分享至

全球每天有超过3000万个容器在运行,其中绝大多数都在/run/secrets目录里裸奔着数据库密码、API密钥和TLS证书。这个数字来自Docker Hub的公开统计,而真正的企业级部署量可能再翻10倍。

一位在基础设施领域摸爬滚打15年的老工程师最近公开吐槽:这个目录就像酒店走廊里的保险箱,密码写在箱盖上,所有人路过都能瞄一眼。更荒诞的是,这个"保险箱"的位置还是公开的——任何拿到容器访问权限的攻击者,第一反应就是去/run/secrets翻找。

1. 为什么/run/secrets成了众矢之的

容器编排工具(如Kubernetes、Docker Swarm)设计了一套"机密"机制:把敏感信息挂载到容器的/run/secrets路径,让应用读取。初衷是好的——比直接写死在镜像里强。

但问题在于:这些文件默认是可重复读取的普通文件,且权限设置宽松。一旦攻击者通过供应链漏洞或应用漏洞拿到容器内的任意代码执行能力,读取这个目录的成本接近于零。

作者Spots(Libera IRC上的ID)在博客里写道:「我感觉这些文件应该只能读一次,然后以某种方式变得不可访问,但我一直没能说服Linux内核做到这一点。」

这不是技术无知。Spots的背景足够硬核——能随手提到"umount需要root权限""文件描述符在读取后关闭"这种细节的人,显然在Linux内核和容器安全领域浸淫多年。连他都卡住了,说明问题确实棘手。

2. 那些"看起来可行"的偏方

Spots向安全圈的朋友和同事广泛征集方案,得到的反馈堪称一场"安全 hackathon"的缩影。

最流行的是"用环境变量替代文件"。但Spots的反驳很毒:攻击者只需要执行ENV命令就能全量导出,比诱导应用服务器显示特定文件还容易。这相当于把保险箱从走廊搬到了没上锁的抽屉里。

另一个思路是自定义入口脚本(entrypoint):容器启动后,立即用空白的tmpfs覆盖/run/secrets。原理是利用Linux的挂载命名空间——非root用户无法卸载(umount),而原机密文件在覆盖后不再可见。

但Spots自己评价这是"really cheesy hack"——真的很 cheesy 的 hack。它依赖两个假设:应用必须在启动时一次性读完所有机密,且之后绝不重新读取。现实中,很多应用会在运行期动态重载配置,或者优雅重启时需要重新认证。

更隐蔽的风险是文件描述符泄漏。如果某个进程在tmpfs覆盖前打开了机密文件,描述符可能一直持有旧文件的引用——攻击者通过/proc/self/fd依然能读到。

3. Linux内核为什么不配合

核心矛盾在于:Linux的文件系统没有"自毁式读取"的原生语义。

Spots想要的机制类似量子力学的"观测即坍缩"——文件内容在被读取一次后,对后续访问返回空或触发权限错误。但POSIX标准和Linux VFS(虚拟文件系统层)都没有这种设计。

有人可能会想到Linux的 capabilities 或 SELinux。但这些都是权限控制,不是访问次数控制。你可以限制谁能读,但无法限制读几次。

tmpfs的挂载覆盖方案之所以"cheesy",是因为它用空间换时间——用一个新的空文件系统遮蔽旧路径,而不是真正销毁数据。旧数据在内存中可能仍有残留,直到被垃圾回收。对于 nation-state 级别的对手,这不够干净。

4. 供应链攻击放大了这个漏洞

Spots特别强调"especially in the age of daily supply chain exploits"——尤其是在供应链攻击日更的时代。这不是修辞。

2023-2024年的公开记录显示,PyPI、npm、Maven Central 等仓库的恶意包投放频率从每月数起上升到每周数十起。攻击链条通常是:开发者引入恶意依赖 → 构建时执行恶意代码 → 窃取CI/CD环境中的机密 → 横向移动。

在这种场景下,/run/secrets的只读一次性假设完全失效。恶意代码在构建阶段就能读取机密,而容器甚至还没启动。

云原生安全公司Chainguard的工程师曾在KubeCon上分享过一个案例:某企业使用"安全"的机密文件挂载,但构建缓存层保留了旧版本的机密文件快照。攻击者通过缓存投毒,拿到了三个月前轮换掉的旧密钥——而旧密钥在下游系统中仍未失效。

5. 可能的出路在哪里

Spots的提问方式很有意思:「Is anyone else even thinking this is a problem?」——还有人觉得这是个问题吗?

潜台词是:行业可能已经习惯了这种"足够好"的安全水位。机密管理的主流方案(HashiCorp Vault、AWS Secrets Manager、Kubernetes external-secrets)都在往"动态短期凭证"方向演进,而不是加固/run/secrets本身。

但动态凭证也有盲区。Spots的场景是"容器启动时需要静态机密"——比如数据库连接串、TLS私钥。这些无法完全动态化,必须在某个时刻以明文形式出现在内存中。

一个未被充分探索的方向是eBPF。Linux内核的这项机制允许在不修改内核源码的情况下注入安全策略。理论上可以编写eBPF程序,拦截对/run/secrets的open()调用,在首次读取后自动撤销访问权限。

但这需要容器运行时(containerd、cri-o)的深度配合,且eBPF程序的自身安全又是另一个话题。

Spots最后留下了IRC联系方式,邀请同行继续讨论。这个细节本身说明问题尚无标准答案——否则不会用"old-school"的方式求援。

如果你正在维护生产环境的容器集群,你的机密文件现在是以什么形态存在的?是挂载的文件、环境变量,还是已经迁移到动态凭证?Spots在Libera IRC等你的答案。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
这一次,“宠女无度”的贾平凹被扒了个底朝天,王朔的评价是对的

这一次,“宠女无度”的贾平凹被扒了个底朝天,王朔的评价是对的

揽星河的笔记
2026-04-10 20:02:37
湖南百米白灯笼不是炫丧,也不是传统,官方介入,真相浮出水面

湖南百米白灯笼不是炫丧,也不是传统,官方介入,真相浮出水面

社会日日鲜
2026-04-12 13:26:16
广东一男子3年内累计出险记录高达30次!自称开车时不会让行…

广东一男子3年内累计出险记录高达30次!自称开车时不会让行…

广东活动
2026-04-12 12:14:13
湖人队传闻:内部人士断然否认安东尼·戴维斯回归的可能性

湖人队传闻:内部人士断然否认安东尼·戴维斯回归的可能性

好火子
2026-04-13 03:05:18
11天9次密集发声!伊朗新领袖“冒死接班”一月未露面,突然全面亮剑

11天9次密集发声!伊朗新领袖“冒死接班”一月未露面,突然全面亮剑

国是直通车
2026-04-11 19:48:07
耻辱!切尔西 0-3 惨败曼城,两大巨星彻底摆烂,球迷狂嘘离场

耻辱!切尔西 0-3 惨败曼城,两大巨星彻底摆烂,球迷狂嘘离场

奶盖熊本熊
2026-04-13 04:52:55
善恶有报,移居英国仅2年,57岁吴秀波再迎噩耗,步入李易峰后尘

善恶有报,移居英国仅2年,57岁吴秀波再迎噩耗,步入李易峰后尘

有范又有料
2025-12-17 14:54:06
小米收购玛莎拉蒂大反转,真相看傻全网!

小米收购玛莎拉蒂大反转,真相看傻全网!

财叔
2026-04-12 08:30:21
上港肠子悔青了?放走的国脚王牌中场在玉昆爆发,自己却深陷泥潭

上港肠子悔青了?放走的国脚王牌中场在玉昆爆发,自己却深陷泥潭

罗掌柜体育
2026-04-13 06:05:05
续航100公里仅跑30公里 充电31秒电量猛涨10% 东莞网约车司机:深蓝SL03虚到不敢接单

续航100公里仅跑30公里 充电31秒电量猛涨10% 东莞网约车司机:深蓝SL03虚到不敢接单

信网
2026-04-11 17:05:04
电车是未来,在美国市场快死了;油车日暮,中国车企却再度加码

电车是未来,在美国市场快死了;油车日暮,中国车企却再度加码

柏铭锐谈
2026-04-12 08:46:19
儿媳天天跟我讲“要有边界感,”我搬去了女儿家,她哭着求我回去

儿媳天天跟我讲“要有边界感,”我搬去了女儿家,她哭着求我回去

蝉吟槐蕊
2026-04-12 04:40:50
深圳机场一男子突发心梗却执意登机,血管堵塞程度高达99%,航司狂劝1小时

深圳机场一男子突发心梗却执意登机,血管堵塞程度高达99%,航司狂劝1小时

深圳晚报
2026-04-12 15:09:54
浪姐7跑调破音假唱五音不全状况百出,谢娜趁乱官宣演唱会遭吐槽

浪姐7跑调破音假唱五音不全状况百出,谢娜趁乱官宣演唱会遭吐槽

蒂蒂茱家
2026-04-12 19:58:40
抢在郑丽文返台前,解放军定调统一,长鹰8升空,航程超3000公里

抢在郑丽文返台前,解放军定调统一,长鹰8升空,航程超3000公里

浪子阿邴聊体育
2026-04-12 03:56:07
120W是“型号”不是功率?误导消费者要付出代价

120W是“型号”不是功率?误导消费者要付出代价

南方都市报
2026-04-13 00:36:10
韩卫任苏州市委常委、政法委书记

韩卫任苏州市委常委、政法委书记

汲古知新
2026-04-11 23:40:14
河南小伙在非洲16年,当地一夫多妻制,男人只用玩,女人挣钱养家

河南小伙在非洲16年,当地一夫多妻制,男人只用玩,女人挣钱养家

北纬的咖啡豆
2026-04-12 16:48:09
面相大变?那个砸神像、睡坟场“八字命硬”的网红,如今差别太大

面相大变?那个砸神像、睡坟场“八字命硬”的网红,如今差别太大

鲸探所长
2026-03-30 19:37:08
王石否认被抓,妻子大怒准备维权,爆料博主:为啥不能抓?

王石否认被抓,妻子大怒准备维权,爆料博主:为啥不能抓?

映射生活的身影
2026-04-12 21:23:41
2026-04-13 07:12:49
灰度测试中
灰度测试中
生活正在重构,目前还在灰度测试阶段,暂不全量发布。
1215文章数 15关注度
往期回顾 全部

科技要闻

理想称遭恶意拉踩,东风日产:尊重同行

头条要闻

特朗普:将封锁任何试图进出霍尔木兹海峡的船只

头条要闻

特朗普:将封锁任何试图进出霍尔木兹海峡的船只

体育要闻

创造历史!五大联赛首位女性主教练诞生

娱乐要闻

赌王女儿何超蕸病逝,常年和乳癌斗争

财经要闻

美伊谈判破裂的三大症结

汽车要闻

焕新极氪007/007GT上市 限时19.39万起

态度原创

时尚
教育
健康
数码
军事航空

被周冬雨、林更新戴上热搜的珠宝,究竟有多惊艳?

教育要闻

留学行业的寒冬已经来了!

干细胞抗衰4大误区,90%的人都中招

数码要闻

Linux圈彻底炸锅!Valve神级补丁拯救8G显卡:硬抢显存游戏性能起飞

军事要闻

美国副总统万斯:美伊谈判未能达成协议

无障碍浏览 进入关怀版