关于sass:RASP技术进阶系列一与WAF的相爱相杀

5次阅读

共计 4332 个字符,预计需要花费 11 分钟才能阅读完成。

猜测大部分平安从业者都会答复:“WAF(Web Application Firewall, 应用程序防火墙)。”不过 RASP(Runtime Application Self-Protection,利用运行时自我爱护)横空出世,仿佛有取而代之的象征。长期以来,防火墙始终是大家公认的抵挡内部攻打的要害措施。而 WAF 作为防火墙中的“偏科生”,更擅长于剖析利用流量。简略而言,WAF 是一种专门用于剖析 HTTP/HTTPS 流量的专用防火墙,能够深刻到每一次 HTTP/HTTPS 申请和详情中去查看是否蕴含敏感字段,而后放行失常行为,拦挡歹意行为,就像自来水过滤器一样,把“杂质”从宏大的流量中剔除进来,这样应用程序就只会响应失常的申请,从而达到爱护应用程序的目标。

                                  图 1 WAF 的工作地位

WAF 的窘境

WAF 粗看起来像是一个繁难且成熟的解决方案,但在理论真正应用时,可能会面临很多挑战。1. 规定与业务场景无奈对应
WAF 实际上是以一种简略粗犷的形式来爱护利用的。WAF 在剖析流量时,只会针对一条流量进行剖析,不会关联上下文。例如某个申请参数为:1+AND+321%3D6+AND+388%3D388
这种流量在 WAF 解析时可能会面临以下两种状况。这个参数尽管看起来像是 SQL 注入的模式,然而背地的逻辑可能和 SQL 解决没有关系,比方在 SPEL 等表达式中,也可能会有相似的写法。如果严格依照该逻辑去剖析流量,就有可能造成误报。另外一种状况是,如果解决这条申请背地的利用的确进行了 SQL 操作,然而曾经应用了预编译等形式对传入数据进行了荡涤,那么这个申请实际上并不会对业务自身造成危害,所以也会产生误报。因而,在设置 WAF 规定的时候,如果过于严格,就会造成误报;过于宽松,又会导致真正具备危险的流量被放过。这便须要专家针对企业的业务场景进行调整,这个工作并不是一劳永逸,随着工夫的推移、利用的更迭,WAF 策略也须要一直调整。
2. 能够被轻松绕过绕过

WAF 进攻的次要形式是对流量进行加密和混同。WAF 在解密流量时,因为无奈深刻到利用外部,因而只能对 HTTPS 流量进行解密,再深一层就无能为力了,比方将数据通过 Base64 加密,甚至只需简略切换字母的大小写就能够绕过 WAF 的进攻。例如 Shiro RememberMe 字段是应用 AES 加密的 Base64 编码,然而其 AES 加密密钥却是硬编码的,因而能够应用如下流程进行 WAF 绕过:

                          图 2 WAF 绕过示例流程

当 Shiro 服务器接管到歹意结构的 RememberMe Cookie 后,将会对其进行 Base64 解码、AES 解密,最终将会反序列化结构好的歹意命令,最终导致被攻打。针对此类攻打,所有的通信数据都是通过加密的,WAF 从流量侧无奈了解这样的流量,也就无奈进行无效的拦挡。
3. 无奈进攻 0day 破绽
因为本身工作机制,WAF 能够在进攻已知破绽方面起到成果,然而无奈进攻 0day 破绽。攻击者能够在厂商公布策略更新前就开始利用 0day 破绽,而 WAF 通常在破绽暴发的数小时后能力实现策略更新。
4. 保护老本高
WAF 的保护不仅限于上述防护策略的保护,还体现在对于利用的适配上。目前很多 WAF 产品都提供了“虚构补丁”性能,能够用来修复应用程序的缺点,而不须要批改源代码。但这实际上给 WAF 保护人员带来了微小的挑战,因为平安经营人员须要同时对业务逻辑和 WAF 配置参数具备深刻理解后,能力写出精准且高效的策略。RASP 真能取代 WAF 吗?就像 WAF 是防火墙的演进版本一样,大家喜爱把 RASP 称为下一代 WAF。WAF 次要解决了防火墙不能依据流量内容进行拦挡的问题,而 RASP 尽管解决了 WAF 所不能解决的上下文关联的问题,然而它的呈现其实并不是为了取代 WAF。

                   图 3 RASP 工作原理示意图

