• Websphere 服务器安装
    • 手动安装
      • 1. 安装软件
      • 2. 配置 WebSphere 服务器
      • 3. 开启远程管理
      • 4. 检查安装是否成功
    • 常见问题
      • 1. 远程管理无法开启,且日志中出现 java.security.AccessControlException 异常

    Websphere 服务器安装

    手动安装

    1. 安装软件

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

    • D:\IBM
    • /opt/IBM/WebSphere/AppServer OpenRASP 需要在 rasp 目录下释放一些动态链接库,所以在 Linux 下还需要修改 rasp 目录的权限,e.g
    1. 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 系统,请填写:

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

    如果是 Linux 系统,请填写:

    1. -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 里看到如下内容:

    1. ************ Start Display Current Environment ************
    2. Log file started at: [18-11-13 20:10:08:993 CST]
    3. ************* End Display Current Environment *************
    4. Exception in thread "Thread-8" java.security.AccessControlException: Access denied (java.lang.RuntimePermission accessDeclaredMembers)
    5. at java.security.AccessController.checkPermission(AccessController.java:132)
    6. at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
    7. at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1689)
    8. at java.lang.Class.checkMemberAccess(Class.java:117)
    9. at java.lang.Class.getDeclaredConstructor(Class.java:465)
    10. at com.baidu.openrasp.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:82)
    11. at com.baidu.openrasp.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:66)
    12. at com.baidu.openrasp.gson.internal.bind.MapTypeAdapterFactory.create(MapTypeAdapterFactory.java:128)
    13. at com.baidu.openrasp.gson.Gson.getAdapter(Gson.java:349)
    14. at com.baidu.openrasp.gson.Gson.toJson(Gson.java:574)
    15. at com.baidu.openrasp.gson.Gson.toJson(Gson.java:561)
    16. at com.baidu.openrasp.gson.Gson.toJson(Gson.java:516)
    17. at com.baidu.openrasp.gson.Gson.toJson(Gson.java:496)
    18. at com.baidu.openrasp.cloud.Register$RegisterThread.run(Register.java:50)
    19. at java.lang.Thread.run(Thread.java:773)

    解决方案是增加相关权限,打开 ${WAS_INSTALL_ROOT}/java/jre/lib/security/java.policy,增加如下内容:

    1. grant codeBase "file:${was.install.root}/rasp/*" {
    2. permission java.security.AllPermission;
    3. };

    修改后,需要重启 WebSphere 服务器生效。