浅谈RASP安全防御技术
RASP介绍
RASP全称为Runtime application self-protection(运行时应用程序自我保护)。Gartner 在2014年应用安全报告里将RASP列为应用安全领域的关键趋势 ,并将其定义为:
“Applications should not be delegating most of their runtime protection to the external devices. Applications should be capable of self- protection (i.e., have protection features built into the application runtime environment).”
(应用程序不应该依赖外部组件进行运行时保护,而应该具备自我保护的能力,也即建立应用运行时环境保护机制)
RASP在业界具体的应用是将RASP工具部署到中间件(Tomcat、weblogic等)中,在应用程序接收请求之前对请求进行过滤和分析,规避安全风险。应用程序无需进行任何的开发方面的修改,只需进行简单的配置即可。
RASP解决的痛点:
- 攻击技术层出不穷:攻击者不断研究出攻击手段,生成恶意用户输入,绕过WAF。为了保障安全,WAF采取了发现可疑立刻阻止的策略,从而导致了比较多的误杀。
- 老系统维护问题:有些企业的历史比较悠久,其使用的信息系统的上线时间也比较差。有很多时候并非没有发现问题,而是发现问题了无从下手,无法从代码层面整改。
RASP能防护哪些漏洞?
来自:https://www.imperva.com/resources/datasheets/RASP-Datasheet.pdf
以下为OpenRASP (OpenRASP 是百度安全推出的一款免费、开源的RASP产品)覆盖OWASP TOP 10 覆盖说明,且持续更新中。

| 编号 | 分类说明 | 攻击类型 |
| A1 | 注入 | SQL注入 |
| 命令注入 | ||
| LDAP 注入 | ||
| NOSQL 注入 | ||
| XPATH 注入 | ||
| A2 | 失效的身份认证和会话管理 | Cookie 篡改 |
| 后台爆破 | ||
| A3 | 敏感数据泄露 | 敏感文件下载 |
| 任意文件读取 | ||
| 数据库慢查询 | ||
| 文件目录列出 | ||
| A4 | XML 外部实体(XXE) | XXE |
| A5 | 失效的访问控制 | 任意文件上传 |
| CSRF | ||
| SSRF | ||
| 文件包含 | ||
| A6 | 安全配置错误 | 打印敏感日志信息 |
| Struts OGNL 代码执行 | ||
| 远程命令执行 | ||
| A7 | 跨站脚本(XSS) | 反射型 XSS |
| 存储型 XSS | ||
| A8 | 不安全的反序列化 | 反序列化用户输入 |
| A9 | 使用含有已知漏洞的组件 | 资产弱点识别 |
| A10 | 不足的日志记录和监控 | WebShell 行为 |
RASP vs WAF 技术对比
这里可以参考http://blog.nsfocus.net/rasp-tech/中的内容,网上的资料比较多了,这里不过多赘述。
RASP的技术逻辑

来自:http://www.owasp.org.cn/OWASP_Events/1RASP.pdf
RASP的技术优势
RASP的核心技术优势可以概括为以下几点:
- 部署和使用简单:RASP只需进行简单的配置,即可与应用程序集成,应用程序无需进行任何的开发方面的修改;
- 检测误报率、漏报率低:不同于 WAF的盲目的规则匹配,OpenRASP知道应用内部的关键函数,在这些关键函数执行之前添加安全检查,得到的参数都是经过变形还原后的、真实的请求数据。
- 极高的覆盖度和兼容性: RASP 安全系统可以应用到任何可注入的应用程序,能处理绝大多数的网络协议:HTTP、 HTTPS、AJAX、SQL 与 SOAP。而 WAF 通过监控网络流量提供保护,因此只支持 Web 应用程序(HTTP)。此外,WAF 需要特定的解析器、协议分析工具或其他组件来分析应用程序使用的其他网络协议,这会导致一些兼容性与性能问题。
RASP的核心不足
性能影响:大多数RASP直接部署在系统中间件内,且实时检测和拦截风险,所以对CPU的性能有一定损耗,有可能会影响用户体验。据说OpenRASP最初版本CPU 性能损耗可达20%,目前已有所改善。对性能的影响可能是导致RASP现在还没有大范围使用的最大原因。
RASP的发展情况
简单整理了一些国内研究RASP技术的团队如下:
OpenRasp
(开源项目,隶属于百度OAESE智能终端安全生态联盟,起始于2017.8)

灵蜥:
(灵蜥应用系统攻击自免疫平台是一款新型WEB应用防护系统,基于RASP技术原理,与应用程序的运行环境和开发语言无缝结合并高度融合。通过修复应用自身内部缺陷,使应用自身具备攻击免疫能力,并以可视化的方式呈现攻击与防御情况。依托安百全网态势感知与漏洞情报下发防御策略,同时提供虚拟补丁进行“热修复”,使应用自身防御能力不断提升,可从容应对已知和未知风险,真正实现应用系统的动态与长期安全。)

云锁:
(云锁通过RASP技术对应用系统的流量、上下文、行为进行持续监控,识别及防御已知及未知威胁,能有效防御SQL注入、命令执行、文件上传、任意文件读写、反序列化、Struts2等基于传统签名方式无法有效防护的应用漏洞;)


湖北省襄阳市 1F
这玩意真能防住新型攻击?感觉还是得看实际部署效果🤔
广东省广州市增城区 2F
老系统没法改代码的痛谁懂啊,RASP简直是救命稻草
广东省珠海市 3F
部署简单是优点,但CPU吃20%也太吓人了吧,线上服务扛得住吗?
湖北省武汉市 B1
@ 荒野的独行 性能损耗20%确实要慎重,建议先压测再上线
辽宁省抚顺市 B1
@ 荒野的独行 如果请求量大的话性能影响会更明显吗?
江苏省常州市 4F
前几天刚在测试环境试了OpenRASP,SQL注入确实拦住了,不过日志有点多
韩国 5F
命令执行和文件上传都能拦?有没大佬试过绕过?
四川省绵阳市 6F
感觉比WAF靠谱点,至少不是光靠规则瞎猜
山东省青岛市 B1
@ 天蝎毒液 之前用WAF老误报,这个检测逻辑感觉更准
日本 7F
又是百度开源的…稳定性咋样?别又是个半成品就尴尬了
重庆市 8F
任意文件读取这块防护逻辑具体咋实现的?求细节!
马来西亚 9F
我司老Java系统跑Tomcat十年了,正愁没法加固,这个可以冲
韩国 10F
WebShell行为检测真能准?之前用别的方案误报一堆,烦死了
江苏省常州市 11F
OpenRASP那个日志可以调级别的,关掉debug就行
浙江省台州市 12F
命令注入防护是hook了ProcessBuilder吗?
浙江省 13F
我们生产环境用了半年,CPU平均涨了8%左右
上海市 14F
灵蜥和云锁哪个更好用?有对比过的吗
北京市 15F
老系统用这个确实省事,不用改代码直接配置
浙江省 16F
对老项目来说是个选项,就是性能还得再看看
宁夏银川市 B1
@ CoyoteChronicler 性能优化一直在做,现在新版本好多了
湖南省湘潭市 17F
WebShell检测误报率高不高?之前被误报搞怕了
湖南省郴州市 18F
XXE攻击也能防?这个有点厉害啊
日本 19F
百度开源的东西用着还行,我们测试环境挺稳定
浙江省宁波市 20F
感觉部署确实简单,文档写得很清楚
上海市 21F
性能损耗这块还是有点担心
北京市 22F
反序列化漏洞防护这块测试过没?
北京市 23F
这技术对老系统维护挺有用