OpenRASP Java应用自我保护使用

前言

笔者上一章写了编译openrasp-v8的JNI编译过程,实际上是百度开源的OpenRASP的引擎依赖包,简单体验了,基础功能非常不错,只是很多管理功能需要2次开发,体验了以下,分享过程。

1. RASP与WAF

RASP(Runtime application self-protection)运行时应用自我保护,将自身注入到应用程序中,与应用程序松耦合,进行实时监测、阻断攻击。对于JAVA而言,应用本身通过javaagent技术注入agent来实现,原有代码无需修改。

实际上WAF的部分功能与RASP重叠,WAF是专门防御安全方面的,只是侧重点不一样,而且加密或者序列化流只能RASP防御。区别网上都很多了,可以直接网上查阅。本质上RASP就是给应用武装,让应用自身去跟安全风险作战。

2. 安装体验

查阅百度OpenRASP文档:安装部署 - OpenRASP 官方文档 - 开源自适应安全产品 (baidu.com)

目前client仅支持Java、PHP,目前主流开发方式是Java,所以体验Java为例。 

2.1 准备

实际上准备的是server端的数据库,还有client端的数据库示例,所以需要MongoDB、ElasticSearch、MySQL

安装Server端,各个版本要求很明确了,MongoDB就选最新版本,elasticsearch就选5.6

 MySQL是客户端示例需要的,笔者就选5.6,方便测试漏洞。

自己开发直接docker安装,方便:

docker run -itd --name mongod -p 27017:27017 mongo 
docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 elasticsearch:5.6

docker run --name mysql_5.6 -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306  mysql:5.6

运行后

2.2 server安装

server端可以下载直接用,如果需要定制就要2次开发,源码编译,go开发的后端

​​​​​​Index of /app/openrasp/release/latest/ (baidu.com)

笔者macOS下:wget https://packages.baidu.com/app/openrasp/release/latest/rasp-cloud-mac.tar.gz

下载解压后:tar -zxvf rasp-cloud-mac.tar.gz

 然后执行

./rasp-cloud -d

可以看到版本号1.3.7,client的agent也建议对应。 

 日志路径,后管编写系统go,CN地址go很活跃,基本上是世界上最活跃的区域了,一般用来编写后管系统,类似后管前端使用VUE编写差不多。此时可以访问:

http://localhost:8086

其中用户名固定为 openrasp,初始密码为 admin@123。 

仅仅是安装好了server端,实际上是后管平台,不会有任何用途,需要agent注入才能生效

2.3 agent注入 

以Tomcat为例,实际上Springboot原理类似,都是执行注入javaagent参数:javaagent技术原理_fenglllle的博客-CSDN博客_javaagent原理

wget https://packages.baidu.com/app/openrasp/release/latest/rasp-java.tar.gz

 用下面的指令初始化,集成在CI CD平台,实际上是对jvm参数加上--javaagent:

java -jar RaspInstall.jar -heartbeat 90 -appid 62d8c6e81ae21a6f67acc1ac0515011e36b69c75 -appsecret NAa3VwiqVe2u3bCulQex0AriesMn3GgONe931rPUmDO -backendurl http://localhost:8086/ -install /path/to/tomcat

注意:appid和appsecret是server端每次启动生成的,不能使用固定的

这时就获取到一个已经注入javaagent的Tomcat,而示例需要去百度去获取

建议获取vulns.war,示例非常完整,放在tomcat的webapps下,解压

2.4 参数修改

实际上启动Tomcat就可以用了,但是数据库漏洞会报错,因为没有连接数据库。需要修改参数,war包解压后先删除war,然后cd vulns

这2个配置,分别修改为docker的MySQL连接,直接查看OpenRASP可以看到,修改了catalina.sh脚本,注入agent参数

./startup.sh即可启动 ,Tomcat尽量使用老版本,不超过Tomcat8,示例是jsp写的,新Tomcat可能不兼容。

2.5 体验   

访问:OpenRASP 官方测试用例集合

其中SQL注入这些需要提前创建表,安装示例写入即可 

 随意执行几个漏洞,拦截方式是可以修改的,但是没有发现规则修改的地方,管理功能基本上都有,但是不是很贴近实际生产。

插件可下载,但是不能单独每条编辑,NodeJS语法: 官方开发指南:单机版本 - OpenRASP 官方文档 - 开源自适应安全产品 (baidu.com)

  

总结

实际上百度开源的OpenRASP拿来就可以直接用,如果需要定制规则,需要后端定制,还有很多管理功能实际上可以更友好,但是核心功能非常完整,自己需要处理agent带来的的性能影响,出现agent问题怎么办的情况。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值