百度RASP的安装

2024-06-11 09:17:58 801

百度RASP的安装

蓝队云小课堂:

参考文档:PHP 服务器 - OpenRASP 官方文档 - 开源自适应安全产品 (baidu.com)

一、PHP服务器

SAPI 支持范围(同时支持TS/非TS版本)

  • PHP-FPM

  • image.pngApache PHP 模块

操作系统

Linux

  • PHP 5.3 ~ 5.6,7.0 ~ 7.3

    • Ubuntu 14.04 以及更高版本

    • RHELL/CentOS 6 以及更高版本

    • 其他 glibc >= 2.12 的发行版

Mac OS

  • Homebrew PHP 5.6,7.0 ~ 7.3 (没有深入测试)

数据库

  • MySQL (mysql/mysqli/PDO 等连接方式)

  • PostgreSQL

  • SQLite3

1、宝塔安装

宝塔软件商城中有rasp软件,安装后选择对应php版本的安装即可

2、linux服务器安装

自动化安装

(1)下载官方安装包

官方安装包地址Index of /app/openrasp/release/ (baidu.com)

以RASP1.3.6版本为例

下载 rasp-php-linux.tar.bz2 或者 rasp-php-linux-ts.tar.bz2(线程安全版本) 到/opt目录下并解压缩

cd /opt
wget https://www.landui.com/app/openrasp/release/1.3.6/rasp-php-linux.tar.bz2

进入到解压后的目录中

cd rasp-php-2022-01-28
php install.php
-d /opt/rasp

查看phpinfo,应有openrasp相关模块

image.png

手动安装

1. 确认基本信息

在 web 目录下面,我们建立一个 info.php,并填写如下内容

<?php phpinfo();?>

在浏览器里打开这个页面,使用搜索功能,

  1. 定位到

extension_dir

字样,确认PHP扩展安装目录

    • e.g /usr/lib/php/20151012

  1. 搜索

Additional .ini files parsed

字样,

    • 如果找到了,我们就在这个目录下面创建一个新的 ini 文件,e.g /etc/php.d/z-openrasp.ini

  1. 如果找不到,就定位到

Loaded Configuration File

字样,确认 ini 配置文件路径

    • e.g /etc/php.ini

2. 安装软件

首先,根据你的 PHP 版本号,复制正确的 openrasp.so 到扩展目录,e.g

cp php/linux-php5.4-x86_64/openrasp.so /usr/lib/php/20151012
chmod 755 /usr/lib/php/20151012/openrasp.so

然后,确定 OpenRASP 安装目录,在这里我们使用 /opt/rasp

这个目录将会用于存储检测插件、报警日志、插件日志等内容,需要手动创建,并保证 PHP 进程可以写入,e.g

mkdir -p /opt/rasp
chmod 777 -R /opt/rasp

由于报警日志存储在 /opt/rasp/logs,我们建议挑选一个空间较大的分区,以避免将根分区打满

最后,修改 php.ini,或者创建 z-openrasp.ini 文件,添加如下内容:

; BEGIN OPENRASP

[openrasp]
extension=openrasp.so
openrasp.root_dir=/opt/rasp

;
远程管理配置,不需要不用配置
; openrasp.backend_url=
; openrasp.app_id=
; openrasp.app_secret=
; openrasp.remote_management_enable=1

; END OPENRASP

其中,openrasp.root_dir 表示刚才选择的 OpenRASP 安装目录,不填写则无法加载。对于其他配置参数,可参考其他配置文档进行调整。

3. 安装检测插件

点击这里下载官方插件 plugins/official/plugin.js,并放置到 <openrasp.root_dir>/plugins/ 目录,下载后自动加载并生效。

4. 验证安装是否成功

访问刚才创建的 info.php,检查 openrasp 模块是否加载成功即可,e.g

image.png

如果你没有看到类似的信息,则说明扩展加载失败。常见原因有

  1. PHP版本和扩展版本不一致,比如 PHP 是 5.3 版本,但你安装了 PHP 5.6 版本的 openrasp.so

  2. INI 配置不正确,请参考 php error.log 里的错误消息

    • 所有的错误消息都以 [OpenRASP] 错误码 开头,方便和其他日志进行区分

    • 对于 apache/nginx,可以查看类似 /var/log/nginx/error.log 的路径

确认安装成功后,请删除 info.php 这个文件,以避免泄露敏感信息

3、windows安装

4、 开启拦截和行为日志

宝塔安装不需要此步骤

打开官方插件(rasp/plugins/official.js),首先定位到如下内容,将 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,
  },

  ...
}

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

5、测试是否成功

二、测试

2.1 下载测试案例国内镜像: packages.baidu.com

PHP 版本

  • 解压      php-vulns.tar.gz 到web目录

2.2 在PHP服务器上部署 直接把解压包放在PHP服务器的WEB服务下就好了。

 image.png

打开index.php,看到上面的画面,任意点进一个网页,比如010 image.png

点击不正常调用

 



更多小知识,可联系蓝队云一起探讨。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: