Google Cloud Armor 自动调节式保护概览

Google Cloud Armor 自动调节式保护可帮助保护您的 Google Cloud 应用、网站和服务免受 L7 分布式拒绝服务 (DDoS) 攻击,例如 HTTP 洪水和其他高频第 7 层(应用级)恶意行为。自动调节式保护可构建执行以下操作的机器学习模型:

  1. 检测异常活动并发出提醒
  2. 生成描述潜在攻击的特征
  3. 生成自定义 Google Cloud Armor WAF 规则以阻止特征

您可以根据安全政策启用或停用自动调节式保护。

有关异常流量(潜在攻击,包括攻击特征)的提醒与发送到 Cloud Logging 的事件日志显示在自动调节式保护事件信息中心中,在其中,您可以直接进行分析,或转发到下游日志或安全事件监控工作流。此外,针对潜在探测的提醒会作为发现结果在 Security Command Center 中生成。

自动调节式保护的可用性

虽然 Google Cloud Armor 自动调节式保护处于预览版阶段,但 Google Cloud Armor 客户可针对自动调节式保护配置单独的安全政策。但是,在 Managed Protection 正式版发布后,只有订阅了 Google Cloud Armor Managed Protection Plus 的客户才能使用自动调节式保护。

如果您的项目尚未注册 Managed Protection Plus,请参阅使用 Managed Protection,了解如何注册。

Cloud Logging 和 Cloud Monitoring

由于有效使用自动调节式保护需要您了解日志记录和提醒在 Google Cloud 中的工作原理,因此我们建议您熟悉 Cloud Logging、提醒和提醒政策。如需了解详情,请参阅 Cloud Logging 文档有关提醒的 Cloud Monitoring 文档

配置和调整提醒

您可以在 Google Cloud Armor 安全政策保护应用的项目中启用自动调节式保护。在您为特定安全政策启用自动调节式保护后,自动调节式保护将对所有与安全政策关联的后端服务有效。

启用自动调节式保护后,至少经过一小时的训练期,自动调节式保护才会制定可靠基准,开始监控流量并生成提醒。在训练期间,自动调节式保护会对传入流量和特定于每个后端服务的使用模式进行建模,以便为每个后端服务制定基准。训练期结束后,如果自动调节式保护在定向到任何与相应安全政策关联的后端服务的流量中识别出高频异常或大量异常,则您会收到实时提醒。

您可以根据多个指标调整自动调节式保护提醒。发送到 Cloud Logging 的提醒包括置信度、建议规则,以及与建议的规则关联的预估受影响基准率

  • 置信度水平表示自动调节式保护模型预测流量模式中实测变化为异常情况所依据的置信度。
  • 与建议的规则关联的受影响基准率表示由相应规则捕获的现有基准流量所占的百分比。

您可以根据置信度水平和受影响的基准率,在 Cloud Logging 中过滤提醒。如需详细了解如何调整提醒,请参阅管理提醒政策

使用和解读提醒

自动调节式保护检测到可疑攻击后,它会立即在自动调节式保护事件信息中心中生成一个事件,并在 Cloud Logging 中生成一个日志项。提醒位于日志项的 JSON 载荷中。日志项在 Cloud Logging 中的网络安全政策资源下生成。日志消息会识别被攻击的后端服务,并包含置信度分数,指示强大的自动调节式保护功能如何将识别的流量模式更改评定为异常。日志消息还包含攻击特征,描述了攻击流量的特征,以及建议的可能适用于缓解攻击的 Google Cloud Armor 规则。

了解攻击特征

自动调节式保护提醒包括攻击特征,即对潜在攻击的流量特性的说明。您可以使用特征来识别和阻止(可能情况下)攻击。该特征采用两种形式:用户可读表和预构建的 Google Cloud Armor WAF 规则,您可以在相关安全政策中进行部署。

特征由一组特性组成,例如来源 IP 地址、地理区域、Cookie、用户代理、引荐来源和其他 HTTP 请求标头,以及被认为与潜在攻击流量关联的特性的一组值。用户无法对这组特性进行配置。特性值取决于发送到后端服务的传入流量的值。

对于自动调节式保护认为指示潜在攻击的每个特性值,自动调节式保护会列出以下内容:

  • 是攻击的可能性
  • 特性在攻击中所占比例,即在检测到攻击时,具有该值的潜在攻击流量所占的百分比
  • 特性在基准中所占比例,即在检测到攻击时,具有该特性值的基准流量所占的百分比

Cloud Logging 条目规范包含有关每条提醒中的信息的详情。

下面是一个包含潜在攻击特征的用户可读表示例:

特性名称 属性值 是攻击的可能性 攻击比例 基准比例
UserAgent "foo" 0.7 0.85 0.12
UserAgent "bar" 0.6 0.7 0.4
来源 IP "a.b.c.d" 0.95 0.1 0.01
来源 IP a.b.c.e 0.95 0.1 0.01
来源 IP a.b.c.f 0.05 0.1 0.1
RegionCode 英国 0.64 0.3 0.1
RegionCode IN 0.25 0.2 0.3

