基于流式计算的暴力破解确定方法和系统与流程

文档序号:15497734发布日期:2018-09-21 22:02阅读:268来源:国知局

本发明涉及互联网技术领域,特别涉及一种基于流式计算的暴力破解确定方法和系统。



背景技术:

暴力破解攻击指的是攻击者通过系统地组合所有可能性(例如:登录时用到的账户名、密码等),尝试所有的可能性,从而破解出用户的账户名、密码等敏感信息。即,暴力破解攻击是一种通过巨大的尝试次数来获得一定成功率的破解方式。

对于这种破解方式而言,反应在操作系统(应用程序)的日志上,就是有很多登录失败的条目,且这些条目的ip地址通常是是同一个ip地址,当然也可能是不同的ip地址会使用同一个账户、不同的密码进行登录。

虽然暴力破解攻击并不是很复杂的攻击类型,但是如果无法对其进行有效的流量监控和分析,那么还是有可能破解成功的。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种基于流式计算的暴力破解确定方法和系统,以达到简单高效地发现确定暴力破解攻击的目的。

本发明实施例提供了一种基于流式计算的暴力破解确定方法和系统和设备。

一种基于流式计算的暴力破解确定方法,包括:

实时获取登陆失败数据;

根据所述登陆失败数据,确定是否存在暴力破解;

在确定存在暴力破解的情况下,触发预警。

在一个实施方式中,实时获取登陆失败数据,包括:

缓冲层对来自收集层的登陆失败数据进行存储;

所述缓冲层确定是否接收到来自处理层的数据获取请求;

在确定接收到来自所述处理层的数据获取请求的情况下,向所述处理层传送登陆失败数据。

在一个实施方式中,确定是否存在暴力破解,包括:

确定时间窗口内的目标ip地址登陆失败的次数是否超出预设阈值,其中,所述时间窗口包括:固定时长的时间窗口和/或递增时长的时间窗口。

在一个实施方式中,在所述时间窗口为固定时长的时间窗口的情况下,确定是否存在暴力破解,包括:

在所述固定时长的时间窗口内统计目标ip地址登陆失败的次数;

判断所述次数是否超出预设阈值;

在确定超出所述预设阈值的情况下,确定存在暴力破解。

在一个实施方式中,在所述时间窗口为递增时长的时间窗口的情况下,确定是否存在暴力破解,包括:

统计单位时间内目标ip地址登陆失败的次数;

在递增窗口内判断所述次数是否超出预设阈值,其中,不同的递增窗口对应不同的预设阈值;

在确定出所述次数超出任意一个递增窗口对应的预设阈值的情况下,确定存在暴力破解。

在一个实施方式中,所述登陆失败数据包括:登陆ip、登陆账号和登陆时间。

一种基于流式计算的暴力破解确定系统,包括:

收集层,用于收集登陆失败数据,并将所述登陆失败数据发送至缓冲层;

缓冲层,用于接收来自所述收集层的登陆失败数据,并响应于来自处理层的数据获取请求,将所述登陆失败数据发送至所述处理层;

所述处理层,用于实时获取登陆失败数据,并根据所述登陆失败数据,确定是否存在暴力破解;在确定存在暴力破解的情况下,触发预警。

一种基于流式计算的暴力破解确定系统,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下步骤:

实时获取登陆失败数据;

根据所述登陆失败数据,确定是否存在暴力破解;

在确定存在暴力破解的情况下,触发预警。

在一个实施方式中,所述处理器实时获取登陆失败数据,包括:

缓冲层对来自收集层的登陆失败数据进行存储;

所述缓冲层确定是否接收到来自处理层的数据获取请求;

在确定接收到来自所述处理层的数据获取请求的情况下,向所述处理层传送登陆失败数据。

在一个实施方式中,所述处理器确定是否存在暴力破解,包括:

所述处理器确定时间窗口内的目标ip地址登陆失败的次数是否超出预设阈值,其中,所述时间窗口包括:固定时长的时间窗口和/或递增时长的时间窗口。

在一个实施方式中,在所述时间窗口为固定时长的时间窗口的情况下,确定是否存在暴力破解,包括:

