深入浅出了解撞库攻击!

254 篇文章 0 订阅
35 篇文章 0 订阅

1、 撞库的原理和危害

“撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储着大量敏感数据,比如我们登录一个网站所需要的用户名、密码,再比如手机号、身份证号等个人隐私信息。“撞库”在英文中的表述为 Credential Stuffing(密码嗅探),也非常直白的说明了撞库的主要场景:试图获取正确的账号/密码组合,大白话就是“盗号”。

现实中发生的撞库攻击主要是攻击者通过一些自动化工具(如脚本)针对要撞库站点的相关接口(比如登录接口)批量提交大量的用户名/密码组合,记录下其中能成功登录的组合并盗取该账号,为接下来做其他的坏事(比如将银行账号中的资金转走,或是游戏账号中的虚拟物品出售,或是盗用他人身份发表一些言论等等)做好准备。

值得注意的是,撞库的目的有2种: 1 盗号并不是撞库攻击的唯一目的, 2 验证某个账号有没有在一个站点中注册过也是常见的撞库目的。

举个例子,同样是登录失败,很多站点对于“用户不存在”和“密码错误”会给出明确不同的两种提示,这意味着我即使不知道你的密码,也可以知道你的手机号有没有在这个站点注册过。知道这个有什么用呢?举个 P2P 行业的例子,假设一个手机号在几十个借贷平台上都注册过,那这个手机号的主人恐怕有着很糟糕的财务状况(多头借贷),贷款给他的风险就很高了。

从攻击目的上区分,撞库有以下几种常见场景:

1.弱密码嗅探:类似 111111、123456 这样的简单密码因为很多人用,用这样的弱口令去试探大量的账号,就有一定概率能发现一些真正在使用弱密码的账号。实施这样的攻击一般要求攻击者手上已经掌握了大量的账号以及常见的弱密码库,当然如果不知道账号,随机构造一些也是有概率成功的,比如手机号这种格式固定的账号。

2.利用拖库数据:这是攻击成功率更高的一种方式,原理是大多数人倾向于在多个站点上使用同一个密码(有多少人淘宝和支付宝的密码是一样的?)。当攻击者成功入侵一个安全防护能力很弱的站点 A,并拿到其数据库的所有用户名密码组合,然后再拿着这些组合去站点 B 尝试,如果你两个站点都注册过并且使用了同样的密码……撞库就成功了。

3.针对高权限账号的暴力破解:暴力破解严格来说跟撞库是两种类型的攻击,但我们还是要提一下,因为二者从攻击方法和防护方式的角度来看都差不多。这主要是针对一些高权限账号(如网站的管理员)用大量密码去试探,想要盗用的账号目标非常明确。

云上常见的撞库案例

明白了原理,撞库攻击的危害也就很明确了。对个人用户来说,这会导致个人密码泄露、账号被盗,进而造成财产或名誉损失;对企业来说,不仅会造成客户信息等商业机密的泄露,还会对企业的声誉和形象造成严重伤害。

2. 撞库攻击现状

撞库离我们远吗?实际情况如何?根据我们对阿里云 WAF 流量的分析,分享下面几个数据,不难看出撞库攻击早已日夜相伴于我们的身边,且已极具规模化、专业化。

  • 数字 1:50 万个

这是我们明确观察到的每天有大量聚集性进行撞库攻击的 IP 量,考虑到还有相当多的攻击场景中使用了秒拨等离散 IP 资源没有被统计进来,每天实际参与撞库攻击的 IP 数量估计还要大 1-2 个数量级。另外值得注意的是,相当一部分攻击源 IP 在 C 段上有聚集性,从我们观察到的情况来看,每天有 200 多个 C 段(共 256 个连续 IP)中有超过 200 个 IP 实施撞库攻击。

  • 数字 2:4.48 亿次

云 WAF 流量中每天检测到的撞库/暴力破解请求量高达 4.48 亿次,这只是每天的数据,由此可以看出撞库这种攻击手法是多么受到黑客的欢迎。

  • 数字 3:630 万次

