与WAF的“相爱相杀”的RASP

  • 用什么来保护Web应用的安全?

猜想大部分安全从业者都会回答:“WAF(Web Application Firewall,应用程序防火墙)。”不过RASP(Runtime Application Self-Protection,应用运行时自我保护)横空出世,似乎有取而代之的意味。

长期以来,防火墙一直是大家公认的抵御外部攻击的关键措施。而WAF作为防火墙中的“偏科生”,更擅长于分析应用流量。简单而言,WAF是一种专门用于分析HTTP/HTTPS流量的专用防火墙,可以深入到每一次HTTP/HTTPS请求和详情中去检查是否包含敏感字段,然后放行正常行为,拦截恶意行为,就像自来水过滤器一样,把“杂质”从庞大的流量中剔除出去,这样应用程序就只会响应正常的请求,从而达到保护应用程序的目的。

  • WAF的困境

WAF粗看起来像是一个简易且成熟的解决方案,但在实际真正使用时,可能会面临很多挑战。

    • 规则与业务场景无法对应

WAF实际上是以一种简单粗暴的方式来保护应用的。WAF在分析流量时,只会针对一条流量进行分析,不会关联上下文。例如某个请求参数为:

1+AND+3*2*1%3D6+AND+388%3D388

这种流量在WAF解析时可能会面临以下两种情况。

这个参数虽然看起来像是SQL注入的形式,但是背后的逻辑可能和SQL处理没有关系,比如在SPEL等表达式中,也可能会有类似的写法。如果严格按照该逻辑去分析流量,就有可能造成误报。

另外一种情况是,如果处理这条请求背后的应用确实进行了SQL操作,但是已经使用了预编译等方式对传入数据进行了清洗,那么这个请求实际上并不会对业务本身造成危害,所以也会产生误报。

因此,在设置WAF规则的时候,如果过于严格,就会造成误报;过于宽松,又会导致真正具有风险的流量被放过。这便需要专家针对企业的业务场景进行调整,这个工作并不是一劳永逸,随着时间的推移、应用的更迭,WAF策略也需要不断调整。

    • 可以被轻松绕过

绕过WAF防御的主要方式是对流量进行加密和混淆。WAF在解密流量时,由于无法深入到应用内部,因此只能对HTTPS流量进行解密,再深一层就无能为力了,比如将数据通过Base64加密,甚至只需简单切换字母的大小写就可以绕过WAF的防御。

例如Shiro RememberMe字段是使用AES加密的Base64编码,但是其AES加密密钥却是硬编码的,因此可以使用如下流程进行WAF绕过:

当Shiro服务器接收到恶意构造的RememberMe Cookie后,将会对其进行Base64解码、AES解密,最终将会反序列化构造好的恶意命令,最终导致被攻击。针对此类攻击,所有的通信数据都是经过加密的,WAF从流量侧无法理解这样的流量,也就无法进行有效的拦截。

    • 无法防御0day漏洞

由于自身工作机制,WAF可以在防御已知漏洞方面起到效果,但是无法防御0day漏洞。攻击者可以在厂商发布策略更新前就开始利用0day漏洞,而WAF通常在漏洞爆发的数小时后才能完成策略更新。

    • 维护成本高

WAF的维护不仅限于上述防护策略的维护,还体现在对于应用的适配上。目前很多WAF产品都提供了“虚拟补丁”功能,可以用来修复应用程序的缺陷,而不需要修改源代码。但这实际上给WAF维护人员带来了巨大的挑战,因为安全运营人员需要同时对业务逻辑和WAF配置参数具备深入了解后,才能写出精准且高效的策略。

  • RASP真能取代WAF吗?

就像WAF是防火墙的演进版本一样,大家喜欢把RASP称为下一代WAF。WAF主要解决了防火墙不能根据流量内容进行拦截的问题,而RASP虽然解决了WAF所不能解决的上下文关联的问题,但是它的出现其实并不是为了取代WAF。

从原理上来看,RASP是从应用内部对关键函数操作的数据进行分析,即使原始请求经过加密和混淆,但是它在应用内传播到最终的底层函数时将会以明文方式被RASP截获,因此相比WAF能减少大量的误报和漏报问题。基于此特性,RASP还能为安全人员和开发人员提供更为详尽的攻击链路,包括攻击原始Payload、代码调用堆栈等信息,方便他们进行漏洞定位、复现以及修复。

虽然RASP较为友好地解决了WAF的不足之处,可以截获真正具有风险的操作,但是它由于构建在应用程序内部,并且只对风险操作进行拦截,这样相对WAF缺失了从宏观上对流量的监控,对于例如CC攻击、爬虫、恶意扫描等攻击行为缺少有效的防御手段。另外,RASP由于和运行时环境耦合,在实际应用时,会更关注性能和兼容性影响:

    • 性能影响