在所述固定时长的时间窗口内统计目标ip地址登陆失败的次数;

判断所述次数是否超出预设阈值;

在确定超出所述预设阈值的情况下,确定存在暴力破解。

在一个实施方式中,在所述时间窗口为递增时长的时间窗口的情况下,确定是否存在暴力破解,包括:

统计单位时间内目标ip地址登陆失败的次数;

在递增窗口内判断所述次数是否超出预设阈值,其中,不同的递增窗口对应不同的预设阈值;

在确定出所述次数超出任意一个递增窗口对应的预设阈值的情况下,确定存在暴力破解。

在一个实施方式中,所述登陆失败数据包括:登陆ip、登陆账号和登陆时间。

一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述方法的步骤。

在本发明实施例中,基于流式计算,通过实时获取登陆失败数据,来确定是否存在暴力破解,并在确定存在暴力破解条件的情况下,触发预警,从而解决了现有的用户请求流量保存起来,在需要的时候(或定时)对数据进行分析,而导致的无法及时有效发现暴力破解的技术问题,达到了简单高效地发现确定暴力破解攻击的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1是根据本发明实施例的基于流式计算的暴力破解确定方法的方法流程图;

图2是根据本发明实施例的基于流式计算的暴力破解确定系统的层级示意图;

图3是根据本发明实施例的流式计算方式的结构示意图;

图4是根据本发明实施例的基于流式计算的暴力破解确定设备的架构示意图;

图5是根据本发明实施例的基于流式计算的暴力破解确定装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

为了有效监测出暴力破解攻击,现有应用较多的方式是先收集数据,然后,将用户请求流量保存起来,在需要的时候(或定时)对数据进行分析,从而确定出暴力破解。

然而,考虑到现实暴力破解攻击场景中,攻击流量一般都是不断的产生,需要根据当前的数据实时作出判断,且由于数据量巨大,如果采用人工一条条进行筛选判断的方式,成本太高。因此,如果设定某个触发条件,当情况满足该触发条件的时候,系统主动进行预警,那么可以大大减少发现暴力破解的成本。

基于此,在本例中提供了一种基于流式计算的暴力破解的确定方法,如图1所示,可以包括如下步骤:

步骤101:实时获取登陆失败数据;

其中,登陆失败数据至少包括以下信息:登陆ip、登陆账号和登陆时间。登陆失败数据可以是通过收集系统中登陆失败的日志获得的。

例如,可以设置一个数据收集层,通过数据收集层收集系统中登陆失败的日志,从而获取得到登陆失败数据。

考虑到设备的瞬时处理能力是有上限的,为了避免在暴力破解发生的时候,有大批量的数据进入,导致设备处理压力过大,可以设置一个缓冲层,只有向缓冲层请求数据的时候,缓冲层才将数据提供给处理设备进行处理。在一个实施方式中。实时获取登陆失败数据,可以包括:

s1:缓冲层对来自收集层的登陆失败数据进行存储;

s2:所述缓冲层确定是否接收到来自处理层的数据获取请求;

s3:在确定接收到来自所述处理层的数据获取请求的情况下,向所述处理层传送登陆失败数据。

步骤102:根据所述登陆失败数据,确定是否存在暴力破解;

其中,暴力破解条件可以包括:预定时长内目标ip地址登陆失败的次数超出预设阈值。例如,一分钟登陆次数超出50次。具体的时长和数值可以根据实际需要选择,本申请对此不作限定。

考虑到暴力破解的时间随意性,可以设置多个不同时间窗口进行判断,为不同时间窗口设置不同的阈值。即,可以确定时间窗口内的目标ip地址登陆失败的次数是否超出预设阈值,其中,所述时间窗口可以包括:固定时长的时间窗口和/或递增时长的时间窗口。

例如,在时间窗口为固定时长的时间窗口的情况下,可以在所述固定时长的时间窗口内统计目标ip地址登陆失败的次数,然后,判断次数是否超出预设阈值,在确定超出所述预设阈值的情况下,确定存在暴力破解。

