一种攻击识别方法和装置转让专利

申请号 : CN201610659797.5

文献号 : CN106878247B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐飞谷胜才

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本发明提供一种攻击识别方法和装置,其中方法包括:在确定存储有业务请求中携带的请求端的标识特征时,获取预设时间段内所述标识特征对应的发生业务冲突的冲突次数;若所述预设时间段内的所述冲突次数达到阈值,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求。本发明降低了高并发攻击时的写入冲突对服务端的资源浪费。

权利要求 :

1.一种攻击识别方法,其特征在于,所述方法由攻击识别装置执行,所述方法包括:在确定存储有业务请求中携带的请求端的标识特征时,获取预设时间段内所述标识特征对应的发生业务冲突的冲突次数;

若所述预设时间段内的所述冲突次数达到阈值,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求,并拦截所述攻击者向统计服务器发送的所述业务请求;

所述发生业务冲突是至少两个业务请求要请求统计服务器对同一IP地址的请求次数进行写入的写入冲突;

所述方法还包括:当接收到服务端反馈的发生业务冲突的提示时,存储所述标识特征,并记录本次业务冲突;

所述记录本次业务冲突包括:

在第一近期最少使用缓存LRU Cache中存储本次业务冲突的请求端的标识特征,所述第一LRU Cache用于存储发生业务冲突的各个请求端的标识特征;

在与所述标识特征对应的第二LRU Cache中,存储本次业务冲突的冲突信息,所述冲突信息用于确定预设时间段内所述标识特征对应的冲突次数。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

若未存储所述请求端的标识特征,或者,预设时间段内所述标识特征对应的冲突次数未达到阈值,则将所述业务请求发送至服务端进行处理。

3.根据权利要求1所述的方法,其特征在于,当所述冲突信息包括:所述标识特征对应的各次冲突发生的冲突时间时,所述获取所述标识特征对应的发生业务冲突的冲突次数,包括:根据当前时间和预设时间段,获得包括在所述预设时间段内的多个冲突时间,所述冲突时间的数量即为所述标识特征对应的冲突次数。

4.根据权利要求1所述的方法,其特征在于,所述第一LRU Cache的容量为至少用于存储预设数量的标识特征;

当所述冲突信息包括冲突时间时,所述第二LRU Cache的容量为至少用于存储预设数量的冲突时间,所述预设数量等于所述阈值对应的冲突次数。

5.一种攻击识别装置,其特征在于,所述装置包括:

信息获取模块,用于在确定存储有业务请求中携带的请求端的标识特征时,获取预设时间段内所述标识特征对应的发生业务冲突的冲突次数;

识别处理模块,用于在预设时间段内所述冲突次数达到阈值时,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求;并拦截所述攻击者向统计服务器发送的所述业务请求;所述发生业务冲突是至少两个业务请求要请求统计服务器对同一IP地址的请求次数进行写入的写入冲突;

所述装置还包括:信息存储模块,用于在接收到服务端反馈的发生业务冲突的提示时,存储所述标识特征,并记录本次业务冲突;

所述信息存储模块,在用于记录本次业务冲突时,包括:在第一LRU Cache中存储本次业务冲突的请求端的标识特征,所述第一LRU Cache用于存储发生业务冲突的各个请求端的标识特征;在与所述标识特征对应的第二LRU Cache中,存储本次业务冲突的冲突信息,所述冲突信息用于确定预设时间段内所述标识特征对应的冲突次数。

6.根据权利要求5所述的装置,其特征在于,

所述识别处理模块,还用于在未存储所述请求端的标识特征,或者,预设时间段内所述标识特征对应的冲突次数未达到阈值时,则将所述业务请求发送至服务端进行处理。

7.根据权利要求5所述的装置,其特征在于,

所述信息获取模块,用于当所述冲突信息包括:所述标识特征对应的各次冲突发生的冲突时间时,根据当前时间和预设时间段,获得包括在预设时间段内的多个冲突时间,所述冲突时间的数量即为所述标识特征对应的冲突次数。

8.根据权利要求5所述的装置,其特征在于,所述第一LRU Cache的容量为至少用于存储预设数量的标识特征;

当所述冲突信息包括冲突时间时,所述第二LRU Cache的容量为至少用于存储预设数量的冲突时间,所述预设数量等于所述阈值对应的冲突次数。

说明书 :

一种攻击识别方法和装置

技术领域

