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
  • 通用配置
  • 熔断配置
  • PHP 版本独立配置
  • Java 版本独立配置
  • V8 通用
Export as PDF
  1. 服务配置

其他配置

通用配置

以下配置支持云端下发,也支持单机修改。若开启远程管理,单机配置不会加载;如果没有开启,Java 版本单机配置修改后立即生效,PHP 大部分情况下会立即生效。

目前配置路径如下:

  • PHP 版本: <openrasp_rootdir>/conf/openrasp.yml

  • Java 版本: <app_home>/rasp/conf/openrasp.yml

若配置修改后没有生效,请检查日志里是否有 yaml语法错误异常

  • PHP日志: rasp.log 以及error_log ini配置的文件名

  • Java日志: rasp.log

插件相关

参数值
说明
默认值

plugin.timeout.millis

对于单个检测算法, JS 插件超时时间 (毫秒)

100

plugin.maxstack

插件获取堆栈的最大深度

100

plugin.filter

针对文件访问hook点,是否开启过滤机制。 若开启,当目标文件不存在,将不进入检测插件。 支持 directory, readFile, rename, include 四个 hook 点

true

body.maxbytes

最多读取 POST body 的前多少字节

4096

lru.maxsize

插件检测结果为ignore时,我们会缓存检测结果。 再次遇到相同的行为参数,将不会进行检测。 LRU只对数据库、文件操作生效,所有检测点共享一个LRU。

1024

ognl.expression.minlength

为了减少OGNL检测的性能损耗, 当OGNL语句达到这个长度才调用插件

30

文件日志相关

参数值
说明
默认值

log.maxstack

报警日志记录的最大堆栈深度(v1.2开始废弃)

50

log.maxburst

每个进程/线程每分钟最大日志条数

100

log.maxbackup

日志最大备份天数

30

syslog 日志相关

参数值
说明
默认值

syslog.enable

是否开启 syslog

false

syslog.url

服务器地址,如 tcp://ip:port

(空)

syslog.tag

tag 值

OpenRASP

syslog.facility

facility 值

1

syslog.connection_timeout

连接超时时间 (毫秒)

50

syslog.read_timeout

读超时时间 (毫秒)

10

syslog.reconnect_interval

重连时间间隔 (秒)

300

拦截相关

参数值
说明
默认值

block.status_code

拦截攻击后,将状态码设置为这个值

302

block.redirect_url

拦截攻击后,跳转到这个URL,并根据模板设置 request_id 参数

https://rasp.baidu.com/blocked/?request_id=%request_id%

block.content_json

拦截攻击后,若期望响应类型为JSON,则根据此模板显示内容

{"error":true, "reason": "Request blocked by OpenRASP", "request_id": "%request_id%"}

block.content_xml

拦截攻击后,若期望响应类型为XML,则根据此模板显示内容

<?xml version="1.0"?> <doc> <error>true</error> <reason>Request blocked by OpenRASP</reason><request_id>%request_id%</request_id> </doc>

block.content.html

拦截攻击后,若期望响应类型为其他情况,则根据此模板显示内容

</script><script> location.href= "https://rasp.baidu.com/blocked2/?request_id=%request_id%" </script>

熔断配置

注意: 目前仅 Java 服务器支持熔断,PHP 暂不支持

参数值
说明
默认值

cpu.usage.enable

是否开启熔断支持

false

cpu.usage.interval

每隔多少秒采集一次CPU占用率 配置范围是 1-1800

5

cpu.usage.percent

当单核CPU占用率超过这个数值,关闭所有防护。 配置范围是 30-90

90

其他配置

参数值
说明
默认值

dependency_check.enable

是否采集依赖库

true

request.param_encoding

仅Java支持,设置 Form 参数的编码格式。设置后,可在用户解析参数之前按照该编码提前获取用户输入,如 UTF-8

(空)

clientip.header

从指定的 HTTP header 里获取客户端真实IP,并记录到报警日志的 client_ip 字段里。注意: 本配置区分大小写。

