分享!一文简析RASP技术

2023-11-04

众所周知,log4j 2.x安全事件引起了轩然大波,对于信息安全从业者来讲可以称之为“家喻户晓”。与之同时引起大家关注的是RASP(Runtime application self-protection)技术,该技术在2014年Gartner的应用安全报告里被列为应用安全领域的关键趋势。虽然并不新颖,而受到如此多的关注还是头一次。之所以如此,是因为RASP可以增强WAF防护工具的安全能力,形成纵深防御的安全防护体系。

RASP是一种内置或链接到应用程序环境中的安全技术,与应用程序融为一体,实时监测、阻断攻击,使程序自身拥有自我保护的能力。那么,RASP技术是如何应用、优势好处又有哪些呢?本篇文章为大家简析RASP的相关内容,让大家对RASP技术有更多的了解。

RASP的工作原理

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

例如,RASP系统可能会出现以下事件: 

使用参数val = 42 和 key = 0xffe01234 调用“加密” 。

那么,RASP系统如何确定是否允许此调用需要根据情况而定。如有一些RASP产品允许基本的“数据清理”规则。这些规则检查字符串参数中的可执行代码。但是,仅仅孤立地检查函数调用序列和发送给这些调用的数据,有许多安全方面是无法充分监控的。

为了实现更高级的RASP安全级别,在RASP解决方案中需要两个元素:动态上下文和元数据。

第一个元素,动态上下文,涉及到事件的调用逻辑。例如,RASP规则可以设计为仅允许在“check_credentials”的后方可调用“open_file”,但不能在“factorial”后调用。再例如,另一个规则可以设定为“free_memory”只能在“allocate_memory”之后,并且“free_memory”的参数需要与“allocate_memory”返回的值相匹配。通常,动态上下文指的是时间条件,如“执行事件A 需要先满足事件B”,“在调用D之前,需要先调用C”等等。

第二个元素,元数据,指的是“关于数据的数据”。例如,在对“encrypt”的调用中,RASP工具可以检查“key”的值是否由受信任的密钥存储库发出的,并且在发出后直到“encrypt”函数使用它之前没有被修改过。当通过指针从内存中读取一个值时,RASP可以检查这个指针是否允许引用该内存。此外,当通过网卡向外部发送数据时,RASP可以检查该数据是否包含敏感信息,从而可以防止在网络上暴露敏感数据。

RASP安全方法

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

  • Servlet 过滤器和插件:一些RASP平台作为Web服务器插件或Java Servlet实现,通常安装到Apache Tomcat或 Microsoft .NET中以处理入站HTTP请求。插件在到达应用程序代码之前过滤请求,将检测规则应用于收到的每个入站请求。匹配已知攻击特征的请求被阻止。这是一种相对简单的将保护改造到应用程序环境中的方法,可以有效地阻止恶意请求,但它没有提供其他类型集成可能的深入应用程序映射。

  • 库/JVM替换:通过替换标准应用程序库、JAR文件甚至Java虚拟机来安装某些RASP产品。这种方法基本上劫持了对底层平台的调用,无论是库调用还是操作系统。RASP平台被动地“看到”对支持功能的应用程序调用,在请求被拦截时应用规则。在此模型下,RASP工具可以全面了解应用程序代码路径和系统调用,甚至可以学习状态机或序列行为。更深入的分析提供上下文,允许更细粒度的检测规则。

  • 虚拟化或复制:这种集成有效地创建了应用程序的副本,通常作为虚拟化容器或云实例,并在运行时检测应用程序行为。通过监控应用程序代码路径,请求结构、参数和 I/O 行为,将规则应用于应用程序请求,并阻止恶意或格式错误的请求。

RASP常见用例

通常情况下,使用RASP可以帮助DevOps团队和开发人员实现如下四点:

1.业务程序运行时情境安全

