webshell检测方法及装置与流程

文档序号:12693922阅读:203来源:国知局
webshell检测方法及装置与流程

本发明涉及网络安全技术领域,具体而言,涉及一种webshell检测方法及装置。



背景技术:

Webshell是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环,也称作网页后门境。黑客在侵入一个网站后,通常会将网页后门文件与网站服务器web目录下正常的网页文件混在一起,从而能够通过浏览器来访问网页后门,得到一个命令执行环境,以达到控制网站服务器的目的。

在实际应用中,webshell可能只有一句话,也可能超过100KB。此外,webshell可以嵌入任意格式的文件中,从而逃过依靠特征码检测的传统防火墙、入侵检测、web防火墙以及防病毒软件等的检测。并且,随着各种用于反检测特征混淆隐藏技术应用到webshell上,使得现有安全设备和防病毒软件更难检测出webshell。



技术实现要素:

有鉴于此,本发明的目的在于提供一种webshell检测方法及装置,能够可靠有效地检测出文件中隐藏的webshell。

为了达到上述目的,本发明较佳实施例提供一种webshell检测方法,应用于电子终端,所述方法包括:

实时获取针对所述电子终端中存储的各文件的操作请求;

将所述操作请求所要操作的文件作为目标文件,并获取所述目标文件的属性信息;

按照第一预设规则根据所述属性信息生成属性安全值;

根据所述属性信息查找出所述目标文件,并检测所述目标文件中是否存在动态网页脚本;

在所述目标文件中存在动态网页脚本时,提取出所述动态网页脚本;

检测并计算所述动态网页脚本的特征安全值、逻辑行为安全值以及与预存样本数据库中的危险网页脚本的相似度值;

根据所述属性安全值、特征安全值、逻辑行为安全值以及相似度值的预设权重进行计算,得到一综合安全值;

在所述综合安全值低于预设值时,判定所述目标文件中存在webshell;以及

对存在webshell的目标文件加密,将加密后的目标文件存储到预设隔离区。

优选地,检测所述目标文件中是否存在动态网页脚本的步骤包括:

检测所述目标文件中是否存在预设类型的文本;以及

在所述目标文件中存在所述预设类型的文本时,将所述预设类型的文本作为所述动态网页脚本。

优选地,所述预设类型包括asp、aspx、php、cgi以及jsp。

优选地,检测并计算所述动态网页脚本的特征安全值的步骤,包括:

检测所述动态网页脚本中是否存在与预存的第一标识符匹配的第二标识符;

在所述动态网页脚本中存在与所述第一标识符匹配的第二标识符时,提取出所述动态网页脚本中与所述第一标识符匹配的第二标识符;以及

按照第二预设规则根据提取出的第二标识符的数量生成所述特征安全值。

优选地,检测并计算所述动态网页脚本的逻辑行为安全值的步骤,包括:

对所述动态网页脚本进行模拟运行;

检测模拟运行时发生的各操作中是否存在与预设危险操作匹配的操作;以及

按照第三预设规则根据模拟运行时发生的各操作中与所述预设危险操作匹配的操作的数量生成所述逻辑行为安全值。

优选地,检测并计算所述动态网页脚本与预存样本数据库中的危险网页脚本的相似度值的步骤,包括:

根据模糊哈希算法计算所述动态网页脚本的模糊哈希值;

计算所述动态网页脚本的模糊哈希值与预存样本数据库中的危险网页脚本的模糊哈希值的最大相似度值;以及

将计算出的最大相似度值作为所述相似度值。

本发明较佳实施例还提供一种webshell检测装置,应用于电子终端,所述webshell检测装置包括:

操作请求获取模块,用于实时获取针对所述电子终端中存储的各文件的操作请求;

目标文件确定模块,用于将所述操作请求所要操作的文件作为目标文件,并获取所述目标文件的属性信息;

属性安全值生成模块,用于按照第一预设规则根据所述属性信息生成属性安全值;

动态网页脚本检测模块,用于根据所述属性信息查找出所述目标文件,并检测所述目标文件中是否存在动态网页脚本;

动态网页脚本提取模块,用于在所述目标文件中存在动态网页脚本时,提取出所述动态网页脚本;

计算模块,用于检测并计算所述动态网页脚本的特征安全值、逻辑行为安全值以及与预存样本数据库中的危险网页脚本的相似度值;

综合安全值计算模块,用于根据所述属性安全值、特征安全值、逻辑行为安全值以及相似度值的预设权重进行计算,得到一综合安全值;

