
01 技术背景
仅一个不安全的密码,就足以让攻击者夺取系统的控制权。实践中,不安全的密码主要出现在以下两种情形:
一方面,可能出现 出厂预设的登录凭据 在投入使用后 未被更改 的情况。许多系统,如路由器、网络摄像头、数据库以及 Web 应用的管理界面,出厂时都带有预配置的用户账户和默认密码,例如“admin/admin”或“root/12345”。这些凭据仅用于首次配置,应在配置后立即替换为个人专属的登录凭据。
另一方面,用户有时会选择容易被猜中、或早已在以往数据泄露事件中曝光的密码。攻击者可借助公开的密码列表,自动用这些密码尝试登录。例如“123456”这类简单的数字序列、“passwort1”这类容易预测的密码,或在以往数据泄露中已被泄露的密码。最知名的此类合集之一是 Have I Been Pwned 的“Pwned Passwords”,其中收录了来自大量公开数据泄露事件的已泄露密码。
最终,两种情形导致的结果相同:攻击者无需破解密码,而是早已知道密码,或者能从数量有限的候选密码中推断出来。尽管成因不同,两种情形都会造成本可避免的身份验证漏洞,而这些漏洞可以通过适当的组织和技术措施加以防范。

02 风险与影响
未更改的默认账户和不充分的密码要求,是身份验证方面最主要的漏洞之一。这一点也体现在 OWASP Top 10 中——这是一份国际公认的 Web 应用最重要安全风险清单:两类漏洞均归入 A07:2021“Identification and Authentication Failures”(身份识别与认证失败)类别。尽管成因不同,它们最终都会导致同一个关键安全问题:对系统和数据的未经授权访问。
攻击者会借助自动化手段等方式利用这些漏洞。凭据填充(Credential Stuffing)使用的是以往数据泄露中的登录凭据,而密码喷洒(Password Spraying)则是用常见密码对大量用户账户逐一尝试。此类攻击能否得手,取决于系统是否限制登录尝试次数,或是否部署了多因素身份验证等其他防护措施。其中,未更改的默认账户风险尤其大,因为攻击者往往可以毫不费力地从公开的厂商文档或其他公开渠道查到出厂登录凭据。未更改的默认账户在测试系统、备份管理界面和很少使用的管理入口中尤为常见。
如果身份验证成功,攻击者即可访问相应的用户账户或管理界面。视权限而定,攻击者可以更改配置、查看数据,或将该系统作为发起进一步攻击的跳板。
从数据保护法的角度看,《通用数据保护条例》(GDPR)第 32 条要求控制者通过适当的技术和组织措施,保护数据处理系统免遭未经授权的访问。选择这些措施的标准是现有技术水平。尤其可以参考 德国联邦信息安全办公室(BSI)的建议。其中包括使用个人专属且强度足够的密码、更换默认密码,以及采取措施识别已泄露的密码。此外,还可参考 美国国家标准与技术研究院(NIST)的指导方针 。该指南建议:仅使用密码登录时,密码至少应为 15 个字符;结合第二身份验证因素时,至少应为 8 个字符。相比僵硬的复杂度要求,该指南更看重密码长度。
如果利用此类漏洞导致个人数据遭未经授权的披露、篡改或丢失,通常即构成个人数据泄露(数据保护事件)。
03 如何识别漏洞
检测此漏洞需从两方面入手,因为未更改的默认账户和不安全的密码成因不同,所需的检查和应对措施也不同。这一区分也体现在 通用缺陷枚举(CWE) 中——这是一份国际通行的漏洞分类目录:未更改的默认账户归入 CWE-798(“Use of Hard-coded Credentials”,使用硬编码凭据),不充分的密码要求归入 CWE-521(“Weak Password Requirements”,弱密码要求)。
1. 检查默认账户(CWE-798)
首先,根据厂商文档逐一核查每个系统有哪些有记录的出厂账户。然后检查这些登录凭据是否仍然有效。如果仍然有效,说明默认账户未被替换,漏洞存在。
2. 检查密码质量(CWE-521)
就密码质量而言,可以在不泄露明文的情况下,将单个密码与 Pwned Passwords 数据库进行比对。具体做法是在本地生成 SHA-1 哈希值,只将哈希值的一部分发送到接口。这种所谓的 k-匿名(k-Anonymity)方法可在不向服务发送实际密码的情况下完成检查:
bash echo -n „您的密码“ | sha1sum
随后,可以查询哈希值的前五个字符:
bash curl https://api.pwnedpasswords.com/range/5BAA6
如果自己哈希值的其余部分出现在返回列表中,说明该密码已在数据泄露中被收录。
如果仍在使用默认账户,或某个正在使用的密码已知已被泄露,即存在漏洞。
04 如何修复漏洞
修复方式取决于漏洞成因。未更改的默认账户必须彻底清除,而不安全或已泄露的密码则须替换为安全的密码。
1. 清除默认账户(CWE-798)
2. 替换不安全的密码(CWE-521)
3. 额外的保护措施
措施落实后,请重新检查。只有当不再有任何默认账户处于启用状态、且所有相关账户都使用个人专属、强度足够且未泄露的密码时,漏洞才算真正修复。
常见问题解答
为什么默认密码存在安全风险?
出厂预设的登录凭据往往众所周知,或可在厂商文档中查到。如果投入使用后未加更改,攻击者可能无需多少工夫就能访问系统或管理界面。
哪些系统最常受到影响?
默认账户常见于路由器、网络摄像头、数据库和 Web 应用的管理界面等。此外,未更改的默认账户在测试系统、备份管理界面和很少使用的管理入口中尤为常见。
弱密码或已知密码会助长哪些攻击?
攻击者会采用凭据填充(Credential Stuffing)和密码喷洒(Password Spraying)等手段,即利用以往数据泄露中已泄露的登录凭据或常用密码,自动对用户账户进行尝试。
默认密码在 GDPR 方面有何意义?
《通用数据保护条例》(GDPR)第 32 条要求控制者通过适当的技术和组织措施,保护系统免遭未经授权的访问。这尤其包括使用个人专属且强度足够的密码、更换默认密码,以及采取措施识别已泄露的密码。
如何确定是否存在此类漏洞?
可以根据厂商文档识别默认账户,然后检查其是否仍然有效。此外,还可以在不暴露密码明文的情况下,将密码与已知泄露密码数据库进行比对。
如何有效清除默认密码和不安全的密码?
出厂密码应在系统正式投入生产使用前更改,不需要的默认账户应予停用。此外,还应配合使用安全的密码策略、与已知泄露密码列表比对、多因素身份验证,以及限制和监控失败的登录尝试。