应用程序安全测试(AST)工具有助于在开发测试阶段发现漏洞,但是当应用程序在运营的生产环境中时,缺少漏洞的检测防护能力;而RASP技术将保护引擎植入应用程序内部,基于行为进行上下文威胁的实时检测和防御,不依赖外部防护设备就可以保证业务运行时安全。

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

企业在使用DAST和IAST等应用程序测试技术的同时,应该在软件开发过程中使用RASP保护应用程序来完成安全软件开发生命周期(S-SDLC)。例如,在安全编码阶段当出现安全漏洞,并不确定需要修复哪些漏洞?应该使用白名单还是黑名单的方法?哪些字符应该在输入数据中被删除或允许?等等诸多问题时,修复已经被利用的漏洞并将RASP插件放入应用程序的部署包中,可以降低安全漏洞发生的风险,确保代码的构建过程安全完成。

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

由于开源软件使用比较便利,众多软件开发人员在应用程序的开发中使用了此类软件,但是由于开源软件中的安全漏洞比较严重,缺失系统的安全审查机制,使得软件供应链攻击呈现上升趋势。而RASP技术在不需要修改代码的情况下,可以实时保护开源软件和第三方代码中的漏洞。

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

当下,应用程序主要依赖外部保护,如WAF或IPS(入侵防御系统 Intrusion Prevention Systems),因此需要在应用程序中构建安全特性,以便在运行时保护自己。RASP 可以在应用程序运行时检测内存中写的数据或检测未经授权的数据库访问。而且,RASP具有实时能力,可以采取诸如终止会话、发出警报甚至退出进程等操作。这些功能使RASP可以和企业内现有的WAF进行互补。

RASP的好处

由于RASP在服务器上运行,因此只要应用程序开始运行,它就会启动。一旦应用程序开始运行,RASP 就会监视网络的攻击面以检测新出现的威胁并保护它免受任何负面的内部或外部行为的影响。

1、RASP可以提供有关攻击者准确、可见的信息,及时溯源,为保护应用程序提供了可见性。

2、只要Web应用程序开始运行,RASP会自动启动运行,保护系统的安全性。以防止任何威胁行为,包括网络嗅探、篡改代码、逆向工程和未经身份验证的数据泄漏。

3、与Web应用程序防火墙 (WAF) 不同,RASP具有更高的准确性,因为它可以洞察应用程序逻辑和配置、事件和数据流、执行的指令和数据处理。而且在预生产中很容易部署,能成功阻止攻击。

4、RASP可随应用程序在本地、云、虚拟环境或容器中进行部署,为DevOps提供安全特性。RASP 在大规模分布式环境中的优势在于,它可以轻松地跨环境部署,并将其保护调整到安装它的每个应用程序或微服务。无需更改代码或配置,因为嵌入应用程序的微代理会自动适应服务堆栈。

5、RASP提供篡改检测功能,并将保护功能添加到应用程序的运行时环境中,从而提高了针对恶意攻击的保护级别。且拥有查看基于边界的解决方案无法查看的横向或“东西向”流量的能力。

6、RASP 可以通过适当的可见信息在测试工作中帮助和补充开发团队。通过使用仪表板,应用程序威胁情报可以与提供的有关已测试部分、最不安全部分、存在安全威胁的代码行、交易信息等的信息相结合。

应用场景

根据前面讲到的RASP安全特性我们可以看出来,RASP为应用程序增加了威胁可见性和安全控制,帮助企事业单位持续发现应用威胁并实时阻止。那么,此技术又比较适合应用于什么场景中呢?

1、持续攻防演练

网络攻防演练活动兴起以来,不断衍生出攻、防技术,尤其是云原生、AI等新技术的不断应用,更多复杂、难预见的攻击手段应运而生。对于防守方而言,不能单纯依赖于无法看到应用程序内部威胁的流量嗅探边界(IPD/IDS、WAF)的解决方案,需要一种更有效的方法以更高的可见性监控安全事件。而RASP工具将防护引擎嵌入到应用内部,可以在不依赖请求特征的情况下,准确的识别代码注入、反序列化等应用异常,弥补了传统防护工具的缺失;同时,又可以对威胁事件进行实时监控和响应,利于在攻防对抗中及时进行策略调整,及时应对。