危险性判定模块,用于在所述综合安全值低于预设值时,判定所述目标文件中存在webshell;以及

危险文件处理模块,用于对存在webshell的目标文件加密,将加密后的目标文件存储到预设隔离区。

优选地,所述动态网页脚本检测模块包括:

预设类型文本检测子模块,用于检测所述目标文件中是否存在预设类型的文本;以及

判定子模块,用于在所述目标文件中存在所述预设类型的文本时,将所述预设类型的文本作为所述动态网页脚本。

优选地,所述计算模块包括特征安全值计算子模块,所述特征安全值计算子模块包括:

标识符检测单元,用于检测所述动态网页脚本中是否存在与预存的第一标识符匹配的第二标识符;

标识符提取单元,用于在所述动态网页脚本中存在与所述第一标识符匹配的第二标识符时,提取出所述动态网页脚本中与所述第一标识符匹配的第二标识符;以及

特征安全值生成单元,用于按照第二预设规则根据提取出的第二标识符的数量生成所述特征安全值。

优选地,所述计算模块还包括逻辑行为安全值计算子模块,所述逻辑行为安全值计算子模块包括:

模拟运行单元,用于对所述动态网页脚本进行模拟运行;

危险操作检测单元,用于检测模拟运行时发生的各操作中是否存在与预设危险操作匹配的操作;以及

逻辑行为安全值生成单元,用于按照第三预设规则根据模拟运行时发生的各操作中与所述预设危险操作匹配的操作的数量生成所述逻辑行为安全值。

本发明提供的webshell检测方法及装置,对操作请求进行拦截,将操作请求所操作的文件作为目标文件,并对目标文件进行多维检测,根据检测结果进行综合判断,从而判定目标文件是否存在webshell。如此,能够可靠且有效地对目标文件中webshell进行检测。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种电子终端的方框示意图。

图2为本发明实施例提供的一种webshell检测装置的功能模块图。

图3为图2所示的动态网页脚本检测模块的子模块示意图。

图4为图2所示的计算模块的子模块示意图。

图5为本发明实施例提供的一种webshell检测方法的流程示意图。

图6为图5所示的步骤S104的子步骤示意图。

图7为图5所示的步骤S107的一种子步骤示意图。

图8为图5所示的步骤S107的又一子步骤示意图。

图9为图5所示的步骤S107的又一子步骤示意图。

图标:100-电子终端;110-存储器;120-处理器;130-外设接口;200-webshell检测装置;210-操作请求获取模块;220-目标文件确定模块;230-属性安全值生成模块;240-动态网页脚本检测模块;241-预设类型文本检测子模块;242-判定子模块;250-动态网页脚本提取模块;260-计算模块;261-特征安全值计算子模块;2611-标识符检测单元;2612-标识符提取单元;2613-特征安全值生成单元;262-逻辑行为安全值计算子模块;2621-模拟运行单元;2622-危险操作检测单元;2623-逻辑行为安全值生成单元;263-相似度值计算子模块;2631-模糊哈希值计算单元;2632-最大相似度值计算单元;2633-相似度值计算单元;270-综合安全值计算模块;280-危险性判定模块;290-危险文件处理模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

如图1所示,是本发明实施例提供的电子终端100的方框示意图。所述电子终端100包括webshell检测装置200、存储器110、处理器120以及外设接口130。

所述存储器110、处理器120以及外设接口130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述webshell检测装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中或固化在所述电子终端100的操作系统(operating system,OS)中的软件功能模块。所述处理器120用于执行所述存储器110中存储的可执行模块,例如所述webshell检测装置200所包括的软件功能模块以及计算机程序等。

其中,所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

所述处理器120可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述外设接口130将各种输入/输出装置耦合至所述处理器120以及所述存储器110。在一些实施例中,外设接口130、处理器120以及存储器110可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

应当理解,图1所示的结构仅为示意。所述电子终端100还可以具有比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。其中,图1中所示的各组件可以硬件、软件或其组合实现。

如图2所示,是本发明实施例提供的一种webshell检测装置200,应用于图1所示电子终端100。所述webshell检测装置200包括操作请求获取模块210、目标文件确定模块220、属性安全值生成模块230、动态网页脚本检测模块240、动态网页脚本提取模块250、计算模块260、综合安全值计算模块270、危险性判定模块280以及危险文件处理模块290。

其中,所述操作请求获取模块210用于实时获取针对所述电子终端100中存储的各文件的操作请求。