RASP工作在应用运行时环境,不可避免会占用应用的计算资源。例如对于XSS(跨站脚本攻击)类攻击,需要在用户请求和服务器响应中分析有无恶意脚本,目前业界采用的办法是使用正则表达式进行匹配。然而在一些使用庞大表单的应用中,XSS的正则匹配将会消耗大量的资源。对于这种情况,可以根据业务场景,控制匹配精度(正则匹配范围)来调整检测精度和检测速度。

    • 兼容性

RASP虽然可以关联应用程序上下文,但是对于业务的真实应用场景的理解仍然不能做到精准。例如对于一些有运维属性的应用,需要管理员从Web直接编辑命令进行执行,但是探针并不能理解类似这样的业务场景,导致命令执行被拦截。对于此类情况,可以通过配置白名单等方式来解决。另外一点,由于RASP探针需要工作在应用运行时环境,这就对探针的语言支持和框架支持提出了较高要求。悬镜通过“单探针”策略,在探针兼容性层面已经得到金融电商、泛互联网、车联网、电信运营商、能源电力等行业的广泛验证。

  • 合则两利,分则两败

当单独使用WAF或者RASP的时候,它们都因为自身的短板,在一些问题上显得力不从心。但当两者结合时,它们都将在自己擅长的领域大放异彩。

    • WAF的优势

  1. 攻击前流量预警:攻击者在实施真正的攻击前,会产生大量的异常流量,这些流量包括推测服务器环境信息、可注入点尝试等。这些流量通常不会直接造成危害,因此RASP可能无法获悉全量的攻击流量(只会处理可能有危害的流量),而WAF可以完整记录异常流量。

  1. 对于CC攻击、爬虫、恶意扫描和脚本小子(script kiddie)这些大流量的攻击或者有明显攻击特征的流量,如果让其直接打到装有RASP插桩的应用上,会造成不必要的性能占用;另外由于RASP会占用应用程序的计算资源,因此也不适合进行过于复杂的计算。所以对于此类攻击,最好的办法就是使用WAF从流量侧对其分析和拦截。

    • RASP的优势
  1. 拦截混淆和加密的流量:如前文所述,RASP并不需要对流量进行解密,可以根据场景对恶意行为进行分析,有效拦截被精心设计的攻击流量。

  1. 针对业务场景进行优化:基于RASP函数Hook的特性,不仅可以对通用类、框架类的函数进行插桩,也可以对自研代码部分进行插桩。例如对于应用在交付前来不及修补的漏洞,可以通过函数级别的虚拟补丁提供防护,保证应用按时交付。

  1. 极低的维护成本:除了根据需要配置虚拟补丁外,由于RASP从底层函数进行保护,所以基本上不需要对RASP的规则做任何调整即可实现应用的安全内建。

  1. 兼顾东西向流量安全:RASP工作在应用程序内部,不仅可以分析南北向流量的风险,也可以分析企业内部,应用之间东西向流量的风险。例如微服务架构中涉及多个模块间的调用,它们之间通常会使用rpc等非http协议来进行数据交换,传统的WAF通常对其无能为力。而RASP则可以很好的解决这样的问题。

  1. 防御0day漏洞:RASP可以保护应用运行时环境中的所有代码,包括自研代码、第三方组件、Web应用容器(Tomcat、Django、Flask等)。例如最近几个波及范围较广的0day漏洞:Log4j2 RCE(CVE-2021-44228)、Spring4Shell(CVE-2022-22965)、Fastjson反序列化漏洞,虽然攻击方式有变化,但是最终实施攻击总是需要调用一些底层的方法/函数。无论攻击入口如何变化、攻击手段如何隐蔽,都无法绕开最终关键函数的执行过程,因此RASP一定能对其进行有效拦截。

    • RASP + WAF

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

  1. 通过RASP拦截信息生成WAF黑名单:攻击者如果能绕过WAF进行攻击,将会给应用带来负担。通过自动化流程将RASP拦截的攻击者来源IP生成WAF IP黑名单,将会大大减慢攻击者的攻击进程,给安全人员争取应急响应的时间。

  1. 根据RASP拦截信息生成WAF策略:例如RASP将异常的SQL执行上报后,安全人员可以通过分析得出那些敏感参数,并在WAF中进行标记,这既可以大大降低RASP给应用带来的性能消耗,同时也能让WAF警报更加准确。

  1. WAF与RASP联动,可以扩大应用安全防护范围:近期攻防演练活动中,红方越来越喜欢使用 0day、内存马这样的手段进行攻击,RASP可以有效进行防御。

  • 德迅蜂巢
  1. 定义:

