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
  • 修改配置
  • 查看日志
  • 设置白名单
  • 检测插件
  • 应用加固
  • FAQ
Export as PDF
  1. 服务配置

单机版本

Previous管理后台Next其他配置

Last updated 11 days ago

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

修改配置

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

查看日志

请参考 文档,了解我们的日志格式和存储路径。也可以参考 文档了解如何将日志发往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(如果没有可以手动添加)并增加如下内容:

hook.white:
    "*":
        - "ssrf"
    "www.baidu.com":
        - "all"
    "pma.baidu.com/phpmyadmin/":
        - "sql"
{
    ...
    "attack_type": "readFile",
    ...
}

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

检测插件

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

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

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

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

开启拦截

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

var algorithmConfig = {
    // 快速设置
    meta: {
        // 若 all_log 开启,表示为观察模式,会将所有的 block 都改为 log
        all_log: true,

        // 若 is_dev 开启,表示为线下环境,将开启更多消耗性能的检测算法
        is_dev:  false,

        // schema 版本
        schema_version: 1
    },

    ...

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

var algorithmConfig = {
    ...

    xss_userinput: {
        name:   '算法2 - 拦截输出在响应里的反射 XSS',
        action: 'block',

        filter_regex: "<![\\-\\[A-Za-z]|<([A-Za-z]{1,12})[\\/ >]",
        min_length:   15,
    },

    ...
}

开启行为日志

打开官方插件,首先定位到如下内容,将log_event改为true

var algorithmConfig = {
    // 快速设置
    meta: {
        // 若 all_log 开启,表示为观察模式,会将所有的 block 都改为 log
        all_log: true,

        // 若 is_dev 开启,表示为线下环境,将开启更多消耗性能的检测算法
        is_dev:  false,

        // 若 log_event 开启,将打印应用行为信息到 plugin.log
        log_event: false,

        // schema 版本
        schema_version: 1
    },

    ...

开启后,JS插件会把应用的所有行为和堆栈都打印到<rasp_home>/logs/plugin/plugin.log,比如

2022-03-07 15:05:56,658 INFO  [http-nio-8080-exec-1][com.baidu.openrasp.plugin.js.log] http://127.0.0.1:8080/ [official] JNDI lookup: ldap://127.0.0.1:1389/a [ 'com.sun.jndi.toolkit.url.GenericURLContext.lookup',
  'com.sun.jndi.url.ldap.ldapURLContext.lookup',
  'javax.naming.InitialContext.lookup',
  'org.apache.logging.log4j.core.net.JndiManager.lookup',
  'org.apache.logging.log4j.core.lookup.JndiLookup.lookup',
  'org.apache.logging.log4j.core.lookup.Interpolator.lookup',    
  ...]

安装插件

状态检查

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

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

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

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

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

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

卸载插件

应用加固

在配置文件里,找到 inject.custom_headers 内容,并修改配置即可。

inject.custom_headers:
  X-Protected-By: OpenRASP
#   X-Content-Type-Options: nosniff
#   X-Frame-Options: deny
#   X-XSS-Protection: 1; mode=block
#   X-Download-Options: noopen

若要去掉所有响应头信息,可以设置为空数组:

inject.custom_headers:
#   X-Protected-By: OpenRASP
#   X-Content-Type-Options: nosniff
#   X-Frame-Options: deny
#   X-XSS-Protection: 1; mode=block
#   X-Download-Options: noopen

FAQ

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

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

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

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

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

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

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

其他配置
日志说明
SIEM系统集成
参数说明
检测插件
检测插件
检测插件