“Question”为网易云易盾的问答栏目,将会解答和呈现安全领域大家常见的问题和困惑。如果你有什么疑惑,也欢迎通过邮件(zhangyong02@corp.netease.com)提问。
在安全领域向来是先知道如何攻,其次才是防。针对题主的问题,在介绍如何防范网站被黑客扫描撞库之前,先简单介绍一下什么是撞库。
撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对于的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户。因为很多用户在不同网站使用的账号密码大多是相同的,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网站。
那么碰见撞库之后,我们如何防护呢?为此我们咨询了网易云易盾安全专家。根据他的描述:撞库一般有以下几种形式,每种形式有一些不同的处置策略。但是实际情况是,被攻击的网站可能会同时面临几种不同类型的撞库,毕竟大家手里拿到的社工库非常多,撞库的成本也非常低。
社工库是社会工程学数据库的简称,社工库是黑客用来记录攻击手段和方法的数据库,这个数据库中有大量信息,甚至可以找到每个人各种行为记录(每个人在每个网站上的账号、密码、分享的照片、信用卡记录、通话记录、短信记录、开房记录等等)
最常见的三种撞库方法:
第一种:用n个密码字典撞m个账号,这个的表象是,一个账号在某个较短的时间内,可能会有多次密码尝试。所以,可以在账号层加限制措施,比如:一天内,一个账号,密码错误次数超过5次时,1天之内禁止登陆(或者校验手机短信/密保问题之后才能登陆)。
第二种:用几个密码撞n个账号,这个的表象是,密码出现的频率会非常高,所以,可以统计一段时间内每个密码的错误次数,超过一定阈值时,这个密码在一段时间内禁止登录(或者校验手机短信/密保问题之后才能登陆)。
第三种:用n组一一对应的账号密码来再撞库,这种情况的撞库单纯从账号、密码的维度来看,不会有明显的异常。
所以,需要一些其他的应对措施。比如:
IP封禁,如果一段时间内,单个IP地址,密码错误次数超过阈值,则禁止这个IP一段时间再登录(或者校验手机短信/密保问题之后才能登陆)。不过,如大家所说,现在代理IP相当廉价,从IP层面来封禁基本上没啥作用。
建立IP画像库,对代理IP、IDC IP等高危的IP直接禁止登陆(或者校验手机短信/密保问题之后才能登陆)。自己建立IP画像库成本可能会有点高,可以考虑采购安全厂商的类似服务。
现在比较火的行为验证码,比如:拖条、点选、拼图等各种花样的验证码。只是说,如果之前登录不需要验证码,现在要加上一个验证码,估计要和产品撕逼。一般来说最后为了后期的运营,产品也会同意加上验证码。
从设备层面来识别和封禁,通过在客户端植入sdk,收集用户端的设备信息,从设备层面来做高频策略,或者,直接识别出非正常的设备,然后对设备进行封杀。
从行为层面来识别和封禁,和上面一条一样,通过客户端植入sdk,收集用户在登录页面的交互行为,通过机器学习、大数据建模,训练出正常用户、异常用户的行为模型,在交互行为层面,将撞库的行为识别出来。这个需要有预先训练好的行为模型,现在机器学习那么好,不说大家也都知道,自己训练一个模型肯定需要很多标注数据,这也就意味着成本。所以,还是建议寻找安全厂商还做,毕竟专业的人做专业的事,靠谱!
上面列举的这些措施,没有哪一个是一劳永逸的,都是需要不断对抗升级,毕竟撞库的手段也会不断的进化,我们能做的是不断优化策略,不断提高撞库的成本。
所以,最好的方式是采购安全厂商的相关服务(比如:网易的登录保护、验证码服务等),把攻防对抗的事交给安全厂商来做,咱们专注做自己的业务,这样性价比会更高。