首页> 中国专利> 一种面向海量日志的WebShell挖掘方法

一种面向海量日志的WebShell挖掘方法

摘要

本发明提供了一种面向海量日志的WebShell挖掘方法,包括以下步骤:步骤1:收集单一入口类型的网站名单;步骤2:对日志进行检测,得到满足条件的URL,进而判断高度疑似WebShell;步骤3:检测可访问性,包括获取步骤2中URL对应域名的404页面内容和URL的页面内容,比较两次请求页面内容的莱文斯坦比,排除掉自定义404页面,以此判断该URL是否真实存在,若该URL真实存在则判断该URL为WebShell。本发明基于单一入口类型网站特殊的网站结构,配合自动化检测过滤掉自定义404页面,缩小嫌疑范围,大大提高识别WebShell的精准度,从而降低人工分析的成本。

著录项

  • 公开/公告号CN107566371A

    专利类型发明专利

  • 公开/公告日2018-01-09

    原文格式PDF

  • 申请/专利权人 成都知道创宇信息技术有限公司;

    申请/专利号CN201710791447.9

  • 发明设计人 仲俊霖;赵永亮;

    申请日2017-09-05

  • 分类号

  • 代理机构成都信博专利代理有限责任公司;

  • 代理人张辉

  • 地址 610000 四川省成都市高新区天府三街219号2栋11楼

  • 入库时间 2023-06-19 04:13:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-20

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/06 专利号:ZL2017107914479 变更事项:专利权人 变更前:成都知道创宇信息技术有限公司 变更后:成都知道创宇信息技术有限公司 变更事项:地址 变更前:610000 四川省成都市高新区天府三街219号2栋11楼 变更后:610000 四川省成都市高新区中国(四川)自由贸易试验区天府大道北段28号C座9楼

    专利权人的姓名或者名称、地址的变更

  • 2020-08-18

    授权

    授权

  • 2018-02-02

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20170905

    实质审查的生效

  • 2018-01-09

    公开

    公开

说明书

技术领域

本发明涉及WebShell挖掘领域,特别是一种面向海量日志的WebShell挖掘方法。

背景技术

WebShell,顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问这些asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载文件,查看数据库,执行任意程序命令等)。由于WebShell其大多是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。

现有技术中,通过收集网络上公开的WebShell并分析其特征,或者添加一些敏感函数建立WebShell特征库,然后在网站的访问日志中匹配这些特征或敏感函数,如果匹配上,则人工再次确认是否为WebShell。其存在以下不足:1)基于特征匹配容易出现大量误报;2)WebShell特征随时变换,特征库不能完全包含所有的特征,容易出现遗漏。

发明内容

本发明所要解决的技术问题是提供一种面向海量日志的WebShell挖掘方法,用于在海量网站日志中分析出真实的WebShell,其基于单一入口类型网站特殊的网站结构,配合自动化检测过滤掉自定义404页面,缩小嫌疑范围,大大提高识别WebShell的精准度,从而降低人工分析的成本。

为解决上述技术问题,本发明采用的技术方案是:

一种面向海量日志的WebShell挖掘方法,包括以下步骤:

步骤1:收集单一入口类型的网站名单;

步骤2:对日志进行检测,即:步骤2.1:收集步骤1中确定的单一入口类型网站的访问日志;步骤2.2:在步骤2.1提取的日志中,提取出HTTP状态码仅为200的URL;步骤2.3:将步骤2.2中得到的URL去掉参数,并取出动态脚本类型的URL;步骤2.4:比较步骤2.3得到中的URL是否与步骤1中收集的与此URL对应域名的URL一致,如果一致则判断为正常访问;如果所比较的两个URL不一致则判断为高度疑似WebShell;

步骤3:检测可访问性,即:步骤3.1:获取步骤2.3中URL对应域名的404页面内容;步骤3.2:获取步骤2.3中URL的页面内容;步骤3.3:比较两次请求页面内容的莱文斯坦比,排除掉自定义404页面,以此判断该URL是否真实存在;步骤3.4:如果该URL真实存在则判断该URL为WebShell。

进一步的,所述步骤1具体为:步骤1.1:提取一段时间内所有返回HTTP 200状态码的网站访问日志并取出访问的URL;步骤1.2:将所有的URL去掉参数,取出动态脚本类型的URL;步骤1.3:以步骤1.2中URL的域名为单位,统计出每个域名出现不同URL的个数;步骤1.4:提取出只有一个URL的域名并确定该网站为单一入口类型网站。

