排障与安全50 条

凭据注入与环境隔离

凭据注入方式决定暴露面:运行时按需取用最小,环境变量与命令行参数分别存在继承与进程可见问题;隔离则要求环境之间、任务之间与进程之间的凭据彼此不可见,且取用失败必须显式终止而不是回落默认值。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​‌​‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌‌​​‌‌​‌​​‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

注入方式决定了泄漏面

凭据注入讲的是「用什么通道把凭据交给执行进程」。通道选得不同,泄漏面差别很大:环境变量最方便,但同主机的其他进程在一定条件下可以读到,且会被子进程继承;作为命令行参数传递会出现在进程列表中;写成临时文件则可能残留;由运行时按需向凭据服务换取则暴露面最小。隔离讲的是另一件事——不同环境与不同任务之间不能互相看到对方的凭据,否则一次失守就会横向扩散。

基本信息

适用对象脚本执行、编排任务、容器化应用
注入通道运行时取用、环境变量、挂载文件、标准输入
隔离维度环境之间、任务之间、进程之间
典型泄漏点进程列表、进程环境、崩溃转储、调试接口
权限要求读取其他进程环境通常需要高权限,但容器内常较宽松

通道与隔离要点

  • 运行时取用:进程在执行瞬间向凭据来源换取,凭据不写入镜像与配置文件
  • 环境变量注入:实现最简单,但要接受子进程继承与崩溃信息带出明文的代价
  • 文件挂载注入:以只读方式挂载,避免进程意外改写或转发该文件
  • 标准输入注入:适合一次性口令,用完即弃,进程列表里看不到内容
  • 环境隔离:开发、测试、生产使用完全独立的凭据体系,禁止跨环境复用
  • 任务隔离:不同任务使用不同凭据,避免一个任务失守牵连其他任务

检查注入面

检查注入面
tr '\0' '\n' < /proc/self/environ | cut -d= -f1 | head -20   # 看当前进程环境里有哪些键
ls -l /run/secrets                # 挂载的凭据文件权限与只读属性
mount | grep -i secrets           # 确认挂载方式与只读标志
ps -ef | grep -v grep | grep -i 'password\|token'   # 命令行里是否带明文
cat /proc/sys/kernel/yama/ptrace_scope  # 同机进程读取限制的相关设置
find / -name '*.env' -o -name 'credentials' 2>/dev/null | head -20  # 落盘凭据排查

注入通道对照

通道优点主要风险
运行时取用不落盘、可短期有效依赖凭据服务可用性
环境变量实现简单、通用子进程继承与进程环境可被读取
挂载文件便于多值管理文件残留与权限配置
标准输入不出现在进程列表仅适合单次使用不易复用
注入失败要有明确失败行为:如果取不到凭据时程序回落到内置默认值或匿名访问,故障会以「权限不足」的形式在别处暴露,排查方向会被带偏。取用失败应当直接终止并报出明确原因。
容器中通过本地元数据服务或类似端点获取凭据时,要限制应用可访问的目标地址范围:应用若存在请求伪造类缺陷,攻击者可能借此从凭据端点取到高权限凭据。限制网络访问与端点权限边界比事后检测更有效。

易错点

  • 用环境变量承载长效凭据:子进程继承与进程环境读取都会扩大暴露面,应改用短效凭据
  • 凭据写入镜像层:镜像一旦被推送或复制,凭据副本就不可控,必须整体作废
  • 多环境共用一套凭据:测试环境泄露直接波及生产,隔离意义消失
  • 取不到凭据时静默回落:故障以后续权限错误的面目出现,定位成本大幅上升
  • 挂载文件可写或权限过宽:进程或同主机其他账号都能读取并转发该凭据

数据来源与参考

  • OWASP 密钥管理备忘单
  • Kubernetes 官方文档:Secret 与挂载方式
  • Linux 手册页:proc(5) 进程环境说明

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/credential-injection-environment-isolation.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​‌​‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌‌​​‌‌​‌​​‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​