网站攻击防护对于内存马的介绍与防御办法

内存马又称无文件马,顾名思义,是一种只存在于内存的无文件恶意代码。近几年来,随着攻防实战演练范围的增加,攻防技术水平的加强,专业的控制、防护手段被防守方普遍使用,传统的文件上传着陆的Webshell和需要以文件形式持续目标服务器的恶意代码的方式逐渐失效,攻击难度逐渐增加。攻击者开始采用更聪明的攻击方式,如0day/nday脆弱性攻击、无文件攻击、内存网络、傀儡进程等基于内存的攻击手段。


攻击者通过操纵漏洞利用程序、合法工具、宏观和脚本,破坏系统、提高特权、在网上横向传播恶意代码,执行后不留痕迹,难以检测和清除,在2020年的攻防训练中,存储马也成为攻击者手中的王牌手段。


内存马的分类图像。目前黑客攻击的目标不仅仅是终端,服务器的攻击也在增加。通过分析和整理,内存马攻击通常发生在网络系统后端脚本、Java容器和操作系统平台脚本中。我们总结了一些基于运行环境的主流内存马分类图像。PC终端的内存马攻击主要有2种:1、PowerShell、WMI、VBA、JS、VBS等类型的脚本攻击,依靠系统的白程序/工具,在存储器中执行脚本程序。2、二进制Shellcode攻击,这种攻击通过控制程序的执行流程使Shellcode获得执行机会,Shellcode在磁盘中没有文件对应,只存在于存储器中。除了上述两种攻击之外,服务器主要运行Java和PHP等应用程序,攻击者还将重点利用Java内存马和PHP内存马来攻击服务器。



常见的存马的介绍。

1、JAVA内存马Java内存马根据实现技术可分为以下类型

①Servlet-api类JavaServlet是在Java应用服务器上运行的组件。用于处理HTTP客户端的请求,访问后端数据源。利用Servlet可以切断来自网页表单的用户输入,获取和修改来自数据源的数据,甚至动态创建网页。Servlet-api类内存马主要有Servlet和Filter两种。Servlet主要用于Tomcat、WebLogic等Java应用服务器。攻击者通过向Java应用服务器添加Servlet程序来处理自己的后门请求。Tomcat由Adapter、Connector和Container组成,Connector主要负责处理网络请求,Container负责装载Webapp,Adapter是Connnector和Container的桥梁Tomcat只有一个Adapter实现类别,即CoyoteAdapter。Adapter的主要作用是将Request对象适应于容器可识别的Request对象,例如Servlet容器只能识别ServletRequest对象,因此Adapter适应器类为Servlet容器,Filter是过滤器,是应用程序开发的常用技术。开发人员利用Filter管理网络服务器的所有网络资源,如Jsp、Servlet、静态图像文件或静态html文件等资源URL请求,实现应用功能。例如,实现URL水平的权限访问控制、过滤敏感词汇、压缩响应信息等。



②spring类Spring类主要有Listener和Controller两种。Listener界面是由Spring框架定义的,APP通过实现特定的Listener界面,将界面登录到Spring框架中,当程序关注的事件发生时,Spring框架会通知Listener,回调Listener方法。Controller类型是SpringMVC提供的拦截器Interceptor,可用于验证用户注册。与过滤器不同,拦截器由Spring框架提供。③JavaInstrumentation类利用JavaAgent技术,直接修改Servlet字节代码,生成恶意代码。2、PHP存储马PHP-FPM未经许可访问脆弱性攻击和存储网络是常见的PHP存储马①PHP-FPM生效时,通过Fastcgi协议(Fastcgi协议是服务器中间部件和后端进行数据交换的协议)向PHP-FPM请求任意文件。如果PHP-FPM可以外访,攻击者可以通过Fastcgi协议直接要求PHP-FPM执行任意文件。②内存驻留webshell通常在php执行后删除php文件本体。



防护的难点。

1、存储器马没有逻辑结构的边界,存储器马只存在于过程的存储器空间中,通常与正常/合法的代码、数据混淆。内存马和传统恶意代码的区别在于没有磁盘文件,传统的检测防护手段失效。2、存储器马缺乏稳定的静态特征,存储器马缺乏结构化的静态形式难以识别,依赖于过程运行中的输入数据进入过程,数据可能被加密混淆,因此无法通过特征识别存储器马。3、存储马种类繁多,检测机制复杂多样的存储马有二进制代码片段(Shellcode)、PowerShell脚本、网络中间部件等类型,各种类型可细分,不同类型的内存马的执行方式、恶意代码/行为触发机制各不相同。防护方案。内存马种类繁多,检测机制复杂多样,传统安全产品或解决方案在第一时间难以发现和阻断内存马攻击。需要更多的对于IP策略进行控制,比如进出站规则安全一对一的话就可以避免了。


分享: