Gartner 在2014年提出了 运行时应用自我保护 技术的概念,即 对应用服务的保护,不应该依赖于外部系统;应用应该具备自我保护的能力。OpenRASP 是该技术的开源实现,它改变了防火墙依赖请求特征来拦截攻击的模式。对于注入类的漏洞,我们可以识别用户输入的部分,并检查程序逻辑是否被修改。由于不依赖请求特征,我们每条报警都是成功的攻击。
目前,OpenRASP 支持 Java 和 PHP 两种开发语言。该项目已经由百度安全团队开源。项目官网:https://rasp.baidu.com/
下面波波以PHP服务器为例分享安装OpenRASP的方法。
操作步骤:
1、安装管理后台。
1.1下载后台最新Release版本。
下载地址为:https://packages.baidu.com/app/openrasp/release/latest/rasp-cloud.tar.gz
1.2安装数据库。
目前,我们使用了 ElasticSearch 和 MongoDB 两种数据库。前者用来存储报警和统计信息,后者用来存储应用、账号密码等信息。
- MongoDB 版本大于等于 3.6
- ElasticSearch 版本大于等于 5.6,小于 7.0
安装方法比较简单,波波不再赘述。需要注意的是如果数据库安装时没有选择默认端口,需要在conf/app.conf文件中修改对应端口。
1.3启动后台。
- ./rasp-cloud -d
1.4访问管理后台。
在浏览器里打开 http://your-ip:8086,登录管理后台。其中用户名固定为 openrasp,初始密码为 admin@123。如果不能访问,请检查防火墙设置,或者检查 logs/api/agent-cloud.log 下面的错误信息。
登录成功后,可以将一台或多台服务器添加到管理后台中进行统一管理。
=====很重要的分割线======
通过上述步骤我们已经完成了OpenRASP的后端配置,除了上述方法外也可以自己下载源代码手动编译,但这不适合小白用户,因此波波也不再分享。下面以PHP服务器为例来继续安装。
2、安装客户端
2.1下载PHP扩展源码
下载 rasp-php-linux.tar.bz2 或者 rasp-php-linux-ts.tar.bz2(线程安全版本) 并解压缩。之后进入到解压后的目录中。下载地址:https://packages.baidu.com/app/openrasp/release/latest/
2.2.1集群式部署。
如果你要开启远程管理,请先参考 管理后台 - 添加主机 文档,找到 app_id/app_secret/backend_url 三个关键参数,然后执行如下命令,
- php install.php -d /opt/rasp --backend-url http://myserver:port --app-secret XXX --app-id XXXX
2.2.2单机部署。
如果你只是运行单机版,只需要指定 -d 参数,
- php install.php -d /opt/rasp
其中 /opt/rasp 为 OpenRASP 安装目录,用于存储检测插件、报警日志等等,可根据实际情况调整。在某些情况下,php cli 和 php-fpm 使用的 ini 不同,自动安装程序可能会失败。
2.3验证安装。
我们可以通过输出phpinfo()来查看扩展是否安装成功。
完成以上步骤之后开源应用运行时自我保护解决方案-OpenRASP的安装过程基本上就完成了,剩下的就是通过管理后台对服务器的相关管理了。具体可参考官方文档:https://rasp.baidu.com/doc/