Websphere 服务器安装

手动安装

1. 安装软件

复制安装包内的 rasp 目录到 WebSphere 安装目录,比如

  • D:\IBM
  • /opt/IBM/WebSphere/AppServer

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

chmod 777 -R /opt/IBM/WebSphere/AppServer/rasp

2. 配置 WebSphere 服务器

WAS 8.5 为例,在控制台左侧的导航栏里,选择 Servers -> Server Types -> WebSphere Application Server,进入应用列表界面:

console

选择你要开启 RASP 的应用(这里是 server1),点击进入管理页面。在新页面向下翻,找到 Server Infrastructure -> Process definition,并点击进入:

server1

之后在右侧,点击 Additional Properties -> Java Virtual Machine 进入JVM启动参数编辑界面

server1

最后找到 Generic JVM arguments,开始编辑

server1

如果是 Windows 系统,请填写:

-javaagent:${WAS_INSTALL_ROOT}\rasp\rasp.jar

如果是 Linux 系统,请填写:

-javaagent:${WAS_INSTALL_ROOT}/rasp/rasp.jar

保存后重启应用生效。

3. 开启远程管理

配置方法同 Tomcat 开启远程管理,不再赘述。

4. 检查安装是否成功

  • 方法1,检查日志中是否出现 OpenRASP Engine Initialized 字样,出现则说明安装成功。比如 /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1
  • 方法2,访问下服务器,检查响应头里是否存在 X-Protected-By: OpenRASP 字样,存在即表示安装成功。

当然,如果安装 OpenRASP 后导致 WebSphere 出错,你可以联系我们

常见问题

1. 远程管理无法开启,且日志中出现 java.security.AccessControlException 异常

在 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 服务器生效。