发明内容
本说明书实施例提供及一种网页后门的检测方法、装置、设备及存储介质,较之基于正则表达式的检测方法,其实现方式简单灵活,且漏检率较低。
第一方面,本说明书实施例提供一种网页后门的检测方法,该方法包括:
获取待检测的网页文件源代码;
利用预设的规则库对所述网页文件源代码进行特征匹配,得到主观特征向量;
对所述网页文件源代码的属性进行统计,得到客观特征值;
利用所述主观特征向量和所述客观特征值构建特征向量;
利用预先建立的分类模型对所述特征向量进行分类,分类结果指示了所述网页文件源代码中是否存在网页后门,所述分类模型是由预先获取的作为特征向量样本训练得到的,所述特征向量样本的数据结构与所述特征向量的数据结构相同。
可选的,所述规则库包括多条规则,所述利用预设的规则库对所述网页文件源代码进行特征匹配,得到主观特征向量,包括:
分别利用所述规则库中的每条规则对所述网页文件源代码进行特征匹配;
记录每条规则的匹配结果,匹配结果由数值表示;
按照每条规则在所述规则库中的顺序对所述匹配结果进行排序,得到主观特征向量。
可选的,所述客观特征值包括以下至少一种:
所述网页文件源代码的单词数,所述网页文件源代码的符号数,所述网页文件源代码的空白行数,所述网页文件源代码的压缩率,所述网页文件源代码的最长单词的字符数。
可选的,所述对所述网页文件源代码的属性进行统计之前,该方法还包括:
对所述网页文件源代码进行分词处理。
基于上述任意方法实施例,可选的,所述分类模型为随机森林模型。
第二方面,本说明书实施例提供一种网页后门的检测装置,包括:
源代码获取模块,用于获取待检测的网页文件源代码;
主观特征提取模块,用于利用预设的规则库对所述网页文件源代码进行特征匹配,得到主观特征向量;
客观特征提取模块,用于对所述网页文件源代码的属性进行统计,得到客观特征值;
特征向量构建模块,用于利用所述主观特征向量和所述客观特征值构建特征向量;
网页后门检测模块,用于利用预先建立的分类模型对所述特征向量进行分类,分类结果指示了所述网页文件源代码中是否存在网页后门,所述分类模型是由预先获取的作为特征向量样本训练得到的,所述特征向量样本的数据结构与所述特征向量的数据结构相同。
可选的,所述规则库包括多条规则,所述主观特征提取模块用于:
分别利用所述规则库中的每条规则对所述网页文件源代码进行特征匹配;
记录每条规则的匹配结果,匹配结果由数值表示;
按照每条规则在所述规则库中的顺序对所述匹配结果进行排序,得到主观特征向量。
可选的,所述客观特征值包括以下至少一种:
所述网页文件源代码的单词数,所述网页文件源代码的符号数,所述网页文件源代码的空白行数,所述网页文件源代码的压缩率,所述网页文件源代码的最长单词的字符数。
可选的,还包括分词处理模块,用于:
对所述网页文件源代码进行分词处理。
基于上述任意装置实施例,可选的,所述分类模型为随机森林模型。
第三方面,本说明书实施例提供一种网页后门的检测设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意方法实施例的步骤。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例的步骤。
本说明书实施例有益效果如下:
通过提取网页文件源代码的主观特征向量和客观特征值,构建得到的特征向量,从多个特征角度较为全面地描述了网页后门的特征,利用人工智能技术的分类模型,具有自学习、自组织、自适应等能力,所以可有效地发现新型或变种的网页后门,有效地弥补传统的检测方法不能检测未知网页后门的缺点,检测方式灵活,且在保证网页后门检测准确性的同时,能够降低漏报率。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,本说明书实施例提供一种网页后门的检测方法,请参考图1,包括:
步骤101、获取待检测的网页文件源代码。
本说明书实施例提供的方法不受限于源代码所使用的语言,因此,该步骤中,获取的网页文件源代码可以是asp、php、jsp、cgi等格式。
步骤103、利用预设的规则库对上述网页文件源代码进行特征匹配,得到主观特征向量。
该步骤即提取主观特征。
步骤105、对上述网页文件源代码的属性进行统计,得到客观特征值。
该步骤即提取客观特征。
应当指出的是,步骤103和步骤105之间没有执行时序的限制,既可以先执行步骤103,也可以先执行步骤105,还可以并行执行这两个步骤。
步骤107、利用上述主观特征向量和上述客观特征值构建特征向量。
步骤109、利用预先建立的分类模型对上述特征向量进行分类,分类结果指示了上述网页文件源代码中是否存在网页后门。
其中,上述分类模型是由预先获取的作为特征向量样本训练得到的,特征向量样本的数据结构与上述构建的特征向量的数据结构相同。
通过提取网页文件源代码的主观特征向量和客观特征值,构建得到的特征向量,从多个特征角度较为全面地描述了网页后门的特征,利用人工智能技术的分类模型,具有自学习、自组织、自适应等能力,所以可有效地发现新型或变种的网页后门,有效地弥补传统的检测方法不能检测未知网页后门的缺点,检测方式灵活,且在保证网页后门检测准确性的同时,能够降低漏报率。
另外,采用本说明书实施例提供的方法,无论是主观特征还是客观特征都属于网页文件源代码的文本特征,不涉及源代码编写所使用的编程语言的语法,因此不受限于源代码所使用的编程语言,适用范围较广。
本说明书实施例提供的方法可以但不仅限于对webshell的检测。
下面将从主观特征提取,客观特征提取,分类模型的建模及应用这几个方面对本说明书实施例提供的技术方案进行详细说明。
主观特征提取
本说明书实施例中,利用规则库对网页文件源代码进行特征匹配。其中,规则库包括预先配置的多条规则,这些规则用于描述已知的网页后门主观特征。可以但不仅限于包括:用于匹配危险函数的规则,用于匹配网页后门作者痕迹的规则,用于匹配网页后门特征码的规则等等。
当发现有新的网页后门主观特征,则可以添加相应的规则到规则库中。
作为举例而非限定,规则库中的规则可以用正则表达式表示。
相应的,上述步骤103的实现方式可以是:分别利用所述规则库中的每条规则对所述网页文件源代码进行特征匹配;记录每条规则的匹配结果,匹配结果由数值表示;按照每条规则在所述规则库中的顺序对所述匹配结果进行排序,得到主观特征向量。
其中,表示匹配结果的数值可以是设定长度的二进制数,例如,用一位二进制数表示匹配结果,1(或0)表示匹配,0(或1)表示不匹配。当然,也可以采用其他长度或者其他进制的数值表示,本说明书对此不做限定。
假设规则库中有N条规则,表示为{R1,R2,……,RN},则遍历这N条规则,每条规则均对网页文件源代码进行特征匹配,具体的,可以按照这些规则在规则库中的顺序进行匹配,也可以按照其他遍历顺序进行匹配,还可以并行进行匹配。但匹配结果需要按照这些规则在规则库中的顺序(即按照R1,R2,……,RN的顺序)进行排列。假设1表示匹配,0表示不匹配,则得到的主观特征向量为一串01构成的数字串,假设第n个规则对应的匹配结果为不匹配,则在主观特征向量中,第n个特征为0。
客观特征提取
本说明书实施例中,客观特征值包括但不仅限于以下至少一种:
所述网页文件源代码的单词数,所述网页文件源代码的符号数,所述网页文件源代码的空白行数,所述网页文件源代码的压缩率,所述网页文件源代码的最长单词的字符数。
为了隐藏网页后门,逃避检测,网页后门的作者会对网页后门代码进行加密、压缩等处理。因此,异常的压缩率、异常长度的单词/字符串等等均可以作为网页后门的特征。这些文本属性统计值即为客观特征值,可以作为网页后门特征的补充。
为了进行属性统计,可以先对网页文件源代码进行分词处理。
通过分词,将文本进行分割,以便进行单词、字符串等统计。本说明书实施例不对分词的规则进行限定,仅举例进行说明。
在对自然语言文本进行分词处理时,对于特殊符号,例如&、#,会判断为是无意义的字符而被过滤。但在网页文件代码中,特殊符号也有其含义,例如,<表示小于号。因此,在对网页文件代码进行分词处理时,不删除特殊符号,而是作为有意义的字符串进行分割。具体的,在网页文件代码中,以Html为例,特殊符号的编码以&开头,因此,可以将&作为一种分词标记。
完成分词处理后,即可进行相关的属性统计。例如,统计单词数量,具体的,可以对单词进行去重,统计去重之后的单词数量。
提取了主观特征和客观特征后,通过将主观特征和客观特征级联来构建特征向量。本说明书实施例不对级联的顺序进行限定,既可以主观特征向量在前,也可以客观特征值在前,只要保证特征向量的数据结构与特征向量样本的数据结构一致即可。
所谓数据结构一致,是指主观特征向量和客观特征值的级联顺序一致,主观特征向量中各个特征的顺序一致,若有多个客观特征值,其排序一致。
根据分类模型对数据结构的要求,可能还需要对主观特征向量和客观特征值进行归一化处理。假设主观特征向量是二进制数字串,而客观特征值是十进制数值,则将客观特征值转换为二进制数字串。
分类模型的建模及应用
本说明书实施例不对分类模型进行具体限定。优选的,采用随机森林模型,经验证,采用随机模型对特征向量进行分类,其准确率较高、漏检率较低。另外,随机森林模型不需要对特征向量进行归一化处理,简化了处理流程,提高了处理效率。
以随机森林模型为例,获取大量已知有网页后门的网页文件源代码,采用上述提取方式提取主观特征向量和客观特征值,从而构建特征向量,这些特征向量即为特征向量样本。
已知有网页后门的网页文件源代码包括互联网已公开的已知有网页后门的网页文件源代码、目标主机已采集的已知有网页后门的网页文件源代码。
利用部分特征向量样本训练随机森林模型,并利用剩余的特征向量样本评估随机森林模型的性能,从而进行优化。在训练过程中,通过机器学习算法,还可以判断出特征向量样本中的各个向量的权重,对于权重过低的向量,意味着其对检测网页后门的贡献较低,可以选择从特征向量样本中删除,相应的,从规则库中删除相应的规则,或不再进行对应的属性统计。
第二方面,基于同一发明构思,本说明书实施例提供一种网页后门的检测装置,请参考图2,包括:
源代码获取模块201,用于获取待检测的网页文件源代码;
主观特征提取模块202,用于利用预设的规则库对所述网页文件源代码进行特征匹配,得到主观特征向量;
客观特征提取模块203,用于对所述网页文件源代码的属性进行统计,得到客观特征值;
特征向量构建模块204,用于利用所述主观特征向量和所述客观特征值构建特征向量;
网页后门检测模块205,用于利用预先建立的分类模型对所述特征向量进行分类,分类结果指示了所述网页文件源代码中是否存在网页后门,所述分类模型是由预先获取的作为特征向量样本训练得到的,所述特征向量样本的数据结构与所述特征向量的数据结构相同。
可选的,所述规则库包括多条规则,所述主观特征提取模块用于:
分别利用所述规则库中的每条规则对所述网页文件源代码进行特征匹配;
记录每条规则的匹配结果,匹配结果由数值表示;
按照每条规则在所述规则库中的顺序对所述匹配结果进行排序,得到主观特征向量。
可选的,所述客观特征值包括以下至少一种:
所述网页文件源代码的单词数,所述网页文件源代码的符号数,所述网页文件源代码的空白行数,所述网页文件源代码的压缩率,所述网页文件源代码的最长单词的字符数。
可选的,还包括分词处理模块,用于:
对所述网页文件源代码进行分词处理。
基于上述任意装置实施例,可选的,所述分类模型为随机森林模型。
第三方面,基于同一发明构思,本说明书实施例提供一种网页后门的检测设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意方法实施例的步骤。
第四方面,基于同一发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方实施例的步骤。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。