首页> 中国专利> 一种业务逻辑攻击检测模型的构建方法和计算设备

一种业务逻辑攻击检测模型的构建方法和计算设备

摘要

本发明公开了一种业务逻辑攻击检测模型的构建方法,适于在计算设备中执行,该方法包括:分别采集正常业务访问流量和发生业务逻辑攻击时的攻击业务访问流量;分别从所述正常业务访问流量和攻击业务访问流量中提取同一IP在不同预定时段内的URL请求序列,并分别计算各IP在各预定时段内的多个请求特征值;分别将正常业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条正常业务特征向量,以及将攻击业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条攻击业务特征向量;以及采用预定分类器算法对所述正常业务特征向量和攻击业务特征向量进行分类训练,得到所述业务逻辑攻击检测模型。本发明还公开了对应的计算设备。

著录项

  • 公开/公告号CN107920062A

    专利类型发明专利

  • 公开/公告日2018-04-17

    原文格式PDF

  • 申请/专利权人 北京知道创宇信息技术有限公司;

    申请/专利号CN201711070094.X

  • 发明设计人 宋探;何丰宇;

    申请日2017-11-03

  • 分类号

  • 代理机构北京思睿峰知识产权代理有限公司;

  • 代理人谢建云

  • 地址 100097 北京市海淀区蓝靛厂南路55号金威大厦803

  • 入库时间 2023-06-19 05:06:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-05

    授权

    授权

  • 2019-05-10

    著录事项变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20171103

    著录事项变更

  • 2018-05-11

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20171103

    实质审查的生效

  • 2018-04-17

    公开

    公开

说明书

技术领域

本发明涉及互联网技术领域,尤其涉及一种业务逻辑攻击检测模型的构建方法和计算设备。

背景技术

众所周知,业务逻辑漏洞挖掘一直是安全测试中“经久不衰”的话题。相比SQL注入、XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题进行攻击,这类问题往往危害巨大,可能造成了企业的资产损失和名誉受损,并且传统的安全防御设备和措施收效甚微。业务逻辑漏洞主要关注于业务逻辑流程,其是由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或处理错误。通常业务逻辑攻击的重点主要在于身份认证、数据篡改、密码找回、绕过授权验证、验证码突破、流程乱序、接口调用安全等。

然而,现有的安全防护设备根据特征识别网络攻击流量,只能识别出传统的网络攻击,例如SQL注入、XSS、文件上传等,而对于业务逻辑漏洞则无法自动识别,只能通过人工识别。因此,需要提供一种能够自动识别业务逻辑攻击的方法。

发明内容

为此,本发明提供一种业务逻辑攻击检测模型的构建方法和计算设备,以力图解决或至少缓解上面存在的问题。

