网页后门检测方法、装置及计算机可读存储介质与流程

文档序号:12037871阅读:346来源:国知局
网页后门检测方法、装置及计算机可读存储介质与流程

本发明涉及计算机通信安全领域,尤其涉及一种网页后门检测方法、装置及计算机可读存储介质。



背景技术:

webshell是web与shell的结合,是一种在web服务器中以网页脚本文件形式存在的木马文件。webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。攻击者通过直接访问webshell文件,借助web服务器解析和执行各种命令与操作,比如执行任意系统命令、对系统上的文件进行增删改查、植入各类恶意软件以及进一步攻击内网等操作。webshell检测技术发展至今,已经有许多的成熟技术和产品。简单的可以分为主机检测和网络检测两种。

主机检测,需要在网站服务器上安装检测查杀工具或软件,主要使用的技术有静态特征库匹配、文件创建和修改时间监控、最长单词检测、重合指数检测、信息熵检测、文件压缩比检测、hook危险函数等,相对比较成熟。

常见的两种网络层面上的webshell检测方式:

1.最常见的网络检测方式是网络流量特征匹配,绝大多数web应用防火墙类产品都在使用这种方法。这主要包含两个方面:webshell本身代码的传输流量特征匹和webshell在执行时通信流量特征匹配。第一种方法是在向目标网站植入webshell时进行检测,第二种方法是webshell被植入后,通过通信的特征来查找webshell。网络流量特征匹配方法是实现简单、检查迅速、强特征匹配可以准确定位webshell。当然这种技术的缺点也比较明显:弱规则误报率较高。完全依赖特征库,仅能检测特征库中存在的webshell,无法检测未知的webshell。特征库的维护和升级成本较高;对加密和混淆代码的webshell(比如使用phpcodelock加密的phpwebshell)检测效果较差。

2.在webshell的植入过程中,对http会话流量进行语义识别与分析,检测是否含有可以编译成可执行脚本文件的流量。这种技术不依赖或很少依赖特征集,可以有效的检测已知和未知的webshell,当然也有一定缺点:进行复杂的语义分析需要复杂的计算,消耗的资源大,成本高,通常在云端实现;对webshell植入过程检测效果较好,对于已经上传webshell后的检测效果较差。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明主要目的在于提供一种基于中间流量及访问日志的webshell的检测方法、装置及计算机可读存储介质,旨在解决现有技术中webshell检测准确率低的技术问题。

为实现上述目的,本发明提供一种网页后门检测方法,所述方法包括:

将待检测流量与特征集进行特征匹配,所述特征集为包含能够表明网页后门webshell特征的参数集合;

当所述待检测流量与所述特征集未匹配成功时,将所述待检测流量与特性集进行特性匹配,所述特性集为包含能够表明webshell特性的文件集合;

当所述待检测流量与所述特性集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

优选地,所述将所述待检测流量与特性集进行特性匹配,具体包括:

将所述待检测流量中的各项特性进行权值累加,获得第一累加结果,在所述第一累加结果小于第二预设阈值时,认定所述待检测流量与所述特性集未匹配成功;

在所述第一累加结果大于或等于所述第一预设阈值时,认定所述待检测流量与所述特性集匹配成功。

优选地,所述当所述待检测流量与所述特征集未匹配成功时,将所述待检测流量与特性集进行特性匹配之后,所述方法还包括:

当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中,以进行日志分析,所述日志集为所述待检测流量访问数据的集合。

优选地,所述当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中,以进行日志分析,具体包括:

当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中;

在所述日志集中的待检测流量积累到预设数量或者达到预设时间时,对所述待检测流量进行日志分析,获得分析结果,对所述分析结果中各个参数进行加权;

将加权后的所述分析结果作为第二累加结果,在所述第二累加结果中的任意参数大于或等于该参数对应的第二预设阈值时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

优选地,所述对所述待检测流量进行日志分析,获得分析结果,具体包括:

将所述日志集中的待检测流量与预设流量库中的流量进行对比,获得新增内容;

统计所述日志集中的待检测流量的页面访问时间和页面访问频率;

统计所述日志集中的待检测流量的页面参数类型和页面参数变化数量;

将所述新增内容、所述页面访问时间、所述页面访问频率、所述页面参数类型和所述页面参数变化数量作为所述分析结果。

优选地,所述将待检测流量与特征集进行特征匹配之后,所述方法还包括:

当所述待检测流量与所述特征集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

优选地,所述将待检测流量与特征集进行特征匹配之前,所述方法还包括:

对初始流量进行预处理,将经过预处理后的所述初始流量作为待检测流量;其中,所述预处理包括对所述初始流量中的http会话内容进行重组和对所述初始流量中的http协议进行解析。

优选地,所述对初始流量进行预处理,将经过预处理后的所述初始流量作为待检测流量之后,所述方法还包括:

