一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

攻击防御方法、装置、设备及可读存储介质与流程

2022-03-26 15:57:50 来源:中国专利 TAG:


1.本技术涉及网络安全技术领域,特别涉及一种攻击防御方法、装置、设备及可读存储介质。


背景技术:

2.网络爬虫简称爬虫,是一种按照一定的规则自动抓取互联网信息的程序或脚本。随着互联网的广泛普及与web技术的快速发展,网络爬虫数量日益增加。
3.网络爬虫包括合法爬虫和恶意爬虫,一些搜索引擎能够通过合法爬虫抓取网页信息等,恶意爬虫能够非法采集数据,甚至发起分布式拒绝服攻击(distributed deny of service,ddos),这些恶意爬虫通过伪造用户信息、模拟用户行为等,绕过企业安全策略并不断的访问业务服务器以获取信息,严重拖慢业务服务器的响应速度。为防御网络爬虫的攻击,常见的方法是运维人员根据网络爬虫的特征生成一些防护规则,利用这些防护规则识别业务请求是否为网络爬虫。
4.然而,随着互联网技术的飞速发展,攻击特征呈现多样性及多变性的特征,运维人员人工分析恶意爬虫的特征进而更新防护规则具有一定的滞后性,容易漏掉恶意爬虫,导致网络安全性差。


技术实现要素:

