“撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储着大量敏感数据,比如我们登录一个网站所需要的用户名、密码,再比如手机号、身份证号等个人隐私信息。“撞库”在英文中的表述为 Credential Stuffing(密码嗅探),也非常直白的说明了撞库的主要场景:试图获取正确的账号/密码组合,大白话就是“盗号”。
现实中发生的撞库攻击主要是攻击者通过一些自动化工具(如脚本)针对要撞库站点的相关接口(比如登录接口)批量提交大量的用户名/密码组合,记录下其中能成功登录的组合并盗取该账号,为接下来做其他的坏事(比如将银行账号中的资金转走,或是游戏账号中的虚拟物品出售,或是盗用他人身份发表一些言论等等)做好准备。
值得注意的是,撞库的目的有2种:
1 盗号并不是撞库攻击的唯一目的,
2 验证某个账号有没有在一个站点中注册过也是常见的撞库目的。
举个例子,同样是登录失败,很多站点对于“用户不存在”和“密码错误”会给出明确不同的两种提示,这意味着我即使不知道你的密码,也可以知道你的手机号有没有在这个站点注册过。知道这个有什么用呢?举个 P2P 行业的例子,假设一个手机号在几十个借贷平台上都注册过,那这个手机号的主人恐怕有着很糟糕的财务状况(多头借贷),贷款给他的风险就很高了。
从攻击目的上区分,撞库有以下几种常见场景:
云上常见的撞库案例
明白了原理,撞库攻击的危害也就很明确了。对个人用户来说,这会导致个人密码泄露、账号被盗,进而造成财产或名誉损失;对企业来说,不仅会造成客户信息等商业机密的泄露,还会对企业的声誉和形象造成严重伤害。
撞库离我们远吗?实际情况如何?根据我们对阿里云 WAF 流量的分析,分享下面几个数据,不难看出撞库攻击早已日夜相伴于我们的身边,且已极具规模化、专业化。
这是我们明确观察到的每天有大量聚集性进行撞库攻击的 IP 量,考虑到还有相当多的攻击场景中使用了秒拨等离散 IP 资源没有被统计进来,每天实际参与撞库攻击的 IP 数量估计还要大 1-2 个数量级。另外值得注意的是,相当一部分攻击源 IP 在 C 段上有聚集性,从我们观察到的情况来看,每天有 200 多个 C 段(共 256 个连续 IP)中有超过 200 个 IP 实施撞库攻击。
云 WAF 流量中每天检测到的撞库/暴力破解请求量高达 4.48 亿次,这只是每天的数据,由此可以看出撞库这种攻击手法是多么受到黑客的欢迎。
这是某网站一天内被撞库攻击的总请求量。
实际上,我们观测到在一些撞库攻击的“热门行业”,如 P2P、游戏、区块链、信用卡、电商等,撞库攻击已经在非常成规模的持续进行,这个持续时间可能达数月甚至是长年在跑,与业务相生相伴。而在一些笔者意想不到的行业(比如医美,瞎猜一下攻击意图也许是想通过验证你是否注册过医美类网站来给医美广告提供更精准的投放参考),也发现了大规模的撞库事件。
从实施撞库攻击的攻击工具来看,83%以上的攻击流量来自简单的脚本,这里的“简单脚本”定义为一些通过最简单的人机识别方式(如 JS 校验)就能检测出的脚本工具,而在这其中 Java Tools 和 Python Requests 是“最有存在感”的两种脚本工具。
不过值得注意的是,近些年随着爬虫技术和相关产业的迅猛发展,“正规军”占比已越来越大,这些团伙手中掌握大量的攻击资源和最新的爬虫技术,整个产业链上下游分工精细,协同流畅,普通企业防御起来的难度也在迅速上升。
自欧盟隐私法 GDPR 生效以来,世界各国监管对于数据保护极为重视,自 2019 年开始,对泄露的处罚和后果也呈上升趋势。在 GDPR 的第 4 条中提出,个人数据泄露是指“由于违反安全政策而导致传输、储存、处理中的个人数据被意外或非法损毁、丢失、更改或未经同意而被公开或访问。”
所以,即使是使用已经泄露的数据来进行撞库攻击,但是企业自身的安全防护工作没有能够避免被未经授权的访问,也是违规的一种。美国的健康保险携带和责任法案(HIPAA)也有规定 “以 HIPAA 隐私规则所不允许的方式获取、访问、使用或披露个人医疗信息,等于损害安全性或隐私。”即使被非法访问的数据是被加密的,但是系统和数据受到了未经授权的攻击,因此也属于 HIPAA 隐私权规则所不允许的披露。被撞库的企业为受害者,但是每个受害者都因自身安全控制不到位而成为这雪球效应中贡献的一分子。
2019 年夏天,信用评级公司穆迪(Moody’s)对网络安全的业务影响进行了新的调整,将网络风险纳入其信用评级。穆迪根据企业违规而造成的业务影响将上市企业的评级从稳定降至负面。穆迪正在积极将网络风险纳入其信用评级,这可能只是第一个倒下的多米诺骨牌。信用评级广泛影响到投资者在选择投资对象时所考虑的风险评估以及投资决定。对上市企业来说,重新考虑其网络安全和合规性方法,尤其是随着法规变得越来越难以遵守。不仅如此,针对特定的行业,也将面对更多不同的处罚规定。
随着近年来物联网设备的爆炸性增长,再加上公共云、容器和 VM 的激增,导致人们对数据流量的可见性普遍缺乏,从而大大增加了整体威胁面和公司的漏洞。数据泄露事件不断增加,导致撞库攻击成为近年来常用的一种入侵办法。每一次泄露的数据都可能变成下一次入侵的开门匙。
从个人用户自我保护的角度来说,我们给出 4 个建议:
最常用的密码前 500 名(来自 Informationisbeautiful)
从企业的角度来说,做好账户安全是非常非常重要且基础的工作,因为账户很大程度上是业务安全体系的基石,账号安全一旦失守,只会带来后续更多的问题,补救这些问题需要付出的成本要远远大于做好账户安全防护本身。当然账号安全本身是非常复杂的系统工程,这里我们只是针对撞库这个场景给出一些最佳实践供参考:
这点不少站点现在已经做得很好了,但是还有相当多的应用允许用户使用 111111 这样的弱密码。同时也特别注意,不要忽略小程序、App 等非网页环境的注册接口。
这点主要针对企业内部员工,毕竟记住一个密码已经很痛苦了,这带来的用户体验将会直线下降。
这里的接口主要包括登录、注册、找回密码、获取短信验证码等,“人机防控”指的是将这些接口中“机器”的访问请求和“真实的人”区别出来,在文章开头我们已经讲过,真实情况下攻击者几乎没有手动实施攻击的情况,如果能将大部分针对账号的“机器流量”识别出来并拦截,会是安全水位很大的一个提升。从技术手段来说,常见的有使用图形验证码、封禁高频请求的 IP/会话、部署人机识别的 SDK 组件等等,但采用图形验证码等方式存在用户体验差以及被破解的问题。
如转账前通过人脸识别、指纹声纹、短信/邮件验证码、身份证末位数字验证等机制来确认当前操作来自账号拥有者。
区别于“人机”的技术手段,这里主要是从业务角度(比如高频发帖、异常转账等等),对一些行为上不正常的账号进行监控和处罚,作为技术防控的补充。
如果遇到撞库等账户安全问题的困扰,又没有足够专业的团队或精力来按照上述建议进行对抗,建议选择一款合适的安全工具来应对。一般来说, 新昕科技的防撞库防火墙产品就能有效应对撞库攻击,并且真正无感。其内置了撞库、短信防轰炸等AI模型,应对账户注册、登录、找回密码等场景,做到实时防护,风险大盘可以实时查看,攻防情况尽在掌握。从这个角度来看,对于企业来说,选择一款功能丰富强大的安全工具往往可以起到事半功倍的效果。
有人的地方就有江湖,有账号的地方就有撞库。密码制度本身因安全需求而生,却也带来了撞库这类的风险。我们相信,未来密码会越来越多的被其他体验更好、安全性更高的身份校验方式所取代,而这些方式或许又存在隐私、合规相关的问题。最好的方案似乎永远要在安全、便利、隐私这几个因素之间互相平衡。着眼于当下,用户名/密码的形式依然主导着绝大多数站点的账号管理方式,因此以撞库攻击为代表的账号安全问题依然需要引起个人用户和企业的足够重视。希望本文能够给您带来一些参考和帮助,共同建设更安全的互联网!