一种攻击检测方法及装置与流程

文档序号:29749054发布日期:2022-04-21 23:34阅读:100来源:国知局
一种攻击检测方法及装置与流程

1.本技术涉及网络技术领域,尤其涉及一种攻击检测方法及装置。


背景技术:

2.网络攻击(cyber attacks,也称赛博攻击)是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的,任何类型的进攻动作。对于计算机和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问任何一计算机的数据,都会被视为于计算机和计算机网络中的攻击。
3.现有技术中,由于不同应用系统接入同一防火墙,使得防火墙为了适配多类型应用系统,仅能记录较简单的访问数据。因此,检测网络攻击的手段一般都是基于网络流量进行检测。如,基于ip访问频率是否过高和利用弱口令字典判断访问请求中是否存在弱口令或其哈希值等方式进行检测。则现有的网络攻击检测方式比较简单,检测准确性较低且不能区分网络攻击的类型。
4.因此,现在亟需一种检测攻击方法及装置,用于提高网络攻击检测的准确性,且确定网络攻击检测类型。


技术实现要素:

5.本技术实施例提供一种检测攻击方法及装置,用于提高网络攻击检测的准确性,且确定网络攻击检测类型。
6.第一方面,本技术实施例提供一种攻击检测方法,该方法包括:
7.针对应用系统中的任一访问日志,对所述访问日志进行预处理,得到所述访问日志的各关键数据;将所述访问日志分别计入各关键数据对应的时间窗口类型记录和各关键数据对应的请求次数类型记录中;
8.针对任一关键数据对应的时间窗口类型记录,若预设时间窗口内的访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生快速爆破攻击,所述第一类预设攻击条件为所述关键数据对应的时间窗口类型记录的访问失败率大于所述关键数据对应的第一失败率阈值或访问失败率变化量大于所述关键数据对应的第一变化量阈值;
9.针对任一关键数据对应的请求次数类型记录,若预设次数窗口内的访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生慢速爆破攻击,所述第二类预设攻击条件为所述关键数据对应的请求次数类型记录的访问失败率大于所述关键数据对应的第二失败率阈值或访问失败率变化量大于所述关键数据对应的第二变化量阈值。
10.上述方法中,根据多个关键数据,将访问日志分别计入关键数据对应的时间窗口类型记录和请求次数类型记录,统计分析两个类型记录的访问失败率;若访问失败率符合预设类型攻击条件,确定所述应用系统发生预设类型攻击。如此,相比于现有技术中简单的基于ip访问频率和利用弱口令字典判断应用系统是否发生网络攻击来说,可以提高网络攻击检测的准确性,且确定网络攻击检测类型。其中,通过时间窗口类型记录可以在时间维度
上,确定是否存在快速爆破攻击。通过请求次数类型记录,可以检测到在时间维度上检测不到的,在请求次数维度上可以检测到的慢速爆破攻击。
11.可选的,将所述访问日志分别计入各关键数据对应的时间窗口类型记录和请求次数类型记录中,包括:
12.将所述访问日志分别计入各关键数据对应的时间窗口类型队列和各关键数据对应的请求次数类型队列中;
13.将所述时间窗口类型队列中最早访问时间且超出所述预设时间窗口的访问日志删除,将所述请求次数类型队列中最早访问时间且超出所述预设次数窗口的访问日志删除。
14.上述方法中,时间窗口类型记录和请求次数类型记录可以为队列形式,即,时间窗口类型可以是时间窗口类型队列,请求次数类型记录可以是请求次数类型队列。如此,可以方便获取时间窗口类型队列和请求次数类型队列中访问日志的顺序,保证队列中各访问日志顺序的准确性,进一步,提高供给检测的安全性。如,时间窗口类型队列中根据访问日志的访问时间的先后顺序排列访问日志,当时间窗口类型队列中时间窗口超出预设时间窗口大小时,需要及时更新时间窗口类型队列中的数据,可以将该时间窗口类型队列中最早访问时间且超出预设时间窗口的访问日志删除。如此,保证时间窗口类型队列中的访问日志都是最新的,对应的访问失败率等计算结果也是最新的,提高攻击检测的准确性。同理的,请求次数类型队列中可以根据访问日志的访问时间的先后顺序排列访问日志,当请求次数类型队列中访问日志的数量超出预设次数窗口大小时,需要及时更新请求次数类型队列中的数据,可以将该请求次数类型队列中最早访问时间且超出预设次数窗口的访问日志删除。如此,保证请求次数类型队列中的访问日志都是最新的,对应的访问失败率等计算结果也是最新的,提高攻击检测的准确性。
15.可选的,所述各关键数据中包括全量维度;针对任一关键数据对应的时间窗口类型记录,若预设时间窗口内的访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生快速爆破攻击,包括:
16.若在全量维度的时间窗口类型队列中,访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生系统性快速爆破攻击;
17.若在全量维度的请求次数类型队列中,访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生系统性慢速爆破攻击。
18.上述方法中,在全量维度中,若时间窗口类型队列中,访问日志的访问失败率符合第一类预设攻击条件-可以表征应用系统发生系统性快速爆破攻击的条件,以此获得攻击检测结果。同理的,若请求次数类型队列中,访问日志的访问失败率符合第二类预设攻击条件-可以表征应用系统发生系统性慢速爆破攻击的条件,以此获得攻击检测结果。如此,可以基本确定应用系统中发生的大方向上的攻击类型,给运维人员大概维护方向,降低运维人员工作难度。
19.可选的,所述各关键数据中包括访问ip;确定所述应用系统发生系统性快速爆破攻击之后,还包括:
20.响应于所述访问ip对应的时间窗口类型队列的访问失败率符合第一类预设攻击条件,确定所述应用系统发生单ip快速爆破攻击;
21.或者,响应于所述访问ip对应的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,确定所述应用系统发生多ip快速爆破攻击,所述访问ip对应的时间窗口类型队列中的各访问日志的访问ip相同。
22.上述方法中,在通过全量维度获取应用系统受到的攻击类型后,针对该攻击类型,根据其他关键数据对应的时间窗口类型队列和请求次数类型队列进一步分析。如,根据访问ip这一关键数据可以得到访问ip对应的时间窗口类型队列,且访问ip对应的时间窗口类型队列中各访问日志的访问ip相同,则该访问ip对应的时间窗口类型队列的访问失败率就是该访问ip的访问失败率,相应的,若该访问ip的访问失败率符合第一类预设攻击条件,确定应用系统发生的是系统性快速爆破攻击中的单ip快速爆破攻击。如此,进一步明确应用系统受到的攻击类型,则更进一步降低运维人员工作难度和工作量。另外,在该示例中,已经基于全量维度确定发生系统性快速爆破攻击,若访问ip的访问失败率不符合第一类预设攻击条件(未发生单ip快速爆破攻击),则攻击者是基于多个访问ip进行快速爆破攻击,即,多ip快速爆破攻击。
23.可选的,所述关键数据还包括访问ip,确定所述应用系统发生系统性慢速爆破攻击之后,还包括:
24.响应于所述访问ip对应的请求次数类型队列的访问失败率符合第二类预设攻击条件,确定所述应用系统发生单ip慢速爆破攻击;
25.或者,响应于所述访问ip对应的请求次数类型队列的访问失败率不符合第二类预设攻击条件,确定所述应用系统发生多ip慢速爆破攻击,所述访问ip对应的请求次数类型队列中的各访问日志的访问ip相同。
26.上述方法中,在通过全量维度获取应用系统受到的攻击类型为系统性慢速爆破攻击后,针对该攻击类型,可以根据访问ip这一关键数据可以得到访问ip对应的请求次数类型队列,且访问ip对应的请求次数类型队列中各访问日志的访问ip相同,则该访问ip对应的请求次数类型队列的访问失败率就是该访问ip的访问失败率,相应的,若该访问ip的访问失败率符合第二类预设攻击条件,确定应用系统发生的是系统性慢速爆破攻击中的单ip慢速爆破攻击。如此,进一步降低运维人员工作难度和工作量。在该示例中,已经基于全量维度确定发生系统性慢速爆破攻击,若访问ip的访问失败率不符合第二类预设攻击条件(未发生单ip慢速爆破攻击),则攻击者是基于多个访问ip进行慢速爆破攻击,即,多ip慢速爆破攻击。理解性的,时间窗口类型队列可以确定在预设时间窗口内访问日志的访问失败或访问成功的信息,若时间窗口类型队列不能发现,即,以时间来计算的访问失败频率相关数据,若访问失败频率相关数据较小,则可能认为没有发生攻击,此时,还可以基于请求次数类型队列确定预设次数窗口内访问日志的访问失败或访问成功的信息,若在请求次数类型队列中,以请求次数来计算的访问失败频率相关数据,若访问失败次数相关数据较大,则认为攻击属于访问时间间隔较长的慢速攻击。可以提高攻击检测的准确性和全面性。
27.可选的,所述关键数据还包括访问用户名,确定所述应用系统发生系统性快速爆破攻击之后,还包括:
28.响应于所述访问用户名对应的时间窗口类型队列的访问失败率符合第一类预设攻击条件,确定所述应用系统发生单用户快速爆破攻击;
29.或者,响应于所述访问用户名对应的时间窗口类型队列的访问失败率不符合第一
类预设攻击条件,确定所述应用系统发生多用户快速爆破攻击,所述访问用户名对应的时间窗口类型队列中的各访问日志的访问用户名相同。
30.上述方法中,与上述根据访问ip这一关键数据确定更具体的攻击类型方法类似,在通过全量维度获取应用系统受到的攻击类型后,针对该攻击类型,根据其他关键数据-访问用户名对应的时间窗口类型队列和请求次数类型队列进一步分析。如,根据访问用户名这一关键数据可以得到访问用户名对应的时间窗口类型队列,且访问用户名对应的时间窗口类型队列中各访问日志的访问用户名相同,则该访问用户名对应的时间窗口类型队列的访问失败率就是该访问用户名的访问失败率,相应的,若该访问用户名的访问失败率符合第一类预设攻击条件,确定应用系统发生的是系统性快速爆破攻击中的单用户快速爆破攻击。如此,进一步明确应用系统受到的攻击类型,则更进一步降低运维人员工作难度和工作量。在该示例中,已经基于全量维度确定发生系统性快速爆破攻击,若访问用户名的访问失败率不符合第一类预设攻击条件(未发生单用户快速爆破攻击),则攻击者是基于多个访问用户名进行快速爆破攻击,即,多用户快速爆破攻击。
31.可选的,所述关键数据还包括访问用户名,确定所述应用系统发生系统性慢速爆破攻击之后,还包括:
32.响应于所述访问用户名对应的请求次数类型队列的访问失败率符合第二类预设攻击条件,确定所述应用系统发生单用户慢速爆破攻击;
33.或者,响应于所述访问用户名对应的请求次数类型队列的访问失败率不符合第二类预设攻击条件,确定所述应用系统发生多用户慢速爆破攻击,所述访问用户名对应的请求次数类型队列中的各访问日志的访问用户名相同。
34.上述方法中,与上述根据访问ip这一关键数据确定更具体的攻击类型方法类似,在通过全量维度获取应用系统受到的攻击类型为系统性慢速爆破攻击后,针对该攻击类型,可以根据访问用户名这一关键数据可以得到访问用户名对应的请求次数类型队列,且访问用户名对应的请求次数类型队列中各访问日志的访问用户名相同,则该访问用户名对应的请求次数类型队列的访问失败率就是该访问用户名的访问失败率,相应的,若该访问用户名的访问失败率符合第二类预设攻击条件,确定应用系统发生的是系统性慢速爆破攻击中的单用户慢速爆破攻击。如此,可以根据单用户慢速爆破攻击这一更细化的攻击类型检测结果,进一步降低运维人员工作难度和工作量。在该示例中,已经基于全量维度确定发生系统性慢速爆破攻击,若访问用户名的访问失败率不符合第二类预设攻击条件(未发生单用户慢速爆破攻击),则攻击者是基于多个访问用户名进行慢速爆破攻击,即,多用户慢速爆破攻击。
35.可选的,还包括:响应于所述访问时间对应的时间窗口类型队列和所述访问时间对应的请求次数类型队列的访问失败率不符合对应的预设攻击条件,确定除所述访问时间外的各关键数据对应的时间窗口类型队列和请求次数类型队列是否符合对应的预设攻击类型,若是,确定所述应用系统发生对应的预设类型攻击。
36.上述方法中,若访问时间对应的时间窗口类型队列和该访问时间对应的请求次数类型队列的访问失败率不符合对应的预设攻击条件,确定除该访问时间外的各关键数据对应的时间窗口类型队列和请求次数类型队列是否符合对应的预设攻击类型。也就是说,访问时间可以是全量维度,则若访问时间对应的时间窗口类型队列和请求次数类型队列都不
能检测到攻击,不能通过全量维度确定大方向的攻击类型,进而在一个大方向的攻击类型上细化检测,而是针对所有细化方向均检测是否存在攻击。即,全量维度确定大方向的攻击类型,再进一步基于该大方向上的攻击类型细化,这样可以大大降低用到的计算资源,加快检测攻击速度。本方法为全量维度上无法确定大方向的攻击类型时的“兜底”方法。
37.可选的,所述关键数据还包括访问代理和/或访问口令。
38.上述方法中,关键数据还可以包括访问代理和/或访问口令。也就是说,还可以进一步获取访问代理对应的时间窗口类型队列和访问代理对应的请求次数队列,以及访问口令对应的时间窗口类型队列和访问口令对应的请求次数队列。根据上述各方法,进一步可以获取单代理快速爆破攻击、多代理快速爆破攻击、单代理慢速爆破攻击、多代理慢速爆破攻击,以及,获取单口令快速爆破攻击、多口令快速爆破攻击、单口令慢速爆破攻击、多口令慢速爆破攻击等。这里只是一种示例,并不对关键数据的种类和数量做限制。
39.第二方面,本技术实施例提供一种攻击检测装置,该装置包括:
40.预处理模块,用于针对应用系统中的任一访问日志,对所述访问日志进行预处理,得到所述访问日志的各关键数据;将所述访问日志分别计入各关键数据对应的时间窗口类型记录和各关键数据对应的请求次数类型记录中;
41.检测模块,用于针对任一关键数据对应的时间窗口类型记录,若预设时间窗口内的访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生快速爆破攻击,所述第一类预设攻击条件为所述关键数据对应的时间窗口类型记录的访问失败率大于所述关键数据对应的第一失败率阈值或访问失败率变化量大于所述关键数据对应的第一变化量阈值;
42.所述检测模块还用于,针对任一关键数据对应的请求次数类型记录,若预设次数窗口内的访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生慢速爆破攻击,所述第二类预设攻击条件为所述关键数据对应的请求次数类型记录的访问失败率大于所述关键数据对应的第二失败率阈值或访问失败率变化量大于所述关键数据对应的第二变化量阈值。
43.第三方面,本技术实施例还提供一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
44.第四方面,本技术实施例还提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
45.本技术的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
46.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1为本技术实施例提供的一种攻击检测系统的架构示意图;
48.图2为本技术实施例提供的一种攻击检测方法的流程示意图;
49.图3为本技术实施例提供的一种攻击检测方法的流程示意图;
50.图4为本技术实施例提供的又一种攻击检测系统的架构示意图;
51.图5为本技术实施例提供的一种攻击检测的装置示意图。
具体实施方式
52.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
53.图1为本技术实施例提供的一种攻击检测的系统架构,应用系统101可以为企业、企业部门、机构等的应用系统。如,应用系统101可以是aabb应用软件对应的业务系统。当应用系统101接收访问请求时,对该访问请求进行处理,若访问请求为非法访问请求,则可能泄露重要数据。该示例中,若用户1在aabb应用软件拥有对应的账户,该用户1的账户的用户名为:恬恬,用户密码为:138290,用户1账户对应的用户信息包括手机号码、身份证号码、家庭住址、最高学历、毕业院校、家庭关系、谈话记录等等私密的重要信息,当攻击者获知用户名,则可以根据该用户名和多个猜测的用户密码登录,进行单用户名的快速爆破攻击或单用户名的慢速爆破攻击。应用系统101接收的每次访问请求,对该访问请求中的用户名和用户密码进行验证,若用户名和用户密码均合法,则允许攻击者获取用户信息,攻击者获取用户信息后,可能对用户信息进行贩卖或根据用户信息窃取用户财产等,造成用户的损失。上述示例中的应用系统101和攻击方法等只是一种示例,并不对应用系统101和具体的攻击方法做限制。
54.攻击检测系统中包括预处理模块102、记录创建模块103、统计模块104、检测模块105。
55.其中,预处理模块102可以获取应用系统101中的日志文件或访问日志文件等,得到应用系统101的访问日志,对访问日志进行预处理,以获取每个访问日志的多个关键数据。
56.记录创建模块103根据每个关键数据创建该关键数据对应的时间窗口类型队列和该关键数据对应的请求次数类型队列。再分别将该访问日志记录在该关键数据对应的时间窗口类型队列中和该关键数据对应的请求次数类型队列中(需要说明的是,这里的时间窗口类型队列、请求次数类型队列分别用于在时间窗口维度和请求次数维度记录有序的访问日志,队列只是一种记录方式,并不对记录访问日志的方式做限制)。
57.统计模块104用于基于记录创建模块103中的每个关键数据对应的时间窗口类型队列中的访问日志和该关键数据对应的请求次数类型队列中的访问日志,计算该关键数据对应的时间窗口类型队列的访问失败率和该关键数据对应的请求次数类型队列的访问失败率,统计模块104将各访问失败率发送至检测模块105。
58.在一种示例中,关键数据包括访问时间、访问ip、访问用户名、访问代理和访问口令等中的一个或多个。
59.基于该示例的,检测模块105可以先确定全量维度的关键数据(如,访问时间)对应
的时间窗口类型队列的访问失败率是否符合第一类预设攻击条件,若是,确定应用系统101发生系统性快速爆破攻击;第一类预设攻击条件为该全量维度的关键数据对应的时间窗口类型队列的访问失败率大于该关键数据对应的第一失败率阈值或访问失败率变化量大于该关键数据对应的第一变化量阈值。确定全量维度的关键数据(如,访问时间)对应的请求次数类型队列的访问失败率是否符合第二类预设攻击条件,若是,确定应用系统101发生系统性慢速爆破攻击;第二类预设攻击条件为该全量维度的关键数据对应的请求次数类型队列的访问失败率大于该关键数据对应的第二失败率阈值或访问失败率变化量大于该关键数据对应的第二变化量阈值。
60.若确定应用系统101发生系统性快速爆破攻击,则进一步可以根据关键数据访问ip、访问用户名等关键数据,确定这些关键数据的时间窗口类型队列的访问失败率是否符合对应的第一类预设攻击条件,以确定应用系统101是否发生单ip快速爆破攻击、单用户名的快速爆破攻击、多ip快速爆破攻击、多用户名的快速爆破攻击。
61.若确定应用系统101发生系统性慢速爆破攻击,则进一步可以根据关键数据访问ip、访问用户名等关键数据,确定这些关键数据的请求次数类型队列的访问失败率是否符合对应的第二类预设攻击条件,以确定应用系统101是否发生单ip慢速爆破攻击、单用户名的慢速爆破攻击、多ip慢速爆破攻击、多用户名的慢速爆破攻击。
62.另,若检测模块105根据全量维度的关键数据的时间窗口类型队列和请求次数类型队列得到的检测结果均是应用系统101没有受到攻击(该全量维度关键数据的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,该全量维度关键数据的请求次数类型队列的访问失败率不符合第二类预设攻击条件),则直接基于全量维度外的其他关键数据(访问ip、访问用户名等)的时间窗口类型队列和请求次数类型队列,分别获取关键数据对应的时间窗口类型队列和请求次数类型队列的检测结果。如此,基于上述攻击检测的系统架构,可以提高攻击检测方法的不同应用系统适应性,根据访问日志检测应用系统受到的更细致的攻击类型,提高检测结果的准确性和运维效率。
63.基于此,本技术实施例提供了一种攻击检测方法流程,如图2所示,包括:
64.步骤201、针对应用系统中的任一访问日志,对所述访问日志进行预处理,得到所述访问日志的各关键数据;将所述访问日志分别计入各关键数据对应的时间窗口类型记录和各关键数据对应的请求次数类型记录中;
65.此处,应用系统可以是任何可能被攻击的系统,如,xx快车、xx银行等等对应的系统。访问日志中可以包括:用户名:恬恬、用户密码(访问口令):138290、访问时间:2022.02.07.14:36:05、访问代理:ae浏览器、访问ip:10.13.4.6、访问信息标识等相关数据。时间窗口类型记录为:预设时间窗口大小的时间窗口内,记录落在该时间窗口内的访问日志。如,当前时间为2022.02.07.14:36,预设时间窗口大小为10min,则时间窗口为【2022.02.07.14:26至2022.02.07.14:36】,访问时间在2022.02.07.14:26-2022.02.07.14:36内的均记录在【2022.02.07.14:26至2022.02.07.14:36】的时间窗口类型记录中。
66.请求次数类型记录为:预设次数窗口大小的次数窗口内,记录落在该次数窗口内的访问日志。如,预设次数为50次,则每次的请求次数类型记录中记录有最近一次访问日志以及该最近一次访问日志前的最近的49次访问日志。
67.步骤202、针对任一关键数据对应的时间窗口类型记录,若预设时间窗口内的访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生快速爆破攻击,所述第一类预设攻击条件为所述关键数据对应的时间窗口类型记录的访问失败率大于所述关键数据对应的第一失败率阈值或访问失败率变化量大于所述关键数据对应的第一变化量阈值;
68.此处,访问失败率可以为时间窗口类型记录中访问失败的访问日志的数量与所有访问日志数量的比值,访问失败率也可以是时间窗口类型记录中访问失败的访问日志数量与访问成功的访问日志数量的比值等等,这里可以根据需要设置访问失败率的获取方式,这里具体不做限制。访问失败率变化量可以为当前时间窗口类型记录的访问失败率与前一时间窗口类型记录的访问失败率的差值。不同的关键数据的时间窗口类型队列的第一类预设攻击条件可以不同。关键数据对应的第一失败率阈值或第一变化量阈值可以根据专业知识或行业经验等获得。
69.步骤203、针对任一关键数据对应的请求次数类型记录,若预设次数窗口内的访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生慢速爆破攻击,所述第二类预设攻击条件为所述关键数据对应的请求次数类型记录的访问失败率大于所述关键数据对应的第二失败率阈值或访问失败率变化量大于所述关键数据对应的第二变化量阈值。
70.此处,访问失败率可以为请求次数类型记录中访问失败的访问日志的数量与所有访问日志数量的比值,访问失败率也可以是请求次数类型记录中访问失败的访问日志数量与访问成功的访问日志数量的比值等等,这里可以根据需要设置访问失败率的获取方式,这里具体不做限制。访问失败率变化量可以为当前请求次数类型记录的访问失败率与前一请求次数类型记录的访问失败率的差值。不同的关键数据的请求次数类型队列的第二类预设攻击条件可以不同。关键数据对应的第二失败率阈值或第二变化量阈值可以根据专业知识或行业经验等获得。
71.上述方法中,根据多个关键数据,将访问日志分别计入关键数据对应的时间窗口类型记录和请求次数类型记录,统计分析两个类型记录的访问失败率;若访问失败率符合预设类型攻击条件,确定所述应用系统发生预设类型攻击。如此,相比于现有技术中简单的基于ip访问频率和利用弱口令字典判断应用系统是否发生网络攻击来说,可以提高网络攻击检测的准确性,且确定网络攻击检测类型。其中,通过时间窗口类型记录可以在时间维度上,确定是否存在快速爆破攻击。通过请求次数类型记录,可以检测到在时间维度上检测不到的,在请求次数维度上可以检测到的慢速爆破攻击。
72.本技术实施例提供了一种访问日志的记录方式,将所述访问日志分别计入各关键数据对应的时间窗口类型记录和请求次数类型记录中,包括:
73.将所述访问日志分别计入各关键数据对应的时间窗口类型队列和各关键数据对应的请求次数类型队列中;
74.将所述时间窗口类型队列中最早访问时间且超出所述预设时间窗口的访问日志删除,将所述请求次数类型队列中最早访问时间且超出所述预设次数窗口的访问日志删除。
75.在一种示例中,访问日志中包括关键数据:访问用户名:恬恬、用户密码(访问口
令):138290、访问时间:2022.02.07.14:36、访问代理:ae浏览器、访问ip:10.13.4.6。
76.则将该访问日志分别计入访问时间:2022.02.07.14:36对应的时间窗口类型队列和请求次数类型队列。该访问时间对应的预设时间窗口大小为10min,访问时间对应的预设次数窗口大小为50次,且将该访问日志计入时间窗口类型队列中前,时间窗口类型队列的时间窗口为【2022.02.07.14:25至2022.02.07.14:35】,请求次数类型队列中包含50次访问日志。
77.如果将该访问日志计入访问时间对应的时间窗口类型队列中,时间窗口类型队列的时间窗口为【2022.02.07.14:25至2022.02.07.14:36】,时间窗口大小为11min超过预设时间窗口大小,为了保证时间窗口为预设时间窗口的大小,以及时间窗口类型队列的访问失败率的最新性,将该时间窗口类型队列中最早访问时间且超出预设时间窗口的访问日志删除,得到时间窗口类型队列的时间窗口为【2022.02.07.14:26至2022.02.07.14:36】。
78.如果将该访问日志计入访问时间对应的请求次数类型队列中,请求次数类型队列的请求次数为51次,超出了预设次数窗口的1个访问日志,为了保证请求次数类型队列中的访问日志数量为预设次数窗口的大小,以及请求次数类型队列的访问失败率的最新性,将该请求次数类型队列中最早访问时间且超出预设次数窗口的访问日志删除,得到包含当前访问日志和最接近当前访问日志的前49个访问日志的请求次数类型队列。
79.将该访问日志分别计入访问用户名:恬恬对应的时间窗口类型队列和请求次数类型队列,需要说明的是,访问用户名:恬恬对应的时间窗口类型队列和请求次数类型队列中只包含访问用户名:恬恬的访问日志,换句话说,针对不同的访问用户名,分别创建该用户名对应的时间窗口类型队列和请求次数类型队列。
80.该访问用户名对应的预设时间窗口大小为20min,访问用户名对应的预设次数窗口大小为100次,且将该访问日志计入时间窗口类型队列中前,时间窗口类型队列的时间窗口为【2022.02.07.14:15至2022.02.07.14:35】,请求次数类型队列中包含100次访问日志。
81.如果将该访问日志计入访问用户名对应的时间窗口类型队列中,时间窗口类型队列的时间窗口为【2022.02.07.14:15至2022.02.07.14:36】,时间窗口大小为21min超过预设时间窗口大小,为了保证时间窗口为预设时间窗口的大小,以及时间窗口类型队列的访问失败率的最新性,将该时间窗口类型队列中最早访问时间且超出预设时间窗口的访问日志删除,得到时间窗口类型队列的时间窗口为【2022.02.07.14:16至2022.02.07.14:36】。
82.如果将该访问日志计入访问用户名对应的请求次数类型队列中,请求次数类型队列的请求次数为101次,超出了预设次数窗口的1个访问日志,为了保证请求次数类型队列中的访问日志数量为预设次数窗口的大小,以及请求次数类型队列的访问失败率的最新性,将该请求次数类型队列中最早访问时间且超出预设次数窗口的访问日志删除,得到包含当前访问日志和最接近当前访问日志的前99个访问日志的请求次数类型队列。
83.相应的,将该访问日志分别计入访问口令:138290对应的时间窗口类型队列和请求次数类型队列、将该访问日志分别计入访问代理:ae浏览器对应的时间窗口类型队列和请求次数类型队列、将该访问日志分别计入访问ip:10.13.4.6对应的时间窗口类型队列和请求次数类型队列的方式,与访问时间、访问用户名计入对应的时间窗口类型队列和请求次数类型队列的方式相同。访问口令:138290、访问代理:ae浏览器、访问ip:10.13.4.6各自对应的时间窗口类型队列和请求次数类型队列的更新方式与访问时间、访问用户名对应的
时间窗口类型队列和请求次数类型队列的更新方式相同,这里不再赘述。
84.本技术实施例提供了一种攻击检测方法,所述各关键数据中包括全量维度;针对任一关键数据对应的时间窗口类型记录,若预设时间窗口内的访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生快速爆破攻击,包括:
85.若在全量维度的时间窗口类型队列中,访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生系统性快速爆破攻击;
86.若在全量维度的请求次数类型队列中,访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生系统性慢速爆破攻击。
87.在上述示例中,若全量维度是访问时间,第一类预设攻击条件为访问时间对应的时间窗口类型记录的访问失败率大于该访问时间对应的第一失败率阈值50%或访问失败率变化量大于该访问时间对应的第一变化量阈值5%。若将该访问日志计入访问时间对应的时间窗口类型队列中,时间窗口类型队列的时间窗口为【2022.02.07.14:26至2022.02.07.14:36】,该时间窗口类型队列的访问失败率为51%,大于该访问时间对应的第一失败率阈值50%;或者,相对于上一时间窗口类型队列(时间窗口为【2022.02.07.14:25至2022.02.07.14:35】)的访问失败率45%的访问失败率变化量为6%,访问失败率变化量为6%大于该访问时间对应的第一变化量阈值5%。确定应用系统发生系统性快速爆破攻击。否则,若第二类预设攻击条件为访问时间对应的请求次数类型记录的访问失败率大于该访问时间对应的第二失败率阈值60%或访问失败率变化量大于该访问时间对应的第二变化量阈值6%。将该访问日志计入访问时间对应的请求次数类型队列中,该请求次数类型队列的访问失败率为61%,大于该访问时间对应的第二失败率阈值60%;或者,相对于上一请求次数类型队列的访问失败率50%的访问失败率变化量为10%,大于该访问时间对应的第二变化量阈值6%。确定应用系统发生系统性慢速爆破攻击。
88.本技术实施例提供了一种攻击检测方法,所述各关键数据中包括访问ip;确定所述应用系统发生系统性快速爆破攻击之后,还包括:响应于所述访问ip对应的时间窗口类型队列的访问失败率符合第一类预设攻击条件,确定所述应用系统发生单ip快速爆破攻击;或者,响应于所述访问ip对应的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,确定所述应用系统发生多ip快速爆破攻击,所述访问ip对应的时间窗口类型队列中的各访问日志的访问ip相同。
89.基于上述示例,确定应用系统发生系统性快速爆破攻击。还可以进一步确定访问ip关键数据的第一类预设攻击条件为访问时间对应的时间窗口类型记录的访问失败率大于该访问时间对应的第一失败率阈值60%或访问失败率变化量大于该访问时间对应的第一变化量阈值7%。若将该访问日志计入访问ip对应的时间窗口类型队列中,时间窗口类型队列的时间窗口为【2022.02.07.14:06至2022.02.07.14:36】(访问ip对应的预设时间窗口大小为30min),该时间窗口类型队列的访问失败率为61%,大于该访问时间对应的第一失败率阈值60%;或者,相对于上一时间窗口类型队列(时间窗口为【2022.02.07.14:05至2022.02.07.14:35】)的访问失败率50%的访问失败率变化量为11%,访问失败率变化量为11%大于该访问时间对应的第一变化量阈值7%。确定应用系统发生单ip快速爆破攻击。否则,应用系统发生多ip快速爆破攻击。需要说明的是,该访问ip对应的时间窗口类型队列和请求次数类型队列中的各访问日志的访问ip相同。
90.本技术实施例提供了一种攻击检测方法,所述关键数据还包括访问ip,确定所述应用系统发生系统性慢速爆破攻击之后,还包括:响应于所述访问ip对应的请求次数类型队列的访问失败率符合第二类预设攻击条件,确定所述应用系统发生单ip慢速爆破攻击;或者,响应于所述访问ip对应的请求次数类型队列的访问失败率不符合第二类预设攻击条件,确定所述应用系统发生多ip慢速爆破攻击,所述访问ip对应的请求次数类型队列中的各访问日志的访问ip相同。
91.基于上述示例的,确定应用系统发生系统性慢速爆破攻击。还可以进一步确定访问ip关键数据的第二类预设攻击条件为访问时间对应的请求次数类型记录的访问失败率大于该访问时间对应的第二失败率阈值65%或访问失败率变化量大于该访问时间对应的第二变化量阈值8%。若将该访问日志计入访问ip对应的请求次数类型队列中,该请求次数类型队列的访问失败率为70%,大于该访问时间对应的第二失败率阈值65%;或者,相对于上一请求次数类型队列的访问失败率50%的访问失败率变化量为15%,大于该访问时间对应的第二变化量阈值8%。确定应用系统发生单ip慢速爆破攻击。否则,该应用系统发生多ip慢速爆破攻击。
92.本技术实施例提供了一种攻击检测方法,所述关键数据还包括访问用户名,确定所述应用系统发生系统性快速爆破攻击之后,还包括:响应于所述访问用户名对应的时间窗口类型队列的访问失败率符合第一类预设攻击条件,确定所述应用系统发生单用户快速爆破攻击;或者,响应于所述访问用户名对应的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,确定所述应用系统发生多用户快速爆破攻击,所述访问用户名对应的时间窗口类型队列中的各访问日志的访问用户名相同。
93.基于上述示例,确定应用系统发生系统性快速爆破攻击。还可以进一步确定访问用户名关键数据的第一类预设攻击条件为访问时间对应的时间窗口类型记录的访问失败率大于该访问时间对应的第一失败率阈值55%或访问失败率变化量大于该访问时间对应的第一变化量阈值7%。若将该访问日志计入访问用户名对应的时间窗口类型队列中,时间窗口类型队列的时间窗口为【2022.02.07.14:11至2022.02.07.14:36】(访问ip对应的预设时间窗口大小为25min),该时间窗口类型队列的访问失败率为60%,大于该访问时间对应的第一失败率阈值55%;或者,相对于上一时间窗口类型队列(时间窗口为【2022.02.07.14:10至2022.02.07.14:35】)的访问失败率50%的访问失败率变化量为10%,访问失败率变化量为10%大于该访问时间对应的第一变化量阈值7%。确定应用系统发生单用户快速爆破攻击。否则,应用系统发生多用户快速爆破攻击。需要说明的是,该访问用户名对应的时间窗口类型队列和请求次数类型队列中的各访问日志的访问用户名相同。
94.本技术实施例提供了一种攻击检测方法,所述关键数据还包括访问用户名,确定所述应用系统发生系统性慢速爆破攻击之后,还包括:响应于所述访问用户名对应的请求次数类型队列的访问失败率符合第二类预设攻击条件,确定所述应用系统发生单用户慢速爆破攻击;或者,响应于所述访问用户名对应的请求次数类型队列的访问失败率不符合第二类预设攻击条件,确定所述应用系统发生多用户慢速爆破攻击,所述访问用户名对应的请求次数类型队列中的各访问日志的访问用户名相同。
95.基于上述示例的,确定应用系统发生系统性慢速爆破攻击。还可以进一步确定访
问用户名关键数据的第二类预设攻击条件为访问时间对应的请求次数类型记录的访问失败率大于该访问时间对应的第二失败率阈值75%或访问失败率变化量大于该访问时间对应的第二变化量阈值8%。若将该访问日志计入访问用户名对应的请求次数类型队列中,该请求次数类型队列的访问失败率为80%,大于该访问时间对应的第二失败率阈值75%;或者,相对于上一请求次数类型队列的访问失败率70%的访问失败率变化量为10%,大于该访问时间对应的第二变化量阈值8%。确定应用系统发生单用户慢速爆破攻击。否则,该应用系统发生多用户慢速爆破攻击。
96.本技术实施例提供了一种攻击检测方法,还包括:响应于所述访问时间对应的时间窗口类型队列和所述访问时间对应的请求次数类型队列的访问失败率不符合对应的预设攻击条件,确定除所述访问时间外的各关键数据对应的时间窗口类型队列和请求次数类型队列是否符合对应的预设攻击类型,若是,确定所述应用系统发生对应的预设类型攻击。
97.在上述示例中,若全量维度对应的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,全量维度对应的请求次数类型队列的访问失败率不符合第二预设攻击条件。则不能检测出应用系统发生系统性快速爆破攻击或系统性慢速爆破攻击,此时,则需要对每个关键数据对应的时间窗口类型队列和请求次数类型队列都分别进行对应的预设条件的判断。以访问ip为例,需要获取访问ip对应的时间窗口类型队列是否符合第一类预设攻击条件,获取访问ip对应的请求次数类型队列是否符合第二预设攻击条件。也就是说,不能只进行ip慢速爆破攻击或ip快速爆破攻击的检测,而是需要进行ip慢速爆破攻击和ip快速爆破攻击的检测。
98.基于上述方法流程,本技术实施例还提供了一种攻击检测方法的流程,如图3所示,包括:
99.步骤301、获取应用系统的日志文件。
100.步骤302、将该日志文件中的访问日志进行预处理,得到多个关键数据。
101.此处,预处理的方式可以为正则表达式的正则处理。正则表达式预处理方式只是一种示例,预处理的方式可以是任何可以用于获取多个关键数据的方法,这里对预处理的方式不做限制。
102.步骤303、将该访问日志分别计入各关键数据对应的时间窗口类型队列和各关键数据对应的请求次数类型队列中。
103.步骤304、判断全量维度对应的时间窗口类型队列的访问失败率是否符合第一类预设攻击条件。若是,则执行步骤306,否则,执行步骤305。
104.此处,全量维度对应的关键数据可以是访问时间。
105.步骤305、判断全量维度对应的请求次数类型队列的访问失败率是否符合第二类预设攻击条件。若是,执行步骤309,否则,执行步骤309和步骤306。
106.步骤306、全量维度对应的关键数据以外的各关键数据的时间窗口类型队列的访问失败率是否符合对应的第一类预设攻击条件。若是,则执行步骤307,否则,执行步骤308。
107.此处,全量维度对应的关键数据以外的各关键数据可以是访问ip、访问用户名、访问代理和访问口令等。
108.步骤307、确定攻击类型为单ip快速爆破攻击、单用户快速爆破攻击、单代理快速爆破攻击、单口令快速爆破攻击等。
109.步骤308、确定攻击类型为多ip快速爆破攻击、多用户快速爆破攻击、多代理快速爆破攻击、多口令快速爆破攻击等。
110.步骤309、全量维度对应的关键数据以外的各关键数据的请求次数类型队列的访问失败率是否符合对应的第二类预设攻击条件。若是,则执行步骤310,否则,执行步骤311。
111.步骤310、确定攻击类型为单ip慢速爆破攻击、单用户慢速爆破攻击、单代理慢速爆破攻击、单口令慢速爆破攻击等。
112.步骤311、确定攻击类型为多ip慢速爆破攻击、多用户慢速爆破攻击、多代理慢速爆破攻击、多口令慢速爆破攻击等。
113.基于上述系统架构和方法流程,本技术实施例还提供了一种攻击检测系统的架构,如图4所示,包括:
114.应用系统401,用于获取访问请求生成日志文件。
115.攻击检测系统包括:预处理模块402、记录创建模块403、统计模块404、检测模块405。
116.预处理模块402,用于获取日志文件,将日志文件中的访问日志进行正则处理得到该访问日志的多个关键数据。
117.记录创建模块403,用于针对每个关键数据创建该关键数据对应的是时间窗口类型队列和请求次数类型队列。
118.统计模块404,用于分别统计各关键数据对应的时间窗口类型队列和请求次数类型队列的访问失败率。
119.检测模块405,用于根据每个关键数据对应的时间窗口类型队列的访问失败率是否符合对应的第一类预设攻击条件,确定是否发生快速爆破攻击,根据每个关键数据对应的请求次数类型队列的访问失败率是否符合对应的第二类预设攻击条件,确定是否发生慢速爆破攻击。
120.图4中关键数据是以访问时间、访问ip和访问用户名为例,得到访问时间、访问ip和访问用户名各自对应的时间窗口类型队列和请求次数类型队列,进一步,根据访问时间对应的时间窗口类型队列和请求次数类型队列确定发生系统性快速爆破攻击或系统性慢速爆破攻击。根据访问ip对应的时间窗口类型队列和请求次数类型队列确定发生单ip快速爆破攻击\多ip快速爆破攻击或单ip慢速爆破攻击\多ip慢速爆破攻击。根据访问用户名对应的时间窗口类型队列和请求次数类型队列确定发生单用户快速爆破攻击\多用户快速爆破攻击或单用户慢速爆破攻击\多用户慢速爆破攻击。
121.基于相同的构思,本技术实施例提供了一种攻击检测装置,如图5所示,该装置包括:
122.预处理模块501,用于针对应用系统中的任一访问日志,对所述访问日志进行预处理,得到所述访问日志的各关键数据;将所述访问日志分别计入各关键数据对应的时间窗口类型记录和各关键数据对应的请求次数类型记录中;
123.检测模块502,用于针对任一关键数据对应的时间窗口类型记录,若预设时间窗口内的访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生快速爆破攻击,所述第一类预设攻击条件为所述关键数据对应的时间窗口类型记录的访问失败率大于所述关键数据对应的第一失败率阈值或访问失败率变化量大于所述关键数据对应的第一
变化量阈值;
124.所述检测模块502还用于,针对任一关键数据对应的请求次数类型记录,若预设次数窗口内的访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生慢速爆破攻击,所述第二类预设攻击条件为所述关键数据对应的请求次数类型记录的访问失败率大于所述关键数据对应的第二失败率阈值或访问失败率变化量大于所述关键数据对应的第二变化量阈值。
125.可选的,所述预处理模块501具体用于,将所述访问日志分别计入各关键数据对应的时间窗口类型队列和各关键数据对应的请求次数类型队列中;将所述时间窗口类型队列中最早访问时间且超出所述预设时间窗口的访问日志删除,将所述请求次数类型队列中最早访问时间且超出所述预设次数窗口的访问日志删除。
126.可选的,所述各关键数据中包括全量维度;所述检测模块502具体用于,若在全量维度的时间窗口类型队列中,访问日志的访问失败率符合第一类预设攻击条件,确定所述应用系统发生系统性快速爆破攻击;若在全量维度的请求次数类型队列中,访问日志的访问失败率符合第二类预设攻击条件,确定所述应用系统发生系统性慢速爆破攻击。
127.可选的,所述各关键数据中包括访问ip;所述检测模块502还用于,响应于所述访问ip对应的时间窗口类型队列的访问失败率符合第一类预设攻击条件,确定所述应用系统发生单ip快速爆破攻击;或者,响应于所述访问ip对应的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,确定所述应用系统发生多ip快速爆破攻击,所述访问ip对应的时间窗口类型队列中的各访问日志的访问ip相同。
128.可选的,所述关键数据还包括访问ip,所述检测模块502还用于,响应于所述访问ip对应的请求次数类型队列的访问失败率符合第二类预设攻击条件,确定所述应用系统发生单ip慢速爆破攻击;或者,响应于所述访问ip对应的请求次数类型队列的访问失败率不符合第二类预设攻击条件,确定所述应用系统发生多ip慢速爆破攻击,所述访问ip对应的请求次数类型队列中的各访问日志的访问ip相同。
129.可选的,所述关键数据还包括访问用户名,所述检测模块502还用于,响应于所述访问用户名对应的时间窗口类型队列的访问失败率符合第一类预设攻击条件,确定所述应用系统发生单用户快速爆破攻击;或者,响应于所述访问用户名对应的时间窗口类型队列的访问失败率不符合第一类预设攻击条件,确定所述应用系统发生多用户快速爆破攻击,所述访问用户名对应的时间窗口类型队列中的各访问日志的访问用户名相同。
130.可选的,所述关键数据还包括访问用户名,所述检测模块502还用于,响应于所述访问用户名对应的请求次数类型队列的访问失败率符合第二类预设攻击条件,确定所述应用系统发生单用户慢速爆破攻击;或者,响应于所述访问用户名对应的请求次数类型队列的访问失败率不符合第二类预设攻击条件,确定所述应用系统发生多用户慢速爆破攻击,所述访问用户名对应的请求次数类型队列中的各访问日志的访问用户名相同。
131.可选的,所述检测模块502还用于,响应于所述访问时间对应的时间窗口类型队列和所述访问时间对应的请求次数类型队列的访问失败率不符合对应的预设攻击条件,确定除所述访问时间外的各关键数据对应的时间窗口类型队列和请求次数类型队列是否符合对应的预设攻击类型,若是,确定所述应用系统发生对应的预设类型攻击。
132.可选的,所述关键数据还包括访问代理和/或访问口令。
133.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
134.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
135.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
136.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
137.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1