Cómo configurar el servicio de protección DoS para Java

El servicio de protección de denegación del servicio (DoS) de App Engine te habilita a proteger tu aplicación para que no se quede sin cuota cuando sea víctima de ataques de denegación del servicio o formas similares de abuso. Puedes incluir direcciones IP o subredes en la lista negra para que las solicitudes enrutadas desde esas direcciones o subredes se eliminen antes de que se llame al código de tu aplicación. No se consumen asignaciones de recursos, estén o no facturadas, para estas solicitudes.

De forma predeterminada, App Engine entrega una página de error genérica a las direcciones de la lista negra. De forma alternativa, puedes configurar tu app para que entregue una respuesta personalizada.

Antes de comenzar

Crea un archivo dos.xml en el directorio WEB-INF de tu aplicación. En este archivo, debes especificar tus direcciones IP y redes de la lista negra.

Cómo bloquear solicitudes con listas negras de DoS

Puedes incluir direcciones IP y subredes IP en la lista negra para que estas no puedan acceder a tu app.

dos.xml está limitado a 100 entradas, por lo que puede ser necesario bloquear subredes completas si te enfrentas a un ataque de DoS. Esta también es una forma eficaz de protegerte si descubres que varias direcciones IP de la misma red son parte de un ataque de DoS en tu app.

Cómo crear entradas en la lista negra para direcciones IP

Puedes bloquear el acceso de una o más direcciones IP a tu app si defines esas direcciones IPv4 o IPv6 en tu archivo dos.xml. Por ejemplo:

<?xml version="1.0" encoding="UTF-8"?>
<blacklistentries>
  <blacklist>
    <subnet>1.2.3.4</subnet>
    <description>a single IP address</description>
  </blacklist>
  <blacklist>
    <subnet>abcd::123:4567</subnet>
    <description>an IPv6 address</description>
  </blacklist>
</blacklistentries>

En un ataque de denegación del servicio distribuido (DSD), es probable que debas bloquear subredes completas en lugar de una dirección IP individual.

Consulta la referencia de dos.yaml para obtener ejemplos.

Después de crear tu archivo dos.xml, debes subirlo a tu app.

Cómo crear entradas en la lista negra para subredes de IP

Puedes bloquear el acceso de una o más subredes de IP a tu app definiéndolas en formato CIDR. Puedes usar la herramienta IP a CIDR que te ayudará a crear reglas que usan la notación CIDR.

<?xml version="1.0" encoding="UTF-8"?>
<blacklistentries>
  <blacklist>
    <subnet>abcd::123:4567/48</subnet>
    <description>an IPv6 subnet</description>
  </blacklist
  <blacklist>
    <subnet>abcd::123:4567/48</subnet>
    <description>an IPv6 subnet</description>
  </blacklist
</blacklistentries>

Consulta la referencia de dos.yaml para obtener ejemplos.

Después de crear tu archivo dos.xml, debes subirlo a tu app.

Cómo crear mensajes de error personalizados para solicitudes en la lista negra

De forma predeterminada, se entrega una página de error genérica a las solicitudes bloqueadas por el servicio de protección DoS. Los ataques de denegación del servicio distribuido podrían involucrar una máquina infectada de un usuario legítimo y esta página podría proporcionar una explicación para aquellos usuarios acerca de por qué se denegó el acceso.

  1. Crea un archivo estático en el directorio de tu aplicación para entregar a las solicitudes que están bloqueadas por el servicio de protección DoS.

  2. En tu archivo appengine-web.xml, especifica un controlador de errores para las respuestas DoS, proporciona la ruta de acceso a tu archivo estático y agrega el tipo <static-error-handlers> del dos_api_denial.

    <static-error-handlers>
      <handler error-code="dos_api_denial" file="dos-response.html" />
    </static-error-handlers>
    

Cómo borrar todas las entradas de la lista negra

Realiza los siguientes pasos para borrar todas las entradas de la lista negra:

  1. Edita el archivo dos.xml para que solo contenga lo siguiente:

    <?xml version="1.0" encoding="UTF-8"?>
    <blacklistentries/>
    

    Borrar dos.xml no quita las listas negras.

  2. Vuelve a implementar dos.xml para que los cambios se apliquen.

Cómo ver errores de denegación de DoS en la consola

Cómo ver un grafo del número de solicitudes que se rechazan:

  1. Dirígete al panel de App Engine en Google Cloud Platform Console:

    Abre el grafo de detalles de errores de App Engine.

  2. Ajusta el marco de tiempo del grafo según sea necesario para ver los resultados.

Cómo subir tu lista negra de DoS

Puedes utilizar appcfg.sh para subir configuraciones de DoS. Cuando subes tu aplicación a App Engine con appcfg.sh update, el servicio de protección DoS, se actualiza con los contenidos del archivo de configuración dos.xml.

Utiliza el siguiente comando para actualizar solo el archivo de configuración de DoS sin subir el resto de tu aplicación:

appcfg.sh update_dos [PATH_TO_CONFIG_FILE]/dos.xml

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java