RASP 完爆 WAF 的5大理由!
Web 应用防火墙(WAF)已经成为常见 Web 应用普遍采用的安全防护工具,即便如此,WAF 提供的保护方案仍旧存在诸多不足,笔者认为称 WAF 为好的安全监控工具更为恰当。幸运的是,应用安全保护技术也在快速发展,运行时应用程序自我保护系统(简称 RASP)之概念,一经 Gartner 提出,立即受到热烈追捧。业界普遍认为 RASP 会成为新一代应用漏洞的「超级克星」。
WAF: 对应用安全防护已力不从心
Web 应用安全防火墙(WAF)部署在 Web 应用程序前线,可以实时扫描和过滤 Web 请求与用户输入的数据。因此,WAF 在监控进出 Web 应用程序/数据库的有害用户输入和不正常的数据流上非常有效率,这也使 WAF 在过去十多年间非常受欢迎。
WAF 有两种工作模式:
- 检测模式:寻找恶意输入和违规行为模式。
- 阻塞模式:拦截可疑用户输入。
WAF 具备防护多种常见安全攻击(如 SQL 注入和跨站攻击(XSS))的能力。但 WAF 基于流量分析,不理解应用的上下文,因此它也有很多与生俱来的缺陷。
WAF 最大的缺点是一旦应用程序代码有所改变,相应的配置也需要改变。一旦更新不及时或者更新失败,都会产生大量的误报(False-Positives)。当 WAF 设置为拦截模式时,这些误报会产生 DDOS 攻击或导致性能问题。
WAF 无法检查应用程序的漏洞,更无法解决已知漏洞。它不了解应用程序,不能深入到数据流里探测系统特有的问题,比如 SQL 注入。每个数据库的 SQL 语言都有诸多不同,WAF 无法防范针对具体数据库的 SQL 注入之攻击行为。
RASP 可接力 WAF 为应用程序提供更好的保护
实时应用程序自我保护(RASP)继承了 WAF 的大部分功能,使应用程序很好地保护自己。RASP 会监听每一个与应用程序交换的节点,覆盖所有应用程序的访问节点,包括:用户、数据库、网络和文件系统。
因为了解应用程序的上下文,RASP 完全清楚应用程序的输入输出,因此它可以根据具体的数据流定制合适的保护机制,从而可以达到非常精确的实时攻击识别和拦截。
RASP 的工作原理请见下图:
RASP 在可疑行为进入应用程序时并不拦截,而是先对其进行标记,在输出时再检查是否为危险行为,从而尽量减少误报和漏报的概率。这对精确性要求极高的银行、金融体系的应用程序保护尤其重要,因为这些应用程序对性能和可用性要求非常高。
RASP 优于 WAF 的5大优势
极少误报率: 不同于 WAF,RASP 不依赖于分析网络流量去寻找问题,除了发现漏洞或发现攻击行为,它通常不会发出任何声音。这样能极大地减少误报率。RASP 能非常精确地区分攻击和合法输入,而 WAF 很多时候无法做到,这大大减少了专门请人分析结果的成本,也不需要扫描修复的过程。
维护成本极低:WAF 的安装过程非常复杂,需要非常精确的配置以尽可能广的覆盖应用程序。为了获得更好的效果,几乎每次 Web 应用程序发布新版时都需要对管理员进行「培训」并对 WAF 进行针对性的重新配置。但大多数企业都无法做得这么及时与完善,这就可能导致大量的误报与性能问题。与之相对,RASP 几乎可以做到开箱即用,只需要非常简单的配置就可以使用。这得益于RASP 与应用程序融为一体的特性,在应用程序内部监控实时数据。
极高的覆盖度和兼容性: RASP 安全系统可以应用到任何可注入的应用程序,能处理绝大多数的网络协议:HTTP、 HTTPS、AJAX、SQL 与 SOAP。而 WAF 通过监控网络流量提供保护,因此只支持 Web 应用程序(HTTP)。此外,WAF 需要特定的解析器、协议分析工具或其他组件来分析应用程序使用的其他网络协议,这会导致一些兼容性与性能问题。
更全面的保护:WAF 在分析与过滤用户输入并检测有害行为方面还是比较有效的,但是对应用程序的输出检查则毫无办法。RASP 不但能监控用户输入,也能监控应用程序组件的输出,这就使 RASP 具备了全面防护的能力。RASP 解决方案能够定位 WAF 通常无法检测到的严重问题——未处理的异常、会话劫持、权限提升和敏感数据披露等等。Gartner 分析师 Joseph 很清楚地描述了这一点。
可以与 SAST 完美集成:RASP 可以与 SAST 方案无缝集成,比如静态代码分析工具(SCA)。这使得企业全程掌控产品的整个生命周期,从早期的开发阶段,一直到后期制作和部署。WAF 工具根本无法做到这一点,也不能提供任何补救措施。将 RASP 和 SAST 结合使用可以带来两个显著的好处:
提供虚拟补丁:在很多情况下,可以使用扫描工具在开发阶段发现所有已知漏洞,但由于资源和上线周期的压力,没有办法修复所有漏洞,带病上线是常有的事情。借助 RASP,企业可以放心地发布产品。RASP 就像一个大的虚拟补丁将所有漏洞都在线修复。系统可以安全运行,在资源允许的情况下再修复和更新这些漏洞。
快速缓解攻击:从另外一个角度看,使用 RASP 能快速定位漏洞,这得益于 SAST 的先期扫描结果,RASP 和 SAST 的结合使用对于大型企业尤其重要,快速修复漏洞能节约大量时间,大幅降低漏洞带来的风险。这是 WAF 所无法提供的。
诚然,WAF 是一个值得尊敬的后期安全保护工具,但是它先天的缺点导致公司不得不考虑其他选择。使用 RASP 解决方案能根本性提升应用程序的自动免疫能力,即便黑客攻击已渗入应用程序内部,也能从容应对。随着黑客技术日趋复杂,应用程序的安全性也必须发展提高。RASP 和 SAST 的组合,可以说是当今最好的应用安全保护组合。
RASP 提供商
RASP 是一个新兴的概念,现在能真正提供 RASP 服务的公司并不多,惠普是一个比较出名的大厂商有。但在国内只有一家安全初创企业 OneASP 在做 RASP 的产品,这也是一款拥有完全知识产权的国产安全产品。OneRASP(实时应用自我保护)是一种基于云的应用程序自我保护服务, 可以为软件产品提供实时保护,使其免受漏洞所累。
RASP 完爆 WAF 的5大理由!的更多相关文章
- libgo协程库:网络性能完爆ASIO异步模型(-O3测试)
在purecpp社区的github组织中有一个协程库:https://github.com/yyzybb537/libgo 近日有用户找到我,想要了解一下libgo库在网络方面的性能,于是选取已入选标 ...
- 完爆Facebook/GraphQL,APIJSON全方位对比解析(三)-表关联查询
相关阅读: 完爆Facebook/GraphQL,APIJSON全方位对比解析(一)-基础功能 完爆Facebook/GraphQL,APIJSON全方位对比解析(二)-权限控制 自APIJSON发布 ...
- 我喜欢ASP.NET的MVC因为它牛逼的9大理由(转载)
我很早就关注ASP.NET的mvc的,因为最开始是学了Java的MVC,由于工作的原因一直在做.Net开发,最近的几个新项目我采用了MVC做了,我个一直都非常喜欢.Net的MVC.我们为什么使用MVC ...
- 高校应该使用 Drupal 的10大理由
使用 Drupal 已经成为全球顶尖高校中的一种潮流,它已经被全球数以百计的院校选择并应用,无论是哈佛.斯坦福.杜克.布朗.罗格斯.剑桥.耶鲁还是其它众多知名高校,都已经选择 Drupal 作为它们理 ...
- 你该学点HTML/CSS知识的9大理由
每个人都应该学写代码——这一观点简直就是铺天盖地地映入我们眼帘.或许你会莫名其妙,程序员学代码那是理所应当,但是作为一个作家.营销人员.财务工作者甚至是工人,为什么也需要学习代码呢? 好吧,下面我会告 ...
- Spring流行的十大理由
Spring大概是每个JAVA程序员都听过的框架,但是它为什么能这么流行? 听到咕泡学院的Tom老师的公开课,下面是他总结的阿里为什么选择Spring的十大理由,我觉得这也是Spring能流行的原因: ...
- 使用Visual Studio进行 Android开发的十大理由
[原文发表地址]Top 10 reasons to use Visual Studio for C++ Android Development! Visual Studio: C++跨平台的移动解决方 ...
- 选择阿里云数据库HBase版十大理由
根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场. 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大 ...
- oracle DBA坚持写博客的7大理由
对于Oracle DBA来说,甚至IT技术人员来说.坚持写博客是个好习惯.以下是我建议大家写博客的七个理由. 帮助整理思路 最近我做出了一个决定,那就是: 我要坚持天天写博客,记录每天所学的重要东西. ...
随机推荐
- Oracle 12c Dataguard 数据库恢复
http://allthingsoracle.com/rolling-forward-a-physical-standby-database-using-the-recover-command/ 当主 ...
- Swift类型检查与转换
继承会发生在子类和父类中,如图所示,是一系列类的继承关系类图,Person是类层次结构中的根类,Student是Person的直接子类,Worker是Person的直接子类.这个继承关系类图的具体实现 ...
- HTML+CSS学习笔记 (7) - CSS样式基本知识
HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...
- pl/sql developer 中文字段显示乱码
在windows中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样 ...
- C++ typedef用法小结
一.typedef的四个用法 用法一: 为复杂的声明定义一个新的简单的别名.方法是:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的就是原声明的最简化版.举例 ...
- IOS中一个简单的粒子效果实现
1.效果图展示 2.实现思路 1> 首先要实现上面的效果,第一步要处理的就是一个简单的画板,在View上面用鼠标滑动的时候画出线条,这个功能可使用UIBezierPath实现 2> 关于粒 ...
- asp.net 中使用less
首先 ,需要知道 whats the less; 实际上less 只是针对css比较难于维护和抽象这种现象,而创造的一个工具. 然后,在抛开语言环境的情况下(例如.net 是vs环境,java是ecl ...
- MVC3缓存:使用页面缓存
在以前的WebForm的开发中,在页面的头部加上OutputCache即可启用页面缓存,而在MVC3中,使用了Razor模板引擎的话,该如何使用页面缓存呢?如何启用 在MVC3中要如果要启用页面缓存, ...
- .net 页面跳转方式【转】
1 Response.Redirect这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录 ...
- 两个list 求交集效率对比
__author__ = 'daitr' #--coding:utf-8-- import datetime #方法一: #a=[2,3,4,5] #b=[2,5,8] #tmp = [val for ...