基于行为特征的web后门检测方法和装置的制作方法

文档序号:7893376阅读:164来源:国知局
专利名称:基于行为特征的web后门检测方法和装置的制作方法
技术领域
本发明涉及互联网安全技术领域,特别涉及一种基于行为特征的web后门检测方法和装置。
背景技木目前在互联网行业中,安全问题越来越显著,经常有恶意攻击者攻陷互联网网站后,在网站源代码中遗留后门(代码)。后门是指一种绕过安全性控制而获取对程序或系统访问权限的方法。攻击者可以在网站漏洞修补完毕后继续通过后门控制网站权限。在获得网站权限之后,攻击者会立刻上传web木马病毒,进行进一歩权限提升,给服务器造成严重 威胁。常见的web后门有一句话木马、phpspy、jspspy等。现有的web后门检测工具大多采用静态特征检测技术,基于ー些内容特征,比如,后门通常使用的eval、system、runtime, exec等函数名,来进行关键词检测,发现即报警为web后门。由于静态特征检测使用的特征码较为固定,而web后门程序较为灵活,经常存在各类型的变形、加密等变种形式,一旦后门编写人员利用编码混淆、加密等技术,不使用这些内容特征,即可躲过后门检测。另外,现有的检测方式大多以客户端杀毒软件的形式在个人PC机上应用,而目前还没有比较合适的后门检测方法针对web环境的服务器端,尤其是针对拥有大規模线上产品的web服务器集群。比如,目前很多大型互联网公司经营线上产品(web应用程序)较多,通常存在成百上千,乃至万、十万级别的web服务器,需要在这些机器上部署并查找web后门文件。由于线上web代码数较多,且分属于不同项目,变动较为頻繁,结构也无法预先统一;线上代码逻辑较为复杂,可能存在部分代码与后门关键词代码较为类似,导致出现较多的误报;web访问量较大,且可能存在一定的负载均衡措施,整个攻击流程和后门文件可能存留于不同的机器上。这就给传统的静态特征码后门检测技术带来很大的挑战。

发明内容有鉴于此,本发明提供了一种基于行为特征的web后门检测方法和装置,通过行为特征的检测方式,能够有效检查出加密变形的web后门,提高web后门的检出率和检测效率,减少误报率。具体技术方案如下—种基于行为特征的web后门检测方法,该方法包括以下步骤SI、针对脚本文件分别执行步骤Sl_l或步骤Sl_2,其中步骤Sl_l、获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件创建时间、文件属主或文件权限,确定脚本文件的属性异常度,将属性异常度满足预设要求的脚本文件识别为后门文件;步骤Sl_2 JAweb日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将访问异常度满足预设要求的脚本文件识别为后门文件;S2、将步骤SI中识别为后门文件的脚本文件作为检测结果输出。
根据本发明一优选实施例,所述步骤Sl_l中,根据所述文件属主确定脚本文件的属性异常度为判断是否脚本文件的文件属主为异常用户且文件类型属于预设类型,如果是,则为该脚本文件赋予属主异常权值;根据所述文件创建时间确定脚本文件的属性异常度为计算脚本文件的创建时间相比较同目录其他文件的时间离散度,确定时间离散度大于预设离散度阈值的脚本文件,如果确定的脚本文件数低于预设文件数,则为确定的脚本文件赋予时间离散权值;根据所述文件权限确定脚本文件的属性异常度为判断脚本文件权限是否不是默认文件权限且文件属主为预设用户,如果是,则为该脚本文件赋予权限异常权值。根据本发明一优选实施例,所述脚本文件的属性异常度是该脚本文件的属主异常权值、时间离散权值或权限异常权值中一种或者任意组合的加权值。根据本发明一优选实施例,所述属性异常度满足预设要求包括所述属性异常度排在前NI个,NI为预设正整数;或者,所述属性异常度大于预设异常度阈值。根据本发明一优选实施例,所述步骤Sl_2中,根据所述访问频度的统计结果确定脚本文件的访问异常度为判断脚本文件的访问频度是否低于预设访问数阈值,如果是,则为该脚本文件赋予访问频度异常权值;根据所述访问来源数的统计结果确定脚本文件的访问异常度为判断脚本文件的访问来源数是否低于预设访问来源阈值,如果是,则为该脚本文件赋予访问源异常权值;根据所述分时段访问量的统计结果确定脚本文件的访问异常度为判断脚本文件的分时段访问量超出预设分时段阈值的次数是否大于规定次数,如果是,则为该脚本文件赋予分时段访问异常权值。根据本发明一优选实施例,所述脚本文件的访问异常度是该脚本文件的访问频度异常权值、访问源异常权值或分时段访问异常权值中的一种或任意组合的加权值。根据本发明一优选实施例,所述访问异常度满足预设要求包括所述访问异常度排在前N2个,N2为预设正整数;或者,所述访问异常度大于预设访问阈值。根据本发明一优选实施例,所述步骤SI还包括针对脚本文件执行步骤Sl_3 利用操作系统对web服务器的进程进行监控,判断web服务器的进程中是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。根据本发明一优选实施例,所述步骤Sl_3包括为发出预设的操作或命令的脚本文件赋予进程异常权值;所述步骤S2包括针对所述步骤SI识别到的后门文件中的同一脚本文件,将该脚本文件的属性异常度或访问异常度中的一种或组合与进程异常权值进行加权,得到该脚本文件的异常度;将异常度满足预设要求的脚本文件作为检测结果输出。根据本发明一优选实施例,所述异常度满足预设要求包括所述异常度排在前N个,N为预设正整数;
或者,所述异常度大于预设异常度阈值。一种基于行为特征的web后门检测装置,该装置包括判断模块,包括属性异常判断模块或访问异常判断模块,其中所述属性异常判断模块,用于获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件创建时间、文件属主或文件权限,确定脚本文件的属性异常度,将属性异常度满足预设要求的脚本文件识别为后门文件;所述访问异常判断模块,用于从web日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将访问异常度满足预设 要求的脚本文件识别为后门文件;输出模块,用于将所述判断模块识别为后门文件的脚本文件作为检测结果输出。根据本发明一优选实施例,所述属性异常判断模块具体配置包括根据所述文件属主确定脚本文件的属性异常度为判断是否脚本文件的文件属主为异常用户且文件类型属于预设类型,如果是,则为该脚本文件赋予属主异常权值;根据所述文件创建时间确定脚本文件的属性异常度为计算脚本文件的创建时间相比较同目录其他文件的时间离散度,确定时间离散度大于预设离散度阈值的脚本文件,如果确定的脚本文件数低于预设文件数,则为确定的脚本文件赋予时间离散权值;根据所述文件权限确定脚本文件的属性异常度为判断脚本文件权限是否不是默认文件权限且文件属主为预设用户,如果是,则为该脚本文件赋予权限异常权值。根据本发明一优选实施例,所述脚本文件的属性异常度是该脚本文件的属主异常权值、时间离散权值或权限异常权值中一种或者任意组合的加权值。根据本发明一优选实施例,所述属性异常度满足预设要求包括所述属性异常度排在前NI个,NI为预设正整数;或者,所述属性异常度大于预设异常度阈值。根据本发明一优选实施例,所述访问异常判断模块具体配置包括根据所述访问频度的统计结果确定脚本文件的访问异常度为判断脚本文件的访问频度是否低于预设访问数阈值,如果是,则为该脚本文件赋予访问频度异常权值;根据所述访问来源数的统计结果确定脚本文件的访问异常度为判断脚本文件的访问来源数是否低于预设访问来源阈值,如果是,则为该脚本文件赋予访问源异常权值;根据所述分时段访问量的统计结果确定脚本文件的访问异常度为判断脚本文件的分时段访问量超出预设分时段阈值的次数是否大于规定次数,如果是,则为该脚本文件赋予分时段访问异常权值。根据本发明一优选实施例,所述脚本文件的访问异常度是该脚本文件的访问频度异常权值、访问源异常权值或分时段访问异常权值中的ー种或任意组合的加权值。根据本发明一优选实施例,所述访问异常度满足预设要求包括所述访问异常度排在前N2个,N2为预设正整数;或者,所述访问异常度大于预设访问阈值。根据本发明一优选实施例,所述判断模块还包括进程异常监控模块,利用操作系统对web服务器的进程进行监控,判断web服务器的进程中是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。根据本发明一优选实施例,所述进程异常监控模块为发出预设的操作或命令的脚本文件赋予进程异常权值;该装置还包括加权模块,针对所述判断模块识别到的后门文件中的同一脚本文件,将该脚本文件的属性异常度或访问异常度中的一种或组合与进程异常权值进行加权,得到该脚本文件的异常度;
所述输出模块根据所述加权模块的计算结果,将异常度满足预设要求的脚本文件作为检测结果输出。根据本发明一优选实施例,所述异常度满足预设要求包括所述异常度排在前N个,N为预设正整数;或者,所述异常度大于预设异常度阈值。由以上技术方案可以看出,本发明提供的基于行为特征的web后门检测方法和装置,利用web服务器上脚本文件与后门文件特征的区别,通过基于行为特征的检测方式,能够有效检查出加密变形的web后门,提高web后门的检出率,减少误报率。与现有的静态内容特征的检测方法相比,本发明不需要获取脚本文件的内容,通过获取文件的属性特征进行检测,可以提闻检测效率。

