1.1 基本能力
RASP是一种安全防护技术,运行在程序执行期间,使程序能够自我监控和识别有害的输入和行为。也就是说一个程序如果注入或者引入了RASP技术,那么RASP就和这个程序融为一体,使应用程序具备了自我防护的能力,就可以实时检测到应用是否遭受攻击并进行阻断和自我防御。并且应用程序无需在编码时进行任何的修改,只需进行简单的配置即可。
RASP 可以应用在 Web 应用程序和非 Web 应用程序,对应用程序的代码设计没有任何影响,不需要修改任何代码,只需要简单的配置就可以将安全保护功能在服务器程序在运行时注入。
RASP 运行在应用程序的内部,监听每一个与应用程序交换的节点,覆盖所有应用程序的访问节点,包括:用户、数据库、网络和文件系统,从而实时监测并拦截漏洞攻击,能够在运行时结合上下文采取相应的保护方案。
基于RASP技术的特性与背景,应具备如下能力:
1. 实时的检测与阻断
RASP的疫苗式特性将自身安全保护代码嵌入到运行中的服务器应用程序,通过对访问应用系统的每一段代码进行检测,实时检测所有的应用请求并有效阻断安全攻击,最终实现应用系统的自我保护,确保应用系统的安全运行。
可在管理后台自定义检测和阻断两种基础的威胁免疫模式。检测模式是指在检测到安全攻击时,将详细的攻击参数记录下来;阻断模式不仅能够检测到安全攻击,同时实时拦截检测到的安全攻击,通过相应的风险监控配置,及时获取告警动态及安全风险。
2. 有效的攻击溯源
RASP通过对被攻击应用程序与内网流量进行分析,一定程度上还原攻击者的攻击路径与攻击手法,对所有攻击以及攻击特征等信息记录下来并加以分析,通过列表、数据图标等可视化方式进行展示,将攻击特征信息转换成防御优势,针对性地抑制网络攻击。
3. 精准的组件运行时分析
随着DevSecOps和微服务部署架构的流行,当前绝大多数的应用程序开发都是组装集成而非纯自研,其中96%的商业应用中都融入了开源组件,平均每个应用中含有147个开源组件,且67%的应用采用了带有己知漏洞的开源组件。由于业务系统交付上线的紧迫性,致使大部分开发者对引入的第三方开源组件及其中潜在的风险知之甚少,很少或几乎没有时间关注自写代码的质量及安全性。因此,专门针对应用程序运行时的第三方组件漏洞同样不容忽视。
RASP工具应具备组件运行时分析的能力,通过精准的识别应用系统实际运行过程中动态加载的第三方组件及依赖,对运行时的应用程序本身进行深度且更加有效的威胁分析,深度挖掘组件中潜藏的各类安全漏洞及开源协议风险,更进一步地保障应用程序的安全运行。
1.2 基本原理
RASP技术(Runtime application self-protection,运行时应用程序自我保护)作为一种新型Web防护手段,将保护代码像一剂疫苗注入到应用程序中,与应用程序融为一体,使应用程序具备自我保护能力,结合应用的逻辑及上下文,对访问应用系统的每一段代码进行检测,当应用程序遭受到实际攻击和伤害时,RASP可以实时检测和阻断安全攻击,无需人工干预。
RASP技术弥补了传统边界安全防护产品的先天性防护不足,可应对无处不在的应用漏洞与网络威胁,为应用程序提供全生命周期的动态安全保护。
图1 RASP工作原理示意图
● 兼容应用包含全部自研代码、第三方组件和 Web容器。
● 探针以 Attach 方式动态注入,无需修改现有源代码。
● 附随应用一起启动,实现应用出厂威胁自免疫。
● 多语言探针支持,对runtime函数行为进行采集,可自由扩展Hook。
2.工具的应用场景
2.1 如何应用于供应链全流程中的哪些流程环节
RASP作为一项较为新型的安全技术,让企业得以阻止黑客入侵应用及窃取数据。RASP的探针通常都会内置在应用程序或者应用程序运行时环境中,进而监控应用程序的执行,并实时检测防护入侵者利用漏洞实施攻击。根据RASP技术的功能及其原理可以看出,RASP更适用于软件供应链流程中的发布、运营阶段。当应用程序开发完成后对外发布服务之前,将RASP的安全能力充分内置到应用程序中,跟随应用程序一同启动运行,使得应用程序获得缺省安全能力。
RASP可应用于DevOps流程中的“发布”和“运营”阶段,在当前常态化的攻防博弈的场景下,线上应用要面临着0day/Nday,钓鱼邮件、社工、Web攻击等诸多威胁,纵然有蜜罐、WAF、IPS、IDS等安全防护节点,仍然有防护维度上的缺失,需要RASP从应用本身上进行防护。
应用于“发布”环节
在供应链发布流程中引入RASP技术,可形成应用发布漏洞修复闭环。当企业应用开发发布周期紧张,针对已经发现的应用漏洞,尤其是第三方组件漏洞,难以在规定周期内修复,可能导致待修复漏洞存量越来越多,形成安全隐患。而且漏洞修复成本也相对较高,需要定位问题代码段重新编码,编码后仍需要进行上线前测试,同时也影响着应用的稳定性。
那么在“发布”环节引入RASP后,提供了应用漏洞快速修复方案,在以往的应用发布时,可能会存在应用“带病上线”的问题,RASP可在应用上线时,将已知漏洞修复,且具备免疫未知威胁的能力。在应用上线后,如果发现漏洞,可利用RASP的虚拟补丁技术迅速将漏洞进行修复,杜绝漏洞利用的可能,为实际的漏洞修复赢得足够多的时间。形成应用发布漏洞修复闭关管理。
图2 基于RASP的应用风险闭环管理
● RASP的虚拟补丁技术帮助企业快速修复漏洞,阻断漏洞利用,消除潜在风险,为企业修复漏洞争取缓冲时间。
● RASP工具防止应用程序带病上线,上线前注入威胁免疫能力,实现出厂获得缺省安全能力。
应用于“运营”环节
随着目前应用逐渐的微服务化,发布、更新版本迭代速度较快,并且存在很多存量的应用系统,其中又可能包含着大量的陈旧,没人维护的系统,已知难以修复的安全问题较多,且对于日常运维、护网过程中出现的应用本身的安全漏洞,传统的边界安全产品,例如防火墙、WAF等,难以抵御应用层面的攻击。
引入RASP技术,可实现对现有存量应用系统安全加固,可对大量的存量系统、已知的应用安全问题进行保护和修复,同时使得应用在发布出厂时自带免疫,在安全运营中梳理应用资产、补充监控应用入侵攻击,并提供有效阻断策略。
2.2如何嵌入供应链安全治理流程
2.2.1 应用探针插装
无需修改现有源代码,将探针以 Attach 方式接入,且附随应用一起启动,实现应用出厂威胁自免疫,包含全部自研代码、第三方组件和 Web 容器。
无论应用程序以何种形式、部署何处,例如目前主流的微服务架构,公有云、私有云、容器环境,物理机、虚拟机部署,RASP探针都可以进行接入。且兼容多种语言,可以完美融入供应链安全治理流程中。
同时可以与应用层入侵检测、WAF进行联动,并支持热补丁修复。
图3 RASP的工作位置
●可与应用层入侵检测、WAF进行联动防护。防护通过编码手段、私有协议、伪装/变种攻击,可能绕过传统防护设备的攻击行为。
● 可支持热补丁修复漏洞,为开发人员修复漏洞赢得足够的时间。
2.3 如何向技术人员、管理人员提供可用信息
2.3.1 攻击流量内容
RASP基于其技术原理,可从某个Web应用或微服务应用获取到请求并分析其数据内容和函数执行过程。相对于网络边界设备对于加密流量无法审计的问题,RASP可从应用程序内部获取到完整解密后的请求数据。
图4 HTTP请求数据内容
并且,传统安全设备主要以HTTP/HTTPS流量分析为主,随着云原生技术的发展,微服务架构普及,以及各类API接口逐渐转为各类RPC接口协议(如Dubbo、二开RPC框架协议等)。传统安全设备几乎不对这类流量进行监控和解析,通过RASP技术则可模拟企业RPC协议解析过程进行适配,解决该类型流量内容无法可视的问题。
图5 Dubbo框架协议请求数据内容
2.3.2 程序内部上下文可视分析
审计东西向流量的目的是为了观察应用间是否存在恶意操作。由于传统安全技术的限制,当应用程序接收到请求后无法审计内部具体函数操作。而RASP可跟踪程序执行上下文信息,延展了东西向流量到应用程序内部的行为可视能力。
图6 东西向流量及代码执行过程跟踪
从外部入侵攻击的结果看,最终执行并达到攻击目的的位置,往往是程序对资源访问过程中存在缺陷的位置,如数据库访问、命令执行、网络请求、文件操作等。通过对程序内部函数堆栈及函数变量进行审查,可为安全人员补充应用层面的安全运营数据及可供审计的内容,包括具体访问的webshell后门、恶意命令、SQL注入语句、敏感数据内容及存储方式等。
2.3.3 微服务调用链路信息
随着分布式、微服务架构、多语言、前后端分离模式的应用普及,溯源微服务间的攻击入侵路径存在难度。通过追踪机制,则可便捷地关联入侵请求所经过的微服务应用,提供精准的溯源数据。
图7 微服务链路追踪过程
用户通过浏览器发出HTTP请求,HTTP应用内部处理请求时由Dubbo服务消费方调用服务提供方触发一次Dubbo RPC调用,再逐层返回给用户层。在这次操作过程中,若在Dubbo服务提供方检测到漏洞信息,希望可以向上溯源,找到触发本次Dubbo调用漏洞的源头调用信息,如:HTTP GET/user/xmirror。从而溯源绘制调用链路路径,如下效果:
图8 溯源链路路径
2.4 如何为供应链安全治理带来便利
2.4.1 构建攻防演练最后一道防线
信息安全的关键因素是人,有人的地方就有江湖,江湖中避免不了攻防博弈,而博弈是攻防双方采用越来越新的技术进行较量的过程。对于国家、企事业单位甚至个人而言,守护安全防线,确保数据不遗失是最终目的。然而,并没有一劳永逸或者可以防止所有威胁、漏洞的安全防护工具,对于信息安全从业者而言,需要“动态”思维的根据安全威胁制定相应的解决方案。
攻防演练活动中“以攻促防”、“以攻验防”的思维正是运用了这种思想,并希望通过这种形式找到安全防线缺失的地方,巩固安全边界,让攻击者无处遁形,所有的“阴谋论”无计可施。而且,攻防演练活动自兴起以来,越来越常态化。但是,每年的这个时刻,都是攻防双方激烈博弈、尤为紧张的时刻。面对0day/Nday、邮件钓鱼、社工、Web攻击等诸多手段,纵然有蜜罐、WAF、IDS/IPS等诸多防护工具,仍然有安全防护能力的缺失,缺少运行时应用程序保护的RASP技术。
防守方的困境
攻防对抗是“敌在明,我在暗”,攻守不对等对于防守方而言更像是一个猜谜游戏,因为完全猜想不到攻击者会从哪个地方发起攻击,采用什么样的攻击手段,比较薄弱的防守面是否已经暴露,自身的数据是否已经泄露等等诸多问题,可谓是神经紧绷、夜晚失眠、饭菜不香,真希望攻防演练的活动抓紧结束,避免自身丢分,被吊打的很惨。
众所周知,在攻防中为了牢固防线安全运营团队会部署安全防护工具、制定安全解决方案对防线进行实施保护,包括防火墙、IPS/ IDS、漏洞检测解决方案、嗅探、安全信息和事件管理(SIEM)系统,期望通过持续不断的检测分析数据活动,改善安全事件的检测。但是,防火墙、IPS/ IDS基于流量检测的机制,容易造成攻击绕过;而且攻击者会通过渗透对服务器、操作系统和容器的加固应用程序平台进行攻击,势必会造成严重后果。特别是,如果存在漏洞,则利用漏洞会更容易完成攻击行为。
而且,整个攻击的进程攻击者会进行有预谋、有步骤的攻击,防守者会参照ATT&CK或者洛克希德·马丁网络杀伤链(cyber kill chain)模型制定相应的防御措施,具体的战略、战术会在后面的文章中为大家描述,这都对防守方造成了很大的困惑。
RASP为企业构建最后防线
对于防守方而言,总希望找到一个解决方案,缩短 MTTD(平均检测时间)和 MTTR(平均响应时间),实现更成熟的SecOps 和更好的整体安全性。不得不提到RASP,它是实现内部安全的绝佳技术。运行时应用程序安全保护 (RASP) 工具通过使用直接嵌入到应用程序中或与应用程序相邻的安全引擎来保护应用程序。RASP解决了现有的用于保护网络和Web应用程序的外部安全技术的局限性。RASP使安全运营团队能够以前所未有的方式监控应用程序,并使用应用程序威胁情报在攻击发生时获取有关攻击的完整上下文,并立即阻止攻击。运行时应用程序自我保护 (RASP) 技术通过使用Deep Security Instrumentation 尽可能深入地进入应用程序堆栈并保护其免受威胁,从而提供前所未有的可见性。对于每次攻击,RASP 都会看到:
● 攻击严重程度和攻击频次
● 攻击向量、攻击者 IP 地址
● 具有完整堆栈跟踪详细信息的攻击目标
这也是与防火墙(WAF)不同的地方,借助RASP安全团队可以自动收集、发现和量化威胁,并进行补救。而且,RASP技术相对于WAF具有超准确的可见性和低误报率,同时还可以使用已经熟悉的现有常见SOC工具和控制台(日志、SIEM)一起实现内部安全。
运行时情境安全
虽然RASP经常拿来与WAF做对比,然而它更像是WAF后面的一道防线,增强了安全性。RASP通过在现有应用程序代码中植入传感器来实时监控和控制关键执行点。利用这些技术,RASP 成为应用程序的一部分,使它们能够独立于其部署环境而受到保护。而且,RASP可以在本地、云和容器的任何部署架构中运行。在安全策略制定时,可以将RASP技术集成到SOC/SecOps威胁监控和响应工具中,包括 SIEM 可视化、以及可定制的应用程序和用户活动日志。
日志增强功能将RASP威胁监控深入到应用程序和用户行为的内部工作,无需开发人员干预,因此最终用户可以记录应用程序内的任何内容并将威胁情报直接发送到日志管理平台。像登录失败、权限提升、特定数据库调用、应用程序环境的任何方面都可以被记录下来,并监控威胁与危害指标 (IoC) 和攻击 (IoA) 的相关性。所以,当访问应用程序的特定区域或出现特定条件(敏感数据/文件操作或敏感命令)时,立即发出警报。由于RASP在应用程序打开时立即自动运行,所有来自应用程序运行时内部的应用程序威胁监视和日志记录都将持续运行,而无需修改任何一行源代码,无需调优或扫描,也无需重新部署,当威胁产生时,RASP会立刻对威胁做出反应,进行阻止。
除此之外,RASP技术结合SCA分析技术、IAST技术可以在DevSecOps模型的整个生命周期中对代码安全进行检测、防御,实现安全左移,不局限于应用运行时的事后防御。而且,RASP技术集合PTE技术可以在攻防演练活动中实现自动化检测,对安全威胁进行验证,确保安全链路完整。正因此,RASP技术可以更好的在攻防演练中发挥作用,确保防线安全,避免防守方丢分。
攻防角度下积极防御体系的协同
以EDR技术为例,其作为传统纵深防御体系下主机安全层面防御方案,特点是采用自适应安全体系的架构,覆盖防御、监控、回溯和预测这四项关键能力,各项安全能力以智能、集成和联动的方式应对各类攻击。
一般而言,EDR主要在主机层面提供资产清点、风险发现、入侵检测、安全基线、病毒查杀等安全运营能力,对于应用微服务相关以及内存马都无力覆盖,对于反序列化攻击、代码注入等攻击类型也难以防御。但是在与RASP协同联动后,可在应用层面建立积极防御能力,并切实反馈东西向流量防护效果。
从攻防角度看,应用层面积极防御的建立可促进纵深防御体系更加深入,推进业务应用实质性安全落地,主要包含以下方面:
1)应用资产管理:借助插桩节点推广覆盖,可梳理微服务应用IP、URL地址、API接口、第三方组件等,并绘制资产关联图谱;
2)运行时入侵检测:基于应用污点分析和上下文分析技术,实时检测应用漏洞利用、webshell访问执行、内存马执行等,并实时预警高危组件风险,定位具体应用;
3)攻击威胁疫苗:免疫通用Web应用漏洞及第三方组件安全漏洞,并对EDR难以防御的反序列化、代码执行等攻击进行更加有效的阻断;
4)应用安全基线:符合性应用层基线配置检测,覆盖中间件、单应用、微服务等;
5)敏感数据审查:基于可获取应用内部数据输入、操作、内容的先天技术优势,可针对业务侧关注的个人信息、业务数据等敏感信息进行合规审查,必要时进行输出阻断和过滤;
6)应用热补丁:对已上线的重要应用系统,当出现重大漏洞短时间难以修复时,可以动态下发热补丁进行修复,在不中断业务的同时为应用系统提供临时防护,为漏洞修复争取宝贵的时间;
7)东西向流量分析:以微服务架构作为基础,除了对应用间流量和东西向流量描绘,更能深入呈现应用程序内部具体执行操作,为安全运营提供从网络层到应用内部真实执行过程数据,分析攻击链路。
因而可以认为,主机层EDR技术和应用层RASP技术并不存在应用场景的冲突。RASP技术创造性实现了数字化应用发布的出厂免疫,不仅带来了对于未知入侵风险的直接防御能力提升,也将东西向流量的智能检测防御技术进行了延伸。EDR和RASP两种技术的联动,可天然作为积极防御体系下相互配合协作的伙伴,打通应用防护与治理的最后“一公里”。
2.4.2 优化提升攻击入侵响应和防护
RASP技术原理核心在于可对最终应用进行输入流量检测,并在代码函数级别对变量进行检查跟踪、过程污点分析、恶意执行阻断,在应用漏洞和流量行为分析上具有明显优势。
经常暴露且危害较大的应用漏洞,大多存在于开源软件和第三方组件。黑客可以通过源码分析发现其中的漏洞,进而当发现攻击目标使用该开源软件或第三方组件时,便可以发起0day攻击。常态化安全运营下,对应用漏洞的修复或者补偿措施通常会采用如下三种方式:
1)更新升级有漏洞的组件。这是主流推荐的修复方式,但为了不影响业务,这种方式需要有较长评估测试周期。如果是0day漏洞,可能官方还未提供更新版本或者补丁;如果是老旧系统,存在版本已经停止维护的情况。
2)使用漏洞情报中的临时修复方案。这属于非官方修复方式,可能存在某些二次开发应用不适用情况,且如果涉及修改源码,需要有同时具备安全和研发能力的人员储备,不适合小型团队。
3)添加防御攻击流量的WAF策略。WAF属于边界防护,应用资产覆盖面广,易于操作。但如果规则策略严苛,容易造成无关应用流量的误拦截,影响正常业务请求。
漏洞在被发现并被攻击者利用产生危害时,被定义为一次完整的风险入侵事件。也就是说,如果应用存在漏洞,但攻击者无法利用该漏洞进行下一步操作,则该漏洞风险就不产生危害。RASP的基本原理是利用HOOK技术,通过替换函数体或在函数前后插入检测代码,实现在风险操作执行时进行阻断等。
对于一些经常爆发漏洞的开源软件和第三方组件而言,漏洞存在位置和利用方法可能不同,但是在进行利用时,执行到应用代码底层,往往都会聚集到一些“敏感”函数上,如反序列化、数据库执行、命令执行、文件操作、响应返回等相关函数。如果通过RASP技术对这些底层“敏感”函数调用做一定识别阻断,即可免疫大部分0day攻击。甚至在攻击利用时,如同WAF一般,对攻击请求流量进行过滤,但RASP相对WAF的优势在于更加具有颗粒度(可设置对某个应用进程生效)且流量内容透明。因此,从此类实践应用出发,RASP天然可作为漏洞热修复和免疫0day漏洞的应用安全疫苗。
结 语
RASP作为应用程序的免疫屏障可以为其提供自我防护的能力,同时也可以完全融入DevOps流程中的“发布”、“运营”阶段。从“发布”阶段的应用风险漏洞管理,到“运营”阶段的资产梳理和安全加固,再到供应链安全治理,RASP在各个阶段都发挥着极大的作用。
国内RASP工具推荐
1.云鲨RASP
基于运行时情境感知技术的新一代应用威胁免疫平台
悬镜云鲨RASP自适应威胁免疫平台作为悬镜安全第三代DevSecOps数字供应链安全管理体系中运营环节的持续检测响应平台,通过专利级AI检测引擎、应用漏洞攻击免疫算法、运行时安全切面调度算法及纵深流量学习算法等关键技术,将主动防御能力“注入”到业务应用中,借助强大的应用上下文情景分析能力,可捕捉并防御各种绕过流量检测的攻击方式,提供兼具业务透视和功能解耦的内生主动安全免疫能力,为业务应用出厂默认安全免疫迎来革新发展。
核心能力
Al智 能 威 胁 发 现
传统边界防御产品对应用内部逻辑一无所知,云鲨RASP 可智能获取来自应用程序体系结构和运行时的丰富 信息,结合上下文感知异常行为,全面发现各类已知及未知威胁,包括 OWASP Web/API应用代码漏洞、第 三方开源组件漏洞、各类组件反序列化、WebShell 及内存马等,误报率更低、检测更精准,更能代码级定位 漏洞源头,极大提升修复效率。
组件级资产测绘
结合运行时SCA 技术,在应用运行过程中实时获取所调用的第三方组件信息,包括组件名称、版本、路径 等,并能获取到调用组件的具体方法、传入参数和返回值等运行时上下文数据,帮助企业全面准确地掌握应用中的第三方组件资产,为后续的组件管理、风险评估和合规审计等工作提供重要基础。
攻击检测及溯源
对访问应用请求的每 一 段代码进行检测,实时监测非法操作和攻击行为,毫秒级告警攻击事件、阻断恶意攻 击;通过分析被攻击应用程序与内网流量,还原攻击者的攻击路径与攻击手法、记录攻击特征,实现对未知 攻击手段的狩猎。
API 防 护
可 自 动 识 别 应 用API 资产,可视化展示全量接口,基于攻击数据统计生成API 接口风险等级,并可 一 键添加热补 丁 , 及 时 修 复API风 险 。