ClientIP

inject.urlprefix

对于以下URL,修改响应并注入HTML

(空)

debug.level

debug 等级,0为关闭 debug 模式

0

decompile.enable

是否开启反汇编功能。 开启后可获取源代码,但是会非常消耗性能

0

offline_hosts.cleanup.interval

清理离线时间间隔超过几天以上的主机。1以上的值表示开启

0

PHP 版本独立配置

以下配置无法云端下发,需要放在 php.ini 里,修改后重启PHP服务器生效。

参数值
说明
默认值

openrasp.root_dir

openrasp 根目录,存放插件、日志

(空)

openrasp.locale

配置的语言类型

(空)

openrasp.heartbeat_interval

心跳间隔,单位秒

180

openrasp.backend_url

云控后台 URL 地址

(空)

openrasp.app_id

云控通信使用的 app_id 值

(空)

openrasp.rasp_id

自定义的 RASP ID,如果空就计算一个

(空)

openrasp.app_secret

云控通信使用的 app_secret 值

(空)

openrasp.remote_management_enable

是否开启远程管理功能

false

Java 版本独立配置

单机版文件监控相关设置,监控范围是配置文件以及插件目录 (要求客户端版本 >= 1.3.6)

参数值
说明
默认值

file_monitor.mode

单机版文件目录监控机制,重启生效。 jnotify: 使用 jnotify 监控目录变更 scan: 定期扫描目录变更 disable: 关闭插件更新机制

scan

file_monitor.interval

在定期扫描模式下,多久扫描一次目录(秒)

3

以下配置虽然还是在 openrasp.yml 里,但是无法云端下发,且修改后需要重启服务器生效。

参数值
说明
默认值

cloud.backend_url

云控后台 URL 地址

(空)

cloud.app_id

云控通信使用的 app_id 值

(空)

cloud.app_secret

云控通信使用的 app_secret 值

(空)

cloud.enable

是否开启远程管理功能

false

cloud.heartbeat_interval

心跳间隔,单位秒

180

hooks.ignore

默认开启全部 hook 点,有不需要的可在这里关闭,逗号分隔

(空)

rasp.id

自定义的 RASP ID,如果空就计算一个

(空)

hooks.ignore 全部可选值

其中 http_output 为HTML注入功能,其他的都比较好理解。修改后需要重启 Java 应用服务器。

hooks.ignore=sql,sqlPrepared,directory,request,readFile,writeFile,fileUpload,command,xxe,ognl,deserialization,include,ssrf,http_output,webdav,sqlSlowQuery,rename,dubboRequest

若要禁用所有 hook 点,可直接使用 hooks.ignore=all 配置。

V8 通用

提高内存 (1.2.2 之后无需修改)

当在标准输出或者插件日志里看到如下内容时候,可以考虑提高内存占用:

  1. [libopenrasp_v8_java.so+0xb4f142] v8::base::OS::Abort()+0x12

  2. Allocation failed - JavaScript heap out of memory

e.g 将老生代内存设置为20MB,新生代2MB:

export OPENRASP_V8_OPTIONS="--max-old-space-size=20 --max-semi-space-size=2"

对于 Tomcat 这样具有启动脚本的服务器,在启动脚本最前面加上即可

#!/bin/sh

export OPENRASP_V8_OPTIONS="--max-old-space-size=20 --max-semi-space-size=2"

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.

对于 SpringBoot 这样直接使用 java 命令启动的服务器,在启动之前设置下环境变量即可

export OPENRASP_V8_OPTIONS="--max-old-space-size=20 --max-semi-space-size=2"
java -jar XXX.jar [其他参数]

注意: 设置后需要重启 Java、PHP 进程生效。

Previous单机版本Next功能说明

Last updated 11 days ago

syslog.facility 的值请参考 ,比如 7 表示 news 类型。另外,由于报警日志大小超过 1KB,所以我们仅支持 TCP 方式推送报警。

What are Syslog Facilities and Levels