图I为本发明实施例一提供的基于行为特征的web后门检测方法流程图;图2为本发明实施例一提供的步骤SlOl具体的方法流程图;图3为本发明实施例一提供的步骤S102具体的方法流程图;图4为本发明实施例二提供的基于行为特征的web后门检测方法流程图;图5为本发明实施例三提供的基于行为特征的web后门检测装置示意图。
具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。实施例一、图I是本实施例提供的基于行为特征的web后门检测方法流程图,如图I所示,该方法包括步骤S101、获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件属主、文件创建时间或文件权限,确定脚本文件的属性异常度,将所述属性异常度满足预设要求的脚本文件识别为后门文件。web应用程序中的所有程序脚本,基本以文件的形式保存在web服务器上,这些文件叫做web脚本文件,即脚本文件。脚本文件除了文件内容之外,还包括很多文件属性信息,例如文件名、文件创建时间、文件修改时间、文件属主、文件类型、文件权限及文件大小等。由于在部署线上代码时有统一固定流程和方式,不会在生产环境直接更改线上代码,因而在服务器端的脚本文件通常具有一定规律,比如,同一目录下脚本文件的创建时间基本一致,文件属主以及文件权限也有统ー的部署。而对于后门文件,是攻击者成功入侵系统后,在web服务器的web目录下留下的后门代码,用以获取网站控制权限。这些后门文件是通过web服务器系统创建,因而该些后门文件的创建时间与同目录下的其他文件的创建时间通常相差较大;文件属主为web服务器,也与其他的文件属主不同,而其他的文件属主通常为代码部署的用户;文件权限也可能不符合服务器部署的规则。本实施例则利用这些文件属性信息的特征来识别后门文件。图2是本实施例提供的步骤SlOl具体的方法流程图,如图2所示,包括步骤S201、获取web目录下文件的文件属性信息。从web服务器中获取web目录下文件的文件属性信息,包括文件名、文件创建时间、文件修改时间、文件属主、文件类型、文件权限及文件大小等。
步骤S202、将文件属主为异常用户且文件类型属于预设类型的脚本文件判断为可疑后门文件,为识别到的各个可疑后门文件赋予属主异常权值。判断脚本文件的文件属主是否发生改变,如果发生改变,则说明这个脚本文件可能存在异常。如果脚本执行用户和代码部署用户不同,首先记录初始状态下的文件属主,在通常情况下,脚本文件的文件属主为代码部署用户,然后,一旦发现某个脚本文件的文件属主发生改变,也就是说与初始状态不一致吋,则说明这个脚本文件可能存在异常,文件属主为异常用户。举个例子如果创建脚本文件的执行用户和代码部署用户是不同用户,按照正常程序运行时,文件属主通常仍是代码部署用户。当遇到异常情況,比如一个后门文件正在被创建时,文件属主就可能发生改变。比如web后门通过web服务器创建时,其文件属主就是web服务器的ー个系统用户,如果配置的系统用户为admin,那么该文件属主就为admin,与正常脚本文件的文件属主不同。根据判断结果为异常用户的脚本文件赋予属主异常权值。如果判断文件属主为异常用户,则为该脚本文件进行打分,得到属主异常权值。对于文件属主为异常用户的脚本文件,进ー步判断脚本文件的类型是否为预设类型。所述预设类型包括PHP、ASP、JSP或ASPX等类型文件。针对文件类型是所述预设类型的脚本文件进行调权,増大该脚本文件的属主异常权值。在本步骤中,可以只针对各个可疑后门文件赋予属主异常权值,也可以对每ー个脚本文件赋予属主异常权值。例如,针对每ー个脚本文件赋予属主异常权值的过程可以采用但不限于如下方式在web服务器的同目录下的脚本文件通常是由代码部署用户统ー创建的,初始时的文件属主通常为代码部署用户,属主异常权值可设为O。一旦发现某个脚本文件的文件属主变成其他用户时,则判断为可疑后门文件,属主异常权值可设为I。如果文件属主是脚本执行用户,说明为可疑后门文件的可能性更大,属主异常权值设为2。再进ー步判断脚本文件的类型,如果属于预设类型,说明该脚本文件为可疑后门文件的可能性又更大,属主异常权值设为3。步骤S203、计算各个脚本文件的创建时间相对于同目录其他文件的时间离散度,确定时间离散度大于预设离散度阈值的脚本文件,如果同目录下确定的脚本文件数量低于预设文件数,则将该目录下确定的脚本文件判断为可疑后门文件,为识别到的各个可疑后门文件赋予时间离散权值。判断脚本文件的创建时间相对于同目录其他文件的时间离散度是否符合预设要求,如果时间离散度大于预设离散度阈值,则将该脚本文件判断为离散文件,统计同目录下判断为离散文件的数量,如果统计到的同目录离散文件的数量低于预设文件数,则将该目录下的这些离散文件判断为可疑后门文件,如果统计到的同目录离散文件的数量高于预设文件数,则认为该目录下的这些离散文件为正常文件。所述时间离散度的计算方法可以但不限于采用以下方式获取同目录下所有脚本文件的创建时间;按照时间先后排序,计算各个脚本文件的时间离散度。离散度可以采用极差、距离均差的平方和、方差或标准差等数学方法进行计算。例如,以极差的方式进行计算,可以为当前脚本文件的时间离散度=当前脚本文件的创建时间-同目录下最先创建的脚本文件的创建时间例如,当前脚本文件的创建时间为某一天的10:30,而同目录下最先创建的脚本文件的创建时间是同一天的10:28,则此时当前脚本文件的时间离散度为2分钟。判断各个脚本文件的时间离散度是否超过预设离散度阈值,将超过预设离散度阈值的脚本文件判断为离散文件,并统计同目录下离散文件的数量,如果统计到的同目录离散文件的数量低于预设文件数,则将该目录下的这些离散文件判断为可疑后门文件,否则判断为正常文件。例如,如果预设离散度阈值为5分钟,预设文件数为3,则将时间离散度超过5分钟的脚本文件判断为离散文件,判断同目录下离散文件的数量是否低于3个,如果是,则将该目录下这低于3个的离散文件判断为可疑后门文件,否则判断为正常文件。比如,如果判断为离散文件的数目超过10个,则认为这些离散文件是正常文件,属于时间离散度大的目录文件。为本步骤中识别到的各个可疑后门文件赋予时间离散权值,可以但不限于采用归一化的时间离散度作为识别到的可疑后门文件的时间离散权值可疑后门文件的时间离散权值=可疑后门文件的时间离散度+同目录下脚本文件的时间离散度的平均值。当然,对于判断为正常文件的脚本文件,可以赋予时间离散权值为O。步骤S204、判断文件权限是否为默认文件权限,将不是默认文件权限且文件属主为预设用户的脚本文件识别为可疑后门文件,为识别到的各个可疑后门文件赋予权限异常 权值。判断脚本文件的文件权限是否为默认文件权限,如果发现文件权限不是默认文件权限,则赋予一个常数作为权限异常权值。在Iinux下,默认文件权限通常为0744,代表不设置用户ID和组ID,文件属主可以读写和执行文件,文件属主所在组和其他用户也具有读权限。如果有web后门文件通过mysql (数据库系统)直接导出到web目录中,则此脚本文件的文件权限为0666(所有均可读写)。如果该脚本文件的文件属主为mysql用户,就可以确定此文件为可疑后门文件。所述预设用户包括mysql用户,web服务器系统用户等。
步骤S205、计算web目录文件中各脚本文件的属性异常度。将步骤S202至步骤S204判断结果进行加权处理,将同一脚本文件的属主异常权值、时间离散权值和权限异常权值进行加权,得到各脚本文件的属性异常度。所述加权处理可以但不限于采用线性加权的方式。针对同一脚本文件属性异常度=al*属主异常权值+bl*时间离散权值+Cl*权限异常权值,其中,al、bl、cl为常数,是根据实际情况设定的权值因子。值得ー提的是,上述步骤S202至步骤S204的顺序可以任意调换,也可以仅采用其 中的ー种或任意组合进行判断。对于采用其中两种结合的方式进行判断时,可以将第三种的权值因子设为O。例如,当不进行步骤S202文件属主异常的判断,仅采用步骤S203和步骤S204时,可以设置al = O。对于仅采用其中ー种时,可以直接将该方式计算得到的权值作为属性异常度。步骤S206、将属性异常度满足预设要求的脚本文件判断为后门文件。按照步骤S205计算得到的各文件的属性异常度大小进行排序。所述满足预设要求包括所述属性异常度排在前NI个,NI为预设正整数,例如,当NI取I时,只选取属性异常度最大的脚本文件作为后门文件。或者,所述属性异常度大于预设阈值。继续參见图1,步骤S102、从web日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将访问异常度满足预设要求的脚本文件识别为后门文件。图3是本实施例步骤S102具体的方法流程图,如图3所示,包括步骤S301、获取web日志的数据信息。获取web日志中的数据信息,分析所有web访问日志。步骤S302、统计各个脚本文件的访问频度(即一段时间内的访问量PV),将访问频度低于预设访问数阈值的脚本文件识别为可疑后门文件,并计算识别到的可疑后门文件的访问频度异常权值。在所有成功的访问中,如果存在后门文件,则后门文件的访问频度应该是最低的,只有一个用户进行访问,访问的频度也较低,而正常文件的访问量一般都比较大。按照访问频度排序,将访问频度低于预设访问阈值的脚本文件识别为可疑后门文件。所述访问频度异常权值与脚本文件的访问频度成反比,访问频度越小,访问频度异常权值越大;反之,访问频度越大,则访问频度异常权值越小。步骤S303、统计各个脚本文件的访问来源数,将访问来源数低于预设访问来源阈值的脚本文件识别为可疑后门文件,并计算识别到的可疑后门文件的访问源异常权值。在所有成功的访问中,后门文件的访问来源数应该也是最低的,只有ー个用户进行访问,其访问来源数是I,而正常文件的访问来源一般都比较多。按照访问来源数排序,将访问来源数低于预设访问来源阈值的脚本文件识别为可疑后门文件。所述访问源异常权值与脚本文件的访问来源数成反比,访问来源数越小,访问源异常权值越大;反之,访问来源数越大,则访问源异常权值越小。步骤S304、分时段统计各个脚本文件的访问量,将分时段访问量超出预设分时段阈值的次数大于规定次数的脚本文件识别为可疑后门文件,并计算可疑后门文件的分时段访问异常权值。按照一定时间段对web日志进行分析。例如按照天来分析,一般所有文件的访问量和高峰期是有明显规律的。如果是用户访问的话,就会按照时间有坡度的升降。如果是机器自动访问,则文件的访问会有固定时间点。只有后门文件的访问规律是无序的。因此,可以通过分时段地统计访问量来检测,根据实际应用情形设置分时段阈值,对于分时段访问量超出分时段阈值的次数大于规定次数的脚本文件,可将其识别为可疑后门文件。例如,分为12个时段,每个时段设置不同的分时段阈值,规定超过分时段阈值的次数应该小于3次,当脚本文件有超过3个时段的访问量超出对应时段的分时段阈值时,则将该脚本文件识别为可疑后门文件。计算可疑后门文件的分时段访问异常权值,分时段访问量超出分时段阈值的次数越多,分时段访问异常权值越大,反之则分时段访问异常权值越小。步骤S305、针对同一个可疑后门文件,将步骤S302、步骤S303和步骤S304计算得到的权值进行加权,得到访问异常度。当然,步骤S304也可以结合步骤S302和步骤S303的结果,只对步骤S302或步骤S303中识别为可疑后门文件进行分时段统计,以提高效率。对于分时段访问量超出分时段阈值的次数大于规定次数的脚本文件,直接增大该可疑后门文件的访问异常度。步骤S306、将访问异常度满足预设要求的脚本文件识别为后门文件。所述访问异常度满足预设要求包括所述访问异常度排在前N2个,N2为预设正整数,例如,当N2取I时,只选取访问异常度最大的脚本文件作为后门文件。或者,所述访问异常度大于预设访问阈值。值得说明的是,在步骤S302、步骤S303和步骤S304中,可以将每个步骤中识别到的可疑后门文件按照统计的结果各自进行排序,然后分别取排在前N3 (N3为预设正整数)位的可疑后门文件,将重复次数最多的脚本文件判断为后门文件。例如,分别按照统计结果取排在前10位的脚本文件,如果某一脚本文件经过3种方式排序均排在前10位,那么就将该脚本文件判断为后门文件。继续参见图1,步骤S103、利用操作系统对web服务器的进程进行监控,判断web服务器的进程中是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。从理论上来说,web服务器是不会对除了 web日志、配置文件、web目录以外的其他系统目录进行读写操作的。如果出现了对其他系统目录进行读写操作,就可以说是特殊系统命令或操作。比如,出现操作/etc/passwd执行uname_a操作等。通过对web服务器的进程进行监控,检测是否有可疑的文件或命令操作。预先将常见的特殊系统命令或操作收集起来,形成预设操作命令集合。当web服务器的进程中出现执行特殊系统命令的操作时,将发出该特殊系统命令的脚本文件识别为后门文件。利用系统级别或内核级别的程序对web服务器进行监控。例如,利用操作系统的 API函数,所述API (Application Programming Interface)函数是操作系统的应用程序编程接口,对web服务器的进程进行监控,用以发现存在执行特殊系统命令的操作,或者有读写web目录之外文件的行为。
步骤S104、将所述步骤SlOl至步骤S103识别到的后门文件作为检测结果输出。将经过步骤SlOl至步骤S103中任一方式识别为后门文件的脚本文件为检测结
果O值得说明的是,本发明也可以将步骤SlOl至步骤S103任意结合进行检测和识别,下面通过实施例ニ进行说明采用全部结合的方式。实施例ニ 图4为实施例ニ提供的基于行为特征的web后门检测方法流程图。如图4所示,该方法包括步骤S401、获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件属主、文件创建时间或文件权限,确定脚本文件的属性异常度,将所述属性异常度作为脚本文件的第一权值Wl。所述属性异常度的计算方法与实施例一相同,故不在此赘述。步骤S402 JAweb日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将所述访问异常度作为脚本文件的第二权值W2。所述文件的访问异常度的计算方法与实施例一相同,故不在此赘述。步骤S403、利用操作系统对web服务器的进程进行监控,当web服务器的进程中出现执行预设的操作或命令时,为发出该操作或命令的脚本文件赋予进程异常权值作为第三权值W3。对web服务器的进程进行监控的过程与实施例一相同,当web服务器的进程中出现执行特殊系统命令的操作时,为发出该特殊系统命令的脚本文件赋予ー个进程异常权值作为脚本文件的第三权值W3。所述进程异常权值可以采用ー个常数权值。步骤S404、针对同一脚本文件,将所述步骤SlOl至步骤S103得到的第一权值、第ニ权值和第三权值进行加权,得到脚本文件的异常度。将同一脚本文件的第一权值W1、第二权值W2和第三权值W3进行加权处理,得到各个脚本文件的异常度。所述加权处理可以但不限于采用线性加权的方式。例如,所述脚本文件的异常度=a*Wl+b*W2+c*W3,其中,a、b、c为设置的常数权值因子。步骤S405、将异常度满足预设要求的脚本文件识别为后门文件,输出检测結果。按照步骤S404计算得到的异常度大小进行排序,将异常度满足预设要求的脚本文件作为检测结果输出。具体包括所述异常度排在前N个,N为预设正整数。或者,所述文件属性异常度大于预设异常度阈值。例如,当N取I时,通过上述手段的互相加权,最后异常度总分最高的脚本文件,最有可能为后门文件,输出作为检测結果。以上是对本发明所提供的方法进行的详细描述,下面对本发明提供的基于行为特征的web后门检测装置进行详细描述。实施例三图5是本实施例提供的基于行为特征的web后门检测装置示意图。如图5所示,该装置包括判断模块,包括属性异常判断模块10、访问异常判断模块20和进程异常监控模块30。属性异常判断模块10,用于获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件创建时间、文件属主或文件权限,确定脚本文件的属性异常度,将属性异常度满足预设要求的脚本文件识别为后门文件。web应用程序中的所有程序脚本,基本以文件的形式保存在web服务器上,这些文件叫做web脚本文件,即脚本文件。脚本文件除了文件内容之外,还包括很多文件属性信息,例如文件名、文件创建时间、文件修改时间、文件属主、文件类型、文件权限及文件大小等。由于在部署线上代码时有统一固定流程和方式,不会在生产环境直接更改线上代码,因而在服务器端的脚本文件通常具有一定规律,比如,同一目录下脚本文件的创建时间基本一致,文件属主以及文件权限也有统一的部署。 而对于后门文件,是攻击者成功入侵系统后,在web服务器的web目录下留下的后门代码,用以获取网站控制权限。这些后门文件是通过web服务器系统创建,因而该些后门文件的创建时间与同目录下的其他文件的创建时间通常相差较大;文件属主为web服务器,也与其他的文件属主不同,而其他的文件属主通常为代码部署的用户;文件权限也可能不符合服务器部署的规则。利用这些文件属性信息的特征来识别后门文件。属性异常判断模块10包括属性获取模块101、属主判断单元102、时间离散判断单元103、权限判断单元104、属性异常度计算单元105和属性异常输出单元106。属性获取模块101,用于获取web目录下文件的文件属性信息。从web服务器中获取web目录下文件的文件属性信息,包括文件名、文件创建时间、文件修改时间、文件属主、文件类型、文件权限及文件大小等。属主判断单元102,用于根据所述文件属主确定脚本文件的属性异常度。具体为判断是否脚本文件的文件属主为异常用户且文件类型属于预设类型,如果是,则为该脚本文件赋予属主异常权值。属主判断单元102判断脚本文件的文件属主是否发生改变,如果发生改变,则说明这个脚本文件可能存在异常。如果脚本执行用户和代码部署用户不同,首先记录初始状态下的文件属主,在通常情况下,脚本文件的文件属主为代码部署用户,然后,一旦发现某个脚本文件的文件属主发生改变,也就是说与初始状态不一致时,则说明这个脚本文件可能存在异常,文件属主为异常用户。举个例子如果创建脚本文件的执行用户和代码部署用户是不同用户,按照正常程序运行时,文件属主通常仍是代码部署用户。当遇到异常情况,比如一个后门文件正在被创建时,文件属主就可能发生改变。比如web后门通过web服务器创建时,其文件属主就是web服务器的一个系统用户,如果配置的系统用户为admin,那么该文件属主就为admin,与正常脚本文件的文件属主不同。根据判断结果为异常用户的脚本文件赋予属主异常权值。如果判断文件属主为异常用户,则为该脚本文件进行打分,得到属主异常权值。对于文件属主为异常用户的脚本文件,进一步判断脚本文件的类型是否为预设类型。所述预设类型包括PHP、ASP、JSP或ASPX等类型文件。针对文件类型是所述预设类型的脚本文件进行调权,增大该脚本文件的属主异常权值。时间离散判断单元103,用于根据所述文件创建时间确定脚本文件的属性异常度。具体为计算脚本文件的创建时间相比较同目录其他文件的时间离散度,确定时间离散度大于预设离散度阈值的脚本文件,如果确定的脚本文件数低于预设文件数,则为确定的脚本文件赋予时间离散权值。时间离散判断単元103计算各个脚本文件的创建时间相对于同目录其他文件的时间离散度,判断该时间离散度是否符合预设要求,如果时间离散度大于预设离散度阈值,则将该脚本文件判断为离散文件,统计同目录下判断为离散文件的数量,如果统计到的同目录离散文件的数量低于预设文件数,则将该目录下的这些离散文件判断为可疑后门文件,如果统计到的同目录离散文件的数量高于预设文件数,则认为该目录下的这些离散文件为正常文件。所述时间离散度的计算方法可以但不限于采用以下方式 获取同目录下所有脚本文件的创建时间;按照时间先后排序,计算各个脚本文件的时间离散度。离散度可以采用极差、距离均差的平方和、方差或标准差等数学方法进行计算。例如,以极差的方式进行计算,可以为当前脚本文件的时间离散度=当前脚本文件的创建时间-同目录下最先创建的脚本文件的创建时间例如,当前脚本文件的创建时间为某一天的10:30,而同目录下最先创建的脚本文件的创建时间是同一天的10:28,则此时当前脚本文件的时间离散度为2分钟。判断各个脚本文件的时间离散度是否超过预设离散度阈值,将超过预设离散度阈值的脚本文件判断为离散文件,并统计同目录下离散文件的数量,如果统计到的同目录离散文件的数量低于预设文件数,则将该目录下的这些离散文件判断为可疑后门文件,否则判断为正常文件。例如,如果预设离散度阈值为5分钟,预设文件数为3,则将时间离散度超过5分钟的脚本文件判断为离散文件,判断同目录下离散文件的数量是否低于3个,如果是,则将该目录下这低于3个的离散文件判断为可疑后门文件,否则判断为正常文件。比如,如果判断为离散文件的数目超过10个,则认为这些离散文件是正常文件,属于时间离散度大的目录文件。权限判断単元104,用于根据所述文件权限确定脚本文件的属性异常度。具体为判断脚本文件权限是否不是默认文件权限且文件属主为预设用户,如果是,则为该脚本文件赋予权限异常权值。在Iinux下,默认文件权限通常为0744,代表不设置用户ID和组ID,文件属主可以读写和执行文件,文件属主所在组和其他用户也具有读权限。如果有web后门文件通过mysql (数据库系统)直接导出到web目录中,则此脚本文件的文件权限为0666(所有均可读写)。如果该脚本文件的文件属主为mysql用户,就可以确定此文件为可疑后门文件。所述预设用户包括mysql用户,web服务器系统用户等。属性异常度计算单元105,用于计算web目录文件中各脚本文件的属性异常度。属性异常度计算单元105将属主判断単元102、时间离散判断単元103和权限判断単元103的计算结果进行加权处理,将同一脚本文件的属主异常权值、时间离散权值和权限异常权值进行加权,得到各脚本文件的属性异常度。所述加权处理可以但不限于采用线性加权的方式。
针对同一脚本文件
属性异常度=al*属主异常权值+bl*时间离散权值+Cl*权限异常权值,其中,al、bl、cl为常数,是根据实际情况设定的权值因子。值得一提的是,所述脚本文件的属性异常度可以是该脚本文件的属主异常权值、时间离散权值或权限异常权值中一种或者任意组合的加权值。属性异常输出单元106,用于将属性异常度满足预设要求的脚本文件判断为后门文件输出至输出模块50。按照属性异常度计算单元105计算得到的各文件的属性异常度大小进行排序。所述满足预设要求包括所述属性异常度排在前NI个,NI为预设正整数,例如,当NI取I时,只选取属性异常度最大的脚本文件作为后门文件。或者,所述属性异常度大于预设阈值。访问异常判断模块20,用于从web日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将访问异常度满足预设要求的脚本文件识别为后门文件。访问异常判断模块20包括日志获取单元201、访问频度统计单元202、访问来源数统计单元203、分时段统计单元204、访问异常度计算单元205和访问异常输出单元206。日志获取单元201,用于获取web日志的数据信息。访问频度统计单元202,用于统计各个脚本文件的访问频度,将访问频度低于预设访问数阈值的脚本文件识别为可疑后门文件,并计算识别到的可疑后门文件的访问频度异常权值。在所有成功的访问中,如果存在后门文件,则后门文件的访问频度应该是最低的,只有一个用户进行访问,访问的频度也较低,而正常文件的访问量一般都比较大。按照访问频度排序,将访问频度低于预设访问阈值的脚本文件识别为可疑后门文件。所述访问频度异常权值与脚本文件的访问频度成反比,访问频度越小,访问频度异常权值越大;反之,访问频度越大,则访问频度异常权值越小。访问来源数统计单元203,用于统计各个脚本文件的访问来源数,将访问来源数低于预设访问来源阈值的脚本文件识别为可疑后门文件,并计算识别到的可疑后门文件的访问源异常权值。在所有成功的访问中,后门文件的访问来源数应该也是最低的,只有一个用户进行访问,其访问来源数是I,而正常文件的访问来源一般都比较多。按照访问来源数排序,将访问来源数低于预设访问来源阈值的脚本文件识别为可疑后门文件。所述访问源异常权值与脚本文件的访问来源数成反比,访问来源数越小,访问源异常权值越大;反之,访问来源数越大,则访问源异常权值越小。分时段统计单元204,用于分时段统计各个脚本文件的访问量,将分时段访问量超出预设分时段阈值的次数大于规定次数的脚本文件识别为可疑后门文件,并计算可疑后门文件的分时段访问异常权值。按照一定时间段对web日志进行分析。例如按照天来分析,一般所有文件的访问量和高峰期是有明显规律的。如果是用户访问的话,就会按照时间有坡度的升降。如果是机器自动访问,则文件的访问会有固定时间点。只有后门文件的访问规律是无序的。因此,可以通过分时段地统计访问量来检测,根据实际应用情形设置分时段阈值,对于分时段访问量超出分时段阈值的次数大于规定次数的脚本文件,可将其识别为可疑后门文件。例如,分为12个时段,每个时段设置不同的分时段阈值,规定超过分时段阈值的次数应该小于3次,当脚本文件有超过3个时段的访问量超出对应时段的分时段阈值时,则将该脚本文件识别为可疑后门文件。计算可疑后门文件的分时段访问异常权值,分时段访问量超出分时段阈值的次数越多,分时段访问异常权值越大,反之则分时段访问异常权值越小。访问异常度计算单元205,用于针对同一个脚本文件,将访问频度异常权值、访问源异常权值或分时段访问异常权值进行加权,得到访问异常度。值得ー提的是,所述脚本文件的访问异常度可以是访问频度异常权值、访问源异常权值或分时段访问异常权值中的ー种或任意组合的加权值。

