对攻击者而言,打破安全防线,摧毁水晶塔(攻破主机)是长期觊觎之下的终极目标。此背景下,通过社工、邮件钓鱼、水坑攻击等手腕发起攻击,以期望达到该目的。但是,传统诸如WAF、HIPS、蜜罐等防护工具都可以很好的办理此类威胁造成的危害。而基于内存的webshll攻击可以绕过现有的安全检测机制,给现有的安全防护体系带来较大的安全寻衅,成为攻防对抗中常被利用的攻击手段。
攻破敌塔的有利武器
对付攻击者而言,面对严防去世守的安全防线,想攻破对方水晶塔(主机)其实不易,极易涌现还未攻到对方敌塔,已战去世在进攻的路上的情形。然而,攻击者一贯在进攻的路上,积蓄装备、增加“铭文”,提升战斗力,撕破防线,进攻敌塔。内存webshell则是增加攻击者战斗力的铭文,犹如“兰陵王”一样平常,具有暗藏性,不易被察觉,从而发起攻击行为。
在攻防的过程中,渗透环节常日会用到webshell,以asp、php、jsp或者cgi等网页文件形式存在。当黑客在入侵了一个网站后,常日会将asp或php后门文件与网站做事器web目录下正常的网页文件混在一起,然后就可以利用浏览器来访问asp或者php后门,得到一个命令实行环境,以达到掌握网站做事器的目的。
传统的Webshell是基于文件类型的,攻击者可以利用上传工具或网站漏洞植入木马,而Webshell内存马是无文件马,利用中间件的进程实行某些恶意代码,不会有文件落地,对付严防去世守的防线是一个新的打破。Webshell内存马,是在内存中写入恶意后门和木马并实行,达到远程掌握Web做事器的一类内存马,其瞄准了企业的对外窗口:网站、运用。
对付内存马,常日情形,分类如下:
图1 内存马分类
内存马的3大特点刚才我们讲到了内存马的观点特性,除了暗藏性、不易被察觉以外,其还有如下几个特点:1、内存马无逻辑构造边界,难以被创造。内存马仅存在于进程的内存空间中,常日与正常的/合法的代码、数据稠浊。内存马与传统恶意代码的不同之处在于它没有磁盘文件,会导致传统的检测防护手段失落效。2、内存马缺少稳定的静态特色,难以被识别。内存马缺少构造化的静态形式,它寄托在进程运行期间的输入数据进入进程,数据可能被加密稠浊,因此,无法通过特色识别内存马。3、 内存马种类多,检测机制繁芜而多样。内存马有二进制代码片段(Shellcode)、PowerShelll脚本、Web中间件等类型,每种类型又可细分,不同类型内存马的实行办法、恶意代码/行为触发机制各不相同。
内存马的攻击事理对内存马有了观点上的认知,那么一定要知道它的攻击事理,利于找到办理方法。在先容内存马的攻击事理之前,我们先讲一下Web做事器的事情事理。众所周知,Web做事器运行着很多中间件,如Tomcat,Weblogic等。这些中间件都由多个独立的组件组成,个中包括:Listener、Filter、Servlet。我们以JAVA为例,一个网页要求会由Servlet容器进行调用和实行,Filter程序则是一个实现了分外接口的Java类,一样平常用于进行要求过滤。当某一个要求须要对内存中的数据进行读写或者实行时,就须要经由Filter的判断和过滤,由Filter来决定这些要求是否有权限进行这些操作。
图2 Web做事器事情事理
而内存马正是利用了这种机制,通过动态注册一个新的Filter或者向Filter中注入恶意的shellcode,让Filter许可攻击者访问到Web做事器内存中的数据。只要拥有了可用的Filter,攻击者就能进行远程攻击,而不管是shellcode的注入过程还是对Web做事器数据进行访问的过程都会在内存中涌现非常行为。其余,由于Web做事器在网络中与数据库和权限系统连接,攻击者在入侵后,可以更轻易地进行横向的渗透,拿到多个主机的权限。
内存保护的办理方案传统安全防护手段侧重于防护已知威胁或者事后检测,在后续的运营过程中进行策略掩护管理或者依据已发生事宜持续进行检测和相应。对付内存马攻击缺失落实时检测与防御能力,随意马虎被绕过而造成安全威胁。内存保护技能则包括硬件虚拟化技能、行为剖析技能、关联剖析技能,对付漏洞利用、动态列举等都有很好的检测、防御能力,可以更好的办理内存马攻击的安全威胁。
脚本类内存马:可通过对脚本运行时环境(例如:.NET CLR、VBScript实行引擎、JavaScript实行引擎等)内的脚本运行时行为进行监控,创造非常行为来识别此类攻击。二进制内存马:通过对内存中的读、写、实行动作进行监控,创造非常来识别此类攻击。PHP内存马:通过对PHP进程实行行为进行监控,关联剖析敏感行为以识别此类攻击。虽然内存马攻击比较传统攻击手段更繁芜、暗藏,但是利用内存保护技能可以很好的检测、防御,防止了攻击事宜的发生。对付防守方来讲,可以更好的守护自家“水晶塔”(主机),让其更安全。