Como configurar o serviço de proteção contra DoS

O serviço de proteção contra negação de serviço (DoS, na sigla em inglês) do App Engine permite evitar o esgotamento da cota de aplicativos que sofrem ataques de negação de serviço ou formas de abuso semelhantes. Você pode adicionar endereços ou sub-redes IP à lista negra para que as solicitações encaminhadas a partir deles sejam descartadas antes de chamar o código do seu aplicativo. No caso de tais solicitações, nenhuma alocação de recursos será consumida, seja ela faturada ou não.

Por padrão, o App Engine envia uma página de erro genérica para os endereços na lista negra. Em vez disso, você pode configurar seu app para enviar uma resposta personalizada.

Antes de começar

Crie um arquivo dos.yaml no diretório root do seu aplicativo. É nesse arquivo que você deve especificar os endereços IP e redes que entrarão na lista negra.

Como bloquear solicitações com listas negras de DoS

Você pode fazer uma lista negra com os endereços e as sub-redes IP que devem ter o acesso a seu aplicativo bloqueado.

O arquivo dos.yaml está limitado a 100 entradas. Portanto, talvez seja necessário bloquear sub-redes inteiras em caso de ataques de DoS. Essa também será uma maneira eficiente de se proteger se você descobrir que vários endereços IP da mesma rede fazem parte de um ataque de DoS contra seu app.

Como criar entradas na lista negra de endereços IP

Para impedir que um ou mais endereços IP acessem seu aplicativo, defina esses endereços IPv4 ou IPv6 no arquivo dos.yaml. Exemplo:

blacklist:
- subnet: 192.0.2.1
  description: A single IPv4 address
- subnet: abcd::123:4567
  description: A single IPv6 address

Em um ataque distribuído de negação de serviço (DDoS, na sigla em inglês), provavelmente será necessário bloquear sub-redes inteiras, em vez de endereços IP individuais.

Veja o exemplo abaixo para saber como criar o arquivo dos.yaml.

Depois de criar o arquivo dos.yaml, faça upload dele para o aplicativo.

Como criar entradas da lista negra para sub-redes IP

Para impedir que uma sub-rede IP acesse seu aplicativo, defina-a no formato CIDR. Você pode usar a ferramenta IP to CIDR para ajudar na criação de regras que usem a notação CIDR.

blacklist:
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

Veja o exemplo abaixo para saber como criar o arquivo dos.yaml.

Depois de criar o arquivo dos.yaml, faça upload dele para o aplicativo.

Exemplo de arquivo dos.yaml

Veja a seguir um exemplo de arquivo dos.yaml:

blacklist:
- subnet: 1.2.3.4
  description: a single IP address
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567
  description: an IPv6 address
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

Como criar mensagens de erro personalizadas para solicitações na lista negra

Por padrão, é enviada uma página de erro genérica para as solicitações bloqueadas pelo serviço de proteção contra DoS. Os ataques distribuídos de negação de serviço podem envolver uma máquina infectada de um usuário legítimo. Assim, uma página de erro personalizada poderia fornecer uma explicação para esse usuário sobre o porquê do acesso negado.

  1. Crie um arquivo estático no diretório do aplicativo para responder às solicitações bloqueadas pelo serviço de proteção contra DoS.

  2. No arquivo app.yaml, especifique um gerenciador de erros para as respostas de DoS, fornecendo o caminho para o arquivo estático e adicionando o tipo error_handlers de dos_api_denial:

    error_handlers:
    - error_code: dos_api_denial
      file: dos-response.html
    

Como excluir todas as entradas da lista negra

Para excluir todas as entradas da lista negra:

  1. Edite o arquivo dos.yaml para conter apenas:

    blacklist:
    

    A exclusão do dos.yaml não remove as listas negras.

  2. Reimplante o dos.yaml para as alterações entrarem em vigor.

Como ver os erros de negação DoS no Console

Você pode ver um gráfico com o número de solicitações que estão sendo negadas:

  1. Vá para o painel do App Engine no Console do Google Cloud Platform:

    Abrir o gráfico de detalhes de erros do App Engine

  2. Ajuste o período do gráfico conforme necessário para ver os resultados.

Fazer upload da lista negra de DOS

Use a ferramenta gcloud para implantar o arquivo de configuração DoS atualizado no seu aplicativo no App Engine. Por exemplo, execute o comando a seguir para atualizar o serviço de proteção contra DoS com o conteúdo do arquivo dos.yaml:

 gcloud app deploy dos.yaml

Próximas etapas

  • Configure o Stackdriver Monitoring para identificar problemas e receber alertas rapidamente.
  • Leia a experiência de um cliente sobre como ele respondeu a um ataque distribuído de negação de serviço (DDoS, na sigla em inglês) (janeiro de 2013).
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para Go