OpenRASP Documents (Old)
  • 简介
  • 安装部署
    • 兼容性说明
    • 安装管理后台
    • 快速接入
      • PHP 服务器
      • Tomcat 服务器
      • JBoss 服务器
      • Wildfly 服务器
      • Resin 服务器
      • Jetty 服务器
      • Spring Boot 框架
      • WebLogic 服务器
      • WebSphere 服务器
      • 宝兰德BES服务器
      • 东方通TongWeb服务器
      • 中创InforSuiteAS服务器
      • 普元PAS服务器
    • 安装测试用例
    • 安装灰盒扫描工具
      • IAST 高级配置选项
    • SIEM 系统集成
      • Splunk
      • Logstash
    • 大规模部署
    • 卸载软件
  • 服务配置
    • 日志说明
    • 管理后台
    • 单机版本
    • 其他配置
  • 功能说明
    • 攻击检测能力说明
    • CVE 漏洞覆盖说明
    • 安全基线检查
    • 应用加固支持
    • 应用异常监控
    • 类库信息查询
    • HTML 响应修改
  • 插件开发
    • 开发插件
    • 接口说明
      • RASP 类接口
      • Context 类接口
    • 参数说明
    • 单元测试
    • 在线调试
    • 官方插件定制
  • 二次开发
    • 架构说明
      • Java 版本
      • PHP 版本
      • 管理后台
      • IAST 扫描器
      • Hook 函数列表
    • 从源代码编译
      • Java 版本
      • PHP 版本
      • 管理后台
    • 云控后台接口
    • 代码调试
    • 添加新的Hook点
    • 添加新的插件API
    • 提交你的代码
  • 性能测试
  • 版本变更
  • 关于我们
Powered by GitBook
On this page
  • 自动化安装
  • 手动安装 - Linux
  • 手动安装 - Windows
  • 已知问题
Export as PDF
  1. 安装部署
  2. 快速接入

JBoss 服务器

PreviousTomcat 服务器NextWildfly 服务器

Last updated 11 days ago

自动化安装

解压缩后,首先进入到解压后的目录中,e.g rasp-20170721

如果你要开启远程管理,请先参考 文档,找到 app_id/app_secret/backend_url 三个关键参数,然后执行如下命令,

java -jar RaspInstall.jar -install <jboss_root> -backendurl http://XXX -appsecret XXX -appid XXX

如果你只是运行单机版,只需要指定 -install 参数,

java -jar RaspInstall.jar -install <jboss_root>

安装成功后,需要重启 JBoss 服务器生效。

不重启安装

以上方式安装成功之后需要重启服务器,如果在服务器启动的情况下,不重启安装 OpenRASP,需要在以上命令后面增加 -pid 参数指定运行的服务器进程 id,JDK6 - JDK8 样例命令如下,

# <server_pid> 为 jboss 进程 id
# $JAVA_HOME 为 jdk 根目录环境变量,如果未指定该环境变量,替换为 jdk 的完整根目录
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar RaspInstall.jar -install <jboss_root> -pid <server_pid>

** 由于无法在运行时增加 JbossEAP 对 OpenRASP 的运行时依赖,所以无法支持 JbossEAP 的不重启安装 **

** jdk9 ~ jdk11 不支持不重启安装 **

手动安装 - Linux

1. 安装软件

进入到 jboss 安装目录(绝对路径包含空格将导致启动失败),e.g /opt/jboss

复制安装包内的 rasp 目录到当前目录,

cp -R ~/Downloads/rasp-20170721/rasp .

OpenRASP 需要在 rasp 目录下释放一些动态链接库,所以还需要修改 rasp 目录的权限,e.g

chmod 777 -R rasp

2. 配置 JBoss

如果是 JBoss 4-6 (非 EAP 版本),

打开bin/run.sh, 找到任意以 JAVA_OPTS= 为起始的行,e.g

# Setup JBoss specific properties
JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"

在下面增加 JAVA_OPTS="-javaagent:${JBOSS_HOME}/rasp/rasp.jar ${JAVA_OPTS}",最终效果如下:

# Setup JBoss specific properties
JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
JAVA_OPTS="-javaagent:${JBOSS_HOME}/rasp/rasp.jar ${JAVA_OPTS}"

