RASP知识学习笔记

发布时间 2023-08-01 16:57:56作者: 妇愁者纞萌

RASP

RASP(Runtime application self-protection)是一种内置或链接到应用程序环境中的安全技术,与应用程序融为一体,实时监测、阻断攻击,使程序自身拥有自我保护的能力。

工作原理

RASP技术是一种基于服务器的技术,一旦应用程序运行开始时就会激活。而且,所有RASP产品都包含一个运行时监视器,该监视器接收带有关联数据的连续事件流。每个RASP系统都有自己的一组安全规则列表,用于交叉检查事件和相关数据,以确保只有允许的事件才能执行。其中,每种RASP技术提供的保护级别取决于安全规则的深度以及实现类型。 

RASP实现方法

RASP工作在应用层,因此每个产品都需要以某种方式与应用程序集成。监控应用程序使用(调用)或执行(运行时)的方法有多种。

  • Servlet 过滤器和插件:一些RASP平台作为Web服务器插件或Java Servlet实现,通常安装到Apache Tomcat。插件在到达应用程序代码之前过滤请求,将检测规则应用于收到的每个入站请求。匹配已知攻击特征的请求被阻止。可以有效地阻止恶意请求,但它没有提供其他类型集成可能的深入应用程序映射。
  • 库/JVM替换:通过替换标准应用程序库、JAR文件甚至Java虚拟机来安装某些RASP产品。这种方法基本上劫持了对底层平台的调用,无论是库调用还是操作系统。RASP平台被动地“看到”对支持功能的应用程序调用,在请求被拦截时应用规则。在此模型下,RASP工具可以全面了解应用程序代码路径和系统调用,甚至可以学习状态机或序列行为。更深入的分析提供上下文,允许更细粒度的检测规则。
  • 虚拟化或复制:这种集成有效地创建了应用程序的副本,通常作为虚拟化容器或云实例,并在运行时检测应用程序行为。通过监控应用程序代码路径,请求结构、参数和 I/O 行为,将规则应用于应用程序请求,并阻止恶意或格式错误的请求。

RASP用例

业务程序运行时情境安全

RASP技术将保护引擎植入应用程序内部,基于行为进行上下文威胁的实时检测和防御,不依赖外部防护设备就可以保证业务运行时安全。

保护安全软件开发生命周期(S-SDLC)的正常完成

在安全编码阶段当出现安全漏洞,并不确定需要修复哪些漏洞?应该使用白名单还是黑名单的方法?哪些字符应该在输入数据中被删除或允许?等等诸多问题时,修复已经被利用的漏洞并将RASP插件放入应用程序的部署包中,可以降低安全漏洞发生的风险,确保代码的构建过程安全完成。

保护开源/第三方代码应用程序安全

RASP技术在不需要修改代码的情况下,可以实时保护开源软件和第三方代码中的漏洞。

与WAF构建积极防御的安全防线

RASP 可以在应用程序运行时检测内存中写的数据或检测未经授权的数据库访问。而且,RASP具有实时能力,可以采取诸如终止会话、发出警报甚至退出进程等操作。这些功能使RASP可以和企业内现有的WAF进行互补。