某网站被曝“信息泄露”事件,使拖库、撞库这两个黑产中的专有术语再次呈现于公众舆论面前。上次从攻击实现角度,对拖库、撞库攻击进行简单分析;从安全防护设计、建设运维角度,给出针对这两种攻击实践总结的安全防御40条策略。本文主要从撞库角度出发和大家探讨一下相关内容和技术。
1、登录认证的防撞库设计
(1)生物特征识别及认证
随着生物特征识别技术的发展,当前如TouchID 指纹认证身份已基本成熟,随之越来越多的生物特征识别技术的应用,必然代替传统的用户名/ 密码认证方式,因此当前基于用户名/ 密码的撞库未来将失去意义。采用生物特征识别的认证自然也就成为当前最好的防撞库措施。
笔者建议有能力的企业,可以采用指纹、语音、人脸、图案等认证方式彻底取代静态密码的方式,即彻底防范当前的撞库攻击。采用生物特征识别的优点、缺点是:
- 当前的信息泄露造成的撞库将失去意义,可以彻底防范该风险。
- 生物特征成为敏感信息,握手、沟通交流、视频聊天都有被窃取,危害认证的可能。
难易程度: ★★★☆☆
防范效果: ★★★★★
(2)第二信道认证
当前的网银登录为提高安全性,既有采用手机动态验证码的,也有使用USBKey 的,还有采用一次一密动态令牌的,无论何种措施都是通过第二种通信通道来弥补静态密码认证的不足。因此,若在一次认证中采用多种通信通道完成认证,同样可以防范当前的撞库攻击。
采用第二信道的优点、缺点是:
- 第二信道使用物理接触的方式,能够完全避免当前的撞库攻击。
- 第二信道是对静态密码的补充,使用场景可能受到局限,如平板很难使用USBkey 认证、手机丢失即无法接收动态验证码完成认证。
- 普通网站采用第二信道认证,成本高,用户体验差。
难易程度: ★☆☆☆☆
防范效果: ★★★★★
(3)独特的行为策略(行为指纹)
前文中,笔者对撞库的原理进行了简单说明——攻击者获取用户在A 网站的账户尝试登录B 网站。基于此场景,笔者认为在密码相同的情况下,如果不同网站设计不同的登录认证的行为策略(行为指纹),那么攻击者只知密码不知策略,也一样无法完成撞库攻击。常见的输入行为策略如击键速度、时间间隔、字符分段习惯、输入顺序习惯等。
笔者根据常见的行为策略简单设计了下列基于 “分段字符长度”的策略供读者参考。
登录密码分段输入,可以使用空格等作为分段输入的标记提高体验,也可以在密码输入框直接分段。
认证过程除了认证密码的密文,还要对“分段字符长度”这一策略的密文进行验证。
数据表除了密码段的加密存储,更重要的是“分段字符长度”的加密存储,只要分段字符长度的策略密文足够强壮,即无法破解,撞库便失去意义和暴力猜测无区别。
基于“分段字符长度”策略的登录认证设计的优点、缺点是:
- 攻击者已知密码,不知策略,同样无法撞库,只能暴力尝试。
- 必须保证分段字符长度策略密文足够强壮,若被破解将失去防撞库的意义。
- 分段策略依赖用户习惯,如密码为loveu123,那么很容易猜测分段为love/u/123。
难易程度:★★☆☆☆
防范效果: ★★★☆☆
(4)使用登录图灵
除了颠覆传统静态密码认证或创新认证方式之外,当前防范撞库的通用方法之一是使用登录验证码。笔者认为登录验证码只是区别人与机器行为的一种措施,目的是提高自动化撞库的难度和成本,并不能从根本上防范撞库攻击的发生,但由于当前撞库攻击的特征,合理使用并优化登录验证码策略,其防范效果还是相当之好,因此,笔者认为其是当前性价比最高的一种防撞库措施。
使用登录验证码防撞库的优点、缺点是:
- 简单易行,验证码策略灵活、优化容易,用户体验好。
- 验证码必须要足够强壮,否则能够被绕过将无济于事。
- 不能从根本解决撞库攻击,人工撞库无法防范。
难易程度:★☆☆☆☆
防范效果: ★★★★☆
2、登录的撞库攻击
登录的撞库攻击识别、监控在系统中加强对撞库的识别和监控,是防范和处置撞库攻击的最佳实践方法和必要手段。笔者认为可以从 “身份”、“ 行为”两个角度出发,构建适合企业自身业务的防撞库措施。
(1)身份的识别监控
此举是在登录认证过程中,除了密码等必要认证信息外,必须带有可接受的其他身份信息作为辅助,来完成整个认证过程。带有辅助身份信息完成认证的目的是为了加大区分真实用户登录过程与撞库攻击登录过程的唯一认证参数的维度。常见的措施如下:
- 加入服务端推送的唯一参数标识,如时间戳、Token等;
- 加入客户端自身的唯一参数标识,如SSID、IMSI 等;
- 加入陷阱参数;
- 灵活使用Cookies、Flash cookies、帆布指纹等技术;
(2)行为的识别监控
此举是在日常的登录认证过程中,记录真实用户的登录行为和习惯,形成该用户的行为特征库,当出现撞库攻击时,由于不符合日常的行为特征或客观事实来进行下一步的防范,不同的行为特性细化不同的下一步防范措施和阻断策略。常见的措施如下:
- 识别监控网路IP 地址、物理登录地点、终端类型等行为的异常;
- 识别监控请求次数、数量、时间、频率、分布、比率等行为的异常;
- 识别一些客观事实行为;
- 监控反馈交互过程的异常;
相关链接:https://blog.nsfocus.net/information-leakage-thinking-library-collision-2/
如果您需要了解更多内容,可以
加入QQ群:486207500、570982169
直接询问:010-68438880-8669