[0001] 本发明涉及计算机技术,特别涉及一种攻击识别方法和装置。

背景技术

[0002] 网络和计算机技术的发展,给人们的工作和生活都带来了很多便利;但是,随之也存在着安全风险,一些不法分子企图采用一些非法操作获取用户在网络中的隐密信息,而盗取用户的个人资源。例如,其中一种不安全行为即为扫号攻击,攻击者通常会采取高并发的模拟请求不断试探用户的账号登录信息,直至获取到正确的登录信息。并且,这种高并发请求式的攻击,经常会出现:同一个攻击者IP会以较高的频率发起两次或多次模拟请求,即该IP地址的攻击者发送模拟请求的频率非常高,间隔时间很短。
[0003] 网络安全管理人员通常也会采取一些措施来防范和识别上述的攻击,比如,对于扫号攻击,可以通过统计服务器记录每一个IP地址请求的次数,接收到每一次请求都要对应更新该IP地址的请求次数值,当该次数满足一定的阈值条件时则判定为扫号攻击。在IP请求次数的统计中,由于上述的高并发请求的特点,很可能出现同时有两个线程要对该同一个IP地址的请求次数进行写入(即要更新该IP的对应次数),这就会出现“写入冲突”。相关技术中,当出现冲突时,采取的措施是重试,服务器要再重新写一次。但是,如上所述的,这种高并发攻击的特点是请求频率很高,即使重写,继续发生冲突的概率也会相当高,而每次重写都会占用服务器的系统资源,造成资源浪费。

发明内容

[0004] 有鉴于此,本发明提供一种攻击识别方法和装置,以降低高并发攻击时的写入冲突对服务端的资源浪费。
[0005] 具体地,本发明是通过如下技术方案实现的:
[0006] 第一方面,提供一种攻击识别方法,所述方法包括:
[0007] 在确定存储有业务请求中携带的请求端的标识特征时,获取预设时间段内所述标识特征对应的发生业务冲突的冲突次数;
[0008] 若所述预设时间段内的所述冲突次数达到阈值,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求。
[0009] 第二方面,提供一种攻击识别装置,所述装置包括:
[0010] 信息获取模块,用于在确定存储有业务请求中携带的请求端的标识特征时,获取预设时间段内所述标识特征对应的发生业务冲突的冲突次数;
[0011] 识别处理模块,用于在预设时间段内所述冲突次数达到阈值时,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求。
[0012] 本发明实施例的攻击识别方法和装置,通过利用缓存存储冲突相关信息,可以通过该冲突相关信息确定发生业务冲突的请求端是否是攻击者,从而可以在识别到攻击时进行拦截,降低高并发攻击时的写入冲突对服务端的资源浪费。

附图说明

[0013] 图1为本发明实施例提供的一种扫号攻击的场景示意图;
[0014] 图2为本发明实施例提供的一种识别攻击冲突的应用示意图;
[0015] 图3为本发明实施例提供的一种信息存储的结构示意图;
[0016] 图4为本发明实施例提供的一种攻击识别方法的流程图;
[0017] 图5为本发明实施例提供的一种攻击识别装置的结构示意图;
[0018] 图6为本发明实施例提供的一种攻击识别装置的结构示意图。

具体实施方式