如果是 JBoss EAP,

standalone模式

打开bin/standalone.sh,找到# Display our environment处,在下面添加:

JAVA_OPTS="${JAVA_OPTS} -javaagent:${JBOSS_HOME}/rasp/rasp.jar"

domain模式

server-group方式配置rasp

如果按照server-group配置rasp,那么此group下面所有的服务器都会安装rasp,打开domain/configuration/domain.xml文件,找到<server-groups>标签,在需要安装rasp的server-group中找到<jvm>标签添加如下配置:

<jvm-options>
   <option value="-javaagent:<jboss_root>/rasp/rasp.jar"/>
</jvm-options>

server方式配置rasp

如果只对某个server-group的特定的server安装rasp,打开domain/configuration/host.xml文件,找到<servers>标签,在需要安装rasp的server中添加如下配置:

<jvm name="default">
    <jvm-options>
   		<option value="-javaagent:<jboss_root>/rasp/rasp.jar"/>
	</jvm-options>
</jvm>

3. 开启远程管理

4. 验证安装是否成功

重启 JBoss 服务器,观察启动日志中是否出现 OpenRASP Engine Initialized字段,出现则说明安装成功

手动安装 - Windows

1. 安装软件

进入到 jboss 安装目录,e.g D:\\jboss

复制安装包内的 rasp 目录到当前目录

2. 配置 JBoss

如果使用Jboss 4~6 (非 EAP 版本),则打开 bin\run.bat;

打开脚本后,找到任意以 set JAVA_OPTS 为起始的行,如:

set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%

在下面增加 set JAVA_OPTS=-javaagent:%JBOSS_HOME%\rasp\rasp.jar %JAVA_OPTS%:

set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%
set JAVA_OPTS=-javaagent:%JBOSS_HOME%\rasp\rasp.jar %JAVA_OPTS%

如果使用Jboss EAP,

standalone模式

打开 bin\standalone.bat 找到第一次出现rem Setup JBoss specific properties处,在下面添加:

set "JAVA_OPTS=%JAVA_OPTS% -javaagent:%JBOSS_HOME%\rasp\rasp.jar"

domain模式

方法同 Linux 版本

3. 开启远程管理

4. 验证安装是否成功

重启 JBoss 服务器,观察启动日志(默认输出到终端)中是否出现 OpenRASP Engine Initialized字段,出现则说明安装成功;或者访问一下服务器,检查是否存在 X-Protected-By: OpenRASP 响应头,存在即表示安装成功。

已知问题

1. java.io.ObjectInputStream 错误

这个并不是 OpenRASP 的问题,请尝试更新JDK到最新版本

参考资料

2. JDK 9 以上版本兼容性问题

3. org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence 异常

在JBoss EAP 6.1.0上安装OpenRASP后,JBoss可能会无法启动并打印如下错误:

14:27:19,691 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 11) JBAS014612: Operation ("add") failed - address: ([
    ("subsystem" => "logging"),
    ("console-handler" => "CONSOLE")
]): java.lang.ClassCastException: org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence
        at org.jboss.as.logging.logmanager.ConfigurationPersistence.getOrCreateConfigurationPersistence(ConfigurationPersistence.java:93)
        at org.jboss.as.logging.logmanager.ConfigurationPersistence.getOrCreateConfigurationPersistence(ConfigurationPersistence.java:81)
        at org.jboss.as.logging.LoggingOperations$LoggingOperationStepHandler.execute(LoggingOperations.java:154)
        at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:440) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:322) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:229) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:224) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:334) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
        at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]
  • 升级到 JBoss EAP 6.1.1

  • 手动修正 JBOSS_MODULES_SYSTEM_PKGS 配置,暴露相关的Jar给javaagent

配置方法同 ,不再赘述。

配置方法同 ,不再赘述。

请参考 手动修改启动参数。我们会尽快修改 RaspInstall 程序,并自动添加这个配置。

,有两种解决方法:

管理后台 - 添加主机
Tomcat 开启远程管理
Tomcat 开启远程管理
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files
JDK9 以上安装问题
根据Redhat的描述