凭据藏在哪些文件里
文件系统与代码库中的硬编码凭据是横向移动的高价值目标:数据库连接串、云平台密钥、部署账号口令、第三方 API 密钥,常出现在配置文件、启动脚本、部署文件、容器编排文件与版本库历史提交中。检查方式是按关键词检索并只统计命中位置与类型,不读取、不回显凭据取值。
基本信息
| 检索面 | 配置文件、脚本、部署文件、容器编排文件、版本库历史 |
|---|---|
| 关键词 | password、passwd、secret、token、key、连接串协议前缀 |
| 处置优先级 | 先通报轮换,再做彻底清理 |
| 参考标准 | OWASP 密钥管理备忘单、CWE-798 |
典型使用场景
- 接管服务器后的凭据暴露面盘点
- 代码仓库安全评审中的敏感信息检查
- 排查容器镜像与编排文件中泄露的密钥
- 评估凭据轮换机制是否覆盖历史文件
- 为密钥管理改造提供现状清单
检索示例
检索示例
grep -rIn --include='*.conf' --include='*.sh' --include='*.yml' -E 'password|passwd|secret|token' /opt/apps 2>/dev/null | head -50 # 只统计命中位置与类型
find /opt -name '*.env' -o -name 'id_rsa' -o -name '*.pem' 2>/dev/null | head # 定位密钥类文件(不读取内容)
git log --all --oneline -S 'password' -- . 2>/dev/null | head # 检索历史提交中的凭据痕迹(只列提交,不输出内容)
# 记录:文件路径、命中类型、所属系统;不记录凭据取值常见位置与风险
| 位置 | 典型内容 | 风险 |
|---|---|---|
| 应用配置 | 数据库与缓存连接口令 | 单点泄漏影响数据层 |
| 启动与运维脚本 | 部署账号、跳板机口令 | 横向移动入口 |
| 容器编排文件 | 环境变量中的密钥 | 随镜像与仓库扩散 |
| 版本库历史 | 已删除但仍可检索的凭据 | 清理当前分支无效 |
| 个人目录与临时文件 | 导出的密钥、备份文件 | 不受配置管理覆盖 |
发现真实凭据后的第一动作是通报客户轮换,而不是继续扩大检索范围:凭据一旦被写入报告或聊天记录,就会形成新的泄露渠道。
清理版本库历史会重写提交标识,需要与团队协调窗口并通知所有协作者重新拉取;只删除当前分支上的文件无法阻止历史检索。