掌桥专利:专业的专利平台
掌桥专利
首页

一种webshell的检测方法、系统、装置及可读存储介质

文献发布时间:2023-06-19 10:27:30


一种webshell的检测方法、系统、装置及可读存储介质

技术领域

本发明涉及webshell检测技术领域,尤其涉及一种webshell的检测方法、系统、装置及计算机可读存储介质。

背景技术

随着互联网的快速发展,人们日常生活学习、生产工作中越来越的部分都转移到网络上,人们需要大量的网络服务来满足日常的需求,这些服务的物理载体都是服务器,而服务器常常会成为不法分子的攻击目标,webshell则是不法分子最常使用的用来控制服务器的手段。如果能够在不干扰正常业务运行的情况下,从服务器中将webshell检测出来,必然能够大大降低不法人员攻击服务器的成功率,从而保证业务正常、安全的运行。

现有方案大多为以下几种,特征检测、动态检测、日志分析及白名单检测等;特征检测在国内的网络环境下并不适用;动态检测主要通过监测样本在运行时的行为来判断目标是否为webshell,很难做到全部监测;日志分析主要通过分析流量日志、操作系统日志、访问日志等进行建模分析,从中整合出可能存在的异常点,根据异常点来判断目标是否为webshell或是否存在webshell类似的行为,很容易产生漏报;白名单检测通过匹配提前规定的白名单进行检测,需要有专门的人员去维护每一个流程的工作,费时费力。现有技术对webshell的检测范围较小或者对网络环境较为严格,并且检测准确度及检测效率较低。

发明内容

有鉴于此,有必要提供一种webshell的检测方法、系统、装置及计算机可读存储介质,用以解决现有技术中webshell检测准确度及检测效率较低的问题。

本发明提供一种webshell的检测方法,包括以下步骤:

采集样本文件,对所述样本文件进行静态特征提取,得到样本文件的静态特征序列;

提取样本文件的污点追踪特征,对所述污点追踪特征与所述静态特征序列进行整合,得到完整的特征序列,将完整的特征序列转化为特征向量矩阵;

构建极限树模型,利用所述特征向量矩阵对极限树模型进行训练,得到用于样本文件检测的极限树模型;

获取待检测样本文件,获取检测样本文件的特征向量矩阵,利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果。

进一步地,所述对所述样本文件进行静态特征提取,得到样本文件的静态特征序列,具体包括:

对所述样本文件进行过滤,保留php类型文件及以PHP、Php、php1后缀命名的php文件,对过滤后的样本文件进行统计学特征提取,获取样本文件的特征值,使所述特征值组成静态特征序列。

进一步地,所述对过滤后的样本文件进行统计学特征提取,获取样本文件的特征值,具体包括:

对过滤后的样本文件进行静态特征提取,获取样本文件的信息熵;过滤后的样本文件对进行文件重合指数的计算,获取文件重合指数。

进一步地,所述对过滤后的样本文件进行统计学特征提取,获取样本文件的特征值,还包括:

对过滤后的样本文件进行文件压缩比的计算,得到文件压缩比;对提取过滤后的样本文件中最长单词的长度。

进一步地,提取样本文件的污点追踪特征,具体包括:

样本文件进行抽象语法树提取,获取对应抽象语法树的污点函数,根据所述污点函数获取污点追踪特征。

进一步地,根据所述污点函数获取污点追踪特征,具体包括:

根据所述污点函数确定污染源、污染路径及最终的危险汇聚点,根据所述污染源、污染路径及最终的危险汇聚点还原webshell逻辑数据流,根据所述webshell逻辑数据流获取污点追踪特征。

进一步地,利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果,具体包括:

利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,若用于样本文件检测的极限树模型的输出结果为0,则表示样本文件为正常文件,若用于样本文件检测的极限树模型的输出结果为1,则表示样本文件为恶意文件;输出结果越趋近于1,则对应样本文件是恶意文件的可能性越高。

本发明还提供了一种webshell的检测系统,包括静态特征序列获取模块、特征向量矩阵获取模块、极限树模型获取模块及检测模块;

所述静态特征序列获取模块,用于采集样本文件,对所述样本文件进行静态特征提取,得到样本文件的静态特征序列;

所述特征向量矩阵获取模块,用于提取样本文件的污点追踪特征,对所述污点追踪特征与所述静态特征序列进行整合,得到完整的特征序列,将完整的特征序列转化为特征向量矩阵;