2、紧急漏洞防御

0day漏洞是比较常见且难以防御的一类威胁,一旦被发现将对系统造成不可估量的损失。RASP代理位于应用程序内部,在运行时根据应用程序代码的上下文检查请求负载,以确定请求是正常请求还是恶意应用程序来保护自己,可以更好的应对此类安全威胁。此外,也包括一些应急的漏洞,都有较好的防御效果。

3、高级威胁防御

“道高一尺魔高一丈”,安全防护措施的不断加强,势必引起攻击者执行新的攻击策略。诸如无文件攻击、WebShell攻击、内存马攻击等攻击手段不断被应用,而传统的安全防护工具容易被绕过。RASP基于行为分析技术,通过规则匹配、污点追踪的检测方法,可以对此类攻击事件进行实时监测,发现威胁数据源,做好安全防御。

由于RASP的内容比较多,本篇文章简单为大家讲述了部分内容,后面将会慢慢更细致的将RASP技术分享给大家,希望大家对该技术有更深刻的了解和认知。

参考链接:

  • https://securosis.com/blog/understanding-and-selecting-rasp-technology-overview

  • https://info.dovermicrosystems.com/blog/what-is-rasp

更多详情可参考云鲨RASP官方网址:悬镜云鲨 RASP SaaS | 应用安全防护 | 0day 防御| 攻防演练 | 高级威胁防御 (xmirror.cn)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分享!一文简析RASP技术 的相关文章

  • 使用 Eclipse 将具有外部依赖项的 Java 项目导出到 jar

    有没有一种简单的方法可以将 Java 项目 包括其所有外部依赖项 导出到标准 jar 文件 我开发了一个使用多个 Apache 库的 SDK 我希望能够将该项目作为单个 jar 发布 到目前为止我找到的这个问题的答案要求将项目打包为 Run
  • Java:无安全管理器:RMI 类加载器已禁用

    您好 我有 RMI 应用程序 现在我尝试从客户端调用服务器上的一些方法 我有以下代码 public static void main final String args try Setting the security manager Sy
  • 无法将 INode 类型值分配给 类型变量。为什么?

    我想知道为什么以下代码无法工作 public static
  • 为什么我的 @OneToMany 属性出现主键违规?

    我有一个实体 Entity public class Student GeneratedValue strategy GenerationType AUTO Id private long id OneToMany private Set
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • 如何修复maven错误JAVA_HOME环境变量未正确定义

    当我在虚拟环境中检查maven的版本时 出现以下错误 The JAVA HOME environment variable is not defined correctly This environment variable is need
  • 如何从 Java 中“double”类型的值中删除小数值

    我正在调用一个名为 calculateStampDuty 的方法 它将返回 财产需缴纳的印花税金额 百分比计算有效 很好 并返回正确的值 15000 0 但是 我想显示该值 前端用户只是 15000 所以只想删除小数点和任何前面的值 此后
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • Hazelcast:连接到远程集群

    我们有一组 Hazelcast 节点 全部运行在一个远程系统 具有许多节点的单个物理系统 上 我们希望从外部客户端连接到该集群 一个 Java 应用程序 它使用如下代码连接到 Hazelcast ClientConfig clientCon
  • EJB 中 @Stateless 相对于 @Singleton 的真正用例是什么

    如果我正确理解EJB Singleton实际上与普通Java中的Singleton相同 也是spring中的单例 gt 一个实例 每个调用同时通过同一个实例 Stateless 声明一个 bean 它可以 但不得 具有多个实例 但限制是一个
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H
  • Java 常量枚举[重复]

    这个问题在这里已经有答案了 可能的重复 理解 Java 中的枚举 https stackoverflow com questions 1419835 understanding enums in java 为什么我们应该使用枚举而不是 Ja
  • Java 中通用方法参数的 getClass()

    以下 Java 方法无法编译
  • 如何在启用嵌入时间戳和 LTV 的情况下签署 PDF?

    我正在尝试签署启用了时间戳和 LTV 的 pdf 以便它在 Adob e Reader 中显示如下 在英语中 这意味着 签名包含嵌入的时间戳 和 签名启用了 LTV 这是我正在使用的代码 PrivateKey pk get pk from
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 使用 Commons 或 Guava 将文本文件转换为 Java Set

    我想将文件中的每一行加载到 HashSet 集合中 有没有一种简单的方法可以做到这一点 怎么样 Sets newHashSet Files readLines file charSet 使用番石榴 参考 文件 readLines http
  • 设置 Firefox 配置文件以使用 Selenium 和 Java 自动下载文件

    我想使用 Selenium WebDriver 和 Java 验证文件下载 要下载的文件为 PDF 格式 当 WebDriver 单击 AUT 中的 下载 链接时 Firefox 将打开以下下载确认窗口 我希望 Firefox 自动下载文件
  • AES 密钥是随机的吗?

    AES 密钥可以通过此代码生成 KeyGenerator kgen KeyGenerator getInstance AES kgen init 128 but 如果我有一个 非常可靠 的生成随机数的方法 我可以这样使用它吗 SecureR
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • 龙书笔记(5)

    今天说下颜色和光照 一 颜色 1 颜色表示 RGB数据可用2种不同的结构表示 1 D3DCOLOR eg D3DCOLOR brightRed D3DCOLOR ARGB 255 255 0 0 四个参数的顺序是 Alpha r g b 2
  • 用户界面的需求分析与设计原则

    一 引言 用户界面是人与计算机之间的媒介 用户通过用户界面来与计算机进行信息交换 因此 用户界面的质量 直接关系到应用系统的性能能否充分发挥 能否使用户准确 高效 轻松 愉快地工作 所以软件的友好性 易用性对于软件系统至关重要 目前国内软件
  • python课程设计——单项选择标准化考试

    功能要求 本系统采用序列或字典保存单个试题 每个数据应当包括 题干 选项 答案等信息 本系统功能 1 试题录入 可以随时添加试题 2 试题抽取 每次从试题库中可以随机抽出N道题 N由键盘输入 3 答题 用户可实现输入自己的答案 4 自动判卷
  • MySQL基础语句

    文章目录 前言 帮助信息 注释 数据库操作类语句 连接数据库 查看数据库列表 展示所有数据库 查询当前数据库叫啥 创建数据库 删除数据库 修改数据库编码格式 使用某个数据库 查看当前数据库下所有数据表 表操作 表的约束 查询表结构 查询某个
  • 看懂低压降稳压器(LDO)一篇就够了

    电源管理是电子系统中的的一个基本模块 智能手机 电脑和我们所熟知的绝大多数电子产品都需要这个模块去实现本身的功能 随着人们对电子产品便携性的追求 计算能力的增长 以及传感器的多样化 电源管理设计有了更高的要求 为了满足新的电源设计上的更高的
  • ctfshow php特性

    web89 要求使用get方式传递数据 intval函数如果数组里有值 就输出1 构造payload num 0 web90 这里使用了 intval num 0 函数调用 其中第二个参数为 0 表示使用合适的进制进行转换 intval 函
  • 巴比特

    摘要 元宇宙变得越来越重要 因为它为企业提供了一种与来自世界各地的用户进行交流和协作的新途径 从小企业到大公司 每个品牌都可以踏入虚拟世界 并从中获益 那么一般的企业如何将业务转移到元宇宙呢 这7个步骤了解一下 热点资讯 Meta 宣布大幅
  • 偏微分方程(Partial Differential Equation II)

    数学物理方法 正交曲面坐标系下的分离变量 球函数 勒让德方程的解 勒让德函数 连带勒让德函数 球谐函数 柱函数 贝塞尔方程的解 贝塞尔函数 球贝塞尔方程 偏微分方程 Partial Differential Equation I 偏微分方程
  • php网页如何适应手机端,PC网页的移动端适配兼容性应该如何实现自动适配

    概念 移动时代的今天 现如今随着智能手机的不断发展 移动端搜索的比例也在不断增加 而传统的PC站点在手机端的用户体验度很差 这容易导致大量用户的流失 所以做一个对应的手机站是非常有必要的前端代码的编写永远逃不过 兼容 二词 从前PC时代 因
  • 第四届“泰迪杯”数据分析技能赛通知

    各有关单位 为推广我国高校数据分析实践教学 培养学生数据分析的应用和创新能力 增加校企交流合作和信息共享 提升我国高校的教学质量和企业的竞争能力 由泰迪杯数据分析技能赛组织委员会主办 广东泰迪智能科技股份有限公司承办 广东省工业与应用数学学
  • cgminer 2.2.4 参数详解!

    日期 2012 02 13 分类 Cgminer 版权声明 转载时请以超链接形式标明文章原始出处和作者信息及本声明 http bitcoin blogbus com logs 192244223 html cgminer2 2 4已经发布
  • 用Cookie添加登录界面的记住密码功能

    在网上看到很多关于cookie记录登录密码的功能 但是大部分都是jsp界面 最近刚好有个项目用到了cookie功能 所以编写了这个介绍 补全一下 1 第一步 首先需要在登录界面中写一个form表单 这个不用多说
  • kubernetes理论概念详情(K8S)

    1 优势 2 四组基本概念 3 核心组件 4 其他概念 5 基本命令
  • frp安全内网穿透,安全远程windows,暴露服务

    目录 概述 公网服务器端 内网Windows客户端 外网Windows客户端 附加 暴露多台内网Windows客户端 附加 暴露服务 总结 概述 frp 是一个专注于内网穿透的高性能的反向代理应用 支持 TCP UDP HTTP HTTPS
  • pip在线安装selenium

    最近发布了selenium3 0 但是会有很多莫名其妙的报错 原来可执行的代码也报错了 所以要重新安装回2 0 一 2 7 10之后的python安装包自带了Pip和setuptools 如果你没有安装可以去官网单独下载然后安装 a 下载地
  • js取值方式

    1 根据class id 取 input 标签的value 值 jQuery className val idName val javaScript document getElementById idName value 2 根据clas
  • GPRS本质论

    GPRS DTU最基本的用法是 在DTU中放入一张开通GPRS功能的SIM卡 DTU上电后先注册到GPRS网络 然后通过GPRS网络和数据处理中心建立连接 这条连接涉及了无线网络运营商 因特网宽 带供应商 用户公司的网络情况 以及用户的电脑
  • 使用ELK收集网络设备日志的案例

    简介 随着机房内的服务器和网络设备增加 日志管理和查询就成了让系统管理员头疼的事 系统管理员遇到的常见问题如下 1 日常维护过程中不可能登录到每一台服务器和设备上去查看日志 2 网络设备上的存储空间有限 不可能存储日期太长的日志 而系统出现
  • 解决github下载慢的问题可以提速【1M/s】

    1 问题描述 在github上下载项目时 下载速度经常都是20k s的速度下载 项目过大时还经常会显示网络出错导致下载失败 2 原因 我想对于经常使用git的人来讲 很可能已经知道了 对于新手刚接触git的人来讲 可能你只知道github
  • 分享!一文简析RASP技术

    众所周知 log4j 2 x安全事件引起了轩然大波 对于信息安全从业者来讲可以称之为 家喻户晓 与之同时引起大家关注的是RASP Runtime application self protection 技术 该技术在2014年Gartner