首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RASP攻防 —— RASP安全应用与局限性浅析

经过多年的实践我们发现RASP也存在一些缺陷和不足,本文以PHP RASP作为研究对象抛砖引玉,在此分享RASP的应用场景和问题。...本文主要分三个部分:RASP架构原理简要介绍、RASP安全应用场景介绍 及 RASP对抗浅析。...一、 RASP架构原理简要介绍 以PHP语言为例,PHP语言自身提供扩展机制,可以基于扩展机制开发RASP系统。...三、RASP 对抗浅析 在上文中,介绍了PHP RASP的安全应用场景和实现原理,写了很多RASP的优点,但俗话讲的好:没有绝对安全的系统,接下来分享一下RASP存在的不足。...先看一下RASP在LINUX系统中的层级: rasp层级.png PHP RASP作为php解释器的扩展,运行在php解释器层面,也就是说在与PHP RASP同级或者在其层级之下的操作,它的监控基本上是失效的

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WAF和RASP技术,RASP与WAF的“相爱相杀”

    RASP什么是RASP在2014年的时候,Gartner引入了“Runtime application self-protection”一词,简称为RASP。...该技术不会影响应用程序的设计,因为RASP的检测和保护功能是在应用程序运行的系统上运行的。RASP vs WAF那么说了这么多,RASP相较于WAF的区别是什么呢?他们之间的优劣势又区分在哪呢?...RASP技术的缺陷不同的编程语言可能编译语言和应用程序的版本不一致都导致RASP产品无法通用,甚至导致网站挂掉;如果RASP技术中对底层拦截点不熟悉,可能导致漏掉重要hook点,导致绕过;对于csrf、...RASP与WAF结合的效果WAF与RASP组成纵深防御体系:WAF提供真实的攻击来源:企业的应用通常都是在网关或者反向代理之后的,当流量进入应用时,RASP探针在大多数情况下其实只能拿到反向代理或者网关的...总结总的来说,RASP和WAF最大的区别是:WAF的目的是发现可疑的流量,RASP则是发现具有威胁的行为。由于近期几次大的0day漏洞事件,RASP因其特点,在防护未知攻击方面,发挥了重要的作用。

    43900

    JNI技术绕过rasp防护实现jsp webshell

    想到rasp这类工具是基于java、php运行期的堆栈信息进行分析,可以尝试使用jni技术进行绕过。...java技术栈中的jni的原理是使用java调用c、c++函数,具体实现的思路是jsp编译为class文件,该class通过jni技术调用另外一处dll里的函数绕过黑名单执行命令获取回显,即可实现rasp...jni载荷的c、c++实现的代码要具备健壮性,避免目标环境的jvm奔溃。 使用system函数执行命令要小心被hids发现。 该webshell只在tomcat容器上测试过。...实战使用 经测试:jdk1.7+tomcat8.5+windows环境 jdk10+tomcat+Mac rasp安全防护全开。 rasp安全防护全开。 ? ? ?...使用jni突破rasp的jsp来执行shell,成功绕过。 成功绕过。 ? 使用d盾查杀 ? virustotal: ? 其他 如果您有其他的思路和建议,欢迎同我交流:)

    1.6K20

    Java安全之JNI绕过RASP

    Java安全之JNI绕过RASP 0x00 前言 前面一直想看该JNI的相关内容,但是发现JNI的资料还是偏少。后面发现JNI在安全中应用非常的微妙,有意思。...0x03 JNI 绕过RASP 执行命令 在RASP里其实是Hook掉了一些Runtime、ProcessBuilder 等类,但是Runtime.exec调用的是ProcessBuilder.start...假设一个场景一个站点使用RASP,这时候如果上传一个webshell 那么这时候就会去用到JNI去调用该dll文件就可以进行一个绕过,可以先来实现这么一个功能,后续还需要考虑到的是怎么将几个文件封装到一起...(ipconfig); } } image.png 调用栈: image.png 命令就执行成功了,这里不是调用一些自带的Runtime等方法,而是调用dll文件中封装的方法,能够去绕过一些RASP

    1.3K10

    RASP解决Java安全问题探讨

    通过 RASP 技术,可以为包含漏洞的应用程序提供临时保护,为漏洞修复争取宝贵时间。 Java 应用程序实现 RASP 的主流方式是利用 JVM 虚拟机提供的标准接口 Instrumentation。...通过 JavaAgent 的形式将 RASP 运行在 JVM 上,然后借助 Instrumentation 技术 Hook 关键的类和方法。...在部署 RASP 探针时,JVM Instruumentation 为我们提供了两种方式将“疫苗”注入到代码中: * 代理方式:启动进程时使用 -javaagent 参数来将探针相关代码传递给 premain...无论恶意代码在应用程序代码还是在导入的第三方库或网络中,启用 RASPJVM 都可以防御 0day 漏洞。...同时,通过将安全性引入 JVM,可以始终以可行的方式保护核心的代码,在不更改软件不影响性能的前提下保护多个应用程序。

    91630

    攻防演练 | 攻防在即,RASP为上

    不得不提到RASP,它是实现内部安全的绝佳技术。运行时应用程序安全保护 (RASP) 工具通过使用直接嵌入到应用程序中或与应用程序相邻的安全引擎来保护应用程序。...运行时情境安全虽然RASP经常拿来与WAF做对比,然而它更像是WAF后面的一道防线,增强了安全性。RASP通过在现有应用程序代码中植入传感器来实时监控和控制关键执行点。...利用这些技术,RASP 成为应用程序的一部分,使它们能够独立于其部署环境而受到保护。而且,RASP可以在本地、云和容器的任何部署架构中运行。...而且,RASP技术集合BAS技术可以在攻防演练活动中实现自动化检测,对安全威胁进行验证,确保安全链路完整。正因此,RASP技术可以更好的在攻防演练中发挥作用,确保防线安全,避免防守方丢分。​...云鲨RASP 点击使用​

    57130

    web安全防御之RASP技术

    0x01:什么是RASPRASP能做什么? 1.在2012年的时候,Gartner引入了“Runtime application self-protection”一词,简称为RASP。...上面提到关于jvm方面的知识可以参考我博客的这两篇文章 https://www.cnblogs.com/2014asm/p/7999049.html https://www.cnblogs.com/2014asm...Java字节码的修改;有了修改.class字节码文件的技能,还需要能够在Java运行期间注入我们的防护程序,通过上面的流程框架我们知道Java运行时是发生在JVM中,jdk1.5以后引入了javaAgent...技术,javaAgent是运行方法之前的拦截器关键方法,只要在JVM中加入启动参数-javaagent配置Java代理可以在运行时注入我们的防护程序。...图9 c.接下来我们将实现一个用于保护上面javaweb的RASP保护程序,上面说过只要在JVM的-javaagent参数中配置我们的保护程序,就能够轻松实现Java的RASP,Java代理程序入口类需要有名为

    5.7K31

    JNI技术绕过rasp防护实现jsp webshell

    想到rasp这类工具是基于java、php运行期的堆栈信息进行分析,可以尝试使用jni技术进行绕过。...java技术栈中的jni的原理是使用java调用c、c++函数,具体实现的思路是jsp编译为class文件,该class通过jni技术调用另外一处dll里的函数绕过黑名单执行命令获取回显,即可实现rasp...jni载荷的c、c++实现的代码要具备健壮性,避免目标环境的jvm奔溃。 使用system函数执行命令要小心被hids发现。 该webshell只在tomcat容器上测试过。...实战使用 经测试:jdk1.7+tomcat8.5+windows环境 jdk10+tomcat+Mac rasp安全防护全开。 rasp安全防护全开。 ? ? ?...使用jni突破rasp的jsp来执行shell,成功绕过。 成功绕过。 ? 使用d盾查杀 ? virustotal: ?

    1.7K10

    RASP的安全攻防研究实践

    再用gcc编译成dll/so文件 gcc -fPIC -I "/usr/lib/jvm/java-11-openjdk-amd64/include" -I"/usr/lib/jvm/java-11-openjdkamd64...相比较下来,Jrasp并无明显的开关可以直接通过反射去操控,且该action变量在模块中,而模块又是经过SPI注入到JVM中的,因此笔者在实现的过程中也遇到了不少问题。...out.println(" "); out.flush(); out.close(); } %> 因为在基于Instrument的JavaAgent只能修改JVM...4.13 高权限场景卸载RASP 非常常见的卸载方式就是通过获取tools.jar的路径,调用里面的JVM API来进行卸载, URL url1 = new URL("file:C:\\Program...会卸载掉该类: 1.该类的所有实例对象不可达 2.改类的Class对象不可达 3.改类的ClassLoader不可达 因为Rasp是通过JavaAgent加载进JVM中的,因此会用自己的ClassLoader

    2.4K20

    一文简析RASP技术

    本篇文章为大家简析RASP的相关内容,让大家对RASP技术有更多的了解。 RASP的工作原理 RASP技术是一种基于服务器的技术,一旦应用程序运行开始时就会激活。...那么,RASP系统如何确定是否允许此调用需要根据情况而定。如有一些RASP产品允许基本的“数据清理”规则。这些规则检查字符串参数中的可执行代码。...为了实现更高级的RASP安全级别,在RASP解决方案中需要两个元素:动态上下文和元数据。 第一个元素,动态上下文,涉及到事件的调用逻辑。...库/JVM替换:通过替换标准应用程序库、JAR文件甚至Java虚拟机来安装某些RASP产品。这种方法基本上劫持了对底层平台的调用,无论是库调用还是操作系统。...这些功能使RASP可以和企业内现有的WAF进行互补。 RASP的好处 由于RASP在服务器上运行,因此只要应用程序开始运行,它就会启动。

    1.3K00

    与WAF的“相爱相杀”的RASP

    RASP真能取代WAF吗?就像WAF是防火墙的演进版本一样,大家喜欢把RASP称为下一代WAF。...另外,RASP由于和运行时环境耦合,在实际应用时,会更关注性能和兼容性影响:性能影响RASP工作在应用运行时环境,不可避免会占用应用的计算资源。...RASP的优势拦截混淆和加密的流量:如前文所述,RASP并不需要对流量进行解密,可以根据场景对恶意行为进行分析,有效拦截被精心设计的攻击流量。...根据RASP拦截信息生成WAF策略:例如RASP将异常的SQL执行上报后,安全人员可以通过分析得出那些敏感参数,并在WAF中进行标记,这既可以大大降低RASP给应用带来的性能消耗,同时也能让WAF警报更加准确...核心架构总结RASP和WAF最大的区别是:WAF的目的是发现可疑的流量,RASP则是发现具有威胁的行为。由于近期几次大的0day漏洞事件,RASP因其特点,在防护未知攻击方面,发挥了重要的作用。

    15300

    腾讯安全正式发布RASP+方案——泰石引擎

    针对以上问题,腾讯安全新解法来了,腾讯安全RASP+方案——泰石引擎,于9月21日正式发布,助力企业一键破局!0Day防护,快人一步,化被动响应为主动防御。泰石引擎是什么?...可以自动检测 Java 等应用服务进程、自动注入RASP 插件,通过插件管理、虚拟补丁部署,实现一键化漏洞主动防御,为企业带来无需重启、无感防护的升级体验。...RASP+方案,加在哪?相较于传统方案,腾讯安全RASP+方案泰石引擎具备以下优势:01: 0day原生免疫借助云上优势,自动化高效响应高危漏洞,做到一键防御,快人一步,有效避免给黑客可趁之机。...相比主流RASP方案需要手动安装、配置,RASP+方案可以一键启停漏洞防御能力,无需企业配置接入应用、修改应用启动参数或重启业务进程,将对企业业务的影响和投入成本降至最低。...使得腾讯RASP+方案在内存占用和加载速度上更具优势;同时由于引用第三方组件极少,有效减少污染业务Class命名空间、供应链安全等风险的引入。如何快速体验?

    1.7K31

    RASP技术进阶系列(一):与WAF的“相爱相杀”

    RASP真能取代WAF吗?就像WAF是防火墙的演进版本一样,大家喜欢把RASP称为下一代WAF。...另外,RASP由于和运行时环境耦合,在实际应用时,会更关注性能和兼容性影响:01性能影响RASP工作在应用运行时环境,不可避免会占用应用的计算资源。...RASP的优势(1)拦截混淆和加密的流量:如前文所述,RASP并不需要对流量进行解密,可以根据场景对恶意行为进行分析,有效拦截被精心设计的攻击流量。...(3)根据RASP拦截信息生成WAF策略:例如RASP将异常的SQL执行上报后,安全人员可以通过分析得出那些敏感参数,并在WAF中进行标记,这既可以大大降低RASP给应用带来的性能消耗,同时也能让WAF...总结RASP和WAF最大的区别是:WAF的目的是发现可疑的流量,RASP则是发现具有威胁的行为。由于近期几次大的0day漏洞事件,RASP因其特点,在防护未知攻击方面,发挥了重要的作用。

    73230

    JVMJVM初探

    JVM初探 JVM 执行文件 类装入子系统 执行引擎 垃圾回收器 堆中的内存回收 方法区中的内存回收 关于回收的那些事 JVM 执行文件 JVM执行的文件为class文件,这个执行文件是什么意思呢,就是虚拟机能够识别的文件...,类加载器加载链接初始化后将数据保存在JVM运行时数据区中的文件。...类装入子系统 JVM的类加载器为ClassLoader采用双亲委派模型机制进行加载类。...即解释器先运行一段时间才能够真正提升效率); 垃圾回收器,Java能够流行的一个原因还有这个特点:他不用管理内存,由JVM的垃圾回收器自动进行回收垃圾,达到管理内存的目的。...垃圾回收器 JVM运行时内存结构为:PC程序计数器、本地方法栈、虚拟机栈、堆、方法区。

    50010

    JVM 札记】浅谈 JVM

    JVM 是每个 Java 程序员必学的内容,毕竟 Java 运行在 JVM 之上。...在我们通过 java 执行一个 .class 文件时(比如 HelloWorld.class)文件时,就会启动一个 JVM,此时 JVM 是操作系统上的一个进程,当程序执行完成后,JVM 进行随之退出。...JVM 虽然是 Java 虚拟机,但是 JVM 是一个标准,通常我们说的 JVM 实际指的是 Oralce 的 HotSpot 实现。既然 JVM 是标准,那么就可以有多种实现。...又因为 JVM 是标准,我们可以理解为它对 .class 文件进行了标准化,那么无论是什么语言,只要编译后的能生成符合 JVM 标准的 .class 文件,就可以运行在 JVM 之上。...JVM 其实也是如此,比较常说的 JVM 的垃圾回收,不就是 JVM 对内存的管理方式么。

    33210
    领券