一、RSAP简介
1. Waf
简介: 它采用请求特征检测攻击方式,waf和防火墙就好比如一座大厦门口的保安,你要进入大厦,waf和防火墙就会在你进入大厦时进行安检,检查到你携带违禁品,就会把你拦截下来,如果没有那就放你进入,至于你进入大厦后所做的一些行为就不会再去检测。
最近几年,攻击手段开始变得复杂,攻击面也越来越广。传统的安全防护手段,WAF、IDS(入侵检测系统),大多是基于规则,已经不能满足企业对安全的基本需求。对所有的请求都匹配规则,拖慢服务器性能。
产品形态: 硬件、软件、云。

2. RASP
简介: 好比给每个进入大厦的人都配了一名私人保镖,不仅仅是在入口处设置保安检测,当你进入这座大厦后,你的一举一动都会被它监测到,当你要挥起拳头,下一步准备打人时,他就会在你挥拳时把你拦截下来。
只对关键的请求点检测,不是所有请求都匹配所有规则,
产品形态: 软件,运行在应用程序内部,应用程序融为一体,实时监测、阻断攻击,使程序自身拥有自保护的能力。
二、功能清单
1. RASP可以检测那些漏洞
攻击类型 RASP支持 WAF支持 跨站脚本(XSS) ✔ ✔ 命令注入 ✔ ✔ ShellShock ✔ ✔ 未经处理的异常 ✔ ❌ 缺少内容类型 ✔ ✔ 缺少Accept标头 ✔ ✔ 不受支持的方法 ✔ ✔ 漏洞扫描 ✔ ✔ 方法调用失败 ✔ ❌ 敏感数据泄露 ✔ ❌
三、竞品分析
调研了一些国内做RASP的厂商,详情如下图:
四、搭建流程
搭建OpenRASP做个小测试,先搭建一个用于测试的靶场,
1. 搭建测试环境
1、为了简化安装,使用docker方式进行
curl -sSL https://get.daocloud.io/docker | sh
2、dockers安装mysql数据库
docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123 -d -i -p 3309:3306 mysql:5.6
3、此环境已经上传docker,无需提前下载直接运行即可。
docker run --name permeate_test --link mysqlserver:db -d -i -p 8888:80 –p 8086:8086 daxia/websafe:latest
4、通过浏览器访问http://localhost:8888,便可以打开安装协议页面,点击我同意此协议,填写安装配置,设置数据库地址为db,安装MySQL数据库时我们已经设置密码为123,这里也填写123,参考页面如下:



2. 安装OpenRASP
1、安装ES服务
docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 elasticsearch:5.6
2、安装mongodb
docker run -itd --name mongo -p 27017:27017 mongo
3、下载rasp-cloud
wget https://packages.baidu.com/app/openrasp/release/latest/rasp-cloud.tar.gz
4、修改配置文件,把127.0.0.1更换为本机IP
vim rasp-cloud-2021-02-07/conf/app.conf

5、启动后台管理系统
./rasp-cloud-2021-02-07/rasp-cloud -d
6、访问后台
http://172.26.81.233:8086/

7、点击添加主机,然后选择你对应的语言去下载安装包,我这里是PHP,所以选择PHP服务器.
下载 PHP 安装包
curl https://packages.baidu.com/app/openrasp/release/1.3.6/rasp-php-linux.tar.bz2 -o rasp-php-linux.tar.bz2 tar -xvf rasp-php-linux.tar.bz2 cd rasp-/*/
install.php 进行安装
./install.php
默认安装路径为 /opt/rasp,可替换为其他路径
php install.php -d /opt/rasp --heartbeat 90 --app-id c0c523ce311cef92c6f3e9eee306777c99010ce7 --app-secret 0njm1mPafaCGV3cyY15BnOauu4BeqqlC62auGpU8uJk --backend-url http://172.26.81.223:8086/
重启 PHP-FPM 或者 Apache 服务器
service php-fpm restart apachectl -k restart