在实际应用中,webshell可以嵌入任意格式的文件中,从而使黑客能够通过其他程序对电子终端100的操作系统及其内部存储的各文件进行恶意操作。

因此,本实施例中,可以采用文件过滤驱动对电子终端100的操作系统进行实时监控,并拦截针对电子终端100的操作系统内的各文件的操作请求。从而根据操作请求确定待检测目标文件。

所述目标文件确定模块220用于将所述操作请求所要操作的文件作为目标文件,并获取所述目标文件的属性信息。

本实施例中,在拦截到操作请求时,将拦截到的操作请求所要操作的文件作为目标文件,并对所述目标文件进行检测,以判定所述目标文件中是否存在webshell。

所述属性安全值生成模块230,用于按照第一预设规则根据所述属性信息生成属性安全值。

本实施例中,所述属性信息可以包括,但不限于,文件的大小、创建时间、文件类型、权限、存储路径等,本实施例对此不做限制。所述电子终端100中存储有所述属性信息所包括的各信息所占的权重。根据获取到目标文件的属性信息,以及属性信息所包括的各信息所占的权重可以计算出所述属性安全值。各权重值的具体大小可以根据实际情况进行灵活设置,本实施例对此不做限制。

例如:当所述目标文件的大小为1KB,创建时间距离当前时刻较近,并且文件类型为脚本文件,可以判定这目标文件有一定的危险性,计算出的属性安全值会较小。

所述动态网页脚本检测模块240,用于根据所述属性信息查找出所述目标文件,并检测所述目标文件中是否存在动态网页脚本。

本实施例中,所述目标文件的存储路径可以查找出所述目标文件。在确定目标文件后,可以进一步对所述目标文件进行检测。Webshell通常为动态网页脚本,因而可以检测所述目标文件中是否存在动态网页脚本,并根据检测结果对所述目标文件的危险性进行初步判定。

其中,动态网页脚本指用动态脚本语言如asp、aspx、php、cgi以及jsp等编写的文本文件。

可选地,请参阅图3,所述动态网页脚本检测模块240可以包括预设类型文本检测子模块241以及判定子模块242。

所述预设类型文本检测子模块241用于检测所述目标文件中是否存在预设类型的文本。

所述判定子模块242用于在所述目标文件中存在所述预设类型的文本时,将所述预设类型的文本作为所述动态网页脚本。

本实施例中,所述预设类型包括asp、aspx、php、cgi以及jsp等动态脚本语言。不同类型的脚本语言具有不同的编程格式,以php脚本语言为例,若在所述目标文件中存在“<?Php”和“?>”等信息,则可以认定所述目标文件中存在php动态网页脚本。

所述动态网页脚本提取模块250,用于在所述目标文件中存在动态网页脚本时,提取出所述动态网页脚本。

例如,在检测到所述目标文件中存在php动态网页脚本时,即可将检测到的php动态网页脚本提取出来进行后续的检测分析。

所述计算模块260,用于检测并计算所述动态网页脚本的特征安全值、逻辑行为安全值以及与预存样本数据库中的危险网页脚本的相似度值。

请参阅图4,本实施例中,所述计算模块260可以包括特征安全值计算子模块261、逻辑行为安全值计算子模块262以及相似度值计算子模块263。

其中,所述特征安全值计算子模块261可以包括标识符检测单元2611、标识符提取单元2612和特征安全值生成单元2613。

所述标识符检测单元2611用于检测所述动态网页脚本中是否存在与预存的第一标识符匹配的第二标识符。

所述标识符提取单元2612,用于在所述动态网页脚本中存在与所述第一标识符匹配的第二标识符时,提取出所述动态网页脚本中与所述第一标识符匹配的第二标识符。

所述特征安全值生成单元2613用于按照第二预设规则根据提取出的第二标识符的数量生成所述特征安全值。

本实施例中,所述电子终端100中预存有多个第一标识符,所述第一标识符均可以为包括webshell的动态网页脚本可能具有的特征关键字,例如,CreateObject、Scripting.FileSystemPbject以及CreateTextFile等。

在提取出动态网页脚本后,可以检测所述动态网页脚本中是否存在与所述第一标识符匹配的第二标识符。也即,检测所述动态网页脚本中是否存在电子终端100中预存的特征关键字,并将检测到的特征关键字提取出,记录提取到的特征关键字的数量。

所述电子终端100中可以存储有不同数量的特征关键字对应的危险权重值,如此,根据不同数量的特征关键字对应的危险权重值计算生成一特征安全值。

