什么是运行时应用程序自我保护(RASP)Runtime Application Self-Protection
说明
在企业中部署的应用程序位于由网络,操作系统和数据库组成的复杂且分散的环境中。这通常会导致应用程序的安全体系结构分散,再加上缺乏精确且可靠的安全路线图。运行时应用程序自我保护(RASP)的概念已得到很大发展,以解决开发人员面对威胁时采用的即席方法。
最新数据表明,有38%的iOS移动应用程序和43%的Android移动应用程序带有高风险漏洞。由于安全架构的弱点,其中很大一部分(针对iOS的74%和针对Android的57%)会影响移动应用程序。不安全的进程间通信也是38%的Android应用程序和22%的iOS应用程序中发现的漏洞。
开发人员没有解决应用程序中的设计缺陷,而是倾向于采用静态和传统的AppSec方法,这些方法通常会因复杂的安全威胁而失败。这种分散的安全控制层通常成为应用程序,基础结构和安全层上多个组件的瓶颈,但是随着RASP解决方案的到来,应用程序安全性不再是对威胁的随意反应。
什么是RASP?
运行时应用程序自我保护(RASP)是应用程序安全生态系统中的一项创新,可通过提供对隐藏漏洞的更多可见性来处理对软件应用程序层的运行时攻击。它本质上是一种安全软件,可与应用程序或其运行时环境集成在一起,并不断拦截对应用程序的调用以检查其安全性。RASP软件无需等待威胁影响应用程序。相反,它会主动在进入应用程序的流量中寻找恶意软件,并防止在应用程序内部执行欺诈性呼叫。
通过留在应用程序中,RASP解决方案消除了已知漏洞,并保护了应用程序免受未知的零日攻击,而无需任何人工干预。因此,与传统的安全方法(如Web应用程序防火墙(WAF))相比,RASP提供了与概念上不同的安全性范式,后者仅通过阻止所有可疑流量来保护应用程序。
为什么需要RASP?
应用程序上的攻击媒介已经变得如此智能,以至于只有通过人工干预才能轻易检测到它们。一个看似无害的HTTP请求(模仿真实的传入流量)可用于使应用程序崩溃并危及关键业务流程。现代应用程序使用API,JSON和XML格式与用户,后端服务器和数据库进行交互。如果这些应用程序和服务器组件的安全性不足,则黑客可以轻松控制应用程序代码和/或用户数据。
由于对功能升级的持续要求,软件公司采用敏捷开发模型已使现代安全协议成为该应用程序整体架构必不可少的。因此,由于RASP实时阻止了攻击,因此它是对这种持续要求和威胁感知的完美答案。
传统的安全方法,例如Web应用程序防火墙(WAF),通常位于Web应用程序的前面,检查传入的HTTP请求流量以了解已知的攻击有效负载和异常使用模式。WAF仅在已知攻击且可以在WAF中建立防火墙规则的情况下才能很好地工作。但是,对于新出现的威胁,它变得无效,因为开发人员无法编写阻止它们的规则。另一方面,RASP集成在应用程序中,不仅可以检测威胁矢量,还可以采取措施阻止威胁矢量。RASP的无缝,无代码部署和集成也使对应用程序整体性能的影响降到了最低,因此使其成为必备的安全解决方案。
RASP如何工作?
RASP层与应用程序代码并排放置,并监视到服务器和应用程序API的传入流量。一旦检测到任何威胁源,RASP就会应用运行时保护措施并保护应用程序免受恶意行为的侵害。所有请求都通过位于应用程序和服务器之间的RASP层进行审核,而不会影响应用程序的性能。
随着云计算的出现,发现传统的外围解决方案缺乏全面保护托管在云上的应用程序的能力。另一方面,可以将RASP程序集成为框架或模块,以与应用程序的代码一起使用。RASP有时与动态应用程序安全测试结合使用,它具有强大的功能,不仅可以像WAF一样检测威胁矢量,而且还可以采取措施来抵消允许执行威胁时可能造成的损害。根据实现的不同,这可能意味着简单地终止用户会话或在运行时分析流量并监视漏洞对应用程序的影响。由于RASP靠近应用程序内部的易受攻击的代码,因此触发的误报更少。
部署RASP的好处
RASP技术的最大好处是它可以在应用程序内部运行,而不是像防火墙一样作为隔离的网络保护方法保留。此特性使RASP可以提供上下文服务-从代码库,API,系统配置,运行时数据,逻辑流等中获取必要的信息。
RASP具有广泛的保护功能以及在识别和处理安全威胁方面的更高准确性,具有许多优势:
- RASP解决方案具有成本效益且物有所值,并且被认为比更通用的传统Web应用程序防火墙(WAF)解决方案更具针对性。
- RASP带来了机载直观的方式来处理应用程序安全性,这恰恰是因为RASP驻留在应用程序之内而不是没有。这将误报限制在最低限度,并使全面的安全解决方案成为当今的现实,因为保护关键的API和Web应用程序免受WebSocket连接和其他第三方接口的影响对于构建健壮的安全框架至关重要。
- 恪守格言“预防胜于治疗”,RASP的核心是密切监视应用程序是否存在不良行为,包括网络嗅探,篡改代码,反向工程和未经身份验证的数据泄漏。由于大胆的攻击已成为一种惯例,而不是例外,因此,持续监视和快速行动以解决防呆方法中的漏洞,以防范特立独行的黑客。借助默认情况下具有事件管理和事件日志记录功能的当代RASP解决方案,可见迹线可帮助企业了解在何处进行投资以获取最大回报。
- 与敏捷环境中的持续集成和持续交付(CI / CD)方法保持一致,RASP在部署了云的敏捷应用程序的整个支点中都处于良好的位置。RASP解决方案具有可扩展性,并且通常不受攻击源的影响–无论是来自API还是来自Web服务,数据库SQLite等。在不断变化的环境中构建持久的安全性,并与功能和特性保持同步,确实是一项艰巨的任务。RASP的信息透明性和持续监控非常适合通过开发和安全团队之间的协调来帮助敏捷驱动的项目成功交付。
- 渗透测试是检测应用程序中的安全漏洞以使其免受将来的安全威胁的最受追捧的技术之一。RASP可以通过信息可见性来补充开发团队的笔测试工作。通过仪表板,可以将应用程序威胁情报与有关已测试部分,大多数不安全部分,存在安全漏洞的确切代码行,交易信息等信息结合在一起。这对于跟踪笔测试工作并帮助应用程序所有者确定和确定至关重要将其资源调整为关键业务流程。
- 通过使用内置的事件记录兼响应解决方案,RASP被发现可以有效地应对应用层攻击。RASP不仅能够解决已知漏洞,其实际实力还来自其应对未知安全威胁的能力。RASP允许在应用程序中记录自定义事件/触发,从而从不破坏业务关键组件。
- 开发团队通常对实现对应用程序性能产生不利影响的安全解决方案持怀疑态度。AppSealing的RASP方法消耗最少的资源,其性能延迟通常在可接受范围内。与通常会影响应用程序性能的传统安全工具相比,RASP安全层对应用程序性能的影响最小。
- 说服利益相关者说服要采用的安全策略,并且投资回报从未像使用RASP一样容易,因为RASP具有移动环境友好性并为应用拥有者的自带设备(BYOD)策略提供支持公司。当RASP解决方案的自我保护情报在后台运行时,让利益相关者能够清楚地了解其应用程序在处理安全威胁方面所处的位置将不是一件容易的事。
如果结合其他AppSec框架(例如笔测试,WAF等)在适当的情况下应用,则RASP可以证明是您的公司迫切需要将您的应用程序推向更高安全性的基础的游戏规则改变者。
RASP部署模式有哪些?
RASP通常采用以下模式,并且可以根据要求以任何一种方式进行部署:
- 关闭模式,既不提供 监视功能也不提供呼叫阻止功能。在这里,所有请求都可以简单地传递,而RASP解决方案不会采取任何措施。
- 监视/诊断模式,其中RASP程序监视应用程序中的威胁,记录日志并发出警报,但不阻止请求;
- 阻止模式, RASP程序前进一步,阻止所有非法请求;
- 在周界模式下进行阻止,类似于阻止模式,不同之处在于,甚至为RASP解决方案指定了某些预定义的规则和必需的操作,以阻止攻击,甚至在应用程序对其进行处理之前也是如此。如果攻击媒介与指定的规则不匹配,则RASP解决方案将对其进行报告并将其阻止。在这种模式下,RASP程序的行为类似于WAF。
RASP方法有哪些不同?
RASP已演变成一个成熟的应用程序内安全性概念,它使开发人员可以通过多种方式来消除威胁。根据开发人员希望在应用程序或服务器中实现RASP安全层的方式,他们使用以下四种方法之一:
- Servlet过滤器,SDK和插件已实现到Apache Tomcat或Web服务器中,以便在传入的HTTP请求和数据有效负载到达应用程序代码之前对其进行监视和检查。那些类似的漏洞被阻止,并且RASP根据部署模式采取纠正措施。
- 二进制工具包括将监视和控制元素构建到应用程序中,前者标识正在运行的应用程序中的安全事件,而后者记录此类事件的日志并阻止它们。
3. JVM的替换包括用RASP层替换标准库– JAR或JVM(对于Java)– RASP层,侦听对支持库的调用并在拦截调用时应用规则。因此,RASP具有应用程序代码库的总体视图,并且系统调用路由框架使RASP通过被动监视应用程序调用来了解机器行为和序列流。
4. 虚拟化也称为容器化运行时保护,它通过使用规则来控制应用程序的保护方式,来创建应用程序副本并在副本上的运行时中检测应用程序的行为。RASP监视并学习应用程序代码路径,逻辑结构,参数化和生成的输出等,然后将其应用于应用程序请求。这有助于区分清晰的请求与恶意的请求,并允许采取适当的补救措施。
选择RASP解决方案时应考虑什么?
开发人员应仔细选择RASP解决方案,并在以下参数上权衡:
- 它应该易于部署并且需要最少的维护,否则,当威胁的性质发生变化时,它可能会失效。
- 它应该具有相当广泛的能力来检测和处理范围广泛的传统和未知漏洞
- 它应该对应用程序的性能指标产生最小的影响,否则安全层将失去所有意义。没有开发者会为了获得额外的安全功能而牺牲用户的舒适度
- RASP解决方案应准确无误,以免阻塞真正的用户流量
- 它应与WAF等其他安全工具无缝协作
- 它应该为多种框架和语言提供支持
- RASP解决方案必须是自治的,并通过全天候监视为云分析提供支持,并阻止恶性请求
- 最重要的是,它应该提供有关所有已处理的运行时威胁的全面且可操作的报告,并从应用程序的运行时行为中学习,以动态保护其免受被动和主动事件的侵害。
RASP的用例
重要的是要了解RASP可以在哪里应用,以了解其在现代安全框架中的全面性和适用性。以下是一些用例:
- RASP可以处理对应用程序中已知和未知漏洞的攻击,包括CSRF,CSS攻击,SQLi,HTTP方法篡改,Regex DOS等。
- 应用程序开发的敏捷性和分布式性日益增强,使得RASP成为一种特别有效的安全解决方案。在开发团队识别和修复漏洞时,RASP可以充当保护层,在CI / CD DevOps和期限紧迫的敏捷工作流中尤其有用。
- RASP对于保护关键的API变得特别方便,这些API通常比典型的网站复杂,并且经常使用批注将数据路由到代码库中的方法以进行适当的参数设置。API通常使用非HTTP协议,例如WebSocket。RASP在应用程序层工作,因此,在完成网络协议和数据解析之后,它可以保护API免受相关攻击。
- RASP还可以保护应用程序环境免受数据库,文件共享接口,第三方连接,数据源和套接字连接的影响。
- 应用程序威胁情报对于详细了解正在遭受攻击的应用程序,实施攻击的技术以及对立即修复有用的详细应用程序级别详细信息至关重要。这种可视性对于将来对内部和外部企业应用程序进行验证都是必不可少的。
- RASP提供增强的安全日志记录,以识别,调试和诊断安全事件对应用程序的影响。
结论
结合AppSec测试和WAF解决方案,RASP解决方案可以证明是组织快速有效地应对复杂威胁形势所需的变革者。借助RASP的监视,流量分析和学习功能,可以为应用程序配备RASP层,该层具有阻止高精度攻击的能力。
超越传统的安全方法;利用RASP进行更快,更具成本效益的应用内保护。
参考
https://www.appsealing.com/what-is-runtime-application-self-protection/
https://www.onespan.com/sites/default/files/2019-11/OneSpan-A4-Datasheet-App-Shielding.pdf
什么是运行时应用程序自我保护(RASP)Runtime Application Self-Protection相关推荐
- 理解和选择运行时安全自保护-RASP
定义RASP 运行时应用自我保护(RASP)是一种嵌入到应用程序或应用程序运行时环境的安全技术,在应用层检查请求,实时检测攻击和滥用. RASP产品通常包含以下功能: 通常在应用程序上下文中进行解包和 ...
- 使用gdb调试运行时的程序小技巧 -转
下面介绍我调试时经常遇到的三种问题,如果大家也有类似的问题交流一下解决方法: 情景1:在不中止程序服务的情况下,怎么调试正在运行时的程序 情景2:需要同时看几个变量的值或者批量查看多个core文件的堆 ...
- 安装oculus运行时出现问题_PS 2021安装失败?运行时提示程序错误?解决办法全在这里...
PS 2021 安装时提示此时无法安装? PS 2021 运行时提示程序错误? 解决办法全在这里! 由于PS 2021的正式版本出来了,所以这几天问紫枫最多的问题就是这两个问题,一个就是在安装过程中提 ...
- 云原生安全之RASP技术(应用运行时自我保护)
文章目录 一.背景 1. WAF和RASP 2. waf和rasp是非此即彼的吗? 二.RASP技术(应用运行时自我保护) 1. 应用安全测试SAST.IAST.DAST 和 RASP区别 SAST, ...
- 运行时应用自我保护(RASP):应用安全的自我修养
应用程序已经成为网络黑客想要渗透到企业内部的绝佳目标.因为他们知道如果能发现并利用应用程序的漏洞,他们就有超过三分之一的机会成功入侵.更重要的是,发现应用程序漏洞的可能性也很大.Contrast Se ...
- Cocoa 框架 For iOS(一) 框架的介绍,Objectivie-C运行时能力的解析等 (转载)
http://blog.csdn.net/totogo2010/article/details/8081253 Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助. ...
- Swift和Objective-C的运行时编程
\ 本文要点 \\ 运行时编程是Objective-C编程人员的重要工具,它提供了一些系统框架的基础.\\t 尽管运行时编程的确移除了不少的样板文本(Boilerplate),使开发人员可以编写更为精 ...
- .NET 运行时设置
.NET 运行时设置 .NET 5+(包括 .NET Core 版本)支持使用配置文件和环境变量在运行时配置 .NET 应用程序的行为.如果出现以下情况,则运行时配置是一个不错的选择: 你不拥有或控制 ...
- 白话C++系列(27) -- RTTI:运行时类型识别
http://www.cnblogs.com/kkdd-2013/p/5601783.html RTTI-运行时类型识别 RTTI:Run-Time Type Identification. 那么RT ...
- 编程环境中Runtime(运行时)的三个含义
编程环境中Runtime(运行时)的三个含义 转自:https://www.zhihu.com/question/20607178 知乎答主@doodlewind 三个含义 实际上编程语境中的 run ...
最新文章
- 网站设计流程图(来源于网络)
- ajax 更新模型数据_PyTorch视觉工具包torchvision重大更新!支持各种检测模型、分割模型,还有许多数据集...
- 能用钱解决的,绝不要花时间 过来人的11条人生经验
- 【收藏】编译安装keepalived
- 腾讯荣获OSCAR尖峰开源企业奖 参与国内首个开源治理白皮书编写
- ES5 every/some/reduce/reduceRight的使用与重写
- centos 7 部署 dotnetcore+Angular2 实践
- liunx之Centos6.8杀毒软件的安装
- Python可以减少代码量?我不信
- 32汇编语言程序说明_Linux 汇编语言学习--编译和链接
- Android手机投影到电脑屏幕的神兵利器
- es6模块循环引用的问题
- ROM修改---修改本机的mac地址
- linux trace 进程 文件路径,linux panic 问题定位
- Kafka---如何配置Kafka集群和zookeeper集群
- 简单易行的用windows系统虚拟苹果mac操作系统 mac下android环境搭建笔记(android studio)
- 为什么别人不把你当回事(经典)
- 【用matplotlib,wordcloud和pyecharts分析三国的分词,词频,词性,小说人物出场次数排序小说人物关系】
- PLM、ERP、APS、MES几种信息系统的数据集成
- mapboxGL中多图标加载的实现