根据本发明的一个方面,提供了一种业务逻辑攻击检测模型的构建方法,适于在计算设备中执行,该方法包括:分别采集正常业务访问流量和发生业务逻辑攻击时的攻击业务访问流量;分别从所述正常业务访问流量和攻击业务访问流量中提取同一IP在不同预定时段内的URL请求序列,并分别计算各IP在各预定时段内的多个请求特征值;分别将正常业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条正常业务特征向量,以及将攻击业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条攻击业务特征向量;以及采用预定分类器算法对所述正常业务特征向量和攻击业务特征向量进行分类训练,得到所述业务逻辑攻击检测模型。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,还包括步骤:获取实际业务访问流量,并将该实际业务访问流量构造为多条实际业务特征向量;将所述多条实际业务特征向量输入到所述业务逻辑攻击检测模型中,得到所述多条实际业务特征向量中属于攻击业务的特征向量;以及根据所得到的属于攻击业务的特征向量,确定对应的攻击者IP和攻击请求的原始数据。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,同一IP在不同预定时段内的URL请求序列是指在各预定时段内具有相同的源IP、目标IP和用户代理的请求组合。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,多个请求特征值包括以下特征值中的一种或多种:请求时间分值、IP分值、用户代理分值、请求方法分值、URL类别分值、序列特征分值。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,某个IP在某预定时段内的URL请求序列的序列特征值分值是该URL请求序列中所有请求的序列特征值分值之和,所述序列特征分值适于根据以下方法进行计算:分别录制单个业务的完整请求序列;对于所统计出的某个IP在某预定时段内的URL请求序列,若其中某个请求不在任何单个业务的完整请求序列中,则将该请求标记为零散请求;若其中某个或某些请求存在于某单个业务的完整请求序列中,但不能构成该单个业务的完整请求序列,则将该请求或该些请求标记为危险请求;若其中某个或某些请求存在于某单个业务的完整请求序列中,且能构成该单个业务的完整请求序列,则将该请求或该些请求标记为正常业务请求;其中,每个零散请求、危险请求和正常业务请求的序列特征分值分别为第一至第三数值。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,访问时间分值在工作时段、晚上时段、深夜时段和其他时段内的取值范围分别为第一至第四取值范围,且访问时间分值在各取值范围内均采用预定分布规则进行取值。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,当请求IP为正常业务IP时,其IP分值的取值范围为第五取值范围;当请求IP为威胁情报IP时,其IP分值的分值为第四数值;当请求IP是其他类型的IP时,其取值范围为第六取值范围。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,用户代理UA包括浏览器UA、蜘蛛UA、脚本UA,其对应的用户代理分值分别为第五至第七数值。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,对于GET和POST类型的请求,其请求方法分值为第三数值;对于其他类型的请求,其请求方法分值为第一数值。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,对于存在于威胁情报列表中的危险URL,其URL类别分值为第六数值;对于网站中的真实URL,其URL类别分值为第三数值;对于不存在的URL,其URL类别分值为第一数值。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,工作时段、晚上时段和深夜时段分别为8:00-17:00、17:00-23:00和1:00-5:00;第一至第六取值范围分别为21-50、1-20、90-100、51-90、1-20和21-99;第一至第七数值分别是1、10、0、100、1、2、3;预定分布规则为泊松分布或直线分布,预定时段为连续的5min内。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,正常业务访问流量和攻击业务访问流量分别通过人工模仿正常用户和攻击用户的访问行为来记录该访问过程的访问流量。

可选地,在根据本发明的业务逻辑攻击检测模型的构建方法中,预定分类器算法为向量机分类器、贝叶斯分类器和最大熵分类器中的任一种。

根据本发明的另一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;和一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行如上所述的业务逻辑攻击检测模型的构建方法的指令。

根据本发明的再一方面,提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当计算设备执行时,使得所述计算设备执行如上所述的业务逻辑攻击检测模型的构建方法。

根据本发明的技术方案,预设正常业务访问样本和发生业务逻辑攻击时的攻击业务访问样本,并分别提取这两种样本中同一IP在不同预定时段内的URL请求序列,以及从该请求序列中计算请求时间、IP、用户代理等多个请求特征值。之后,分别将正常业务访问和攻击业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条正常业务特征向量和一条攻击业务特征向量,并采用分类器对这两种特征向量进行分类训练,从而得到业务逻辑攻击检测模型。之后,在实际应用中,将实际业务访问流量也构造为多条实际业务特征向量,将该多条向量输入到上述模型中,即可得到其中属于攻击业务的特征向量,而根据该攻击业务的特征向量即可确定相应的攻击者IP和原始数据。本发明实现了业务逻辑攻击的自动检测,有效弥补了漏洞检测领域的不足,提高了业务访问的安全性。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的计算设备100的示意图;以及

图2示出了根据本发明一个实施例的业务逻辑攻击检测模型的构建方法200的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1是示例计算设备100的框图。在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。

取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。程序数据124包括指令,在根据本发明的计算设备100中,程序数据124包含用于执行业务逻辑攻击检测模型的构建方法200的指令。

计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

计算设备100可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100被配置为执行根据本发明的业务逻辑攻击检测模型的构建方法200。

图2示出了根据本发明一个实施例的业务逻辑攻击检测模型的构建方法200的流程图。如图2所述,该方法始于步骤S220。

在步骤S220中,分别采集正常业务访问流量和发生业务逻辑攻击时的攻击业务访问流量。