将所述待检测流量与所述预设流量库中的流量进行依次对比;

当所述待检测流量与所述预设流量库中的流量均不相同时,执行所述将待检测流量与特征集进行特征匹配的步骤。

此外,为实现上述目的,本发明还提出一种网页后门检测装置,其特征在于,所述网页后门检测装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网页后门检测程序,所述网页后门检测程序配置为实现如上文所述的网页后门检测方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网页后门检测程序,所述网页后门检测程序被处理器执行时如上文所述的网页后门检测方法的步骤。

本发明通过将待检测流量与特征集进行特征匹配,结合与特性集进行特性匹配,在对所述待检测流量进行特征匹配之后又进一步进行特性匹配,避免了遗漏一些通过特征匹配无法明确判断的可疑流量所造成不必要的损失,能够更加准确和全面地检测webshell,解决了现有技术中webshell检测效果较差,准确度低的问题,显著提升了webshell检测的准确性和用户体验。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的网页后门检测服务器结构示意图;

图2为本发明网页后门检测方法第一实施例的流程示意图;

图3为本发明网页后门检测方法第二实施例的流程示意图;

图4为本发明网页后门检测方法第三实施例的流程示意图;

图5为本发明网页后门检测方法第四实施例的流程示意图;

图6为本发明网页后门检测方法第五实施例的流程示意图;

图7为本发明网页后门检测方法第六实施例的流程示意图;

图8为本发明网页后门检测方法第七实施例的流程示意图;

图9为本发明网页后门检测方法第八实施例的流程示意图;

图10为本发明网页后门检测方法第九实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的网页后门检测服务器结构示意图。

如图1所示,该网页后门检测服务器可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的网页后门检测服务器结构并不构成对网页后门检测服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及网页后门检测程序。

在图1所示的网页后门检测服务器中,网络接口1004主要用于连接网页后门检测口,与网页后门检测口进行数据通信;用户接口1003主要用于连接用户终端,与终端进行数据通信;本发明网页后门检测服务器中的处理器1001、存储器1005可以设置在网页后门检测装置中,所述网页后门检测装置通过处理器1001调用存储器1005中存储的网页后门检测程序,并执行以下操作:

将待检测流量与特征集进行特征匹配,所述特征集为包含能够表明网页后门webshell特征的参数集合;

当所述待检测流量与所述特征集未匹配成功时,将所述待检测流量与特性集进行特性匹配,所述特性集为包含能够表明webshell特性的文件集合;

当所述待检测流量与所述特性集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

将所述待检测流量中的各项特性进行权值累加,获得第一累加结果,在所述第一累加结果小于第二预设阈值时,认定所述待检测流量与所述特性集未匹配成功;

在所述第一累加结果大于或等于所述第一预设阈值时,认定所述待检测流量与所述特性集匹配成功。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中,以进行日志分析,所述日志集为所述待检测流量访问数据的集合。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中;

在所述日志集中的待检测流量积累到预设数量或者达到预设时间时,对所述待检测流量进行日志分析,获得分析结果,对所述分析结果中各个参数进行加权;

将加权后的所述分析结果作为第二累加结果,在所述第二累加结果中的任意参数大于或等于该参数对应的第二预设阈值时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

将所述日志集中的待检测流量与预设流量库中的流量进行对比,获得新增内容;

统计所述日志集中的待检测流量的页面访问时间和页面访问频率;

统计所述日志集中的待检测流量的页面参数类型和页面参数变化数量;

将所述新增内容、所述页面访问时间、所述页面访问频率、所述页面参数类型和所述页面参数变化数量作为所述分析结果。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

当所述待检测流量与所述特征集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

对初始流量进行预处理,将经过预处理后的所述初始流量作为待检测流量;其中,所述预处理包括对所述初始流量中的http会话内容进行重组和对所述初始流量中的http协议进行解析。

进一步地,处理器1001可以调用存储器1005中存储的网页后门检测程序,还执行以下操作:

将所述待检测流量与所述预设流量库中的流量进行依次对比;

当所述待检测流量与所述预设流量库中的流量均不相同时,执行所述将待检测流量与特征集进行特征匹配的步骤。

本实施例通过将待检测流量与特征集进行特征匹配,结合与特性集进行特性匹配,在对所述待检测流量进行特征匹配之后又进一步进行特性匹配,避免了遗漏一些通过特征匹配无法明确判断的可疑流量所造成不必要的损失,能够更加准确和全面地检测webshell,解决了现有技术中webshell检测效果较差,准确度低的问题,显著提升了webshell检测的准确性和用户体验。

图2为本发明网页后门检测方法第一实施例的流程示意图,参照图2,所述方法包括以下步骤:

