在介绍凭据填充这个概念之前,先给大家说一下什么是“凭证窃取”。凭证窃取是指攻击者破坏系统、窃取用户的访问凭证(通常是ID和口令的组合),其中ID往往是用户的电子邮件地址。“凭据泄露”意味着这些凭证被提供给了其他攻击者。凭据填充俗称“撞库”,是指大规模使用自动化测试来验证被盗密码是否能用于其他无关联网站。
凭据填充到底有多大威力?安全公司Shape Security的数据表明,凭证填充的破解成功率为为0.1%~2%。这意味着攻击者每尝试100万个被泄露的凭证,就可以发现平均1万个因口令复用的而导致登陆信息泄露的账户。根据Shape Security发布的2017凭证泄露报告,2016年共计有33亿用户凭证泄露。
撞库之所以可行,究其原因是绝大多数用户往往在多个账户上使用同样的几组口令。这就导致了一旦攻击者获取了一个账户的口令,他们也就有了很可能适用于其他账户的合法凭证。而每拥有100万的失窃凭证,黑客们可以使用Sentry MBA等类似工具大规模入侵目标网站上的账户。
雅虎堪称是这类事件的典型代表。2016年雅虎发生的两次泄露事件,总共15亿被脆弱的MD5加密算法保护的凭证泄漏到互联网。发生在2012年、2013年的凭证盗窃,使攻击者有四年时间来破解这种脆弱的保护。这类事件意味着罪犯已经储备了大批合法的用户凭证,而用户的多账号同口令现象意味着这些凭证大部分都已经被被用于其他账户。
Shape Security的报告指出:“凭证盗窃规模如此之大,而雅虎用户又这么广泛,这意味着过去几年里这些被盗凭证助长了不计其数的网络犯罪。”
使用被泄露口令进行简易暴力测试是很容易被发现并阻止的,许多站点会尝试阻断同一IP对不同账户的多次登录尝试或同一账户的多次失败登录请求。
然而“凭据填充”则很不一样。 该词是由Shape Security 创始人苏米特·阿加瓦尔发明的。这种攻击手段结合了凭证源、Sentry MBA等工具和僵尸网络的分工方式。 Sentry MBA周期性地通过僵尸网络检验泄漏的凭证是否对目标网站有效。
因为僵尸网络的每个IP每次只检验一个凭证,无论登录尝试是否成功,作为渗透目标的网站会将这其视为用户的正常登录尝试。即使攻击受到怀疑,Sentry MBA已经切到下一个僵尸网络IP,完全不受到网站阻止可疑IP登录等安全策略的影响。
Sentry MBA 提供了击败其他防御的各种技术手段,比如内置光学字符识别功能来对抗验证码。
实际上,凭据填充并不神秘,它正被广泛的使用。举例而言,根据Shape Security的报告,“攻击者们锁定了一个财富100强的B2C(企业对消费者)网站,并在一个星期内使用多组攻击以及遍布世界各地的成千上万个代理进行了超过五百万次登录尝试。”另一个案例则是“有一天,一个大型零售网站发现了使用1000多个代理进行的超过10000登录尝试”。
雪上加霜的是,被窃取的凭证也并不难找。黑客们会为了找乐子或扬名立万把凭证散播到网上。当黑客们在凭证黑市(比如Cracking-dot-org、 Crackingking-dot-org以及 Crackingseal-dot-io)做生意时,这些名声会派上大用场。
上述情况只会导致一种结果:凭证填充简易而且有效,而只要有一点起码的技术底子,谁都可以使用它。凭证填充包含五步:
- 获取被窃凭证;
- 选择目标;
- 编写一个自动脚本来辨别登录尝试是否成功;
- 用一个可配置的凭证填充工具(比如Sentry MBA)来绕开网站的WAF或验证码;
- 将账户和赃物收入囊中。
Shape Security预测,2016年被泄露的33亿(甚至还有更多只是我们还没有发现)凭证很可能在网络犯罪体系中广泛传播,凭证填充则会成为2017年网络安全的重大威胁。虽然可以通过“用户在配置口令时绝不能与任一有口令重复”的方法来彻底解决此问题,然后该方法的有效性和可执行性几乎是非常低的。因此,积极寻求更好的解决方法已成为当务之急。