Visão geral da Proteção adaptativa do Google Cloud Armor

Com a Proteção adaptativa do Google Cloud Armor, você protege os aplicativos, sites e serviços do Google Cloud contra ataques distribuídos de negação de serviço (DDoS, na sigla em inglês), como sobrecargas de HTTP e outras camadas de alta frequência 7 (nível do aplicativo). A Proteção adaptativa cria modelos de machine learning que fazem o seguinte:

  1. Detectar e alertar sobre atividades anômalas
  2. Gere uma assinatura descrevendo o possível ataque
  3. Gerar uma regra personalizada da WAF do Google Cloud Armor para bloquear a assinatura

Você ativa ou desativa a proteção adaptativa com base na política de segurança.

Alertas sobre tráfego anômalos (ataques potenciais), que incluem as assinaturas dos ataques, aparecem no painel de eventos da Proteção adaptativa com registros de eventos enviados para o Cloud Logging, onde eles podem ser analisados ou encaminhados diretamente um fluxo de trabalho de monitoramento de eventos de segurança ou registros downstream. Os alertas de ataques em potencial também são gerados como descobertas no Security Command Center.

Disponibilidade da Proteção adaptativa

Os alertas da Proteção adaptativa completa estão disponíveis somente se você assinar o Google Cloud Armor Managed Protection Plus. Caso contrário, você receberá apenas um alerta básico, sem uma assinatura do ataque ou a capacidade de implantar uma regra sugerida.

Caso seus projetos ainda não estejam inscritos no Managed Protection Plus, leia Como usar a proteção gerenciada para informações sobre como se inscrever.

Cloud Logging e Cloud Monitoring

Como o uso da Proteção adaptativa exige que você entenda como a geração de registros e os alertas funcionam no Google Cloud, recomendamos que você esteja familiarizado com o Cloud Logging, alertas e políticas de alerta.

Como configurar e ajustar alertas

É possível ativar a Proteção adaptativa em projetos em que as políticas de segurança do Google Cloud Armor já protegem seus aplicativos. Quando você ativa a Proteção adaptativa para determinada política de segurança, ela está em vigor para todos os serviços de back-end aos quais a política de segurança está associada.

Depois que a Proteção adaptativa estiver ativada, haverá um período de treinamento de pelo menos uma hora antes que ela atenda a um valor de referência confiável e comece a monitorar o tráfego e gerar alertas. Durante o período de treinamento, os modelos de proteção adaptativa de tráfego e uso específicos para cada serviço de back-end são desenvolvidos para que o valor de referência funcione para cada serviço de back-end. Quando o período de treinamento termina, você recebe alertas em tempo real quando a Proteção adaptativa identifica anomalias de alta frequência ou de alto volume no tráfego direcionado a qualquer um dos serviços de back-end associados a essa política de segurança.

É possível ajustar os alertas da Proteção adaptativa com base em várias métricas. Os alertas enviados ao Cloud Logging incluem um nível de confiança, uma assinatura de ataque, uma regra sugerida e um impacto estimado. de taxa de referência associada à regra sugerida.

  • O nível de confiança indica a confiança com que os modelos de Proteção adaptativa preveem que a alteração observada no padrão de tráfego é anômala.
  • As taxas de valor de referência afetadas associadas à regra sugerida representam a porcentagem do tráfego de linha de base atual que é capturado pela regra. São fornecidas duas taxas. O primeiro é o percentual relativo ao tráfego para o serviço de back-end específico em ataque. O segundo é a porcentagem relativa a todo o tráfego que passa pela política de segurança, incluindo todos os destinos de serviço de back-end configurados (não apenas o que está sendo atacado).

É possível filtrar alertas no Cloud Logging com base no nível de confiança, nas taxas de referência afetadas ou em ambas. Para mais informações sobre o ajuste de alertas, consulte Como gerenciar políticas de alertas.

Como consumir e interpretar alertas

Assim que detecta um ataque suspeito, ele cria um evento no painel correspondente e gera um item de registro no Cloud Logging. O alerta está na carga útil JSON do item de registro. O item de registro é gerado no recurso Política de segurança de rede no Cloud Logging. A mensagem de registro identifica o serviço de back-end sob ataque e inclui uma pontuação de confiança que indica o quanto a proteção adaptativa o padrão do tráfego identificado muda como anômalos. A mensagem de registro também inclui uma assinatura de ataque que ilustra as características do tráfego de ataque, além das regras sugeridas do Google Cloud Armor que você pode aplicar para minimizar o ataque.

Noções básicas sobre assinaturas de ataque

