Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

在我们之前有关云主题的材料中,我们 告诉、如何保护公共云中的 IT 资源以及为什么传统防病毒软件并不完全适合这些目的。 在这篇文章中,我们将继续云安全主题,讨论 WAF 的演变以及更好的选择:硬件、软件还是云。 

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

什么是WAF

超过75%的黑客攻击是针对Web应用程序和网站的漏洞:此类攻击通常对于信息安全基础设施和信息安全服务来说是不可见的。 反过来,Web 应用程序中的漏洞会带来用户帐户和个人数据、密码和信用卡号的泄露和欺诈风险。 此外,网站中的漏洞也是攻击者进入公司网络的入口点。

Web 应用程序防火墙 (WAF) 是一个保护屏障,可阻止对 Web 应用程序的攻击:SQL 注入、跨站点脚本、远程代码执行、暴力破解和授权绕过。 包括利用零日漏洞的攻击。 应用程序防火墙通过监控网页内容(包括 HTML、DHTML 和 CSS)并过滤潜在的恶意 HTTP/HTTPS 请求来提供保护。

第一个决定是什么?

创建 Web 应用程序防火墙的首次尝试是在 90 年代初进行的。 据了解,至少有三名工程师曾在该领域工作过。 第一个是普渡大学计算机科学教授 Gene Spafford。 他描述了代理应用程序防火墙的体系结构,并于 1991 年在书中发表 《UNIX 安全实践》.

第二名和第三名是来自贝尔实验室的信息安全专家 William Cheswick 和 Marcus Ranum。 他们开发了第一个应用程序防火墙原型。 它由 DEC 分发 - 该产品以 SEAL(安全外部访问链接)的名称发布。

但 SEAL 并不是一个成熟的 WAF 解决方案。 它是一款具有高级功能的经典网络防火墙 - 能够阻止对 FTP 和 RSH 的攻击。 因此,今天第一个WAF解决方案被认为是Perfecto Technologies(后来的Sanctum)的产品。 1999年她 提交 应用盾系统。 当时,Perfecto Technologies正在开发电子商务信息安全解决方案,网上商店成为他们新产品的目标受众。 AppShield能够分析HTTP请求并根据动态信息安全策略阻止攻击。

与 AppShield 大约在同一时间(2002 年),第一个开源 WAF 出现。 他成为了 ModSecurity的。 它是为了普及WAF技术而创建的,并且仍然受到IT社区的支持(这里是 GitHub 上的存储库)。 ModSecurity 基于一组标准正则表达式(签名)阻止对应用程序的攻击 - 用于根据模式检查请求的工具 - OWASP 核心规则集.

结果,开发人员成功实现了他们的目标——新的WAF解决方案开始出现在市场上,包括基于ModSecurity构建的解决方案。

三代已经成为历史

习惯上区分三代WAF系统,它们随着技术的发展而演变。

第一代。 使用正则表达式(或语法)。 这包括 ModSecurity。 系统提供商研究对应用程序的攻击类型,并生成描述合法和潜在恶意请求的模式。 WAF 检查这些列表并决定在特定情况下做什么 - 是否阻止流量。

基于正则表达式的检测的一个例子就是前面提到的项目 核心规则集 开源。 另一个例子 - 纳克西,这也是开源的。 具有正则表达式的系统有许多缺点,特别是当发现新漏洞时,管理员必须手动创建额外的规则。 在大规模IT基础设施的情况下,可能有数千条规则。 管理如此多的正则表达式是相当困难的,更不用说检查它们会降低网络性能。

正则表达式也有相当高的误报率。 著名语言学家诺姆·乔姆斯基提出了语法分类,他将语法分为四个条件复杂性级别。 根据这种分类,正则表达式只能描述不涉及偏离模式的防火墙规则。 这意味着攻击者可以轻松“欺骗”第一代WAF。 解决此问题的一种方法是向应用程序请求添加特殊字符,这些特殊字符不会影响恶意数据的逻辑,但会违反签名规则。

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

第二代。 为了规避 WAF 的性能和准确性问题,开发了第二代应用防火墙。 他们现在拥有负责识别严格定义的攻击类型(针对 HTML、JS 等)的解析器。 这些解析器使用描述查询的特殊标记(例如变量、字符串、未知、数字)。 潜在的恶意令牌序列被放置在一个单独的列表中,WAF 系统会定期检查该列表。 这种方法首次以 C/C++ 的形式在 Black Hat 2012 会议上展示 lib注入库,它允许您检测 SQL 注入。

与第一代 WAF 相比,专用解析器速度更快。 然而,他们并没有解决当新的恶意攻击出现时手动配置系统的困难。

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

第三代。 第三代检测逻辑的演变包括使用机器学习方法,使检测语法尽可能接近受保护系统的真实 SQL/HTML/JS 语法。 该检测逻辑能够使图灵机适应递归可枚举语法。 此外,在第一个神经图灵机研究发表之前,创建适应性强的图灵机的任务一直无法解决。

机器学习提供了独特的能力,可以调整任何语法以覆盖任何类型的攻击,无需根据第一代检测的要求手动创建签名列表,也无需为新的攻击类型(例如 Memcached、Redis、Cassandra、SSRF 注入)开发新的分词器/解析器,按照第二代方法的要求。

