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.6docker 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问题怎么办的情况。
OpenRASP Java应用自我保护使用相关推荐
- OpenRasp Java运行时修改字节码技术
Java运行时修改字节码技术 Java运行时动态修改字节码技术,常用的有javassist asm来实现.不过最近在分析openrasp-java这块时,程序使用的javassist来动态插桩关键类, ...
- 《Java面试题汇总》
<面试题汇总>之基础篇 一 Java基础 1 基础知识点 1.1 int和Integer的区别 int是整型,是java8中的基本数据类型之一: Integer是int对应的包装类,有一个 ...
- java 在已有的so基础上封装jni_webshell中的分离免杀实践java篇
声明 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任. 雷神众测拥有对此文章的修改和解释权.如欲转载或传播此文章,必须保 ...
- 云原生安全之RASP技术(应用运行时自我保护)
文章目录 一.背景 1. WAF和RASP 2. waf和rasp是非此即彼的吗? 二.RASP技术(应用运行时自我保护) 1. 应用安全测试SAST.IAST.DAST 和 RASP区别 SAST, ...
- JAVA 多用户商城系统b2b2c-Spring Cloud常见问题与总结(一)
在使用Spring Cloud的过程中,难免会遇到一些问题.所以对Spring Cloud的常用问题做一些总结.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台 ...
- Java 最常见的 10000+ 面试题及答案整理:持续更新
Java面试题以及答案整理[最新版]Java高级面试题大全(2021版),发现网上很多Java面试题都没有答案,所以花了很长时间搜集,本套Java面试题大全,汇总了大量经典的Java程序员面试题以及答 ...
- java 判断当前时间是否为节假日_最近公司招人,研发组商量了下,暂时定下这么多java面试题!...
一.List相关面试题 List是一个集合接口,分为AarrayList和LinkedList两个实现方式 ArrayList:底层实现就是数组,且ArrayList实现了RandomAccess,表 ...
- jsp中如何运行java_从上帝视角看Java如何运行
有头发且有趣的码农万里挑一~ 06 有料叔 | 一位有故事的程序猿 JVM内存结构 可以看出JVM从宏观上可以分为 '内部' 及 '外部' 两个部分(便于记忆理解): '内部'包含:线程共享(公有 ...
- JAVA Spring Cloud 注册中心 Eureka 相关配置
转载至 https://www.cnblogs.com/fangfuhai/p/7070325.html Eureka客户端配置 1.RegistryFetchIntervalSecon ...
- springboot中关闭eureka server中已注册服务列表自我保护配置
配置集群服务可以向eureka通知应用是否可以使用 a.在eureka server的application.properties中加入: # 设为false,关闭自我保护 eureka.server ...
最新文章
- python-pcl GPU、输入输出模块教程翻译
- ASP导出EXCEL乱码?试试这个
- 俊鸟的数据输入校验专题(三) WPF 的五种输入校验概述
- 【python】再说装饰器与闭包的写法
- 福禄克FI-3000光纤监测显微仪使用MPO检查摄像头?
- 字符串时间格式转化-java Unit
- java应用挂死故障排查
- 弧形面如何逆时针排序_环形导轨如何实现拐弯?
- 追梦软件路,愿不忘初心
- UVM入坑系列笔记(一)
- ubuntu git cntlm 代理 不能下载
- 源代码分析工具推荐Understand
- linux sokit使用方法,【sokit TCP/UDP 数据包收发测试(调试)工具怎么用】sokit TCP/UDP 数据包收发测试(调试)工具好不好_使用技巧-ZOL软件百科...
- InfluxDB在Win10安装与简单入门
- Beyong Compare4过期解决办法
- 模式识别基本概念小结(学习笔记)
- 网络安全:为大家介绍5种常见的加密算法
- 解决Linux vim 打开文件乱码问题
- FTP传输大文件丢包损坏严重,怎么解决?
- Linux下vim的复制、粘贴操作
热门文章
- 不使用setPositiveButton 如何让alertdialog消失
- Ubuntu14.04安装GNOME3桌面
- [STM32]WIN7 64位系统 CDC类 虚拟串口驱动无法安装的解决办法
- NOD32升级账号更新器 [ C# | NOD32 | Eset ]
- autoit3 ie.au3 函数之——_IEErrorNotify
- python实现用户账号密码登录且密码星号显示
- glassfish插件_Maven嵌入式Glassfish插件-未启动
- 未转变者入侵服务器后台,未转变者(unturned)联机服务器创建方法
- 高冷一字id_一字网名男生高冷霸气
- 01.数模竞赛论文的写作