其中,所述危险权重值可以根据实际情况进行灵活设置,本实施例对此不做限制。

所述逻辑行为安全值计算子模块262可以包括模拟运行单元2621、危险操作检测单元2622以及逻辑行为安全值生成单元2623。

所述模拟运行单元2621用于对所述动态网页脚本进行模拟运行。

本实施例中,可以将所述动态网页脚本预编译为中间语言,将所述动态网页脚本内的函数的参数设定为预设参数,再通过与所述动态网页脚本对应的解释器解释执行所述中间语言。

所述危险操作检测单元2622用于检测模拟运行时发生的各操作中是否存在与预设危险操作匹配的操作。

本实施例中,解释器在解释执行所述中间语言时,解释一句代码,执行一句代码,执行完成后会直接输出执行该句代码的结果。由于解释器是将中间语言解释为机器代码,因而在解释完成时,电子终端100即可识别出该句代码所要进行的操作。

所述电子终端100中存储有多个预设危险操作,例如:删除文件、修改文件、连接网络、执行命令等。也即,当模拟运行所述动态网页脚本的过程中发生所述多个预设危险操作中的至少一个时,即可判定所述动态网页脚本具有一定的危险性。

如此,能够检测出模拟运行过程发生的各操作中是否存在与预设危险操作匹配的操作,在模拟运行过程发生的各操作中存在与所述预设危险操作匹配的操作时,记录模拟运行过程发生的各操作中与所述预设危险操作匹配的操作的数量。

所述逻辑行为安全值生成单元2623用于按照第三预设规则根据模拟运行时发生的各操作中与所述预设危险操作匹配的操作的数量生成所述逻辑行为安全值。

本实施例中,电子终端100记录有模拟运行时发生的各操作中与所述预设危险操作匹配的操作的不同数量所对应的不同权重值,如此,根据模拟运行时发生的各操作中与所述预设危险操作匹配的操作的数量及其对应的权重值即可计算出所述动态网页脚本的逻辑行为安全值。

所述相似度值计算子模块263可以包括模糊哈希值计算单元2631、最大相似度值计算单元2632以及相似度值计算单元2633。

其中,所述模糊哈希值计算单元2631用于根据模糊哈希算法计算所述动态网页脚本的模糊哈希值。

所述最大相似度值计算单元2632用于计算所述动态网页脚本的模糊哈希值与预存样本数据库中的危险网页脚本的模糊哈希值的最大相似度值。

所述相似度值计算单元2633用于将计算出的最大相似度值作为所述相似度值。

模糊哈希算法能够寻找相似但不完全相同的文件,也即,同源性文件。模糊哈希算法首先将所述动态网页脚本分块,计算出每一块的哈希值,利用压缩映射算法将每一文件块的哈希值映射为一个更短的值。将压缩映射过的每一哈希值连接到一起,即可得到所述动态网页脚本的模糊哈希值。

在计算出所述动态网页脚本的模糊哈希值后,可以采用传统的相似性比较算法计算所述动态网页脚本的模糊哈希值与预存样本数据库中的危险网页脚本的模糊哈希值的最大相似度值,并将计算出的最大相似度作为所述相似度值,用于判断所述动态网页脚本与预存样本数据库中的危险网页脚本的相似性。

所述综合安全值计算模块270,用于根据所述属性安全值、特征安全值、逻辑行为安全值以及相似度值的预设权重进行计算,得到一综合安全值。

本实施例中,所述电子终端100中记录有所述属性安全值、特征安全值、逻辑行为安全值以及相似度值的预设权重。

危险性判定模块280,用于在所述综合安全值低于预设值时,判定所述目标文件中存在webshell。

本实施例中,所述预设值可以根据实际情况进行灵活设置,本实施例对此不做限制。

所述危险文件处理模块290,用于对存在webshell的目标文件加密,将加密后的目标文件存储到预设隔离区。

本实施例中,在判断出所述目标文件中存在webshell时,即表明所述目标文件为危险文件,可立即对所述目标文件进行处理。

请参阅图5,是本发明较佳实施例提供的一种webshell检测方法的流程示意图。下面将对图5所示的具体流程和步骤进行详细阐述。

步骤S101:实时获取针对所述电子终端100中存储的各文件的操作请求。

本实施例中,步骤S101可以由图2中所示的操作请求获取模块210执行。

步骤S102:将所述操作请求所要操作的文件作为目标文件,并获取所述目标文件的属性信息。

本实施例中,步骤S102可以由图2中所示的目标文件确定模块220执行。