访问异常输出单元206,用于将访问异常度满足预设要求的脚本文件识别为后门文件输出至输出模块50。所述访问异常度满足预设要求包括所述访问异常度排在前N2个,N2为预设正整数,例如,当N2取I吋,只选取访问异常度最大的脚本文件作为后门文件。或者,所述访问异常度大于预设访问阈值。进程异常监控模块30,利用操作系统对web服务器的进程进行监控,判断web服务器的进程中是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。从理论上来说,web服务器是不会对除了 web日志、配置文件、web目录以外的其他系统目录进行读写操作的。如果出现了对其他系统目录进行读写操作,就可以说是特殊系统命令或操作。比如,出现操作/etc/passwd执行uname_a操作等。通过对web服务器的进程进行监控,检测是否有可疑的文件或命令操作。预先将常见的特殊系统命令或操作收集起来,形成预设操作命令集合。当web服务器的进程中出现执行特殊系统命令的操作时,将发出该特殊系统命令的脚本文件识别为后门文件。利用系统级别或内核级别的程序对web服务器进行监控。例如,利用操作系统的API函数,所述API (Application Programming Interface)函数是操作系统的应用程序编程接ロ,对web服务器的进程进行监控,用以发现存在执行特殊系统命令的操作,或者有读写web目录之外文件的行为。进程异常监控模块30包括进程监控单元301、赋值单元302和进程异常输出单元303。进程监控单元301对web服务器的进程进行监控,检测是否有可疑的文件或命令操作。当出现时,赋值単元302为发出预设的操作或命令的脚本文件赋予进程异常权值。进程异常输出単元303将发出该特殊系统命令的脚本文件识别为后门文件输出至输出模块50。加权模块40,针对所述判断模块识别到的后门文件中的同一脚本文件,将该脚本文件的属性异常度、访问异常度或进程异常权值进行加权,得到该脚本文件的异常度。当判断模块包括所述属性异常判断模块、访问异常判断模块和进程异常监控模块中任意组合时,加权模块40相应地将属性异常度计算单元105、访问异常度计算单元205和赋值单元302计算得到的权值进行加权,得到该脚本文件的异常度。输出模块50,用于根据加权模块40的计算结果,将异常度满足预设要求的脚本文件作为检测结果输出。所述异常度满足预设要求包括所述异常度排在前N个,N为预设正整数;或者,所述异常度大于预设异常度阈值。例如,当N取I时,通过上述手段的互相加权,最后异常度总分最高的脚本文件,最有可能为后门文件,输出作为检测结果。值得一提的是,输出模块50也可以直接输出属性异常输出单兀106、访问异常输出单元206或进程异常输出单元303的检测结果,即直接将所述判断模块识别为后门文件的脚本文件作为检测结果输出。本发明的方法和装置不依赖于后门文件的静态内容进行后门的检测,因此没有静态特征码检查的缺点,大大扩宽了后门的检出率,同时又可以根据实际调整每项检测方法的报警阈值,减少后门误报率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。权利要求
1.一种基于行为特征的web后门检测方法,其特征在于,包括 51、针对脚本文件分别执行步骤Sl_l或步骤Sl_2,其中 步骤Sl_l、获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件创建时间、文件属主或文件权限,确定脚本文件的属性异常度,将属性异常度满足预设要求的脚本文件识别为后门文件; 步骤Sl_2、从web日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将访问异常度满足预设要求的脚本文件识别为后门文件; 52、将步骤SI中识别为后门文件的脚本文件作为检测结果输出。
2.根据权利要求I所述的方法,其特征在于,所述步骤Sl_l中, 根据所述文件属主确定脚本文件的属性异常度为判断是否脚本文件的文件属主为异常用户且文件类型属于预设类型,如果是,则为该脚本文件赋予属主异常权值; 根据所述文件创建时间确定脚本文件的属性异常度为计算脚本文件的创建时间相比较同目录其他文件的时间离散度,确定时间离散度大于预设离散度阈值的脚本文件,如果确定的脚本文件数低于预设文件数,则为确定的脚本文件赋予时间离散权值; 根据所述文件权限确定脚本文件的属性异常度为判断脚本文件权限是否不是默认文件权限且文件属主为预设用户,如果是,则为该脚本文件赋予权限异常权值。
3.根据权利要求2所述的方法,其特征在于,所述脚本文件的属性异常度是该脚本文件的属主异常权值、时间离散权值或权限异常权值中一种或者任意组合的加权值。
4.根据权利要求I所述的方法,其特征在于,所述属性异常度满足预设要求包括 所述属性异常度排在前NI个,NI为预设正整数; 或者,所述属性异常度大于预设异常度阈值。
5.根据权利要求I所述的方法,其特征在于,所述步骤Sl_2中, 根据所述访问频度的统计结果确定脚本文件的访问异常度为判断脚本文件的访问频度是否低于预设访问数阈值,如果是,则为该脚本文件赋予访问频度异常权值; 根据所述访问来源数的统计结果确定脚本文件的访问异常度为判断脚本文件的访问来源数是否低于预设访问来源阈值,如果是,则为该脚本文件赋予访问源异常权值; 根据所述分时段访问量的统计结果确定脚本文件的访问异常度为判断脚本文件的分时段访问量超出预设分时段阈值的次数是否大于规定次数,如果是,则为该脚本文件赋予分时段访问异常权值。
6.根据权利要求5所述的方法,其特征在于,所述脚本文件的访问异常度是该脚本文件的访问频度异常权值、访问源异常权值或分时段访问异常权值中的一种或任意组合的加权值。
7.根据权利要求I所述的方法,其特征在于,所述访问异常度满足预设要求包括 所述访问异常度排在前N2个,N2为预设正整数; 或者,所述访问异常度大于预设访问阈值。
8.根据权利要求I所述的方法,其特征在于,所述步骤SI还包括针对脚本文件执行步骤 Sl_3 利用操作系统对web服务器的进程进行监控,判断web服务器的进程中是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。
9.根据权利要求8所述的方法,其特征在于,所述步骤Sl_3包括为发出预设的操作或命令的脚本文件赋予进程异常权值; 所述步骤S2包括 针对所述步骤SI识别到的后门文件中的同一脚本文件,将该脚本文件的属性异常度或访问异常度中的一种或组合与进程异常权值进行加权,得到该脚本文件的异常度; 将异常度满足预设要求的脚本文件作为检测结果输出。
10.根据权利要求9所述的方法,其特征在于,所述异常度满足预设要求包括 所述异常度排在前N个,N为预设正整数; 或者,所述异常度大于预设异常度阈值。
11.一种基于行为特征的web后门检测装置,其特征在于,包括 判断模块,包括属性异常判断模块或访问异常判断模块,其中 所述属性异常判断模块,用于获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件创建时间、文件属主或文件权限,确定脚本文件的属性异常度,将属性异常度满足预设要求的脚本文件识别为后门文件; 所述访问异常判断模块,用于从web日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,根据统计结果确定脚本文件的访问异常度,将访问异常度满足预设要求的脚本文件识别为后门文件; 输出模块,用于将所述判断模块识别为后门文件的脚本文件作为检测结果输出。
12.根据权利要求11所述的装置,其特征在于,所述属性异常判断模块具体配置包括 根据所述文件属主确定脚本文件的属性异常度为判断是否脚本文件的文件属主为异常用户且文件类型属于预设类型,如果是,则为该脚本文件赋予属主异常权值; 根据所述文件创建时间确定脚本文件的属性异常度为计算脚本文件的创建时间相比较同目录其他文件的时间离散度,确定时间离散度大于预设离散度阈值的脚本文件,如果确定的脚本文件数低于预设文件数,则为确定的脚本文件赋予时间离散权值; 根据所述文件权限确定脚本文件的属性异常度为判断脚本文件权限是否不是默认文件权限且文件属主为预设用户,如果是,则为该脚本文件赋予权限异常权值。
13.根据权利要求12所述的装置,其特征在于,所述脚本文件的属性异常度是该脚本文件的属主异常权值、时间离散权值或权限异常权值中ー种或者任意组合的加权值。
14.根据权利要求11所述的装置,其特征在于,所述属性异常度满足预设要求包括 所述属性异常度排在前NI个,NI为预设正整数; 或者,所述属性异常度大于预设异常度阈值。
15.根据权利要求11所述的装置,其特征在于,所述访问异常判断模块具体配置包括 根据所述访问频度的统计结果确定脚本文件的访问异常度为判断脚本文件的访问频度是否低于预设访问数阈值,如果是,则为该脚本文件赋予访问频度异常权值; 根据所述访问来源数的统计结果确定脚本文件的访问异常度为判断脚本文件的访问来源数是否低于预设访问来源阈值,如果是,则为该脚本文件赋予访问源异常权值; 根据所述分时段访问量的统计结果确定脚本文件的访问异常度为判断脚本文件的分时段访问量超出预设分时段阈值的次数是否大于规定次数,如果是,则为该脚本文件赋予分时段访问异常权值。
16.根据权利要求15所述的装置,其特征在于,所述脚本文件的访问异常度是该脚本文件的访问频度异常权值、访问源异常权值或分时段访问异常权值中的一种或任意组合的加权值。
17.根据权利要求11所述的装置,其特征在于,所述访问异常度满足预设要求包括 所述访问异常度排在前N2个,N2为预设正整数; 或者,所述访问异常度大于预设访问阈值。
18.根据权利要求11所述的装置,其特征在于,所述判断模块还包括 进程异常监控模块,利用操作系统对web服务器的进程进行监控,判断web服务器的进程中是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。
19.根据权利要求18所述的装置,其特征在于,所述进程异常监控模块为发出预设的操作或命令的脚本文件赋予进程异常权值; 该装置还包括 加权模块,针对所述判断模块识别到的后门文件中的同一脚本文件,将该脚本文件的属性异常度或访问异常度中的一种或组合与进程异常权值进行加权,得到该脚本文件的异常度; 所述输出模块根据所述加权模块的计算结果,将异常度满足预设要求的脚本文件作为检测结果输出。
20.根据权利要求19所述的装置,其特征在于,所述异常度满足预设要求包括 所述异常度排在前N个,N为预设正整数; 或者,所述异常度大于预设异常度阈值。
全文摘要
本发明提供了一种基于行为特征的web后门检测方法和装置,该方法包括步骤S1_1、获取web目录下脚本文件的文件属性信息,根据所述文件属性信息中的文件创建时间、文件属主或文件权限,确定脚本文件的属性异常度,将属性异常度满足预设要求的脚本文件识别为后门文件;步骤S1_2、从web日志中统计各脚本文件的访问频度、访问来源数或分时段访问量,确定访问异常度,将访问异常度满足预设要求的脚本文件识别为后门文件;步骤S1_3、利用操作系统对web服务器的进程进行监控,判断是否有预设的操作或命令,如果有,将发出该操作或命令的脚本文件识别为后门文件。本发明基于行为特征的检测方式,能有效检出加密变形的web后门,提高检出率和检测效率,减少误报率。
文档编号H04L29/06GK102647421SQ20121010248
公开日2012年8月22日 申请日期2012年4月9日 优先权日2012年4月9日
发明者方小顿, 王珉然 申请人:北京百度网讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1