s10、将待检测流量与特征集进行特征匹配,所述特征集为包含能够表明网页后门webshell特征的参数集合;

应理解的是,所述特征集为包含能够表明webshell特征的参数的集合,包含与webshell有关的特征码、特征值、危险函数、特有的http请求/响应及其他能够表明webshell特征的参数,本实施例对此不加以限制。

在具体实现中,可以将所述待检测流量与所述特征集中的精确特征和基础特征进行匹配,若所述待检测流量与所述精确特征未匹配成功,则将所述待检测流量与特性集进行特性匹配,其中,所述精确特征为反映流量属于webshell流量的特征,所述基础特征为与webshell脚本在执行时必备的基础语法进行匹配的特征。

需要说明的是,本实施例的webshell特征匹配与已经普遍使用的特征匹配稍有不同,webshell特征分为精确特征和基础特征两种。精确特征是指可以明显匹配webshell的特征,即完全与特征集合中的特征匹配的特征;基础特征是指可以执行脚本必备的基础语法的特征,比如php类型的文件匹配<?php,jsp类型的文件匹配<%;

可以理解的是,webshell特征匹配包括webshell代码特征匹配和webshell通信流量特征匹配;将所述待检测流量与所述特征集中的webshell代码特征和webshell通信流量特征进行匹配,当待检测流量与所述特征集中的webshell代码特征和webshell通信流量特征相同时,即与精确特征匹配时,则认定为所述待检测流量已被webshell植入或通信;当所述待检测流量与所述webshell特征未匹配成功时,如果此时所述待检测流量匹配到了特征集中的基础特征,则可以将匹配到所述基础特征的所述待检测流量加权值以重点关注和未匹配到的所述待检测流量一起在所述特性集中进行webshell特性匹配;当认定所述待检测流量为webshell流量时,可以及时直接阻断该流量,并进一步发出所述报警信息,当然并不仅仅局限于发出报警信息,也可以是发出具有告警功能的声音,或者不同颜色代表不同严重程度的指示灯或者代码,或者其他具有告警功能的数据或消息,以达到提醒用户的目的,本实施例对此报警方式不加以限制。

s20、当所述待检测流量与所述特征集未匹配成功时,将所述待检测流量与特性集进行特性匹配,所述特性集为包含能够表明webshell特性的文件集合;

应当理解的是,所述特性集是为了进一步检查可疑流量的引入的webshell特性文件的集合,可以包括返回2xx和3xx等http状态码,以表明请求成功的流量,尤其是访问web服务器可以执行的脚本文件;在流量中传递单不引用网站内其他资源的文件,例如不引用image、css、js等文件的脚本文件;在流量中传递但不被网站内其他文件引用的文件,当然是所述特性集还可以包含其他可以说明webshell特性的文件或者其他类型的数据,本实施例对此不加以限制。

s30、当所述待检测流量与所述特性集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

可以理解的是,当所述待检测流量与所述特征集的精确特征规则和基础特征规则都未匹配成功时,可以作为可疑流量进一步与所述特性集进行再一次匹配,通过将所述待检测流量与所述特性集匹配成功后,判断所述待检测流量为webshell流量,此时可以及时直接阻断该流量,并进一步发出所述报警信息。

在具体实现中,当所述待检测流量与所述webshell代码特征和webshell通信流量特征不相同时,或者当所述待检测流量与可执行脚本必备的基础语法相匹配,或者当所述待检测流量与可执行脚本必备的基础语法未匹配和/或所述待检测流量与所述webshell代码特征和webshell通信流量特征不相同时,判断所述待检测流量与所述webshell特征未匹配成功。

本实施例通过将待检测流量与特征集进行特征匹配,结合与特性集进行特性匹配,在对所述待检测流量进行特征匹配之后又进一步进行特性匹配;避免了遗漏一些通过特征匹配无法明确判断的可疑流量所造成不必要的损失,能够更加准确和全面地检测webshell,解决了现有技术中webshell检测效果较差,准确度低的问题,显著提升了webshell检测的准确性和用户体验。

图3为本发明网页后门检测方法第二实施例的流程示意图,基于图2所示的方法,参照图3,基于所述步骤s20,所述方法具体包括以下步骤:

s21、将所述待检测流量中的各项特性进行权值累加,获得第一累加结果,在所述第一累加结果小于第二预设阈值时,认定所述待检测流量与所述特性集未匹配成功;

s22、在所述第一累加结果大于或等于所述第一预设阈值时,认定所述待检测流量与所述特性集匹配成功;

