网站被黑客扫描撞库该怎么应对防范?

最近发现有大量的 IP 在刷我们网站的登录页面,是通过代理 + 模拟正常用户登录(包含 UA、session 等)的方式来验证用户名密码的有效性。(我猜他应该是有一个很大的库,我抓了其中一台机器一晚上的数据就要 500w+)

刚开始以为封了 IP 就可以了,但是发现封了 IP 也没用。他的代理 IP 地址一直在变。因为他模拟的是正常的用户请求,研发也没有办法。

请教大家,碰到这样的情况应该怎么应对和防范。 

社区编辑更新于 2018-05-10 09:32
1 个回答
  • jennie2018-05-10 09:59

    在安全领域向来是先知道如何攻,其次才是防。在介绍如何防范网站被黑客扫描撞库之前,先简单介绍一下什么是撞库:撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户。因为很多用户在不同网站使用的账号密码大多是相同的,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网站。


    那么碰见撞库之后,我们如何防护呢?网易云易盾安全专家刘庆认为:撞库一般有以下几种形式,每种形式有一些不同的处置策略。但是实际情况是,被攻击的网站可能会同时面临几种不同类型的撞库,毕竟大家手里拿到的社工库非常多,撞库的成本也非常低。


    社工库是社会工程学数据库的简称,社工库是黑客用来记录攻击手段和方法的数据库,这个数据库中有大量信息,甚至可以找到每个人各种行为记录(每个人在每个网站上的账号、密码、分享的照片、信用卡记录、通话记录、短信记录、开房记录等等)。


    最常见的三种撞库方法:

    第一种:用n个密码字典撞m个账号,这个的表象是,一个账号在某个较短的时间内,可能会有多次密码尝试。所以,可以在账号层加限制措施,比如:一天内,一个账号,密码错误次数超过5次时,1天之内禁止登陆(或者校验手机短信/密保问题之后才能登陆)。


    第二种:用几个密码撞n个账号,这个的表象是,密码出现的频率会非常高,所以,可以统计一段时间内每个密码的错误次数,超过一定阈值时,这个密码在一段时间内禁止登录(或者校验手机短信/密保问题之后才能登陆)。


    第三种:用n组一一对应的账号密码来再撞库,这种情况的撞库单纯从账号、密码的维度来看,不会有明显的异常。所以,需要一些其他的应对措施。比如:

    1)IP封禁,如果一段时间内,单个IP地址,密码错误次数超过阈值,则禁止这个IP一段时间再登录(或者校验手机短信/密保问题之后才能登陆)。不过,如大家所说,现在代理IP相当廉价,从IP层面来封禁基本上没啥作用。


    2)建立IP画像库,对代理IP、IDC IP等高危的IP直接禁止登陆(或者校验手机短信/密保问题之后才能登陆)。自己建立IP画像库成本可能会有点高,可以考虑采购安全厂商的类似服务。


    3)现在比较火的行为验证码,比如:拖条、点选、拼图等各种花样的验证码。只是说,如果之前登录不需要验证码,现在要加上一个验证码,估计要和产品撕逼。一般来说最后为了后期的运营,产品也会同意加上验证码。


    4)从设备层面来识别和封禁,通过在客户端植入sdk,收集用户端的设备信息,从设备层面来做高频策略,或者,直接识别出非正常的设备,然后对设备进行封杀。


    5)从行为层面来识别和封禁,和上面一条一样,通过客户端植入sdk,收集用户在登录页面的交互行为,通过机器学习、大数据建模,训练出正常用户、异常用户的行为模型,在交互行为层面,将撞库的行为识别出来。这个需要有预先训练好的行为模型,现在机器学习那么好,不说大家也都知道,自己训练一个模型肯定需要很多标注数据,这也就意味着成本。所以,还是建议寻找安全厂商还做,毕竟专业的人做专业的事,靠谱!


    上面列举的这些措施,没有哪一个是一劳永逸的,都是需要不断对抗升级,毕竟撞库的手段也会不断的进化,我们能做的是不断优化策略,不断提高撞库的成本。


    所以,最好的方式是采购安全厂商的相关服务。把攻防对抗的事交给安全厂商来做,咱们专注做自己的业务,这样性价比会更高。


    利益相关:网易云易盾已有验证码服务(滑块验证码,拼图验证码,拖动式验证码,点选验证码),及登录保护服务,点击链接均可免费试用。