所述极限树模型获取模块,用于构建极限树模型,利用所述特征向量矩阵对极限树模型进行训练,得到用于样本文件检测的极限树模型;

所述检测模块,用于获取待检测样本文件,获取检测样本文件的特征向量矩阵,利用所述用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果。

本发明还提供了一种webshell的检测装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如上述任一技术方案所述的webshell的检测方法。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机该程序被处理器执行时,实现如上述任一技术方案所述的webshell的检测方法。

与现有技术相比,本发明的有益效果包括:通过采集样本文件,对所述样本文件进行静态特征提取,得到样本文件的静态特征序列;提取样本文件的污点追踪特征,对所述污点追踪特征与所述静态特征序列进行整合,得到完整的特征序列,将完整的特征序列转化为特征向量矩阵;构建极限树模型,利用所述特征向量矩阵对极限树模型进行训练,得到用于样本文件检测的极限树模型;获取待检测样本文件,获取检测样本文件的特征向量矩阵,利用所述用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果;提高了webshell检测的准确度及效率。

附图说明

图1为本发明提供的webshell的检测方法的流程示意图;

图2为本发明提供的webshell检测结果;

图3为本发明提供的webshell的检测系统的结构框图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

实施例1

本发明实施例提供了一种webshell的检测方法,其流程示意图,如图1所示,所述方法包括以下步骤:

S1、采集样本文件,对所述样本文件进行静态特征提取,得到样本文件的静态特征序列;

S2、提取样本文件的污点追踪特征,对所述污点追踪特征与所述静态特征序列进行整合,得到完整的特征序列,将完整的特征序列转化为特征向量矩阵;

S3、构建极限树模型,利用所述特征向量矩阵对极限树模型进行训练,得到用于样本文件检测的极限树模型;

S4、获取待检测样本文件,获取检测样本文件的特征向量矩阵,利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果。

优选的,所述对所述样本文件进行静态特征提取,得到样本文件的静态特征序列,具体包括:

对所述样本文件进行过滤,保留php类型文件及以PHP、Php、php1后缀命名的php文件,对过滤后的样本文件进行统计学特征提取,获取样本文件的特征值,使所述特征值组成静态特征序列;

需要说明是,wellshell大多以php类型文件的形式存在,所以需要保留php类型文件,同时wellshell还可以PHP、Php、php1后缀命名的文件存在,但是在内容上看其实质上是php文件;

优选的,所述对过滤后的样本文件进行统计学特征提取,获取样本文件的特征值,具体包括:

对过滤后的样本文件进行静态特征提取,获取样本文件的信息熵;过滤后的样本文件对进行文件重合指数的计算,获取文件重合指数;

一个具体实施例中,统计学特征包括信息熵、文件重合指数、文件压缩比及最长单词,通过信息熵算法获取样本文件的信息熵,通过重合指数算法获取文件重合指数;

优选的,所述对过滤后的样本文件进行统计学特征提取,获取样本文件的特征值,还包括:

对过滤后的样本文件进行文件压缩比的计算,得到文件压缩比;对提取过滤后的样本文件中最长单词的长度;

一个具体实施例中,通过压缩比算法获取文件压缩比;将所述信息熵、文件重合指数、文件压缩比及最长单词均记录至静态特征序列中;

优选的,提取样本文件的污点追踪特征,具体包括:

样本文件进行抽象语法树提取,获取对应抽象语法树的污点函数,根据所述污点函数获取污点追踪特征;

一个具体实施例中,对得到的样本文件进行抽象语法树的提取,后续的分析均以抽象语法树为基础进行;抽象语法树是源代码语法结构的一种表示,相比于别的形式,抽象语法树可以更好的保留原文件在语义上的表示,并且可以很好的去除注释、无关代码等对后续分析的影响;

优选的,根据所述污点函数获取污点追踪特征,具体包括:

根据所述污点函数确定污染源、污染路径及最终的危险汇聚点,根据所述污染源、污染路径及最终的危险汇聚点还原webshell逻辑数据流,根据所述webshell逻辑数据流获取污点追踪特征;

一个具体实施例中,对输入的抽象语法树进行语义分析,寻找潜在的污点函数,同时记录分析的过程,如果确定某个函数为污点函数,则进行污点追踪的分析;

所述污点追踪的分析,具体为,确定污染源、污染路径与最终的危险汇聚点,根据分析得到的污染源、污染路径、危险汇聚点来还原出完整的webshell核心逻辑数据流,根据完整的数据流来提取污点追踪特征;

根据步骤核心数据流来提取污点追踪特征,并将污点追踪特征与静态特征序列整合,得到完整的特征序列;

优选的,利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果,具体包括:

利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,若用于样本文件检测的极限树模型的输出结果为0,则表示样本文件为正常文件,若用于样本文件检测的极限树模型的输出结果为1,则表示样本文件为恶意文件;输出结果越趋近于1,则对应样本文件是恶意文件的可能性越高;

一个具体实施例中,需要样本文件的完整特征序列转化为特征向量方式表达;由于特征序列仍是词(或文本)序列的状态,无法直接输入到极限树模型进行分类检测;需要将样本文件的完整特征序列转化为特征向量矩阵,再进入经过预训练的极限树模型(用于样本文件检测的极限树模型)进行检测;

另一个具体实施例中,利用所述特征向量矩阵对极限树模型进行训练的过程为,将完整的特征向量矩阵数据集以8:2的比例划分为训练集与测试集,得到训练集的特征向量矩阵,将得到的特征向量矩阵输入到模型中进行训练,最终得到用于样本文件检测的极限树模型;

需要说明的是,在对特征向量化处理之后,得到的是一个二维矩阵;每一条会话都由多个维度的特征表示,不同的样本拥有不同的特征,但正常样本与恶意样本各自拥有独特的特征;通过多维度的特征向量来对样本进行检测,可以判断出该样本是否是恶意的;

另一个具体实施例中,对输入的样本文件的特征向量矩阵使用用于样本文件检测的极限树模型进行检测,输出对于样本在每一个分类上的预测结果以及最终的检测结果,结果为0~1的分类概率,0表示正常,1表示不正常,预测的结果越趋近于1,则表示该样本是恶意的可能性越高;

在网络上获取的webshell样本,并利用本发明实施例所述的webshell的检测方法进行测试,得到webshell检测结果,如图2所示,图2可知检测结果较为理想。

实施例2

本发明实施例提供了一种webshell的检测系统,所述系统的结构框图,如图3所示,所述系统包括静态特征序列获取模块1、特征向量矩阵获取模块2、极限树模型获取模块3及检测模块4;

所述静态特征序列获取模块1,用于采集样本文件,对所述样本文件进行静态特征提取,得到样本文件的静态特征序列;

所述特征向量矩阵获取模块2,用于提取样本文件的污点追踪特征,对所述污点追踪特征与所述静态特征序列进行整合,得到完整的特征序列,将完整的特征序列转化为特征向量矩阵;

所述极限树模型获取模块3,用于构建极限树模型,利用所述特征向量矩阵对极限树模型进行训练,得到用于样本文件检测的极限树模型;

所述检测模块4,用于获取待检测样本文件,获取检测样本文件的特征向量矩阵,利用所述用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果。

实施例3

本发明实施例提供了一种webshell的检测装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如实施例1所述的webshell的检测方法。

实施例4

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机该程序被处理器执行时,实现如实施例1所述的webshell的检测方法。

本发明公开了一种webshell的检测方法、系统、装置及计算机可读存储介质,通过采集样本文件,对所述样本文件进行静态特征提取,得到样本文件的静态特征序列;提取样本文件的污点追踪特征,对所述污点追踪特征与所述静态特征序列进行整合,得到完整的特征序列,将完整的特征序列转化为特征向量矩阵;构建极限树模型,利用所述特征向量矩阵对极限树模型进行训练,得到用于样本文件检测的极限树模型;获取待检测样本文件,获取检测样本文件的特征向量矩阵,利用用于样本文件检测的极限树模型对检测样本文件的特征向量矩阵进行检测,得到检测结果;提高了webshell检测的准确度及效率;

本发明所述技术方案,通过样本进行静态特征的提取,可以有效地检测出加密或混淆后的webshell,通过结合污点追踪特征,可以有效地检测出包括木马在内的各种类型的webshell;提高对未知威胁的检测效果:本专利内提到的特征结合极限树模型检测方式可以有效的根据已有的样本推断未知的样本是否存在恶意的特征,从而判断目标是否为webshell。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

相关技术
  • WebShell检测装置、WebShell检测方法及计算机可读存储介质
  • 一种webshell的检测方法、系统、装置及可读存储介质
技术分类

06120112553585