需要说明的是,所述特性集是为了进一步检查可疑流量的引入的webshell特性文件的集合,包括返回2xx和3xx等http状态码,以表明请求成功的流量,尤其是访问web服务器可以执行的脚本文件;在流量中传递单不引用网站内其他资源的文件,例如不引用image、css、js等文件的脚本文件;在流量中传递但不被网站内其他文件引用的文件,当然是所述特性集还可以包含其他可以说明webshell特性的文件或者其他类型的数据,本实施例对此不加以限制;但是单纯的以所述特性集对所述待检测流量进行匹配,不能够准确判断出当前所述待检测流量是否是webshell流量,因此可以采用权值累加的方式,当结果超出所述第一预设阈值时,可以认定所述当前待检测流量是webshell流量,对所述当前待检测流量进行阻断。

在具体实现中,将与所述webshell特性进行匹配的所述待检测流量是指与所述精确特征不匹配的所述待检测流量和与所述普通特征匹配或与精确特征、普通特征都不匹配的待检测流量,可以将匹配到所述基础特征的所述待检测流量加权值以重点关注和未匹配到的所述待检测流量一起在所述特性集中进行webshell特性匹配;

本实施例通过将待检测流量中的各项特性进行权值累加,获得第一累加结果,与第一预设阈值比较来判断所述待检测流量是否与所述特性集匹配成功,利用权值累加避免了通过单一的特性匹配无法准确的确定当前待检测流量是webshell流量的问题,更加精确的对所述待检测流量进一步过滤筛选,有效提高了特性匹配的准确率,提高了用户体验。

图4为本发明网页后门检测方法第三实施例的流程示意图,基于图3所示的方法,参照图4,所述步骤s20之后,所述方法还包括以下步骤:

s40、当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中,以进行日志分析,所述日志集为所述待检测流量访问数据的集合。

可理解的是,所述日志集是web日志的集合,所述web日志是网站的web服务处理程序,根据一定的规范生成的文本;它主要记录了网站访问记录数据内容,是网站分析和网站数据仓库的数据基础来源。

在具体实现中,可以将与所述webshell特征未匹配的所述待检测流量进行webshell特性匹配,由于单一的特性匹配不能准确判断出流量是否是webshell流量,因此采用权值累加的方式,当权值累加结果超出第一预设阈值时,就认为所述待检测流量是webshell流量,及时阻断并发出报警信息;但是对于加权后仍然对webshell特性表现不明显的所述待检测流量,先记录到日志集,方便下一步日志分析使用。

本实施例通过将经过特征分析和特性分析都无法明确确定为webshell流量的待检测流量进行集合,对这些可疑的流量做进一步分析,可以避免因为无法确定所述待检测流量是否为webshell流量而进行模糊处理,导致遗漏真正的webshell流量造成不必要的损失的问题,能够为下一步日志分析做准备,更全面的对所述待检测流量进行分析,使webshell检测过程更加完整,提高了用户体验。

图5为本发明网页后门检测方法第四实施例的流程示意图,基于图4所示的方法,参照图5,基于所述步骤s40,所述方法具体包括以下步骤:

s41、当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中;

s42、当所述日志集中的待检测流量积累到预设数量或者达到预设时间时,对所述待检测流量进行日志分析,获得分析结果,对所述分析结果中各个参数进行加权;

s43、将加权后的所述分析结果作为第二累加结果,当所述第二累加结果中的任意参数大于或等于该参数对应的第二预设阈值时,判断所述待检测流量为所述webshell流量,对所述待检测流量进行阻断。

需要说明的是,当日志量即在所述日志集中的所述待检测流量在积累到一定程度时,即当所述日志集中的所述待检测流量积累到预设数量或者达到预设时间时,进行日志分析,当然也可以是达到其他预设条件时,触发日志分析这个动作,所述预设数量和预设时间是根据实际情况由研究人员预先设定的值,当然也可以是通过大量数据研究获得的固定的值,当然也可以是不用等到日质量到达一定程度时触发日志分析,可以在日志集收到所述待检测流量时立刻进行日志分析,本实施例对此不加以限制。

在本实施例中,通过触发日志分析,对所述待检测流量进行分析获得分析结果,对所述分析结果中的各个参数进行加权,将加权后的分析结果作为第二累加结果,当所述第二累加结果与所述第二预设阈值进行比较,以判断所述待检测流量是否为所述webshell流量,如果是的话,对所述待检测流量进行阻断。通过日志分析可以更加有效的将经过特征匹配和特性匹配后无法明确确定的所述待检测流量进一步进行筛选,能够更加有效的筛选可疑流量,避免遗漏一些在特征匹配和特性匹配中所述待检测流量,进一步提高webshell检测过程的完整性,准确性,提高了用户体验。

图6为本发明网页后门检测方法第五实施例的流程示意图,基于图5所示的方法,参照图6,基于所述步骤s42,所述方法具体包括以下步骤:

s421、将所述日志集中的待检测流量与预设流量库中的流量进行对比,获得新增内容;