步骤S103:按照第一预设规则根据所述属性信息生成属性安全值。

本实施例中,步骤S103可以由图2中所示的属性安全值生成模块230执行。

步骤S104:根据所述属性信息查找出所述目标文件,并检测所述目标文件中是否存在动态网页脚本。

本实施例中,步骤S104可以由图2中所示的动态网页脚本检测模块240执行。

步骤S105:在所述目标文件中存在动态网页脚本时,提取出所述动态网页脚本。

本实施例中,步骤S105可以由图2中所示的动态网页脚本提取模块250执行。

步骤S106:检测并计算所述动态网页脚本的特征安全值、逻辑行为安全值以及与预存样本数据库中的危险网页脚本的相似度值。

本实施例中,步骤S106可以由图2所示的计算模块260执行。

步骤S107:根据所述属性安全值、特征安全值、逻辑行为安全值以及相似度值的预设权重进行计算,得到一综合安全值。

本实施例中,步骤S107可以由图2所示的综合安全值计算模块270执行。

步骤S108:在所述综合安全值低于预设值时,判定所述目标文件中存在webshell。

本实施例中,步骤S108可以由图2所示的危险性判定模块280执行。

步骤S109:对存在webshell的目标文件加密,将加密后的目标文件存储到预设隔离区。

本实施例中,步骤S109可以由图2中所示的危险文件处理模块290执行。

请参阅图6,所述步骤S104可以包括步骤S201和步骤S202。

步骤S201:检测所述目标文件中是否存在预设类型的文本。

本实施例中,步骤S201可以由图3中所示的预设类型文本检测子模块241执行。

步骤S202:在所述目标文件中存在所述预设类型的文本时,将所述预设类型的文本作为所述动态网页脚本。

本实施例中,步骤S202可以由图3中所示的预设类型文本检测子模块241执行。

请参阅图7,所述步骤S107中检测并计算所述动态网页脚本的特征安全值的步骤可以包括步骤S301、步骤S302以及步骤S303。

步骤S301:检测所述动态网页脚本中是否存在与预存的第一标识符匹配的第二标识符。

本实施例中,步骤S301可以由图4中所示的标识符检测单元2611执行。

步骤S302:在所述动态网页脚本中存在与所述第一标识符匹配的第二标识符时,提取出所述动态网页脚本中与所述第一标识符匹配的第二标识符。

本实施例中,步骤S302可以由图4中所示的标识符提取单元2612执行。

步骤S303:按照第二预设规则根据提取出的第二标识符的数量生成所述特征安全值。

本实施例中,步骤S303可以由图4中所示的特征安全值生成单元2613执行。

请参阅图8,所述步骤S107中检测并计算所述动态网页脚本的逻辑行为安全值的步骤可以包括步骤S401、步骤S402和步骤S403。

步骤S401:对所述动态网页脚本进行模拟运行。

本实施例中,步骤S401可以由图4中的模拟运行单元2621执行。

步骤S402:检测模拟运行时发生的各操作中是否存在与预设危险操作匹配的操作。

本实施例中,步骤S402可以由图4中所示的危险操作检测单元2622执行。

步骤S403:按照第三预设规则根据模拟运行时发生的各操作中与所述预设危险操作匹配的操作的数量生成所述逻辑行为安全值。

本实施例中,步骤S403可以由图4中所示的逻辑行为安全值生成单元2623执行。

请参阅图9,所述步骤S107中检测并计算所述动态网页脚本与预存样本数据库中危险网页脚本的相似度值的步骤可以包括步骤S501、步骤S502以及步骤S503。

步骤S501:根据模糊哈希算法计算所述动态网页脚本的模糊哈希值。

本实施例中,步骤S501可以由图4中所示的模糊哈希值计算单元2631执行。

步骤S502:计算所述动态网页脚本的模糊哈希值与预存样本数据库中的危险网页脚本的模糊哈希值的最大相似度值。

本实施例中,步骤S502可以由图4中所示的最大相似度值计算单元2632执行。

步骤S503:将计算出的最大相似度值作为所述相似度值。

本实施例中,步骤S503可以由图4中所示的相似度值计算单元2633执行。

综上所述,本发明实施例提供的webshell检测方法及装置,对操作请求进行拦截,将操作请求所操作的文件作为目标文件,并对目标文件进行多维检测,根据检测结果进行综合判断,从而判定目标文件是否存在webshell。如此,能够可靠且有效地对目标文件中webshell进行检测。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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