技术分享丨RASP将代码疫苗技术“注入”到业务应用中
日期:2022年02月21日 阅:50
众所周知,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工作在应用层,因此每个产品都需要以某种方式与应用程序集成。监控应用程序使用(调用)或执行(运行时)的方法有多种,每种方法的部署略有不同,收集的应用程序运行方式略有不同。
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 就会监视网络的攻击面以检测新出现的威胁并保护它免受任何负面的内部或外部行为的影响。
RASP应用场景
根据前面讲到的RASP安全特性我们可以看出来,RASP为应用程序增加了威胁可见性和安全控制,帮助企事业单位持续发现应用威胁并实时阻止。那么,此技术又比较适合应用于什么场景中呢?
1. 持续攻防演练
网络攻防演练活动兴起以来,不断衍生出攻、防技术,尤其是云原生、AI等新技术的不断应用,更多复杂、难预见的攻击手段应运而生。对于防守方而言,不能单纯依赖于无法看到应用程序内部威胁的流量嗅探边界(IPD/IDS、WAF)的解决方案,需要一种更有效的方法以更高的可见性监控安全事件。而RASP工具将防护引擎嵌入到应用内部,可以在不依赖请求特征的情况下,准确的识别代码注入、反序列化等应用异常,弥补了传统防护工具的缺失;同时,又可以对威胁事件进行实时监控和响应,利于在攻防对抗中及时进行策略调整,及时应对。
2. 紧急漏洞防御
0day漏洞是比较常见且难以防御的一类威胁,一旦被发现将对系统造成不可估量的损失。RASP代理位于应用程序内部,在运行时根据应用程序代码的上下文检查请求负载,以确定请求是正常请求还是恶意应用程序来保护自己,可以更好地应对此类安全威胁。此外,也包括一些应急的漏洞,都有较好的防御效果。
3. 高级威胁防御
“道高一尺魔高一丈”,安全防护措施的不断加强,势必引起攻击者执行新的攻击策略。诸如无文件攻击、WebShell攻击、内存攻击等攻击手段不断被应用,而传统的安全防护工具容易被绕过。RASP基于行为分析技术,通过规则匹配、污点追踪的检测方法,可以对此类攻击事件进行实时监测,发现威胁数据源,做好安全防御。
悬镜云鲨RASP介绍
悬镜云鲨RASP自适应威胁免疫平台(简称“云鲨RASP”),基于悬镜独有的运行时情境感知技术,通过专利级应用漏洞免疫攻击算法、运行时切面调度算法等关键技术,将主动防御能力“注入”到业务系统中。相较于基于流量的边界防御设备,RASP能够结合运行时上下文,在不依赖请求特征的情况下,在应用内部进行分析,精准捕获真正具有高级威胁的异常行为,将安全风险有效免疫在日常运营之外。此外,云鲨RASP通过运行时插桩技术可以对已上线环境的漏洞下发代码级热补丁,精准修复漏洞点,从开发到上线运营,可以为软件开发生命周期的多个阶段进行“安全赋能”。
悬镜云鲨RASP兼容性强、覆盖面广,可广泛应用于包括但不仅限于政府、教育、医疗、金融、能源、电商、泛互联网、汽车制造等行业的DevSecOps敏捷安全体系建设,并结合悬镜首创基于运行时情境感知的DevSecOps持续威胁管理技术,从源头追踪软件供应链在开发、测试、部署、运营等关键环节面临的应用安全风险与未知外部威胁,帮助企业逐步构筑一套适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的积极防御体系。
由于RASP的内容比较多,本篇文章简单为大家讲述了部分内容,后面将会慢慢更细致的将RASP技术分享给大家,希望大家对该技术有更深刻的了解和认知。
参考链接:
https://securosis.com/blog/understanding-and-selecting-rasp-technology-overview
悬镜AI(北京安普诺信息技术有限公司)由北京大学白帽黑客团队"Xmirror"主导创立。公司力求以人工智能技术赋能信息安全,在公司研发的产品中,深度结合机器学习、红蓝对抗、攻击链模型等技术,为企事业单位提供前沿高效的DevSecOps全流程AI安全管家服务。