从原理上来看,RASP 是从利用外部对要害函数操作的数据进行剖析,即便原始申请通过加密和混同,然而它在利用内流传到最终的底层函数时将会以明文形式被 RASP 截获,因而相比 WAF 能缩小大量的误报和漏报问题。基于此个性,RASP 还能为平安人员和开发人员提供更为详尽的攻打链路,包含攻打原始 Payload、代码调用堆栈等信息,不便他们进行破绽定位、复现以及修复。尽管 RASP 较为敌对地解决了 WAF 的不足之处,能够截获真正具备危险的操作,然而它因为构建在应用程序外部,并且只对危险操作进行拦挡,这样绝对 WAF 缺失了从宏观上对流量的监控,对于例如 CC 攻打、爬虫、歹意扫描等攻击行为短少无效的进攻伎俩。

另外,RASP 因为和运行时环境耦合,在理论利用时,会更关注性能和兼容性影响:
01 性能影响
RASP 工作在利用运行时环境,不可避免会占用利用的计算资源。例如对于 XSS(跨站脚本攻打)类攻打,须要在用户申请和服务器响应中剖析有无歹意脚本,目前业界采纳的方法是应用正则表达式进行匹配。然而在一些应用宏大表单的利用中,XSS 的正则匹配将会耗费大量的资源。对于这种状况,能够依据业务场景,管制匹配精度(正则匹配范畴)来调整检测精度和检测速度。
02 兼容性
RASP 尽管能够关联应用程序上下文,然而对于业务的实在利用场景的了解依然不能做到精准。例如对于一些有运维属性的利用,须要管理员从 Web 间接编辑命令进行执行,然而探针并不能了解相似这样的业务场景,导致命令执行被拦挡。对于此类情况,能够通过配置白名单等形式来解决。另外一点,因为 RASP 探针须要工作在利用运行时环境,这就对探针的语言反对和框架反对提出了较高要求。悬镜通过“单探针”策略,在探针兼容性层面曾经失去金融电商、泛互联网、车联网、电信运营商、能源电力等行业的宽泛验证。

合则两利,分则两败

当独自应用 WAF 或者 RASP 的时候,它们都因为本身的短板,在一些问题上显得力不从心。但当两者联合时,它们都将在本人善于的畛域大放异彩。
1. WAF 的劣势
(1)攻打前流量预警:攻击者在施行真正的攻打前,会产生大量的异样流量,这些流量包含揣测服务器环境信息、可注入点尝试等。这些流量通常不会间接造成危害,因而 RASP 可能无奈获悉全量的攻打流量(只会解决可能有危害的流量),而 WAF 能够残缺记录异样流量。
(2)对于 CC 攻打、爬虫、歹意扫描和脚本小子(script kiddie)这些大流量的攻打或者有显著攻打特色的流量,如果让其间接打到装有 RASP 插桩的利用上,会造成不必要的性能占用;另外因为 RASP 会占用应用程序的计算资源,因而也不适宜进行过于简单的计算。所以对于此类攻打,最好的方法就是应用 WAF 从流量侧对其剖析和拦挡。

