一种基于行为模式的攻击URL检测方法、装置及系统转让专利

申请号 : CN202211268307.0

文献号 : CN115333873B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周丽娟洪剑珂刘恋张洁卉章勇

申请人 : 华中科技大学

摘要 :

本发明公开了一种基于行为模式的攻击URL检测方法、装置和系统,涉及Web安全中攻击URL检测方法研究,是一种基于网络攻击前期探测阶段的行为特征进行自动检测并提取的方法,利用黑客攻击前期普遍存在的“踩点”行为,即“探测‑失败”,作为攻击URL的识别特征,适用于对未知攻击行为的早期发现和检测。由于设置的判断条件非常明确和简单,因此误报率和漏报率都较低,特别是不需要基于任何先验攻击知识,对未知攻击可以起到提前预防的作用。

权利要求 :

1.一种基于行为模式的攻击URL检测方法,其特征在于,包括:S1,实时采集并保存各网站的访问日志;

S2,提取所述各网站的非正常响应特征;其中,所述非正常响应特征为所述各网站对于非正常访问的响应数据的特征;

S3,按预设周期从所述访问日志中提取探测访问;其中,所述探测访问为同一源IP对至少两个不同网站的相同URL的访问;

S4,判断所述探测访问的响应内容中是否存在非正常访问的响应码或是否存在所述非正常响应特征,若是,则所述探测访问的URL为攻击URL;

所述预设周期以分钟为单位;

所述访问日志包括日期时间、源IP地址、目的IP地址、目的端口、应用协议、http请求头host部分、完整URL、http响应码;

所述URL不包含http请求头。

2.如权利要求1所述的方法,其特征在于,所述非正常响应特征包括所述各网站对于非正常访问的响应数据中的字节数范围和字节内容。

3.如权利要求2所述的方法,其特征在于,若所述探测访问的响应数据中的字节数范围在所述非正常响应特征的字节数范围内、且字节内容的相似度大于预设阈值,则认为所述探测访问的响应数据中存在所述非正常响应特征。

4.如权利要求1‑3任一项所述的方法,其特征在于,在判断所述探测访问的响应数据中是否存在所述非正常响应特征之前,还包括:若所述探测访问的URL包含在所述探测访问的响应内容中,则将所述响应内容的字节数减去所述URL的字节数,并从所述响应内容中过滤掉URL部分。

5.如权利要求1或2所述的方法,其特征在于,基于fuzz测试方法提取所述各网站的非正常响应特征。

6.如权利要求5所述的方法,其特征在于,基于fuzz测试方法随机生成URL对所述各网站进行访问测试,从所述各网站对于非正常访问的响应数据中提取所述非正常响应特征。

7.一种基于行为模式的攻击URL检测装置,其特征在于,包括:日志采集模块,用于实时采集并保存各网站的访问日志;

非正常响应特征提取模块,用于提取所述各网站的非正常响应特征;其中,所述非正常响应特征为所述各网站对于非正常访问的响应数据的特征;

统计分析模块,用于按预设周期从所述访问日志中提取探测访问;其中,所述探测访问为同一源IP对至少两个不同网站的相同URL的访问;

攻击判断模块,用于判断所述探测访问的响应内容中是否存在所述非正常响应特征,若是,则所述探测访问的URL为攻击URL;若否,则所述探测访问的URL为非攻击URL;

所述预设周期以分钟为单位;

所述访问日志包括日期时间、源IP地址、目的IP地址、目的端口、应用协议、http请求头host部分、完整URL、http响应码;

所述URL不包含http请求头。

8.一种基于行为模式的攻击URL检测系统,其特征在于,包括:计算机可读存储介质和处理器;

所述计算机可读存储介质用于存储可执行指令;

所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行如权利要求

1‑6任一项所述的方法。

说明书 :

一种基于行为模式的攻击URL检测方法、装置及系统

技术领域

