首页/安全/取证与溯源速查/环境变量线索采集
Linux 取证135 条

环境变量线索采集

环境变量常被忽略却信息量大:代理设置、数据库连接、云密钥与自定义路径都可能出现在 /proc/<pid>/environ。

取证与溯源速查安全更新于 2026-10-13

进程环境变量

/proc/<pid>/environ 保存进程启动时的环境变量,用 NUL 字节分隔,需要经过 tr 或 strings 转换才能正常阅读。它的取证价值在于:临时凭据、代理设置与注入用的预加载变量常出现在这里,而这些内容不会写进任何日志文件。

基本信息

路径/proc/<pid>/environ
格式NUL 字节分隔,直接查看会连成一行
权限要求仅进程属主与 root 可读
语义反映 exec 时的初始环境,进程内修改不会同步更新
相关文件/proc/<pid>/cmdline 同样为 NUL 分隔
常见线索代理变量、预加载库变量、令牌与密钥类变量

典型使用场景

  • 检查进程是否被注入预加载库
  • 发现硬编码在环境中的凭据或令牌
  • 判断可疑进程使用的代理与外联配置
  • 与 cmdline、maps 一起构成进程画像
  • 分析服务实际接收到的启动参数

最小示例

最小示例
tr '\0' '\n' < /proc/1234/environ | sort        # 转换为按行输出
tr '\0' '\n' < /proc/1234/environ | grep -Ei 'proxy|token|key|secret|preload'
cat /proc/1234/status | head -8                   # 进程基本信息
tr '\0' ' ' < /proc/1234/cmdline; echo           # 与命令行对照
ls -l /proc/1234/exe                              # 可执行文件指向
sudo strings /proc/1234/environ | head -20        # 跨用户读取需要权限

观察项与信号

观察项含义异常信号
预加载变量指定预先加载的共享库指向非标准路径的库文件
代理变量外联代理设置指向内网或陌生地址
令牌与密钥访问凭据明文出现在环境中
搜索路径命令查找目录顺序被前置了非标准目录
分隔符是否按 NUL 解析直接 cat 会把所有变量连成一行
environ 反映的是 exec 时的初始环境;进程内部修改过的变量不会同步到这个文件,因此它与运行时的实际环境可能存在差异。
读取其它用户进程的环境需要相应权限;容器内看到的是容器命名空间内的进程,宿主与容器的视角要分别取证。
环境变量中常含口令与令牌,写入报告前必须脱敏,截图也要遮挡相应部分。
不要用调试器附加的方式获取更多信息:附加会暂停进程并改变其状态,还可能在日志中留下记录。

易错点

  • 直接用 cat 读取内容:变量以 NUL 分隔,终端显示会连成一行,后面的变量极易被漏看
  • 把 environ 当运行时环境:进程内修改不会反映到该文件,用它判断当前配置会得出错误结论
  • 忽略敏感信息处理:变量中常有凭据,直接截图或写进报告会造成泄露
  • 忘记记录 PID 与采集时刻:进程退出后内容立即消失,无法事后回溯

数据来源与参考

  • man 5 proc(/proc/pid/environ)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