Webshell就是以asp、php、jsp或cgi等网页文件形式存在的一种代码执行环境,一般可以通过浏览器来交互执行,也可以将其称做为一种网页后门。如果攻击者将Webshell上传到网站便可以在应用服务器上执行敏感命令、窃取数据、植入病毒,获取系统权限,入侵内网,危害极大,是网络罪犯和高级持续威胁(APTs)的常用工具。
伴随着近几年攻防对抗演习的开展,Webshell也逐渐更新换代,隐匿性更深,功能性更多,传统的流量与特征监测防御手段防御效果也逐渐变弱。
Webshell的发展过程大致如下所述:
Web服务器管理页面 大马 小马 一句话木马 加密一句话木马 加密内存马
内存马又叫无文件马,是在内存中写入恶意后门和木马并执行从而接管服务器,作为无文件攻击的一种常用手段,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度;同时随着攻防演练热度越来越高,内存马使用越来越多。
根据内存马的实现技术内存马分类图谱如下:
内存马为什么最难防御呢?
内存马是现阶段当之无愧的 Shell 之王,主要有以下几个特性所以最难防御:
流量侧特征识别
检测 Webshell 和管理工具流量特征,使用模糊匹配、正则等方式进行匹配拦截异常流量,离线或在线进行规则扩充和升级。
静态文件分析
通过特征库比对、AST 分析等方式,对 Web 应用文件系统进行安全扫描,检查异常文件。可以结合沙箱模拟运行来判断可疑文件是否具有风险。
HIDS类产品
部署在操作系统的入侵检测防御设备,定期扫描并监控文件变更和写入,还可以通过日志或定制内核的方式监控命令执行,当发现异常行为后可以做出对应措施。
RASP
RASP将自身注入到应用程序中,与应用程序融为一体,实时监测、阻断攻击,使程序自身拥有自保护的能力。
内存保护和行为分析
脚本类内存马:可通过对脚本运行时环境内的脚本运行行为监控识别攻击。二进制内存马:通过对内存中的读、写、执行动作进行监控识别攻击。JAVA内存马:通过JVM进程自省,对敏感JAVA接口调用监控,监测内存马载体进程的操作,分析敏感行为。PHP内存马:通过对PHP进程执行进行监控,分析敏感行。
对于常见的Webshell常见的思路主要从静态特征,动态特征,行为分析几个点进行检测和拦截。但是随着Webshell进化,如加密混淆传输,免杀更新,内存马出现,基于特雷特征检测的方式很容易被绕过,并且很难防患于未然,很多是攻击后的规则库更新和优化,防御总是慢攻击一步,疲于应付。并且内存马有难以定位,难以清除,难以检测的特点,基于各类特征和行为检测更难以防御。
动态防御技术对抗Webshell
随着新技术的发展在未来强大的Webshell管理工具以后会越来越多,传统的WAF根据规则进行攻击特征进行拦截,但是此类新形web shell工具,经过加密处理特征不明显,容易出现漏报和误报。但面对瑞数的动态防御技术,一切Webshell攻击都尽在掌握,无论上传Webshell还是连接webshel或注入内存马等任何方式的攻击方法,瑞数动态防御都能轻松防御。
瑞数动态防护技术是非特征匹配方式,不存在规则更新、维护,不存在被绕过等情况。同时瑞数动态防护技术的动态令牌和动态验证机制让这样的Webshell管理客户端工具无法正常的连接木马后门,从而实现防护。
下面4个案例是网站加上瑞数的动态防御系统后防御Webshell上传和管理的几个常见场景演示:
测试Webshell上传时防御情况
通过上传接口对Webshell进行上传:
返回空白页面
查看保护日志,发现检测出木马的特征被成功拦截
瑞数动态防御系统智能检测引擎和规则检测根据特征对恶意文件进行检测和拦截。
测试大马通过加密混免杀等手段绕过防护手段上传成功后利用浏览器对Webshell进行管理的防御情况。
大马通过浏览器上传成功,并且获取木马的访问路径。
通过浏览器访问Webshell的路径,因为无法获取有效的随机urltoken,所以管理Webshell。
查看保护日志,浏览器直接访问Webshell的地址,无法获取有效的随机urltoken,导致浏览器无法管理Webshell,有效防御了大马的攻击。
瑞数动态防御系统依靠动态防护技术对有效的url地址赋予一次性有效的随机urltoken,因为Webshell的上传路径是无效的utl地址,所以无法获取有效的urltoken,所以即使大马上传成功,但是依然无法有效的进行管理,从而阻截了大马的攻击。
测试Webshell通过加密混免杀等手段绕过防护手段上传成功之后对Webshell进行管理的防御情况。
Webshell上传成功
但是Webshell管理工具进行访问时返回412,无法连接已上传的Webshell,被瑞数动态防御系统成功拦截。
查看保护日志,发现已被检测出攻击特征,返回状态412,且未携带动态防御特有cookie等字段被成功拦截,并且通过日志分析可以判断为Webshell管理工具攻击请求,从而定位Webshell位置,根据日志溯源还能判断Webshell是通过什么漏洞和方式进行上传的。
瑞数动态防御系统依靠动态防护技术对Webshell客户端管理Webshell流量进行无差别拦截,因为Webshell管理工具不具备JS执行能力,无法获取有效的随机动态令牌,
不依靠任何特征规则从根本拦截所有“一句话木马”客户端的请求,并对其进行拦截,实现一劳永逸的防护。
测试内存马注入成功之后对Webshell客户端进行管理防御情况。
冰蝎提供内存马注入,但要通过冰蝎注入内存马,首先需要网页版Webshell,通过上面案例可见攻击者在面对动态防御技术时想上传Webshell都会显得格外无力。
下面将Webshell设置白名单后,尝试注入内存马
本地使用tomcat环境,将冰蝎马传入网站根目录,并开启白名单
开启白名单后,日志中显示没有动态保护的字段未拦截并成功连接Webshell
注入内存马
开启瑞数动态防御系统保护,发现无法连接成功,显示状态412,未携带动态防御特有cookie等相关字段,被成功拦截
测试中因为要呈现注入成功的演示,所以关闭了动态保护,如果不开动态保护,使用Webshell管理工具进行内存马注入尝试,因为没有正确的随机token,第一步攻击必然就会失败。所以前期关闭了保护,虽然内存马注入成功,但是瑞数动态防御系统依靠动态防护技术对Webshell客户端管理Webshell流量进行无差别拦截,因为Webshell管理工具不具备JS执行能力,无法获取有效的随机动态令牌,
不依靠任何特征规则从根本拦截所有内存马的请求,并对其进行拦截,实现一劳永逸的防护。
总结
瑞数动态防御系统集成动态安全引擎、智能检测引擎和规则检测引擎。多引擎于一体的纵深防御体系,无论Webshell如何进化,不管有没有加密传输,有没有免杀,有没有文件落地,是不是内存高级马,三位一体以不变应万变,基于瑞数的动态防御都可以迎刃而解。可以从多个阶段进行识别和拦截,Webshell上传时识别拦截,Webshell上传之后访问拦截,Webshell上传之后的客户端管理拦截,内存Webshell上传之后的客户端管理拦截,步步为营层层防御做到万无一失。
页面更新:2024-05-05
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号