Um alerta de Proteção adaptativa inclui uma assinatura de ataque, que é uma descrição dos atributos de tráfego do possível ataque. Você usa a assinatura para identificar e possivelmente bloquear o ataque. A assinatura usa dois formatos: como uma tabela legível pelo usuário e como uma regra WAF pré-construída do Google Cloud Armor que pode ser implantada na política de segurança relevante. Se você não estiver inscrito no Google Cloud Armor Managed Protection Plus, uma assinatura de ataque não será incluída no alerta básico.

A assinatura consiste em um conjunto de atributos, como endereço IP de origem, regiões geográficas, cookies, user agents, referenciadores e outros cabeçalhos de solicitação HTTP, além do conjunto de valores desses atributos, como se estivessem associados com o tráfego de ataque em potencial. O conjunto de atributos não é configurável pelo usuário. Os valores de atributo dependem dos valores no tráfego de entrada para seu serviço de back-end.

Para cada valor de atributo que a Proteção adaptativa indica o possível ataque, a Proteção adaptativa lista os seguintes:

  • A probabilidade do ataque
  • A proporção do atributo no ataque, que é a porcentagem de tráfego de possível ataque que tinha esse valor no momento em que o ataque foi detectado
  • A proporção do atributo no valor de referência, que é a porcentagem do tráfego base que tinha esse valor de atributo no momento em que o ataque foi detectado

A especificação de entrada do Cloud Logging contém detalhes sobre as informações de cada alerta.

Veja a seguir um exemplo de uma tabela legível por usuários que contém a assinatura de um possível ataque:

Nome do atributo Valor do atributo Probabilidade de invasão Proporção no ataque Proporção no valor de referência
UserAgent "foo" 0,7 0,85 0,12
UserAgent "barra" 0,6 0,7 0,4
IP de origem "a.b.c.d" 0,95 0,1 0,01
IP de origem a.b.c.e 0,95 0,1 0,01
IP de origem a.b.c.f 0,05 0,1 0,1
RegionCode Reino Unido 0,64 0,3 0,1
RegionCode IN 0,25 0,2 0,3

Os alertas de proteção adaptativa e o registro de eventos relevantes do Cloud Logging contêm o seguinte:

  • Um código de alerta exclusivo, ou alertID, que é usado para se referir a um alerta específico quando ele informa o feedback do usuário (mais informações abaixo).
  • O serviço de back-end em ataque ou backendService
  • A pontuação de confiança, ou confidence, que é um número entre 0 e 1 que indica o grau de confiança do sistema de proteção adaptativa do evento detectado como um ataque malicioso.

Você também recebe um conjunto de assinaturas e regras que caracterizam oataque detectado. Especificamente, o conjunto fornece uma lista de headerSignatures, cada um correspondente a um cabeçalho HTTP e contendo uma lista de significantValues para o cabeçalho específico.

Veja a seguir um exemplo de assinatura:

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

O alerta sugere que o valor foo.attacker.com no cabeçalho Referer é importante para caracterizar o ataque. Mais especificamente, 60% do tráfego de ataque (proportionInAttack)Referer e apenas 1% do tráfego de referência entre todo o tráfego (proportionInBaseline) tem o mesmo Referer. Além disso, entre todo o tráfego que corresponde a esse valor Referer, 95% é o tráfego de ataque (attackLikelihood).

Esses valores sugerem que, se você bloquear todo o tráfego que tivesse Referer como o nome e o valor foo.attacker.com, bloqueará 60% do ataque e também 1% do valor de referência tráfego.

Como implantar regras sugeridas

Os alertas de proteção adaptativa também fornecem uma regra sugerida do Google Cloud Armor expressa na linguagem das regras personalizadas. Essa regra pode ser usada para criar uma regra em uma política de segurança do Google Cloud Armor para reduzir o ataque. Além da assinatura, o alerta inclui uma taxa do tráfego de referência afetada para ajudar você a avaliar o impacto da implantação da regra. A taxa do tráfego de referência afetado é uma proporção projetada do tráfego de referência que corresponde à assinatura de ataque identificada pela Proteção adaptativa. Se você não tiver uma assinatura do Google Cloud Armor Managed Protection Plus, os alertas básicos enviados pelo Adaptive Protection não incluirão uma regra sugerida do Google Cloud Armor que possa ser aplicada.

É possível encontrar parte da assinatura de alerta e a taxa de referência afetada na mensagem de registro enviada para o Cloud Logging. Veja a seguir o payload JSON de um alerta de amostra.

...
@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
     impactedBaselinePolicyProportion: 0.001
   }
   expression: "evaluateAdaptiveProtection('11275630857957031521')"
  }
 ]
ruleStatus: RULE_GENERATED
attackSize: 5000
}
}
...

