Home Blogs Edgio WAAP规则–打造混乱的秩序
Applications

Edgio WAAP规则–打造混乱的秩序

About The Author

Outline

我的一天充满了来自当前和潜在客户的问题。 我热爱回答的一个问题是,是什么让我们的Web应用程序和API保护(WAAP)以及我们的安全规则集如此准确。 考虑到过去几年中出现的新攻击向量和漏洞,准确性至关重要。 事实上,网络安全和基础设施安全局(CISA)最近在其已知的利用漏洞目录中添加了66个新漏洞,2022年新的CVE同比增长超过25%。 CISA不是唯一关心安全性和性能. 根据最近的一项调查,企业希望减少误报,误报,警报疲劳和改进安全管理。 那么是什么让Edgio WAAP规则更有效呢? 在较高的层次上,它与我们运行WAAP规则的特殊顺序以及混合签名和异常评分模式与托管规则有关。 我们通过自主研发的waflz引擎在几毫秒内执行这些流程,从而在不牺牲性能的情况下提供安全性。 让我们深入了解一下。

将洋葱剥回去

在回顾托管规则的内部工作原理之前,让我们来看看WAAP中保护的不同层(双关语)。 WAAP的每一层都发挥着重要作用。 以下信息概述了其功能。

访问控制规则

访问控制规则提供了创建模块化允许列表,拒绝列表和积极安全访问列表的能力,以通过IP地址,匿名代理,国家/地区,ASN,地理区域代码,用户代理,Cookie,引用者,URL,HTTP请求方法,内容类型,文件扩展名,文件大小和请求标头来控制对受保护站点的访问。

速率限制规则

速率限制规则限制HTTP请求流向受WAAP保护的应用程序,以防止恶意或无意的应用程序DDoS流量,并防止客户的应用程序服务器因来自攻击或意外流量高峰的请求而过载。

Bot Manager规则

爬虫程序管理器检测到良好和恶意爬虫程序。 它提供多种选项来缓解不必要的自动化或恶意爬虫程序,并防止它们到达您的应用程序。 这可保护您的网站免受恶意爬虫程序的攻击,这些爬虫程序执行凭据填充,抓取内容,梳理,发送垃圾邮件,发起DDoS攻击和实施广告欺诈。

自定义规则

自定义规则将强大的WAAP引擎置于您的手中,以创建您自己的安全规则。 恶意流量是使用变量组合识别的(即请求标头,正文,查询,方法,URL,cookie等)。 此方法为威胁检测提供了额外的灵活性,使您能够筛选特定的恶意请求并采取措施缓解这些请求。 自定义威胁识别与快速测试和部署相结合,使您能够通过创建虚拟修补程序快速解决长期和零日漏洞。

托管规则

Edgio的托管规则通过Edgio管理的专有规则集识别恶意流量。 托管规则包含500多条规则,分布在三个类别中:
  1. Edgio专有规则。
  2. 特定于应用程序的高级规则。
  3. 通用OWASP规则。
它全面收集不同攻击类别和应用程序的各种安全策略和规则。 在执行威胁评估时,可以通过排除某些变量(例如,Cookie,标头和请求参数/查询字符串)自定义每个托管规则,以防止误报。 如您所见,我们的WAAP规则有许多层,在每一层中,我们的WAAP必须运行的规则和条件可能从几十到几百个不等。 每个规则都提供了引入误报和影响绩效的概率。 更复杂的是,Edgio WAAP提供了在Dual WAAP模式下运行的独特功能,在这种模式下,您可以同时为生产流量运行两个版本的访问控制规则,自定义规则和托管规则安全配置。 我们将在不断增强安全解决方案的同时增加额外的保护层。 这就引发了一个问题:我们如何确保我们的WAAP在所有这些功能和规则的混乱中准确高效地处理数百万个请求?

创造秩序摆脱混乱

除了拥有专为在高性能多租户环境中进行扩展而设计的强大的自行开发的waflz引擎之外,关键在于创建正确的操作顺序,以最高效,最有效地运行WAAP。 为此,我们的WAAP按以下顺序运行其不同的规则模块层:
  1. 访问控制规则:所有请求都由一组由前面提到的变量组成的客户配置的允许/拒绝/访问列表进行过滤。 WAAP将丢弃与拒绝列表匹配的任何请求,从而防止进一步处理任何不需要的流量。
  2. 速率限制规则然后,速率限制规则跟踪通过访问控制规则的请求,速率限制规则跟踪每个客户端在配置指定的时间窗口内的请求。 WAAP丢弃超过特定请求速率阈值的请求,从而进一步削减请求卷,使其无法继续执行下一步。
  3. 爬虫程序管理器规则:达到此步骤的每个请求都由我们的ML平台检查,以确定它们是否基于爬虫程序,这些请求签名和行为的组合。 任何恶意爬虫程序请求都可以通过各种方式缓解,包括浏览器挑战,自定义响应或验证码。 大多数攻击都是通过自动化客户端发起的,这使得爬虫程序管理器成为缓解这些攻击的有效解决方案,并进一步减少后续规则模块需要处理的请求量。
  4. 自定义规则:在此步骤中,WAAP使用客户创建的各种自定义筛选器检查请求,以检测和缓解不需要的请求。 这可能包括客户可以实时部署的任何特定于应用程序的规则,以缓解零日漏洞,而无需等待受管WAAP规则集更新。 这是一个非常宝贵的工具,可用于查看和控制特定攻击。 由于自定义规则的特殊性,它们优先于Edgio管理的规则,并在将请求传递到最终图层之前对其进行处理。
  5. 托管规则:任何到达此阶段的请求都将由Edgio专有,高级应用程序特定和通用OWASP类别的托管500+规则处理。

