惊雷?雷火引擎要重新定义Webshell检测的新纪元
作者:星期三, 四月 29, 20200

一直以来,Web应用程序是攻击者利用安全漏洞进行攻击的最常见目标之一。在成功渗透进Web站点后,攻击者会放置Webshell以维持对目标长久的访问权限。尽管Webshell在实践中普遍存在,并且严重威胁Web安全,但业内目前还未能出现太多有效的Webshell检测工具,真正做到100%识别查杀更加是难上加难。

2019年主机安全事件超百万,Webshell恶意程序感染事件占73.27%

2019年10月,国家互联网应急响应中心发布的《2019年中国互联网网络安全报告》指出,仅2019年上半年,监测发现境内外约1.4万个IP地址对我国境内约2.6万个网站植入后门,同比2018年上半年增长了1.2倍。

2020年4月,青藤云安全携手中国产业互联网发展联盟(IDAC)、腾讯标准、腾讯安全,共同发布《2019中国主机安全服务报告》。报告显示,2019年,全国企业用户服务器病毒木马感染事件超百万起。其中Webshell恶意程序感染事件为近80万起,占总数的73.27%;Windows恶意程序感染事件占18.05%;Linux恶意程序感染事件占8.68%。 针对Webshell的检测和防御对抗能力,是Web网络安全行业长期以来最值得关注的问题。

图:主机感染病毒木马的情况

经不起强对抗:Webshell检测能力现状

说到Webshell,那么什么是Webshell?

Webshell是网站入侵的脚本攻击工具,黑客通过入侵网站上传webshell后获得服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等违规操作。

根据上面的定义不难发现,Webshell本身与正常的网页脚本在本质上没有什么不同,都是一段可以动态运行的脚本代码,但由于其可以执行许多高危的操作对企业内网防护与业务安全的保障工作产生了巨大的挑战,其危害不可言喻。

目前,Webshell的检测方法主要可以分为三大类:

1.静态检测

静态检测是指对脚本文件中所使用的关键词、高危函数、文件修改的时间、文件权限、文件的所有者以及和其它文件的关联性等多个维度的特征进行检测。例如利用正则表达式,以及后期出现的熵值分析、相似度匹配等方法来判断文件代码中是否包含恶意的shell代码。

静态检测方法部署简单,但是只能查找已知的Webshell,对未知特征或者混淆加密的shell很容易被绕过,漏报率与误报率之间平衡点难以衡量、人工依赖度大等缺点也是需要考虑。近几年出现的一个概念­——抽象语法树分析,即将脚本文件以树状的形式表现编程语言的语法结构,树上每一个节点都表示源代码中的一个结构。借助抽象语法树找到脚本的所有可能执行的路径。抽象语法树分析法对传统静态检测的缺陷有一定的补充作用。

2.动态检测

动态检测通过Webshell运行时使用的系统命令或者基于网络流量及状态的异常来判断动作的威胁程度。常见的两种动态监测方式分别是在沙箱内试运行、代码运行过程中HOOK系统高危进程调用和流量特征包来判别是否是恶意webshell。

目前,动态检测的方法在Webshell检测领域未能广泛推广,虽然基于沙箱技术的行为特征分析对于混淆或者加密的webshell可以有效监测,但是由于可控输入的存在,黑客可以控制代码执行的路径,从而通过可控输入绕过沙箱的执行路径,使得沙箱只适用于执行路径一定的Webshell,对于执行路径较多的Webshell,则非常容易被绕过,所以沙箱检测webshell的场景显得有点儿局限。

3.基于AI的检测方法

利用AI来检测Webshell只有两种方式,一种是用传统的机器学习(ML),基于朴素贝叶斯的方式做统计分析,还有一种是过去几年很火的深度学习,来自动或半自动地提炼样本特征,进而实现特征匹配与结果判定。

基于AI的Webshell检测方法本质上也是从现有的样本里面提炼特征,可以看成是用人工智能或者机器学习取代了人,来进行提炼操作,本质上还是在提炼特征,因为Webshell的多样性和可以无限变形,所以这种特征提取出来之后,对未知的Webshell的检测能力同样效果不会很理想。

以上三种检测方法是业界对Webshell检测的几种方式,但是由于shell的可变程度很高,加解密利用难度基本为零,所以黑客只需要把能够检测出来的样本略做更改,就能够绕开检测,就会让检测工具误判认为这是正常的文件。所以,目前来说依靠以上三种检测方式的检测工具的有效性还有待提高,不否认能够检测到一部分的Webshell,但是做不到真正意义上的对抗,是弱对抗的检测。

这就是整个行业的现状,Webshell通过特征修剪和流量加密经过反复测试、调整,最终还是可以绕过上述检测方式,经不起对抗。

大家都知道,只依靠一种检测方法是很难对现在混淆多变的Webshell文件进行全面检测的。在真实的环境中进行部署检测系统时需要多种传统检测方法的加持,来达到互补和增强检测结果可行度的目的。

雷火引擎:你想要的Webshell检测操作,我都有

雷火检测引擎使用了一种全新的思路——反混淆等价回归,即将黑客精心构建的经过加解密、隐藏恶意函数、或者经过动态拼接的shell样本,运用人的思维推演出该样本的本质目的,再判断这一行为是否为合规。但是需要强调的是整个推演和判断的过程是不需要人为干预的。下面简单列出了经过反混淆等价回归前后的Webshell变化。

混淆webshell:

反混淆等价回归后的webshell:

 

事实上,为了实现反混淆等价回归的整个流程,整个引擎融入了三大核心技术:

1.做抽象语法树解析

将脚本文件用树状的形式表示编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。借鉴抽象语法树遍历出脚本所有可能执行的路径。

2.AI推理

借助数据表及、代码推理等多种技术,从遍历的众多执行路径中找出最佳执行路径。即当这段代码能够做非常复杂的执行操作的时候,AI要把所有的代码可能性全部推演出来,找到最有可能是恶意行为的那些分支,然后对整段代码做减法,裁减掉认为跟恶意行为无关的代码,剩下的就是恶意代码。

3.虚拟运算

虚拟运算是将脚本模拟真实黄经中去运行得到结果,并对此过程中融入AI推理,从脚本中找到最佳执行路径,将其有效等价还原。

通过对Webshell现状的整体分析,我们发现Webshell不知不觉为人们带来了很多危害,一旦黑客拿到了网站的WebShell,网站将不再有秘密可言,比如下载文件、修改文件、删除文件等,将变得非常容易。《雷火引擎》的推出为有效检测Webshell提供了新思路。另外为了进一步提升与完备引擎的检测能力,青藤SRC重磅推出“雷火齐鸣 最燃公测-暨青藤首届线上公开挑战赛”,欢迎安全界有识之士参与挑战(报名指引:https://thunderfire.qingteng.cn/)。

 

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章

技术产品

一文详解Webshell