“撞库”是安全领域经常发生的一种黑产攻击事件。在常见的安全防护中,安全团队通常会在登陆接口设置安全策略来应对攻击。可是,一旦黑产更换攻击规则,就会导致策略失效。
在这样的情况下,我们需要的就不仅仅的表层的“防火墙”,而是一套完整的业务风控系统,它可以有效的规避风险,降低损失。
在这篇文章中,我们将介绍如何利用开源风控系统TH-Nebule(星云)防止“撞库”攻击。
文章会从“撞库”的介绍逐渐深入到对TH-Nebula的使用,包括:如何部署、如何使用、和为什么需要风控系统等。阐述为什么需要一套“系统”去解决业务安全问题,接着手把手教你部署本系统,以及如何利用咱们这套风控来阻断风险,并提供模拟测试demo。
TH-Nebula是由威胁猎人开源的风控系统,目前源码已放在Github和Gitee上,完全开放所有源代码,文档,以及安装包。
地址:
0x00 如何防止撞库
1.什么是撞库?
说到撞库,先得从”社工库”说起,社工库是社会工程学数据库的简称,这个数据库里找包含了每个人的各种行为记录(在不同网站上的账号、密码、分享的照片、信用卡记录、通话记录、短信记录、开房记录等等)。
所以当黑客想尝试登录某个网站或者app时,就会用”社工库”里的信息去挨个尝试登录,”撞”出一个个正确账号。
2. 如何防止撞库?
首先从企业的web服务视角来看,如果发现以下几种情况,基本可以判定是在撞库:
- 一个账号在某个较短的时间内,有多次密码尝试。
- 一定时间内相同密码的出现频次非常高
- 同一个IP或同一个设备,在短时间内使用不同账号密码多次尝试登录
在这种情况下,最简单粗暴的方法就是直接在登陆接口加安全策略。
如,
- 针对a情况,就限制一天之内密码错误次数。
- 针对b情况,就针对频率特别高的密码禁止登录(或者校验手机短信/密保问题之后才能登录)。
- 针对c情况,就对IP或者设备唯一id进行阈值限制,如限制1分钟内访问登录接口次数<50次
看起来简单粗暴的方法是可以起到防护作用,但实际上,道高一尺魔高一丈,业务安全就没有一劳永逸的方案。只要有利可图的前提下,黑灰产就会不断的变换自己的规则,来“攻破”业务的防护。
比如,业务限制的是1分钟访问限制<50次,那黑产很容易就可以改成40次就能绕过你的策略,这对于他来说只