2. RASP 的劣势
(1) 拦挡混同和加密的流量 :如前文所述,RASP 并不需要对流量进行解密,能够依据场景对歹意行为进行剖析,无效拦挡被精心设计的攻打流量。
(2) 针对业务场景进行优化 :基于 RASP 函数 Hook 的个性,不仅能够对通用类、框架类的函数进行插桩,也能够对自研代码局部进行插桩。例如对于利用在交付前来不及修补的破绽,能够通过函数级别的虚构补丁提供防护,保障利用按时交付。
(3) 极低的保护老本 :除了依据须要配置虚构补丁外,因为 RASP 从底层函数进行爱护,所以基本上不须要对 RASP 的规定做任何调整即可实现利用的平安内建。
(4) 兼顾东西向流量平安 :RASP 工作在应用程序外部,不仅能够剖析南北向流量的危险,也能够剖析企业外部,利用之间东西向流量的危险。例如微服务架构中波及多个模块间的调用,它们之间通常会应用 rpc 等非 http 协定来进行数据交换,传统的 WAF 通常对其无能为力。而 RASP 则能够很好的解决这样的问题。
(5) 进攻 0day 破绽:RASP 能够爱护利用运行时环境中的所有代码,包含自研代码、第三方组件、Web 利用容器(Tomcat、Django、Flask 等)。例如最近几个波及范畴较广的 0day 破绽:Log4j2 RCE(CVE-2021-44228)、Spring4Shell(CVE-2022-22965)、Fastjson 反序列化破绽(https://github.com/alibaba/fastjson/wiki/security_update_20220523),尽管攻击方式有变动,然而最终施行攻打总是须要调用一些底层的办法 / 函数。无论攻打入口如何变动、攻打伎俩如何荫蔽,都无奈绕开最终要害函数的执行过程,因而 RASP 肯定能对其进行无效拦挡。
3. RASP + WAF

                        图 4 WAF 与 RASP 组成纵深进攻体系

(1)WAF 提供实在的攻打起源:企业的利用通常都是在网关或者反向代理之后的,当流量进入利用时,RASP 探针在大多数状况下其实只能拿到反向代理或者网关的 IP 地址,这对于分析攻击起源十分不利。能够借助 WAF 对所有进入的流量增加 Headers(例如 X-Forwarded-For),标记实在起源 IP,不便对 RASP 拦挡的攻打事件进行溯源。

(2)通过 RASP 拦挡信息生成 WAF 黑名单:攻击者如果能绕过 WAF 进行攻打,将会给利用带来累赘。通过自动化流程将 RASP 拦挡的攻击者起源 IP 生成 WAF IP 黑名单,将会大大减慢攻击者的攻打过程,给平安人员争取应急响应的工夫。

(3)依据 RASP 拦挡信息生成 WAF 策略:例如 RASP 将异样的 SQL 执行上报后,平安人员能够通过剖析得出那些敏感参数,并在 WAF 中进行标记,这既能够大大降低 RASP 给利用带来的性能耗费,同时也能让 WAF 警报更加精确。

(4)WAF 与 RASP 联动,能够扩充利用平安防护范畴:近期攻防演练流动中,红方越来越喜爱应用 0day、内存马这样的伎俩进行攻打,RASP 能够无效进行进攻。

                         图 5 WAF+RASP 部署架构示意图

总结 RASP 和 WAF 最大的区别是:WAF 的目标是发现可疑的流量,RASP 则是发现具备威逼的行为。因为近期几次大的 0day 破绽事件,RASP 因其特点,在防护未知攻打方面,施展了重要的作用。然而 RASP 并不是要取代 WAF,两者是齐全不同的技术,各有各的劣势,也各有各的有余。WAF 作为恪尽职守的哨兵,监督来自内部的可疑入侵;RASP 则作为利用的贴身保镖,进攻来自外部和内部的致命攻打。

云鲨 RASP基于运行时情境感知技术的新一代利用威逼免疫平台. 悬镜云鲨 RASP 自适应威逼免疫平台作为悬镜第三代 DevSecOps 智适应威逼管理体系中经营环节的继续检测响应平台,通过专利级 AI 检测引擎、利用破绽攻打免疫算法、运行时平安切面调度算法及纵深流量学习算法等关键技术,将主动防御能力“注入”到业务利用中,借助弱小的利用上下文情景剖析能力,可捕获并进攻各种绕过流量检测的攻击方式,提供兼具业务透视和性能解耦的内生被动平安免疫能力,为业务利用出厂默认平安免疫迎来变革倒退。​云鲨 RASP 点击应用​

正文完
 0