根据本发明的一个实施例,正常业务访问流量和攻击业务访问流量分别可以通过人工模仿正常用户和攻击用户的访问行为,并记录相应访问过程的访问流量得到。对于正常业务访问流浪,以某网上商城为例,人为操作模仿正常用户,记录从登陆、查询商品、购买商品、用户信息管理、退货、退出登陆等全部过程,并记录下来该过程中的访问数据。对于攻击业务访问流量,可模仿攻击者人为操作各项业务攻击行为,如越权查看其它用户订单、撞库暴力猜解注册用户名等,并记录下来该过程中的访问数据。通常,记录访问数据即是记录URL请求序列,其中包括各请求的访问时间、IP、用户代理(User Agent,UA)等等。采用多个IP进行多次访问,或者同一IP进行多次不同路径访问,即可得到多条正常业务访问样本。而由于是人工录制的,因此该全过程就是一个完整的业务连接,可以直接在后文中用于计算特征向量。

此外,正常业务访问流量可以是人工录制的,也可以从实际流量中手工筛选出正常流量。这些实际流量可以是计算设备自己采集并存储的,也可以预先存储于与该计算设备通信连接的数据存储装置中,然后计算设备从该数据存储装置中获取所需要的实际流量。其中,数据存储装置例如可以是数据库。

以下为人工录制的登录、新建用户和退出过程的相关内容:

(1)GET/index/index/login.html(访问登录页面)

(2)GET/captcha.html(刷新验证码)

(3)POST/index/index/logined(发送登录账号密码验证码)

(4)GET/index/account/add_member.html HTTP/1.1(新建用户)

(5)GET/uploads/20170406/2d4b7b74881ecded66ea4e4ed1d14ba9.jpg HTTP/1.1(上传头像)

(6)GET/index/index/logout(退出)

需要说明的是,一条完整的请求示例如下:127.0.0.1(目的IP)66.249.73.5(源IP)--[05/Apr/2017:22:24:54+0800](时间戳)"GET/HTTP/1.1"(请求)403(应答码)877(应答长度)"-""Mozilla/5.0(compatible;Googlebot/2.1;+http://www.google.com/bot.html)"(UA)。但简化起见,本发明的实例中省略了其中一部分内容,实际上各请求实例中都有这些项的相应内容。

假如以下是一串实际流量,并假设其用户代理为IE浏览器,其中3.3.3.3、4.4.4.4等为源IP,该实例中所有URL请求按照时间顺序进行排序。

3.3.3.3 GET/HTTP/1.1

4.4.4.4 GET/index/index/login.html HTTP/1.1

3.3.3.3 GET/captcha.html HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

3.3.3.3 POST/index/index/logined HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

5.5.5.5 GET/captcha.html HTTP/1.1

5.5.5.5 GET/index/index/login.html HTTP/1.1

5.5.5.5 GET/index/home/index.html HTTP/1.1

3.3.3.3 GET/index/index/login.html HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

6.6.6.6 GET/captcha.html HTTP/1.1

6.6.6.6 POST/index/index/logined HTTP/1.1

6.6.6.6 POST/index/index/logined HTTP/1.1

7.7.7.7 GET/captcha.html HTTP/1.1

7.7.7.7 GET/index/index/login.html HTTP/1.1

6.6.6.6 GET/index/account/add_member.html HTTP/1.1

6.6.6.6 GET/uploads/20170406/2d4b7b74881ecded66ea4e4ed1d14ba9.jpgHTTP/1.1

6.6.6.6 GET/uploads/20170407/bb37fb34e10a86a0fe7ad92b9701781e.jpgHTTP/1.1

随后,在步骤S240中,分别从正常业务访问流量和攻击业务访问流量中提取同一IP在不同预定时段内的URL请求序列,并分别计算各IP在各预定时段内的多个请求特征值。

根据本发明的一个实施例,同一IP在不同预定时段内的URL请求序列可以是指在各预定时段内具有相同的源IP的请求组合,如某源IP在每个预定时段内的所有请求的组合;当然,也可以是指在各预定时段内具有相同的源IP、目标IP和用户代理的请求组合。其中,预定时段可以是连续的5分钟内。这里,特征值的计算是以业务连接为最小计算单位,业务连接即为不间断的一段时间内,相同IP对和相同UA的请求组合。通常,流量或日志包含源IP和目的IP这组IP对,对于web服务来说,源IP是用户的IP,目的IP是服务器的IP,而具有相同IP对和相同UA的多个请求接口构成一个业务连接。

