CN113779571B - WebShell检测装置、WebShell检测方法及计算机可读存储介质 - Google Patents
WebShell检测装置、WebShell检测方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113779571B CN113779571B CN202010522195.1A CN202010522195A CN113779571B CN 113779571 B CN113779571 B CN 113779571B CN 202010522195 A CN202010522195 A CN 202010522195A CN 113779571 B CN113779571 B CN 113779571B
- Authority
- CN
- China
- Prior art keywords
- access
- url
- access log
- suspicious
- webshell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 111
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000007781 pre-processing Methods 0.000 claims abstract description 16
- 238000001914 filtration Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 20
- 238000013515 script Methods 0.000 claims description 13
- 238000012423 maintenance Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及WebShell检测装置、WebShell检测方法及计算机可读存储介质。WebShell检测装置包括处理电路,处理电路被配置为:收集Web服务器的访问日志,对新增的访问日志进行数据预处理;从预处理后的访问日志中提取预定字段信息,并对提取出的字段信息进行存储;将提取出的预定字段信息与预先确定的阈值进行比较,判定可疑访问日志;对可疑访问日志中的可疑URL进行重放过滤,将结果存储为已检URL信息;以及将已检URL信息发送到核查装置,接收核查装置反馈的核查结果,根据核查结果更新已检URL信息。根据本公开,能够以较少的检测工作量高精度地检测Webshell文件。
Description
技术领域
本公开涉及WebShell检测装置、WebShell检测方法及计算机可读存储介质。更具体地,涉及基于日志分析而进行WebShell检测的技术。
背景技术
Webshell是一种利用ASP(Active Server Pages:动态服务器页面)和PHP(Hypertext Preprocessor:超文本预处理器)等服务端编程语言开发的脚本程序,这种脚本文件具备一定的管理功能,能够用于对服务器上的文件进行一定权限范围内的操作,同时还具备执行一些操作系统指令、执行自定义的脚本代码等功能。另一方面,因为Webshell是通过HTTP协议进行访问的,相关的访问不会受到传统防火墙软件的拦截,因此,黑客在尝试入侵一个Web站点时,都会将对该网站植入Webshell作为渗透测试的关键目标。
发明内容
在现有的技术方案中,针对Webshell的检测主要包括基于文件内容的检测方式和基于全量日志分析的检测方式。其中,基于文件内容的检测方法是指通过对文件的源代码进行分析来判断文件是否为Webshell。但是,这种检测方式的局限性之一在于需要对网站的所有文件进行检测,检测工作量大;局限性之二是这种检测需要对Webshell的代码特征有足够的了解,所以无法对新型的未知的Webshell代码进行有效的检测;局限性之三在于这种检测需要首先获得相关脚本的源代码,但在很多安全审核较为严格的应用场景下,通常很难获取网站项目源代码。另外,目前基于全量日志分析的Webshell检测方法,由于通常网站的日志量巨大,所以该检测方法的检测工作量大,检测效率较低。
本公开的一个目的在于提供给一种能够以较少的检测工作量高精度地检测Webshell文件的WebShell检测装置、WebShell检测方法及计算机可读存储介质。
在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
根据本公开的一个方面,提供一种WebShell检测装置,其中,上述WebShell检测装置包括处理电路,上述处理电路被配置为:收集Web服务器的访问日志,对新增的访问日志进行数据预处理;从预处理后的上述访问日志中提取预定字段信息,并对提取出的字段信息进行存储;将提取出的上述预定字段信息与预先确定的阈值进行比较,判定可疑访问日志;对上述可疑访问日志中的可疑URL(Uniform Resource Locator,统一资源定位符)进行重放过滤,将结果存储为已检URL信息;以及将上述已检URL信息发送到核查装置,接收核查装置反馈的核查结果,根据核查结果更新上述已检URL信息。
根据本公开的另一方面,提供一种WebShell检测方法,其中,上述WebShell检测方法包括:收集Web服务器的访问日志,对新增的访问日志进行数据预处理;从预处理后的上述访问日志中提取预定字段信息,并对提取出的字段信息进行存储;将提取出的上述预定字段信息与预先确定的阈值进行比较,判定可疑访问日志;对上述可疑访问日志中的可疑URL进行重放过滤,将结果存储为已检URL信息;以及将上述已检URL信息发送到核查装置,接收核查装置反馈的核查结果,根据核查结果更新上述已检URL信息。
根据本公开的另一方面,提供一种计算机可读存储介质,包括可执行指令,当上述可执行指令由计算机执行时,使上述计算机执行上述WebShell检测方法。
根据本公开,能够以较少的工作量高精度地检测Webshell文件。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。参照附图,根据下面的详细描述,可以更清楚地理解本公开,其中:
图1是示意地示出本公开涉及的WebShell检测技术的应用场景的示意图;
图2是示意地示出本公开的实施例的WebShell检测装置2000的构成的例子的框图;
图3是示意地示出本公开的实施例的WebShell检测装置2000所执行的检测处理的例示性的流程图;
图4是示意地示出本公开的实施例的WebShell检测装置2000所执行的可疑URL重放过滤处理的例示性的流程图;
图5是示意地示出实现本公开的实施例的计算设备300的示例性的配置框图。
具体实施方式
在下文中,参照附图详细地描述本公开内容的优选实施例。需要注意的是,在本说明书和附图中,用相同的附图标记来表示具有基本相同的功能和结构的结构元件,并且省略对这些结构元件的重复说明。
这里,为了便于理解本公开的技术方案,首先简单介绍本公开的基本技术思想。本公开的发明人对针对WebShell文件的访问行为进行分析,发现WebShell文件的访问行为具有如下特征:
(1)黑客访问WebShell文件会在Web服务器日志中产生访问记录,此时服务器的响应状态码只可能为200或401。
(2)黑客入侵服务器并上传WebShell文件后,通常上传的WebShell文件只有黑客自己知道,因此WebShell文件的客户端IP地址的数量会明显少于正常文件的客户端IP地址的数量。
(3)黑客只有在需要的时候才会访问Webshell文件,因此WebShell文件的访问频率会明显少于正常文件的访问频率。
(4)WebShell文件没有向其他页面的跳转,也不存在其他页面向该WebShell文件的跳转,即WebShell的文件出入度都为0,具体表现为对应访问日志记录中的Referer字段有且仅有该WebShell文件自身的URL。
本公开的技术方案基于上述发现而做出。
以下,结合图1说明本公开涉及的WebShell检测技术的应用场景。如图1的示意图所示,本公开的WebShell检测技术应用于如下场景:客户端请求Web服务器的服务,Web服务器作为应答而向客户端返回Web访问服务,在访问-应答的过程中,Web服务器会在访问日志中记录下客户端发出访问请求时的相关内容。本公开基于Web服务器产生的访问日志来检测WebShell文件。值得注意的是,本公开的WebShell检测技术要求Web访问日志所包含的字段至少应当有:客户端IP地址、访问时间、Referer、访问文件的URL以及服务器响应状态码。
另外,应当理解,除了上述的要求字段之外,Web访问日志中当然还可以包含其它字段,例如,还可以包含请求访问的方式等字段。
图2是示意地示出本公开的实施例的WebShell检测装置2000的构成的例子的框图。
在一些实施例中,WebShell检测装置2000可以包括处理电路2010。WebShell检测装置2000的处理电路2010提供WebShell检测装置2000的各种功能。在一些实施例中,WebShell检测装置2000的处理电路2010可以被配置为用于执行WebShell检测装置2000中的WebShell检测方法。另外,既可以在Web服务器中设置处理电路2010,即由Web服务器实现WebShell检测装置2000的WebShell检测,也可以独立于Web服务器而单独设置WebShell检测装置2000。
处理电路2010可以指在计算系统中执行功能的数字电路系统、模拟电路系统或混合信号(模拟和数字的组合)电路系统的各种实现。处理电路可以包括例如诸如集成电路(Integrated Circuit,IC)、专用集成电路(Application Specific Integrated Circuit,ASIC)这样的电路、单独处理器核心的部分或电路、整个处理器核心、单独的处理器、诸如现场可编程门阵列(Field Programmable Gate Array,FPGA)的可编程硬件设备、和/或包括多个处理器的系统。
在一些实施例中,处理电路2010可以包括:日志收集单元2020、字段提取单元2030、判定单元2040、重放测试单元2050以及发送接收单元2060。其中,日志收集单元2020被配置为执行后述图3的流程图中的步骤S2002,字段提取单元2030被配置为执行后述图3的流程图中的步骤S2003,判定单元2040被配置为执行后述图3的流程图中的步骤S2004,重放测试单元2050被配置为执行后述图3的流程图中的步骤S2005,发送接收单元2060被配置为执行后述图3的流程图中的步骤S2006。
在一些实施例中,WebShell检测装置2000还可以包括存储器(未图示)。WebShell检测装置2000的存储器可以存储由处理电路2010产生的信息以及用于WebShell检测装置2000操作的程序和数据。存储器可以是易失性存储器和/或非易失性存储器。例如,存储器可以包括但不限于随机存取存储器(Random Access Memory,RAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random-AccessMemory,SRAM)、只读存储器(Read-Only Memory,ROM)以及闪存存储器。
另外,WebShell检测装置2000可以以芯片级来实现,或者也可以通过包括其它外部部件而以设备级来实现。
应当理解,上述日志收集单元2020、字段提取单元2030、判定单元2040、重放测试单元2050以及发送接收单元2060仅仅是根据其所实现的具体功能所划分的逻辑模块,而不是用于限制具体的实现方式。在实际实现时,上述各个单元可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(CPU或DSP等)、集成电路等)来实现。
图3是示意地示出本公开的实施例的WebShell检测装置2000所执行的检测处理的例示性的流程图。
如图3的步骤S2001所示,该WebShell检测处理被定期触发或者当新增访问日志达到预定数量时被触发。在步骤S2001中反复判定预定的定时是否到来或者新增的访问日志是否达到预定数量,直到判定为“是”而进入步骤S2002。
在步骤S2002中,日志收集单元2020收集Web服务器的访问日志,对新增的访问日志进行数据预处理。其中,数据预处理主要包括数据筛选。数据筛选是指从所有的日志记录中筛选出需要进行分析的访问记录。具体地,首先要去除的是对静态文件如文件后缀为css、jpg等的文件的访问记录,然后,筛选保留同时满足以下两个条件的访问记录:
条件1:服务器的响应状态码为200或者401。
条件2:被访问的资源类型为服务端脚本。所谓服务端脚本是运行在Web服务端的脚本程序,其接受客户端请求并执行相应的处理,最后只将处理结果返回给客户端,常见的服务端脚本有ASP、PHP等类型。
进一步地,在进行类型筛选时,应注意的是只要筛选与服务器Web环境相匹配的脚本类型的访问记录即可,例如,若服务端只支持PHP脚本程序的解析,那么在筛选时,只筛选出PHP文件的访问记录即可。
具体地,在一些实施例中,日志收集单元2020通过登录Web服务器获取Web中间件(例如Apache,Nginx等软件)产生的访问日志,访问日志中记录了客户端在对服务端发起访问请求时的相关信息。其中,获取服务器访问日志的方式可以有多种,包括但不仅限于如下几种:
(1)通过远程终端(例如,SSH或者远程桌面等)登录到服务器获取日志。
(2)通过FTP工具下载日志。
(3)在服务器上配置监控日志的服务,实时获取日志。
在获取到服务器访问日志后,如上所述地,对数据进行预处理,筛选出需要进行分析的日志记录。这里,仅需要保留服务器的响应状态码为200或者401且被访问的资源类型为服务端脚本的日志记录。
接着,处理进入步骤S2003。
在该步骤S2003中,字段提取单元2030从预处理后的访问日志中提取预定字段信息。这里,由字段提取单元2030提取的预定字段信息包括但不限于:客户端IP、访问时间、referer以及访问的URL。另外,提取的预定字段信息还可以包括例如请求访问的方式、服务器响应状态码等信息。其中,“客户端IP”表示发出Web服务请求的客户端的IP地址,“访问时间”表示客户端访问的时间,“referer”表示客户端发出该访问请求前的所访问的位置,用于告知服务器此条访问的来源页面。
在一些实施例中,将提取出的这些字段信息存储到数据库中,也就是将预处理后筛选出的每条访问记录中的所需的预定字段的信息提取出来进行存储,存储这些字段信息的表结构如表1所示。
表1日志信息存储表结构
在一些实施例中,字段提取单元2030还对提取出的URL进行规范化和归类处理。这里,URL规范化处理主要包括:对URL进行解码,将URL还原为原始的ASCII字符以便于进行后续的处理;将URL中路径部分的斜线字符规范化,也就是将URL中的反斜线替换为正斜线,并将URL中多条连续的正斜线替换成一条正斜线等。
另外,对URL进行归类处理的主要原因在于,目前基于框架开发的Web应用中,对于同一个文件,如果传递不同的参数则可能调用到不同的模块文件,对Web应用的不同功能的访问是通过对同一个入口文件传递不同的参数来进行调用的。因此,需要对Web日志中的访问记录按照URL进行分类,也就是说,对于一条URL去掉其查询字符串部分的参数值,只保留参数名。而对于同一个文件而言,若其参数组合不同,则视为不同的URL。
接下来,在步骤S2004中,判定单元2040将由字段提取单元2030提取出的预定字段信息与预先确定的阈值进行比较,判定可疑访问日志。
在一些实施例中,将由日志收集单元2020收集、经预处理而筛选出的日志中请求访问的文件的URL与之前作为分析结果而保存的已检测URL进行比对,提取出新产生的URL,将新产生的URL与虽被检测过但运维人员还未核查以及虽经过核查但仍存疑的URL合并。若合并之后的URL集合不为空集,则针对合并之后的URL集合中的各个URL,基于预定的规则对客户端IP、访问时间、referer以及访问的URL这四个字段的信息进行分析,判定可疑访问日志记录。其中,上述预定的规则包括但不限于:
(1)基于客户端IP地址数。针对访问的URL,统计一定时间内的不同客户端IP地址的数量,并与预先设定的阈值进行比较,客户端IP地址的数量低于阈值的URL属于可疑的URL。
(2)基于访问频率。针对访问的URL,根据访问时间统计该URL的访问频率,访问频率是指一定时间内的被访问次数,将统计出的访问频率与预先设定的阈值比较,访问频率低于阈值的URL属于可疑URL。
(3)基于文件出入度。关于访问的URL,检测对应访问日志的Referer字段,Referer字段中有且仅有自身的URL属于可疑URL。
在一些实施例中,对一定时间内的、正常文件的不同来访客户端的客户端IP地址的数量进行统计,然后将这些文件的客户端IP地址数按照从少到多进行排序,取排序前10%的文件的客户端IP地址数的平均值作为用于判断URL是否可疑的阈值。在此,“一定时间”例如是一小时、一天、一周、一个月甚至一年等,可以根据需要任意设定。另外,应当理解,在阈值设定时,将排序前10%的文件的客户端IP地址数的平均值作为用于判定的阈值,仅仅是一个例子,例如,也可以将排序前10%的文件的客户端IP地址数的中位数、最低值等作为阈值。
在一些实施例中,对正常文件的访问频率即一定时间内的被访问次数进行统计,然后将这些正常文件的访问频率按照从少到多进行排序,取排序前10%的文件的访问频率的平均值作为用于判断URL是否可疑的阈值。在此,“一定时间”例如是一小时、一天、一周、一个月甚至一年等,可以根据需要任意设定。另外,应当理解,在阈值设定时,将排序前10%的文件的访问频率的平均值作为用于判定的阈值,仅仅是一个例子,例如,也可以将排序前10%的文件的访问频率的中位数、最低值等作为阈值。
接下来,处理进入步骤S2005中,重放测试单元2050对在步骤S2004中由判定单元2040判定为可疑访问日志中的可疑URL进行重放过滤,将结果存储为已检URL信息。
在实际的应用场景中,由于扫描器等的干扰以及网站自身的变动等,会导致可疑URL检测结果中存在误报的情况,因此需要对可疑URL检测结果进行重放以尽可能地去除误报。所谓重放,是指模仿正常客户端来逐个访问被初步判定为可疑的URL,获取Web服务端的响应数据,并提取相应的特征信息。具体而言,特征信息是指正常网页中meta标签keywords与description属性值。这里,对通过Webshell的重放访问行为产生的特征数据与事先获取的正常网页响应的特征数据进行对比,过滤误报的URL记录,减少扫描器的干扰,减少误报。
图4是示意地示出本公开的实施例的WebShell检测装置2000进行的可疑URL重放过滤处理的例示性的流程图。
在步骤S3001中,针对在步骤S2004中判定为可疑的URL发送重放请求。
在S3002中,判定Web服务器返回的响应码是否为404,若响应码为404,则进入步骤S3003。
在步骤S3003中,从可疑URL中去除该URL。
若在S3002中判定为响应码不是404,则进入步骤S3004。在步骤S3004中,判定响应码是否为200或401,若判定为响应码不是200或401,则处理进入步骤S3003。另一方面,若响应码是200或401,则处理进入步骤S3005。
在步骤S3005中,分别获取可疑URL的页面及其所在的网站的首页页面,分别提取两者页面meta标签中的keywords属性和description属性的值进行对比,若两者相同,则处理进入步骤S3003,否则处理进入步骤S3006。
在步骤S3006中,将被检测的可疑URL保存到已检URL信息序列中。
在一些实施例中,以三元组INFOURL{URL,is_Webshell,Checked}的形式存储该已检URL信息,其中,三元组中的“URL”表示客户端请求访问的URL地址,“is_Webshell”表示该URL是否被检测为是Webshell产生的URL,“Checked”表示该检测结果是否已得到运维人员的最终核查确认。
在一些实施例中,关于该步骤S3006中存储的三元组INFOURL,作为默认设置,将“is_Webshell”的值设为表示是Webshell产生的URL的“1”,将“Checked”的值设为表示未经过运维人员核查的“0”。当然,作为默认值,也可以将此时的三元组INFOURL中的“is_Webshell”的值设为表示不是Webshell产生的URL的“0”。
回到图3,继续说明接下来的步骤S2006的处理。
在该步骤S2006中,发送接收单元2060将在步骤S2005中经过重发过滤的已检URL信息序列发送给运维人员,并接收运维人员反馈的核查确认结果,将核查确认结果存储到数据库中。
具体而言,运维人员对接收到的已检URL信息序列逐条进行核查确认,并将核查确认的结果回送给发送接收单元2060。在一些实施例中,由运维人员根据核查结果修改已检URL信息中的相应字段,之后将确认后的URL信息回送给发送接收单元2060。另外,在一些实施例中,运维人员进行对各条已检URL信息进行核查确认,将核查结果反回送给发送接收单元2060,由发送接收单元2060根据核查结果自动修改已检URL信息中的相应字段并进行保存。
在此,通过进一步由运维人员进行人工核查,能够对人工核查出的真正的Webshell文件及时采取安全应对措施,同时还能够去除在步骤S2005的重放过滤中无法去除的误报,从而提高检测的准确性。
表2存储分析结果的表结构
上述表2中示出用于存储分析结果的表结构的主要字段。其中,“URL”、“is_Webshell”和“Checked”字段分别对应上述三元组INFOURL中的三个字段信息。如上所述,“is_Webshell”为“1”时表示对应的URL是Webshell产生的URL,为“0”时则表示对应的URL是正常网页的URL,“Checked”为“1”表示该URL已经过运维人员的核查确认,为“0”则表示该URL未经运维人员核查确认。当核查结果确认为该URL不是Webshell产生的URL时,例如,运维人员将三元组中的“is_Webshell”修改为“0”,将“Checked”修改为“1”。当经过核查确认该URL是Webshell产生的URL时,例如,只需将三元组中的“Checked”修改为“1”即可。
在一些实施例中,关于虽已经过运维人员的核查但对于是否为Webshell仍然存疑的URL所对应的三元组INFOURL,不将“Checked”置为“1”,而保留原来的“0”。这样,可以将该存疑的URL所对应的三元组以及运维人员未能及时核查的URL(“Checked”为“0”)与之后新增的URL合并,并再次提供给运维人员供其再次核查。
在本公开中,将先前的URL的检测结果作为已检URL信息进行了保存,因此能够方便运维人员随时进行核查确认,同时还能够以保存三元组的检测结果来替代保存日志本身,能够减少对日志分析时所占用的存储量。进而,还可以按照一个较短的时间周期定期地对日志进行分析,从而能够及时有效地发现Webshell的访问痕迹。
对于本公开的技术方案的技术效果,通过应用含有Webshell访问记录的网站日志来检验其有效性。其中,样本A为一个小型规模网站半年的访问日志记录,共包含74万条访问记录,经过数据预处理后筛选出需要检测的URL共有238条,检测结果核查出的WebShell数为11个;样本B为一个中型规模的网站的一周的访问日志记录,共包含373万条访问记录,经过预处理后筛选出需要检测的URL共有386条,检测结果核查出的WebShell数为14个。
表3给出的是本公开的检测方法对两份含有Webshell访问记录的线上网站日志的检测结果。在检测结果中,判定为Webshell并且实际为Webshell的结果数表示为Rws,判定为正常URL并且实际为正常URL的结果数表为Rnws,NumCHK是经过筛选后需要检测的URL数目。准确率的计算公式为:
设对应样本集里所有的Webshell访问数为Raws,那么召回率的计算公式为:
表3检测结果
通过对检测结果进行详细分析,发现准确率并未达到100%,而未能使得准确率达到100%的主要原因在于,虽然在步骤S2005中对可疑URL进行了重放过滤,但由于扫描器的扫描记录干扰等原因,所以仍然会存在少量误报的现象。
另外,在本公开的WebShell检测中,定时触发检测或者当新增访问日志数量达到一定数量后触发检测,且仅对新增日志记录执行检测,显然是一种增量检测方式。
在此,为了与基于整体日志的检测进行对比,将日志样本A中的访问记录按时间顺序进行分片,一共分为了15个子样本,对这15个子样本进行编号,以按天叠加的方式对样本A中的访问记录进行了增量式访问日志检测,并统计了检测需要存储的访问记录数。在此,设T表示检测时对子样本进行分析时需存储的访问记录数,I表示增量检测时需存储的访问记录数,Z为使用增量检测时数据库中存储的URL数。实验结果如表4所示。
表4样本A检测结果统计
对比表3和表4中样本检测结果可知,基于增量方式检测的准确率和召回率与整体检测的准确率和召回率是相同的。基于增量日志检测的方式会将之前检测的结果进行保存,因此最终的检测结果与对整体日志进行检测时的召回率并没有区别。
但是,从表4中可以明显看出,基于增量的检测方式所需要存储的记录数明显小于对整体日志进行检测时需要存储的记录数。这是因为基于增量的检测方式在每次检测完成之后会将被检测URL的信息进行保存,在分析增量日志时只需要对新增日志中的URL进行检测即可。因此,基于增量日志的检测方式可以降低对访问日志进行分析时所占用的存储量,而不会影响检测的准确率和召回率。
根据本公开的WebShell检测装置以及方法,通过分析网站的访问记录日志来查找服务器中可能存在的Webshell文件,是一种不依赖于文件内容的轻量级的后门检测方式,检测工作量少,不需要对Webshell的代码特征有足够的了解,能够应对新型的未知的Webshell的代码进行有效的检测,而且不需要事先获得相关脚本的源代码。另外,本公开的检测方法利用真实的线上的日志样本进行测试,具有较高的检测准确率与召回率。
进而,在本公开的检测方法中,对先前的检测结果作为已检URL的信息序列进行了保存,能够将新增的已检URL的信息、与虽已检测但未经运维人员核查确认的已检URL的信息以及虽经运维人员核查确认但仍存疑的已检URL的信息合并,从而能够方便运维人员随时核查已检URL的信息,能够对存疑的已检URL的信息多次核查,从而提高检测的准确率。另外,在本公开的检测方法中,能够以保存三元组的检测结果来替代保存日志本身,能够减少对日志分析时所占用的存储量。
接下来,图5示出了可以实现根据本公开的实施例的计算设备300的示例性配置。计算设备300是可以应用本公开的上述方面的硬件设备的实例。计算设备300可以是被配置为执行处理和/或计算的任何机器。计算设备300可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、PDA(Personal Data Assiatant:个人数据助手)、智能电话、车载计算机或以上组合。
如图5所示,计算设备300可以包括可以经由一个或多个接口与总线302连接或通信的一个或多个元件。总线302可以包括但不限于,工业标准架构(Industry StandardArchitecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强型工业标准架构(Enhanced Industry Standard Architecture,EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)局部总线、以及外设组件互连(Peripheral Component Interconnect,PCI)总线等。计算设备300可以包括例如一个或多个处理器304、一个或多个输入设备306、以及一个或多个输出设备308。一个或多个处理器304可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。各处理器304例如可以分别对应于图2中的处理电路2010,被配置为能够实现本公开的WebShell检测装置2000的功能。输入设备306可以是能够向计算设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备308可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
计算设备300还可以包括或被连接至非暂态存储设备314,该非暂态存储设备314可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。计算设备300还可以包括随机存取存储器(RAM)310和只读存储器(ROM)312。ROM 312可以以非易失性方式存储待执行的程序、实用程序或进程。RAM 310可提供易失性数据存储,并存储与计算设备300的操作相关的指令。计算设备300还可包括耦接至数据链路318的网络/总线接口316。网络/总线接口316可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)。
应当理解,本说明书中“实施例”或类似表达方式的引用是指结合该实施例所述的特定特征、结构、或特性系包括在本公开的至少一具体实施例中。因此,在本说明书中,“在本公开的实施例中”及类似表达方式的用语的出现未必指相同的实施例。
本领域技术人员应当知道,本公开被实施为一系统、装置、方法或作为计算机程序产品的计算机可读媒体(例如非瞬态存储介质)。因此,本公开可以实施为各种形式,例如完全的硬件实施例、完全的软件实施例(包括固件、常驻软件、微程序代码等),或者也可实施为软件与硬件的实施形式,在以下会被称为“电路”、“模块”或“系统”。此外,本公开也可以任何有形的媒体形式实施为计算机程序产品,其具有计算机可使用程序代码存储于其上。
本公开的相关叙述参照根据本公开具体实施例的系统、装置、方法及计算机程序产品的流程图和/或框图来进行说明。可以理解每一个流程图和/或框图中的每一个块,以及流程图和/或框图中的块的任何组合,可以使用计算机程序指令来实施。这些计算机程序指令可供通用型计算机或特殊计算机的处理器或其它可编程数据处理装置所组成的机器来执行,而指令经由计算机或其它可编程数据处理装置处理以便实施流程图和/或框图中所说明的功能或操作。
在附图中显示根据本公开各种实施例的系统、装置、方法及计算机程序产品可实施的架构、功能及操作的流程图及框图。因此,流程图或框图中的每个块可表示一模块、区段、或部分的程序代码,其包括一个或多个可执行指令,以实施指定的逻辑功能。另外应当注意,在某些其它的实施例中,块所述的功能可以不按图中所示的顺序进行。举例来说,两个图示相连接的块事实上也可以同时执行,或根据所涉及的功能在某些情况下也可以按图标相反的顺序执行。此外还需注意,每个框图和/或流程图的块,以及框图和/或流程图中块的组合,可藉由基于专用硬件的系统来实施,或者藉由专用硬件与计算机指令的组合,来执行特定的功能或操作。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (11)
1.一种WebShell检测装置,其中,
所述WebShell检测装置包括处理电路,
所述处理电路被配置为:
收集Web服务器的访问日志,对新增的访问日志进行数据预处理,其中,在进行所述数据预处理时,提取服务器的响应状态码,并且仅保留服务器的响应状态码为200或401的服务端脚本的访问日志;
从预处理后的所述访问日志中提取预定字段信息,并对提取出的预定字段信息进行存储,其中,提取出的预定字段信息包括访问时间和访问的URL;
将提取出的所述预定字段信息与预先确定的阈值进行比较,判定可疑访问日志;
对所述可疑访问日志中的可疑URL进行重放过滤,将结果存储为已检URL信息;以及
将所述已检URL信息发送到核查装置,接收核查装置反馈的核查结果,根据核查结果更新所述已检URL信息;
其中,所述处理电路进一步被配置为:根据提取出的预定字段信息中的所述访问时间统计所述访问的URL的访问频率,将所述访问频率与预先确定的阈值进行比较,并在所述访问频率小于所述阈值的情况下,判定所述访问日志为可疑访问日志;
在进行所述重放过滤时,获取所述可疑URL的页面及其所在网站的首页页面,比较两个页面meta标签中的属性值,在比较结果为两者的属性值相同的情况下,将所述可疑URL排除,在比较结果为两者的属性值不同的情况下,将所述可疑URL保存到所述已检URL信息。
2.根据权利要求1所述的WebShell检测装置,其中,
所述处理电路进一步被配置为:
仅保留所述服务器的响应状态码为200或401且与服务器Web环境相匹配的服务端脚本的访问日志。
3.根据权利要求2所述的WebShell检测装置,其中,
所述处理电路进一步被配置为:
对保留下来的访问日志的URL进行规范化,存储规范化后的所述URL的预定参数。
4.根据权利要求1所述的WebShell检测装置,其中,
所述处理电路进一步被配置为:
从预处理后的所述访问日志提取出的预定字段信息包括客户端IP,
针对所述访问的URL统计客户端IP地址的数量,将统计出的IP地址的数量与预先确定的阈值进行比较,
在统计出的所述IP地址的数量小于阈值的情况下,判定为所述访问日志为可疑访问日志。
5.根据权利要求1或4所述的WebShell检测装置,其中,
所述处理电路进一步被配置为:
从预处理后的所述访问日志提取出的预定字段信息还包括表示访问请求来源的referer字段,
针对访问的URL,检查对应访问日志的所述referer字段,在所述referer字段中有且仅有自身的URL的情况下,判定为所述访问日志为可疑访问日志。
6.一种WebShell检测方法,其中,
所述WebShell检测方法包括:
收集Web服务器的访问日志,对新增的访问日志进行数据预处理,其中,在进行所述数据预处理时,提取服务器的响应状态码,并且仅保留服务器的响应状态码为200或401的服务端脚本的访问日志;
从预处理后的所述访问日志中提取预定字段信息,并对提取出的预定字段信息进行存储,其中,提取出的预定字段信息包括访问时间和访问的URL;
将提取出的所述预定字段信息与预先确定的阈值进行比较,判定可疑访问日志,包括:根据提取出的预定字段信息中的所述访问时间统计所述访问的URL的访问频率,将所述访问频率与预先确定的阈值进行比较,并在所述访问频率小于所述阈值的情况下,判定所述访问日志为可疑访问日志;
对所述可疑访问日志中的可疑URL进行重放过滤,将结果存储为已检URL信息;以及
将所述已检URL信息发送到核查装置,接收核查装置反馈的核查结果,根据核查结果更新所述已检URL信息;
在进行所述重放过滤时,获取所述可疑URL的页面及其所在网站的首页页面,比较两个页面meta标签中的属性值,在比较结果为两者的属性值相同的情况下,将所述可疑URL排除,在比较结果为两者的属性值不同的情况下,将所述可疑URL保存到所述已检URL信息。
7.根据权利要求6所述的WebShell检测方法,其中,
仅保留所述服务器的响应状态码为200或401且与服务器Web环境相匹配的服务端脚本的访问日志。
8.根据权利要求7所述的WebShell检测方法,其中,
所述WebShell检测方法还包括:
对保留下来的访问日志的URL进行规范化,存储规范化后的所述URL的预定参数。
9.根据权利要求6所述的WebShell检测方法,其中,
从预处理后的所述访问日志提取出的预定字段信息包括客户端IP,
针对所述访问的URL统计客户端IP地址的数量,将统计出的IP地址的数量与预先确定的阈值进行比较,
在统计出的所述IP地址的数量小于阈值的情况下,判定为所述访问日志为可疑访问日志。
10.根据权利要求6或9所述的WebShell检测方法,其中,
从预处理后的所述访问日志提取出的预定字段信息还包括表示访问请求来源的referer字段,
针对访问的URL,检查对应访问日志的所述referer字段,在所述referer字段中有且仅有自身的URL的情况下,判定为所述访问日志为可疑访问日志。
11.一种计算机可读存储介质,包括可执行指令,当所述可执行指令由计算机执行时,使所述计算机执行权利要求6至10中的任一项所述的WebShell检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010522195.1A CN113779571B (zh) | 2020-06-10 | 2020-06-10 | WebShell检测装置、WebShell检测方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010522195.1A CN113779571B (zh) | 2020-06-10 | 2020-06-10 | WebShell检测装置、WebShell检测方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113779571A CN113779571A (zh) | 2021-12-10 |
CN113779571B true CN113779571B (zh) | 2024-04-26 |
Family
ID=78834656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010522195.1A Active CN113779571B (zh) | 2020-06-10 | 2020-06-10 | WebShell检测装置、WebShell检测方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779571B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114430348B (zh) * | 2022-02-07 | 2023-12-05 | 云盾智慧安全科技有限公司 | 一种web网站搜索引擎优化后门识别方法及装置 |
CN116132502A (zh) * | 2022-08-01 | 2023-05-16 | 马上消费金融股份有限公司 | 网页访问处理方法、装置及电子设备 |
CN116644250B (zh) * | 2023-07-27 | 2023-10-20 | 太平金融科技服务(上海)有限公司 | 页面检测方法、装置、计算机设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468477A (zh) * | 2013-09-16 | 2015-03-25 | 杭州迪普科技有限公司 | 一种WebShell的检测方法及系统 |
CN106992981A (zh) * | 2017-03-31 | 2017-07-28 | 北京知道创宇信息技术有限公司 | 一种网站后门检测方法、装置和计算设备 |
CN107241296A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种Webshell的检测方法及装置 |
CN107294982A (zh) * | 2017-06-29 | 2017-10-24 | 深信服科技股份有限公司 | 网页后门检测方法、装置及计算机可读存储介质 |
CN107404497A (zh) * | 2017-09-05 | 2017-11-28 | 成都知道创宇信息技术有限公司 | 一种在海量日志中检测WebShell的方法 |
CN107426196A (zh) * | 2017-06-30 | 2017-12-01 | 全球能源互联网研究院 | 一种识别web入侵的方法及系统 |
CN107438079A (zh) * | 2017-08-18 | 2017-12-05 | 杭州安恒信息技术有限公司 | 一种网站未知异常行为的检测方法 |
CN107566371A (zh) * | 2017-09-05 | 2018-01-09 | 成都知道创宇信息技术有限公司 | 一种面向海量日志的WebShell挖掘方法 |
CN107888616A (zh) * | 2017-12-06 | 2018-04-06 | 北京知道创宇信息技术有限公司 | 基于URI的分类模型的构建方法和Webshell攻击网站的检测方法 |
CN110912902A (zh) * | 2019-11-27 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种访问请求处理的方法、系统、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108206802B (zh) * | 2016-12-16 | 2020-11-17 | 华为技术有限公司 | 检测网页后门的方法和装置 |
-
2020
- 2020-06-10 CN CN202010522195.1A patent/CN113779571B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468477A (zh) * | 2013-09-16 | 2015-03-25 | 杭州迪普科技有限公司 | 一种WebShell的检测方法及系统 |
CN107241296A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种Webshell的检测方法及装置 |
CN106992981A (zh) * | 2017-03-31 | 2017-07-28 | 北京知道创宇信息技术有限公司 | 一种网站后门检测方法、装置和计算设备 |
CN107294982A (zh) * | 2017-06-29 | 2017-10-24 | 深信服科技股份有限公司 | 网页后门检测方法、装置及计算机可读存储介质 |
CN107426196A (zh) * | 2017-06-30 | 2017-12-01 | 全球能源互联网研究院 | 一种识别web入侵的方法及系统 |
CN107438079A (zh) * | 2017-08-18 | 2017-12-05 | 杭州安恒信息技术有限公司 | 一种网站未知异常行为的检测方法 |
CN107404497A (zh) * | 2017-09-05 | 2017-11-28 | 成都知道创宇信息技术有限公司 | 一种在海量日志中检测WebShell的方法 |
CN107566371A (zh) * | 2017-09-05 | 2018-01-09 | 成都知道创宇信息技术有限公司 | 一种面向海量日志的WebShell挖掘方法 |
CN107888616A (zh) * | 2017-12-06 | 2018-04-06 | 北京知道创宇信息技术有限公司 | 基于URI的分类模型的构建方法和Webshell攻击网站的检测方法 |
CN110912902A (zh) * | 2019-11-27 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种访问请求处理的方法、系统、设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Webshell detection techniques in web applications;Truong Dinh Tu;Cheng Guang;Fifth International Conference on Computing,Communications and Networking Technologies(ICCCNT);20140713;1-5 * |
基于Web日志的Webshell检测方法研究;石刘洋;方勇;信息安全研究;20160131;第2卷(第1期);66-73 * |
Also Published As
Publication number | Publication date |
---|---|
CN113779571A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113779571B (zh) | WebShell检测装置、WebShell检测方法及计算机可读存储介质 | |
US10958683B2 (en) | Method and device for classifying uniform resource locators based on content in corresponding websites | |
CN107508809B (zh) | 识别网址类型的方法及装置 | |
CN107294919A (zh) | 一种水平权限漏洞的检测方法及装置 | |
CN103685307A (zh) | 基于特征库检测钓鱼欺诈网页的方法及系统、客户端、服务器 | |
CN107547490B (zh) | 一种扫描器识别方法、装置及系统 | |
CN104683328A (zh) | 一种跨站漏洞扫描方法及系统 | |
CN107085549B (zh) | 故障信息生成的方法和装置 | |
CN103428196A (zh) | 一种基于url白名单的web应用入侵检测方法和装置 | |
CN102984161B (zh) | 一种可信网站的识别方法和装置 | |
CN112486708B (zh) | 页面操作数据的处理方法和处理系统 | |
CN113168472A (zh) | 基于利用的网络安全漏洞修复方法及系统 | |
CN108337269A (zh) | 一种WebShell检测方法 | |
US11297091B2 (en) | HTTP log integration to web application testing | |
CN114244564B (zh) | 攻击防御方法、装置、设备及可读存储介质 | |
CN112887341A (zh) | 一种外部威胁监控方法 | |
CN111625837A (zh) | 识别系统漏洞的方法、装置和服务器 | |
CN111783159A (zh) | 网页篡改的验证方法、装置、计算机设备和存储介质 | |
CN113987504A (zh) | 一种网络资产管理的漏洞检测方法 | |
CN108804501B (zh) | 一种检测有效信息的方法及装置 | |
CN115130104A (zh) | 一种恶意网址综合评判方法、系统及存储介质 | |
CN107566371B (zh) | 一种面向海量日志的WebShell挖掘方法 | |
CN113364784B (zh) | 检测参数生成方法、装置、电子设备及存储介质 | |
CN102984162B (zh) | 可信网站的识别方法和收集系统 | |
Ham et al. | Big Data Preprocessing Mechanism for Analytics of Mobile Web Log. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220129 Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Applicant after: Tianyiyun Technology Co.,Ltd. Address before: No.31, Financial Street, Xicheng District, Beijing, 100033 Applicant before: CHINA TELECOM Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |