RASP部署笔记

一.什么是RASP

RASP全称是Runtime Application Self Protect,其基本思路是将防护代码注入到应用运行的关键函数中,实现应用运行态的入侵检测与防护。

例如,为了检测任意文件上传攻击,我们可以将防护代码注入到文件写入基础函数中。在java中,这个函数是FileOutputStream的构造函数。我们通过在FileOutputStream构造函数中注入检测代码,即可以拿到被写入的文件路径。如果被写入的文件路径是由外部请求参数传递而来,那么就可以判断存在任意文件上传攻击。 对于远程命令执行攻击也是如此,我们可以向jre提供的命令执行基础函数中注入防护代码,在命令执行时检测命令行是否由请求参数传递而来,从而检测远程命令执行攻击。

由于RASP内嵌在应用程序中,通过攻击结果反推攻击过程,因此,其攻击检测具备较高的精准度。
二.使用Java Insrumentation注入安全防护代码

Java提供了Java Instrumentation机制,允许开发者在JVM进行类加载时,对java字节码进行修改。

java程序部署RASP举例:
将rasp20231031拷贝到测试服务器的/home/http/projectTest目录下,然后修改tomcat的setenv.sh
配置修改:
export CATALINA_OPTS=" -javaagent:/home/http/projectTest/rasp20231031/agent.jar -Dxmrasp.ip=36.223.173.16:8088 -Dxmrasp.token=7ke9ass8es -Dxmrasp.password=pass123456 -Dxmrasp.nodename=testProj_3 -Dxmrasp.app.name=TestProj_ToB -Dxmrasp.log.level=DEBUG -Dxmrasp.log.mode=file"

重启tomcat
posted @ 2024-02-29 09:09  阿星777  阅读(39)  评论(0编辑  收藏  举报