5.本技术提供一种攻击防御方法、装置、设备及可读存储介质,通过基于动态数据分析业务请求头部特征,从复杂多样的业务请求中识别出非正常业务请求的头部特征并生成检测规则,利用该检测规则对业务请求进行检测,提高网络安全性。
6.第一方面,本技术实施例提供一种攻击防御方法,应用于数据分析集群,所述方法包括:
7.获取历史日志以得到历史日志集合,所述历史日志包括来自安全服务器的安全日志和来自业务服务器的访问日志;
8.根据所述历史日志集合生成第一信息表,所述第一信息表用于记录历史请求的特征;
9.从所述业务服务器获取测试日志得到测试日志集合,根据所述测试日志集合生成第二信息表,所述第二信息表用于记录测试请求的特征;
10.根据所述第一信息表和所述第二信息表生成安全策略;
11.向所述安全服务器发送所述安全策略,以使得所述安全服务器根据所述安全策略检测当前业务请求。
12.第二方面,本技术实施例提供一种攻击防御方法,应用于安全服务器,包括:
13.接收来自数据分析集群的安全策略,所述安全策略是所述数据分析集群根据第一信息表和第二信息表生成的,所述第一信息表用于记录历史请求的特征,所述第二信息表用于记录测试请求的特征;
14.根据所述安全策略,检测来自终端设备的业务请求。
15.第三方面,本技术实施例提供一种攻击防御装置,集成在数据分析集群上,该攻击防御装置包括:
16.获取模块,用于获取历史日志以得到历史日志集合,所述历史日志包括来自安全服务器的安全日志和来自业务服务器的访问日志;
17.生成模块,用于根据所述历史日志集合生成第一信息表,所述第一信息表用于记录历史请求的特征;
18.所述获取模块,还用于从所述业务服务器获取测试日志得到测试日志集合;
19.所述生成模块,还用于根据所述测试日志集合生成第二信息表,所述第二信息表用于记录测试请求的特征;
20.处理模块,用于根据所述第一信息表和所述第二信息表生成安全策略;
21.收发模块,用于向所述安全服务器发送所述安全策略,以使得所述安全服务器根据所述安全策略检测当前业务请求。
22.第四方面,本技术实施例提供一种攻击防御装置,集成在安全服务器上,该攻击防御装置包括:
23.收发模块,用于接收来自数据分析集群的安全策略,所述安全策略是所述数据分析集群根据第一信息表和第二信息表生成的,所述第一信息表用于记录历史请求的特征,所述第二信息表用于记录测试请求的特征;
24.处理模块,用于根据所述安全策略,检测来自终端设备的业务请求。
25.第五方面,本技术实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第一方面或第一方面各种可能的实现方式所述的方法。
26.第六方面,本技术实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第二方面或第二方面各种可能的实现方式所述的方法。
27.第七方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第一方面或第一方面各种可能的实现方式所述的方法。
28.第八方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第二方面或第二方面各种可能的实现方式所述的方法。
29.第九方面,本技术实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第一方面或第一方面各种可能的实现方式所述的方法。
30.第十方面,本技术实施例提供一种包含计算程序的计算机程序产品,所述计算机程序被处理器执行时实现如上第二方面或第二方面各种可能的实现方式所述的方法。
31.本技术实施例提供的攻击防御方法、装置、设备及可读存储介质,数据分析集群根据历史日志生成用于记录历史请求的特征的第一信息表,根据测试日志生成用于记录测试请求的特征的第二信息表,关联第一信息表和第二信息表生成安全策略并发送给安全服务器。安全服务器接收到安全策略后,根据安全策略对来自终端设备的业务请求进行检测。采
用该种方案,数据分析集群通过基于最新的历史日志和测试日志生成并更新安全策略,能够适应不断变化的爬虫攻击特征,时效性强、准确度高,极大程度上提高了网络安全性。
附图说明
32.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1是本技术实施例提供的攻击防御方法的实施环境示意图;
34.图2是本技术实施例提供的攻击防御方法的流程图;
35.图3为本技术实施例提供的一种攻击防御装置的示意图;
36.图4为本技术实施例提供的另一种攻击防御装置的示意图;
37.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
38.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
39.网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。一般情况下,通过网络爬虫可以帮助用户抓取需要的网页信息,给用户带来正面帮助。例如,搜索引擎可以通过网络爬虫抓取网页信息,从而给用户返回更丰富的搜索结果。
40.然而,在有些情况下,会出现一些恶意的网络爬虫,有些不法份子利用网络爬虫进行网络恶意的爬虫操作,例如:利用网络爬虫盗取用户的账户/个人信息,或者,利用网络爬虫在短时间内多次登录某个账号以占用网络资源进行刷单等活动。恶意的爬虫操作对网站的正常运行造成了极大的影响,严重拖慢业务服务器的响应速度,还会浪费网络带宽,甚至会非法盗取信息或破坏企业的正常业务,给企业造成不可估量的损失。
41.现有技术中的反网络爬虫攻击方案,运维人员定义攻击请求的超文本传输协议(hyper text transfer protocol,http)请求头部特征,从而形成防护规则对爬虫攻击进行识别和阻断。但是,随着互联网技术的飞速发展,攻击技术及攻击工具也随着更新迭代,攻击者可以模拟或伪造拟人化的攻击请求,从而绕过企业预定义的防护规则。运维人员需要持续不断的对业务数据进行分析,以识别新的攻击特征,针对新的攻击特征生成防护规则并补充到现有的防护规则中,这往往需要耗费大量的运维人力资源。而且,运维人员的分析效果决定了安全规则的防护效果。由于攻击特征可能会不断的变化,因此,完全依靠人工分析,使得防护滞后,容易漏掉恶意爬虫,导致网络安全性差。
42.基于此,本技术实施例提供一种攻击防御方法、装置、设备及可读存储介质,通过基于动态数据分析业务请求头部特征,从复杂多样的业务请求中识别出非正常业务请求的头部特征并生成安全策略,利用该安全策略对业务请求进行检测,提高检测效率和网络安全性。
43.图1是本技术实施例提供的攻击防御方法的实施环境示意图。请参照图1,该实施环境包括:数据分析集群11、安全服务器12、业务服务器13和终端设备14。其中,安全服务器
12与数据分析集群11、业务服务器13以及终端设备14分别建立网络连接,数据分析集群11与业务服务器13之间建立网络连接。
44.数据分析集群11可以是硬件也可以是软件。当数据分析集群11为硬件时,该数据分析集群11为单个服务器或多个服务器组成的分布式服务器集群。当数据分析集群11为软件时,可以为多个软件模块或单个软件模块等,本技术实施例并不限制。数据分析集群11用于根据分析条件获取历史日志得到历史日志集合,对历史日志集合中的历史日志进行分析,将分析结果转换为安全服务器12可读的安全策略并下发给安全服务器12,由安全服务器12根据安全策略对业务请求进行检测。其中,历史日志包括从安全服务器12获取的安全日志,从业务服务器13获取的访问日志。
45.安全服务器12可以是硬件也可以是软件。当安全服务器12为硬件时,该安全服务器12为单个服务器或多个服务器组成的分布式服务器集群。当安全服务器12为软件时,可以为多个软件模块或单个软件模块等,本技术实施例并不限制。安全服务器12接收来自数据分析集群11的安全策略,基于该安全策略对来自终端设备14的业务请求进行检测以确定阻断该业务请求还是将该业务请求转发至业务服务器13。
46.业务服务器13可以是硬件也可以是软件。当业务服务器13为硬件时,该业务服务器13为单个服务器或多个服务器组成的分布式服务器集群。当业务服务器13为软件时,可以为多个软件模块或单个软件模块等,本技术实施例并不限制。业务服务器13为实际提供响应业务请求的服务器,业务服务器13和安全服务器12可以为物理上独立的两类服务器,也可以为逻辑上独立的两类服务器,即可以部署在同一台物理机上。
47.终端设备14可以是硬件也可以是软件。当终端设备14为硬件时,终端设备14例如为手机、平板电脑、电子书阅读器、膝上型便携电脑、台式计算机、服务器等。当终端设备14为软件时,其可以安装在上述列举的硬件设备中,此时,终端设备14例如为多个软件模块或单个软件模块等,本技术实施例并不限制。
48.应当理解的是,图1中的数据分析集群11、安全服务器12、业务服务器13和终端设备14的数量仅仅是示意性的。实际实现中,根据实际需求部署任意数量的数据分析集群11、安全服务器12、业务服务器13和终端设备14。
49.下面,基于图1所示实施环境,对本技术实施例提供的攻击防御方法进行详细说明。示例性的,请参照图2。
50.图2是本技术实施例提供的攻击防御方法的流程图。本实施例是从数据分析集群和安全服务器交互的角度进行说明。本实施例包括:
51.201、数据分析集群获取历史日志以得到历史日志集合。
52.其中,所述历史日志包括来自安全服务器的安全日志和来自业务服务器的访问日志。
53.示例性的,安全服务器处于用户的终端设备和业务服务器之间。用户通过终端设备访问业务服务器时,业务请求先到达安全服务器,由安全服务器对业务请求进行实时安全检测,若通过安全检测,则安全服务器将业务请求发送给业务服务器;若未通过安全检测,则安全服务器阻断业务请求。该过程中,无论业务请求是否通过安全检测,安全服务器都能够生成安全日志;对于通过安全检测的业务请求,业务服务器生成访问日志。访问日志是终端设备访问业务服务器的过程中,业务服务器记录的处理业务请求相关信息的原始文
件,通常以“.log”等结尾。安全日志是安全服务器接收到业务请求后,记录的安全检测相关信息的原始文件。
54.数据分析集群定期获取历史日志和测试日志,比如,每24小时获取一次最新的历史日志和测试日志,再如,每6小时获取一次最新的历史日志和测试日志,相当于获取动态数据。因此,数据分析集群生成的安全策略也是变化的,能够随着攻击请求的变化而变化。
55.可选的,数据分析集群获取历史日志以得到历史日志集合时,先获取分析条件,之后,根据所述分析条件获取历史日志以得到历史日志集合。其中,分析条件用于指示所述业务服务器的域名以及下述信息中的至少一个:待分析的url范围、所述历史日志集合中历史日志的数量、所述历史日志集合中历史日志的时间范围、http请求头范围。
56.示例性的,运维人员预先向数据分析集群发送配置文件,该配置文件指示分析条件。或者,数据分析集群定期从数据库等地获取分析条件。分析条件中待分析的url范围例如用于指示某些目录下的历史日志、后缀为.html的历史日志等,数量例如为1万、10万、5000等,时间范围例如为最近24小时内、最近一周内等,http请求头范围例如为accept头、accept-encoding头等。另外,分析条件中还包括一些必须携带的http请求头满足的占比等,比如,历史日志集合中大于或等于80%的历史日志包含某个http请求头,且测试日志集合中大部分测试日志都包含该http请求头,则该http请求头为必须携带的http请求头。同理,数据分析集群还可以根据该预设条件获取测试日志。
57.采用该种方案,实现根据需求获取历史日志和测试日志的目的。
58.202、根据所述历史日志集合生成第一信息表,所述第一信息表用于记录历史请求的特征。
59.历史日志集合中的每条历史日志包含历史请求的各种特征。当历史日志为访问日志时,访问日志中包含域名、请求方法、统一资源定位符(uniform resource locator,url)等信息;同理,安全日志也包括域名、请求方法、url等信息,数据分析集群汇总这些信息得到用于记录历史请求的特征的第一信息表。例如,第一信息表中记录域名为www.xxx.com、请求方法为“post”、url为http://www.xxx.com/login时,http请求头“accept”出现的次数、占比等。
60.203、从所述业务服务器获取测试日志得到测试日志集合,根据所述测试日志集合生成第二信息表,所述第二信息表用于记录测试请求的特征。
61.示例性的,数据分析集群上部署自动化测试工具,利用自动化测试工具模拟业务请求,即数据分析集群通过自动化测试工具向业务服务器发送测试业务请求。从业务服务器的角度而言,业务服务器接收到测试业务请求后,处理测试业务请求并生成测试日志。之后,数据分析集群从业务服务器获取多条测试日志得到测试日志集合,测试日志也包括域名、请求方法、url等信息,数据分析集群汇总这些信息得到用于记录测试业务请求的特征的第二信息表。
62.需要说明的是,上述的步骤201和步骤203并无严格的先后顺序。
63.204、根据所述第一信息表和所述第二信息表生成安全策略。
64.示例性的,数据分析集群关联第一信息表和第二信息表生成安全策略。例如,对于域名为www.xxx.com、请求方法为“post”、url为http://www.xxx.com/login的业务请求,生成的安全策略包括必须携带的http请求头、不能携带的http请求头等。
65.205、向所述安全服务器发送所述安全策略。
66.相应的,安全服务器接收安全策略。
67.206、根据所述安全策略,检测来自终端设备的业务请求。
68.安全服务器接收到安全策略后,每次接收到来自终端设备的业务请求后,利用该安全策略对业务请求进行安全检测,若业务请求通过安全检测,则将业务请求发送给业务服务器;若业务请求未通过安全检测,阻断业务请求。
69.由于爬虫攻击具有多样性和多变性,攻击特征的变化意味着需要不断更新安全策略。倘若人为分析攻击特征进而更新安全策略,则具有一定的滞后性,容易导致漏掉攻击请求。本技术实施例中,数据分析集群每次获取到最新的历史日志和测试日志后,生成第一信息表和第二信息表,基于第一信息表和第二信息表生成安全策略并下发给安全服务器,使得安全服务器更新本地的安全策略。由于该安全策略基于最新的历史日志和测试日志生成,因此能够适应最新的攻击特征。
70.本技术实施例攻击防御方法,数据分析集群根据历史日志生成用于记录历史请求的特征的第一信息表,根据测试日志生成用于记录测试请求的特征的第二信息表,关联第一信息表和第二信息表生成安全策略并发送给安全服务器。安全服务器接收到安全策略后,根据安全策略对来自终端设备的业务请求进行检测。采用该种方案,数据分析集群通过基于最新的历史日志和测试日志生成并更新安全策略,能够适应不断变化的爬虫攻击特征,时效性强、准确度高,极大程度上提高了网络安全性。
71.可选的,上述实施例中,为了产生测试日志,数据分析集群模拟用户向业务服务器发送测试请求。该些测试请求携带特定标识,用于指示该些测试请求是来自数据分析集群的模拟请求,而不是真正的来自终端设备的业务请求。业务服务器接收到测试请求后,处理测试请求生成测试日志,测试日志携带特定标识,便于数据分析集群区分哪些是测试日志,哪些是历史日志。
72.数据分析集群发送测试请求时,利用自动化测试工具,针对性的发起测试请求,例如,发起域名为www.xxx.com、请求方法为“post”、url为http://www.xxx.com/login的测试请求。
73.采用该种方案,数据分析集群通过模拟用户向业务服务器发送测试请求,由于测试请求通常为合法请求,因此,能够触发业务服务器产生正常请求的测试日志,后续数据分析集群根据测试日志得到第二信息表,对比第一信息表和第二信息表就能够生成有效的安全策略。
74.可选的,上述实施例中,数据分析集群根据所述历史日志集合生成第一信息表时,针对所述历史日志集合中的每一条历史日志提取历史信息,所述历史信息包括域名、请求方法、统一资源定位符url、http请求头和所述http请求头的值。接着,数据分析集群根据所述历史信息将所述历史日志集合划分为多个子集,所述多个子集中不同子集对应的域名、请求方法或url中的至少一个不同。之后,数据分析集群根据所述多个子集生成所述第一信息表。
75.示例性的,每一条历史日志中都包含域名、请求方法、统一资源定位符url等。可选的,每条历史日志可能还包括http请求头和所述http请求头的值等信息。数据分析集群通过动态数据分析的方式对各历史请求的历史信息进行分析,汇总一定时间范围内访问某个
业务服务器的历史请求,按照域名 请求方法 url的粒度,得到不同类型的历史请求。针对每种类型的历史请求分别学习http请求头、http请求头的值等特征,从而针对每种类型的历史请求分别确定出安全策略,进而将安全策略下发给安全服务器。
76.确定安全策略的过程中,数据分析集群从每条历史日志中提取出域名、请求方法、url、http请求头(如果有的话)、http请求头的值。其中,一个域名对应一个站点,站点也称之为业务服务器、应用服务器等。请求方法包括post方法、get方法、head方法、put方法、delete方法、connect方法、options方法、trace方法等。http请求头包括accept、accept-encoding、accept-language、cookie等,一条历史日志中,每个http请求头具有自己的值。例如http请求头为accept头,它的值为text/html。
77.数据分析集群针对每条历史日志提取出历史信息后,将每条历史日志的历史信息按照[域名][请求方法][url][http请求头]的形式进行初始化,http请求头中可能存在一个或多个头部,需根据配置的分析条件记录对应值,初始化后的http头部按键值对(key:value)的形式存储。例如,以下
①‑③
表示3条历史日志的历史信息:
[0078]

