什么是撞库?(这里不同于台球的撞库)
撞库:以大量的用户数据位基础,利用用户相同的注册习惯(相同的用户名和密码),尝试登陆其它的网站。
(参考“CSDN(微博)泄密门”引发的思考”)
另一描述:
撞库是一种针对数据库的攻击方式,方法是通过攻击者所拥有的数据库的数据通攻击目标数据库可以理解为用户在A网站被盗的账户密码来登陆B网站,因为很多用户在不同网站使用的是相同的账号密码因此可以起到获取用户在B网站的用户账户从而达到目的。
被撞库攻击,封IP是不起作用的,因为攻击者使用的是代理IP,过程是模拟正常的用户请求,所以IP地址一直更换。那么如何预防及处理呢?
根据网上一些社区里的总结,最简单最基本的方式是登陆的时候增加验证码。由于破解验证码的程序越来越厉害,若防止验证码破解可以适当增加验证码生成的强度。(网友认为业内做的比较好的验证码,有淘宝的、百度贴吧的中文验证码。)
设置错误登陆次数,同一IP连续错误登陆x次,那么需设定一定时间之内不可再次登陆,对于顽固尝试的(一定时间后又再次重试,可考虑自动启用网站“保护模式”,直接封掉该IP,关于保护模式的设想,后方详谈。)
有的时候攻击者能力比较高,可以搞到好多的IP,每个IP尝试两三次,属于低频度撞库,用上方的设置错误登陆次数难以防止。那么可以考虑使用“异地IP”功能,用户的登陆IP如果由一个城市变更到另外一个城市,登陆的时候需增强内容。如登陆的时候需验证手机号码或者邮箱方可登陆。
延时登陆措施,用户登陆成功后,不立马返回成功通知,可以在y秒之后提示成功并跳转入登陆后的页面。
除了上述的方式,网站还可无间断记录并统计用户的“登陆”操作。一般用户登陆都会选择浏览器记住用户名及密码,下次就可以不需登陆而直接是登陆的状态,那么每天网站整体登陆的用户是一定的,如果遇到撞库攻击,突然有大量的用户尝试登陆,立马自动采取“保护措施”。这个工作像是门卫老大爷,院子里面来来往往的人他可能不一定都认识,但是平时每天进进出出的人流量是基本稳定的,如果某一天突然好多人来要进院子里面,大爷得赶紧先把门关了,搞清楚是什么情况。
这里需要说一下我提出来的“保护模式”,保护模式下区别于正常的状态,该模式下,可以增加用户登陆的审核度,如需要验证手机或者邮箱或者回答问题等,甚至是所有能用的全部用上。上方提到的放攻击措施(无间断记录和统计登陆操作的措施不能停止,因为可以使用该措施来自动激活“保护模式”),也可在平常不用,放进保护模式的功能中,当监测到网站的登陆请求数量突增,自动启用保护模式。也许有人没搞明白,那为什么不一开始就把所有招都用上呢?上面的措施大家也看到了,保护网站不被攻击也许成功了,但是用户的体验度下降了,你想你在某个网站里面,每次登陆的时候需要好多验证,只是个登陆操作搞了半个多小时,你心情如何?所以,过分的保护,在平常,对网站来说,会造成用户的流失。所以,“保护模式”也可以分出一级、二级、三级等内容。
上述的内容,是我根据网上的一些内容和自己的一些想法所整理成的应对“撞库”攻击的初步想法,在具体实施的时候,还需要完善的逻辑和缜密的代码。希望这些内容,能够对网络安全维护人员有所帮助。