这是某网站一天内被撞库攻击的总请求量。

实际上,我们观测到在一些撞库攻击的“热门行业”,如 P2P、游戏、区块链、信用卡、电商等,撞库攻击已经在非常成规模的持续进行,这个持续时间可能达数月甚至是长年在跑,与业务相生相伴。而在一些笔者意想不到的行业(比如医美,瞎猜一下攻击意图也许是想通过验证你是否注册过医美类网站来给医美广告提供更精准的投放参考),也发现了大规模的撞库事件。

  • 数字 4:83%

从实施撞库攻击的攻击工具来看,83%以上的攻击流量来自简单的脚本,这里的“简单脚本”定义为一些通过最简单的人机识别方式(如 JS 校验)就能检测出的脚本工具,而在这其中 Java Tools 和 Python Requests 是“最有存在感”的两种脚本工具。

不过值得注意的是,近些年随着爬虫技术和相关产业的迅猛发展,“正规军”占比已越来越大,这些团伙手中掌握大量的攻击资源和最新的爬虫技术,整个产业链上下游分工精细,协同流畅,普通企业防御起来的难度也在迅速上升。

3. 撞库带来的合规风险

自欧盟隐私法 GDPR 生效以来,世界各国监管对于数据保护极为重视,自 2019 年开始,对泄露的处罚和后果也呈上升趋势。在 GDPR 的第 4 条中提出,个人数据泄露是指“由于违反安全政策而导致传输、储存、处理中的个人数据被意外或非法损毁、丢失、更改或未经同意而被公开或访问。”

所以,即使是使用已经泄露的数据来进行撞库攻击,但是企业自身的安全防护工作没有能够避免被未经授权的访问,也是违规的一种。美国的健康保险携带和责任法案(HIPAA)也有规定 “以 HIPAA 隐私规则所不允许的方式获取、访问、使用或披露个人医疗信息,等于损害安全性或隐私。”即使被非法访问的数据是被加密的,但是系统和数据受到了未经授权的攻击,因此也属于 HIPAA 隐私权规则所不允许的披露。被撞库的企业为受害者,但是每个受害者都因自身安全控制不到位而成为这雪球效应中贡献的一分子。

2019 年夏天,信用评级公司穆迪(Moody’s)对网络安全的业务影响进行了新的调整,将网络风险纳入其信用评级。穆迪根据企业违规而造成的业务影响将上市企业的评级从稳定降至负面。穆迪正在积极将网络风险纳入其信用评级,这可能只是第一个倒下的多米诺骨牌。信用评级广泛影响到投资者在选择投资对象时所考虑的风险评估以及投资决定。对上市企业来说,重新考虑其网络安全和合规性方法,尤其是随着法规变得越来越难以遵守。不仅如此,针对特定的行业,也将面对更多不同的处罚规定。

随着近年来物联网设备的爆炸性增长,再加上公共云、容器和 VM 的激增,导致人们对数据流量的可见性普遍缺乏,从而大大增加了整体威胁面和公司的漏洞。数据泄露事件不断增加,导致撞库攻击成为近年来常用的一种入侵办法。每一次泄露的数据都可能变成下一次入侵的开门匙。

4. 如何防护撞库攻击?

1)个人篇

从个人用户自我保护的角度来说,我们给出 4 个建议:

尽量减少在不同网站使用相同密码。 当然,人性的懒惰跟密码机制的安全性天然上就有冲突,大部分人很难做到这一点,据第三方统计,超过 60%的人依然在多个站点使用同一个密码。

使用更复杂的密码。 比如请不要再用 123456、111111 了……

定期更换常用密码。 黑产手里往往掌握大量的“社工库”,里面存储了很多已知的用户名-密码组合,他们可能就包含了你多年前在某网站上使用的组合。因此经常更换密码可以减小社工库信息的有效期。

启用更多密码以外的身份验证机制。其实很多安全性好的企业已经在采取一些二次验证、多因素验证之类的最佳实践,如苹果的二次验证、Google 的身份验证器、支付宝的人脸识别、微信的声纹等,建议个人用户尽可能的开启类似的验证机制。