自动调节式保护提醒和相关 Cloud Logging 事件日志包含以下内容:

  • 唯一提醒 ID 或 alertID,它用于在报告用户反馈时引用特定提醒(详情请参阅下文)
  • 被攻击的后端服务或 backendService
  • 置信度分数或 confidence,即 0 到 1 之间的数字,表示强大的自动调节式保护系统如何将检测到的事件评定为恶意攻击

您还会收到一组特征和规则,用于描述检测到的攻击的特征。具体来说,该组特征会提供一个 headerSignatures 列表,每个特征对应一个 HTTP 标头,并包含该特定标头的 significantValues 列表。

下面是一个特征示例:

...
headerSignatures: [
  0: {
   name: "Referer"
   significantValues: [
    0: {
     value: "foo.attacker.com"
     attackLikelihood: 0.95
     proportionInAttack: 0.6
     proportionInBaseline: 0.01
    }
   ]
  }
...

提醒表示标头 Referer 中的 foo.attacker.com 值对描述攻击特征很重要。更具体地说,在全部流量中,60% 的攻击流量 (proportionInAttack) 具有此 Referer 值,只有 1% 的基准流量 (proportionInBaseline) 具有相同的 Referer 值。此外,在与此 Referer 值匹配的所有流量中,95% 的流量为攻击流量 (attackLikelihood)。

这些值表示,如果您要阻止以 Referer 作为名称和值 foo.attacker.com 的所有流量,则会成功阻止 60% 的攻击流量和 1% 的基准流量。

部署建议的规则

自动调节式保护提醒还会提供建议的 Google Cloud Armor 规则,这些规则采用自定义规则语言表示。此规则可用于在 Google Cloud Armor 安全政策中创建规则来减少攻击。除了特征之外,提醒还包括受影响的基准流量率,帮助您评估部署规则的影响。受影响的基准流量率是指与自动调节式保护识别的攻击特征匹配的预计基准流量比例。

您可以在发送到 Cloud Logging 的日志消息中找到部分提醒特征以及受影响的基准率。下面是示例提醒的 JSON 载荷。

...
@type: "type.googleapis.com/dos.ml.pb.CloudArmorAlert"
 alertId: "11275630857957031521"
 backendService: "test-service"
 confidence: 0.71828485
 headerSignatures: [

  0: {
   name: "RequestUri"
   significantValues: [
    0: {
     attackLikelihood: 0.88
     proportionInAttack: 0.85
     proportionInBaseline: 0.01
     value: "/"
    }
   ]
  }
  1: {
   name: "RegionCode"
   significantValues: [
    0: {
     attackLikelihood: 0.08
     proportionInAttack: 0.17
     proportionInBaseline: 0.28
     value: "US"
    }
    1: {
     attackLikelihood: 0.68
     proportionInAttack: 0.09
     proportionInBaseline: 0.01
     value: "DE"
    }
    2: {
     attackLikelihood: 0.74
     proportionInAttack: 0.05
     proportionInBaseline: 0
     value: "MD"
    }
   ]
  }
   2: {
   name: "UserAgent"
   significantValues: [
    0: {
     attackLikelihood: 0.92
     proportionInAttack: 0.85
     proportionInBaseline: 0
     value: "Unusual browser"
    }
    1: {
     attackLikelihood: 0.87
     proportionInAttack: 0.7
     proportionInBaseline: 0.1
     missing: true
    }
   ]
  }
 ]
 suggestedRule: [
  0: {
   action: "DENY"
   evaluation: {
     impactedAttackProportion: 0.95
     impactedBaselineProportion: 0.001
   }
   expression: "evaluateAdaptiveProtection('11275630857957031521')"
  }
 ]
Attack_size: 5000
}
}
...

如需部署建议的规则,您可以从规则特征中复制 CEL 表达式,然后将该表达式粘贴到新创建的规则的匹配条件中,或点击 Google Cloud Armor 界面中自动调节式保护信息中心上的应用按钮。

如需部署规则,您需要在保护由提醒识别的目标后端服务的 Google Cloud Armor 安全政策中创建一条新规则。接下来,在规则配置期间,将提醒中的 CEL 表达式复制并粘贴到规则的匹配条件字段中,并将规则操作设置为 deny。在上面的示例中,您从提醒的 suggestedRule 部分复制了表达式 evaluateAdaptiveProtection('11275630857957031521')

我们强烈建议您先在预览模式下部署规则,以便评估规则对生产流量的影响。执行此操作后,Google Cloud Armor 会在每次触发规则时记录操作和关联的流量,但不会对匹配的流量执行任何操作。

此外,如果您的安全政策关联到多个后端服务,请注意新规则的效果是否会对任何后端服务产生不良影响。如果产生不良影响,请配置新的安全政策以缓解不良影响,并将该政策关联到正确的后端服务。

部署建议的自动调节式保护规则
部署建议的自动调节式保护规则(点击可放大)

我们建议您将新规则的优先级设置为高于其操作设置为允许的所有规则。这是因为,为了对缓解攻击产生预期的影响和最大程度的影响,规则应部署在最高逻辑优先级位置,以确保所有匹配的流量的流量被规则阻止。Google Cloud Armor 安全政策中的规则按优先级顺序进行评估,并且评估在第一个匹配规则触发且关联的规则操作执行后终止。如果您需要针对来自此规则的部分流量或特定客户端授权异常,则可以创建优先级更高的“允许”规则,即数值更低。如需详细了解规则优先级,请参阅规则评估顺序

监控、反馈和报告事件错误

您需要具备以下权限才能查看自动调节式保护信息中心或与之交互。

  • compute.securityPolicies.list
  • compute.backendServices.list
  • logging.logEntries.list

对任何 Google Cloud Armor 安全政策启用自动调节式保护后,您可以在网络安全 > Google Cloud Armor 面板下看到以下页面。该页面显示选定的安全政策和后端服务在一段时间内的流量,以及选定的时长。由自动调节式保护提醒的任何潜在攻击实例都在图表上进行了注释,并列在图表下方。当您点击特定攻击事件时,系统会显示一个侧边窗口,其中包含以表格格式显示的攻击特征和建议的规则。这些信息与 Cloud Logging 条目规范中描述的 Cloud Logging 日志条目中的信息相同。点击应用按钮可以将建议的规则添加到同一安全政策中。

自动调节式保护信息中心
自动调节式保护信息中心(点击可放大)
自动调节式保护提醒详细信息
自动调节式保护信息中心(点击可放大)

考虑到受保护后端服务的唯一上下文和环境因素,并非每个自动调节式保护发现结果都被视为攻击。如果您确定提醒所描述的潜在攻击是正常或可接受的行为,则可以报告事件错误,以帮助训练自动调节式保护模型。图表下方列出的每个攻击事件的旁边是一个按钮,可弹出一个交互式窗口,以允许您使用一些可选上下文报告事件错误。报告事件错误有助于降低将来出现类似错误的可能性。随着时间的推移,报告事件错误会提高自动调节式保护的准确度。

监控、提醒和日志记录

自动调节式保护遥测数据会发送到 Cloud Logging 和 Security Command Center。本文档前面的部分介绍了发送到 Cloud Logging 的自动调节式保护日志消息。每当自动调节式保护检测到潜在攻击时,系统都会生成日志条目,并且每个条目都包含置信度分数,用于描述模型对于实测流量为异常的置信度。如需微调提醒,您可以在 Cloud Logging 中将提醒政策配置为只有在自动调节式保护日志消息具有的置信度分数高于用户指定的阈值时才触发提醒。我们建议您开始设置置信度大于 0.5 的低阈值,以避免缺少潜在攻击警告。如果提醒具有不可接受的受影响基准率,则随着时间的推移提醒政策中的置信度阈值可能会增加。

Security Command Center 信息中心还包含来自自动调节式保护的发现结果。这些发现结果位于应用 DDoS 攻击类别下的 Google Cloud Armor 卡片中。每个发现结果都包含服务的详细信息、攻击置信度、与攻击关联的特征,以及指向自动调节式保护信息中心上的特定提醒的链接。

Cloud Logging 条目规范

发送到 Cloud Logging 的自动调节式保护提醒由包含以下元素的日志条目组成:

  • 提醒置信度:自动调节式保护对于实测事件是一种攻击的置信度。
  • 攻击特征
    • 特性名称:特性的名称,例如特定请求标头、地理位置来源。
    • 特性值:恶意流量中实测的特性值
    • 是攻击的可能性:给定请求是恶意的可能性,前提是对于相关特性,该请求具有上述特性值。
    • 攻击比例:包含此特性值的潜在攻击流量所占的百分比
    • 基准比例:包含此特性值的正常基准流量所占的百分比
  • 建议的规则
    • 匹配条件:规则匹配条件中用于识别恶意流量的表达式。
    • 受影响的基准率:由建议的规则捕获的良好流量的预计百分比。
    • 受影响的攻击率:由建议的规则捕获的攻击流量的预计百分比。

机器学习概览和隐私权

  • 训练数据和检测数据
    • 自动调节式保护可构建多个模型来检测潜在攻击并识别其特征。这些模型确定攻击是否正在发生所使用的信号是由来自项目的传入请求流量的实测元数据派生的。此类元数据包括来源 IP 地址、来源地理位置以及一些 HTTP 请求标头的值。
    • 模型使用的实际特性是上述信号派生的统计属性。也就是说,模型的训练数据不包含任何元数据的实际值,例如 IP 地址和/或请求标头值。
    • 所有客户共享一组通用检测模型(仅使用人工数据训练),以确定第一次启用自动调节式保护时是否发生攻击。如果您报告了任何假攻击事件,并且模型使用项目特定的流量信号进行更新,则这些模型位于项目本地,不会用于任何其他客户。
  • 特征生成数据
    • 在自动调节式保护确定发生潜在攻击后,会生成一个有效的攻击特征,有助于目标快速缓解攻击。为了实现上述目标,在您针对安全政策启用自动调节式保护后,系统会持续记录后端服务(与安全政策相关联)的流量指标和请求元数据,以获知基准流量特征。
    • 由于自动调节式保护需要了解基准流量,因此自动调节式保护在启用后至少一小时才会开始针对潜在攻击发出提醒。

后续步骤