• 单机版本
    • 修改配置
    • 查看日志
    • 设置白名单
    • 检测插件
      • 开启拦截
      • 安装插件
      • 卸载插件
    • FAQ
      • 1. 我修改了检测插件,总要重启服务器才会生效

    单机版本

    OpenRASP 支持单机模式运行,只不过大部分操作都需要登录服务器进行。

    修改配置

    请参考 其他配置 文档,手动编辑配置文件。部分配置需要重启服务生效。

    查看日志

    请参考 日志说明 文档,了解我们的日志格式和存储路径。也可以参考 SIEM系统集成 文档了解如何将日志发往SIEM平台。

    设置白名单

    编辑配置文件,

    • PHP 版本一般为: /opt/rasp/conf/openrasp.yml
    • Java 版本路径为: $APP_HOME/rasp/conf/openrasp.yml 假设我们白名单的需求是这样的:

    • 针对所有URL,关闭 SSRF 检测点

    • 针对 www.baidu.com,关闭所有检测点
    • 针对 pma.baidu.com/phpmyadmin/,关闭 SQL 检测点 我们定位到 hook.white(如果没有可以手动添加)并增加如下内容:
    1. hook.white:
    2. "*":
    3. - "ssrf"
    4. "www.baidu.com":
    5. - "all"
    6. "pma.baidu.com/phpmyadmin/":
    7. - "sql"

    具体检测点的名字(如 ssrf/sql)可以从 alarm.log 报警日志里获取,也可以从 参数说明 里查看:

    1. {
    2. ...
    3. "attack_type": "readFile",
    4. ...
    5. }

    其中 all 表示关闭所有检测点。

    检测插件

    注意: 对于单机版本,Java 版本默认监控了插件目录,所以插件修改后会立即生效;PHP 版本默认没有开启 fswatch,所以需要重启 httpd/php-fpm 生效。远程管理版本不受影响,支持插件热加载。

    插件安装目录如下,其中 official.js 为官方插件:

    • Java 版本是 <app_home>/rasp/plugins/
    • PHP 版本是 <openrasp_rootdir>/rasp/plugins/

    开启拦截

    打开官方插件,首先定位到如下内容,将 all_log 改为 false。修改后,大部分检测算法都会变成拦截模式:

    1. var algorithmConfig = {
    2. // 快速设置
    3. meta: {
    4. // 若 all_log 开启,表示为观察模式,会将所有的 block 都改为 log
    5. all_log: true,
    6. // 若 is_dev 开启,表示为线下环境,将开启更多消耗性能的检测算法
    7. is_dev: false,
    8. // schema 版本
    9. schema_version: 1
    10. },
    11. ...

    对于其他算法,如XSS检测,还需要手动调整拦截策略,即修改 action 字段为 block:

    1. var algorithmConfig = {
    2. ...
    3. xss_userinput: {
    4. name: '算法2 - 拦截输出在响应里的反射 XSS',
    5. action: 'block',
    6. filter_regex: "<![\\-\\[A-Za-z]|<([A-Za-z]{1,12})[\\/ >]",
    7. min_length: 15,
    8. },
    9. ...
    10. }

    之后根据 检测插件 的说明决定是否重启应用服务器。

    安装插件

    打开插件目录,将文件复制过来即可。之后根据 检测插件 的说明决定是否重启应用服务器。

    状态检查

    你可以在插件末尾,打印一条日志,e.g

    1. plugin.log('初始化成功')

    当插件成功加载后就会执行,并在 plugin.log 里打印这条消息:

    1. 2017-10-18 17:30:34,781 INFO [main][com.baidu.openrasp.plugin.log] [offical] 初始化成功

    若插件有语法错误会打印日志,e.g

    1. 2017-10-18 17:40:01,402 INFO [main][com.baidu.openrasp.plugin.log] org.mozilla.javascript.EvaluatorException: unterminated string literal (plugin.js#335)

    卸载插件

    打开插件目录,删除指定的文件即可。之后根据 检测插件 的说明决定是否重启应用服务器。

    FAQ

    1. 我修改了检测插件,总要重启服务器才会生效

    如果你是在 VMWare 虚拟机里测试 OpenRASP,然后插件是放在 VMWare 共享 里的,这个时候 inotify 不会生效,也就无法实时更新插件

    这可能是因为 vmhgfs 跟 inotify 本身存在兼容性问题,解决方法就是将整个服务器软件都复制到虚拟机的磁盘上,比如 /root/tomcat/