硬编码凭据漏洞(Hardcoded Credentials Vulnerability)
1. 漏洞概述
硬编码凭据漏洞 是指在固件、应用程序或脚本代码中直接写死敏感凭据(如用户名、密码、API Key、加密密钥),且无法通过正常配置修改或删除。
在 IoT 环境下,这些凭据一旦被逆向提取,攻击者可直接访问设备、后台服务或云平台。
常见位置:
- 设备固件二进制文件
- Web 管理页面的后端脚本
- 移动应用的代码或资源文件
- SDK 或第三方库
- 配置文件(config.json、.ini 等)
2. 漏洞成因
- 开发便利
- 开发人员为了方便调试或内部测试,将凭据直接写入代码。
- 设备批量生产
- 升级机制缺陷
- 安全意识不足
3. 攻击原理
- 攻击者下载或提取设备固件 / 应用包(APK、BIN 等)
- 通过逆向分析(strings、IDA Pro、Ghidra、binwalk 等工具)
- 定位代码或配置文件中的明文凭据
- 使用该凭据直接访问:
- 设备本地管理接口
- 云端 API
- 数据库 / 消息队列
- 第三方服务(MQTT Broker、FTP、SSH 等)
4. 常见攻击方式
| 攻击方式 |
描述 |
影响 |
| 固件提取 |
从设备闪存/升级包中提取文件系统,查找凭据 |
获取批量设备访问权限 |
| 应用逆向 |
分析移动 App 代码或资源文件 |
获取云平台 API 密钥 |
| 内存转储 |
运行时调试或物理访问读取内存 |
获取临时或永久凭据 |
| 网络抓包 |
若凭据还与明文传输漏洞并存,可直接嗅探 |
无需逆向即可利用 |
5. 危害
- 大规模设备接管
- 云平台控制权丢失
- 数据泄露
- 供应链攻击
6. 典型案例
- Mirai IoT 僵尸网络
- 利用设备厂商硬编码的默认 Telnet/SSH 凭据批量感染。
- 2018 某智能插座漏洞
- 固件中硬编码云端 MQTT 服务器用户名密码,攻击者可批量控制设备。
- 2019 工控网关漏洞
- Web 后台硬编码管理员账号密码,导致所有网关可被未授权登录。
7. 防御措施
- 移除硬编码凭据
- 唯一化凭据
- 安全存储
- 设备端使用安全芯片(TPM、TEE、SE)存放密钥。
- 凭据轮换
- 固件加密与签名
- 访问控制与最小权限
- 检测与监控
8. 检测方法
- 固件分析
- binwalk 提取文件系统 + grep 搜索敏感字符串。
- 代码审计
- 静态扫描查找 hardcoded password/key patterns。
- 动态调试
- 渗透测试
9. 总结
硬编码凭据漏洞在 IoT 中的危害尤为严重,因为:
- 设备分布广泛,物理访问难以控制
- 大量设备共用相同凭据,放大攻击规模
- 一旦泄露,修复成本高(需固件更新或替换设备)
防御关键:
- 杜绝写死凭据
- 确保每台设备凭据唯一化
- 结合安全存储与定期轮换机制