Você pode implantar regras sugeridas copiando a expressão CEL da assinatura da regra e colando-a na condição de correspondência de uma regra recém-criada ou clicando no botão Aplicar no "Adaptável" Painel de proteção na IU do Google Cloud Armor.

Para implantar a regra, crie uma nova regra na política de segurança do Google Cloud Armor que proteja os serviços de back-end de destino identificados pelo alerta. Em seguida, durante a configuração da regra, copie e cole a expressão CEL do alerta no campo Condição de correspondência da regra e defina a ação da regra como deny. No exemplo acima, copie a expressão evaluateAdaptiveProtection('11275630857957031521') da seção suggestedRule do alerta.

Recomendamos a implantação inicial da regra no modo de visualização para que seja possível avaliar o impacto dela no tráfego de produção. Quando você faz isso, o Google Cloud Armor registra a ação e o tráfego associado sempre que a regra for acionada, mas nenhuma ação será executada no tráfego correspondente.

Além disso, se a política de segurança estiver anexada a vários serviços de back-end, verifique se os efeitos da nova regra têm efeitos indesejados em qualquer um dos serviços. Se isso acontecer, configure novas políticas de segurança para reduzir os efeitos indesejados e anexe-os aos serviços de back-end corretos.

Como implantar uma regra de proteção adaptativa sugerida
Como implantar uma regra de proteção adaptativa sugerida (clique para ampliar)

Recomendamos que você defina a prioridade da nova regra como um valor maior do que qualquer regra com a ação definida para permitir. Isso acontece porque, para causar um impacto projetado e ter um efeito máximo na mitigação do ataque, a regra precisa ser implantada na posição de prioridade lógica mais alta para garantir que todo o tráfego correspondente seja bloqueado pela regra. As regras em uma política de segurança do Google Cloud Armor são avaliadas em ordem de prioridade, com a avaliação finalizada depois que a primeira regra correspondente é acionada e a ação associada é tomada. Se você precisar conceder uma exceção para algum tráfego ou clientes específicos desta regra, uma regra "permitir" poderá ser criada com prioridade mais alta, ou seja, com um valor numérico menor. Para mais informações sobre a prioridade da regra, consulte Ordem de avaliação da regra.

Status da regra

Se nenhuma regra for apresentada quando você tentar implantar uma regra sugerida, use o campo ruleStatus para determinar a causa.

 ]
ruleStatus: RULE_GENERATED
attackSize: 5000
}

A tabela a seguir descreve os valores possíveis do campo e o que eles significam.

Status da regra Descrição
RULE_GENERATED Uma regra utilizável foi gerada normalmente.
BASELINE_TOO_RECENT Não há tempo suficiente para acumular um tráfego de referência confiável. Até uma hora é necessária para gerar regras.
NO_SIGNIFICANT_VALUE_DETECTED Nenhum cabeçalho tem valores significativos associados ao tráfego de ataque e, por isso, nenhuma regra pode ser gerada.
NO_USABLE_RULE_FOUND Não foi possível criar uma regra utilizável.
ERRO Ocorreu um erro não especificado ao criar a regra.

Como monitorar erros, feedback e informar erros do evento

Você precisa das permissões a seguir para visualizar ou interagir com o painel de proteção adaptativa.

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

Depois de ativar a Proteção adaptativa em qualquer política de segurança do Google Cloud Armor, você verá a seguinte página em Segurança da rede > Google Cloud Armor. Ela mostra o volume de tráfego ao longo do tempo para a política de segurança e o serviço de back-end selecionados, além da duração selecionada. Todas as instâncias de possíveis ataques alertas pela Proteção adaptativa são anotadas no gráfico e listadas abaixo dele. Quando você clica em um evento de ataque específico, uma janela lateral é exibida com a assinatura e a regra sugerida exibida no formato tabular. As mesmas informações que estão nas entradas de registro do Cloud Logging descritas em Especificação de entradas do Cloud Logging. Clique no botão Aplicar para adicionar a regra sugerida à mesma política de segurança.

Painel de proteção adaptativa
Painel de proteção adaptativa (clique para ampliar)
Detalhes do alerta da Proteção adaptativa
Painel de proteção adaptativa (clique para ampliar)

Nem todas as descobertas da Proteção adaptativa são consideradas um ataque, dado o contexto exclusivo e os fatores ambientais do serviço de back-end protegido. Se você determinar que o possível ataque descrito pelo alerta é normal ou aceito, informe um erro de evento para ajudar a treinar os modelos de Proteção adaptativa. Ao lado de cada evento de ataque listado no gráfico, há um botão que abre uma janela interativa para informar um erro de evento com contexto opcional. Informar um erro em um evento ajuda a reduzir aprobabilidade de erros semelhantes no futuro. Com o tempo, isso aumentaa precisão da Proteção adaptativa.

