RASP实践分析

一、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日

<think>嗯,用户问的是安全沙箱和RASP的区别及应用场景,这是个很专业的安全技术对比问题。从用户之前的提问记录看,ta对系统安全机制(如沙箱)有基础了解,现在想深入理解两种运行时防护技术的差异。用户可能正在做安全方案选型,或者需要设计应用防护架构。 用户提供的站内引用虽然主要是面试题和安全运营内容,但其中[^1][^2]提到漏洞缓解机制、渗透测试等,说明用户背景偏技术实战。需要特别注意: - 避免混淆概念:沙箱是隔离环境,RASP是应用内嵌防护 - 强调部署位置差异:沙箱在应用外部,RASP在应用内部 - 用具体场景说明:比如用户提到的区块链审计[^3]更适合沙箱,而Web应用防护更适合RASP 注意到用户要求用LaTeX格式表达技术细节,比如$T_{exec}$这样的执行时间变量,在性能对比部分需要严格遵守格式规范。但整体要保持中文表述流畅。 关于区别的维度划分,决定从五个核心角度展开: 1. 防护位置(隔离层 vs 应用层) 2. 技术实现(重定向 vs 字节码插桩) 3. 防护粒度(进程级 vs 函数级) 4. 性能影响(资源消耗模式不同) 5. 适用场景(互补而非替代) 特别要说明RASP能检测业务逻辑漏洞(如用户提到的重入漏洞[^3])这种沙箱无法覆盖的风险。最后用表格对比收尾时,要包含用户引用中提到的APT防护[^1]和Defi审计[^3]相关案例。</think>以下是安全沙箱与 RASP(Runtime Application Self-Protection)的详细对比及典型应用场景: --- ### **核心区别** | **维度** | **安全沙箱** | **RASP** | |-------------------|---------------------------------------|---------------------------------------| | **防护位置** | 应用外部隔离层(操作系统/虚拟机级) | 应用内部嵌入层(进程/函数级) | | **技术原理** | 通过资源隔离限制程序行为 | 通过Hook应用函数监控运行时行为 | | **部署方式** | 独立环境运行(如容器、虚拟机) | 应用内嵌代理(如Java Agent、.NET模块) | | **检测能力** | 拦截系统级越权操作(文件/网络访问) | 识别应用逻辑漏洞(SQLi、反序列化等) | | **性能影响** | 资源开销较大(需完整隔离环境) | 轻量级注入(仅监控关键函数) | | **防护目标** | 防止恶意代码破坏宿主系统 | 防止漏洞被利用导致应用被入侵 | --- ### **技术原理详解** #### **1. 安全沙箱** - **工作原理** 创建隔离的虚拟环境(如Linux的`namespaces/cgroups`),限制进程对资源的访问权限。 **示例**: ```bash # 使用Firejail沙箱运行不可信程序 firejail --net=none --private-tmp /path/to/untrusted_app ``` 该命令禁止程序访问网络和临时目录,拦截越权操作[^1]。 #### **2. RASP** - **工作原理** 通过字节码插桩(如Java的`javaagent`)监控应用关键函数(如数据库查询、反序列化)。 **示例**: ```java // RASP对SQL查询的监控逻辑 public void monitorSQL(String query) { if (detectSQLi(query)) { // 检测SQL注入特征 throw new SecurityException("Blocked SQLi attack"); } executeOriginalQuery(query); // 执行原查询 } ``` 实时阻断SQL注入攻击,无需修改业务代码[^3]。 --- ### **典型应用场景** #### **安全沙箱适用场景** 1. **运行不可信代码** - 浏览器执行JavaScript(Chrome V8沙箱) - 云服务运行用户上传的程序(AWS Lambda隔离环境) 2. **漏洞分析** - 动态分析恶意软件(如Cuckoo沙箱[^1]) - Fuzzing测试(崩溃时不影响主机系统) 3. **权限隔离** - Android应用沙箱(每个APP独立UID) - Docker容器(限制资源访问范围) #### **RASP适用场景** 1. **Web应用防护** - 实时阻断OWASP Top 10攻击(如XXE、SSRF[^2]) - 防护0day漏洞(如Log4j反序列化漏洞) 2. **业务逻辑安全** - 审计API参数篡改(如区块链重入攻击[^3]) - 防御数据篡改(如金融交易篡改) 3. **无侵入式防护** - 保护遗留系统(无法修改代码的老旧应用) - 快速响应新威胁(动态更新防护规则) --- ### **互补性实践案例** #### **场景:Web服务安全加固** - **沙箱层**: 使用Docker部署Web服务,限制容器权限: ```bash docker run --cap-drop=ALL --read-only -d nginx ``` 禁止容器修改文件系统,防御提权攻击[^1]。 - **RASP层**: 嵌入Agent监控SQL查询,当检测到`UNION SELECT`等注入特征时,立即终止查询并告警[^2]。 > **效果**: > - 沙箱阻止容器逃逸攻击 > - RASP阻断SQL注入数据泄露 > 实现纵深防御(Defense-in-Depth) --- ### **总结对比** | **特性** | 安全沙箱 | RASP | |--------------------|---------------------------------------|---------------------------------------| | **最佳适用对象** | 操作系统/虚拟机环境 | 应用运行时环境 | | **漏洞覆盖范围** | 系统级漏洞(如缓冲区溢出) | 应用级漏洞(如反序列化、业务逻辑缺陷)| | **部署复杂度** | 高(需隔离环境) | 低(仅需注入Agent) | | **实时防护能力** | 弱(侧重隔离而非检测) | 强(实时分析请求/响应) | | **典型工具** | Docker, Firejail, SELinux | Contrast, Fortify, OpenRASP | > 💡 **核心差异**: > - **沙箱**是“**隔离盾**”,通过物理隔离保护系统; > - **RASP**是“**免疫系统**”,从应用内部阻断攻击链。 > 两者协同可实现从基础设施到应用层的全面防护(如云原生安全架构[^4])。 --- ### **相关问题** 1. 如何为Docker容器配置安全沙箱策略以防御容器逃逸? 2. RASP技术如何检测Java反序列化漏洞?请举例说明 3. 在Kubernetes环境中如何同时部署沙箱和RASP? 4. RASP与WAF在防护Web攻击时有何优劣?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值