一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

WebShell检测装置、WebShell检测方法及计算机可读存储介质与流程

2021-12-17 21:40:00 来源:中国专利 TAG:

webshell检测装置、webshell检测方法及计算机可读存储介质
技术领域
1.本公开涉及webshell检测装置、webshell检测方法及计算机可读存储介质。更具体地,涉及基于多源日志进行webshell检测的技术。


背景技术:

2.webshell是一种利用asp(active server pages:动态服务器页面)和php(hypertext preprocessor:超文本预处理器)等服务端编程语言开发的脚本程序,这种脚本文件具备一定的管理功能,能够用于对服务器上的文件进行一定权限范围内的操作,同时还具备执行一些操作系统指令、执行自定义的脚本代码等功能。另一方面,因为webshell是通过http协议进行访问的,相关的访问不会受到传统防火墙软件的拦截,因此,攻击者在尝试入侵一个web站点时,都会将对该网站植入webshell作为渗透测试的关键目标。


技术实现要素:

3.在现有技术中,针对webshell的检测主要包括两种,一种是静态规则检测,匹配源代码中是否存在关键特征,如代码执行函数等;另一种是动态沙箱检测,观察网页脚本在沙箱中是否存在异常的行为,如执行shell函数等。以上两种方法在一定程度上对webshell有较好的检测精准度,但也存在以下不足:在基于静态规则的检测中,需要提取动态网页中的代码特征,并与特征库中预先存储的字符串进行比对,需要不断更新特征库,但即便这样,仍然可能存在无法应对新出现的未知的webshell的问题。另一方面,由于攻击者只要通过更改变量名函数名等对源代码进行混淆、加密等操作就可以轻松绕过特征检测,因此,在基于静态规则的检测还可能存在漏报、误报的问题。在动态沙箱检测中需要执行动态网页脚本,但webshell文件往往都存在参数触发条件,触发点极其隐蔽而很难寻找,无法触发就无法捕获执行异常,因此,必然影响检测精确度。
4.本公开的一个目的在于提供一种能够高精度地检测webshell文件的webshell检测装置、webshell检测方法及计算机可读存储介质。
5.在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
6.根据本公开的一个方面,提供一种webshell检测装置,其中,上述webshell检测装置包括处理电路,上述处理电路被配置为:收集http访问日志,对新增的访问日志进行过滤处理;根据保留下来上述http访问日志中的url字段以及referer字段的信息,获取特殊标签节点,提取与上述特殊标签节点对应的http访问日志中的客户端ip地址;对上述客户端ip地址在预定时间内的访问行为进行回溯分析,判定上述特殊标签节点对应的页面是否为webshell页面,上述特殊标签节点包括孤立节点以及无子节点的节点。
7.根据本公开的另一方面,提供一种webshell检测方法,其中,上述webshell检测方法包括:收集http访问日志,对新增的访问日志进行过滤处理;根据保留下来上述http访问日志中的url字段以及referer字段的信息,获取特殊标签节点,提取与上述特殊标签节点对应的http访问日志中的客户端ip地址;对提取出的上述客户端ip地址在预定时间内的访问行为进行回溯分析,判定上述特殊标签节点对应的页面是否为webshell页面,上述特殊标签节点包括孤立节点以及无子节点的节点。
8.根据本公开的另一方面,提供一种计算机可读存储介质,包括可执行指令,当上述可执行指令由计算机执行时,使上述计算机执行上述webshell检测方法。
9.根据本公开,能够高精度地检测webshell文件。
附图说明
10.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。参照附图,根据下面的详细描述,可以更清楚地理解本公开,其中:
11.图1是示意地示出本公开涉及的webshell检测技术的应用场景的示意图;
12.图2是示意地示出本公开的实施例的webshell检测装置2000的构成的例子的框图;
13.图3是示意地示出本公开的实施例的webshell检测装置2000所执行的检测处理的例示性的流程图;
14.图4是示意地示出根据url、referer字段的信息构建的有向图的一个例子的图;
15.图5是示意地示出在获取到特殊标签节点之后进行的分析处理的一个例子的流程图;
16.图6是示意地示出本公开的实施例的webshell检测装置2000所执行的检测处理的另一个例示性的流程图;
17.图7示意地示出实现本公开的实施例的计算设备300的示例性的配置框图。
具体实施方式
18.在下文中,参照附图详细地描述本公开内容的优选实施例。需要注意的是,在本说明书和附图中,用相同的附图标记来表示具有基本相同的功能和结构的结构元件,并且省略对这些结构元件的重复说明。
19.以下,结合图1说明本公开涉及的webshell检测技术的应用场景。如图1的示意图所示,本公开的webshell检测技术应用于如下场景:客户端请求web服务器的服务,web服务器作为应答而向客户端返回web访问服务,在访问-应答的过程中,web服务器会在访问日志中记录下客户端发出访问请求时的相关内容。另外,在该访问-应答的过程中,根据客户端的访问请求的具体行为,web服务器有时会发出如文件上传告警、webshell告警、命令执行告警等告警,并相应地产生安全告警日志。本公开基于由web服务器产生的访问行为日志以及安全告警日志来检测webshell文件。值得注意的是,本公开的webshell检测方案要求web访问日志的字段至少应当包括:客户端ip地址、访问时间、referer、访问文件的url以及服务器响应状态码。
20.另外,应当理解,除了上述的要求字段之外,web访问日志中当然还可以包含其它
字段,例如,还可以包含请求访问的方式等字段。
21.图2是示意地示出本公开的实施例的webshell检测装置2000的构成的例子的框图。
22.在一些实施例中,webshell检测装置2000可以包括处理电路2010。webshell检测装置2000的处理电路2010提供webshell检测装置2000的各种功能。在一些实施例中,webshell检测装置2000的处理电路2010可以被配置为用于执行webshell检测装置2000中的webshell检测方法。另外,既可以在web服务器中设置处理电路2010,即由web服务器实现webshell检测装置2000的webshell检测,也可以独立于web服务器而单独设置webshell检测装置2000。
23.处理电路2010可以指在计算系统中执行功能的数字电路系统、模拟电路系统或混合信号(模拟和数字的组合)电路系统的各种实现。处理电路可以包括例如诸如集成电路(integrated circuit,ic)、专用集成电路(application specific integrated circuit,asic)这样的电路、单独处理器核心的部分或电路、整个处理器核心、单独的处理器、诸如现场可编程门阵列(field programmable gate array,fpga)的可编程硬件设备、和/或包括多个处理器的系统。
24.在一些实施例中,处理电路2010可以包括:日志筛选单元2020、特殊标签节点获取单元2030以及判定单元2040。其中,日志筛选单元2020被配置为执行后述图3的流程图中的步骤s2002,特殊标签节点获取单元2030被配置为执行后述图3的流程图中的步骤s2003,判定单元2040被配置为执行后述图3的流程图中的步骤s2004以及后述图6的流程图中的步骤s2006。
25.在一些实施例中,webshell检测装置2000还可以包括存储器(未图示)。webshell检测装置2000的存储器可以存储由处理电路2010产生的信息以及用于webshell检测装置2000操作的程序和数据。存储器可以是易失性存储器和/或非易失性存储器。例如,存储器可以包括但不限于随机存取存储器(random access memory,ram)、动态随机存取存储器(dynamic random access memory,dram)、静态随机存取存储器(static random-access memory,sram)、只读存储器(read-only memory,rom)以及闪存存储器。
26.另外,webshell检测装置2000可以以芯片级来实现,或者也可以通过包括其它外部部件而以设备级来实现。
27.应当理解,上述日志筛选单元2020、特殊标签节点获取单元2030以及判定单元2040仅仅是根据其所实现的具体功能所划分的逻辑模块,而不是用于限制具体的实现方式。在实际实现时,上述各个单元可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(cpu或dsp等)、集成电路等)来实现。
28.图3是示意地示出本公开的实施例的webshell检测装置2000所执行的检测处理的例示性的流程图。
29.如图3的步骤s2001所示,该webshell检测处理被定期触发或者当新增访问日志达到一定数量时被触发。虽未图示,但应当理解的是,在步骤s2001中反复判定预定的定时是否到来或者新增的访问日志是否达到预定数量,直到判定为“是”而进入步骤s2002。
30.在步骤s2002中,日志筛选单元2020收集http访问日志,对新增的访问日志进行过滤处理,去除对静态资源的访问日志以及对不存在的资源的访问日志。
31.具体地,在一些实施例中,日志筛选单元2020通过登录web服务器获取web中间件(例如apache,nginx等软件)产生的访问日志,访问日志中记录了客户端在对服务端发起访问请求时的相关信息。其中,获取服务器访问日志的方式可以有多种,包括但不仅限于如下几种:
32.(1)通过远程终端(例如,ssh或者远程桌面等)登录到服务器获取日志。
33.(2)通过ftp工具下载日志。
34.(3)在服务器上配置监控日志的服务,实时获取日志。
35.在一些实施例中,在获取到http访问日志后,日志筛选单元2020根据静态资源后缀列表/白名单等去除对静态文件如文件后缀为css、jpg等的文件的访问记录。然后,日志筛选单元2020进一步筛除访问资源不存在的访问记录,例如,筛除服务器的响应状态码为4xx的访问记录,仅保留对真实存在的动态网页脚本的请求日志。这里,常见的动态网页脚本有asp、php等类型。应注意的是,在进行动态网页脚本筛选时,只要筛选与服务器web环境相匹配的脚本类型的访问记录即可,例如,若服务端只支持php脚本程序的解析,那么在筛选时,只筛选出php文件的访问记录即可。
36.在如上所述地对日志数据进行筛选处理后,仅将需要进行分析的日志记录保留并存储下来。在一些实施例中,替代存储日志记录本身而存储日志中的特定的参数信息,例如,只存储客日志数据中的客户端ip地址、访问时间、referer、访问文件的url以及服务器响应状态码等字段的信息。
37.接着,处理进入步骤s2003。
38.在该步骤s2003中,特殊标签节点获取单元2030根据保留下来的http访问日志中的“url”字段以及“referer”字段的信息,获取特殊标签节点,提取与特殊标签节点对应的http访问日志中的客户端ip地址。其中,“url”字段的信息表示请求访问的网页,“referer”字段的信息表示客户端发出该访问请求前所在的页面,用于告知服务器此条访问的来源页面。另外,本公开的“特殊标签节点”包括:既无母节点又无子节点的节点即孤立节点、以及无子节点。
39.在一些实施例中,根据url、referer等字段的信息构建有向图,其中,以节点代表不同的url,并根据“referer”字段的信息确定节点之间的关系。图4是示意地示出根据url、referer字段的信息构建的有向图的一个例子的图。在图4所示的有向图中包括url1~url6共计6个节点,这6个节点分别表示不同的网页文件,各网页之间能够通过超链接来引导用户访问。另外,一个网页文件的入度表示从其他页面跳转到该页面,同理,一个网页文件的出度表示从该页面跳转到其他页面。一般来说,正常网站页面之间存在互相链接,因此会有一定的出入度,但webshell页面通常与其他网站页面没有超链接,通常出入度为0。不过,有的webshell页面也会有一定的出入度,比如当w采用超链接列出网站目录中的文件的时候,webshell页面就会产生与其他页面的交互,但总的来说,向webshell页面的超链接数量是非常少的。
40.另外,一般将图4所示的有向图中的带箭头曲线的出发节点称作是该曲线的指向节点的“母节点”,将指向节点称作是出发节点的“子节点”,“母节点”和“子节点”是一对相对的概念。在图4所示的有向图中,节点url1~url3是既有母节点又有子节点的一般节点,其对应的是正常的网站网页。另外,节点url4只有子节点而无母节点,节点url5只有母节点
而无子节点,url6是既无子节点又无母节点的孤立节点。在此,节点url5和url6相当于本公开涉及的“特殊标签节点”。
41.接下来,结合图5具体说明在获取到特殊标签节点之后进一步的分析处理的一个例子。图5是示意地示出在获取到特殊标签节点之后进行的分析处理的一个例子的流程图。
42.在步骤s3001中,根据出入度,判断特殊标签节点是否为孤立节点。孤立节点既没有母节点有没有子节点,因此其出入度为“0”。在判断为是孤立节点的情况下,处理进入步骤s3002,在判断为并非孤立节点即只有入度而没有出度的无子节点的情况下,处理进入步骤s3003。
43.在步骤s3002中,提取与特殊标签节点对应的http访问日志中的客户端ip地址。
44.在步骤s3003中,判断客户端在第一次访问该特殊标签节点后的单位时间内访问该特殊标签节点的次数占该客户端所有访问的次数的比率是否大于第一阈值。在此,进行该判断的原因在于:一般来说,攻击者对其已植入webshell文件的web服务器进行访问时,访问最多的应该是该webshell文件,因此,能够基于客户端在单位时间内访问特殊标签节点的访问次数占该客户端对该web服务器的所有访问次数的比率判定webshell文件。另外,作为判定基准的第一阈值,只要是能够表示占比较大的值即可,例如可以设定为90%。在此,“单位时间”例如是一小时、一天、一周、一个月甚至一年等,可以根据需要任意设定。
45.在步骤3003中判定为“是”的情况下,进入步骤s3004,在判定为“否”的情况下结束处理。
46.在步骤3004中,判定该特殊标签节点的母节点的数量是否小于等于第二阈值。如上所述,即便具有指向webshell页面的超链接,也就是说即使webshell节点具有母节点,母节点的数量也应当非常少。这里,作为判断基准的第二阈值,可以根据需要而设定,例如可以设定为1。
47.在步骤3004中判定为“是”的情况下,进入步骤s3005,在判定为“否”的情况下结束处理。
48.接下来,在步骤s3005中统计单位时间内访问该特殊标签节点的客户端的数量,判定统计出的客户端的数量是否小于预先设定的阈值。在此,由于一般来说只有植入webshell页面的攻击者才会访问该webshell页面,所以单位时间内的对webshell页面的访问数量应当比较低。另外,作为判定基准的第三阈值,可以根据需要而设定,例如可以设定为3。在此,“单位时间”例如是一小时、一天、一周、一个月甚至一年等,可以根据需要任意设定。
49.接下来,回到图3,继续说明接下来的步骤s2004的处理。
50.在步骤s2004中,判定单元2040对在步骤s2003中提取出的客户端ip地址在预定时间内的访问行为进行回溯分析,判定特殊标签节点对应的页面是否为webshell页面。在此,“预定时间”例如也可以是一小时、一天、一周、一个月甚至一年等,能够根据需要任意设定。
51.在一些实施例中,在对客户端ip地址在预定时间内的访问行为进行回溯时,分析是否存在文件上传行为,若存在文件上传行为,则进一步判断提交的参数是否具有代码特征,若具有代码特征,则判定为所述特殊标签节点对应的页面为webshell页面。在一些实施例中,通过判断是否存在命令执行函数、文件写入函数、无语义字符串、特殊变量等来判断提交的参数是否具有代码特征。在一些实施例中,通过判断参数内容能否被编译、解析来判
断提交的参数是否具有代码特征。
52.在步骤s2004之后结束webshell检测处理。另外,在实际应用中,也可以将在步骤s2004中判定为webshell页面的相关访问日志发送给网管运维人员,由运维人员进一步地进行人工审核确认,从而进一步提高检测准确率。
53.图6是示意地示出本公开的实施例的webshell检测装置2000所执行的检测处理的另一个例示性的流程图。如图6所示,在一些实施例中,在图3所示的webshell检测流程的基础上,还包括如下步骤:
54.步骤s2005:收集安全警告日志。在此,安全警告日志的收集方法与访问日志的收集方法相同,因此不再赘述。
55.步骤s2006:判定单元2040对在步骤s2003中提取出的客户端ip地址在预定时间内的安全告警日志进行分析,判断是否存在导致植入webshell的攻击行为,若存在,则判定所述特殊标签节点对应的页面为webshell页面。
56.在一些实施例中,针对在步骤s2003中提取出的客户端ip地址,通过判断安全告警日志中是否出现例如文件上传告警、webshell告警、命令执行告警等来判断是否存在导致植入webshell的攻击行为。
57.步骤s2007:将步骤s2006的判定结果与步骤s2004的判定结果合并,输出最终结果。在一些实施例中,对以上两个步骤的判定结果进行逻辑或操作,由此能够网罗更多的存疑的访问资源,能够防止漏检的发生。在一些实施例中,对上述两个步骤的判定结果进行逻辑与操作,由此能够提高webshell的检测效率。
58.根据本公开的webshell装置以及方法,由于依据webshell攻击的特征,从页面关联关系中发现异常页面,并对客户端ip的访问日志进行回溯与分析,结合对客户端的访问行为、参数内容等进行进一步的判断,从而保证了检测的精准度,同时,不会对网络与应用系统本身造成影响,能够很好地满足安全检测的要求。
59.另外,根据本公开的webshell装置以及方法,能够避免静态特征检测被绕过、动态沙箱检测参数条件难触发等问题的出现,能够克服不同种攻击手法如代码混淆、加密等对检测结果的影响,并充分考虑了方法的落地性。
60.进而,根据本公开的webshell装置以及方法,将基于客户端ip的访问日志的回溯与分析、与基于客户端ip的特定告警日志的判研与分析相结合,能够进一步防止漏检的发生,能够实现webshell页面的高精度的检测。
61.接下来,图7示出了可以实现根据本公开的实施例的计算设备300的示例性配置。计算设备300是可以应用本公开的上述方面的硬件设备的实例。计算设备300可以是被配置为执行处理和/或计算的任何机器。计算设备300可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(pda)、智能电话、车载计算机或以上组合。
62.如图7所示,计算设备300可以包括可以经由一个或多个接口与总线302连接或通信的一个或多个元件。总线302可以包括但不限于,工业标准架构(industry standard architecture,isa)总线、微通道架构(micro channel architecture,mca)总线、增强isa(eisa)总线、视频电子标准协会(vesa)局部总线、以及外设组件互连(pci)总线等。计算设备300可以包括例如一个或多个处理器304、一个或多个输入设备306、以及一个或多个输出设备308。一个或多个处理器304可以是任何种类的处理器,并且可以包括但不限于一个或
多个通用处理器或专用处理器(诸如专用处理芯片)。各处理器304例如可以分别对应于图2中的处理电路2010,被配置为能够实现本公开的webshell检测装置2000的功能。输入设备306可以是能够向计算设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备308可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
63.计算设备300还可以包括或被连接至非暂态存储设备314,该非暂态存储设备314可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。计算设备300还可以包括随机存取存储器(ram)310和只读存储器(rom)312。rom 312可以以非易失性方式存储待执行的程序、实用程序或进程。ram 310可提供易失性数据存储,并存储与计算设备300的操作相关的指令。计算设备300还可包括耦接至数据链路318的网络/总线接口316。网络/总线接口316可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙
tm
设备、802.11设备、wifi设备、wimax设备、蜂窝通信设施等)。
64.应当理解,本说明书中“实施例”或类似表达方式的引用是指结合该实施例所述的特定特征、结构、或特性系包括在本公开的至少一具体实施例中。因此,在本说明书中,“在本公开的实施例中”及类似表达方式的用语的出现未必指相同的实施例。
65.本领域技术人员应当知道,本公开被实施为一系统、装置、方法或作为计算机程序产品的计算机可读媒体(例如非瞬态存储介质)。因此,本公开可以实施为各种形式,例如完全的硬件实施例、完全的软件实施例(包括固件、常驻软件、微程序代码等),或者也可实施为软件与硬件的实施形式,在以下会被称为“电路”、“模块”或“系统”。此外,本公开也可以任何有形的媒体形式实施为计算机程序产品,其具有计算机可使用程序代码存储于其上。
66.本公开的相关叙述参照根据本公开具体实施例的系统、装置、方法及计算机程序产品的流程图和/或框图来进行说明。可以理解每一个流程图和/或框图中的每一个块,以及流程图和/或框图中的块的任何组合,可以使用计算机程序指令来实施。这些计算机程序指令可供通用型计算机或特殊计算机的处理器或其它可编程数据处理装置所组成的机器来执行,而指令经由计算机或其它可编程数据处理装置处理以便实施流程图和/或框图中所说明的功能或操作。
67.在附图中显示根据本公开各种实施例的系统、装置、方法及计算机程序产品可实施的架构、功能及操作的流程图及框图。因此,流程图或框图中的每个块可表示一模块、区段、或部分的程序代码,其包括一个或多个可执行指令,以实施指定的逻辑功能。另外应当注意,在某些其它的实施例中,块所述的功能可以不按图中所示的顺序进行。举例来说,两个图示相连接的块事实上也可以同时执行,或根据所涉及的功能在某些情况下也可以按图标相反的顺序执行。此外还需注意,每个框图和/或流程图的块,以及框图和/或流程图中块的组合,可藉由基于专用硬件的系统来实施,或者藉由专用硬件与计算机指令的组合,来执行特定的功能或操作。
68.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也
不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献