假如在上文的一串实际流量中,将同一源IP(3.3.3.3、4.4.4.4等)的URL请求按照时间顺序提取出来,其中6.6.6.6(源IP)提取出来的就是一个正常的业务连接,而4.4.4.4(源IP)提取出来的就是一个发生了暴力破解的业务连接。

源IP均为6.6.6.6、用户代理均为IE浏览器的请求序列如下所示:

6.6.6.6 GET/captcha.html HTTP/1.1

6.6.6.6 POST/index/index/logined HTTP/1.1

6.6.6.6 POST/index/index/logined HTTP/1.1

6.6.6.6 GET/index/account/add_member.html HTTP/1.1

6.6.6.6 GET/uploads/20170406/2d4b7b74881ecded66ea4e4ed1d14ba9.jpgHTTP/1.1

源IP均为4.4.4.4、用户代理均为IE浏览器的请求序列如下所示:

4.4.4.4 GET/index/index/login.html HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

4.4.4.4 GET/captcha.html HTTP/1.1

4.4.4.4 POST/index/index/logined HTTP/1.1

另外,连续的业务连接是指在一段时间内的业务请求,例如阈值设置成5分钟,也就是5min内的同一IP对和UA的所有请求作为一个连续业务连接。当然小说阅读网站因为阅读时间较长,因此阈值会时间长一些。例如,在以下的四个请求示例中,在IP对和UA都相同的情况下,请求a和b的时间差为1min,可以算作一个业务连接;而请求c和d与请求a和b之间的访问时间差远大于预定阈值,因此请求c和d算作另一个业务连接。

a 12:05 GET/HTTP/1.1

b 12:06 GET/HTTP/1.1

c 12:30 GET/HTTP/1.1

d 12:31 GET/HTTP/1.1

这样,将每5min内的同一IP对和UA的所有请求提取出来,按照时间顺序进行排序,作为一个业务连接。这里,对于同一IP对和UA,先确定其第一次请求的时刻,然后以该时刻为起点提取5min内的所有请求,构成一个业务连接。而以该时刻为起点5min后的第一个请求,则作为下一个业务连接的起始请求,并同样统计该起始请求开始后的5min内的请求,依次类推。通过这种方法,可以将正常业务访问流量和攻击业务访问流量划分为多个小业务连接,如上文中的源IP为6.6.6.6就是其中一个业务连接。

根据本发明的一个实施例,请求特征可以是请求时间、IP(如源IP)、用户代理、请求方法(如HTTP请求方法)、URL类别和序列特征中的一种或多种。当然,这些特征只是一些示例性说明,实际应用中还可以加入其他特征,本发明对此不作限制。将以上这些特征进行综合分析后可以选取其中几种最重要的特征进行模型训练,当然也可以选取所有特征进行模型训练,本发明对此不作限制。相应地,多个请求特征值包括以下特征值中的一种或多种:请求时间分值、IP分值、用户代理分值、请求方法分值、URL类别分值、序列特征分值。

其中,某IP在某预定时段内的URL请求序列的序列特征值分值是该URL请求序列中所有请求的序列特征值分值之和。也就是每单个请求都有其序列特征分值,而整个请求序列的序列特征分值即是每单个请求的序列特征分值之和。例如,上文中的源IP为6.6.6.6的业务连接URL请求序列,其由5个单独请求构成,则该URL请求序列的序列特征分值即是这5个请求的序列特征分值之和。需要说明的是,序列特征分值最高可设为100分,若超过100分的则统一按照100分计算,当然该最高分只是一个示例性说明,可以根据需要设置为其他数值,本发明对此不作限制。

进一步地,序列特征分值可以根据以下方法进行计算:分别录制单个业务的完整请求序列;对于所统计出的某个IP在某预定时段内的URL请求序列,若其中某个请求不在任何单个业务的完整请求序列中,则将该请求标记为零散请求;若其中某个或某些请求存在于某单个业务的完整请求序列中,但不能构成该单个业务的完整请求序列,则将该请求或该些请求标记为危险请求;若其中某个或某些请求存在于某单个业务的完整请求序列中,且能构成该单个业务的完整请求序列,则将该请求或该些请求标记为正常业务请求;其中,每个零散请求、危险请求和正常业务请求的序列特征分值分别为第一至第三数值。根据一个实施例,第一和第三数值可以分别为1、10和0,当然也可以设置为其他数值,本发明对此不作限制。

