基于流量的WebShell行为分析与检测方法

2018-04-10 03:12赵运弢徐春雨刘书林
网络安全技术与应用 2018年4期
关键词:脚本木马日志

◆赵运弢 徐春雨 薄 波 刘书林



基于流量的WebShell行为分析与检测方法

◆赵运弢 徐春雨 薄 波 刘书林

(沈阳理工大学信息科学与工程学院 辽宁 110159)

WebShell是一种基于Web服务的后门程序。攻击者通过WebShell 获得Web服务的管理权限,从而达到对Web应用的渗透和控制。由于WebShell和普通Web页面特征几乎一致,所以可逃避传统防火墙和杀毒软件的检测。而且随着各种用于反检测特征混淆隐藏技术应用到WebShell上,使得传统基于特征码匹配的检测方式很难及时检测出新的变种。本文将讨论在网络流量上实现WebShell的分析与检测,通过对流量的“可视化”还原,借鉴行业里一些成熟的工具和方法,主要讨论在WebShell被上传到服务器上以及WebShell被访问这两个过程中网络流量中的payload特征来实现WebShell检测。

WebShell;Web服务;payload特征

0 引言

随着信息化的不断发展,信息系统不仅仅需要承载传统新闻发布、内容展示等功能,同时还承担了信息查询、订单处理、事务管理等业务,而这其中往往会涉及一些需要保密的信息。因此窃密型web应用脚本后门应运而生,其以窃密为主要目的,获取系统保密信息,危害极大。

webshell是web入侵的脚本攻击工具。webshell就是一个asp或php木马后门,攻击者在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后攻击者就可以用web的方式,通过asp或php木马后门控制网站服务器,该类后门往往不具备文件操作、命令执行等常见木马功能,多数只具备查询数据库功能,可直接调用系统自身的存储过程来连接数据库,与系统契合度高。

1 WebShell分类

WebShell根据脚本可以分为PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。随着目前python语言的盛行,也有很多用python脚本写的动态网页,当然也有与之相关的WebShell。

根据功能可分为大马与小马,小马通常指站长助手、一句话木马等, 小马体积小、容易隐藏、隐蔽性强,最重要在于与图片结合一起上传之后可以利用nginx或者IIS6的解析漏洞来运行,不过功能少,一般只有上传等功能。而大马体积比较大一般50K以上。功能也多,一般都包括提权命令、磁盘管理、数据库连接借口,执行命令甚至有些以具备自带提权功能和压缩,解压缩网站程序的功能。大马隐蔽性不好,而大多代码如不加密的话很多杀毒厂商开始追杀此类程序。

2 WebShell检测的主要手段

从安全防护的能力看,检测是第一位的能力,WebShell的检测主要有以下几种方式:

2.1基于文件的WebShell分析引擎

(1)检测是否包含WebShell特征,例如常用的各种函数。

(2)检测是否加密(混淆处理)来判断是否为WebShell。

(3)文件hash检测,创建WebShell样本hashing库,进行对比分析可疑文件。

(4)对文件的创建时间、修改时间、文件权限等进行检测,以确认是否为WebShell。

(5)沙箱技术,根据动态语言沙箱运行时的行为特征进行判断。

2.2基于流量的WebShell检测引擎

(1)方便部署,通过流量镜像直接分析原始信息。

(2)基于payload的行为分析,不仅对已知WebShell进行检测,还能识别出未知的、伪装性强的WebShell。

(3)对WebShell的访问特征(IP/UA/Cookie)、payload特征、path特征、时间特征等进行关联分析,以时间为索引,还原攻击事件。

2.3基于日志的WebShell分析引擎

(1)支持常见的多种日志格式。

(2)对网站的访问行为进行建模,可有效识别WebShell的上传等行为。

(3)对日志进行综合分析,回溯整个攻击过程。

由于业务系统更新频繁,Web脚本文件相关的属性经常发生变化,基于文件的检测,很多时候获取样本的部署成本比较高,同时仅仅靠样本无法看到整个攻击过程。基于日志的检测方法,一方面,由于业务功能较多且复杂,部分功能可能很少会被用到,其日志访问可能会命中某些检测规则从而造成更多的误报,另一方面,大量的日志记录处理起来会对服务器性能产生负担、而且由于日志量巨大检测过程消耗时间长,检测速度较慢。WebShell后门往往会模拟正常的数据库操作、不具有较为明显静态特殊属性、被访问的次数比较少无法形成较为明显的访问特征,通过日志分析也很难发现。总体来说还是基于“流量”的看到的信息最多,也能更充分地还原整个攻击过程。