进一步的,还步骤4:对步骤3的判断结果进行人工复检。

与现有技术相比,本发明的有益效果是:传统的基于WebShell特征库的日志匹配方法会出现大量的误报,比如在面对扫描器时,经常会触发特征规则,实际上它并不是一次真实的WebShell访问请求,本发明通过单一入口型网站特殊的访问模型,再配合自动化URL检测,可以大大减少人工审查的工作量。

附图说明

图1是本发明方法中单一入口型网站名单收集流程示意图。

图2是本发明方法中日志检测流程示意图。

图3是本发明方法中可访问性检测流程示意图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明主要是针对单一入口类型网站特殊的网站访问模型进行分析。在单一入口类型的网站中,所有网站功能都通过同一个URL进行路由,也就是全站只有一个URL,而绝大多数的WebShell都是单独的一个脚本文件,在访问的时候通常是直接访问该WebShell的路径。由此在对网站长期的监控中如果发现出现了类似这样异常的URL访问请求,则属于高风险访问,需要对其进行进一步的分析。

由于很多网站都有自定义404功能,所以经常会出现访问了一个不存在的URL,而网站返回的是HTTP200状态码,因此单从状态码是不能判断该URL所指向的资源是否真的存在。本发明中自动检测通过判断网页内容的莱文斯坦比来识别自定义404页面,过滤出真实有效的访问请求,由此来提高识别WebShell的精准度。详述如下:

一、收集单一入口类型网站名单

如图1所示,具体说明如下:

步骤1:提取一段时间内(如一个月)所有返回HTTP 200状态码的网站访问日志并取出访问的URL。如:

http://www.test.com.cn/index.php?id=1&act=login

http://www.abc.net/index.asp?id=1&act=login

http://www.host.cn/index.jsp?id=1&act=login

步骤2:将所有的URL去掉参数、取出动态脚本类型的URL。如:

http://www.test.com.cn/index.php

http://www.abc.net/index.asp

http://www.host.cn/index.jsp

步骤3:以步骤2中URL的域名为单位,统计出每个域名出现不同URL的个数。

步骤4:提取出只有一个URL的域名并确定该网站为单一入口类型网站。

二、对日志进行检测

如图2所示,具体说明如下:

步骤1:收集步骤一中确定的单一入口类型网站的访问日志。

步骤2:在步骤1提取的日志中,去除掉HTTP状态码不是200的URL。

步骤3:将步骤2中的URL去掉参数后并取出动态脚本类型的URL。

步骤4:比较步骤3中的URL是否与模块一中对应域名的URL一致,如果一致则判断为正常访问。

步骤5:如果两个URL不一致则判断为高度疑似WebShell。

三、可访问性检测

如图3所示,具体说明如下:

步骤1:获取步骤二中URL对应域名的404页面内容。

步骤2:获取步骤二中URL的页面内容。

步骤3:比较两次请求页面内容的莱文斯坦比排除掉自定义404页面,以此判断该URL是否真实存在。

步骤4:如果该URL真实存在则判断该URL为WebShell。

步骤三的作用就是识别自定义404页面从而排除掉无意义的访问日志。下面解释一下什么是自定义404页面和使用莱文斯坦比识别自定义404页面的原理。

莱文斯坦比是一种用于比较两个字符串之间相似度的算法,目前已经有很成熟的算法库来实现该算法,只需要提供两个字符串即可得到它们的相似度。而自定义404页面就是:按照HTTP协议规范,当访问一个存在的页面时,服务器返回200状态码,当访问一个不存在的页面时,服务器会反回404状态码,但是有些网站处于安全性考虑,即使访问一个不存在的网页,它也会返回一个200状态码(即访问成功),这样做可以防止某些恶意爬虫爬取网站数据,或者防止黑客猜测网站目录和文件,即出于安全性的考虑。

既然访问一个不存在的页面服务器不再返回404状态码,那么就不能再用这种方法来判断该页面是否存在。所以这里换了一种方式来判断,由于网站的404页面内容基本都是一致的,那么先访问一个肯定不存在的页面,比如:www.domain.com/aaa/bbb/ccc/dddd/eee.php,这个页面显示是不可能存在的,先把这个不存在的页面的html代码记录下来,然后在接下来的URL请求中,如果发现访问页面的html代码和这个不存在的页面的代码相似度很高,那么就判断它是一个不存在的页面,从而就过滤了自定义404页面。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号