一种webshell检测方法及相关设备与流程

文档序号:16249896发布日期:2018-12-11 23:55阅读:312来源:国知局
一种webshell检测方法及相关设备与流程
本发明涉及计算机
技术领域
,尤其涉及一种webshell检测方法及相关设备。
背景技术
恶意脚本后门webshell是一种黑客对服务器进行控制的后门程序。如果黑客发现web应用存在文件上传漏洞,可以上传webshell进行后续的攻击,并利用该webshell暗中对web服务器进行远程控制,上传、查看、修改、删除网站服务器上的文件,读取并修改网站数据库的数据,甚至可以直接在网站服务器上运行系统命令。目前,webshell检测主要通过恶意代码,字符串编码,危险函数等方法,需要将待测文件对应的代码或者函数与现有的恶意代码、危险函数进行对比,运算量大,耗时很长,检测效率较低。技术实现要素:本发明实施例提供了一种webshell检测方法及相关设备,在进行webshell检测时,不用实时比对待测文件的字符串、代码、各种函数等等,而仅是比对hash值,有利于提高webshell检测效率。第一方面,本发明实施例提供了一种webshell检测方法,该方法包括:在接收到安全检测指令的情况下,根据所述安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出所述待测文件的特征hash值;将所述待测文件的所述特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比;若存在与所述特征hash值匹配的样本特征hash值,则确定所述待测文件为webshell。在一个实施例中,所述根据所述安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出所述待测文件的特征hash值的具体实施方式为:检测当前运行环境,从预设的文本相似度算法列表中确定出与当前运行环境相匹配的目标算法,所述预设的文本相似度算法列表中包括所述n种文本相似度算法;基于所述目标算法对所述安全检测指令指示的目标目录和/或目标路径中的待测文件进行检测,确定出所述待测文件在所述目标算法下的特征hash值;其中,所述将所述待测文件的所述特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比的具体实施方式为:在预先建立的hash指纹库中获取任一个或者多个webshell样本在所述目标算法下各自对应的样本特征hash值;将所述待测文件在所述目标算法下的所述特征hash值与所述任一个或者多个webshell样本在所述目标算法下各自对应的所述样本特征hash值进行对比。在一个实施例中,所述目标算法为第一文本相似度算法,所述将所述待测文件在所述目标算法下的特征hash值与所述任一个或者多个webshell样本在所述目标算法下各自对应的所述样本特征hash值进行对比的具体实施方式为:获取所述待测文件在所述第一文本相似度算法下的特征hash值与所述任一个或者多个webshell样本在所述第一文本相似度算法下各自对应的样本特征hash值之间的各个汉明距离;如果所述各个汉明距离中的任一个汉明距离等于第一汉明阈值,则确定存在与所述特征hash值匹配的样本特征hash值。在一个实施例中,所述目标算法为第二文本相似度算法,所述将所述待测文件在所述目标算法下的特征hash值与所述任一个或者多个webshell样本在所述目标算法下各自对应的所述样本特征hash值进行对比的具体实施方式为:获取所述待测文件在所述第二文本相似度算法下的特征hash值与所述任一个或者多个webshell样本在所述第二文本相似度算法下各自对应的样本特征hash值之间的各个加权编辑距离;根据所述各个加权编辑距离确定所述第二文本相似度算法下的特征hash值与所述任一个或者多个webshell样本在所述第二文本相似度算法下各自对应的样本特征hash值之间的各个匹配值;如果所述各个匹配值中的任一个匹配值等于第一匹配阈值,则确定存在与所述特征hash值匹配的样本特征hash值。在一个实施例中,还可以如果确定出所述任一个汉明距离大于所述第一汉明阈值且不大于第二汉明阈值,则确定所述待测文件为变种webshell,所述第二汉明阈值大于所述第一汉明阈值。在一个实施例中,还可以如果确定出所述任一个匹配值大于第二匹配阈值且小于所述第一匹配阈值,则确定所述待测文件为变种webshell,所述第一匹配阈值大于所述第二匹配阈值。在一个实施例中,所述将所述待测文件的所述特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比之前,还可以获取不同脚本语言的webshell样本;采用n种文本相似度算法确定出每个webshell样本在所述n种文本相似度算法下的n个样本特征hash值,其中,n为正整数;根据所述不同脚本语言的webshell样本和所述webshell样本在所述n种文本相似度算法下的n个样本特征hash值,建立hash指纹库。在一个实施例中,服务器根据安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测之前,还可以识别安全测试指令,确定安全测试指令所需测试的目标目录和/或目标路径,并获取目标目录和/或目标路径中所有文件的扩展名,进而将目标目录和/或目标路径中扩展名为预设扩展名的文件确定为待测文件。第二方面,本发明实施例提供了一种webshell检测装置,该webshell检测装置包括用于执行上述第一方面的方法的模块。第三方面,本发明实施例提供了一种服务器,该服务器包括处理器、网络接口和存储器,所述处理器、网络接口和存储器相互连接,其中,所述网络接口受所述处理器的控制用于收发消息,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本发明实施例中,服务器可以在接收到安全检测指令的情况下,根据安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件的特征hash值,并将待测文件的特征hash值与预先建立的hash指纹库中恶意脚本后门webshell样本的样本特征hash值进行对比,如果存在与特征hash值匹配的样本特征hash值,则确定待测文件为webshell。通过本发明实施例,有利于提高webshell的检测效率。附图说明为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种webshell检测方法的流程示意图;图2是本发明实施例提供的另一种webshell检测方法的流程示意图;图3是本发明实施例提供的又一种webshell检测方法的流程示意图;图4是本发明实施例提供的一种webshell检测装置的示意性框图;图5是本发明实施例提供的一种服务器的示意性框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,图1是本发明实施例提供的一种webshell检测方法的流程示意图,如图所示,该webshell检测方法可包括:101、服务器在接收到安全检测指令的情况下,根据安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件的特征hash值。在一个实施例中,当运维人员发现有入侵事件或者发现业务系统有webshell存在时,可以针对服务器输入安全检测指令,用于指示服务器针对指定目录下或者指定路径下的待测文件进行扫描检测,例如该安全测试指令可以用于指示对f目录中的待测文件进行扫描检测。进一步地,服务器接收到用户输入的该安全检测指令后,则可以根据用户的指示对指定目录或者指定路径的任意一个待测文件进行检测,并通过文本相似度算法确定出待测文件的特征hash值。在一个实施例中,服务器根据安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测之前,还可以识别安全测试指令,确定安全测试指令所需测试的目标目录和/或目标路径,并获取目标目录和/或目标路径中所有文件的扩展名,进而将目标目录和/或目标路径中扩展名为预设扩展名的文件确定为待测文件。采用这样的方式,可以不用对指定目录中或者指定路径中的所有文件进行扫描,减少运算量,进一步提高webshell检测效率。其中,该预设扩展名可以为不包括运维人员指定的安全文件的扩展名,例如不包括.doc、.pdf和.rar等的扩展名。示例性地,运维人员想要对目录f中且扩展名为预设扩展名的文件进行webshell检测,这种情况下,运维人员可以通过服务器输入安全测试指令,用于指示对目录f(即目标目录)中且扩展名为预设扩展名的文件(即待测文件)进行webshell检测。进一步地,服务器接收到该安全测试指令后,可以将目录f确定为目标目录,并识别目录f中所有文件的扩展名,将目录f中扩展名为预设扩展名的文件确定为待测文件,并对待测文件进行webshell检测。102、服务器将待测文件的特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比。103、如果存在与特征hash值匹配的样本特征hash值,服务器则确定待测文件为webshell。在一个实施例中,服务器可以预先获取不同脚本语言的webshell样本,并通过文本相似度算法确定各个webshell样本的样本特征hash值,进而将不同脚本语言的webshell样本,以及各个webshell样本的样本特征hash值关联存储至hash指纹库中,也即建立hash指纹库。这种情况下,当服务器确定出待测文件的特征hash值之后,可以将待测文件的特征hash值与指纹库中的任一个或者多个webshell样本的样本特征hash值进行对比,如果对比时确定出特征hash值与任一个样本特征hash值匹配(如:特征hash值与任一个样本特征hash值之间的汉明距离等于汉明距离阈值,或者特征hash值与任一个样本特征hash值之间的匹配值等于匹配阈值等),则确定该待测文件为webshell。采用这样的检测方式,不用实时比对待测文件的字符串、代码特征、各种函数等等,而仅是比对hash值,有利于提高webshell检测效率。本发明实施例中,服务器可以在接收到安全检测指令的情况下,根据安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件的特征hash值,并将待测文件的特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比,若存在与特征hash值匹配的样本特征hash值,则确定待测文件为webshell。通过本发明实施例,有利于提高webshell的检测效率。参见图2,图2是本发明实施例提供的另一种webshell检测方法的流程示意图,如图所示,该webshell检测方法可包括:201、服务器获取不同脚本语言的webshell样本。202、服务器采用n种文本相似度算法确定出每个webshell样本在n种文本相似度算法下的n个样本特征hash值,其中,n为正整数。203、服务器根据不同脚本语言的webshell样本和webshell样本在n种文本相似度算法下的n个样本特征hash值,建立hash指纹库。在一个实施例中,服务器可以获取不同脚本语言的webshell样本,并采用不同的文本相似度算法计算webshell样本的hash值,也即对于同一个webshell样本而言,n种算法则对应n个hash值。获取不同脚本语言的webshell样本,可以克服大多数检测webshell是基于asp、asp.net、php等语言的脚本后门进行检查,对jsp等其他脚本语言支持不足的问题,有利于多种脚本语言文件检测支持。其中,文本相似度算法可以包括simhash算法、ssdeep算法等。进一步地,服务器可以将获取到的所有webshell样本,以及与各个webshell样本对应的n个hash样本值关联存储至hash指纹库。例如,当文本相似度算法包括simhash和ssdeep这两种算法时,hash指纹库可以反映如表1-1所示的对应关系:表1-1webshell样本simhash下的hashssdeep下的hasha1000000001101000000001b1000000010101100000000或者,服务器也可以针对不同的文本相似度算法,建立各个文本相似度算法各自对应的子hash指纹库,也即hash指纹库中包括一个或者多个该子hash指纹库。例如,当文本相似度算法包括simhash和ssdeep这两种算法时,hash指纹库可以分别建立simhash算法和ssdeep算法的子hash指纹库,建立后的子hash指纹库反映的关系可以分别如表1-2和1-3所示。针对不同的文本相似度算法建立各自对应的子hash指纹库,这样便于当检测到采用目标算法(如simhash算法或者ssdeep算法等)进行文本相似度比对时,可以直接在目标算法对应的子hash指纹库获取到目标算法下的样本特征hash值,进一步提高webshell检测效率。表1-2webshell样本simhash下的hasha1000000001b1000000010表1-3webshell样本ssdeep下的hasha101000000001b101100000000204、服务器在接收到安全检测指令的情况下,检测当前运行环境,从预设的文本相似度算法列表中确定出与当前运行环境相匹配的目标算法,该目标算法为第一文本相似度算法或者第二文本相似度算法。该预设的文本相似度算法列表中包括n种文本相似度算法。其中,该文本相似度算法列表中包括的n种文本相似度算法和步骤202中建立hash指纹库时所采用的n种文本相似度算法是保持一致的。在一个实施例中,该n种文本相似度算法可以包括第一文本相似度算法和第二文本相似度算法中的至少一个。其中,该第一文本相似度算法例如可以为simhash算法和第二文本相似度算法例如可以为ssdeep算法,这两种算法都是相似性检测算法,都可用于对疑似样本(即待测文件)生成特征hash值后与上述hash指纹库中任一webshell样本的样本特征hash值进行hash比对。但就这两种算法而言,simhash算法使用容易,检测时间短,对生产环境的部署配置没有要求,适用于远程检测,安全应急响应中快速检测等场景。ssdeep算法相比simhash算法检测准确度更高,但是对部署环境有一定的要求,依赖额外的库(如功能模块依赖算法库),也即ssdeep算法一般适用于本地场景的webshell检测。在一个实施例中,文本相似度算法列表中包括上述第一文本相似度算法和第二文本相似度算法,该第一文本相似度算法对生产环境的部署配置没有要求,第二文本相似度算法,对部署环境有一定的要求,运行时需要依赖额外的库。这种情况下,服务器在接收到安全检测指令后,可以检测当前运行环境是否配置有第二文本相似度算法运行所需的功能模块依赖算法库,如果配置有,则将第二文本相似度算法确定为目标算法,并基于第二文本相似度算法对安全检测指令指示的目标目录和/或目标路径中的待测文件进行检测,确定出待测文件在第二文本相似度算法下的特征hash值。如果未配置有,则将第一文本相似度算法确定为目标算法,并基于第一文本相似度算法对安全检测指令指示的目标目录和/或目标路径中的待测文件进行检测,确定出待测文件在第一文本相似度算法下的特征hash值。采用多种算法结合的方式进行webshell检测,一方面使得本方案可以在远程和本地不同场景执行webshell检测,提高了通用性;另一方面,在本地场景执行的情况下,可以优先选择检测精度更高的算法(如ssdeep算法),使得webshell检测结果更加准确。205、如果该目标算法为第一文本相似度算法,服务器基于第一文本相似度算法对安全检测指令指示的目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件在第一文本相似度算法下的特征hash值。206、服务器在预先建立的hash指纹库中获取任一个或者多个webshell样本在第一文本相似度算法下各自对应的样本特征hash值。207、服务器获取待测文件在第一文本相似度算法下的特征hash值与任一个或者多个webshell样本在第一文本相似度算法下各自对应的样本特征hash值之间的各个汉明距离。208、如果各个汉明距离中的任一个汉明距离等于第一汉明阈值,服务器则确定存在与特征hash值匹配的样本特征hash值,并确定待测文件为webshell。在一个实施例中,当服务器确定出目标算法为第一文本相似度算法时,可以在hash指纹库中获取任一个或者多个webshell样本在第一文本相似度算法下各自对应的样本特征hash值(以下简称第一样本hash值),并将获取到任一个或者多个webshell样本各自对应的该第一样本特征hash值与待测文件在第一文本相似度算法下的待测文件的特征hash值(以下简称第一hash值)进行汉明距离对比,获取到待测文件的第一hash值与任一个或者多个webshell样本各自对应第一样本hash值之间的各个汉明距离。进一步地,服务器可以将各个汉明距离与预先设置的第一汉明阈值、第二汉明阈值进行比较,该第二汉明阈值大于第一汉明阈值。如果各个汉明距离中的任一个汉明距离等于第一汉明阈值(例如0),则可以确定存在与该特征hash值匹配的样本特征hash值,进而可以确定待测文件为webshell;或者,如果该任一个汉明距离大于第一汉明阈值,且不大于第二汉明阈值(例如大于0,且不大于3),则可以确定该待测文件为变种webshell;又或者,如果该任一个汉明距离大于第二汉明阈值(如大于3),则可以确定待测文件为非webshell。其中,当服务器确定出待测文件为webshell或者变种webshell时,还可以输出报警信息,用于提示检测出webshell或者变种webshell。在一个实施例中,服务器在对待测文件进行检测的过程中,还可以记录当前待检测文件的特征hash值,以及它所在的路径信息(也即是步骤205中的目标路径和目录目录),当检测到待测文件是webshell的时候,还可以在hash指纹库中获取与这个待测文件进行比对,并确定待测文件是webshell的目标webshell样本的路径信息,以及这个目标webshell样本的样本特征hash值。在确定出待测文件是webshell或者变种webshell后,还可以将上述记录的信息(即当前待检测文件的特征hash值,当前待检测文件的路径信息,目标webshell样本的路径信息,以及目标webshell样本的样本特征hash值)生成扫描日志,输出给用户,以便于用户查看。在一个实施例中,当服务器确定出待测文件为变种webshell时,还可以将该变种webshell以及该变种webshell对应的特征hash值关联存储至之前建立的hash指纹库中,实现对hash指纹库的更新。本发明实施例中,服务器可以获取不同脚本语言的webshell样本,并采用n种文本相似度算法确定出每个webshell样本在n种文本相似度算法下的n个样本特征hash值,根据不同脚本语言的webshell样本和webshell样本在n种文本相似度算法下的n个样本特征hash值,建立hash指纹库。进一步地,服务器在接收到安全检测指令的情况下,检测当前运行环境,从预设的文本相似度算法列表中确定出与当前运行环境相匹配的目标算法,如果该目标算法为第一文本相似度算法,则并基于第一文本相似度算法对安全检测指令指示的目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件在第一文本相似度算法下的特征hash值,在预先建立的hash指纹库中获取任一个或者多个webshell样本在第一文本相似度算法下各自对应的样本特征hash值。进一步地,服务器可以获取待测文件在第一文本相似度算法下的特征hash值与任一个或者多个webshell样本在第一文本相似度算法下各自对应的样本特征hash值之间的各个汉明距离,如果各个汉明距离中的任一个汉明距离等于第一汉明阈值,服务器则存在与特征hash值匹配的样本特征hash值,进而确定待测文件为webshell,有利于提高webshell的检测效率。参见图3,图3是本发明实施例提供的又一种webshell检测方法的流程示意图,如图所示,该webshell检测方法可包括:301、服务器获取不同脚本语言的webshell样本。302、服务器采用n种文本相似度算法确定出每个webshell样本在n种文本相似度算法下的n个样本特征hash值,其中,n为正整数。303、服务器根据不同脚本语言的webshell样本和webshell样本在n种文本相似度算法下的n个样本特征hash值,建立hash指纹库。304、服务器在接收到安全检测指令的情况下,检测当前运行环境,从预设的文本相似度算法列表中确定出与当前运行环境相匹配的目标算法,该目标算法为第一文本相似度算法或者第二文本相似度算法。其中,步骤301-步骤304的具体实现方式可以参见上述实施例中步骤201-步骤204的相关描述,此处不再赘述。305、如果该目标算法为第二文本相似度算法,服务器则基于第二文本相似度算法对安全检测指令指示的目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件在第二文本相似度算法下的特征hash值。306、服务器在预先建立的hash指纹库中获取任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值。307、服务器获取待测文件在第二文本相似度算法下的特征hash值与任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值之间的各个加权编辑距离。308、服务器根据各个加权编辑距离确定第二文本相似度算法下的特征hash值与任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值之间的各个匹配值。309、如果该各个匹配值中任一个匹配值等于第一匹配阈值,服务器则确定存在与特征hash值匹配的样本特征hash值,并确定待测文件为webshell。在一个实施例中,当服务器检测到目标算法为第二文本相似度算法时,可以在hash指纹库中获取任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值(以下简称第二样本hash值),并将获取到的任一个或者多个webshell样本各自对应的该第二样本特征hash值与待测文件在第二文本相似度算法下的待测文件的特征hash值(以下简称第二hash值)进行相似度对比,获取到待测文件的第二hash值与任一个或者多个webshell样本各自对应的第二样本hash值之间的各个加权编辑距离,进而根据各个加权编辑距离确定出第二hash值与各个第二样本hash值之间的匹配值。在一个实施例中,服务器可以在得到待测文件的第二hash值与任一个或者多个webshell样本各自对应的第二样本hash值之间的各个加权编辑距离之后,可以将各个加权编辑距离除以第二hash值和第二样本hash值的长度和,再将相除后的结果映射到0-100的一个整数值上,进而得到待测文件的第二hash值与任一个或者多个webshell样本各自对应的第二样本hash值之间的各个匹配值。进一步地,这种情况下,如果该各个匹配值中的任一个匹配值等于第一匹配阈值(如100),服务器则可以确定存在与该特征hash值匹配的样本特征hash值,进而确定待测文件为webshell。或者,如果该任一个匹配值大于第二匹配阈值(如50)且小于该第一匹配阈值(如100),则确定待测文件为变种webshell,也即可能存在黑客对该webshell的代码进行了混淆的情况,该第一匹配阈值大于第二匹配阈值。又或者,如果该任一个匹配值不大于第二匹配阈值(如50),且不小于0,则可以确定待测文件为非webshell。在一个实例中,服务器在执行步骤303,根据不同脚本语言的webshell样本和webshell样本在n种文本相似度算法下的n个样本特征hash值,建立hash指纹库时。还可以进一步结合判定待测文件为webshell的条件(如匹配值等于第一匹配阈值)、变种webshell的条件(如该匹配值大于第二匹配阈值(如50)且小于该第一匹配阈值)以及非webshell的条件(如匹配值不大于第二匹配阈值(如50),且不小于0),来建立hash指纹库。示例性地,假设建立hash指纹库采用了第一文本相似度算法和第二文本相似度算法,分别为simhash算法和ssdeep算法,在建立hash指纹库时,可以将hash指纹库细分为两个子hash指纹库,一个为simhash算法下的子hash指纹库(以下简称simhash指纹库),另一个为ssdeep算法下的子hash指纹库(以下简称ssdeep指纹库),其中,该simhash指纹库包括各个webshell样本以及各个webshell样本在simhash算法下的样本特征hash值(以下简称simhash样本特征hash值);该ssdeep指纹库包括各个webshell样本以及各个webshell样本在ssdeep算法下的样本特征hash值(以下简称ssdeep样本特征hash值)。这种情况下,服务器可以将与各个simhash样本特征hash值对比满足汉明距离等于第一汉明阈值、汉明距离大于第一汉明阈值,且不大于第二汉明阈值、该汉明距离大于第二汉明阈值(如大于3)的各类hash值关联存储至simhash指纹库中,在存储时可以分别给每一类的hash值添加标记信息。例如,可以将与各个simhash样本特征hash值对比满足汉明距离等于第一汉明阈值的这类hash值,添加用于标记为webshell的标记信息;可以将与各个simhash样本特征hash值对比满足汉明距离大于第一汉明阈值,且不大于第二汉明阈值的这类hash值,添加用于标记为变种webshell的标记信息;可以将与各个simhash样本特征hash值对比满足大于第二汉明阈值的这类hash值,添加用于标记为非webshell的标记信息。例如,simhash算法下webshell样本a的样本特征hash值为1001001,那么可以将与1001001的汉明距离=0的字符串(即hash值)与1001001关联存储至simhash指纹库,并标记这类字符串为webshell所属的字符串;将与1001001的汉明距离大于3的字符串(即hash值)与1001001关联存储至simhash指纹库,并标记这类字符串为非webshell所属的字符串;将与1001001的汉明距离大于0且不小于3的字符串(即hash值)与1001001关联存储至simhash指纹库,并标记这类字符串为变种webshell所属的字符串。这种情况下,当服务器确定出待测文件的特征hash值之后,可以在预先建立的hash指纹库中查找与待测文件的特征hash值相同的字符串,进而确定该字符串所属的标记信息,若标记信息指示该字符串为webshell所属的字符串,则确定待测文件为webshell;若标记信息指示该字符串为非webshell所属的字符串,则确定待测文件为非webshell;若标记信息指示该字符串为变种webshell所属的字符串,则确定待测文件为变种webshell。采用这样的方式,可以减少将待测文件的特征hash值与预先建立的hash指纹库中的样本特征hash值进行对比时的计算量,进一步提高webshell检测效率。本发明实施例中,服务器可以获取不同脚本语言的webshell样本,并采用n种文本相似度算法确定出每个webshell样本在n种文本相似度算法下的n个样本特征hash值,根据不同脚本语言的webshell样本和webshell样本在n种文本相似度算法下的n个样本特征hash值,建立hash指纹库。进一步地,服务器在接收到安全检测指令的情况下,检测当前运行环境,从预设的文本相似度算法列表中确定出与当前运行环境相匹配的目标算法。如果该目标算法为第二文本相似度算法,则于第二文本相似度算法对安全检测指令指示的目标目录下和/或目标路径下的待测文件进行检测,确定出待测文件在第二文本相似度算法下的特征hash值,在预先建立的hash指纹库中获取任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值,并获取待测文件在第二文本相似度算法下的特征hash值与任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值之间的各个加权编辑距离,根据各个加权编辑距离确定第二文本相似度算法下的特征hash值与任一个或者多个webshell样本在第二文本相似度算法下各自对应的样本特征hash值之间的各个匹配值,如果该各个匹配值中任一个匹配值等于第一匹配阈值,服务器则确定存在与特征hash值匹配的样本特征hash值,进而确定待测文件为webshell。一方面,有利于提高webshell的检测效率,另一方面,采用与当前运行环境匹配的文本相似度算法对待测文件进行检测,有利于提高webshell检测的准确度。本发明实施例还提供了一种webshell检测装置,该装置包括用于执行前述图1、图2或者图3所述的方法的模块。具体地,参见图4,是本发明实施例提供的一种webshell检测装置的示意框图。本实施例的webshell检测装置包括:检测模块40,用于在接收到安全检测指令的情况下,根据所述安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出所述待测文件的特征hash值;对比模块41,用于将所述待测文件的所述特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比;确定模块42,用于若存在与所述特征hash值匹配的样本特征hash值,则确定所述待测文件为webshell。在一个实施例中,所述装置还包括:获取模块43,建立模块44,其中:获取模块43,用于获取不同脚本语言的webshell样本;确定模块42,还用于采用n种文本相似度算法确定出每个webshell样本在所述n种文本相似度算法下的n个样本特征hash值,其中,n为正整数;建立模块44,用于根据所述不同脚本语言的webshell样本和所述webshell样本在所述n种文本相似度算法下的n个样本特征hash值,建立hash指纹库。在一个实施例中,所述检测模块40,具体用于检测当前运行环境,从预设的文本相似度算法列表中确定出与当前运行环境相匹配的目标算法,所述预设的文本相似度算法列表中包括所述n种文本相似度算法;基于所述目标算法对所述安全检测指令指示的目标目录下和/或目标路径下的待测文件进行检测,确定出所述待测文件在所述目标算法下的特征hash值。在一个实施例中,对比模块41,具体用于在预先建立的hash指纹库中获取任一个或者多个webshell样本在所述目标算法下各自对应的样本特征hash值若存在与所述特征hash值匹配的样本特征hash值;将所述待测文件在所述目标算法下的所述特征hash值与所述任一个或者多个webshell样本在所述目标算法下各自对应的所述样本特征hash值进行对比。在一个实施例中,所述目标算法为第一文本相似度算法,对比模块41,具体还用于获取所述待测文件在所述第一文本相似度算法下的特征hash值与所述任一个或者多个webshell样本在所述第一文本相似度算法下各自对应的样本特征hash值之间的各个汉明距离;确定模块42,具体用于如果所述各个汉明距离中的任一个汉明距离等于第一汉明阈值,则确定存在与所述特征hash值匹配的样本特征hash值。在一个实施例中,所述目标算法为第二文本相似度算法,对比模块41,具体用于获取所述待测文件在所述第二文本相似度算法下的特征hash值与所述任一个或者多个webshell样本在所述第二文本相似度算法下各自对应的样本特征hash值之间的各个加权编辑距离;根据所述各个加权编辑距离确定所述第二文本相似度算法下的特征hash值与所述任一个或者多个webshell样本在所述第二文本相似度算法下各自对应的样本特征hash值之间的各个匹配值;其中,确定模块42,具体还用于如果所述各个匹配值中任一个匹配值等于第一匹配阈值,则确定存在与所述特征hash值匹配的样本特征hash值。在一个实施例中,如果确定模块42确定出所述任一个汉明距离大于所述第一汉明阈值且不大于第二汉明阈值,则确定所述待测文件为变种webshell,所述第二汉明阈值大于所述第一汉明阈值;在一个实施例中,如果确定模块42确定出所述任一个匹配值大于第二匹配阈值且小于所述第一匹配阈值,则确定所述待测文件为变种webshell,所述第一匹配阈值大于所述第二匹配阈值。需要说明的是,本发明实施例所描述的webshell检测装置的各功能模块的功能可根据图1、图2或者图3所述的方法实施例中的方法具体实现,其具体实现过程可以参照图1、图2或者图3的方法实施例的相关描述,此处不再赘述。请参见图5,图5是本发明实施例提供的一种服务器的示意性框图。如图5所示,该服务器包括,处理器501、存储器502和网络接口503。上述处理器501、存储器502和网络接口503可通过总线或其他方式连接,在本发明实施例所示图5中以通过总线连接为例。其中,网络接口503受所述处理器的控制用于收发消息,存储器502用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令。其中,处理器501被配置用于调用所述程序指令执行:在接收到安全检测指令的情况下,根据所述安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出所述待测文件的特征hash值;将所述待测文件的所述特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比;若存在与所述特征hash值匹配的样本特征hash值,则确定所述待测文件为webshell。应当理解,在本发明实施例中,所称处理器501可以是中央处理单元(centralprocessingunit,cpu),该处理器501还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。具体实现中,本发明实施例中所描述的处理器501、存储器502和网络接口503可执行本发明实施例提供的图1、图2或者图3所述的方法实施例所描述的实现方式,也可执行本发明实施例所描述的webshell检测装置的实现方式,在此不再赘述。在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:在接收到安全检测指令的情况下,根据所述安全检测指令的指示对目标目录下和/或目标路径下的待测文件进行检测,确定出所述待测文件的特征hash值;将所述待测文件的所述特征hash值与预先建立的hash指纹库中webshell样本的样本特征hash值进行对比;若存在与所述特征hash值匹配的样本特征hash值,则确定所述待测文件为webshell。所述计算机可读存储介质可以是前述任一实施例所述的服务器的内部存储单元,例如服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述服务器的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1