Monitoramento, alertas e geração de registros

A telemetria de proteção adaptativa é enviada ao Cloud Logging, bem como ao Security Command Center. A mensagem de registro da Proteção adaptativa enviada ao Cloud Logging está descrita nas seções anteriores deste documento. Uma entrada de registro é gerada sempre que a Proteção adaptativa detecta um possível ataque e cada entrada contém uma pontuação de confiança que descreve o nível de confiança de que os modelos têm de que o tráfego observado seja anômalo. Para ajustar os alertas, uma política de alertas pode ser configurada no Cloud Logging para acionar um alerta somente quando uma mensagem de registro da Proteção adaptativa tiver uma pontuação de confiança acima de um limite especificado pelo usuário. Recomendamos que você comece com um limite mínimo, com confiança maior que 0,5, para evitar a ausência de avisos sobre possíveis ataques. O limite de confiança na política de alertas poderá ser aumentado com o tempo se os alertas tiverem uma taxa de valor de referência inaceitável.

O painel do Security Command Center também contém descobertas da Proteção adaptativa. Elas estão localizadas no cartão do Google Cloud Armor na categoria Ataques de DDoS do aplicativo. Cada descoberta inclui os detalhes do serviço, a confiança do ataque, a assinatura associada ao ataque e um link para o alerta específico no painel "Proteção adaptável".

Especificação de entrada do Cloud Logging

O alerta da Proteção adaptativa enviada ao Cloud Logging consiste em uma entrada de registro contendo os seguintes elementos:

  • Confiança do alerta: confiança adaptativa de que o evento observado é um ataque.
  • Assinatura da invasão
    • Nome do atributo: o nome do atributo, como um cabeçalho de solicitação específico, a origem geográfica.
    • Valor do atributo: o valor do atributo observado no tráfego malicioso
    • Probabilidade de ataque: a probabilidade de uma determinada solicitação ser maliciosa, considerando que ela tenha o valor acima para o atributo relevante.
    • Proporção no ataque: a porcentagem de tráfego em potencial que contém esse valor de atributo
    • Proporção no valor de referência: a porcentagem do tráfego de referência normal que contém esse valor de atributo
  • Regra sugerida
    • Condição de correspondência: a expressão a ser usada na condição de correspondência de regras para identificar tráfego malicioso.
    • Taxa de valor de referência afetada: a porcentagem projetada de bom tráfego para o serviço de back-end específico sob ataque capturada pela regra sugerida.
    • Taxa de valor de referência afetada em toda a política: a porcentagem projetada de bom tráfego para todos os serviços de back-end na mesma política de segurança capturada pela regra sugerida.
    • Taxa de ataque afetada: a porcentagem projetada do tráfego de ataque capturada pela regra sugerida.
  • Status da regra: detalhes adicionais sobre a geração de regras.

Visão geral e privacidade do machine learning

  • Dados de treinamento e detecção de dados
    • A Proteção adaptativa cria vários modelos para detectar possíveis ataques e identificar as assinaturas deles. Os sinais usados por esses modelos para determinar se um ataque está ativo são provenientes dos metadados observados do tráfego de solicitação recebido dos projetos. Esses metadados incluem: endereço IP de origem, geografia da origem e os valores de alguns cabeçalhos de solicitação HTTP.
    • Os atributos reais usados pelos modelos são propriedades estatísticas derivadas dos sinais mencionados acima. Ou seja, os dados de treinamento dos modelos não incluem os valores reais de quaisquer metadados, como endereços IP e/ou valores de cabeçalho de solicitação.
    • Um conjunto comum de modelos de detecção, treinados somente com dados artificiais, é compartilhado com todos os clientes, para determinar se um ataque está ocorrendo, quando a Proteção adaptativa é ativada pela primeira vez. Depois de relatar um evento de ataque falso, e os modelos são atualizados usando sinais de tráfego específicos dos projetos, esses modelos são locais para os projetos e não são usados para outros clientes.
  • Dados de geração de assinatura
    • Depois que a Proteção adaptativa determina que um possível ataque está ocorrendo, ela gera uma assinatura de ataque eficaz para ajudar o destino a atenuar o ataque rapidamente. Para conseguir o procedimento acima, depois de ativar a Proteção adaptativa em uma política de segurança, as métricas de tráfego e os metadados da solicitação para um serviço de back-end (associado à política de segurança) são gravados continuamente para aprender as características do tráfego de linha de base.
    • Como a proteção adaptável precisa saber mais sobre o tráfego de referência, a proteção pode exigir até uma hora antes de gerar regras para reduzir possíveis ataques.

A seguir