OpenRASP 单机版

× 文章目录
  1. 1. 0x00 前言
  2. 2. 0x01 环境
  3. 3. 0x02 安装
  4. 4. 0x03 防护成功

0x00 前言

某web应用一直被黑,加上是零几年的网站代码没人维护,于是从某云开个服务器放上去了,然后再部署一个防护软件,想装个安全狗的,听大佬说存在数据回传,之前关注了百度开源的OpenRASP项目,先在测试环境试一下

0x01 环境

这个PHP测试环境是前几天CVE-2019-11043 PHP-FPM + Nginx RCE的漏洞靶场

docker 启动并将宿主机目录挂在到容器 /var/www/html 目录下

下载测试用例

1
2
3
4
wget https://packages.baidu.com/app/openrasp/testcases/php-vulns.tar.gz
tar -xzf php-vulns.tar.gz

访问http://10.10.10.11:8080/vulns/ OpenRASP 官方测试用例集合

下载openrasp

1
2
wget https://packages.baidu.com/app/openrasp/release/1.2.1/rasp-php-linux.tar.bz2
tar -xjf rasp-php-linux.tar.bz2

进入容器内

这里安装单机版,openrasp依赖pdo、pcre、json扩展

通过php -m 查看扩展状态是已启用的

0x02 安装

这里使用自动化安装失败

改为手工安装

  1. 确认基本信息

在web目录下创建一个phpinfo.php文件
定位到extension_dir,确认PHP扩展安装目录

1
/usr/local/lib/php/extensions/no-debug-non-zts-20170718

搜索Additional .ini files parsed (生产服务器上没有,搜索Loaded Configuration File确认ini配置文件路径)

1
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini

在该目录下创建一个新的ini文件/etc/php.d/z-openrasp.ini

  1. 安装软件

根据PHP版本号,复制openrasp.so到扩展目录

1
2
cp openrasp/rasp-php-2019-10-29/php/linux-php7.2-x86_64/openrasp.so /usr/local/lib/php/extensions/no-debug-non-zts-20170718/
chmod 755 /usr/local/lib/php/extensions/no-debug-non-zts-20170718/openrasp.so

确定openrasp安装目录,这个目录将会用于存储检测插件、报警日志、插件日志等内容

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

修改z-openrasp.ini,添加

1
2
3
4
5
6
7
8
9
10
11
12
13
; 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

  1. 将官方插件移动到 /opt/rasp/plugins/ 目录下
  2. 重启php-fpm
  3. 验证是否安装成功,通过phpinfo.php,检查openrasp模块是否加载成功,返回包X-Protected-By: OpenRASP

  4. 插件模式开启的是观察模式,将所有的拦截改为仅记录日志,在插件里面关闭观察模式

0x03 防护成功