按顺序处理每个请求(如图1所示)可确保执行多层过滤。 这有助于我们在请求触及托管规则之前捕获客户正在寻找的攻击(即被拒绝列出的IP/国家/地区,应用程序DDoS/HTTP泛洪,自动化客户端和特定的自定义请求签名)。

但是,这只是安全案例的一部分。

WAAP的有效性不仅仅取决于其抵御攻击的能力(真实阳性),还取决于其阻止合法流量(误报)的能力。 让我们回顾一下我们如何捕获大多数应用程序攻击,同时减少误报。

更深入地了解Edgio托管规则

当请求到达托管规则时,我们专有的Edgio规则集会对其进行评估,该规则包含500多条规则,旨在抵御广泛的应用程序攻击。 这增加了一层复杂性,因为规则种类繁多[即通用SQL注入(SQLi ),跨站点脚本(XSS)和远程代码执行(RCE)规则]以及特定的WordPress,Joomla和Apache Struts规则。 需要认真确定优先级,以确保它们相互补充,从而最大限度地提高准确性。

与前面提到的规则模块一样,关键是托管规则集每个类别之间的操作顺序。

在托管规则中,不同规则类别按以下顺序处理请求:Edgio专有规则>高级应用程序特定规则>通用OWASP规则。

  1. Edgio专有规则和应用程序特定规则查找与特定类型应用程序的特定漏洞关联的签名。 这些规则涵盖应用程序(即Apache Struts,WordPress,Joomla,Drupal,SharePoint,cpanel等),并且在检测这些应用程序的攻击时具有高度精确的准确性。 我们将这些规则设计为在签名(又称二进制)模式下运行,这意味着触发这些规则的任何请求都会导致操作。 这些规则提供了一种更为手术的方法来匹配和过滤特定攻击向量与应用程序;因此,它们是Edgio规则集筛选器的第一层。 由于请求与专有规则和应用程序特定规则不匹配仍会给客户的应用程序带来风险,因此我们需要另一种方法来检测下一阶段的潜在攻击。

  2. Edgio规则集中的通用OWASP规则查找与不同常见攻击类别(即SQLi,XSS,RCE,协议违规,本地文件包含(LFI),远程文件包含(RFI)等)关联的签名组合。 这些规则一起工作以确定请求是否显示适合攻击类别的签名组合。 这些通用规则在异常评分模式下运行,允许客户通过调整异常评分阈值来定义规则敏感性,以控制需要触发多少规则才能将请求视为恶意请求。 异常得分阈值越低,通用规则集越敏感或越严格,潜在恶意请求越容易超出阈值。 客户可以根据应用程序类型及其风险承受能力灵活调整WAAP的灵敏度。 通用OWASP规则可作为满足特定攻击特征但不一定适合特定应用程序漏洞的请求的最终全面保护。

WAAP/Dual WAF Diagram

图1:Edgio WAAP工作流程

图2:我们的托管规则按照专门设计的顺序运行,以最大限度地提高检测率并最大限度地减少误报。

提高托管规则准确性的另一个重要功能是规则的可自定义性。 500多个托管规则中的每个规则都可以自定义为忽略特定的请求参数(即请求标头,Cookie,查询和正文参数)。 这使客户能够使用简单的用户界面或API快速消除误报。

把所有的部分放在一起

现在,您已通过我们的WAAP完成HTTP请求。 由于我们的高性能WAAP在运行我们的内容交付服务的同一堆栈上本机运行,因此在全球所有300个入网点(POP)的每台Edgio服务器中每天发生数十亿次的事情。 在这个博客的开头,我提到我得到了很多关于我们的WAAP的问题。 我希望您现在了解它与其他解决方案的区别。 我们将智能操作顺序与各种WAAP规则模块(从ACL到速率限制到爬虫程序和自定义规则),托管规则(从特定规则到通用规则)以及混合签名和异常评分模式相结合,以确保不会影响性能。

考虑这个类比:设计和组装WAAP组件就像做汉堡一样。 这不仅仅是为了拥有正确的食材,而是为了以正确的方式将它们组合在一起,以制作一顿丰盛的大餐。 以不同方式组合的相同成分可能会极大地影响客户的口味和体验。