IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> OpenRASP Java应用自我保护使用 -> 正文阅读

[系统运维]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问题怎么办的情况。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:35:42  更:2022-03-21 21:37:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:45:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码