最常用的密码前 500 名(来自 Informationisbeautiful)

2)企业篇

从企业的角度来说,做好账户安全是非常非常重要且基础的工作,因为账户很大程度上是业务安全体系的基石,账号安全一旦失守,只会带来后续更多的问题,补救这些问题需要付出的成本要远远大于做好账户安全防护本身。当然账号安全本身是非常复杂的系统工程,这里我们只是针对撞库这个场景给出一些最佳实践供参考:

  • 强制用户密码的强度。

这点不少站点现在已经做得很好了,但是还有相当多的应用允许用户使用 111111 这样的弱密码。同时也特别注意,不要忽略小程序、App 等非网页环境的注册接口。

  • 定期强制用户更换密码。

这点主要针对企业内部员工,毕竟记住一个密码已经很痛苦了,这带来的用户体验将会直线下降。

  • 在账户相关接口加强人机防控策略。

这里的接口主要包括登录、注册、找回密码、获取短信验证码等,“人机防控”指的是将这些接口中“机器”的访问请求和“真实的人”区别出来,在文章开头我们已经讲过,真实情况下攻击者几乎没有手动实施攻击的情况,如果能将大部分针对账号的“机器流量”识别出来并拦截,会是安全水位很大的一个提升。从技术手段来说,常见的有使用图形验证码、封禁高频请求的 IP/会话、部署人机识别的 SDK 组件等等,但采用图形验证码等方式存在用户体验差以及被破解的问题。

  • 重要业务流程采用二次验证。

如转账前通过人脸识别、指纹声纹、短信/邮件验证码、身份证末位数字验证等机制来确认当前操作来自账号拥有者。

  • 建立业务维度的账户异常指标监控,并及时处理风险账号。

区别于“人机”的技术手段,这里主要是从业务角度(比如高频发帖、异常转账等等),对一些行为上不正常的账号进行监控和处罚,作为技术防控的补充。

  • 借助安全工具做好防撞库攻击。

如果遇到撞库等账户安全问题的困扰,又没有足够专业的团队或精力来按照上述建议进行对抗,建议选择一款合适的安全工具来应对。一般来说, 新昕科技的防撞库防火墙产品就能有效应对撞库攻击,并且真正无感。其内置了撞库、短信防轰炸等AI模型,应对账户注册、登录、找回密码等场景,做到实时防护,风险大盘可以实时查看,攻防情况尽在掌握。从这个角度来看,对于企业来说,选择一款功能丰富强大的安全工具往往可以起到事半功倍的效果。

5. 结语

有人的地方就有江湖,有账号的地方就有撞库。密码制度本身因安全需求而生,却也带来了撞库这类的风险。我们相信,未来密码会越来越多的被其他体验更好、安全性更高的身份校验方式所取代,而这些方式或许又存在隐私、合规相关的问题。最好的方案似乎永远要在安全、便利、隐私这几个因素之间互相平衡。着眼于当下,用户名/密码的形式依然主导着绝大多数站点的账号管理方式,因此以撞库攻击为代表的账号安全问题依然需要引起个人用户和企业的足够重视。希望本文能够给您带来一些参考和帮助,共同建设更安全的互联网!

—END—

这里我整合并且整理成了一份【282G】的网络安全/红客技术从零基础入门到进阶资料包,需要的小伙伴文末免费领取哦,无偿分享!!!

学习计划安排

学习路线图大纲总览

在这里插入图片描述

我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

【一一帮助网络安全学习,以下所有资源免费领取一一】
①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

接下来我将给各位小伙伴划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

在这里插入图片描述

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)


那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

这部分内容对于咱们零基础的同学来说还太过遥远了,由于篇幅问题就不展开细说了,我给大家贴一个学习路线。感兴趣的童鞋可以自行研究一下哦,当然你也可以点击这里加我与我一起互相探讨、交流、咨询哦。


在这里插入图片描述

资料领取

上述这份完整版的网络安全学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码 即可免费领取↓↓↓
或者

点此链接】领取

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值