RASP技术是什么,为什么这么关键

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

RASP是一种内置或链接到应用程序环境中的安全技术,与应用程序融为一体,实时监测、阻断攻击,使程序自身拥有自我保护的能力。那么,RASP技术是如何应用、优势好处又有哪些呢?

什么是运行时应用程序自我保护(RASP)

运行时应用程序自我保护(RASP)是一种在应用上运行的技术,在应用程序运行时发挥作用,旨在实时检测针对应用程序的攻击。

一旦应用程序开始运行,RASP可以通过分析应用程序的行为和这种行文的上下文来保护它不受恶意注入或行为的影响。通过使用应用程序不断地监控其行为,攻击可以在不需要人工干预的情况下立即被识别和缓解。

运行时应用程序自我保护(RASP)将安全性整合到运行中的应用程序中,无论该应用程序在哪个服务器上。它监测从应用程序到系统的所有请求,确保他们是安全的,并在应用程序中直接验证数据请求。Web和非Web应用程序都可以受到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可以帮助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工作在应用层,因此每个产品都需要以某种方式与应用程序集成。监控应用程序使用(调用)或执行(运行时)的方法有多种,每种方法的部署略有不同,收集的应用程序运行方式略有不同。

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

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

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

运行时应用程序自我保护(RASP)如何工作?

PART.1

当应用程序中发生安全事件时,RASP会控制应用程序并修复问题。在诊断模式下,RASP只会在出现问题时产生警报。在防护模式下,它会尝试解决这个问题。例如,面对像是SQL注入攻击的行为,它可以阻止对数据库的指令执行。RASP可以采取的其他动作包括结束用户的会话,停止应用程序的执行,或向用户或安全人员发出警报。

PART.2

软件开发人员可以通过应用程序源代码中的函数调用来访问RASP技术,这种方法更为准确,因为开发人员可以指定他们想要保护应用程序的那些部分,比如登录、数据库查询和管理管理。或者,软件开发人员通过获取一个完整的应用程序,并将RASP打包,使应用程序通过按一个按钮就能得到保护。无论采用什么方案安装RASP,其结果就像是在应用程序的运行时上下文装备了一个Web应用程序防火墙。这种与应用程序的紧密连接意味着,RASP可以根据应用程序的安全需求进行微调。

运行时应用程序自我保护(RASP)的主要功能是:

1.应用程序保护:在不中断合法应用程序使用的情况下,准确地阻止对应用程序漏洞的利用。

2.应用程序威胁情报:为安全团队提供直接到代码的可视性,了解谁在攻击、他们使用的技术以及他们的目标应用程序。

PART.3

运行时应用程序自我保护(RASP)在集成Web或非Web应用程序时分析其行为和上下文,保护软件不受恶意输入。RASP通过应用程序不断监控其行为,在不需要人工干预下,协助实时识别和减轻攻击。

运行时应用程序自我保护与应用程序运行时环境集成,无论它位于或在何处创建,例如服务器、虚拟机、容器,或者无服务器功能,都能与应用程序的运行时环境一起工作。

此外,RASP 的检测和保护功能不影响应用程序的体系结构、设计和实现。RASP 通过检查应用程序中特定的、具有战略意义的堆栈位置上的所有请求,确保漏洞不被利用。它还可以直接在应用程序内验证数据请求。因此,很容易在应用程序内部提供运行时保护,保护它免受威胁。

传统的安全工具,如虚拟专用网络(VPN)、WEB 应用防火墙和网络访问控制(NAC),配置起来非常耗时,并且,通常情况下,开发人员都不参与这些配置。RASP 是可以让开发人员参与安全过程,并保护他们在运行时创建的应用程序的一种直接方式。

这意味着经过认证的用户拥有广泛的网络访问权限,增加了受侵害区域的范围,并使大范围的入侵成为可能。即使恶意人员渗透了防火墙和其他外围软件,RASP 也可以帮助保护应用程序。

 当攻击发生时,RASP 可以阻止攻击,但你可以配置它来标记攻击。当可用性是一个重要的指标时,标记和生成警报而不是防止攻击就显得尤为重要。可以通过定义规则或策略来决定阻止或允许什么。这就是为什么你需要定义这些策略来避免正确地阻止合法的流量。

运行时应用程序自我保护(RASP)的好处是什么?

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

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

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

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

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

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

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