在时间窗口为递增时长的时间窗口的情况下,可以统计单位时间内目标ip地址登陆失败的次数;然后,在递增窗口内判断次数是否超出预设阈值,其中,不同的递增窗口对应不同的预设阈值;在确定出次数超出任意一个递增窗口对应的预设阈值的情况下,确定存在暴力破解。即,暴力破解条件可以包括:多个预定时长,以及所述多个预定时长中各个预定时长对应的预设阈值。

在实现的时候,可以仅设置一个固定时长的时间窗口,例如:设置1分钟内登陆失败超过50次就确定满足暴力破解触发条件。也可以是设置递增的时间窗口,例如,5分钟登陆失败超过200次,10分钟登陆失败超过400或者,15分钟登陆失败超过600次。也可以是设置规定窗口和递增窗口相结合的方式,例如,可以设置1分钟登陆失败超过20次、5分钟登陆失败超过100次、60分钟登陆失败超过1500次这样三个判断规则,只要满足这三个规则中的一个,就确定满足暴力破解条件。在实际实现的时候,具体如何设置触发条件,可以根据实际需要选择,本申请对此不作限定。

步骤103:在确定存在暴力破解的情况下,触发预警。

在确定出暴力破解之后,可以触发进行预警,其中,预警可以是例如生成ip地址列表,该列表中记录有存在暴力破解可能的ip地址,或者是采用语音预警、文字预警等等方式进行暴力破解预警。具体采用哪种方式可以根据实际需要选择,本申请对此不作限定。

上述的暴力破解的确定方法可以通过流计算平台形成任务拓扑的方式实现。例如,可以通过但不限于通过以下流计算平台之一实现:storm、spark-streaming等。

在本例中还提供了一种暴力破解确定系统,如图2所示,可以包括:收集层201、缓冲层202和处理层203。其中:

收集层201,用于收集登陆失败数据,并将所述登陆失败数据发送至缓冲层;

缓冲层202,用于接收来自所述收集层的登陆失败数据,并响应于来自处理层的数据获取请求,将所述登陆失败数据发送至所述处理层;

处理层203,用于实时获取登陆失败数据,并根据所述登陆失败数据,确定是否存在暴力破解;在确定存在暴力破解的情况下,触发预警。

下面结合一个具体实施例对上述基于流式计算的暴力破解发现方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

在本例中提供了一种暴力破解检测方法,以更及时、高效地检测到暴力破解攻击具体地,可以基于流式计算,及时高效的检测到暴力破解攻击,并根据预定的时间窗口阈值及时通知预警。

该检测方法可以按照如下三层架构实现:

1)收集层:用于收集系统中登陆失败的日志,具体的收集方法可以根据实际情况和需求选择,本申请对此不作限定。对于收集到的登陆失败的日志,可以是收到之后就立即发送至后续的缓冲层,也可以是累计到一定数量再一起传送至缓冲层,对此,本申请不作限定。

2)缓冲层:考虑到一旦发生了暴力破解攻击,那么将有大量的数据流传入处理层,处理层可能会发生崩溃。

为此,考虑到可以设置缓冲层,通过该缓冲层对进入处理层的数据进行缓冲存储。缓冲层相当于一个中间过渡层,将来自收集层的数据按照预设规则传送至处理层。可以设置为处理层向缓冲层发送数据请求,缓冲层才将数据发送给处理层,即,是否传送数据由处理层来决定,在处理层确定可以接收数据的情况下,向缓冲层请求数据。具体的,缓冲层可以实现多种分布式消息系统,例如:rabbitmq、activemq、zeromq、kafka等。

3)处理层,本层由流计算平台构成。

考虑到由于流式计算具有低延迟、可扩展和高容错等优点,且流式计算可以将流式数据不经存储直接在内存中进行实时计算,因此,可以由流计算平台构成处理层。例如,可以由但不限于以下的流计算平台之一构建处理层:storm、spark-streaming等。

例如,以storm为例,storm作为较为常用的流式计算平台之一。首先,可以将进入平台的流量按照计算任务构建任务拓扑。任务拓扑可以是由多个spout与bolt构成的有向无环图,如图3所示,spout用于接收数据,并将数据发送给bolt,由bolt完成例如:过滤、聚合、查询等计算。