具体地,本发明按照最小功能(如登录功能、购买功能等)计算单个业务,对于单个业务请求的完整请求序列可以是人工录制的,即通过人为操作每个功能,并记录每个功能的URL请求序列。对于网上商城而言,登录、找回密码、加入购物车、购买、付款、退款、查看订单、退货和退出等,都是单个业务。例如登录功能的完整请求序列可以包括以下三个请求:

GET/index/index/login.html(访问登录页面)

GET/captcha.html(刷新验证码)

POST/index/index/logined(发送登录账号密码验证码)

对于所提取出的某个IP在某预定时段的URL请求序列(例如上文中的源IP为6.6.6.6的5个请求所组成的URL请求序列),若该序列中的某个请求不在所录制的任何一个单个业务的请求序列中,如GET/robots.txt就不在任何一个业务请求序列中,则该请求为离散请求,其序列特征分值为1。

若某请求或某些请求在某单个业务的完整请求序列中,但这个请求或这些请求尚不能组成该单个业务的完整请求序列,则该请求为危险请求,其序列特征分值为10。例如,若统计发现某IP下有5个如下请求:POST/index/index/logined,这个请求对应于登录业务请求序列中的第一个请求。但对比可发现,该IP的其他3个请求中并没有对应于登录功能的后两个请求,因此该请求不能构成登录业务的完整请求序列,其为危险请求。同样地,其余3个该请求也是危险请求,其序列特征分值均为10,因此该IP的请求序列的序列特征分值为50。与之对应的,若某请求或某些请求在某单个业务的完整请求序列中,且能组成该单个业务的完整请求序列,则该请求为正常业务请求,其序列特征分值为0。

也就是,本发明是将某IP在某预定时段的URL请求序列与单个业务的完整请求序列作匹配,如果该URL请求序列中有几个请求能够完整构成某单个业务的请求序列,则这几个请求就是正常业务请求,其序列特征分值均为0。而未匹配上的那些请求,则继续判断其是否能够匹配其他单个业务的完整请求序列,能完整匹配上的那几个请求同样是正常业务请求。对于最后留下的那些未匹配上任何业务的单个请求,则根据其具体情况判定其为离散请求还是危险请求。这个过程实际是将把URL请求序列转化为业务序列的过程。需要说明的是,实际情况下可能并不是理想的数据流量,如网络卡顿的情况下用户会多次重发账号密码等,这时就会导致所提取的URL请求序列中有多次账号密码的发送请求。在进行序列特征计算时,重发的那几次账号密码发送请求可能被判定为离散请求,但实际这些请求是正常业务请求。因此,根据本发明的一个实施例,在进行序列特征分值计算时,可以并不完全照搬上述计算方法,而加入对特殊请求的综合分析。或者,也可以在采集各流量数据后预先对采集到的数据进行预处理操作,如过滤去重等操作,提高后续数据处理的准确度。

对于访问时间分值,其在工作时段、晚上时段、深夜时段和其他时段内的取值范围分别为第一至第四取值范围,且访问时间分值在各取值范围内均采用预定分布规则进行取值。其中,工作时段、晚上时段、深夜时段可以分别为8:00-17:00、17:00-23:00和1:00-5:00;第一至第四取值范围分别为21-50、1-20、90-100、51-90;当然也可以设置为其他时间点或其他数值,本发明对此不作限制。预定分布规则可以为泊松分布或直线分布等任意数据分布规则。例如,若某IP的URL请求序列时间在10:16,其属于工作时段,则可将该时间代入工作时段所对应的泊松分布中,得到其相应的时间分值。需要说明的,对于上述其他时段,即23:00-1:00和5:00-8:00这两个时段,可以各时段套用各时段的分布规则进行取值。另外,考虑请求序列是统计了连续5min内的请求,因此某请求序列中可能存在多个访问事件时刻,如10:15、10:16和10:17,这时可以选取请求序列的起始时刻代入时间分值计算,也可以选取请求数目最多的时刻,或者选取多个时刻的平均值,本发明对此不作限制。