使用运行时应用程序自我保护(RASP)解决方案的原因

1.RASP技术通过监视输入和阻止可能允许攻击的输入来增强应用程序的安全性。它还保护运行时环境不受未经授权的更改和篡改。

2.RASP可以防止被利用,并可以阻止任何显示恶意行为的流量,如 SQL 注入、漏洞和机器人。此外,当它检测到威胁时,它可以注销用户。它还可以向安全人员发出警报。

3.RASP可以直接嵌入到应用中。因此,开发人员很容易部署,也能很自然地监控应用程序行为并保护自身。此外,它还能高精度地拦截攻击,区分攻击和合法请求,减少误报。

4.当正确使用 RASP时,应用程序已经被设计为可以自我保护。这对安全团队是有益的,因为它允许安全工程师只关注已经报告的问题。

5.RASP 可以更好地防止零日攻击(软件漏洞被发现当天发生的网络攻击),也可以在应用程序的补丁长时间不可用时提供短期修复。

6.RASP 提供更低的资本支出和运营成本。这是因为 RASP 解决方案快速有效地阻止攻击,直到底层漏洞被修复。因此,它的部署和操作成本比 Web 应用程序防火墙(WAF)要低得多。此外,RASP 技术观察应用程序正在做什么,因此不需要同样的调优、模型构建、验证或人力资源。

7.RASP 已经为云计算和 DevOps 做好了准备。RASP 非常适合敏捷开发、云应用和 web 服务。它通过不需要返工的保护来加速敏捷开发,不像 WAF 解决方案需要不断调优。此外,RASP解决方案观察实际的应用程序行为,因此不需要重新校准统计和其他模型。

8.RASP 提供了前所未有的应用程序监控。通过控制整个应用,RASP 简化了应用安全监控。当应用程序的相关部分被访问或满足其他条件时,RASP 策略可以生成日志事件。


应用场景

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

1、持续攻防演练

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

2、紧急漏洞防御

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

3、高级威胁防御

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

而容器安全能够很好集成到云原生复杂多变的环境中,如PaaS云平台、OpenShift、Kubernetes、Jenkins、Harbor、JFrog等等。通过提供覆盖容器全生命周期的一站式容器安全解决方案,德迅蜂巢可实现容器安全预测、防御、检测和响应的安全闭环。核心架构理念在于:

在开发阶段(Dev),遵循“安全左移”原则,做到上线即安全

在运行阶段(Ops),遵循“持续监控&响应”原则,做到完全自适应

主要从安全左移和运行时安全两个阶段,在云原生的全生命周期过程中,提供原生的、融合的安全能力。

一、资产清点

可以清晰地盘点工作负载本身的相关信息,此外,还能够实现不同工作负载之间的关系可视化,帮助运维和安全人员梳理业务及其复杂的关系,弥补安全与业务的鸿沟。

1.细粒度梳理关键资产

2.业务应用自动识别

3.资产实时上报

4.与风险和入侵全面关联

二、镜像扫描

镜像检查能力已经覆盖到开发、测试等多个环节中,可快速发现镜像中存在的漏洞、病毒木马、Webshell等镜像风险。

1.覆盖容器全生命周期

2.全方位检测

3.镜像合规检查

4.X86、ARM 架构镜像全栈适配

三、微隔离

微隔离原生自适应容器多变的环境。通过对访问关系的梳理和学习,提供自适应、自迁移、自维护的网络隔离策略,帮助用户快速、安全地落地容器微隔离能力。

1.业务视角展示网络拓扑关系

2.云原生场景的隔离策略

3.适配多种网络架构

4.告警模式业务0影响

四、入侵检测

通过多锚点入侵监测分析,实时监测容器中的已知威胁、恶意行为、异常事件,监测到入侵事件后,对失陷容器快速安全响应,把损失降到最低。

1.威胁建模适配容器环境

2.持续地监控和分析

3.威胁告警快速响应处置

4.提供多种异常处理方式

五、合规基线

构建基于CIS Benchmark的最佳安全操作实践检查,帮助企业实施和完善容器合规规范,可实现一键自动化检测,并提供可视化基线检查结果和代码级修复建议。

1.CIS标准

2.一键自动化检测

3.基线定制开发

4.代码级修复建议

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值