运行时应用自我保护(RASP):应用安全的自我修养
应用程序已经成为网络黑客想要渗透到企业内部的绝佳目标。 因为他们知道如果能发现并利用应用程序的漏洞,他们就有超过三分之一的机会成功入侵。 更重要的是,发现应用程序漏洞的可能性也很大。 Contrast Security 调查显示, 90%的应用程序在开发和质量保证阶段没有进行漏洞测试,甚至相当一部分应用程序在生产过程中没有受到保护。
由于企业中运行着许多有漏洞的应用程序,安全团队面临的挑战是如何保护这些应用程序免受攻击。 其中一种方法是让应用程序通过实时识别和阻止攻击来保护自己,这就是被称为运行时应用自我保护(Runtime Application Self-Protection)的技术。
什么是 RASP?
运行时应用自我保护(RASP)这一概念由 Gartner 于2012年提出,这是一项新兴的安全技术,让企业得以阻止黑客入侵企业应用和数据。 RASP 技术通常内置在一个应用程序或应用程序运行时环境中,能够控制应用程序的执行,并检测漏洞以防止实时攻击。
当应用程序开始运行时,RASP 可以通过分析应用程序的行为和该行为的上下文,保护其不受恶意输入或行为的影响。 RASP 通过使应用程序持续检测自身的行为,可以立即识别和缓解攻击,且无需人工干预。
无论 RASP 驻留在 server 的什么地方,它都将安全性整合到运行中的应用程序中。 它会拦截从应用程序到系统的所有调用,确保它们是安全的,并直接在应用程序内验证数据请求。 Web 和非 Web 应用都可以受到 RASP 的保护。 该技术不影响应用程序的设计,因为 RASP 的检测和保护功能可以在应用程序所运行的 server 上运行。
为什么 RASP 如此重要?
入侵防护系统(IPS)和网络应用防火墙(WAF)等技术通常用于运行时的应用程序保护,但它们在检查网络流量和内容时在线工作。 当它们分析进出应用程序的流量和用户会话时,它们无法看到流量和数据在应用内部是如何处理的。 由于它们的保护措施往往缺乏会话终止所需的准确性,因此会消耗大量的安全团队带宽,通常只用于告警和日志收集。 现在需要的是一种新型的应用保护技术——RASP,它可以驻留在要保护的应用的运行时环境中。
应用所面临的安全挑战
在保护 Web 应用和 API 时,通常会面临以下4种常见的安全挑战:
1、 真实的攻击难以识别。 每个应用程序有其自己独特的漏洞,并且只能被特殊的攻击所利用。 对于某个应用来说完全无害的 HTTP 请求,对于另一个应用而言可能会造成毁灭性打击。 同时,“在线(on the wire)”的数据可能与它在应用中所显示的不同(被称为“阻抗不匹配”问题)。
2、 现 代应用程序(特别是 API)使用复杂的格式,如 JSON、XML、序列化对象和自定义二进制格式。 这些请求使用除了 HTTP 之外的各种协议,包括 WebSocket,它是由浏览器中的JavaScript、富客户端、移动应用和许多其他源产生的。
3、 传统的技术防御没有效果。 WAF 通过在 HTTP 流量到达应用服务器之前对其进行分析,完全独立于应用而运作。 尽管绝大部分的大型组织都有 WAF,但其中许多企业并没有专业的团队对其进行必要的调整和维护,使其只处于“日志模式”。
4、 软件正在快速发展,容器、IaaS、PaaS、虚拟机和弹性环境都在经历爆炸性增长。 这些技术使得应用程序和 API 可以快速部署,但同时会将代码暴露给新的漏洞。 DevOps 也迅速加快了整合、部署和交付的速度,因此确保在快速发展阶段的软件安全的过程变得更加复杂。
幸运的是,运行时应用自我保护(RASP)可以解决其中的许多问题。
RASP的工作原理
当 APP 中发生安全事件时,RASP 将会控制该应用并解决问题。 在诊断模式中,RASP 只是发布有问题的告警。 在保护模式下,它会试图阻止问题指令。 例如,它可以阻止对数据库执行看起来似乎时 SQL 注入攻击的指令。
RASP 可以采取的其他行动包括终止用户的会话、停止应用程序的执行,或向用户或安全人员发出告警。
开发人员可以通过几种方式实现 RASP。 他们可以通过包含在应用程序源代码中的函数调用来访问该技术,或者他们可以将一个完整的应用程序放在一个 wrapper 中,从而只需要按下一个按钮就可以保护应用程序。 第一种方法更为精确,因为开发人员可以决定他们想要保护 APP 的哪个部分,例如登录、数据库查询和管理功能。
无论使用哪种方法,最终的结果都是将 Web 应用防火墙与应用程序的运行时环境绑定在一起。 这种与应用程序的密切联系意味着 RASP 可以更精细地调整以满足应用程序的安全需求。
RASP 的主要优势
RASP 之所以独一无二是因为它在软件内部工作,而不是作为一个网络设备运行。 这使得 RASP 可以利用所有从运行中的应用和 API 中获取的上下文信息,包括代码本身、框架配置、应用程序 server 配置、代码库和框架、运行时数据流、运行时控制流、后端连接等。 更多的上下文信息意味着更广泛的保护范围和更好的精确性。
RASP 成本更低
RASP 解决方案可以快速高效地阻止攻击直到底层漏洞得到解决
与 WAF 相比,它们的部署成本和运维更低
它们部署在已有的 server 上,避免了额外的支出
RASP 技术会观察应用程序实际执行的操作,因此不需要相同类型的调整、模型构建、验证或人力资源
RASP 精确性意味着应用程序受到更好的保护
保护应用程序免受攻击的影响通常意味着试图在网络层面上阻止它们。 但当涉及到应用行为的理解时,传统方法本质上是不准确的,因为它们处于应用之外。 同时,基于网络的应用安全产品会生成很多假阳性并且需要不断地调整。 在过去的25年里,网络保护已经越来越接近应用——从防火墙到入侵防御系统,再到 WAF。 有了 RASP,安全可以直接进入应用内部。
RASP 插桩提供了传统方法不可能达到的精确水平
它使应用安全能够真正地处于应用中
更高的准确性使企业能够自信地用更少的资源保护更多的数据和应用
RASP 可以在云和 DevOps 中使用
RASP 能在敏捷开发、云应用和 web 服务中良好运行
与需要不断调整的 WAF 解决方案不同,它通过提供无需返工的保护加速敏捷开发
RASP 应用更快且更准确
无论是在云端还是本地,RASP 都能随着应用程序的扩大或缩小而无缝移动
支持RASP的应用程序不知道攻击是通过API还是用户界面到达的
RASP 提供前所未有的监控
RASP 通过插桩整个应用程序来简化应用安全监控
当应用程序的相关部分被访问或其他条件被满足时(如登录、交易、权限更改、数据操作等),可以创建 RASP 策略来生成日志事件
策略也可以根据需要添加和删除
有了RASP,所有这些应用记录都可以在不修改应用源代码或重新部署的情况下实现。
RASP 擅长提供应用层攻击的可见性
RASP 持续提供关于谁攻击你的信息以及它们所使用的技术,并告诉你哪些应用程序或数据资产被盯上了。
除了完整的 HTTP 请求细节外,RASP 还提供应用细节,包括与漏洞相关的代码行具体位置、确切的后端连接细节(如 SQL 查询)、交易信息和当前登录的用户。
使用 RASP 可以为软件开发团队提供即时的可见性,帮助确定工作的优先级,并对安全防御采取行动。
由于 RASP 不是一个硬件盒子,它可以很容易地部署在所有环境中,并迅速阻止黑客攻击,最终应用程序可以实时防御攻击。
自我保护的应用程序将成为现实
当攻击者突破外围防御之后,RASP 仍可以保护系统。 它能洞察应用逻辑、配置和数据事件流,这意味着 RASP 可以高度准确地挫败攻击。 它可以区分实际的攻击和合法的信息请求,这减少了误报,使网络防御者可以把更多的时间用于解决真正的问题,而不是往死胡同里钻。
此外,其自我保护应用程序数据的能力意味着 数据从诞生的那一刻起到销毁都受到保护。 这对需要满足合规性要求的企业特别有用,因为自我保护的数据对网络黑客来说是无解的。 甚至在某些情况下,如果被盗数据使其在被盗时无法阅读,监管机构就不要求企业报告该次数据泄露。
与 WAF 一样,RASP 也不会修复应用程序的源代码,但它确实与应用程序的底层代码库集成,并在源代码级别保护应用程序易受攻击的区域。
由于 RASP 仍处于初期阶段,其不足之处会在之后的发展中慢慢被克服,并有希望成为应用安全的未来。 正如 Veracode 的首席创新官 Joseph Feiman 在担任 Gartner 的研究副总裁时指出的那样: “现代安全无法测试和保护所有应用。 因此,应用必须能够进行自我安全保护——自我测试、自我诊断和自我保护。 这应该是 CISO 的首要任务”。
参考链接:
Maverick Research: Stop Protecting Your Apps; It's Time for Apps to Protect Themselves:
https://www.gartner.com/en/documents/2856020
运行时应用自我保护(RASP):应用安全的自我修养的更多相关文章
- RASP Runtime Application Self-protection 运行时应用自我保护 介绍及优缺点
RASP 介绍 Runtime Application Self-protection 运行时应用自我保护 [图源:绿盟科技] 概念 Gartner (著名信息技术研究和分析厂商) 在2014年提出了 ...
- 了解一下运行软件的自我保护(RASP)
看下这篇文章: http://www.jianshu.com/u/c89141b2d51e 相应的demo演示: https://github.com/xbeark/javaopenrasp
- Android数据存储之Android 6.0运行时权限下文件存储的思考
前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以 ...
- Android权限管理之Android 6.0运行时权限及解决办法
前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...
- ASP.NET 5运行时升级到Beta5
在Visual Studio 2015 RTM和Windows 10正式发布之前,微软把开源.NET升级到了beta5,带来了一些增强和改变.和Visual Studio 2015 RC一起安装的AS ...
- java运行时获得泛型类型
引言 众所周知,java泛型最重要的特征是泛型擦除,所有泛型在编译时会转换成Object所以在java中运行时无法获得泛型的类型. 但是其实以上的规则是针对方法的内部变量的,如果是其他形式的泛型其实是 ...
- 由objC运行时所想到的。。。
objC语言不仅仅有着面向对象的特点(封装,继承和多态),也拥有类似脚本语言的灵活(运行时),这让objC有着很多奇特的功能-可在运行时添加给类或对象添加方法,甚至可以添加类方法,甚至可以动态创建类. ...
- Android Studio使用时源码到处报红色警告,运行时又没错
转载地址:http://www.07net01.com/program/2016/04/1452749.html [摘要:正在AS上开辟时,碰到那个题目,翻开全部的Java源文件,右边一起标赤色,找没 ...
随机推荐
- 帝国cms发布文章对哪些数据表做了操作
帝国cms 发布一篇文章会影响哪些数据表 insert into phome_enewsfile_1(pubid,filename,filesize,adduser,path,filetime,cla ...
- 关于Android安装apk出现解析包异常问题情况总结
原文地址:关于Android安装apk出现解析包异常问题情况总结 | Stars-One的杂货小窝 说之前,可以推荐下各位使用这个开源库AndroidUtilCode,下面提及到的工具类,都是在此库中 ...
- contact 和 footer 的页面制作
1. html 结构 <section id="contact"> <div class="contact-form bg-primary p-2&qu ...
- Python连接数据库,列表输出数据库中的某一列
1 import pymysql 2 import pandas as pd 3 import numpy as np 4 #连接数据库,地址,端口,用户名,密码,数据库名称,数据格式 5 conn ...
- Redis为什么变慢了?透彻解读如何排查Redis性能问题
Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右.但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情况,就会与我们的预期不符. 你也 ...
- js归并排序实现
let arr = [3,4,2,8,1,1,2,2,3,3,4,5]; const merge = function(L,M,R) { let arr2=[]; let i=0; let p1 = ...
- 如何在Web前端实现CAD图文字全文搜索功能之技术分享
现状 在CAD看图过程中我们经常会需要用到查找文字的功能,在AutoCAD软件查找一个文字时,可以通过打开左下角输入命令find,输入查找的文字,然后设置查找范围,就可以搜索到需要查询的文字.但在We ...
- redis的zset数据结构:跳表
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 广州这边封闭式管理好久了,今天终于周末可以出去溜溜了 什么是zset z ...
- XCTF练习题---WEB---Training-WWW-Robots
XCTF练习题---WEB---Training-WWW-Robots flag:cyberpeace{e37180e3f5ad17b4ac71a131e2de1fcb} 解题步骤: 1.观察题目,打 ...
- 基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...