对于请求IP分值,当请求IP为正常业务IP时,其IP分值的取值范围为第五取值范围;当请求IP为威胁情报中IP时,其IP分值的分值为第四数值;当请求IP是其他类型的IP(即既不是正常业务IP,也不是威胁情报中IP)时,其取值范围为第六取值范围。这里的请求IP可以是源IP,威胁情报中的IP通常是预先统计出来的发生攻击漏洞时的常见请求IP,其以威胁情报列表的方法存储。根据一个实施例,第五取值范围可以为1-20,第六取值范围可以是21-99,第四数值可以是100。另外,对于某IP在第五和第六取值范围内具体如何取值,本领域技术人员可以自行设定计算公式或分布公式进行取值计算,本发明对此不作限制。

对于用户代理(UA),其有以下几种情况:浏览器UA、蜘蛛UA、脚本UA和没有UA,其对应的用户代理分值分别为第五至第八数值。其中,浏览器UA即使用正常浏览器产生的UA,如IE浏览器、Firefox浏览器、Chrome浏览器和iPhone浏览器等。蜘蛛UA例如可以是百度蜘蛛UA、百度PC的UA、Google蜘蛛机器人UA和脚本UA等。例如IE浏览器的UA有Mozilla/4.0(compatible;MSIE 8.0;Windows NT 6.0),Firefox浏览器的UA有Mozilla/5.0(Windows;U;Windows NT 5.2)Gecko/2008070208Firefox/3.0.1,Google蜘蛛机器人的UA有#UA“Googlebot-Image/1.0”,python脚本的UA有Python-urllib2/x.y,PHP脚本的UA有PHP。根据一个实施例,第五至第八数值分别可以是1、2、3和4;当然也可以根据需要设置为其他数值,本发明对此不作限制。

对于请求方法,如HTTP请求方法,其主要包括GET类型、POST类型和其他类型的请求。对于前两种请求方法,其请求方法分值可以为第三数值,如为0,对于其他类型的请求方法,其请求方法分值可以为第一数值,如为1。需要说明的是,某IP在某预定时段内的URL请求序列的请求方法分值同样是该序列中各请求的请求方法分值之和,以下要说明的URL类别分值也同样是将各请求的URL类别分值求和作为总分值。

对于URL类别,其主要包括以下几种情况:存在于威胁情报列表中的危险URL、网站中的真实URL和不存在的URL,其对应的URL类别分别可以为第六数值(如为2)、第三数值(如为0)和第一数值(如为1)。类似于威胁情报中IP,威胁情报列表里的URL是常见攻击特征可以匹配到的URL,以下示出几个检测到的正则实例:

<(no)?script[^>]*>.*?</(no)?script>

eval\((.*?)\)

expression\((.*?)\)

window\.location|window\.|\.location|document\.cookie|document\.|alert\(.*?\)|window\.open\()*

create,',or,--,+,like,drop,table,from,union,where,delete,update,order,by,grant,group_concat(,wm_concat(,exec,execute,column_name,table_name,count(,chr(,mid(,truncate,char,declare,//,#

需要说明的是,以上所有关于各数值的示例描述,都只是一些示例性说明,本领域技术人员均可以根据需要设置为其他数值,本发明对此不作限制。下表详细示出了各请求特征的相关内容:

若一个用户10:16使用了IE浏览器进行了登录操作,并且购买了商品,其统计出的相应业务请求序列如下所示:

33.33.33.33 10:15:33 GET/HTTP/1.1

33.33.33.33 10:15:59 GET/index/index/login.html HTTP/1.1

33.33.33.33 10:16:13 GET/captcha.html HTTP/1.1

33.33.33.33 10:16:17 POST/index/index/logined HTTP/1.1

33.33.33.33 10:16:20 GET/index/home/index.html HTTP/1.1

33.33.33.33 10:16:23 GET/index/home/buy.html HTTP/1.1

33.33.33.33 10:16:27 GET/index/home/sell.html HTTP/1.1

其中,UA是Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/50.0.2661.102Safari/537.36。按照以上请求特征值的计算方法,时间10:16分计算得到时间分值为24;请求IP有正常业务,计算得出其IP分值为5;UA是浏览器UA,分值为1;请求方法只有GET和POST,求和为0;URL没有存在于危险列表中的,其值为0;各序列都在单个业务里,求和为0。

