塞讯安全实验室 | RASP类安全产品的有效性验证

什么是RASP

RASP全称运行时应用自我保护(Runtime Application Self-Protection),是一种新型应用安全保护技术,该技术在2014年Gartner的应用安全报告里被列为应用安全领域的关键趋势,同时也被认为是实现内生安全的绝佳技术之一。它将防护功能”注入”到应用程序中,与应用程序融为一体,通过Hook少量关键函数,来实时观测程序运行期间的内部情况。近年来它已经被越来越多的企业接受并部署,特别是那些有对外业务应用发布的企业,更希望通过它来提升防御能力并减少防御层级来减少对应用的影响。当应用出现可疑行为时,RASP根据当前上下文环境精准识别攻击事件,并给予实时阻断,使应用程序具备自我防护能力,而不需要进行人工干预。

RASP 实时采集 Web 应用的高风险行为,通过特征规则、上下文语义分析及第三方安全产品数据关联分析等多种安全模型来提升检测准确率。

相较于传统 Web 应用安全产品,RASP从海量的攻击中排除掉了大量的无效攻击,聚焦发现真实的已知和未知安全威胁。不仅如此,在发出报警信息时,RASP可以清晰的还原出代码行级别的攻击路径,对漏洞重现与修复具有极大的帮助。

RASP技术可以被应用在攻防演练、紧急漏洞防御以及高级威胁防御等场景。由于大多数应用程序由不同语言编写,因此RASP技术在真实应用的过程中,必须在保证应用性能的同时避免其被攻击。尤其在被部署到关键系统时,需要及时验证RASP的防御规则能力和有效性。

RASP原理浅析

1. RASP防御流程

当Web应用接入RASP防御后,RASP会在Java语言底层重要的API(如:文件读写、命令执行等API)中设置防御点(API Hook方式),攻击者一旦发送Web攻击请求就会被RASP监控并拦截,从而有效的防御Web攻击。

RASP的防御能力是基于“行为实现”的,RASP会根据Hook点触发的攻击事件(如:文件读取事件、命令执行事件)调用对应的防御模块,而不需要像传统的WAF一样,一次性调用所有的防御模块。

2. RASP Agent架构设计

RASP Agent由两大核心机制(Agent机制、Hook机制)、三大核心模块(RASP Loader、RASP Context、RASP 防御模块)组成。

Agent机制和Hook机制是RASP实现防御的必要条件,RASP会使用Hook机制防御容易被攻击的Java类(如:Java SE、Web应用),当被防御的类方法被调用时会自动触发RASP的防御代码。

RASP注入靶机

1. 实验环境

本次实验使用塞讯靶机容器(二次开发开源项目),采用SpringBoot技术栈及相关易受攻击的组件(如fastjson,log4j等)搭建。

2. RASP环境部署

1)安装配置ElasticSearch以及MongoDB两种数据库。

–在conf/app.conf中进行配置相关连接方式

–然后启动项目 ./RASP-cloud 就可以启动管理后台。

2)添加节点

–可根据不同的环境,选择不同的注入方式

–本次构建靶机使用docker启动,可使用以下命令进行构建靶机。

–其他安装探针方式,可自行探索。

3)配置探针参数

–注意上面的参数中有ip的地方,是OpenRASP的后台地址,不可随意填写。

4)启动应用

–在项目启动时能看到openRASP启动的banner

5)注入OpenRASP成功

–在主机管理中可看到已经将靶机添加到后台主机列表。

塞讯验证对RASP规则的有效性进行验证

塞讯验证专门针对靶机添加验证规则,验证更加快速。

–规则为常见的Java漏洞集合,两者互相进行验证

在塞讯验证中使用快速配置,将规则下发给源机器人,并进行攻击目标靶机。

在源攻击端不断攻击的同时,RASP管理平台产生日志,可查看到塞讯验证所发送的攻击载荷,是否为真实有效攻击。

进一步查看塞讯验证规则详细内容,看是否与OpenRASP所记录的攻击日志相匹配。

–规则以及返回的响应包,如下图所示

 

–openRASP相对应时间所产生的攻击日志

–发送的规则以及openRASP所记录的攻击都能对应上,确定为塞讯验证机器人所发出的规则。

根据RASP日志所记录的攻击记录,不难发现塞讯验证所有下发的攻击载荷都是真实有效的攻击。

塞讯验证与RASP的协同增长

未来我们将面临复杂多变的互联网安全形势,网络安全风险指数型增长,大规模、集团化的网络攻击行为将会带来更多的难题。网络安全技术需要马不停蹄地成长发展,才能应对风云突变的局势。

塞讯验证所引领的安全验证技术也在不断适应飞速发展的攻击技术趋势,实现与RASP相辅相成,共同成长。塞讯验证提供实时最新的漏洞规则并根据规则进行模拟攻击。RASP则根据所接收到的不同的攻击完善自身的规则库,以应对新的攻击技术和漏洞。

参考来源:
1.RASP安全技术 https://www.jRASP.com/guide/
2.Java Web安全 https://javasec.org/java-RASP/
3.RASP安全产品:百度开源OpenRASP https://RASP.baidu.com/
4.用于检测的WEB程序: Hello-Java-Sec https://github.com/j3ers3/Hello-Java-Sec