一种Web服务器中的WebShell文件的检测方法
【技术领域】
[0001]本发明涉及信息安全领域,具体涉及一种开启了 Web服务的服务器下的WebShell文件的检测方法。
【背景技术】
[0002]随着互联网技术的高速发展,互联网信息安全已经成为了人们关注的焦点。WebShell是Web入侵的脚本攻击工具。对于WebShell的理解,“Web”指的是服务器开放Web服务的服务器,“Shell”指的是取得对服务器某种程度上的操作权限。WebShell常常被称为匿名用户(入侵者)通过Web服务端口对Web服务器有某种程度上操作的权限,由于其大多是以网页脚本的形式出现,也有人称之为网站后门工具。
[0003]WebShell是一种常见的网页后门,总体上,WebShell有两方面的作用,一方面,WebShell常常被网站站长用于网站管理和服务器管理等,根据文件系统对象FSO权限的不同,WebShell的管理作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。另一方面,WebShell被入侵者利用来达到控制网站服务器的目的。这些入侵网站服务器的网页脚本常被称为Web脚本木马,目前比较流行的WebShell脚本木马有ASP、JSP或PHP木马,也有基于.NET的脚本木马。
[0004]因此,WebShell常常被攻击者用来获取Web服务器的操作权限。攻击者在进行网站入侵时,通常会将WebShell文件与Web目录下的长长网页文件放置在一起,然后通过浏览器访问WebShell文件,从而获取命令执行环境,最终达到控制网站服务器的目的。当网站服务器被控制后,就可以在其上任意查看数据库、上传下载文件以及执行任意程序命令等。WebShell与正常网页具有相同的运行环境和服务端口,它与远程主机通过WWW(80)端口进行数据交换,能够很容易地避开杀毒软件的检测和穿透防火墙入侵网站。
[0005]现有技术大多是通过静态检测的方法来检测是否存在WebShell。静态检测方法是通过将Web服务器端的脚本与恶意特征码进行二进制匹配,若匹配成功,则确定该脚本为WebShell。这种检测方法不能快速、精准地检测出是否存在WebShell,对服务器端WebShell的误判率较高,对保障服务器的安全有一定影响。
【发明内容】
[0006]为了克服上述现有技术的不足,本发明提供一种Web服务器中的WebShell文件的检测方法,通过基于引用的检测过程、基于时间的检测过程和基于特征值的检测过程扫描待检测文件,分别计算得到待检测文件的检测权值,再计算得出最终权值,从而得出检测结果。本发明对文件扫描检测的效率高,能够快速、精确地检测出服务器中的WebShell文件,从而保证服务器的安全。
[0007]本发明的原理是:本发明提供的Web服务器中的WebShell文件的检测方法,包括基于引用的检测过程、基于时间的检测过程和基于特征值的检测过程;其中,基于引用的检测过程中,当没有任何文件,而只是有链接指向某一文件时,即只有链接,而没有链接对应的实际文件存在在目录中,这种文件为目录下的引用文件;本方案认为这种引用文件为可疑WebShell。而这种引用文件,被引用的越多,则越趋向于正常文件。基于创建时间的检测过程具体是:我们将所有文件,依据创建时间进行分组,每组文件的创建时间接近(接近的程度是指小于某个设定的阈值),当某一组的文件个数小于某个数值,则认为其为可疑WebShell的可能性很大。基于特征值的检测过程具体是:本方案将用于与待检测文件匹配的特征分为特征码和可疑特征码,一待检测文件与特征码匹配成功则该文件很有可能是WebShell,相对应赋予比较高的特征检测权值,而由于与可疑特征码匹配成功的内容很多普通文件可能也会带有,所以待检测文件与可疑特征码匹配成功时,相对应赋予的特征检测权值会很小。基于特征值检测方法的核心是特征提取,选取特征的好坏直接关系到检测结果的优劣。因此,在进行特征选取时,首先应对Web页面本身进行充分考虑,使得选取的特征能够很好地表现出静态页面。其次,选取的特征还应该具有动态特点,可以体现出页面所进行的操作。如果提取网页的全部特征进行处理,则无法检测出变形的WebShell,也会因为特征过多而对效率产生影响。如果检测特征过少,则有可能产生误报。WebShell特征库的特征码是从已有的恶意WebShell文件中提取的恶意代码。本发明通过将多个WebShell特征库综合在一起,同时,也利用到国外的开源的WebShell库,综合构建了一个强大的WebShell特征库,这个特征库构成了基于特征值检测WebShell的依据。本发明提供的WebShell文件的检测方法包括低误报模式、低漏报模式和均衡模式。其中,低误报模式是先做基于引用的和基于时间的检测,将两者的检测可疑文件集取交集,再做基于特征值的检测;低漏报模式同样是先做基于引用的和基于时间的检测,将两者的检测可疑文件集取并集,再特做基于特征值的检测;均衡模式是基于引用的检测过程、基于时间的检测过程和基于特征值的检测过程进行检测,再计算总权值。
[0008]本发明提供的技术方案如下:
[0009]一种Web服务器中的WebShell文件检测方法,包括基于引用的检测过程、基于时间的检测过程和基于特征值的检测过程;通过上述检测过程扫描待检测文件,分别计算得到待检测文件的引用检测权值、时间检测权值和特征检测权值;再计算得出最终权值,从而得出待检测文件是正常文件、可疑WebShell文件还是确定的WebShell文件,包括如下步骤:
[0010]I)获取指定目录中的所有文件和文件创建信息;
[0011 ] 指定目录为需要检测的目录,一般需要检测Web文件存在的目录。开启Web服务的服务器都会有默认的Web文件存放目录,默认情况下检测这些目录,用户也可以自己选择指定需要检测的目录。获取指定目录中的文件包括引用的文件;文件创建信息包括文件名称和文件创建时间信息。
[0012]2)进行基于时间的检测过程:根据文件创建时间,将所有文件进行分组,赋予每一个文件的时间检测权值,并记录时间检测可疑文件集;
[0013]根据文件创建时间进行分组,根据文件创建时间和分组中的文件数目,给文件赋予不同的时间检测权值:将文件创建时间相接近的(小于某个阈值的)文件放到一个分组中,文件数较少的分组中的文件是WebShell文件的几率比较大,即是WebShell可疑文件。找出这些WebShell可疑文件,文件创建时间越晚WebShell文件的可能性越大,根据文件创建时间的不同给文件添加不同的时间检测权值,具体通过一个变量T记录时间检测权值,并记录时间检测可疑文件集为Tt ;
[0014]文件创建时间越晚和分组中的文件数目越少的文件相应的权值越大:基于时间检测是将文件按创建时间进行分组,时间间隔在一定的阈值内的文件被分为一组,组里的文件个数少的是WebShell的可能性比较大,对于组内的文件再按照创建时间的先后进行赋权值,越晚(离当前时间越近)创建的越可能是WebShell,相应的权值越大,检测结果是可疑的分组文件以及相应的权值;
[0015]3)进行基于引用的检测过程:获取引用文件,根据引用次数赋予每一个文件的引用检测权值,并记录引用检测可疑文件集;
[0016]对于引用的文件,获取引用文件并检测引用的次数,引用文件是WebShell的可能性很大,次数越大的是WebShell的可能性越小,选取不同的引用次数作为阈值,划到不同阈值下的引用文件赋上不同的引用检测权值,引用次数多的添加的引用检测权值越小,用变量Q来表示权值,并记录引用检测可疑文件集为Qq ;
[0017]4)进行基于特征的检测过程:对需要做基于特征的检测过程的文件,针对每一个文件进行特征码匹配,若匹配成功则记录并赋予该文件特征检测权值;若未匹配成功则对文件内容进行base64编码,然后再次进行特征码匹配,匹配成功则记录并赋予该文件特征检测权值,未匹配成功则对文件进行可疑特征码匹配,匹配成功