[www.xxx.com][post][http://www.xxx.com/login]["accept":"text/html","accept-encoding":"gzip,br"]
[0079]

[www.xxx.com][post][http://www.xxx.com/login]["accept":"text/html","accept-encoding":"gzip,eflate"]
[0080]

[www.xxx.com][post][http://www.xxx.com/register]["accept":"text/html","accept-encoding":"gzip"]数据分析集群将历史信息按照预设规则初始化后,根据所述历史信息将所述历史日志集合划分为多个子集,所述多个子集中不同子集对应的域名、请求方法或url中的至少一个不同。
[0081]
继续以上面按照预设规则初始化后的三条历史信息为例,历史信息

和历史信息

的域名、请求方法、url均相同,因此,将历史信息

和历史信息

对应的历史日志划分到同一个子集中,而历史信息

与历史信息

、历史信息

的url不同,因此,将历史信息

对应的历史日志划分到另外一个子集中。显然,属于同一个子集的各历史日志对应的历史请求具有相同的域名、相同的url和相同的请求方法。属于同一个子集的各历史日志对应的历史请求也称之为同一类型的历史请求。
[0082]
即使某种类型的业务请求的攻击特征发生变化,比如,改变http请求头等,由于数据分析集群能够及时生成安全策略并更新到安全服务器,因此能够解决已有安全策略无法适配新的攻击特征的问题。
[0083]
之后,数据分析集群根据所述多个子集生成所述第一信息表。示例性的,对于多个子集中的每个子集,数据分析集群汇总该子集中不同http请求头出现的次数、占比等,从而生成第一信息表,该第一信息表反应了一段时间内历史请求的特征。例如,数据分析集群获取最新24小时内的历史日志和测试日志,基于该历史日志生成的第一信息表能够反应过去24小时内历史请求的特征。
[0084]
同理,数据分析集群对测试日志进行类似的分析,能够得到第二信息表。
[0085]
采用该种方案,通过将历史日志集合中的历史日志划分为不同子集,不同子集对应不同类型的历史请求,以便后续针对不同类型的业务请求生成安全策略,从而解决因攻击特征变动导致的已有安全策略无法适配,以及安全策略更新不及时导致的漏掉攻击请求
的弊端,提升安全策略识别准确率、更新效率的同时,减少恶意爬虫对企业造成的危害。
[0086]
可选的,上述实施例中,数据分析集群根据所述多个子集生成所述第一信息表时,对于所述多个子集中的每个子集,根据从所述子集包含的每条历史日志中提取出的历史信息,确定第一统计信息,所述第一统计信息包括每种http请求头的出现次数、每种http请求头不同的值的出现的次数。之后,根据所述多个子集中每个子集的第一统计信息生成所述第一信息表。
[0087]
示例性的,上述的多个子集可以视为数据分析集群按照[域名] [请求方法] [url]的粒度对历史日志集合中的历史日志分类得到的,属于同一个子集的历史日志中的域名相同、请求方法相同、url也相同。数据分析集群根据多个子集生成所述第一信息表的过程中,对于多个子集中的每个子集,实质上是统计该子集中,每种http请求头的出现次数、每种http请求头不同的值的出现的次数的过程。例如,一个子集对应的域名为www.xxx.com,请求方法为post方法,url为http://www.xxx.com/login,则如下程序表示该子集的第一统计信息。
[0088][0089]
根据该第一统计信息可知:域名为www.xxx.com,请求方法为post方法,url为http://www.xxx.com/login对应的子集中,accept头出现了两次。其中,值为text/html的accept头出现了一次,值为application/xhtml xml的accept头出现了1次。另外,accept头-encoding出现了一次,且accept-encoding的值为“gzip,deflate,br”,即“gzip,deflate,br”出现了一次。
[0090]
进一步的,第一统计信息还可以包括各种http请求头的占比等。继续以上述域名为www.xxx.com,请求方法为post方法,url为http://www.xxx.com/login对应的子集为例,accept的占比为66.7%,accept-encoding的占比为33.3%,text/html、application/xhtml xml和gzip,deflate,br的占比均为33.3%。
[0091]
数据分析集群确定出每个子集对应的第一统计信息后,记录各个子集的第一统计信息从而得到第一信息表。
[0092]
同理,数据分析集群对测试日志提取域名、请求方法、url、http请求头和所述http请求头的值等测试信息,根据测试信息将测试日志集合划分为多个测试子集,属于同一个测试子集的测试日志包含相同的域名、相同的请求方法和相同的url。针对每个测试子集,数据分析集群统计每种http请求头的出现次数、每种http请求头的不同值的出现次数等得到第二统计信息,记录各个测试子集的第二统计信息得到第二信息表。
[0093]
采用该种方案,数据分析集群对各个子集中的http请求头、http请求头的值等进行统计进而生成第一信息表,实现准确、快速生成第一信息表的目的。
[0094]
可选的,上述实施例中,当某条历史日志为特殊的历史日志,即http请求头为cookie的历史日志时,数据分析集群针对该条历史日志提取历史信息时,从http请求头为cookie的历史日志中确定出至少一个键值对,将所述键值对作为所述cookie的值。
[0095]
示例性的,对于http请求头为cookie的历史日志,数据分析集群需要进行特殊处理。处理过程中,http请求头为cookie,值为一个或多个键值对。例如,一条历史日志中,cookie:gads=id=b3126f8f99f97b06:t=1583424713:。那么,该历史日志的历史信息包括:http请求头为cookie,值为[gads=id=b3126f8f99f97b06][t=1583424713],也就是说,将键值对gads=id=b3126f8f99f97b06和键值对t=1583424713作为值。
[0096]
同理,对于http请求头为cookie的测试日志,数据分析集群采用同样的处理方式提取测试信息。
[0097]
采用该种方案,实现从http请求头为cookie的历史日志中提取出正确的历史信息的目的。
[0098]
可选的,上述实施例中,数据分析集群根据所述第一信息表和所述第二信息表生成安全策略时,首先,从所述第一信息表中确定出目标子集的第一统计信息,从所述第二信息表中确定出第二统计信息,所述目标子集是所述多个子集中对应目标域名、目标请求方法和目标url的子集,所述第二统计信息用于指示根据测试日志得到的。之后,根据所述第一统计信息和所述第二统计信息确定符合预设条件的业务请求的安全策略,所述预设条件包括:包含所述目标域名、所述目标请求方法和所述目标url。
[0099]
示例性的,第一信息表中记录各子集的第一统计信息,以下为清楚起见,将对历史日志集合划分出的多个子集中的任意一个子集称之为目标子集。对于目标子集,数据分析集群从第一信息表中确定出第一统计信息,从第二信息表中确定出第二统计信息。例如,目标子集是域名为www.xxx.com,请求方法为post方法,url为http://www.xxx.com/login对应的子集,则第一统计信息是根据多个历史请求的历史日志得到的,该些历史请求的域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login;第二统计信息是根据多个测试请求的测试日志得到的,该些测试日志的域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login。域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login分别称之为目标域名、目标请求方法和目标url。
[0100]
之后,数据分析集群根据第一统计信息和第二统计信息生成针对符合预设条件的业务请求的安全策略,符合预设条件的业务请求即为域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login的业务请求。
[0101]
数据分析集群生成安全策略后,将安全策略发送给安全服务器。接下来,安全服务器每次接收到域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login的业务请求后,利用该安全策略对业务请求进行安全检测。
[0102]
采用该种方案,数据分析集群以[域名] [请求方法] [url]的粒度生成安全策略,实现快速、准确的生成安全策略的目的。
[0103]
可选的,上述实施例中,数据分析集群根据所述第一统计信息和所述第二统计信息确定符合预设条件的业务请求的安全策略时,根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息,所述指示信息包括下述信息中的至少一个:必须携带的http请求头、不能携带的http请求头、非必须携带的http请求头、所述必须携带的http请求头的正确值、所述必须携带的http请求的错误值。之后,根据所述指示信息生成所述符合预设条件的业务请求的安全策略。
[0104]
示例性的,数据分析集群对第一统计信息和第二统计信息进行关联,从而得到预设条件的业务请求的指示信息。
[0105]
可选的,为了确定出必须携带的http请求头,数据分析集群从所述第一统计信息中确定出第一http请求头,所述第一http请求头的占比超过第一占比。当所述第二统计信息表中存在所述第一http请求头时,数据分析集群确定所述第一http请求头为必须携带的http请求头。
[0106]
以预设条件包括:域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login、第一占比为90%、第一http请求头为accept头为例,数据分析集群根据第一统计信息中accept头的出现次数确定出accept头出现的占比为90%,比如,第一统计信息对应的目标子集中有100条历史日志,其中90条历史日志中都出现了accept头。数据分析集群发现第二统计信息表中也出现了accept头,说明数据分析集群利用自动测试工具模拟正常业务请求时也携带accept头。因此,数据分析集群认为accept头为符合预设条件的业务请求必须携带的http请求头。
[0107]
采用该种方案,对于任意类型的业务请求,实现准确确定出必须携带的http请求头的目的。
[0108]
可选的,上述实施例中,为了确定出非必须携带的http请求头,即可携带也可不携带的http请求头,数据分析集群从所述第一统计信息中确定出第二http请求头,所述第二http请求头的占比超过第二占比。当所述第二统计信息表指示部分符合预设条件的业务请求包含所述第二http请求头时,确定所述第二http请求头是非必须携带的http请求头。
[0109]
继续以上述的预设条件、第二占比为40%、第二http请求头为accept为例,数据分析集群根据第一统计信息中accept头的出现次数确定出accept头出现的占比为40%,即部分历史请求携带accept头。同时,数据分析集群发现生成第二统计信息的测试日志中,有些包含accept头,有些不包含accept头。因此,数据分析集群认为accept头为符合预设条件的业务请求非必须携带的http请求头,即符合预设条件的业务请求可携带、也可不携带accept头。
[0110]
采用该种方案,对于任意类型的业务请求,实现准确确定出非必须携带的http请求头的目的。
[0111]
可选的,上述实施例中,为了确定出不能携带的http请求头,数据分析集群从所述
第一统计信息中确定出第三http请求头,所述第三http请求头的占比超过第三占比。当所述第二统计信息表中不存在所述第三http请求头时,确定所述第三http请求头为不能携带的http请求头。
[0112]
以预设条件包括:域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login为例,假设第三占比为80%,第三http请求头为proxy-authenticate头,数据分析集群根据第一统计信息中proxy-authenticate头的出现次数确定出proxy-authenticate头出现的占比为80%,说明大部分历史日志中都包含proxy-authenticate头。但是,第二统计信息中没有proxy-authenticate头,且proxy-authenticate头不在定义的标准头部范围内,则数据分析集群认为符合预设条件的业务请求不能携带proxy-authenticate头。其中,标准头部范围是数据分析集群获取历史日志和测试日志时预定义的头部范围。例如,预定义头部范围包括accept头和accept-encoding头,则获取历史日志和测试日志时,仅获取包含accept头和/或accept-encoding头的日志。
[0113]
采用该种方案,对于任意类型的业务请求,实现准确确定出不能携带的http请求头的目的。
[0114]
上述实施例中,判断条件涉及的占比,如第一占比、第二占比、第三占比等可在分析条件中定义。
[0115]
数据分析集群得到必须携带的http请求头、不能携带的http请求头、非必须携带的http请求头后,对于必须携带的http请求头,需要进一步的确定哪些值是正确值,哪些值是错误值。
[0116]
可选的,上述实施例中,为了确定出某一个必须携带的http请求头的正确值,数据分析集群从所述第一统计信息中确定出所述必须携带的http请求头的至少一个值。之后,从所述至少一个值中确定出第一值,所述第一值的占比超过第四占比。当所述第二统计信息表中存在值为所述第一值的必须携带的http请求头时,数据分析集群确定所述第一值为所述正确值,所述至少一个值中除所述第一值以外的其他值为错误值。
[0117]
以预设条件包括:域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login、第四占比为90%、必须携带的http请求头为accept头为例,数据分析集群从目标子集中确定出http请求头为accept头的历史日志,发现值为[text/html]的accept头的占比为90%。数据分析集群从第二统计信息中确定出accept头的值均为[text/html],则数据分析集群认为accept头的值必须为[text/html],其余类型的值为非正常业务请求携带的值,即[text/html]是一个正确值。根据这些信息生成安全策略并部署在安全服务器上后,对于安全服务器而言,若一条符合预设条件的业务请求中accept头的值不是[text/html],则说明该业务请求不是正常的业务请求,需要阻断。
[0118]
可选的,上述实施例中,为了确定出某一个必须携带的http请求头的错误值,数据分析集群从所述第一统计信息中确定出所述必须携带的http请求头的至少一个值。之后,数据分析集群从所述至少一个值中确定出第二值,所述第二值的占比超过第五占比。当所述第二统计信息表中不存在值为所述第二值的所述必须携带的http请求头时,确定所述第二值为错误值。
[0119]
以预设条件包括:域名为www.xxx.com、请求方法为post方法、url为http://www.xxx.com/login、第五占比为40%、必须携带的http请求头为accept头为例,数据分析
集群从目标子集中确定出http请求头为accept头的历史日志,发现值为[image/apng]的accept头的占比为40%。数据分析集群从第二统计信息中确定出不存在值为[image/apng]的accept头,则数据分析集群认为accept头的值不能为[image/apng],即[image/apng]是一个错误值。根据这些信息生成安全策略并部署在安全服务器上后,对于安全服务器而言,若一条符合预设条件的业务请求中accept头的值是[image/apng],则说明该业务请求不是正常的业务请求,需要阻断。
[0120]
上述实施例中,判断条件涉及的占比可在分析条件中定义。
[0121]
采用该种方案,针对每个预设条件,数据分析集群确定出必须携带的http请求头、不能携带的http请求头、非必须携带的http请求头以及必须携带的http请求头的正确值和错误值,实现将测试日志、历史日志的分析结果转换为安全服务器可识别的安全策略的目的。
[0122]
上述实施例中,数据分析集群周期性的获取测试日志和历史日志并进行分析,将分析结果转换为安全策略,并将安全策略同步更新到安全服务器上,由安全服务器利用最新的安全策略对业务请求进行安全检测。检测过程中,安全服务器接收到来自终端设备的业务请求(即当前业务请求)后,从中提取出目标域名、目标请求方法和目标url。之后,安全服务器根据[目标域名] [目标请求方法] [目标url]的组合确定出包含所述目标域名、目标请求方法和目标url的业务请求的安全策略,对比该安全策略的指示信息和当前业务请求的http请求头以及http请求头的值,从而判断阻断当前业务请求还是将当前业务请求转发给业务服务器。
[0123]
采用该种方案,安全服务器利用最新的安全策略对当前业务请求进行安全检测,准确率高、速度快。
[0124]
下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
[0125]
图3为本技术实施例提供的一种攻击防御装置的示意图。该攻击防御装置300包括:获取模块31、生成模块32、处理模块33和收发模块34。
[0126]
获取模块31,用于获取历史日志以得到历史日志集合,所述历史日志包括来自安全服务器的安全日志和来自业务服务器的访问日志;
[0127]
生成模块32,用于根据所述历史日志集合生成第一信息表,所述第一信息表用于记录历史请求的特征;
[0128]
所述获取模块31,还用于从所述业务服务器获取测试日志得到测试日志集合;
[0129]
所述生成模块32,还用于根据所述测试日志集合生成第二信息表,所述第二信息表用于记录测试请求的特征;
[0130]
处理模块33,用于根据所述第一信息表和所述第二信息表生成安全策略;
[0131]
收发模块34,用于向所述安全服务器发送所述安全策略,以使得所述安全服务器根据所述安全策略检测当前业务请求。
[0132]
一种可行的设计中,所述生成模块32,用于针对所述历史日志集合中的每一条历史日志提取历史信息,所述历史信息包括域名、请求方法、统一资源定位符url、http请求头和所述http请求头的值;根据所述历史信息将所述历史日志集合划分为多个子集,所述多个子集中不同子集对应的域名、请求方法或url中的至少一个不同;根据所述多个子集生成
所述第一信息表。
[0133]
一种可行的设计中,所述生成模块32根据所述多个子集生成所述第一信息表时,用于对于所述多个子集中的每个子集,根据从所述子集包含的每条历史日志中提取出的历史信息,确定第一统计信息,所述第一统计信息包括每种http请求头的出现次数、每种http请求头不同的值的出现的次数;根据所述多个子集中每个子集的第一统计信息生成所述第一信息表。
[0134]
一种可行的设计中,所述生成模块32针对所述历史日志集合中的每一条历史日志提取历史信息时,当所述历史日志集合中存在http请求头为cookie的历史日志时,从http请求头为cookie的历史日志中确定出至少一个键值对,将所述键值对作为所述cookie的值。
[0135]
一种可行的设计中,所述处理模块33,用于从所述第一信息表中确定出目标子集的第一统计信息,从所述第二信息表中确定出第二统计信息,所述目标子集是所述多个子集中对应目标域名、目标请求方法和目标url的子集,所述第二统计信息用于指示根据测试日志得到的;根据所述第一统计信息和所述第二统计信息确定符合预设条件的业务请求的安全策略,所述预设条件包括:包含所述目标域名、所述目标请求方法和所述目标url。
[0136]
一种可行的设计中,所述处理模块33根据所述第一统计信息和所述第二统计信息确定符合预设条件的业务请求的安全策略时,用于根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息,所述指示信息包括下述信息中的至少一个:必须携带的http请求头、不能携带的http请求头、非必须携带的http请求头、所述必须携带的http请求头的正确值、所述必须携带的http请求的错误值;根据所述指示信息生成所述符合预设条件的业务请求的安全策略。
[0137]
一种可行的设计中,所述处理模块33根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息时,用于从所述第一统计信息中确定出第一http请求头,所述第一http请求头的占比超过第一占比;当所述第二统计信息表中存在所述第一http请求头时,确定所述第一http请求头为必须携带的http请求头。
[0138]
一种可行的设计中,所述处理模块33根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息时,用于从所述第一统计信息中确定出第二http请求头,所述第二http请求头的占比超过第二占比;当所述第二统计信息表指示部分符合预设条件的业务请求包含所述第二http请求头时,确定所述第二http请求头是非必须携带的http请求头
[0139]
一种可行的设计中,所述处理模块33根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息时,用于从所述第一统计信息中确定出第三http请求头,所述第三http请求头的占比超过第三占比;
[0140]
当所述第二统计信息表中不存在所述第三http请求头时,确定所述第三http请求头为不能携带的http请求头。
[0141]
一种可行的设计中,所述处理模块33根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息时,用于针对每个必须携带的http请求头,从所述第一统计信息中确定出所述必须携带的http请求头的至少一个值;从所述至少一个值中确定出第一值,所述第一值的占比超过第四占比;当所述第二统计信息表中存在值为
所述第一值的必须携带的http请求头时,确定所述第一值为所述正确值,所述至少一个值中除所述第一值以外的其他值为错误值。
[0142]
一种可行的设计中,所述处理模块33根据所述第一统计信息和所述第二统计信息确定所述符合预设条件的业务请求的指示信息时,针对每个必须携带的http请求头,从所述第一统计信息中确定出所述必须携带的http请求头的至少一个值;从所述至少一个值中确定出第二值,所述第二值的占比超过第五占比;当所述第二统计信息表中不存在值为所述第二值的所述必须携带的http请求头时,确定所述第二值为错误值。
[0143]
一种可行的设计中,所述收发模块34在所述生成模块32根据所述测试日志集合生成第二信息表之前,还用于向所述业务服务器发送测试业务请求,以使得所述业务服务器处理所述测试业务请求生成所述测试日志。
[0144]
一种可行的设计中,所述获取模块31,用于获取分析条件,所述分析条件用于指示所述业务服务器的域名以及下述信息中的至少一个:待分析的url范围、所述历史日志集合中历史日志的数量、所述历史日志集合中历史日志的时间范围、http请求头范围;根据所述分析条件获取历史日志以得到历史日志集合。
[0145]
本技术实施例提供的攻击防御装置,可以执行上述实施例中数据分析集群的动作,其实现原理和技术效果类似,在此不再赘述。
[0146]
图4为本技术实施例提供的另一种攻击防御装置的示意图。该攻击防御装置400包括:收发模块41和处理模块42。
[0147]
收发模块41,用于接收来自数据分析集群的安全策略,所述安全策略是所述数据分析集群根据第一信息表和第二信息表生成的,所述第一信息表用于记录历史请求的特征,所述第二信息表用于记录测试请求的特征;
[0148]
处理模块42,用于根据所述安全策略,检测来自终端设备的业务请求。
[0149]
一种可行的设计中,所述处理模块42,用于根据所述业务请求确定目标域名、目标请求方法和目标url;根据所述目标域名、所述目标请求方法和所述目标url,从所述安全策略中确定出指示信息,所述指示信息包括下述信息中的至少一个:包含所述目标域名、目标请求方法和目标url的业务请求必须携带的http请求头、不能携带的http请求头、非必须携带的http请求头、所述必须携带的http请求头的正确值、所述必须携带的http请求的错误值;根据所述指示信息确定所述业务请求是否为恶意网络爬虫。
[0150]
一种可行的设计中,所述收发模块41接收来自数据分析集群的安全策略之前,还用于接收来自数据分析集群的测试请求;
[0151]
所述处理模块42,还用于根据所述测试请求,生成测试日志;
[0152]
所述收发模块41,还用于向所述数据分析集群发送所述测试日志。
[0153]
本技术实施例提供的攻击防御装置,可以执行上述实施例中安全服务器的动作,其实现原理和技术效果类似,在此不再赘述。
[0154]
图5为本技术实施例提供的一种电子设备的结构示意图。如图5所示,该电子设备500例如为上述的数据分析集群或安全服务器,该电子设备500包括:
[0155]
处理器51和存储器52;
[0156]
所述存储器52存储计算机指令;
[0157]
所述处理器51执行所述存储器52存储的计算机指令,使得所述处理器51执行如上
数据分析集群实现的攻击防御方法;或者,使得所述处理器51执行如上安全服务器实现的攻击防御方法。
[0158]
处理器51的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
[0159]
可选地,该电子设备500还包括通信部件53。其中,处理器51、存储器52以及通信部件53可以通过总线54连接。
[0160]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如上数据分析集群或安全服务器实施的攻击防御方法。
[0161]
本技术实施例还提供一种计算机程序产品,该计算机程序产品包含计算机程序,计算机程序被处理器执行时实现如上数据分析集群或安全服务器实施的攻击防御方法。
[0162]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
[0163]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献