在具体实现中,使用日志集中的嗲检测流量的访问日志构建访问流量库,建立访问流量库后,可以将所述访问流量库与预设流量库进行对比,找出新增的可疑url路径和http的相关字段,当然也可以找到其他的能够区别与预设流量库中流量的新增的内容;

s422、统计所述日志集中的待检测流量的页面访问时间和页面访问频率;

s423、统计所述日志集中的待检测流量的页面参数类型和页面参数变化数量;

s424、将所述新增内容、所述页面访问时间、所述页面访问频率、所述页面参数类型和所述页面参数变化数量作为所述分析结果。

在具体实现中,web日志分析主要包含对所述待检测流量与正常流量进行的对比分析,webshell流量区别于正常流量的地方在于:使用访问日志再次构建访问流量库,将所述访问流量库与正常流量库进行对比,可以找出新增的可疑url理解和http的相关字段,其中新增的可疑文件大多数使用post方式进行交互,访问新增页面的ip地址,在日志的上下文中不会访问网站的其他资源,其中所述post是http协议本身定义的一种方法,post一般用于更新资源信息;web日志分析主要包含对数据统计的分析,webshell流量的某些表征:在某个页面只有一个ip访问或者只有极少数ip访问,在某个页面的访问时间或ip存在特定规律,在某个页面的访问频率明显低于其他页面;web日志分析主要包含对异常行为的分析,webshell异常行为一般包含:在原来只用get方式请求的页面,突然增加了大量post请求,在某个页面的传入参数的类型和个数突然发生了变化,其中,所述get也是http协议本身定义的一种方法,get一般用于获取或者查询资源信息,get请求的数据会附在url之后;web日志分析的分析方式不局限于以上几个方面,当然也可以是基于相同目的的其他方面的分析,本实施例对此不加以限制。

需要说明的是,日志分析是个动态持续的过程,与特性集匹配类似,对于webshell相关的每个因素都可以采用权值累加的方式,并不局限于将所述可疑url路径和http的相关字段、所述对web页面访问时间和访问频率的数据、所述页面请求类型和数量发生变化的行为采取权值累加,也可以是其他与webshell相关的参数,当某一个参数或者几个参数一起的累加结果超过相应的预设阈值时,就认为所述待检测流量是webshell流量,对其进行阻断并发出报警信息,其中所述预设阈值为根据实际情况由研究人员预先设定的值,当然也可以是通过大量数据研究获得的固定的值,本实施例对此不加以限制。

在本实施例中,通过进一步通过将所述待检测流量与正常流量进行对比,分析与webshell流量类似的字段、数据和行为即新增内容、所述页面访问时间、所述页面访问频率、所述页面参数类型和所述页面参数变化数量;通过权值累加的过程能够更加明确的找到与webshell流量的相同点,更加容易识别所述待检测流量是否为webshell流量,进一步提高了webshell检测的准确性,提高了用户体验。

图7为本发明网页后门检测方法第六实施例的流程示意图,基于图2所示的方法,参照图7,基于所述步骤s10之后,所述方法还包括以下步骤:

s11、当所述待检测流量与所述特征集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

可以理解的是,所述特征匹配包括webshell代码特征匹配和webshell通信流量特征匹配;将所述待检测流量与所述特征集中的webshell代码特征和webshell通信流量特征进行匹配,当所述待检测流量与所述webshell代码特征和webshell通信流量特征相同时,则可以认为所述待检测流量为webshell植入或通信的流量,此时可以及时直接阻断该流量,并进一步发出所述报警信息;当然不仅仅局限于发出报警信息,也可以是发出具有告警功能的声音,或者不同颜色代表不同严重程度的指示灯或者代码,或者其他具有告警功能的数据或消息,以达到提醒用户的目的,本实施例对此报警方式不加以限制。

本实施例通过将待检测流量与特征集进行特征匹配结合与特性集进行特性匹配来共同判断所述待检测流量是否为webshell流量,当所述待检测流量与所述特征集匹配时,判断所述待检测流量为webshell流量,快速方便的检测出webshell流量,提高了webshell检测的效率,提升了用户体验。

图8为本发明网页后门检测方法第七实施例的流程示意图,基于图2所示的方法,参照图8,基于所述步骤s10之前,所述方法还包括以下步骤:

s01、对初始流量进行预处理,将经过预处理后的所述初始流量作为待检测流量;其中,所述预处理包括对所述初始流量中的http会话内容进行重组和对所述初始流量中的http协议进行解析。

需要说明的是,对初始流量进行预处理是通过中间设备对初始流量进行预处理,主要包括http会话内容重组和http协议解析,其中,所述http会话是指在多次http连接间维护用户与同一用户发出的不同请求之间关联的情况,由于网络问题,数据包可能会经过不同的路由传输到目的地,并且到达目的地的数据包可能顺序会发生改变,因此,对http会话内容进行重组,按照数据包的序列号对接收到的数据包进行排序,可以将完整的数据包传输到目的主机的数据包以实现报文的还原;对http协议进行解析,可以在传输过程中对数据的传输进行控制,对在传输过程中丢失的数据包协议将控制系统将丢失的数据包重新传送,所述对初始流量进行预处理的目的在于,为初始流量分析和webshell检测做基础。