自主研发,能够很好集成到云原生复杂多变的环境中,如PaaS云平台、OpenShift、Kubernetes、Jenkins、Harbor、JFrog等等。通过提供覆盖容器全生命周期的一站式容器安全解决方案,德迅蜂巢可实现容器安全预测、防御、检测和响应的安全闭环。

  1. 核心理念:

在开发阶段(Dev),遵循“安全左移”原则,做到上线即安全

在运行阶段(Ops),遵循“持续监控&响应”原则,做到完全自适应

  1. 功能:

  1. 资产清点:德迅蜂巢可以清晰地盘点工作负载本身的相关信息,此外,还能够实现不同工作负载之间的关系可视化,帮助运维和安全人员梳理业务及其复杂的关系,弥补安全与业务的鸿沟。

  1. 镜像扫描:德迅蜂巢的镜像检查能力已经覆盖到开发、测试等多个环节中,可快速发现镜像中存在的漏洞、病毒木马、Webshell等镜像风险。
  2. 微隔离:德迅蜂巢微隔离原生自适应容器多变的环境。通过对访问关系的梳理和学习,提供自适应、自迁移、自维护的网络隔离策略,帮助用户快速、安全地落地容器微隔离能力。

  1. 入侵检测:德迅蜂巢通过多锚点入侵监测分析,实时监测容器中的已知威胁、恶意行为、异常事件,监测到入侵事件后,对失陷容器快速安全响应,把损失降到最低。

  1. 合规基线:德迅蜂巢构建基于CIS Benchmark的最佳安全操作实践检查,帮助企业实施和完善容器合规规范,可实现一键自动化检测,并提供可视化基线检查结果和代码级修复建议。

  1. 核心架构

  • 总结