五、实践案例
我们的靶场已经添加成功了,现在模拟黑客手段攻击靶场,检测一下OpenRASP的防护能力,这里我用工具burp suite去扫描我的靶场,可以看到下图扫到了XSS跨站脚本,密码明文传输,SQL注入

OpenRASP的攻击事件中记录了3334条记录,

漏洞列表中可以看到它拦截到的漏洞,

默认是只安装防护插件,还可以下载iast交互式扫描插件,

作者: 陈婷
发布时间:2021年3月21日

中国 1F
WAF那个保安比喻还挺形象的,但实际用起来规则维护真头疼。
河南省洛阳市 2F
RASP只检测关键点这点蛮聪明的,性能应该比全量匹配好不少吧?
北京市 B1
@ 萍始生 只对关键点检测确实比WAF全量扫描合理多了
香港 3F
刚试了下OpenRASP安装,PHP-FPM重启后没生效,有人遇到过吗?
香港 B1
@ 辰砂子 PHP-FPM重启不生效试试看权限问题?我上次也是卡在这
山东省济宁市 4F
敏感数据泄露都能拦?我之前项目就栽在这上面,早看到就好了。
浙江省嘉兴市 B1
@ 褪色的梦 敏感数据泄露这块RASP确实能拦,我们上个月刚用它堵住一个API泄露漏洞。
天津市 5F
命令注入和XSS都支持,但方法调用失败为啥WAF不支持啊?
广东省广州市 B1
@ 桃太 方法调用失败WAF不支持是因为它只能看到网络流量层面吧
新加坡 6F
这部署流程看着简单,其实光IP改来改去就搞了我俩小时 😩
北京市 B1
@ 破晓剑 部署时那个IP配置太折腾了,改了好几遍才成功
日本 B1
@ 破晓剑 重启Apache后拦截没生效,查了半天发现install路径写错了 😅
四川省成都市 7F
感觉RASP更适合微服务架构,每个服务自带保镖确实安心点。
美国 8F
又是Docker又是ES又是Mongo,小公司哪扛得住这套?
四川省绵阳市 9F
前几天刚在测试环境搭了个类似方案,结果日志爆盘差点背锅。
辽宁省营口市 10F
求问下iast插件装完要额外配置吗?文档里没写清楚。
湖北省荆门市 11F
这部署步骤看着简单,实际改IP那段坑死我了
江苏省扬州市 B1
@ 星河拾贝 部署时IP改来改去真的烦,特别是内网外网混着的时候
北京市 12F
我们公司去年就被敏感数据泄露搞过,现在考虑上RASP了
广东省佛山市 13F
RASP和微服务确实挺搭的,每个服务独立防护
泰国 B1
@ 凤仪宫娘娘 微服务架构配RASP挺合适的,每个服务自带防护
江苏省无锡市 14F
iast插件装完要配扫描策略的,文档确实没说清楚
湖南省衡阳市 15F
这个靶场测试结果挺有参考价值的
江苏省苏州市 16F
WAF那个保安比喻容易理解,但实际规则维护太费劲了
浙江省杭州市 17F
OpenRASP的日志量确实大,得提前规划存储
安徽省芜湖市 18F
RASP只检测关键请求确实能减轻服务器压力
北京市 19F
敏感数据泄露防护这个点很实用,我们项目正好需要
湖北省武汉市 20F
为啥WAF不支持方法调用失败检测呢?
山东省青岛市 21F
之前用传统WAF被误报搞怕了,RASP这种精准检测应该会好很多
广东省广州市 22F
OpenRASP的日志量太大了,得考虑下存储方案
泰国 23F
iast插件装完需要配扫描策略吗?文档没说明白
浙江省绍兴市 24F
感觉RASP比传统WAF更适合现在的攻击场景
印度尼西亚 25F
mongodb和ES一起部署资源消耗有点大啊
北京市 26F
部署流程挺详细的,正好拿来参考。
重庆市 27F
mongodb和ES一起跑,内存扛得住吗?
重庆市 28F
这测试结果看着还行,就是不知道误报率高不高。
湖南省衡阳市 29F
敏感数据泄露这个点确实关键,我们之前审计就栽过跟头。
浙江省宁波市 30F
OpenRASP的日志量确实得注意,不然硬盘分分钟塞满。
泰国 B1
@ 酿酒师黄 日志量大到离谱,建议直接挂个自动清理脚本,不然半夜报警吵死。
印度尼西亚 31F
iast插件装完好像还得调参数,有点麻烦啊。
广东省广州市 32F
感觉RASP比WAF灵活不少,至少不用老折腾规则。
浙江省 33F
有没有更轻量级的方案?这套下来成本不低。
福建省福州市 34F
靶场测试结果挺直观的,就是不知道实际业务环境效果咋样。
四川省德阳市 35F
WAF那个比喻挺形象,但实际用起来感觉像在打地鼠,老有漏的。
四川省泸州市 36F
RASP这保镖比喻比WAF那个保安贴切多了,至少进屋后还能管得住
上海市 37F
刚搭完发现PHP-FPM没生效,原来得清opcache,血泪教训
韩国 38F
敏感数据泄露能拦住?我们上个月就因为这个被通报了,急着试下
江西省吉安市 39F
iast插件装完默认策略太激进了,误报一堆,得手动调低灵敏度
贵州省贵阳市 40F
小公司真玩不起这套,光ES+Mongo吃掉8G内存,服务器直接卡死
北京市 41F
为啥方法调用失败WAF检测不了?这不也算异常行为吗?
日本 42F
前几天测试OpenRASP,日志一天涨20G,赶紧关了先
泰国 43F
有没有人试过在K8s里跑RASP?感觉和容器环境挺配的
山东省枣庄市 B1
@ RoguePlanet K8s里跑过,sidecar模式部署挺稳的,就是init容器得调权限。
辽宁省鞍山市立山区 44F
方法调用失败这玩意WAF真搞不定,毕竟它只看流量不看代码上下文啊。
上海市 45F
装完iast插件默认策略太猛了,误报多到想删库跑路😅
韩国 46F
小公司别硬上,光ES+Mongo吃掉8G内存,测试机直接卡成PPT。
广东省东莞市 47F
RASP那个保镖比喻绝了,比WAF那个门口保安靠谱多了。
上海市 48F
前几天搭的时候IP改错三次,文档里那句“换成本机IP”坑死新手。
日本 49F
命令注入和XSS都能拦,但感觉对逻辑漏洞基本没辙吧?
广东省广州市 50F
PHP-FPM重启后记得清opcache,不然配置根本不生效,血泪教训。
四川省 51F
这种技术类文章还是得看实际部署效果,光看理论容易踩坑。
韩国 52F
要是比特币跌回3万他们还能撑住不?
福建省厦门市 53F
之前项目也用过类似方案,日志管理确实是个大问题,得提前规划好存储。
澳大利亚 54F
iast插件默认策略太激进的话,实际业务环境能用吗?
内蒙古呼伦贝尔市 55F
这部署步骤看着就头大,小团队根本折腾不起。
河南省洛阳市 56F
感觉RASP对逻辑漏洞基本没辙,只能防已知攻击模式吧。
湖南省衡阳市 57F
这个比喻还挺形象的,私人保镖比门口保安管得宽。
安徽省合肥市 B1
@ 青锋侠客 比喻到位,一下就懂了
越南 58F
部署这块儿讲得挺细,适合动手试试。
江苏省 59F
之前试过OpenRASP,误报有点烦。
江苏省无锡市宜兴市 60F
误报率咋样?实际用起来头疼吗?
北京市 61F
测试环境那步挺实用,照着搭应该能跑起来。