发明内容
本说明书实施例提供及一种网页后门检测方法、装置、设备及存储介质,较之基于正则表达式的检测方法,其实现方式简单灵活,可有效对抗网页后门变种。
第一方面,本说明书实施例提供一种网页后门检测方法,该方法包括:
通过监测目标主机与浏览器之间的网络流量获取html(超级文本标记语言)文件;
从所述html文件中提取html标签,得到按照在所述html文件中的顺序排列的html标签序列,所述html标签序列构成所述html文件的html骨架;
利用预先建立的html骨架模型对所述html骨架进行匹配,所述html骨架模型是以多个html骨架为样本进行训练得到的;
根据匹配结果判断所述html文件是否为网页后门文件。
可选的,所述html骨架模型是通过提取已知的网页后门文件的html骨架,以所述已知的网页后门文件的html骨架为样本进行训练得到的。
可选的,所述匹配结果为匹配度的取值,所述根据匹配结果判断所述html文件是否为网页后门文件,包括:
将所述匹配度的取值与设定的阈值进行比较;
若所述匹配度的取值超过设定的阈值,判断所述html文件为网页后门文件。
可选的,若所述匹配度的取值未超过设定的阈值,该方法还包括:
提取所述html文件中标签的属性信息,标签的属性信息包括标签的属性和属性值;利用预先建立的属性信息模型分别对所述标签的属性信息进行匹配;根据匹配结果判断所述html文件是否为网页后门文件;
或者,
对所述html文件进行分段处理,得到多个html片段;利用预先建立的片段哈希模型分别对每个html片段进行匹配;根据匹配结果判断所述html文件是否为网页后门文件。
基于上述任意方法实施例,可选的,所述利用预先建立的html骨架模型对所述html骨架进行匹配之前,该方法还包括:按照预定的规则将html标签中的特定字符串替换为标准字符串;
建立所述html骨架模型时,按照所述预定的规则将作为样本的html骨架中的html标签中的特定字符串替换为标准字符串。
第二方面,本说明书实施例提供一种网页后门检测装置,包括:
Html文件获取模块,用于通过监测目标主机与浏览器之间的网络流量获取html文件;
Html骨架提取模块,用于从所述html文件中提取html标签,得到按照在所述html文件中的顺序排列的html标签序列,所述html标签序列构成所述html文件的html骨架;
模型匹配模块,用于利用预先建立的html骨架模型对所述html骨架进行匹配,所述html骨架模型是以多个html骨架为样本进行训练得到的;
网页后门检测模块,用于根据匹配结果判断所述html文件是否为网页后门文件。
可选的,所述html骨架模型是通过提取已知的网页后门文件的html骨架,以所述已知的网页后门文件的html骨架为样本进行训练得到的。
可选的,所述网页后门检测模块用于:
将所述匹配度的取值与设定的阈值进行比较;
若所述匹配度的取值超过设定的阈值,判断所述html文件为网页后门文件。
可选的,若所述匹配度的取值未超过设定的阈值,还包括第二检测模块,用于:
提取所述html文件中各个标签的属性信息,标签的属性信息包括标签的属性和属性值;利用预先建立的属性信息模型分别对每个标签的属性信息进行匹配;根据匹配结果判断所述html文件是否为网页后门文件;
或者,
对所述html文件进行分段处理,得到多个html片段;利用预先建立的片段哈希模型分别对每个html片段进行匹配;根据匹配结果判断所述html文件是否为网页后门文件。
第三方面,本说明书实施例提供一种网页后门检测设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过监测目标主机与浏览器之间的网络流量获取html文件;
从所述html文件中提取html标签,得到按照在所述html文件中的顺序排列的html标签序列,所述html标签序列构成所述html文件的html骨架;
利用预先建立的html骨架模型对所述html骨架进行匹配,所述html骨架模型是以多个html骨架为样本进行训练得到的;
根据匹配结果判断所述html文件是否为网页后门文件。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过监测目标主机与浏览器之间的网络流量获取html文件;
从所述html文件中提取html标签,得到按照在所述html文件中的顺序排列的html标签序列,所述html标签序列构成所述html文件的html骨架;
利用预先建立的html骨架模型对所述html骨架进行匹配,所述html骨架模型是以多个html骨架为样本进行训练得到的;
根据匹配结果判断所述html文件是否为网页后门文件。
本说明书实施例有益效果如下:
发明人在实现本发明的过程中,通过创造性劳动发现:网页后门文件的html骨架与正常的html骨架不同,即网页后门文件的html标签排序方式区别于正常的html标签排序方式,且有迹可循。因此,可以通过训练html骨架得到html骨架模型,进而对待识别的html文件的html骨架进行模型匹配,从而判断该html文件是否为网页后门文件,实现了网页后门的识别。另外,网页后门的变种通常是改变渲染效果等方式实现的,这些改变通常不涉及html骨架的改变,因此,采用本说明书实施例提供的检测方法,可有效对抗网页后门的变种。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本说明书实施例提供的技术方案应用于网络的流量层,可以在网关处实现,也可以在具备网关功能的设备上实现,还可以在任何能够监测到网络流量的设备上实现。以在网关上采用本说明书实施例提供的方法为例,如图1所示,网关101监测目标主机102与浏览器103之间的网络流量,从中获取html文件,即以开始标签<html>开始,以结束标签</html>结束的html代码;提取该html文件的html骨架,所谓html骨架,即按序排列的html标签序列;利用预先建立的html骨架模型对提取得到的html骨架进行匹配,根据匹配结果进行网页后门识别。
其中,目标主机可以是提供各种服务的服务器,也可以是能够实现特定功能的个人计算机,还可以是其他能够提供网络服务的网络设备。目标主机可以接收浏览器发送过来的用于向目标主机发起请求服务的请求数据,根据请求数据进行相应的数据处理以获得响应数据,并将响应数据反馈给浏览器。浏览器可以运行在具备显示功能并且支持交互功能的各种电子设备上,包括但不限于智能手机、平板电脑、个人计算机以及台式计算机等。
本说明书实施例提供的方法可以但不仅限于对webshell进行检测。
下面该将结合具体应用场景,分别从方法、装置、设备、存储介质的角度对本说明书实施例提供的技术方案进行详细描述。
第一方面,本说明书实施例提供一种网页后门检测方法,请参考图2,包括:
步骤202、通过监测目标主机与浏览器之间的网络流量获取html文件。
具体的,可以采用网络嗅探方式监测网络流量,也可以通过网络端口镜像方式监测。网络嗅探方式是指将目标主机的网卡设置为混杂模式,通过调用网络截包工具来捕获目标主机的网路流量。网络端口镜像方式是指将目标主机的采集端口映射到另一端口,对数据进行实时拷贝,从而获得目标主机的网络流量。当然,监测网络流量的具体实现方式并不限于上述两种方式,本实施例对此不作限定。
对于监测到的网络流量,可以但不仅限于通过识别开始标签<html>和结束标签</html>获取html文件。
步骤204、从上述html文件中提取html标签,得到按照在该html文件中的顺序排列的html标签序列,该html标签序列构成该html文件的html骨架。
该步骤的实现方式既可以是在html文件中识别标签(即提取标签),并删除标签之间的内容,从而得到html骨架;也可以是在从html文件中识别标签,并利用识别得到的标签,按照在html文件中的顺序构建html标签序列,从而得到html骨架。
其中,通过识别尖括号的方式进行标签识别。应当指出的是,此处识别的尖括号是html标签符号,在html文档中直接以“<”“>”形式出现,而非标签属性值或内容中的尖括号。若在标签属性值或内容中需要出现尖括号,在html文件中通常编码为特殊符号,例如,“<”被编码为“<”。
步骤206、利用预先建立的html骨架模型对上述html骨架进行匹配。
其中,html骨架模型是以多个html骨架为样本进行训练得到的。
作为样本的html骨架的定义参见上述描述,此处不再赘述。
步骤208、根据匹配结果判断上述html文件是否为网页后门文件。
通过训练html骨架得到html骨架模型,进而对待识别的html文件的html骨架进行模型匹配,从而判断该heml文件是否为网页后门文件,实现了网页后门的识别。另外,网页后门的变种通常是改变渲染效果等方式实现的,这些改变通常不涉及html骨架的改变,因此,采用本说明书实施例提供的检测方法,可有效对抗网页后门的变种。
本说明书实施例提供的方法,不对建立html骨架模型使用的样本、建模方法、匹配算法进行限定。
对于建模所使用的样本,优选的,可以获取大量已知的网页后门文件,提取这些网页后门文件的html骨架,以这些已知网页后门文件的html骨架作为样本进行模型训练。采用这种方式训练得到的html骨架模型很好的描述了网页后门文件的html骨架特征(即html标签的排序规律)。相应的,采用这种方式得到的html骨架模型进行模型匹配时,匹配结果可以为表示匹配度的取值,通常,取值越大,表示匹配度越高,意味着html文件是网页后门文件的概率越高。相应的,上述步骤208具体实现方式可以是:将匹配度的取值与设定的阈值进行比较;若匹配度的取值超过设定的阈值,判断html文件为网页后门文件。
其中,上述阈值可以是经验值,也可以通过仿真等方式计算得到。
应当指出的是,由于取值的大小,以及取值所表示的含义是由模型匹配算法决定的。在采用某些模型匹配算法时,也可能存在取值越低,匹配度越高的情况。
相应的,若匹配度的取值越高,表示匹配度越高,那么,超过阈值是指大于或等于阈值;若匹配度的取值越高,表示匹配度越低,那么,超过阈值是指小于或等于阈值。
除了以已知网页后门文件的html骨架作为样本进行模型训练,还可以以已知的正常html文件的html骨架作为样本进行模型训练。采用这种方式训练得到的html骨架模型很好的描述了正常html文件的html骨架特征(即html标签的排序规律)。相应的,采用这种方式得到的html骨架模型进行模型匹配时,匹配结果可以为表示匹配度的取值,通常,取值越大,表示匹配度越高,意味着html文件是正常html文件的概率越高,反之,取值越小,表示匹配度越低,意味着html文件是网页后门文件的概率越高。相应的,上述步骤208具体实现方式可以是:将匹配度的取值与设定的阈值进行比较;若匹配度的取值超过设定的阈值,判断html文件为网页后门文件。在该实现方式中,若匹配度的取值越高,表示匹配度越高,那么,超过阈值是指小于阈值;若匹配度的取值越高,表示匹配度越低,那么,超过阈值是指大于或等于阈值。
无论采用哪种类型的html骨架作为样本,以及采用何种建模方法,在进行模型匹配时,均可以采用现有的匹配算法实现,例如哈希匹配,其具体实现方式在此不赘述。
若上述匹配度的取值未超过设定的阈值,则意味着通过上述方式未检测出html文件是网页后门文件,本次检测结束。
应当指出的是,现有的任何网页后门检测方式都无法完美地检测到所有的网页后门文件,均存在漏报的可能。为了降低漏报的风险,在使用上述说明书实施例提供的方法未检测出网页后门文件时,可以使用其他检测方式继续针对该html文件进行网页后门检测。
可以采用现有的任意一种或多种检测方式依次进行网页后门检测。
优选的,还可以采用本说明书实施例提供的以下两种检测方法依次进行网页后门检测,或采用其中任意一种检测方法。
基于html属性信息的网页后门检测方法:提取上述html文件中标签的属性信息,标签的属性信息包括标签的属性和属性值;利用预先建立的属性信息模型对标签的属性信息进行匹配;根据匹配结果判断该html文件是否为网页后门文件。
基于片段哈希的网页后门检测方法:对上述html文件进行分段处理,得到多个html片段;利用预先建立的片段哈希模型分别对html片段进行匹配;根据匹配结果判断该html文件是否为网页后门文件。
基于html属性信息的网页后门检测方法中,html标签的属性是成对出现的,且格式为name="value"。因此,可以通过识别等号来提取属性信息。例如,首先进行分词处理,然后识别等号,提取等号左边的字符串作为属性名称,识别等号右边的引号,提取引号中间的内容作为属性值。
应当指出的是,一个html标签可能有多个属性,也就是说,一个html标签的属性信息可能包括多对属性名称和属性值。
本说明书实施例提供的方法,不对建立html属性信息模型使用的样本、建模方法、匹配算法进行限定。
对于建模所使用的样本,优选的,可以获取大量已知的网页后门文件,提取这些网页后门文件的html标签的属性信息,以这些已知网页后门文件的html标签的属性信息作为样本进行模型训练。采用这种方式训练得到的html属性信息模型很好的描述了网页后门文件的html标签的属性特征。
更具体的,一个样本可以是一个标签的属性信息,该标签的多个属性共同作为一个样本。除此之外,一个样本还可以是网页后门文件中提取出的标签的属性信息组合,遍历所有组合形式,每种组合形式的属性信息均构成一个样本。
以单个标签的属性信息作为样本构建html属性信息模型为例,相应的,进行模型匹配时,以单个html标签为单位,利用预先建立的html属性信息模型对提取得到的各个html标签的属性信息进行匹配,每个html标签对应一个匹配结果,匹配结果可以为表示匹配度的取值,通常,取值越大,表示匹配度越高,意味着html文件是网页后门文件的概率越高。相应的,将最高匹配度的取值与设定的阈值进行比较;若匹配度的取值超过设定的阈值,判断html文件为网页后门文件。
例如,从待检测的html文件中提取出N条标签的属性信息,则逐个对这N条标签的属性信息进行匹配,得到N个匹配度的取值,取其中的最大值,将最大值与设定的阈值进行比较,若该最大值大于设定的阈值,则该html文件为网页后门文件。
其中,上述阈值可以是经验值,也可以通过仿真等方式计算得到。
应当指出的是,由于取值的大小,以及取值所表示的含义是由模型匹配算法决定的。在采用某些模型匹配算法时,也可能存在取值越低,匹配度越高的情况。
相应的,若匹配度的取值越高,表示匹配度越高,那么,超过阈值是指大于或等于阈值;若匹配度的取值越高,表示匹配度越低,那么,超过阈值是指小于或等于阈值。
除了以已知网页后门文件的html标签的属性信息作为样本进行模型训练,还可以以已知的正常html文件的html标签的属性信息作为样本进行模型训练。采用这种方式训练得到的html骨架模型很好的描述了正常html文件的html标签属性特征。相应的,采用这种方式得到的html属性信息模型进行模型匹配时,匹配结果可以为表示匹配度的取值,通常,取值越大,表示匹配度越高,意味着html文件是正常html文件的概率越高,反之,取值越小,表示匹配度越低,意味着html文件是网页后门文件的概率越高。相应的,将最高匹配度的取值与设定的阈值进行比较;若匹配度的取值超过设定的阈值,判断html文件为网页后门文件。在该实现方式中,若匹配度的取值越高,表示匹配度越高,那么,超过阈值是指小于阈值;若匹配度的取值越高,表示匹配度越低,那么,超过阈值是指大于或等于阈值。
无论采用哪种类型的html标签的属性信息作为样本,以及采用何种建模方法,在进行模型匹配时,均可以采用现有的匹配算法实现,例如哈希匹配,其具体实现方式在此不赘述。
基于片段哈希的网页后门检测方法中,分段的依据有多种,为了提高检测的准确度,优选的,以大于号作为分段标识,每检测到大于号即分段。一个html片段即两个大于号之间的内容。
本说明书实施例提供的方法,不对建立片段哈希模型使用的样本、建模方法、匹配算法进行限定。
对于建模所使用的样本,优选的,可以获取大量已知的网页后门文件,对这些网页后门文件进行分段处理,以这些已知网页后门文件的html片段作为样本进行模型训练。采用这种方式训练得到的片段哈希模型很好的描述了网页后门文件的特征。相应的,进行模型匹配时,每个html片段均进行模型匹配,得到片段哈希值,根据片段哈希值判断该html片段是否匹配,例如,片段哈希值大于设定的匹配阈值,则该html片段匹配,通常,匹配的html片段数量越多,意味着html文件是网页后门文件的概率越高。相应的,将命中率与设定的阈值进行比较,所述命中率为匹配的html片段数量与html片段总数的比值;若所述命中率超过设定的阈值,判断所述html文件为网页后门文件。还可以是:将匹配的html片段数量与设定的阈值进行比较,若超过设定的阈值,判断该html文件为网页后门文件。
其中,超过设定的阈值是指大于或等于设定的阈值。
其中,上述阈值可以是经验值,阈值可以是固定的,也可以根据待检测的html文件的html片段总数动态调整。
本说明书实施例不对阈值调整的具体实现方式进行限定。例如,可以根据预先建立的html片段总数与阈值的函数关系调整,也可以根据预先建立的html片段总数与阈值的对应关系表调整。
除了以已知网页后门文件的html片段作为样本进行模型训练,还可以以已知的正常html文件的html片段作为样本进行模型训练。采用这种方式训练得到的片段哈希模型很好的描述了正常html文件的特征。相应的,采用这种方式得到的片段哈希模型进行模型匹配时,匹配的html片段数量越多,意味着html文件是正常html文件的概率越高,反之,意味着html文件是网页后门文件的概率越高。相应的,将命中率与设定的阈值进行比较;若命中率小于设定的阈值,判断html文件为网页后门文件。
无论采用哪种类型的html片段作为样本,以及采用何种建模方法,在进行模型匹配时,均可以采用现有的匹配算法实现,例如哈希匹配,其具体实现方式在此不赘述。
为了更好地对抗网页后门变种,在上述任意方法实施例中,在步骤206之前,还可以按照预定的规则将html标签中的特定字符串替换为标准字符串;相应的,在建立html骨架模型时,按照该预定的规则将作为样本的html骨架中的html标签中的特定字符串替换为标准字符串。
上述过程可以称为预处理过程,该预处理过程可以在提取html标签之前进行,也可以在提取html标签之后进行。
在标签的属性值、标签之间的内容中,会出现诸如数字等特定字符串,在不同的html文件中,特定字符串的具体内容不尽相同(例如不同数字取值),但不属于能够区分正常html文件和网页后门文件的特征,将这些特定字符串进行分类,并将每类字符串用对应的标准字符串代替,并不会对html文件的识别带来影响,反而会提高匹配时的准确度和效率。
上述预定的规则即描述了每类特定字符串的识别规则以及每类特定字符串对应的标准字符串。例如,在html文件中,字符串“123456”和字符串“654321”均为数字,被替换为标准字符串“digital”。
若基于html骨架模型未检测到网页后门文件,继续基于html属性信息模型和/或基于片段哈希模型检测网页后门,后两种检测方式也需要进行预处理操作,优选的,可以在基于html骨架模型的检测过程中,一并进行预处理操作,以提高后续处理效率。例如,基于html属性信息模型进行网页后门检测时,除了进行上述标准字符串替换的预处理操作之外,还可以过滤掉设定的通用标签,即仅提取非通用html标签的属性信息,其中,通用标签是指正常html文件和网页后门文件均具有的标签。通用标签可以通过通用标签名单维护。相应的,在建立html属性信息模型时,也可以仅提取非通用html标签的属性信息。
第二方面,基于同一发明构思,本说明书实施例提供一种网页后门检测装置,请参考图3,包括:
Html文件获取模块301,用于通过监测目标主机与浏览器之间的网络流量获取目标主机的超级文本标记语言html文件;
Html骨架提取模块302,用于从所述html文件中提取html标签,得到按照在所述html文件中的顺序排列的html标签序列,所述html标签序列构成所述html文件的html骨架;
模型匹配模块303,用于利用预先建立的html骨架模型对所述html骨架进行匹配,所述html骨架模型是以多个html骨架为样本进行训练得到的;
网页后门检测模块304,用于根据匹配结果判断所述html文件是否为网页后门文件。
通过训练html骨架得到html骨架模型,进而对待识别的html文件的html骨架进行模型匹配,从而判断该html文件是否为网页后门文件,实现了网页后门的识别。另外,网页后门的变种通常是改变渲染效果等方式实现的,这些改变通常不涉及html骨架的改变,因此,采用本说明书实施例提供的检测方法,可有效对抗网页后门的变种。
可选的,所述html骨架模型是通过提取已知的网页后门文件的html骨架,以所述已知的网页后门文件的html骨架为样本进行训练得到的。
可选的,所述网页后门检测模块用于:将所述匹配度的取值与设定的阈值进行比较;若所述匹配度的取值超过设定的阈值,判断所述html文件为网页后门文件。
可选的,若所述匹配度的取值未超过设定的阈值,还包括第二检测模块,用于:
提取所述html文件中各个标签的属性信息,标签的属性信息包括标签的属性和属性值;利用预先建立的属性信息模型分别对每个标签的属性信息进行匹配;根据匹配结果判断所述html文件是否为网页后门文件;
或者,
对所述html文件进行分段处理,得到多个html片段;利用预先建立的片段哈希模型分别对每个html片段进行匹配;根据匹配结果判断所述html文件是否为网页后门文件。
基于上述任意装置实施例,可选的,还包括预处理模块:按照预定的规则将html标签中的特定字符串替换为标准字符串;建立所述html骨架模型时,按照所述预定的规则将作为样本的html骨架中的html标签中的特定字符串替换为标准字符串。
第三方面,基于同一发明构思,本说明书实施例提供一种网页后门检测设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意方法实施例的步骤。
本说明书实施例提供的网页后门检测设备可以但不仅限于是网关、具备网关功能的设备,或者其他可以监测到网络流量的设备。
第四方面,基于同一发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方实施例的步骤。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。