[0001] 本发明属于网络安全领域,更具体地,涉及一种基于行为模式的攻击URL检测方法、装置及系统。

背景技术

[0002] 近年来,网络安全问题给社会各界带来的影响越来越严重,特别是随着基于源代码分析技术的供应链攻击导致各种0day漏洞层出不穷,而此类漏洞也是最难防护的。公开号为CN 111259279 A的中国发明专利公开了一种基于动态特征提取的攻击URL检测方法,该方法使用深度学习中的循环神经网络对攻击URL进行特征提取,从而学习攻击URL共用的特征,手工编写匹配规则进行匹配。公开号为CN 108965336 A的中国发明专利公开了一种攻击检测方法及装置,该方法及装置预先配置攻击特征决策树,该决策树由顺序连接的若干层组成,且每层由顺序连接的若干节点组成,通过遍历所述决策树中的各节点,查找网络报文中是否包括各节点存储的攻击。
[0003] 以上两种方法都需要同一个预先条件,即需要掌握大量已知攻击,从中总结发现攻击特征量后,再由此发现其他已知或未知的攻击,因而存在对某些全新的0day攻击URL无法发现的问题,且由于web网站的多样性还可能出现误报的问题。

发明内容

[0004] 针对现有技术的以上缺陷或改进需求,本发明提供了一种基于行为模式的攻击URL检测方法、装置及系统,不需要对任何已知攻击知识的掌握,通过对黑客攻击前期普遍存在的“探测‑失败”的行为特征进行统计分析,并由此判断出攻击URL,误报率和漏报率低。
[0005] 为实现上述目的,按照本发明的第一方面,提供了一种基于行为模式的攻击URL检测方法,包括:
[0006] S1,实时采集并保存各网站的访问日志;
[0007] S2,提取所述各网站的非正常响应特征;其中,所述非正常响应特征为所述各网站对于非正常访问的响应数据的特征;
[0008] S3,按预设周期从所述访问日志中提取探测访问;其中,所述探测访问为同一源IP对至少两个不同网站的相同URL的访问;
[0009] S4,判断所述探测访问的响应内容中是否存在非正常访问的响应码或是否存在所述非正常响应特征,若是,则所述探测访问的URL为攻击URL。
[0010] 按照本发明的第二方面,提供了一种基于行为模式的攻击URL检测装置,包括:
[0011] 日志采集模块,用于实时采集并保存各网站的访问日志;
[0012] 非正常响应特征提取模块,用于提取所述各网站的非正常响应特征;其中,所述非正常响应特征为所述各网站对于非正常访问的响应数据的特征;
[0013] 统计分析模块,用于按预设周期从所述访问日志中提取探测访问;其中,所述探测访问为同一源IP对至少两个不同网站的相同URL的访问;
[0014] 攻击判断模块,用于判断所述探测访问的响应内容中是否存在所述非正常响应特征,若是,则所述探测访问的URL为攻击URL;若否,则所述探测访问的URL为非攻击URL。
[0015] 按照本发明的第三方面,提供了一种基于行为模式的攻击URL检测系统,包括:计算机可读存储介质和处理器;
[0016] 所述计算机可读存储介质用于存储可执行指令;
[0017] 所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行如第一方面所述的方法。
[0018] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0019] 本发明提供的基于行为模式的攻击URL检测方法,涉及Web安全中攻击URL检测方法研究,是一种基于网络攻击前期探测阶段的行为特征进行自动检测并提取的方法,利用黑客攻击前期普遍存在的“踩点”行为,即“探测‑失败”,作为攻击URL的识别特征,适用于对未知攻击行为的早期发现和检测。由于设置的判断条件非常明确和简单,因此误报率和漏报率都较低,特别是不需要基于任何先验攻击知识,对未知攻击可以起到提前预防的作用。
[0020] 需要说明的是,以上阐述的技术方案主要针对有多个网站的网站群或数据中心,若为单网站实现更为简单,非正常响应特征提取模块可去掉,出现失败访问(即具有探测行为的访问)的URL时只需判断不是本网站正常URL即可判定为攻击URL。

