软件安装

最新版本下载 - 安装方法请参考子章节

源代码下载 - 编译方法请参考 "二次开发" 章节

其他常用链接

Beta 版本信息

常见问题

  1. 常见自动安装失败原因
  2. OpenRASP 无法拦截攻击
  3. jnotify 无法释放
  4. Could not find or load main class com.baidu.rasp.App 错误
  5. APM 兼容性说明

常见问题

1. 常见自动安装失败原因

Java 版本

错误码 说明
10001 未找到插入 JAVA_OPTIONS 的标志
10002 未找到服务器根目录,e.g 使用了不存在的目录
10003 未找到启动脚本,e.g bin/catalina.sh
10004 无法识别应用服务器类型
10005 命令行参数错误
10006 不重启安装,attach 进程失败

关于 java 不重启安装,卸载:由于不支持不重启升级,所以在不重启安装然后不重启卸载之后,想要再次安装需要重启服务器安装。

PHP 版本

错误码 分类说明
20001 fswatch 类库初始化失败,比如 rasp 安装目录没有写权限
20002 日志记录发生异常,比如日志文件没有写权限
20003 申请共享内存失败
20004 php.ini 配置不正确,比如缺少 openrasp.root_dir 配置
20005 JavaScript 插件加载错误

2. OpenRASP 无法拦截攻击

Java 服务器

  1. 首先,使用浏览器访问网站,检查服务器是否启动成功
    • 若服务器没有启动,可检查启动日志,寻找堆栈信息。对于 tomcat 通常是 catalina.out
  2. 根据子章节的文档,检查 OpenRASP 是否安装成功
    • 方法一: 访问网站,检查响应头里是否有 X-Protected-By: OpenRASP 字样?
    • 方法二: 检查启动日志里是否有 OpenRASP Engine Initialized 字样
  3. 检测测试用例是否支持
    • 对于官方测试用例,若无法拦截,则说明存在绕过或者bug
    • 对于其他测试用例,请联系QQ群群主,我们会检查

PHP 服务器

  1. 首先,使用浏览器访问网站,检查服务器是否启动成功
    • 若服务器没有启动,可检查 PHP/Apache/Nginx 错误日志
  2. 根据子章节的文章,检查 OpenRASP 扩展是否安装成功
    • 方法一: 访问网站,检查响应头里是否有 X-Protected-By: OpenRASP 字样?
    • 方法二: 创建内容为 <?php phpinfo(); ?> 的PHP文件并访问,检查页面中是否包含 openrasp 扩展信息?
  3. 检测测试用例是否支持
    • 对于官方测试用例,若无法拦截,则说明存在绕过或者bug
    • 对于其他测试用例,请联系QQ群群主,我们会检查

3. jnotify 无法释放

有的公司会定制应用启动脚本,比如 catalina.sh,当以root启动tomcat,他会自动切换到低权限用户,再继续启动

通常,你会看到如下的堆栈错误

Unable to extract jnotify library (rasp/libjnotify_64bit.so):
java.io.FileNotFoundException: /data/w/tomcat/rasp/libjnotify_64bit.so (Permission denied)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:101)

这说明 OpenRASP 在释放 jnotify 动态链接库时出错(用来监控插件目录变更),错误原因是 Permission denied

所以,你可能需要调整下RASP目录权限,e.g chmod 777 -R rasp,然后再次启动 tomcat

4. Could not find or load main class com.baidu.rasp.App 错误

QQ群用户反馈,执行 RaspInstall 时报错,

$ java -jar RaspInstall.jar -install /usr/local/tomcat/
Error: Could not find or load main class com.baidu.rasp.App

经过排查,这是因为当前目录本身没有读取权限导致的,执行 chmod 777 $PWD 后解决。

5. APM 兼容性说明

如果你同时使用 OpenRASPAPM 产品,比如 pinpoint,那你需要增大 -XX:MaxPermSize 参数。否则运行一段时间后可能会出现 java.lang.OutOfMemoryError: PermGen space 错误,产生大量GC,最终导致服务器假死

如果原先没有配置过此参数,我们建议你设置为 1024m;如果配置过,我们建议在原先基础上增加至少 512m