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(实时应用自我保护)是一种基于云的应用程序自我保护服务, 可以为软件产品提供实时保护,使其免受漏洞所累。