3 基于流量网络行为的WebShell行为检测

WebShell运行后,B/S数据通过HTTP交互,HTTP请求/响应中可以找到蛛丝马迹,这是动态特征检测。我们知道WebShell工作在Web服务器上,其通信协议是HTTP协议。基于payload的行为分析,不仅对已知WebShell进行检测,还能识别出未知的、伪装性强的WebShell。

3.1上传过程的payload

我们知道正常情况下网站在需要的情况下通常会允许上传一些“无交互”的文件,但是不会允许上传以脚本形式存在的文件,如:PHP、JSP、ASP等,而WebShell就是以这种脚本形式存在,并且能够被服务器解析。虽然在上传过程中不会出现攻击payload,但是要向服务器上传文件或者产生交互,所以也会产生一些和上传相关的Payload。

3.2直接上传WebShell

这种方式通过POST直接上传一个WebShell文件,或者经过简单的变形然后上传到服务器上,形式如:

10.166.178.226 - - [12/Jul/2016:10:17:32 +0800] "POST /websectest/vulnerabilities/upload/ HTTP/1.1" 200 5584

如图1,这条日志中能够发现如下关键特:POST upload 200 5584通过这几个关键特征就能够确定hello.php是一个疑似Webshell文件。

图1 上传Webshell的特征

3.3访问过程的payload

WebShell是被制作用来控制服务器或者窃取机密信息的。要实现这些能力,攻击者就必须向WebShell发送一些控制指令从而操作WebShell,在控制指令中通常包含特征明显的攻击payload,如图2所示。

图2 WebWShell控制过程中的特征

上图是用菜刀控制Webshell发送指令,可以看出“菜刀”使用了base64的方式加密了发送给“菜刀马”Webshell的指令。通过分析我们能看住其中的两个关键参数z1和z2:

代码片段如下:

%3D&z1=L2Jpbi9zaA%3D%3D&z2=Y2QgIi92YXIvd3d3L2h0bWwvIjtuZXRzdGF0IC1hbiB8IGdyZXAgRVNUQUJMSVNIRUQ7ZWNobyBbU107cHdkO2VjaG8gW0Vd

很容易解密出结果:

显然通过解密之后特征就尤为明显了,通过检测和提取这种具有攻击倾向的payload之后可以被用来进行Webshell的深度分析。

4 结束语

本文对Webshell的原理和分类进行了较详细的叙述,并简单介绍了传统和现有的一些检测方法。针对传统检测方法的缺陷和不足,重点分析了基于流量的WebShell行为检测方法。重点分析WebShell运行后,通过HTTP交互、HTTP请求/响应中找出动态特征。基于payload的行为分析,不仅对已知WebShell进行检测,还能识别出未知的、伪装性强的WebShell。本文主要提供一种基于网络行为分析和检测WebShell的思路,基于上述思路而形成的流量分析引擎可以被嵌入到现有的网关型设备或云上,并实现Webshell的深度分析和检测。

[1]CNCERT.2014年我国互联网网络安全态势报告,2015.

[2]石刘洋,方勇.基于Web日志的Webshell检测方法研究[J].信息安全研究, 2016.

[3]康志辉.基于PHP扩展的webshell检测研究[J].科技传播, 2015.

[4]朱魏魏,胡勇.基于NN-SVM的Webshell检测方法[J].通信与信息技术, 2015.

[5]胡建康,徐霞等.基于决策树的Webshell检测方法[J].网络新媒体技术, 2012.

[6]齐建军.窃密型WebShell检测方法[J].计算机与网络, 2015.

[7]Xu Mingkun, Chen Xi, Hu Yan. Design of software to Search ASP Web Shell. Procedia Engineering,2012.

[8]Yung-Tsung Hou, Yimeng Chang, Tsuhan Chen. Malicious web content detection by machine learning. Expert Systems with Applications,2010.

[9]S.A. Parah,J.A. Sheikh.A secure and robust information hiding technique for covert communication. International Journal of Electronics,2015.

[10]András Kővári,Erik Pruyt.A Model-Based Exploration and Policy Analysis Related to Prostitution and Human Trafficking. International Journal of System Dynamics Applications (IJSDA),2014.

[11]Z. Kwecka. Application Layer Covert Channel Analysis and Detection [D]. Napier University,2006.

猜你喜欢
脚本木马日志
酒驾
小木马
一名老党员的工作日志
骑木马
安奇奇与小cool 龙(第二回)
扶贫日志
小木马
雅皮的心情日志
旋转木马
游学日志