回顾2021年发生的网络安全事件,log4j2高危漏洞爆发、incaseformat病毒大范围传播、多家知名企业数据泄露,攻击目标都直指客户的业务服务器。根据奇安信云与服务器安全BG统计,2021年针对服务器的网络攻击明显增多,其团队捕获的服务器恶意代码数量同比增加110%,其中Webshell样本占比接近70%,数量超过勒索病毒、挖矿程序和其他恶意代码的总和,是名副其实的服务器头号威胁。
不断进化的Webshell
Webshell通常是PHP/ASP/ASPX/JSP/ PYTHON等语言编写的脚本文件,原本是用于管理服务器、网站及数据库的工具,但在黑客手中就成了提权、权限驻留,以及横向渗透的帮凶。Webshell不像病毒 、挖矿程序等二进制程序一样能独立执行,需要通过Web中间件的配合解析,为了更好的绕过检测手段,Webshell已经先后进化出4种形态:
①小马
体积小、容易被上传,一般只具备文件上传功能,通常被用于下载大马。
②大马
体积大、功能全,具有文件管理、数据库管理、账号权限管理的能力,如phpSpy、jspSpy等常见大马。
③一句话木马
一句话木马相比小马&大马有本质的区别,用一句简短的代码来承载payload,将动辄十几K或者更大的大小马变成了几个字节。一句话代码极为精炼,不像小马&大马一样将直接功能写在脚本文件中,因此几乎没有什么特征,很难被病毒引擎检测到。一句话木马的出现,将攻击门槛和攻击成本大幅拉低,这也是目前最常见的Webshell攻击手段。一句话木马需要配合蚁剑、菜刀、冰蝎等客户端使用,通过客户端发送功能函数到服务端,服务端将功能函数执行并将结果返回,从而实现服务器端的恶意操作。
④内存马
内存马是目前检测难度最高的Webshell,在服务器端没有文件实体,而是通过Web中间件污染系统内存,实现恶意代码驻留,再通过远程工具连接即可利用中间件执行恶意操作,比一句话木马的检测难度更高,近年来备受攻击者追捧,但也有一定缺陷,比如Web中间件重启后就会被释放掉。
Webshell典型攻击链(关联MITRE ATT&CK)
Webshell的攻击可以有多种组合,我们以一个“Webshell上传-内网探测-横向移动-释放后门/病毒”的横向移动攻击链为例,回溯Webshell的攻击。
Mircosoft《Ghost in the shell: Investigating web shell attacks》
攻击链:①扫描探测发现web服务器(边界服务器)存在可利用漏洞,利用漏洞上传Webshell ②利用Webshell执行内网暴破、端口扫描 ③获取内网权限,IPC$入侵、PsExec类工具利用横向移动 ④拿下内网目标机器,投放病毒&后门、窃取数据。
动静结合,对抗Webshell
如何有效对抗Webshell ? 据奇安信云服务器安全BG「天择实验室」 知名安全专家吴康、闫雪介绍,依靠静态特征已经不足以对抗日益变化的Webshell,还需要结合污点跟踪、动态脚本沙盒和威胁情报“组合拳”的方式,才能实现对Webshell的有效检测和查杀。
奇安信自主研发的椒图「龙息」 Webshell检测引擎,会对疑似Webshell的脚本文件进行多维度综合分析和追踪,配合应用运行时自我保护RASP以及内存马检测模块,能有效检测变形、混淆代码、内存驻留的Webshell。
椒图「龙息」引擎Webshell检测流程
「龙息」 引擎会跟踪Webshell完整的攻击路径,依次调用文本哈希匹配模块、智能脚本分类器、文本索引正则规则、模糊哈希匹配、本地沙箱和静态污点跟踪模块进行检测,如果经过上述模块检测仍未检出,则根据脚本分类器的分类结果将文件内容发送至云中心的特定脚本沙盒中运行,并根据其脚本行为特征确定是否为恶意脚本,并在Webshell运行时通过RASP进行监控和拦截。
AI算法提升检测速度
传统的webshell检测方法采用特征检测,这种方式在进行大文件匹配时速度非常慢,同时会占用大量系统资源(CPU、内存等),因此龙息引擎则采用短文本规则索引、正则表达式规则相结合的树形规则结构,在对某个Webshell脚本文件进行匹配时,首先会从规则树的根节点字符进行深度优先遍历,从而大幅度提升检测速度,同时根据奇安信威胁情报中心的海量Webshell样本库,生成正则表达式规则对目标文件进行AI算法检测,进一步减少了正则匹配的次数,将检测效率再次提升。
本地&管理中心沙箱模块,虚拟执行发现恶意代码
对于某些语法相对简单的Webshell类型,例如Javascript语言的.NET类Webshell,龙息引擎使用简化的脚本引擎沙箱对此类脚本文件在本地进行模拟执行,但考虑到执行效率和安全性等方面考虑,较为复杂的脚本文件会被上传至管理中心沙盒中运行,沙盒会根据其行为特征判定恶意脚本,并将结果返回至客户端。为防止某些Webshell程序对自身进行二次解密后继续执行的情况,龙息引擎还对任何生成新文件或代码解释的所传入的内容利用规则库进行了二次扫描,以避免被绕过。
内存马检测,发现驻留内存的恶意代码
内存马是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的Webshell,是无文件攻击的常用工具,因为其利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。龙息引擎通过下发扫描任务的方式,对JVM中加载的易被内存WebShell利用的类进行扫描,将异常的类上传至沙箱反编译为java代码并进行特征比对,可以有效检测冰蝎等常见工具的内存WebShell攻击。
RASP检测Webshell运行,监控异常行为
Webshell对抗可以分为运行前和运行时两个阶段,通过龙息引擎可以将绝大部分运行前的Webshell清除,在运行时阶段,则采用RASP(Web应用运行时自我保护)技术来进一步检测Webshell行为,RASP可以理解为通过权限控制技术来限定Web应用的行为规范(文件操作、命令执行、IO等),比如一个最新的Webshell绕过了龙息引擎的检测,但在Web应用解析时发现有执行powershell写入内存马的操作,即会被RASP检测并拦截。
龙息引擎实战效果
①在测试环境中利用weblogic反序列化漏洞上传Webshell,被拦截:
在管理中心生成事件报告:
②通过ftp上传webshell,被直接拦截
与Webshell的对抗没有终点
就像新冠肺炎不断有新的变种出现一样,Webshell的进化从未停止,椒图「龙息」 Webshell检测引擎采用动静结合的多维度综合检测机制,并将词法分析、污点追踪、行为监控、AI算法等领先技术有效融合,实现了对Webshell运行前的有效检测、运行时的实时阻断,以万变不离其宗之法对抗不断变化的Webshell。
如若转载,请注明原文地址