通过结合所有三代检测逻辑,我们可以绘制一个新的图表,其中第三代检测由红色轮廓表示(图3)。 这一代包括我们与 Onsek 一起在云中实施的解决方案之一,Onsek 是 Web 应用程序和 Wallarm API 自适应保护平台的开发商。

检测逻辑现在使用来自应用程序的反馈来进行自我调整。 在机器学习中,这种反馈循环称为“强化”。 通常,有一种或多种类型的此类强化:

  • 应用响应行为分析(被动)
  • 扫描/模糊器(主动)
  • 报告文件/拦截程序/陷阱(事后)
  • 手册(由主管定义)

因此,第三代检测逻辑还解决了准确性的重要问题。 现在不仅可以避免误报和漏报,还可以检测有效的真漏报,例如检测控制面板中的 SQL 命令元素使用情况、网页模板加载、与 JavaScript 错误相关的 AJAX 请求等。

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

接下来,我们将考虑各种WAF实施方案的技术能力。

硬件、软件还是云——该选择什么?

实施应用程序防火墙的选项之一是硬件解决方案。 此类系统是公司在其数据中心本地安装的专用计算设备。 但在这种情况下,你必须购买自己的设备并向集成商付费以进行设置和调试(如果公司没有自己的IT部门)。 与此同时,任何设备都会过时且无法使用,因此客户被迫为硬件升级制定预算。

部署 WAF 的另一个选择是软件实施。 该解决方案作为某些软件的附加组件安装(例如,ModSecurity 配置在 Apache 之上),并与其运行在同一台服务器上。 通常,此类解决方案既可以部署在物理服务器上,也可以部署在云端。 它们的缺点是可扩展性和供应商支持有限。

第三个选项是从云端设置 WAF。 此类解决方案由云提供商作为订阅服务提供。 公司不需要购买和配置专门的硬件;这些任务落在服务提供商的肩上。 重要的一点是,现代云 WAF 并不意味着将资源迁移到提供商的平台。 该站点可以部署在任何地方,甚至可以部署在本地。

我们将进一步解释为什么人们现在越来越关注云 WAF。

WAF在云端可以做什么

从技术能力来看:

  • 提供者负责更新。 WAF 通过订阅提供,因此服务提供商会监控更新和许可证的相关性。 更新不仅涉及软件,还涉及硬件。 提供商升级服务器园区并对其进行维护。 它还负责负载平衡和冗余。 如果WAF服务器出现故障,流量会立即重定向到另一台机器。 合理的流量分配可以避免防火墙进入故障打开模式的情况 - 它无法应对负载并停止过滤请求。
  • 虚拟补丁。 虚拟补丁会限制对应用程序受损部分的访问,直到开发人员关闭漏洞。 因此,云提供商的客户有机会平静地等待这个或那个软件的供应商发布官方“补丁”。 尽快完成此任务是软件供应商的首要任务。 例如,在Wallarm平台中,一个单独的软件模块负责虚拟补丁。 管理员可以添加自定义正则表达式来阻止恶意请求。 该系统可以使用“机密数据”标志来标记某些请求。 然后它们的参数被屏蔽,并且在任何情况下都不会传输到防火墙工作区域之外。
  • 内置周边和漏洞扫描器。 这使您可以使用 DNS 查询和 WHOIS 协议中的数据独立确定 IT 基础设施的网络边界。 之后,WAF自动分析边界内运行的服务(执行端口扫描)。 该防火墙能够检测所有常见类型的漏洞 - SQLi、XSS、XXE 等 - 并识别软件配置中的错误,例如,未经授权访问 Git 和 BitBucket 存储库以及对 Elasticsearch、Redis、MongoDB 的匿名调用。
  • 通过云资源监控攻击。 通常,云提供商拥有大量的计算能力。 这使您能够高精度、快速地分析威胁。 云端部署了过滤节点集群,所有流量都经过过滤节点集群。 这些节点阻止对 Web 应用程序的攻击并将统计数据发送到分析中心。 它使用机器学习算法来更新所有受保护应用程序的阻止规则。 这种方案的实现如图所示。 4. 这种量身定制的安全规则最大限度地减少了防火墙错误警报的数量。

Web应用防火墙的演变:从防火墙到基于机器学习的云保护系统

现在简单介绍一下云WAF在组织问题和管理方面的特点:

  • 过渡到运营支出。 就云 WAF 而言,实施成本为零,因为提供商已支付所有硬件和许可证的费用;服务费用通过订阅支付。
  • 不同的资费计划。 云服务用户可以快速启用或禁用其他选项。 功能通过单个控制面板进行管理,这也是安全的。 它通过 HTTPS 访问,此外还有基于 TOTP(基于时间的一次性密码算法)协议的双因素身份验证机制。
  • 通过 DNS 连接。 您可以自行更改 DNS 并配置网络路由。 为了解决这些问题,无需招募和培训个别专家。 通常,提供商的技术支持可以帮助进行设置。

WAF 技术已经从使用经验规则的简单防火墙发展到使用机器学习算法的复杂保护系统。 应用程序防火墙现在提供了在 90 年代难以实现的广泛功能。 在许多方面,由于云技术,新功能的出现成为可能。 WAF 解决方案及其组件不断发展。 就像信息安全的其他领域一样。

该文本由云提供商 #CloudMTS 的信息安全产品开发经理 Alexander Karpuzikov 编写。

来源: habr.com

添加评论