RASP客户端部署指南
概述
本文主要描述Jetty、Spring Boot、WebSphere三种Web服务场景下,RASP客户端安装部署的详细步骤。
Jetty 部署指南
一、安装步骤
-
配置 Jetty
1.1 rasp将自动释放到配置『Web服务器路径』下:
1.2 这里假设 rasp 目录释放到了 /opt/jetty/rasp/ 。修改 java 启动参数,增加 -javaagent 参数(注意将 -jar 放在命令最末尾):
java -javaagent:/opt/jetty/rasp/rasp.jar -jar start.jar
注意:对于Windows服务器,请修正 -javaagent 参数,比如:-javaagent:D:\jetty\rasp\rasp.jar
-
检查Jetty是否安装成功
2.1 重启 Jetty 服务器,然后检查日志文件,如果出现 OpenRASP Engine Initialized 字样,出现则说明安装成功;或者访问一下服务器,检查是否存在 X-Protected-By: OpenRASP 响应头,存在即表示安装成功。
二、卸载步骤
-
假设Jetty根目录为${JETTY_HOME}
1.1 点击界面卸载。
1.2 修改服务器启动参数,删除 javaagent、Dlog4j.rasp.configuration 参数。
1.3 重启 Jetty 服务器。
三、FAQ
-
Jetty / JDK 兼容性问题
1.1 Jetty 在 linux/windows 下存在很多问题,经常会看到以下几种错误:
PWC6345: There is an error in invoking javac
PWC6199: The type java.io.ObjectStream cannot be resolved
以上这些问题大多是JDK、Jetty自身的问题,可通过更换其他小版本来解决。即使没有安装OpenRASP,Jetty运行也是不正常的。在安装 OpenRASP 前,请先保证Jetty是正常运行的。
当然,如果安装OpenRASP后导致jetty出错,您可以联系我们。
Spring Boot 部署指南
一、安装步骤
-
点击界面【安装组件】
1.1 rasp将自动释放到配置『Web服务器路径』下:
-
配置启动参数
2.1 假设 rasp 目录释放到了 /opt/spring-boot/rasp/ 。修改 SpringBoot 启动参数,增加 -javaagent 绝对路径参数(注意将 -jar 放到命令最末尾),e.g:
如果JDK版本为6-8,那么启动参数如下配置
java -javaagent:/opt/spring-boot/rasp/rasp.jar -jar XXX.jar
如果JDK版本为11,那么启动参数如下配置
java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -javaagent:/opt/spring-boot/rasp/rasp.jar -jar XXX.jar
-
检查安装是否成功
3.1 访问服务器,检查是否存在 X-Protected-By: OpenRASP 响应头即可。
二、卸载步骤
-
假设Spring Boot根目录为${SPRING_BOOT_HOME}
1.1 删除插件安装目录 ${SPRING_BOOT_HOME}/rasp 。
1.2 修改服务器启动参数,删除 javaagent、Dlog4j.rasp.configuration 参数。
1.3 重启 Spring Boot 服务器。
WebSphere 服务器部署指南
一、安装步骤
-
点击界面【安装组件】
1.1 rasp将自动释放到配置『Web服务器路径』下:
-
配置WebSphere服务器
2.1以 WAS 8.5 为例,在控制台左侧的导航栏里,选择 Servers -> Server Types -> WebSphere Application Server,进入应用列表界面:
2.2 选择你要开启 RASP 的应用(这里是 server1),点击进入管理页面。在新页面向下翻,找到 Server Infrastructure -> Process definition,并点击进入。
2.3之后在右侧,点击 . 进入JVM启动参数编辑界面:
2.4 最后找到 Generic JVM arguments,开始编辑:
如果是 Windows 系统,请填写:
-javaagent:${WAS_INSTALL_ROOT}\rasp\rasp.jar
如果是 Linux 系统,请填写:
-javaagent:${WAS_INSTALL_ROOT}/rasp/rasp.jar
2.5 保存后重启应用生效。
-
检查安装是否成功
方法1,检查日志中是否出现 OpenRASP Engine Initialized 字样,出现则说明安装成功。比如 /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1
方法2,访问下服务器,检查响应头里是否存在 X-Protected-By: OpenRASP 字样,存在即表示安装成功。
当然,如果安装 OpenRASP 后导致 WebSphere 出错,您可以联系我们。
二、卸载步骤
-
假设Websphere的根目录为 ${WEBSPHERE_HOME}。首先删除 OpenRASP 相关文件 ${WEBSPHERE_HOME}/rasp,然后参考下面的步骤删除 JVM 启动参数。
1.1 打开 WebSphere 控制台:
1.2 在左边的导航栏选择,服务器 > 服务器类型 > WebSphere Application Server
1.3 点击 server1 服务器进入服务器的管理界面(或者你的服务器):
1.4 找到,服务器基础架构 >java和进程管理 > 进程定义,点击进入:
1.5 点击右侧 Java虚拟机 选项:
1.6 找到 通用JVM参数,将其删除,保存修改:
1.7 最后重启 WebSphere 服务器生效。
三、FAQ
-
远程管理无法开启,且日志中出现 java.security.AccessControlException 异常
1.1 在 WebSphpere Windows 某些小版本下,比如 8.5.5.0,可能会出现 java 安全异常错误。此时会在 ${WAS_INSTALL_ROOT}/profiles/AppSrv01/logs/native_stderr.log 里看到如下内容:
************ Start Display Current Environment ************
Log file started at: [18-11-13 20:10:08:993 CST]
************* End Display Current Environment *************
Exception in thread "Thread-8" java.security.AccessControlException: Access denied (java.lang.RuntimePermission accessDeclaredMembers)
at java.security.AccessController.checkPermission(AccessController.java:132)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1689)
at java.lang.Class.checkMemberAccess(Class.java:117)
at java.lang.Class.getDeclaredConstructor(Class.java:465)
at com.baidu.openrasp.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:82)
at com.baidu.openrasp.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:66)
at com.baidu.openrasp.gson.internal.bind.MapTypeAdapterFactory.create(MapTypeAdapterFactory.java:128)
at com.baidu.openrasp.gson.Gson.getAdapter(Gson.java:349)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:574)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:561)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:516)
at com.baidu.openrasp.gson.Gson.toJson(Gson.java:496)
at com.baidu.openrasp.cloud.Register$RegisterThread.run(Register.java:50)
at java.lang.Thread.run(Thread.java:773)
解决方案是增加相关权限,打开 ${WAS_INSTALL_ROOT}/java/jre/lib/security/java.policy,增加如下内容:
grant codeBase "file:${was.install.root}/rasp/*" {
permission java.security.AllPermission;
};
修改后,需要重启 WebSphere 服务器生效。