开发者社区> 晚来风急> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

撞库:2017年的大麻烦

简介:
+关注继续查看

本文讲的是 撞库:2017年的大麻烦,每拥有100万的失窃凭证,黑客们可以使用Sentry MBA等类似工具大规模入侵目标网站上的账户。而根据Shape Security发布的2017凭证泄露报告,2016年共计有33亿用户凭证泄露。

image

凭证窃取是指攻击者破坏系统、窃取用户的访问凭证(通常是ID和口令的组合)。其中ID往往是用户的电子邮件地址。凭据泄露则意味着这些凭证被提供给了其他攻击者。凭据填充(俗称“撞库”)则是大规模使用自动化测试来验证被盗密码是否能用于其他无关联网站。

撞库之所以可行,归根结底是因为用户往往在多个账户上使用同样的几组口令。这就导致一旦攻击者获取了一个账户的口令,他们也就有了很可能适用于其他账户的合法凭证。

想想2016年雅虎发生的两次泄露事件,总共15亿被脆弱的MD5加密算法保护的凭证泄漏到互联网。发生在2012年、2013年的凭证盗窃,使攻击者有四年时间来破解这种脆弱的保护。这类事件意味着罪犯已经储备了大批合法的用户凭证,而用户的多账号同口令现象意味着这些凭证大部分都已经被被用于其他账户。

Shape Security的报告指出:“凭证盗窃规模如此之大,而雅虎用户又这么广泛,这意味着过去几年里这些被盗凭证助长了不计其数的网络犯罪。”

使用被泄露口令进行简易暴力测试是很容易被发现并阻止的,许多站点会尝试阻断同一IP对不同账户的多次登录尝试或同一账户的多次失败登录请求。

而“凭据填充”则很不一样。 Shape Security 创始人苏米特·阿加瓦尔在五角大楼担任国防部长代理助手时发明了这个词。这种攻击手段结合了凭证源、Sentry MBA等工具和僵尸网络的分工方式。 Sentry MBA周期性地通过僵尸网络检验泄漏的凭证是否对目标网站有效。

因为僵尸网络的每个IP每次只检验一个凭证,无论登录尝试是否成功,作为渗透目标的网站会将这其视为用户的正常登录尝试。即使攻击受到怀疑,Sentry MBA已经切到下一个僵尸网络IP,完全不受到网站阻止可疑IP登录等安全策略的影响。

Sentry MBA 提供了击败其他防御的各种技术手段,比如内置光学字符识别功能来对抗验证码。

Shape Security的数据表明,凭证填充的破解成功率为为0.1%~2%。这意味着攻击者每尝试100万个被泄露的凭证,就可以发现平均1万个因口令复用的而导致登陆信息泄露的账户。

image

凭据填充并不神秘,事实上,它正被广泛的使用。举例而言,根据Shape Security的报告,“攻击者们锁定了一个财富100强的B2C(企业对消费者)网站,并在一个星期内使用多组攻击以及遍布世界各地的成千上万个代理进行了超过五百万次登录尝试。”另一个案例则是“有一天,一个大型零售网站发现了使用1000多个代理进行的超过10000登录尝试”。

雪上加霜的是,被窃取的凭证也并不难找。黑客们会为了找乐子或扬名立万把凭证散播到网上。当黑客们在凭证黑市(比如Cracking-dot-org、 Crackingking-dot-org以及 Crackingseal-dot-io)做生意时,这些名声会派上大用场。

上述种种只会导致一种结果:凭证填充简易而且有效,而只要有一点起码的技术底子,谁都可以使用它。凭证填充包含五步:

获取被窃凭证;
选择目标;
编写一个自动脚本来辨别登录尝试是否成功;
用一个可配置的凭证填充工具(比如Sentry MBA)来绕开网站的WAF或验证码;
将账户和赃物收入囊中。
据Shape Security预测,由于2016年被泄露的33亿(很可能有更多我们尚不知道的)凭证在网络犯罪体系中广泛传播,凭证填充无疑会成为2017年的重大威胁。有一个简单的办法可以一劳永逸地解决问题:用户在配置口令时绝不能与任一现有口令重复。而这一目标显然超出企业和安全行业能力之外。因此,企业必须另寻佳径来应对这一日益严重的威胁。

原文发布时间为: 二月 4, 2017
本文作者:Alfred.N
本文来自云栖社区合作伙伴安全牛,了解相关信息可以关注安全牛
原文链接:http://www.aqniu.com/industry/22660.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Django模型 (Django ORM )
Django模型 (Django ORM )
93 0
Django数据库基础操作
主键: 是唯一的,通过主键可以准确的找到对应的数据,主键默认非空,为空时自动增长准备sqlite语句: db=sqlite3.connect('xxxxx.db') 创建表格文件: cerate table 表名(字段1名称 字段1类型,字段2名称 字段2类型),例: sql='cerate ta...
589 0
Django之数据库ORM基础到进阶操作
一、准备工作 表结构如下: from django.db import models class Person(models.Model): name = models.
1155 0
Django问卷调查项目思路
Django问卷调查项目思路流程: 1 后端思路 : 需求分析 —- 找出各实体对应关系 —- 设计model架构 —- 统一资源封装 — 提供资源API入口 —- 设计项目实体功能 — 通过API实现实体...
1371 0
Django的ORM实现数据库事务操作
在Django中实现数据库的事务操作 在学习MySQL数据库时,MySQL数据库是支持原子操作的. 什么是数据库的原子操作呢??打个比方,一个消费者在一个商户里刷信用卡消费. 交易正常时,银行在消费者的账户里减去相应的款项,在商户的帐户加上相应的款项.
873 0
SCVMM更换数据库,如何搞?
因为SCVMM和SQL不是集成在同一台机器上的。 所以,当SQL换机器或是换名字后,SCVMM就不能启动了。 并且MS没提供直观的更改数据库连接的工具,只是在安装的时候有选项。 网上找了方法,修改注册表下相关的MSQL实例地址即可。
1511 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载