[0019] 扫号攻击是一种以自动机器行为执行用户名密码来进行模拟登录,尝试用户名密码信息是否正确的攻击方式。例如,如图1所示,终端11是一个被黑客控制的设备,用于作为扫号攻击的发起端。该终端11的IP地址是IP1,该终端11可以发起高并发式的攻击,如图1中的攻击1、攻击2、攻击3、攻击4等多次攻击,可以是以较高的频率发起,每一次攻击即终端11发起一次模拟登录,且每次攻击使用的用户名和密码可以不同;如果某一次登录成功,则攻击者就可以获取到用户的私密信息。
[0020] 上述扫号攻击对应的登录信息,可以是某个应用的注册用户的信息,比如,可以是一个购物网站的登录信息,很多的用户都在该购物网站进行了注册并在该网站进行购物,该网站也在每个用户的账号下存储了一些对应该用户的私密信息。为了防范扫号攻击,保护用户的信息安全,应用可以使用统计服务器来进行扫号攻击的识别,如图1所示,统计服务器12可以接收到很多业务请求,本例子中,该业务请求可以是登录请求,比如,一个正常的应用注册用户在自己的电脑上进行网站登录时,可以输入自己的用户名和密码请求登录,该电脑则发送登录请求。对于统计服务器12来说,其所收到的众多业务请求中,既包括正常用户的请求,也包括攻击者的业务请求,即图1中示例的终端11发送的攻击1、攻击2等多次攻击对应的登录请求。
[0021] 统计服务器12可以采用计数统计的方式判断是否发生扫号攻击,这种计数统计的方式可以记录每个业务请求对应的IP地址,以及该IP地址发起请求的次数,并将统计信息以key-value键值对的形式存储,其中,Key即为IP地址,value即为请求次数。举例来说,图1中的攻击者即终端11以高频率发起攻击,也就是说“IP1”这个IP地址将频繁的不断的进行登录请求,第一次接收到该请求时,统计服务器12可以记录“key=IP1,value=1”,第二次接收到请求时,还是该IP地址所发,统计服务器12要对键值对进行更新,更改为“key=IP1,value=2”,可以看到,每次接收到一个请求,要对该请求的源IP地址对应的value进行写入操作,进行value值的更新。
[0022] 但是,由于扫号攻击的特点即具有高并发性,容易引起一个问题,即同时有两个线程要对同一个IP地址对应的value进行写更新,这是由于较短时间内接收到该IP地址发起的两次请求所导致,那就有可能出现“写入冲突”,写入冲突是数据库为了保证数据准确性而采取的一个特性。并不是说扫号攻击的每次攻击请求都会导致写入冲突,但是扫号攻击的高并发特点使得写入冲突会以相当高的几率发生,并且很可能持续发生写入冲突。这种情况下,如果统计服务器侧在每次冲突发生时都进行重试,即重新写入,将严重浪费系统资源,尤其应当尽量避免将资源浪费在这种扫号攻击的非法请求的处理上。
[0023] 基于上述,本申请实施例提供了一种攻击识别方法,该方法的主要目的是,降低高并发攻击时的写入冲突对服务端的资源浪费,主要是识别业务请求冲突是扫号攻击的冲突还是正常的冲突,将扫号攻击的冲突识别出来,使得统计服务器12侧不再对这种冲突进行重写而浪费资源。如图2所示,本例子设置了攻击识别装置13,例如,如图2所示,该攻击识别装置13可以包括:一个第一缓存131、以及至少一个第二缓存132。例如,这里的缓存可以是LRU(least recently used,近期最少使用)Cache,LRU Cache是一种按照最近最少使用的原则将缓存中的部分对象移除的机制;其中,这里的第一缓存131和第二缓存132可以并不是在物理上限定的两块隔离的LRU Cache,而是可以根据存储内容的不同来区分,比如,第一缓存131中可以存储发生冲突时的请求端标识特征,而第二缓存132可以用于存储标识特征对应的冲突信息,比如冲突时间。该攻击识别装置13可以获取到终端11发送的业务请求中携带的请求端(比如,终端11)的标识特征(比如,终端11的IP地址),并且可以根据标识特征判断这是否是一次攻击;攻击识别装置13还可以在识别确定请求端是攻击端时,拦截攻击端向统计服务器12发送的业务请求,从而减轻统计服务器侧的压力。
[0024] 还需要说明的是,上述的LRU Cache中存储的信息都是有关请求冲突的信息,而攻击识别装置13根据这些信息也是判断某个发生请求冲突的IP地址是否是攻击者的IP地址,即用于判断冲突情况是否是攻击行为造成。
[0025] 为了使得对本例子的攻击识别方法的描述更加清楚,如下将先说明上述各个LRU Cache中的信息是如何存储,然后再介绍攻击识别装置13如何根据这些信息进行攻击识别。
[0026] LRU Cache中的信息存储:
[0027] 如图2所示,即使攻击识别装置13根据LRU Cache中的信息能够识别到攻击者,通常也是在根据该信息确定冲突的频率达到一定阈值时,才判断出某个IP地址是攻击者,这是根据扫号攻击的特点决定。因此,当LRU Cache中存储的信息量较少,尚未达到上述阈值时,即使攻击识别装置13查询LRU Cache也无法确定这是攻击者,那么,攻击识别装置13可以将业务请求放行,请求被统计服务器12侧接收。
[0028] 而放行的业务请求有可能就是攻击请求,只是暂时攻击识别装置13还未识别出来;那么,如果攻击请求的频率特别高,仍然有可能在统计服务器12侧发生写入冲突。本例子中,统计服务器12可以反馈给攻击识别装置13,告知攻击识别装置13对本次业务请求的处理结果是写入冲突,攻击识别装置13就可以获知其放行的业务请求在统计服务器12侧发生了冲突,那么此时,攻击识别装置13可以在LRU Cache中进行信息存储,记录本次业务冲突,存储本次冲突相关的信息。
[0029] 如图3所示,LRU Cache中的信息存储以列表形式为例,假设本次冲突的是一个新的IP地址,那攻击识别装置13可以在第一缓存(该第一缓存和后续例子中的第二缓存可以是LRU Cache)的冲突列表中存储该IP地址为key4标识,冲突列表中还存储了key1、key2、key3,这些IP地址是之前发生过冲突并存储在列表中。冲突列表中存储的都是发生过业务冲突(例如上述的写入冲突)的key,可以将这些Key称为标识特征,第一缓存用于存储发生业务冲突的各个请求端的标识特征,例如,可以是请求端设备的IP地址,本例子以Key表示。
[0030] 并且,攻击识别装置13还为每一个key都设置一个对应的第二缓存,该第二缓存中存储key对应的冲突信息,例如,该冲突信息可以包括:冲突发生的时间time,冲突时要写入的value等信息。其中,该冲突信息还可以用于确定预设时间段内所述标识特征对应的冲突次数,在后续例子描述。如图3所示,示例了冲突信息中的time,对于冲突列表中新增加的Key4,在该Key4对应的第二缓存中对应增加本次冲突发生的时间time4-1。假设第二次接收到key4对应的冲突提示,攻击识别装置13可以继续在key4对应的冲突信息中记录又一个冲突信息。
[0031] 对于图3中示例的LRU Cache存储信息的方式,有如下两点需要说明:
[0032] 第一、利用LRU Cache可以实现无用信息的自动淘汰:
[0033] 以冲突列表为例,在该列表中的Key,如果又再次发生了冲突,则将该key在列表中上移,比如,假设图3中的key1对应的业务请求又发生了写入冲突,则将key1由列表中上移到key4的上边。按照该原则,在列表最底端的通常为较长时间没有发生冲突的key,当LRU Cache的存储空间被占满时,需要清除一些数据出去,就将列表最下端的key移出。由原理上讲,位于冲突列表最底端的key已经较长时间没有再发生冲突,说明该key的冲突发生频率较低,不符合攻击者的特点,可以由列表移出。当然,如果下次再发生该key的冲突,可以再次将其增加进列表,重新开始监控。
[0034] 用于存储冲突信息的第二缓存的维护机制,原理与上述的第一缓存相同,位于冲突信息的所在列表最底端的time是较长时间之前发生的冲突时间,优先淘汰距离当前时间最久的时间time。
[0035] 第二、LRU Cache的容量设计:
[0036] 本例子中,LRU Cache的运行机制可以用于自动淘汰无用数据,该LRU Cache的作用不仅包括无用数据的清理,使得查询列表时的查询量不会太大,查询速度较高,并且,LRU Cache的作用还需要能够识别到攻击者,能够根据预定的攻击识别条件来完成攻击者的识别。比如,如果攻击识别条件是“某个key在1分钟之内冲突次数达到10次,则该key确定为攻击者”,那么,第二缓存的容量至少要能够存储10次冲突的冲突信息,即至少用于存储预设数量的冲突时间,所述预设数量等于预设阈值(如,上述10次)对应的冲突次数。而第一缓存的容量取决于要同时监控的key的数量,比如,如果要监控1000个key,那么第一缓存的容量至少用于存储预设数量(如,1000)的标识特征。
[0037] LRU Cache中的信息利用:
[0038] 攻击识别装置13可以根据存储在LRU Cache中的信息,进行扫号攻击的识别。图4示例了本申请实施例的攻击识别方法的流程图,攻击识别装置13可以根据该流程识别到一次扫号攻击。如图4所示,该方法包括:
[0039] 在步骤401中,确定存储有业务请求中携带的请求端的标识特征。
[0040] 例如,攻击识别装置13获取到一次业务请求中携带的请求端的标识特征,该标识特征可以为终端11的IP地址,IP1。
[0041] 攻击识别装置13查询第一缓存,本例子中,可以确定第一缓存中存储有该标识特征。例如,攻击识别装置13可以查询第一缓存的冲突列表,若发现IP1(假设该IP1是key3)在列表中,则确定存储有该标识特征,继续执行步骤402;否则,如果IP1不再列表中,则可以放行该业务请求,使得该请求发送至统计服务器侧。在统计服务器侧,如果该IP1的请求未发生写入冲突,则统计服务器可以正常更新该IP对应的请求次数value;如果发生冲突,则可以反馈给攻击识别装置进行信息记录。
[0042] 在步骤402中,获取所述标识特征对应的发生业务冲突的冲突次数。
[0043] 例如,仍以key3为例,假设预设时间段是1分钟,可以根据当前时间和预设时间段,获得包括在所述预设时间段内的多个冲突时间,比如可以是图3中对应key3的两个时间time3-1和time3-2,并假设time3-3距离当前时间已经超出了1分钟,由此确定距离当前时间的预设时间段内的冲突次数为两次。
[0044] 在步骤403中,若预设时间段内所述标识特征对应的冲突次数达到阈值,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求。
[0045] 例如,假设阈值是2,则步骤402中的key3对应的冲突次数已经达到阈值,攻击识别装置可以确定IP1是攻击者的IP,本次业务请求是攻击请求,则可以拦截该请求,不再发送至统计服务器侧;如果阈值是10,则步骤402中的key3对应的冲突次数尚未达到阈值,攻击识别装置此时尚不能确定该IP1是攻击者,则可以放行本次业务请求。
[0046] 此外,上述的例子中,若预设时间段内,标识特征的冲突次数未达到阈值,或者请求端的标识特征未在标识信息中,则将业务请求发送至服务端进行处理之后,当接收到所述服务端反馈的发生业务冲突的提示时,在本次业务请求的标识特征对应的第二缓存内,存储对应的冲突信息。
[0047] 本例子提供的攻击识别方法,通过利用缓存存储冲突相关信息,可以通过该冲突相关信息确定发生业务冲突的请求端是否是攻击者,从而可以在识别到攻击时进行拦截,降低高并发攻击时的写入冲突对服务端的资源浪费。此外,采用LRU Cache作为存储信息的缓存,不仅可以有助于识别攻击,而且其运行机制可以自动淘汰无用的信息,保持信息量不会太大,并且,LRU Cache可以快速执行信息查询操作,速度较快,有助于快速识别攻击。
[0048] 为了实现上述的攻击识别方法,本申请实施例还提供了一种攻击识别装置,如图5所示,该装置可以包括:信息获取模块51和识别处理模块52。
[0049] 信息获取模块51,用于在确定存储有业务请求中携带的请求端的标识特征时,获取预设时间段内所述标识特征对应的发生业务冲突的冲突次数;
[0050] 识别处理模块52,用于若预设时间段内所述冲突次数达到阈值,则确定所述标识特征对应的请求端为攻击者,所述业务请求为攻击请求。
[0051] 在一个例子中,如图6所示,该装置还可以包括:信息存储模块53;
[0052] 识别处理模块52,还用于在未存储所述请求端的标识特征,或者,预设时间段内所述标识特征对应的冲突次数未达到阈值时,则将所述业务请求发送至服务端进行处理。
[0053] 信息存储模块53,用于在接收到所述服务端反馈的发生业务冲突的提示时,存储所述标识特征,并记录本次业务冲突。
[0054] 在一个例子中,信息存储模块53,在用于记录本次业务冲突时,包括:在第一LRU Cache中存储本次业务冲突的请求端的标识特征,所述第一LRU Cache用于存储发生业务冲突的各个请求端的标识特征;在与所述标识特征对应的第二LRU Cache中,存储本次业务冲突的冲突信息,所述冲突信息用于确定预设时间段内所述标识特征对应的冲突次数。
[0055] 在一个例子中,信息获取模块51,用于当所述冲突信息包括:所述标识特征对应的各次冲突发生的冲突时间时,根据当前时间和预设时间段,获得包括在预设时间段内的多个冲突时间,所述冲突时间的数量即为所述标识特征对应的冲突次数。
[0056] 在一个例子中,所述第一LRU Cache的容量为至少用于存储预设数量的标识特征;
[0057] 当所述冲突信息包括冲突时间时,所述第二LRU Cache的容量为至少用于存储预设数量的冲突时间,所述预设数量等于所述阈值对应的冲突次数。
[0058] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。