应该理解的是,所述对初始流量进行预处理并不局限于只有http会话内容重组和http协议解析这两项预处理步骤,其他基于同样为后期的初始流量分析和webshell检测做基础的目的的预处理步骤都可以包括在内,本实施例对此不加以限制;其中所述中间设备是指一般情况下的防火墙或者路由器设备,可以用来对http流量中属于webshell的部分进行防护,当然也可以是起到同样作用的其他设备,本实施例对此不加以限制。

在本实施例中,通过对所述初始流量进行预处理,通过对所述初始流量中会话内容进行重组和对所述初始流量中的http协议进行解析,能够初步对初始流量进行筛选,能够避免大量无关的流量对webshell检测过程带来干扰,影响webshell检测的效率,能够减少webshell检测的繁冗的工作量,有效提高了webshell检测的速度,提高了用户体验。

图9为本发明网页后门检测方法第八实施例的流程示意图,基于图8所示的方法,参照图9,基于所述步骤s01之后,所述方法还包括以下步骤:

s02、将所述待检测流量与预设流量库中的流量进行依次对比;

可理解的是,预设流量库类似白名单,包含http协议的各个关键部分,所述关键部分用于对所述待检测流量进行传递,例如,合法的http请求方法、url路径、查询字符串、useragent白名单、cookie值以及post数据等。其中,所述url(uniformresourcelocator)统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的url,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

需要说明的是,预设流量库一般可以通过自动化爬虫爬行网站或者管理手动添加相关字段来实现和维护,当外界访问的初始流量经过预处理后,获得待检测流量,首先与预设流量库进行对比,如果所述待检测流量中有一部分流量属于正常流量即与非webshell流量相同,则可以直接放行,不进行任何处理,如果其余的流量在所述预设流量库中未找到与所述正常流量相对应的流量对象,那么此时的所述其余流量就可能存在问题,将其进行下一步判断。

s03、当所述待检测流量与所述预设流量库中的流量均不相同时,执行所述将待检测流量与特征集进行特征匹配的步骤。

需要说明的是,如果判断结果为是,则表明所述待检测流量属于正常流量,进行放行,不进行任何处理,结束流程;当所述待检测流量与所述正常流量库中的正常流量不同时,即在所述正常流量库中未找到与待检测流量对应的相同的正常流量时,可以判定当前待检测流量有可能存在问题,将所述待检测流量与webshell特征库中的webshell特征匹配,看所述待检测流量与webshell特征库中的webshell特征是否完全相同,如果完全相同则说明所述待检测流量为webshell流量。

在本实施例中,通过将所述待检测流量与预设流量库中的流量进行对比,可以初步筛选所述待检测是否为webshell流量,减小所述待检测流量中正常流量对webshell检测的干扰,能够减小webshell检测的工作量,提高webshell检测的速度,提高了用户体验。

图10为本发明网页后门检测方法第九实施例的流程示意图,基于图2-9任一项所示的方法,参照图10,,所述方法包括以下步骤:

s001、对初始流量进行预处理,将经过预处理后的所述初始流量作为待检测流量;

需要说明的是,对初始流量进行预处理是通过中间设备对初始流量进行预处理,主要包括http会话内容重组和http协议解析,其中,所述http会话是指在多次http连接间维护用户与同一用户发出的不同请求之间关联的情况,由于网络问题,数据包可能会经过不同的路由传输到目的地,并且到达目的地的数据包可能顺序会发生改变,因此,对http会话内容进行重组,按照数据包的序列号对接收到的数据包进行排序,可以将完整的数据包传输到目的主机的数据包以实现报文的还原;对http协议进行解析,可以在传输过程中对数据的传输进行控制,对在传输过程中丢失的数据包协议将控制系统将丢失的数据包重新传送,所述对初始流量进行预处理的目的在于,为初始流量分析和webshell检测做基础;其中,所述中间设备是指一般情况下的防火墙或者路由器设备,可以用来对http流量中属于webshell的部分进行防护,当然也可以是起到同样作用的其他设备,本实施例对此不加以限制。

应该理解的是,所述对初始流量进行预处理并不局限于只有http会话内容重组和http协议解析这两项预处理步骤,其他基于同样为后期的初始流量分析和webshell检测做基础的目的的预处理步骤都可以包括在内,本实施例对此不加以限制;