随后,在步骤S260中,分别将正常业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条正常业务特征向量,以及将攻击业务访问中每个IP在每个预定时段内的多个请求特征值构造为一条攻击业务特征向量。这样就得到了多条正常业务特征向量和攻击业务特征向量,其分别构成正样本和负样本。例如上文源IP为33.33.33.33的例子中,按照{请求时间,请求IP,UA,请求方法,URL类别,序列特征}计算特征向量,其最终得到的特征向量为:{24,5,1,0,0,0}。

随后,在步骤S280中,采用预定分类器算法对正常业务特征向量和攻击业务特征向量进行分类训练,得到业务逻辑攻击检测模型。

根据本发明的一个实施例,预定算法可以是现有的任意分类器算法,如支持向量机分类器、贝叶斯分类器、最大熵分类器等,具体选择需要结合业务场景数据而定,各算法所需要的参数等可以由本领域技术人员自行设置,本发明对此不做限制。

另外,还可以采用测试集对训练后的分类器进行检测,即生成一段攻击流程和正常流量的混合流量,且已知该混合流量中各请求分别是业务逻辑攻击请求还是正常业务请求。将该测试集构造多条业务特征向量,并输入到训练后的分类器中,得到其中属于攻击业务的特征向量。之后,将模型推测出的攻击结果与实际结果对比,计算攻击识别的准确度和误报率,其中,准确度=检出攻击且实际是攻击的数量/实际攻击数量,误报率=检出攻击但不是攻击的数量/检出攻击数量。对于其中数量的统计,可以从源IP的角度统计数量,即检出攻击的源IP数量和实际攻击的源IP数量等;也可以从每个请求的角度统计数量,即检出为攻击请求的数量和实际为攻击请求的数量等,本发明对此不作限制。通常,当识别攻击的准确度大于95%时且误报率小于5%时,该分类器即可以投入使用。

根据本发明的另一个实施例,业务逻辑攻击检测模型训练好之后,即可利用该模型来识别实际业务流量中所存在的业务逻辑攻击漏洞。具体地,获取实际业务访问流量,并将该实际业务访问流量构造为多条实际业务特征向量;将多条实际业务特征向量输入到业务逻辑攻击检测模型中,得到多条实际业务特征向量中属于攻击业务的特征向量;以及根据所得到的属于攻击业务的特征向量,确定对应的攻击者IP和攻击请求的原始数据。这里,实际业务特征向量的构造仍可参考正常业务特征向量和攻击业务特征向量的计算方法,即先提取实际业务流量中同一IP在各预定时段内的URL请求序列,然后计算该序列的多个请求特征值,最后将这多个请求特征值构造为一条特征向量。将这多条特征向量输入到模型中后,可得到其中属于攻击业务的特征向量,而根据这些攻击业务的特征向量则可以反查出来攻击者IP和请求的原始数据。

根据本发明的技术方案,可以自动识别业务逻辑攻击,补充了现有技术中无法自动识别业务逻辑攻击的空白,有效解决了人工检测识别时耗时耗力的成本投入,也提高了业务访问的安全性。

A9、如A4所述的方法,其中,对于GET和POST类型的请求,其请求方法分值为第三数值;对于其他类型的请求,其请求方法分值为第一数值。

A10、如A4所述的方法,其中,对于存在于威胁情报列表中的危险URL,其URL类别分值为第六数值;对于网站中的真实URL,其URL类别分值为第三数值;对于不存在的URL,其URL类别分值为第一数值。

A11、如A1-A10中任一项所述的方法,其中,所述工作时段、晚上时段和深夜时段分别为8:00-17:00、17:00-23:00和1:00-5:00;第一至第六取值范围分别为21-50、1-20、90-100、51-90、1-20和21-99;所述第一至第七数值分别是1、10、0、100、1、2、3;所述预定分布规则为泊松分布或直线分布,所述预定时段为连续的5min内。

A12、如A1所述的方法,其中,所述正常业务访问流量和攻击业务访问流量分别通过人工模仿正常用户和攻击用户的访问行为,并记录访问过程的访问流量得到。

A13、如A1所述的方法,其中,所述预定分类器算法为向量机分类器、贝叶斯分类器和最大熵分类器中的任一种。

这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的业务逻辑攻击检测模型的构建方法。

以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。

在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号