具体的,处理层spout在收到一条登陆失败的日志后,将收到的登陆失败日志发送给bolt1,由bolt1将日志中包含的登陆ip、登陆账号和登陆时间等属性解析出来,发送给bolt2;然后,bolt2以登陆ip作为主键,以时间窗口(例如:1分钟、5分钟、60分钟)分别汇总统计,统计完成后,发送给bolt3;bolt3根据时间窗口设定的一些阈值,当时间窗口内的某个ip登陆失败次数超出阈值,则可以发起预警。

例如,可以采用如下处理方式:

1)spout处理

收集到日志记录“apr2002:33:44localhostsshd[11760]:failedpasswordforrootfrom192.168.118.1port52345ssh2”,将该日志记录发送到bolt1;

2)bolt1处理

解析日志,获得日志属性:登陆ip(192.168.118.1)、登陆账号(root)、登陆时间(2017-04-2002:33:44),将这些日志属性发送给bolt2;

3)bolt2处理

以登陆ip为主键,汇总前一段时间窗口的数据。

假设在2017-04-2002:34:00得到数据如下:

1分钟窗口(即,2017-04-2002:33:00到2017-04-2002:33:59),该ip失败次数为60;

5分钟窗口(即,2017-04-2002:29:00到2017-04-2002:33:59),该ip失败次数为100;

60分钟窗口(即,2017-04-2001:33:00到2017-04-2002:33:59),该ip失败次数为200。

可以将这些数据结果发送给bolt3。

4)bolt3处理:

假设预先设定的阈值为:1分钟内登陆失败超过50次,或5分钟登陆失败超过200次,或60分钟登陆失败超过2500次;由于1分钟内的统计结果触发了1分钟窗口阈值,那么可以触发预警。

具体的,还可以排除来自用户的正常访问并根据优先级排列出最严重最紧急的威胁,然后对这些威胁进行处理。

本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图4是本发明实施例的一种暴力破解检测方法的服务器的硬件结构框图。如图4所示,服务器10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的搜索方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述搜索方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

请参考图5,在软件实施方式中,可以包括获取单元501、确定单元502、触发单元503。其中:

获取单元501,用于实时获取登陆失败数据;

确定单元502,用于根据所述登陆失败数据,确定是否存在暴力破解;

触发单元503,用于在确定存在暴力破解的情况下,触发预警。

在一个实施方式中,获取单元501具体是缓冲层对来自收集层的登陆失败数据进行存储;缓冲层确定是否接收到来自处理层的数据获取请求;在确定接收到来自所述处理层的数据获取请求的情况下,向所述处理层传送登陆失败数据。

在一个实施方式中,确定单元502具体可以确定时间窗口内的目标ip地址登陆失败的次数是否超出预设阈值,其中,所述时间窗口可以包括:固定时长的时间窗口和/或递增时长的时间窗口。

在一个实施方式中,在所述时间窗口为固定时长的时间窗口的情况下,确定单元502可以按照以下方式确定是否存在暴力破解:

s1:在所述固定时长的时间窗口内统计目标ip地址登陆失败的次数;

s2:判断所述次数是否超出预设阈值;

s3:在确定超出所述预设阈值的情况下,确定存在暴力破解。

在一个实施方式中,在所述时间窗口为递增时长的时间窗口的情况下,确定单元502可以按照以下方式确定是否存在暴力破解:

s1:统计单位时间内目标ip地址登陆失败的次数;

s2:在递增窗口内判断所述次数是否超出预设阈值,其中,不同的递增窗口对应不同的预设阈值;

s3:在确定出所述次数超出任意一个递增窗口对应的预设阈值的情况下,确定存在暴力破解。

在一个实施方式中,上述登陆失败数据至少包括:登陆ip、登陆账号、登陆时间。

在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。

在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。

从以上的描述中,可以看出,本发明实施例实现了如下技术效果:通过实时获取登陆失败数据,来确定是否存在暴力破解,并在确定存在暴力破解的情况下,触发预警,从而解决了现有的用户请求流量保存起来,在需要的时候(或定时)对数据进行分析,而导致的无法及时有效发现暴力破解的技术问题,达到了简单高效地发现确定暴力破解攻击的技术效果。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1