文章原发安全客,重发博客如下
最近两年CTF比赛中出现了Python沙箱绕过,关于Python沙盒的文章比较多,其实Java也有沙箱。而恰好笔者在做安全测试的时候遇到了Java沙箱,于是研究了一下Java沙箱的绕过。虽然Java不像PHP和python那么灵活,但是Java沙箱能玩的地方还是挺多的。
RASP(Runtime Application self-protection)是一种在运行时检测攻击并且进行自我保护的一种技术。关于RASP技术和RASP实践,这是我写的第二篇文章,上一篇文章在这里,是关于RASP技术在PHP中的实践,无论是从设计思路还是技术实现来说,PHP RASP和OpenRASP Java实现都比较相似。有兴趣的同学可以粗略看看,不必太关心技术细节,了解设计思路、工作原理即可,很多时候,对技术宏观的把握对理解技术细节和设计思路非常有用。
在这篇文章中,你将学会如何使用ASM框架对java class文件插桩。文章第一部分介绍Java字节码以及如何阅读class文件。第二部分介绍贯穿ASM框架的vistor模式。第三部分我们将用ASM构建一个简单的调用链跟踪插桩。
这篇文章2017.11.10发在 https://paper.seebug.org/449/ 。重发在博客如下
RASP(Runtime Application self-protection)是一种在运行时检测攻击并且进行自我保护的一种技术。早在2012年,Gartner就开始关注RASP,惠普、WhiteHat Security等多家国外安全公司陆续推出RASP产品,时至今日,惠普企业的软件部门出售给了Micro Focus,RASP产品Application Defender随之易主。而在国内,去年知道创宇KCon大会兵器谱展示了JavaRASP,前一段时间,百度开源了OpenRASP,去年年底,360的0kee团队开始测试Skywolf,虽然没有看到源码和文档,但它的设计思路或许跟RASP类似。而商业化的RASP产品有OneAPM的OneRASP和青藤云的自适应安全产品。在国内,这两家做商业化RASP产品做得比较早。
那么RASP到底是什么呢?它到底是怎样工作的呢?