可以理解的是,所述初始流量是指通过http协议的流量,http协议(hypertexttransferprotocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传输协议。http包含命令和传输信息,不仅可用于web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

s002、将所述待检测流量与预设流量库中的流量进行对比,判断所述待检测流量是否与所述初始流量库中的流量相同;

可理解的是,预设流量库类似白名单,包含http协议的各个关键部分,所述关键部分用于对所述待检测流量进行传递,例如,合法的http请求方法、url路径、查询字符串、useragent白名单、cookie值以及post数据等。其中,所述url(uniformresourcelocator)统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的url,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

需要说明的是,预设流量库一般通过自动化爬虫爬行网站或者管理手动添加相关字段来实现和维护,当外界访问的初始流量经过预处理后,获得待检测流量,首先与预设流量库进行对比,如果所述待检测流量中有一部分流量属于正常流量即与非webshell流量相同,则可以直接放行,不进行任何处理,如果其余的流量在所述正常流量库中未找到与所述正常流量相对应的流量对象,那么此时的所述其余流量就可能存在问题,将其进行下一步判断。

s003、如果判断结果为是,则表明所述待检测流量属于非webshell流量,进行放行,不进行任何处理,结束流程;

s004、如果判断结果为否,则表示所述待检测流量与所述非webshell流量不同,将所述待检测流量与特征集中的webshell特征匹配;

需要说明的是,当所述待检测流量与所述正常流量库中的正常流量不同时,即在所述正常流量库中未找到与待检测流量对应的相同的正常流量时,可以判定当前待检测流量有可能存在问题,将所述待检测流量与特征集中的webshell特征匹配,看所述待检测流量与特征集中的webshell特征是否完全相同,如果完全相同则说明所述待检测流量为webshell流量。

应理解的是,所述特征集可以为包含能够表明webshell特征的参数的集合,包含与webshell有关的特征码、特征值、危险函数、特有的http请求/响应及其他能够表明webshell特征的参数,本实施例对此不加以限制。

需要说明的是,本实施例的webshell特征匹配与已经普遍使用的特征匹配稍有不同,webshell特征分为精确特征和基础特征两种。精确特征是指可以明显匹配webshell的特征,即完全与特征集合中的特征匹配的特征;基础特征是指可以执行脚本必备的基础语法的特征,比如php类型的文件匹配<?php,jsp类型的文件匹配<%;

s005、判断所述待检测流量是否与所述webshell特征匹配,如果判断结果为是,则表示所述待检测流量为webshell流量,直接阻断并发送报警信息,结束流程;

s006、如果判断结果为否,则表示所述待检测流量与所述webshell特征未匹配成功,将所述待检测流量进行加权后与特性集中的webshell特性匹配;

需要说明的是,当所述待检测流量与所述webshell特征未匹配成功时,如果此时所述待检测流量匹配到了特征集中的基础特征,则可以将匹配到所述基础特征的所述待检测流量加权值以重点关注和未匹配到的所述待检测流量一起进行在所述特性集中进行webshell特性匹配;

s007、判断加权后的所述待检测流量与所述webshell特性是否匹配,如果判断结果为是,则表示所述待检测流量为webshell流量,直接阻断并发送报警信息,结束流程;

s008、如果判断结果为否,则表示加权后的所述待检测流量与所述webshell特性未匹配成功,将所述待检测流量记录到日志集中;

需要说明的是,对于未与特征集中的webshell特征匹配的所述待检测流量,即与所述基础特征匹配或者与基础特征不匹配和/或与所述webshell特征未匹配的所述待检测流量进行webshell特性匹配。

可理解的是,日志集是web日志的集合,所述web日志是网站的web服务处理程序,根据一定的规范生成的文本;它主要记录了网站访问记录数据内容,是网站分析和网站数据仓库的数据基础来源。

在具体实现中,可以将与所述webshell特征未匹配的所述待检测流量进行webshell特性匹配,由于特性匹配不能准确判断出流量是否是webshell流量,可以采用权值累加的方式,当权值累加结果超出一定阈值时,就认为是webshell流量,及时阻断并发出报警信息,对于加权后与所述webshell特性未匹配成功的所述待检测流量,即webshell特性不明显的流量,先记录到日志系统,方便下一步日志分析使用。

s009、在所述日志集中的待检测流量积累到预设数量或者达到预设时间时,对所述待检测流量进行日志分析,获得分析结果,对所述分析结果中各个参数进行加权;

需要说明的是,当日志量即在所述日志集中的所述待检测流量在积累到一定程度时,即当所述日志集中的所述待检测流量积累到预设数量或者达到预设时间时,进行日志分析,其中,所述预设数量和预设时间是根据实际情况由研究人员预先设定的值,当然也可以是通过大量数据研究获得的固定的值,本实施例对此不加以限制。

应该理解的是,日志分析主要包含对正常流量库的对比分析,webshell区别于正常流量的地方在于:使用访问日志再次构建访问流量库,将所述访问流量库与正常流量库进行对比,找出新增的可疑url理解和http的相关字段,其中新增的可疑文件大多数使用post方式进行交互,访问新增页面的ip地址,在日志的上下文中不会访问网站的其他资源,其中所述post是http协议本身定义的一种方法,post一般用于更新资源信息;日志分析主要包含对数据统计的分析,webshell流量的某些表征:在某个页面只有一个ip访问或者只有极少数ip访问,在某个页面的访问时间或ip存在特定规律,在某个页面的访问频率明显低于其他页面;日志分析主要包含对异常行为的分析,webshell异常行为一般包含:在原来只用get方式请求的页面,突然增加了大量post请求,在某个页面的传入参数的类型和个数突然发生了变化,其中,所述get也是http协议本身定义的一种方法,get一般用于获取或者查询资源信息,get请求的数据会附在url之后;webr日志分析的分析方式不局限于以上几个方面,当然也可以是基于相同目的的其他方面的分析,本实施例对此不加以限制。

s010、将加权后的所述分析结果作为第二累加结果,在所述第二累加结果中的任意参数大于或等于该参数对应的第二预设阈值时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断并发出报警信息,结束流程;

需要说明的是,日志分析是个动态持续的过程,与特性集匹配类似,对于webshell相关的每个因素都可以采用权值累加的方式,并不局限于将所述可疑url路径和http的相关字段、所述对web页面访问时间和访问频率的数据、所述页面请求类型和数量发生变化的行为采取权值累加,也可以是其他与webshell相关的因素,当累加结果超过第一预设阈值时,就认为是webshell流量,对其进行阻断并发出报警信息,其中所述第一预设阈值为根据实际情况由研究人员预先设定的值,当然也可以是通过大量数据研究获得的固定的值,本实施例对此不加以限制。

s011、当所述第一累加结果小于第一预设阈值时,则表示所述待检测流量不确定是webshell,返回所述步骤s002,当所述正常流量库、所述特征集、所述特性集和所述日志集其中任意一项有数据更新动作时,执行所述步骤s002。

本实施例通过对初始流量即http流量进行预处理,将预处理后的流量作为待检测流量与预设流量库中的流量进行对比,结合与特征集对比进行特征匹配、与特性集对比进行特性匹配和日志集中的日志分析,能够极大的提高检测webshell流量的准确性和全面性,能够解决现有技术中webshell检测效果差,错误率高的问题,极大提高了对webshell的攻防能力,更加方便、全面和准确的对webshell进行检测,提高了用户体验。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网页后门检测程序,所述网页后门检测程序被处理器执行时实现如下操作:

将待检测流量与特征集进行特征匹配,所述特征集为包含能够表明网页后门webshell特征的参数集合;

当所述待检测流量与所述特征集未匹配成功时,将所述待检测流量与特性集进行特性匹配,所述特性集为包含能够表明webshell特性的文件集合;

当所述待检测流量与所述特性集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

将所述待检测流量中的各项特性进行权值累加,获得第一累加结果,在所述第一累加结果小于第二预设阈值时,认定所述待检测流量与所述特性集未匹配成功;

在所述第一累加结果大于或等于所述第一预设阈值时,认定所述待检测流量与所述特性集匹配成功。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中,以进行日志分析,所述日志集为所述待检测流量访问数据的集合。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

当所述待检测流量与所述特性集未匹配成功时,将所述待检测流量保存到日志集中;

在所述日志集中的待检测流量积累到预设数量或者达到预设时间时,对所述待检测流量进行日志分析,获得分析结果,对所述分析结果中各个参数进行加权;

将加权后的所述分析结果作为第二累加结果,在所述第二累加结果中的任意参数大于或等于该参数对应的第二预设阈值时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

将所述日志集中的待检测流量与预设流量库中的流量进行对比,获得新增内容;

统计所述日志集中的待检测流量的页面访问时间和页面访问频率;

统计所述日志集中的待检测流量的页面参数类型和页面参数变化数量;

将所述新增内容、所述页面访问时间、所述页面访问频率、所述页面参数类型和所述页面参数变化数量作为所述分析结果。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

当所述待检测流量与所述特征集匹配成功时,判断所述待检测流量为webshell流量,对所述待检测流量进行阻断。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

对初始流量进行预处理,将经过预处理后的所述初始流量作为待检测流量;其中,所述预处理包括对所述初始流量中的http会话内容进行重组和对所述初始流量中的http协议进行解析。

进一步地,所述网页后门检测程序被处理器执行时还实现如下操作:

将所述待检测流量与所述预设流量库中的流量进行依次对比;

当所述待检测流量与所述预设流量库中的流量不同时,将所述待检测流量与所述特征集进行特征匹配。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1