附图说明

[0021] 图1为本发明实施例提供的访问日志的一种结构示意图。
[0022] 图2为本发明实施例提供的fuzz测试模块中记录的一种结构示意图。
[0023] 图3为本发明实施例提供的攻击检测方法的流程示意图。
[0024] 图4为本发明实施例提供的攻击检测装置的结构示意图。

具体实施方式

[0025] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0026] 目前针对web应用的未知攻击URL识别一般都采取基于对已知攻击特征的机器学习,期望找到某些共通特征来由此生成识别未知攻击的规则或模式等。而这样的方法必须预先掌握足够的已知攻击,否则就会出现漏报,对一些全新的0day攻击也无法识别。特别是由于攻击的多样性和特定性,比如有些攻击URL支队某些系统有害,对其他系统可能是正常访问,此时这类方法就会出现误报的情况。
[0027] 基于此,本发明提供的方法是一种基于黑客攻击前期普遍存在甚至是必要的“踩点”阶段的行为特征进行判断的攻击URL识别方法。由于“踩点”行为存在不可避免的广泛性和低成功率,因此从网站访问日志中分析出一段连续时间内同一源IP访问不同网站相同URL的行为,即为“探测”;而这个探测行为若出现失败的结果,即“探测‑失败”模式成立,可判定该目的URL为攻击URL。
[0028] 本发明实施例提供一种基于行为模式的攻击URL检测方法,包括:
[0029] S1,实时采集并保存各网站的访问日志。
[0030] 具体地,采集保存网站所有访问。优选地,如图1所示,日志内容至少包括以下元素:日期时间、源IP地址(以下简称源IP)、目的IP地址(以下简称目的IP)、目的端口、应用协议(http或https)、http请求头host部分(以下简称host)、完整URL(包括参数,以下简称URL)、http响应码(以下简称响应码)。
[0031] 日志采集并保存是持续不断执行的,采集保存统计分析所需的数据内容,包括网站访问请求及回应的几个必要部分以供后续的统计分析使用,。因为这些功能和网站系统一般的日志功能基本一致,所以基本上只要开启网站本身的日志功能,并实现能实时采集这些日志内容到一台服务器保存供后续统一分析即可。
[0032] S2,提取所述各网站的非正常响应特征(下文称为失败特征);其中,所述非正常响应特征为所述各网站对于非正常访问的响应数据的特征。
[0033] 具体地,分析网站在回应非正常访问时的特征。
[0034] 网站在响应码正常设置和实现的情况下应如下情况:
[0035] 信息响应(100–199)
[0036] 成功响应(200–299)
[0037] 重定向(300–399)
[0038] 客户端错误(400–499)
[0039] 服务器错误 (500–599)。
[0040] 其中响应码为2**时应为正常访问,其余都可视为失败访问。
[0041] 但由于现实中很多网站没有进行这样标准的设置,对于很多非法访问也都是回复响应码200,只是在响应内容中进行非法访问提示。响应内容的基本内容一般都是比较固定的。
[0042] 为此,优选地,基于fuzz测试方法提取所述各网站的非正常响应特征。
[0043] 优选地,基于fuzz测试方法随机生成URL对所述各网站进行访问测试,从所述各网站对于非正常访问的响应数据中提取所述非正常响应特征。
[0044] 通过主动模糊测试,分析网站在回应非正常访问时的特征。也即,通过fuzz探测算法测试出各网站对于非正常访问的响应数据包特征。
[0045] 通过Fuzz测试方法将上述响应码正常却在响应内容中提示非法访问的情况预先识别出来,并对响应内容做字节数范围和固定响应内容特征的提取,从而向攻击判定模块进一步提供失败访问行为的判定依据。
[0046] 进一步地,Fuzz测试不必频繁执行,只需周期性(例如一天一次)对日志中出现的网站(由应用协议、目的IP、host以及访问端口唯一定义)或出现新网站时进行一定量的模糊测试即可。测试方法如下:
[0047] 1)使用fuzz测试的方法随机形成大量包含各种字符、字母及数字的URL对日志中出现各网站进行访问测试,采集保存http响应数据包全部内容。其中字符的集合可以包含除字母和数字之外任何可网络传输和计算机表示的符号。
[0048] 2)Fuzz测试的URL数量总量可根据测试使用符号组合以及测试URL的长度来决定,保证测试充分即可。测试URL至少包含这几类:全部字母、包含字母数字、包含字母数字字符。
[0049] 3)对各网站分别进行统计分析,对http响应数据去掉响应码为2**或301等正常访问响应码的数据后再进行统计分析。
[0050] 统计方法如下:
[0051] 3.1)首先检查访问URL是否包含在响应内容中,如果出现了,则将响应内容字节数减去URL的字节数,响应内容中过滤掉URL。请注意此处的响应内容指http响应体部分,不包括http响应头。
[0052] 3.2)然后对同一个网站,分别对不同测试URL类的响应内容字节数进行平均数统计,响应内容做相同字符串提取操作,将平均数±10%的数值范围和相同字符串作为该网站非正常访问特征,并记录下来形成图2的结构。
[0053] 可以理解的是,可以采用现有的任一种fuzz测试方法将上述响应码正常却在响应内容中提示非法访问的情况预先识别出来。即Fuzz测试的目的就是掌握各网站对非正常访问的响应特征,如果有条件也可直接从各网站管理员处直接获取相应信息即可。
[0054] S3,按预设周期从所述访问日志中提取探测访问(即具有探测行为的访问);其中,所述探测访问为同一源IP对至少两个不同网站的相同URL的访问。
[0055] 具体地,如图3所示对一段连续时间内的日志进行探测行为特征的统计分析,将具有“探测”特征的访问找出来。
[0056] 为完成“探测”行为特征识别,分析步骤如下:
[0057] 1)去掉URL为各种图片、视频、文档、css及js等的文件访问的日志记录。
[0058] 2)提取日志每条记录中源IP、目的IP、目的端口、host、URL、应用协议以及响应码7个元素进行统计。
[0059] 3)统计出源IP和URL相同但(应用协议,目的IP,目的端口,host)四元组不同且四元组总数超过2个的访问。(应用协议,目的IP,目的端口,host)四元组可唯一定义一个网站,因此四元组不同则表示为不同网站。以上统计的含义为:在一段短的连续时间内,同一个访问者(源IP)访问了2个及以上的不同网站的相同URL,因为具有“探测”行为特征。
[0060] 可以理解的是,由于本方法是基于行为分析,需要累积一定量的访问才能准确分析出行为特征,因此步骤S2(统计分析)是周期执行,而不是实时的,攻击判定结果会有一定的时间滞后。
[0061] 步骤S2(统计分析)和步骤S3(攻击判定)应设置周期执行。周期长度的设置不能太短,例如秒级,这将导致无法采集到足够量的攻击访问;也不能设置周期太长,例如天、月等,这会导致误报出现。
[0062] 优选地,所述预设周期以分钟为单位。
[0063] 具体地,为了保证攻击检测具备一定的时效性,结合“踩点”一般都是程序自动完成并要求有一定效率的特点(从而短时间内也可捕获到),所以建议一般可将统计分析的周期设置为以分钟为单位。
[0064] S4,判断所述探测访问的响应内容中是否存在非正常访问的响应码或是否存在所述非正常响应特征,若是,则所述探测访问的URL为攻击URL。
[0065] 具体地,判断步骤S3中统计出的结果(即探测访问)是否存在失败特征,若存在则判定该访问为攻击,访问的URL为攻击URL。也即,判断步骤S3中找出的具有“探测”特征的访问是否同时具备“失败”的特点。
[0066] 当所述探测访问的响应内容中存在非正常访问的响应码或所述非正常响应特征,则判定所述探测访问的URL为攻击URL;当所述探测访问的响应内容中不存在非正常访问的响应码,并且也不存在所述非正常响应特征,则判定所述探测访问的URL为非攻击URL。
[0067] 优选地,所述非正常响应特征包括所述各网站对于非正常访问的响应数据中的字节数范围和字节内容。
[0068] 优选地,若所述探测访问的响应数据中的字节数范围在所述非正常响应特征的字节数范围内、且所述探测访问的响应内容中的字节内容与所述非正常响应特征的字节内容的相似度大于预设阈值,则认为所述探测访问的响应数据中存在所述非正常响应特征。
[0069] 优选地,在判断所述探测访问的响应数据中是否存在所述非正常响应特征之前,还包括:若所述探测访问的URL包含在所述探测访问的响应内容中,则将所述响应内容的字节数减去所述URL的字节数,并从所述响应内容中过滤掉所述URL部分。
[0070] 具体地,步骤S4进行“失败”特征访问的判断方法如下:
[0071] 1)若步骤S3输出结果中存在非2**、301等表示访问正常的响应码时,判定该URL为攻击URL。
[0072] 2)若步骤S3输出结果中存在与步骤S2中记录的结果(即非正常响应特征)匹配的情况,判定该URL为攻击URL。
[0073] 结果匹配的判定方法如下:
[0074] 2.1)首先检查访问URL是否包含在响应内容中,如果出现,则将响应数据字节数减去URL的字节数,响应内容过滤掉URL部分,然后找到fuzz测试模块中对应该网站的记录做字节数范围判定和响应内容的相似度匹配。响应内容的相似度可控制在98%以内。
[0075] 2.2)响应内容的相似度计算可使用各种常见的字符串相似度计算算法,推荐python语言实现的difflib.SequenceMatcher算法。
[0076] 下面对本发明提供的一种基于行为模式的攻击URL检测装置进行描述,下文描述的一种基于行为模式的攻击URL检测装置与上文描述的一种基于行为模式的攻击URL检测方法可相互对应参照。
[0077] 本发明实施例提供一种基于行为模式的攻击URL检测装置,包括:
[0078] 日志采集模块,用于实时采集并保存各网站的访问日志;
[0079] 非正常响应特征提取模块,用于提取所述各网站的非正常响应特征;其中,所述非正常响应特征为所述各网站对于非正常访问的响应数据的特征;
[0080] 统计分析模块,用于按预设周期从所述访问日志中提取探测访问;其中,所述探测访问为同一源IP对至少两个不同网站的相同URL的访问;
[0081] 攻击判断模块,用于判断所述探测访问的响应内容中是否存在所述非正常响应特征,若是,则所述探测访问的URL为攻击URL;若否,则所述探测访问的URL为非攻击URL。
[0082] 具体地,日志采集模块功能是采集保存统计分析所需的数据内容,保证采集保存网站访问请求及回应的几个必要部分以供统计分析模块工作。统计分析模块负责完成“探测”行为特征识别,统计分析模块将符合条件的结果输出给攻击判定模块,由它负责完成“失败”特征识别。
[0083] 优选地,当基于fuzz测试方法提取所述各网站的非正常响应特征时,所述非正常响应特征提取模块即为Fuzz测试模块,如图4所示。Fuzz测试模块的功能是通过主动模糊测试,分析网站在回应非正常访问时的特征。
[0084] 本发明实施例提供一种基于行为模式的攻击URL检测系统,包括:计算机可读存储介质和处理器;
[0085] 所述计算机可读存储介质用于存储可执行指令;
[0086] 所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行如上述任一实施例所述的方法。
[0087] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。