RASP和WAF最大的区别是:WAF的目的是发现可疑的流量,RASP则是发现具有威胁的行为。由于近期几次大的0day漏洞事件,RASP因其特点,在防护未知攻击方面,发挥了重要的作用。但是RASP并不是要取代WAF,两者是完全不同的技术,各有各的优势,也各有各的不足。WAF作为恪尽职守的哨兵,监视来自外部的可疑入侵;RASP则作为应用的贴身保镖,防御来自内部和外部的致命攻击。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/638264.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式14——组合模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 组合模式(Composit…

C++ 写的_string类,兼容std::string, MFC CString和 C# 的string

代码例子: using namespace lf; int main() { CString s1 _t("http://www.csdn.net"); _string s2 s1; CString s3 s2; _pcn(s1); _pcn(s2); _pcn(s3); return 0; } 输出: _Str.h /***************************************…

Hsql每日一题 | day02

前言 就一直向前走吧,沿途的花终将绽放~ 题目:主播同时在线人数问题 如下为某直播平台主播开播及关播时间,根据该数据计算出平台最高峰同时在线的主播人数。 id stt edt 1001,2021-06-14 12:12:12,2021-06-14 18:1…

前端加载excel文件数据 XLSX插件的使用

npm i xlsx import axios from axios; axios //这里用自己封装的http是不行的,踩过坑.get(url,{ responseType: "arraybuffer" }).then((re) > {console.log(re)let res re.datavar XLSX require("xlsx");let wb XLSX.read(r…

【qt】标准项模型

标准项模型 一.使用标准型项模型1.应用场景2.界面拖放3.创建模型4.配套模型5.视图设置模型6.视图属性的设置 二.从文件中拿到数据1.文件对话框获取文件名2.创建文件对象并初始化3.打开文件对象4.创建文本流并初始化5.读取文本流6.关闭文件7.完整代码 三.为模型添加数据1.自定义…

【资料分享】你敢相信这些高大上的BI仪表盘都是用EXCEL做出来的?!

引言 现在大家都知道数据可视化、数据看板,几乎每个公司部门都有仪表盘的需求。 近年来,学习可视化软件的人也越来越多,国外Tableau、PowerBI就是这一领域的领先者,而国内也有不少厂家在研发数据可视化软件,比如帆软…

【C++】c++入门(下 )

c入门 1.内联函数1.1 概念1.2 特性 2.auto关键字(C11)2.1 简介2.2 auto的使用2.3 auto不能推导的场景2.4 typedef取别名也能产生和auto的效果,为什么不使用? 3.基于范围的for循环(C11)3.1 9.1 范围for的语法3.2 范围for的使用条件 4.指针空值nullptr(C11…

CSS3 新增背景属性 + 新增边框属性(如果想知道CSS3新增背景属性和新增边框属性的知识点,那么只看这一篇就够了!)

前言:CSS3在CSS2的基础上,新增了很多强大的新功能,从而解决一些实际面临的问题,本篇文章主要讲解的为CSS3新增背景属性和新增边框属性。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSD…

1分钟带你搞定Pandas DataFrame运算

1. DataFrame之间的运算 在运算中自动对齐不同索引的数据 如果索引不对应,则补NaN DataFrame没有广播机制 导包 # 导包import numpy as npimport pandas as pd 创建 DataFrame df1 不同人员的各科目成绩,月考一 # 创建DataFrame二维数组df1 pd.Da…

手把手教你搭建一个花店小程序商城

如果你是一位花店店主,想要为你的生意搭建一个精美的小程序商城,以下是你将遵循的五个步骤。 步骤1:登录乔拓云平台进入后台 首先,你需要登录乔拓云平台的后台管理页面。你可以在电脑或移动设备上的浏览器中输入乔拓云的官方网站…

初始Java篇(JavaSE基础语法)—— 内部类

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:JavaSE 目录 内部类的概念 内部类的种类 使用举例: 1. 静态内部类: 2. 实例内部类 3. 局部内部类 4. 匿名内部…

深度学习-Softmax回归+损失函数+图像分类数据集

目录 Softmax回归回归 VS 分类Kaggle上的分类问题 从回归到多类分类回归分类从回归到多类分类-均方损失从回归到多类分类-无校验比例从回归到多类分类-校验比例 Softmax和交叉熵损失总结损失函数均方损失绝对值损失函数鲁棒损失 图像分类数据集通过框架中内置函数将FashionMNIS…

二叉树顺序结构及链式结构

一.二叉树的顺序结构 1.定义:使用数组存储数据,一般使用数组只适合表示完全二叉树,此时不会有空间的浪费 注:二叉树的顺序存储在逻辑上是一颗二叉树,但是在物理上是一个数组,此时需要程序员自己想清楚调整…

vue小记——小组件(1)

代码&#xff1a; <template><div><el-steps :active"active" finish-status"success" simple><el-step title"数据导入"><i class"fa fa-cloud-upload fa-icon-custom" slot"icon"></i…

一文带你了解所有常用排序算法

目录 快速排序 堆排序 桶排序 归并排序 拓扑排序 本文主要介绍那些我在刷题过程中常用到的排序算法: 快速排序,堆排序,桶排序,归并排序,拓扑排序 其余算法例如冒泡,插入这种效率特别低的算法就不介绍了,用的可能性极小 每一个算法都将采用例题加解释的方式进行介绍 快速…

创意无限,设计所需——Affinity Designer for Mac/win强大登场

在当今数字设计领域&#xff0c;寻找一款功能强大、操作简便的矢量图设计软件并不容易。然而&#xff0c;Affinity Designer 凭借其出色的性能和令人惊艳的功能&#xff0c;在众多设计师中脱颖而出&#xff0c;成为了首选软件之一。今天&#xff0c;让我们一起来探索 Affinity …

【深度学习】与【PyTorch实战】

目录 一、深度学习基础 1.1 神经网络简介 1.2 激活函数 1.3 损失函数 1.4 优化算法 二、PyTorch基础 2.1 PyTorch简介 2.2 张量操作 2.3 构建神经网络 2.4训练模型 2.5 模型评估 三、PyTorch实战 3.1 数据加载与预处理 3.2 模型定义与训练 3.3 模型评估与调优 3…

618购物节快递量激增,EasyCVR视频智能分析助力快递网点智能升级

随着网络618购物节的到来&#xff0c;物流仓储与快递行业也迎来业务量暴增的情况。驿站网点和快递门店作为物流体系的重要组成部分&#xff0c;其安全性和运营效率日益受到关注。为了提升这些场所的安全防范能力和服务水平&#xff0c;实施视频智能监控方案显得尤为重要。 一、…

领券拿外卖返利红包,最低0元吃外卖

小蚕荟是利用本地资源和自媒体优势构建的“本地生活服务”平台&#xff0c;总部位于杭州&#xff0c;旨在为用户提供热门的吃喝玩乐本地生活服务类产品。布局已覆盖杭州、南京、上海等一二线城市。 小蚕荟是一款专为用户吃外卖省钱的生活工具&#xff0c;单单可返利15元起&…

【教学类-58-03】黑白三角拼图03(4*4宫格)总数算不出+随机抽取10张

背景需求&#xff1a; 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种-CSDN博客文章浏览阅读318次&#xff0c;点赞10次&#xff0c;收藏12次。【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种https://blog.csdn.net/reasonsummer/…