一种webshell检测方法及装置与流程

文档序号:17539430发布日期:2019-04-29 14:23阅读:185来源:国知局
一种webshell检测方法及装置与流程
本发明涉及互联网
技术领域
,尤其涉及一种webshell检测方法及装置。
背景技术
:随着网络技术的发展,用户逐渐倾向于通过网络传递信息以及保存隐私数据,比如,用户可以通过服务器访问全球局域网(worldwideweb,web)网页,并可以在web网页上执行下载或上传等操作;相应地,web网页所属的源网站可以根据用户的操作为用户提供服务。然而,由于web所提供的功能日益增多与复杂,安全隐患也由此增多,比如黑客可以在入侵源网站后,将webshell数据(比如asp、php木马后门文件)放置在源网站对应的web目录中,与正常的web后台程序混合在一起,通过访问上传的webshell后门路径,从而可以通过源网站运行webshell数据形成webshell网页,并能够通过webshell网页实现上传或下载文件、查看数据库、执行任意程序命令等操作,窃取用户的隐私数据或信息,攻击服务器资源。由此可知,实现对webshell数据的准确检测,可以有效保证用户的隐私。为了准确检测webshell数据,现有技术通常将webshell数据的后台程序和正常web数据的后台程序进行对比,确定webshell数据中包括的与正常web数据不同的一项或多项程序代码,比如,具有不同定义的函数代码、可疑行为序列、可疑特征字符等,并可以根据这些不同的后台程序对待检测样本进行分析,确定待检测样本是否为webshell数据。然而,后台程序通常具有多种编程语言,且每种编程语言也可以具有不同的编码风格和语言类型,在实际操作中,很难通过分析后台程序确定待检测样本是否为webshell数据。举例来说明,待检测样本为webshell数据,webshell数据的后台程序中包括可疑函数system,黑客可以通过将待检测样本中包含的system函数名修改为sys_tem,或者将system函数的程序拆分为sys_函数子程序和_tem函数子程序,使得待检测样本避开后台程序检测,从而使得待检测样本的检测结果为正常web数据。由此可知,通过后台程序检测的方法对待检测样本进行检测,可能会使得检测的准确性不高。综上,目前亟需一种webshell检测方法,用以提高对websell网页数据检测的准确性。技术实现要素:本发明实施例提供一种webshell检测方法,用以提高对websell网页数据检测的准确性。本发明实施例提供的一种webshell检测方法,所述方法包括:获取m个样本数据,所述m个样本数据包括p个黑样本数据和q个白样本数据;所述p个黑样本数据为webshell网页数据,所述q个白样本数据为正常web网页数据;针对于所述m个样本数据中的每个样本数据,解析得到所述样本数据对应的dom树型结构,所述dom树形结构中包括多个元素和所述多个元素的文本值和属性;针对于t个预设标签中的每个预设标签,根据所述多个元素的属性,确定出所属的标签为所述预设标签的元素;根据所述多个元素中所属的标签分别为所述t个预设标签的元素的个数,确定所述样本数据对应的特征序列;使用所述p个黑样本数据的特征序列和所述q个白样本数据的特征序列进行模型训练,得到二分类预测模型;使用所述二分类预测模型对待检测样本数据的特征序列进行预测,确定所述待检测样本数据是否为webshell网页数据。可选地,所述m个样本数据为通过如下方式得到的:获取m个测试数据,所述m个测试据包括p个webshell后台数据和q个正常web后台数据;针对于所述m个测试数据中的每个测试数据,获取运行所述测试数据得到的所述测试数据对应的前端网页;对所述测试数据对应的前端网页进行解析,得到所述测试数据对应的前端网页数据;若所述测试数据为webshell后台数据,则所述测试数据对应的前端网页数据为webshell网页数据;若所述测试数据为正常web后台数据,则所述测试数据对应的前端网页数据为正常web网页数据。可选地,所述样本数据的特征序列包括2*t个分量,所述特征序列的第1~t个分量为所述t个预设标签分别对应的值,所述每个预设标签对应的值是根据所述多个元素中所属的标签为所述每个预设标签的元素的个数生成的;所述特征序列的第t+1~2*t个分量为所述多个元素中所属的标签分别为所述t个预设标签的元素的个数。可选地,所述样本数据为白样本数据;针对于所述t个预设标签中的任一预设标签,所述预设标签对应的值通过如下方式得到:将所述多个元素中所属的标签为所述预设标签的元素的文本值添加到所述预设标签对应的白样本特征库中;根据所述预设标签对应的白样本特征库的权重和所述预设标签对应的白样本特征库中包括的所述样本数据的文本值的个数,确定所述预设标签对应的值。可选地,所述样本数据为黑样本数据;针对于所述t个预设标签中的任一预设标签,所述预设标签对应的值通过如下方式得到:针对于所述多个元素中所属的标签为所述预设标签的每个元素,若所述元素的文本值与预设标识匹配,则将所述元素的文本值添加至所述预设标签对应的高危黑样本特征库中;若所述元素的文本值与所述预设标识不匹配,则将所述元素的文本值添加至所述预设标签对应的普通黑样本特征库中;根据所述预设标签对应的高危黑样本特征库的权重、所述预设标签对应的普通黑样本特征库的权重、所述预设标签对应的高危黑样本特征库中包括的所述样本数据的文本值的个数和所述预设标签对应的普通黑样本特征库中包括的所述样本数据的文本值的个数,确定所述预设标签对应的值。本发明实施例提供的一种webshell检测装置,所述装置包括:获取模块,用于获取m个样本数据,所述m个样本数据包括p个黑样本数据和q个白样本数据;所述p个黑样本数据为webshell网页数据,所述q个白样本数据为正常web网页数据;确定模块,用于针对于所述m个样本数据中的每个样本数据,解析得到所述样本数据对应的dom树型结构,所述dom树形结构中包括多个元素和所述多个元素的文本值和属性;针对于t个预设标签中的每个预设标签,根据所述多个元素的属性,确定出所属的标签为所述预设标签的元素;根据所述多个元素中所属的标签分别为所述t个预设标签的元素的个数,确定所述样本数据对应的特征序列;训练模块,用于使用所述p个黑样本数据的特征序列和所述q个白样本数据的特征序列进行模型训练,得到二分类预测模型;预测模块,用于使用所述二分类预测模型对待检测样本数据的特征序列进行预测,确定所述待检测样本数据是否为webshell网页数据。可选地,所述获取模块还用于:获取m个测试数据,所述m个测试据包括p个webshell后台数据和q个正常web后台数据;针对于所述m个测试数据中的每个测试数据,获取运行所述测试数据得到的所述测试数据对应的前端网页;对所述测试数据对应的前端网页进行解析,得到所述测试数据对应的前端网页数据;若所述测试数据为webshell后台数据,则所述测试数据对应的前端网页数据为webshell网页数据;若所述测试数据为正常web后台数据,则所述测试数据对应的前端网页数据为正常web网页数据。可选地,所述样本数据的特征序列包括2*t个分量,所述特征序列的第1~t个分量为所述t个预设标签分别对应的值,所述每个预设标签对应的值是所述确定模块根据所述多个元素中所属的标签为所述每个预设标签的元素的个数生成的;所述特征序列的第t+1~2*t个分量为所述多个元素中所属的标签分别为所述t个预设标签的元素的个数。可选地,所述样本数据为白样本数据;所述确定模块用于:针对于所述t个预设标签中的每个预设标签,将所述多个元素中所属的标签为所述预设标签的元素的文本值添加到所述预设标签对应的白样本特征库中;根据所述预设标签对应的白样本特征库的权重和所述预设标签对应的白样本特征库中包括的所述样本数据的文本值的个数,确定所述预设标签对应的值。可选地,所述样本数据为黑样本数据;所述确定模块用于:针对于所述t个预设标签中的每个预设标签和所述多个元素中所属的标签为所述预设标签的每个元素,若所述元素的文本值与预设标识匹配,则将所述元素的文本值添加至所述预设标签对应的高危黑样本特征库中;若所述元素的文本值与所述预设标识不匹配,则将所述元素的文本值添加至所述预设标签对应的普通黑样本特征库中;根据所述预设标签对应的高危黑样本特征库的权重、所述预设标签对应的普通黑样本特征库的权重、所述预设标签对应的高危黑样本特征库中包括的所述样本数据的文本值的个数和所述预设标签对应的普通黑样本特征库中包括的所述样本数据的文本值的个数,确定所述预设标签对应的值。本发明的上述实施例中,获取m个样本数据,m个样本数据可以包括p个webshell网页数据和q个正常web网页数据;解析得到每个样本数据对应的dom树型结构,dom树形结构中包括多个元素和多个元素的文本值和属性;根据t个预设标签的元素的个数,确定每个样本数据对应的特征序列,并使用p个黑样本数据的特征序列和q个白样本数据的特征序列进行模型训练,得到二分类预测模型;进一步地,使用二分类预测模型对待检测样本数据的特征序列进行预测,确定待检测样本数据是否为webshell网页数据。本发明实施例通过分析webshell网页数据和正常web网页数据在前端网页上显示出的区别特征,并基于该区别特征进行模型训练,可以得到基于前端页面特征的二分类预测模型,相比于现有技术基于后台程序检测webshell网页数据的方式来说,能够避免通过修改后台程序所导致的检测不准确的技术问题,使得模型训练得到的二分类模型较为准确,从而通过采用基于前端网页特征训练得到的二分类预测模型对待检测样本进行预测,可以提高websell网页数据检测的准确性;此外,本发明实施例中的样本数据为通过运行后台程序得到的前端网页数据,在后台程序的功能不发生变化的情况下,对后台程序作文字性的修改不会影响前端网页数据,从而使得即使webshell数据的后台程序发生变化,采用本发明实施例中的方案也可以检测出webshell数据。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种webshell检测方法对应的流程示意图;图2为本发明实施例中消息处理方法的整体流程图;图3为本发明实施例提供的一种webshell检测装置的结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例中的方法可以包括模型训练的过程(训练阶段)和使用训练得到的模型确定待检测样本是否为webshell网页数据的过程(预测阶段),或者还包括其他的过程,比如,对待检测样本进行校验的过程等,具体不作限定。图1为本发明实施例提供的一种webshell检测方法对应的流程示意图,该方法包括:步骤101,获取m个样本数据。此处,m个样本数据可以包括p个黑样本数据和q个白样本数据,其中,p个黑样本数据可以为webshell网页数据,q个白样本数据可以为正常web网页数据。本发明实施例中,m个样本数据的格式可以有多种,比如可以为超文本预处理器(hypertexthypertextpreprocessor,php)格式,或者可以为动态服务器页面(activeserverpages,asp)格式,或者也可以为java服务器页面(javaserverpages,jsp)格式,或者还可以为通用网关接口(commongatewayinterface,cgi)格式。具体实施中,p个黑样本数据的格式可以相同,或者也可以不同;q个白样本数据的格式可以相同,或者也可以不同,具体不作限定。步骤102,确定m个样本数据中每个样本数据对应的特征序列。样本数据a可以为m个样本数据中的任一样本数据,下面以样本数据a为例,描述样本数据a对应的特征序列的确定过程,m个样本数据中的其它样本数据对应的特征序列可以参照样本数据a对应的特征序列的确定过程进行实现。本发明实施例中,在获取到样本数据a后,可以对样本数据a进行解析得到样本数据a对应的dom树形结构。在一种可能的实现方式中,可以预先设置测试服务器和测试服务器对应的浏览器,测试服务器可以为web服务器,测试服务器对应的浏览器可以为web浏览器,测试服务器对应的浏览器可以设置于测试服务器中,或者也可以设置于其它设备中,具体不作限定。以测试服务器对应的浏览器设置于测试服务器中为例,具体实施中,可以将样本数据a复制或拷贝至测试服务器的存储空间中,并使用测试服务器运行样本数据a,相应地,测试服务器内设置的浏览器上会显示样本数据a对应的前端网页;此时,可以基于网络爬虫技术按照预设规则遍历样本数据a对应的前端网页,获取样本数据a对应的前端网页的代码。在一个示例中,样本数据a对应的前端网页的代码可以为超文本标记语言(hypertextmarkuplanguage,html)格式。图2为本发明实施例提供的一种样本数据a对应的dom树形结构示意图,如图2所示,样本数据a对应的dom树形结构中可以包括多个元素(如图2所示意出的元素201~元素210)和多个元素的文本值和属性。在一个示例中,如图2所示,元素201的文本值为“点击”,属性为超链接,也就是说,在样本数据a对应的前端网页上,存在一个文本值为“点击”的超链接元素201;在又一个示例中,元素202的文本值为“上传”,属性为按钮,也就是说,在样本数据a对应的前端网页上,存在一个文本值为“上传”的按钮元202素;在又一个示例中,元素207的属性为加粗,也就是说,在样本数据a对应的前端网页上,存在一个文本值加粗的元素207。需要说明的是,图2仅为示意性的描述样本数据a对应的dom树形结构,在其它可能的实施例中,样本数据a对应的dom树形结构包括的元素个数、元素的文本值和元素的属性均可以有多种可能,具体不作限定。在一种可能的实现方式中,可以预先设置t个预设标签,t个预设标签可以为本领域技术人员根据实际经验进行设置,或者也可以根据实验进行确定。本发明实施例中,通过分析webshell网页数据和正常web网页数据分别对应的前端网页中包括的多个元素的区别,确定t个预设标签为超链接标签、加粗标签、按钮标签、字体格式标签和表单标签中的至少一个。本发明实施例中,超链接标签可以用于标识前端网页中的超链接元素,用户触发超链接元素可以跳转至超链接元素所对应的超链接地址,在webshell网页数据对应的前端网页中超链接元素所对应的超链接地址可能为攻击者的网站,而正常web网页数据对应的前端网页中超链接元素所对应的超链接地址为源网站。加粗标签可以用于标识前端网页中文本值加粗的元素,webshell网页数据对应的前端网页中文本值加粗的元素通常是一些围绕这webshell功能点以及介绍的字符串。按钮标签可以用于标识前端网页中提示用户执行预设操作的元素,webshell网页数据对应的前端网页中按钮元素可以为攻击者可视化攻击提供便利,其内容围绕着webshell的功能,例如操作数据库,远程代码执行,遍历目录,操作文件系统等。字体格式标签可以用于标识前端网页中文本值字体大小和色彩不同的元素,webshell网页数据对应的前端网页中文本值字体格式不同的元素可以为攻击者显示一些攻击相关的需要关注的元素。表单标签用于标识需要用户输入的元素,webshell网页数据对应的前端网页中通过表单来提供一些攻击功能模块,例如在服务器上执行命令,上传文件等。在一个示例中,webshell网页数据对应的前端网页中所属的标签为超链接标签、加粗标签、按钮标签、字体格式标签和表单标签的元素的个数比正常web网页数据对应的前端网页中所属的标签为超链接标签、加粗标签、按钮标签、字体格式标签和表单标签的元素的个数多。具体实施中,针对于t个预设标签中的每个预设标签,可以根据多个元素的属性,确定出所属的标签为预设标签的元素。举例说明,如图2所示,元素201的属性为超链接,则元素201所属的标签可以为超链接标签;元素202的属性为按钮,则元素202所属的标签可以为按钮标签;元素207的属性为加粗,则元素207所属的标签可以为加粗标签。在一个示例中,表1示意了样本数据a对应的dom树包括的多个元素与t个预设标签的对应关系。表1:一种多个元素与t个预设标签的对应关系预设标签元素超链接标签元素201、元素203加粗标签元素207按钮标签元素202、元素204、元素210字体格式标签元素205、元素206表单标签元素208、元素209如表1所示,样本数据a对应的dom树包括的多个元素中,所属的标签为超链接标签的元素为元素201和元素203,所属的标签为加粗标签的元素为元素207,所属的标签为按钮标签的元素为元素202、元素204和元素210,所属的元素为字体格式标签的元素为元素205和元素206,所属的元素为表单标签的元素为元素208和元素209。进一步地,可以根据多个元素中所属的标签分别为t个预设标签的元素的个数,确定样本数据a对应的特征序列。在一个示例中,样本数据a的特征序列可以包括2*t个分量,特征序列的第1~t个分量可以为t个预设标签分别对应的值,每个预设标签对应的值可以是根据多个元素中所属的标签为每个预设标签的元素的个数生成的;特征序列的第t+1~2*t个分量可以为多个元素中所属的标签分别为t个预设标签的元素的个数。举例说明,以表1为例,样本数据a的特征序列可以为[超链接标签的值,加粗标签的值,按钮标签的值,字体格式标签的值,表单标签的值;超链接标签中包括的元素个数,加粗标签中包括的元素个数,按钮标签中包括的元素个数,字体格式标签中包括的元素个数,表单标签中包括的元素个数],根据表1中的数据,样本数据a的特征序列可以为[超链接标签的值,加粗标签的值,按钮标签的值,字体格式标签的值,表单标签的值;2,1,3,2,2]。本发明实施例中,针对于t个预设标签中的任一预设标签,确定该预设标签对应的值的方式可以有多种,在一种可能的实现方式中,可以预先构建该预设标签对应的样本特征库,并根据该预设标签对应的样本特征库的权重和该预设标签对应的样本特征库中包括的样本数据a的文本值的个数,确定该预设标签对应的值。在一个示例中,若样本数据a为白样本数据,则可以将多个元素中所属的标签为该预设标签的元素的文本值添加到该预设标签对应的白样本特征库中;若样本数据a为黑样本数据,则可以将多个元素中所属的标签为该预设标签的元素的文本值添加到该预设标签对应的黑样本特征库中。本发明实施例中,还可以为该预设标签对应的白样本特征库和黑样本特征库设置权重,权重的值可以由本领域技术人员根据经验设置,或者也可以根据实验进行确定,具体不作限定。本发明实施例中,可以设置预设标签对应的白样本特征库的权重与预设标签对应的黑样本特征库的权重具有不同的符号,比如,预设标签对应的白样本特征库的权重为正数,预设标签对应的黑样本特征库的权重为负数;或者预设标签对应的白样本特征库的权重为负数,预设标签对应的黑样本特征库的权重为正数。进一步地,若样本数据a为白样本数据,该预设标签对应的值可以为该预设标签对应的白样本特征库的权重与该预设标签对应的白样本特征库中包括的样本数据a的文本值的个数的乘积;相应地,若样本数据a为黑样本数据,该预设标签对应的值可以为该预设标签对应的黑样本特征库的权重与该预设标签对应的黑样本特征库中包括的样本数据a的文本值的个数的乘积。举例来说明,如表1所示,针对于按钮标签,若样本数据a为白样本数据,则可以将元素202、元素204和元素210的文本值全部添加到按钮标签对应的白样本特征库中,若按钮标签对应的白样本特征库的权重为1,则按钮标签对应的值可以为1*3;此时,样本数据a对应的特征序列可以为[2,1,3,2,2,2,1,3,2,2]。相应地,若样本数据a为黑样本数据,则可以将元素202、元素204和元素210的文本值全部添加到按钮标签对应的黑样本特征库中,若按钮标签对应的黑样本特征库的权重为-1,则按钮标签对应的值可以为-1*3;此时,样本数据a对应的特征序列可以为[-2,-1,-3,-2,-2,-2,-1,-3,-2,-2]。在另一个示例中,若样本数据a为白样本数据,则可以将多个元素中所属的标签为该预设标签的元素的文本值添加到该预设标签对应的白样本特征库中;若样本数据a为黑样本数据,且元素的文本值与预设标识匹配,则可以将元素的文本值添加至该预设标签对应的高危黑样本特征库中;若样本数据a为黑样本数据库,且元素的文本值与预设标识不匹配,则可以将元素的文本值添加至该预设标签对应的普通黑样本特征库中。其中,预设标识可以用于标识webshell网页数据和正常web网页数据分别对应的前端网页中具有不同特征的元素的文本值,比如webshell名称文本值、webshell作者信息文本值、webshell回连、下载地址文本值等,具体实施中,预设标识可以由本领域技术人员根据经验进行设置。本发明实施例中,还可以为该预设标签对应的白样本特征库、高危黑样本特征库和普通黑样本特征库设置权重,权重的值可以由本领域技术人员根据经验设置,或者也可以根据实验进行确定,具体不作限定。本发明实施例中,预设标签对应的白样本特征库的权重与高危黑样本特征库的权重、普通黑样本特征库的权重可以具有不同的符号,比如,预设标签对应的白样本特征库的权重为正数,预设标签对应的高危黑样本特征库的权重和预设标签对应的普通黑样本特征库的权重均为负数;或者预设标签对应的白样本特征库的权重为负数,预设标签对应的高危黑样本特征库的权重和预设标签对应的普通黑样本特征库的权重均为正数。在一个示例中,预设标签对应的高危黑样本特征库的权重的值可以比预设标签对应的普通黑样本特征库的权重的值大,比如,预设标签对应的高危黑样本特征库的权重为5(或-5),预设标签对应的普通黑样本特征库的权重为2(或-2)。进一步地,若样本数据a为白样本数据,该预设标签对应的值可以为该预设标签对应的白样本特征库的权重与该预设标签对应的白样本特征库中包括的样本数据a的文本值的个数的乘积。若样本数据a为黑样本数据,则可以根据预设标签对应的高危黑样本特征库的权重、预设标签对应的普通黑样本特征库的权重、预设标签对应的高危黑样本特征库中包括的样本数据的文本值的个数和预设标签对应的普通黑样本特征库中包括的样本数据的文本值的个数,确定预设标签对应的值。具体地说,该预设标签对应的值可以为该预设标签对应的高危黑样本特征库的权重与该预设标签对应的高危黑样本特征库中包括的样本数据a的文本值的个数的乘积和该预设标签对应的普通黑样本特征库的权重与该预设标签对应的普通黑样本特征库中包括的样本数据a的文本值的个数的乘积之和。举例来说明,如表1所示,针对于按钮标签,若样本数据a为黑样本数据,且元素202和元素204为高危黑样本特征库中的元素,元素210为普通黑样本特征库中的元素,若按钮标签对应的高危黑样本特征库的权重为-5,普通黑样本特征库的权重为-2,则按钮标签对应的值可以为(-5)*2+(-2)*1,即为-12。若其他标签包括的元素均为高危黑样本特征库中的元素,此时,样本数据a对应的特征序列可以为[-10,-5,-12,-10,-10,2,1,3,2,2]。步骤103,使用p个黑样本数据的特征序列和q个白样本数据的特征序列进行模型训练,得到二分类预测模型。此处,可以采用支持向量机的模型训练系统,将p个黑样本数据的特征序列和q个白样本数据的特征序列分别输入模型训练系统,此时,模型训练系统可以将黑样本数据和白样本数据映射到五维特征空间,得到超平面。进一步地,模型训练系统可以通过调整得到的超平面的参数,使得模型训练出的超平面最为准确。具体地说,超平面可以将黑样本数据和白样本数据区分开,又称为二分类预测模型。举例来说,超平面的一侧可以为白样本空间,白样本数据位于白样本空间内;相应地,超平面的另一侧可以为黑样本空间,黑样本数据位于黑样本空间内。步骤104,使用二分类预测模型对待检测样本数据进行预测,确定待检测样本数据是否为webshell网页数据。上述步骤101至步骤103具体描述了模型训练阶段的实现,步骤104主要针对于使用二分类预测模型确定待检测样本数据是否为webshell网页数据(即预测阶段)的实现进行说明。本发明实施例中,可以在获取到待检测样本数据后,确定待检测样本数据对应的特征序列。此处,确定待检测样本数据对应的特征序列的方式可以参照步骤102中确定样本数据a对应的特征序列的方式进行实现,不再赘述。进一步地,可以使用二分类预测模型对待检测样本数据的特征序列进行预测,确定待检测样本数据为webshell网页数据或正常web网页数据。具体地说,将待检测样本数据的特征序列输入模型训练系统中,此时,模型训练系统可以将待检测样本数据映射在训练得到的二分类预测模型中。若待检测样本超平面的一侧,即待检测样本位于白样本空间中,则确定待检测样本为正常web网页数据;若待检测样本超平面的另一侧,即待检测样本位于黑样本空间中,则确定待检测样本为webshell网页数据。本发明的上述实施例中,获取m个样本数据,m个样本数据可以包括p个webshell网页数据和q个正常web网页数据;解析得到每个样本数据对应的dom树型结构,dom树形结构中包括多个元素和多个元素的文本值和属性;根据t个预设标签的元素的个数,确定每个样本数据对应的特征序列,并使用p个黑样本数据的特征序列和q个白样本数据的特征序列进行模型训练,得到二分类预测模型;进一步地,使用二分类预测模型对待检测样本数据的特征序列进行预测,确定待检测样本数据是否为webshell网页数据。本发明实施例通过分析webshell网页数据和正常web网页数据在前端网页上显示出的区别特征,并基于该区别特征进行模型训练,可以得到基于前端页面特征的二分类预测模型,相比于现有技术基于后台程序检测webshell网页数据的方式来说,能够避免通过修改后台程序所导致的检测不准确的技术问题,使得模型训练得到的二分类模型较为准确,从而通过采用基于前端网页特征训练得到的二分类预测模型对待检测样本进行预测,可以提高websell网页数据检测的准确性;此外,本发明实施例中的样本数据为通过运行后台程序得到的前端网页数据,在后台程序的功能不发生变化的情况下,对后台程序作文字性的修改不会影响前端网页数据,从而使得即使webshell数据的后台程序发生变化,采用本发明实施例中的方案也可以检测出webshell数据。针对上述方法流程,本发明实施例还提供一种模型训练的装置,该装置的具体内容可以参照上述方法实施。图3为本发明实施例提供的一种webshell检测装置的结构示意图,包括:获取模块301,用于获取m个样本数据,所述m个样本数据包括p个黑样本数据和q个白样本数据;所述p个黑样本数据为webshell网页数据,所述q个白样本为正常web网页数据;确定模块302,用于针对于所述m个样本数据中的每个样本数据,解析得到所述样本数据对应的dom树型结构,所述dom树形结构中包括多个元素和所述多个元素的文本值和属性;针对于t个预设标签中的每个预设标签,根据所述多个元素的属性,确定出所属的标签为所述预设标签的元素;根据所述多个元素中所属的标签分别为所述t个预设标签的元素的个数,确定所述样本数据对应的特征序列;训练模块303,用于使用所述p个黑样本数据的特征序列和所述q个白样本数据的特征序列进行模型训练,得到二分类预测模型。可选地,所述样本数据的特征序列包括2*t个分量,所述特征序列的第1~t个分量为所述t个预设标签分别对应的值,所述每个预设标签对应的值是所述确定模块302根据所述多个元素中所属的标签为所述每个预设标签的元素的个数生成的;所述特征序列的第t+1~2*t个分量为所述多个元素中所属的标签分别为所述t个预设标签的元素的个数。可选地,所述样本数据为白样本数据;所述确定模块302用于:针对于所述t个预设标签中的每个预设标签,将所述多个元素中所属的标签为所述预设标签的元素的文本值添加到所述预设标签对应的白样本特征库中;根据所述预设标签对应的白样本特征库的权重和所述预设标签对应的白样本特征库中包括的所述样本数据的文本值的个数,确定所述预设标签对应的值。可选地,所述样本数据为黑样本数据;所述确定模块302用于:针对于所述t个预设标签中的每个预设标签和所述多个元素中所属的标签为所述预设标签的每个元素,若所述元素的文本值与预设标识匹配,则将所述元素的文本值添加至所述预设标签对应的高危黑样本特征库中;若所述元素的文本值与所述预设标识不匹配,则将所述元素的文本值添加至所述预设标签对应的普通黑样本特征库中;根据所述预设标签对应的高危黑样本特征库的权重、所述预设标签对应的普通黑样本特征库的权重、所述预设标签对应的高危黑样本特征库中包括的所述样本数据的文本值的个数和所述预设标签对应的普通黑样本特征库中包括的所述样本数据的文本值的个数,确定所述预设标签对应的值。可选地,所述webshell检测装置还包括预测模块304,所述预测模块304用于:获取待检测样本数据,并确定所述待检测样本数据对应的特征序列;使用所述二分类预测模型对所述待检测样本数据的特征序列进行预测,确定所述待检测样本数据为webshell网页数据或正常web网页数据。从上述内容可以看出:本发明的上述实施例中,获取m个样本数据,m个样本数据可以包括p个webshell网页数据和q个正常web网页数据;解析得到每个样本数据对应的dom树型结构,dom树形结构中包括多个元素和多个元素的文本值和属性;根据t个预设标签的元素的个数,确定每个样本数据对应的特征序列,并使用p个黑样本数据的特征序列和q个白样本数据的特征序列进行模型训练,得到二分类预测模型;进一步地,使用二分类预测模型对待检测样本数据的特征序列进行预测,确定待检测样本数据是否为webshell网页数据。本发明实施例通过分析webshell网页数据和正常web网页数据在前端网页上显示出的区别特征,并基于该区别特征进行模型训练,可以得到基于前端页面特征的二分类预测模型,相比于现有技术基于后台程序检测webshell网页数据的方式来说,能够避免通过修改后台程序所导致的检测不准确的技术问题,使得模型训练得到的二分类模型较为准确,从而通过采用基于前端网页特征训练得到的二分类预测模型对待检测样本进行预测,可以提高websell网页数据检测的准确性;此外,本发明实施例中的样本数据为通过运行后台程序得到的前端网页数据,在后台程序的功能不发生变化的情况下,对后台程序作文字性的修改不会影响前端网页数据,从而使得即使webshell数据的后台程序发生变化,采用本发明实施例中的方案也可以检测出webshell数据。本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1