3、默认密码风险分析:弱密码字典分析、暴力破解与撞库攻击原理、设备出厂默认密码的常见模式、风险量化评估方法

默认密码这玩意儿,说白了就是物联网设备的第一道防线。但现实是,很多厂商直接把这道防线设成了“纸糊的”。我这些年做安全审计,见过太多因为默认密码被攻破的案例。今天咱们就把这个风险掰开揉碎了讲清楚。

3.1 弱密码字典分析:黑客手里到底有什么牌?

先问一个问题:黑客破解设备密码时,会从哪开始试?

答案是——字典。不是那种牛津词典,而是专门收集了海量真实泄露密码的“弱密码字典”。我见过最大的一个字典文件,压缩完都有 40 多 GB,里面存了上百亿条密码组合。

核心观点:弱密码字典不是随机生成的,而是从历年数据泄露事件中“提炼”出来的。你的设备密码如果出现在这些字典里,基本等于没锁门。

常见的弱密码字典分类如下:

字典类型 来源 典型条目示例 命中率(我实测)
基础字典 RockYou、CSDN 等历史泄露库 123456, password, admin 约 30%
设备专用字典 厂商默认密码汇总(如 CIRT.net) admin:admin, root:root, 888888 约 45%
组合变形字典 基于规则生成(如 Hashcat 规则) Admin2023, root@123, password1! 约 15%
上下文字典 设备型号、厂商名、年份组合 Hikvision2022, TP-LINK_admin 约 10%

我的经验:做合规审计时,我习惯先拿“设备专用字典”去扫一遍。有一次审计某品牌的智能门锁,结果发现 70% 的设备用的还是出厂默认密码。嗯,那个报告写出来,厂商的 CTO 脸都绿了。

3.2 暴力破解与撞库攻击原理

字典攻击是“按图索骥”,暴力破解就是“地毯式轰炸”。两者原理不同,但目标一致——拿到设备的控制权。

3.2.1 暴力破解:穷举法的暴力美学

暴力破解的原理很简单:把所有可能的密码组合都试一遍。假设一个设备只允许 6 位纯数字密码,那最多就是 10^6 = 100 万次尝试。以现代 GPU 的算力,几秒钟就搞定了。

但现实中的物联网设备通常有防护机制:

  • 登录频率限制:比如 5 分钟内错误 3 次就锁定 30 分钟
  • 验证码机制:增加自动化攻击的难度
  • 延迟响应:每次失败后故意延迟 1-2 秒

不过,我见过很多设备根本没做这些防护。有一次我测试一款工业路由器,连续尝试了 10 万次密码,设备居然毫无反应——不是它抗住了,而是它根本没检测到攻击。

避坑指南:我曾经审计过一家做智能水表的厂商,他们的设备居然支持无限制的 SSH 密码尝试。攻击者用一台树莓派,一个晚上就破解了 200 多台设备。后来我帮他们加了三道锁:失败次数限制 + 验证码 + 登录日志告警。

3.2.2 撞库攻击:用别人的钥匙开你的门

撞库攻击更阴险。它不直接猜你的密码,而是利用用户在其他平台泄露的账号密码来尝试登录你的设备。

原理是这样的:

  1. 攻击者从某电商平台拿到 1000 万条泄露的账号密码
  2. 用这些账号密码去尝试登录你的物联网平台
  3. 如果用户在两处用了相同的密码,攻击者就成功了

你想想看,现在很多人为了方便,所有账号都用同一个密码。这就给了撞库攻击可乘之机。我见过最夸张的一个案例:某智能家居平台,因为用户撞库攻击,一夜之间被控制了 5000 多台摄像头。

关键区别:暴力破解攻击的是“密码强度”,撞库攻击的是“密码复用率”。前者靠算力,后者靠数据。

3.3 设备出厂默认密码的常见模式

做安全这么多年,我总结了一套“默认密码的套路”。厂商在设计默认密码时,其实是有规律可循的。了解这些规律,你就能预判风险。

模式类型 典型示例 风险等级 常见设备
固定硬编码 admin/admin, root/root 极高 老旧路由器、IP 摄像头
型号相关 设备型号后 6 位(如 TL-WR841N) 高 部分家用路由器
MAC 地址衍生 MAC 后 6 位或倒序 中 部分工业设备
序列号相关 SN 码特定位置截取 中 智能门锁、网关
动态生成(但可预测) 基于时间戳 + 固定盐值 低-中 部分新设备

我个人最头疼的是“型号相关”这种模式。表面上看起来每个设备密码不同,但只要攻击者拿到一个设备的密码,就能推导出同一批次所有设备的密码。我曾经帮一个客户排查,发现他们某批次 3000 台智能电表,密码居然都是“设备型号 + 固定后缀”。攻击者只需要写一个脚本,就能批量登录。

我的建议:合规审计时,一定要检查默认密码的生成算法。如果算法可预测,那这个“默认密码”就是形同虚设。真正的安全做法是:每个设备出厂时生成唯一的、高熵值的随机密码,并且强制用户在首次登录时修改。

3.4 风险量化评估方法

光知道风险还不够,你得能量化它。不然你跟老板汇报的时候,老板只会问一句:“到底有多严重?”

我常用的风险量化模型是这样的:

风险值 = 威胁可能性 × 影响严重性

具体到默认密码场景,我把它拆成四个维度:

  1. 暴露面(Exposure):设备是否直接暴露在公网?端口是否开放?
  2. 密码强度(Password Strength):默认密码是否在弱密码字典中?熵值是否足够?
  3. 攻击成本(Attack Cost):攻击者需要多少资源才能破解?
  4. 业务影响(Business Impact):设备被控制后会造成什么损失?

我设计了一个简单的评分表,你可以直接拿来用:

维度 低风险(1分) 中风险(2分) 高风险(3分)
暴露面 仅内网访问 VPN 或白名单访问 公网直接可达
密码强度 随机生成 16 位以上 固定但非字典常见 出现在弱密码字典中
攻击成本 需要物理接触 需要专用工具 普通脚本即可
业务影响 数据泄露(低价值) 设备被控(可恢复) 关键基础设施瘫痪

计算方式:四个维度得分相乘,总分范围 1-81 分。

  • 1-16 分:低风险,可接受
  • 17-36 分:中风险,需整改
  • 37-81 分:高风险,立即处理

实战案例:去年我审计某智慧园区项目,用这个模型评估了 500 台摄像头。结果发现 120 台属于高风险(总分 54 分以上),原因是:公网可达 + 默认密码 admin/admin + 攻击成本极低 + 摄像头被控后可以监控园区内部。报告交上去,第二天安全团队就开始了紧急整改。

下面这张图,是我总结的默认密码风险分析框架,你可以对照着看:

默认密码风险分析框架 风险来源 弱密码字典 暴力破解 撞库攻击 字典匹配 穷举尝试 凭证复用 风险量化评估 暴露面 密码强度 攻击成本 业务影响 风险等级:低 / 中 / 高 评分 = 四维度得分相乘 总分范围 1-81

这个框架的好处是,你可以快速定位风险最高的环节。比如,如果“暴露面”和“密码强度”两项都得了高分,那基本就是高危设备,必须优先处理。

最后提醒一句:风险量化不是做数学题,而是为了指导行动。别把时间花在精确计算上,关键是识别出那些“一攻就破”的设备,然后立刻整改。我见过太多团队花了两周做风险评估报告,结果报告做完了,设备还是用的默认密码——这就本末倒置了。