Configura el servicio de protección con DoS para Java 8

El servicio de protección contra denegación del servicio (DoS) de App Engine te permite proteger tu aplicación para que no se quede sin cuota cuando se la somete a ataques de denegación de servicio o formas similares de abuso. Puedes incluir direcciones IP o subredes en la lista negra, de forma que las solicitudes enrutadas desde esas direcciones o subredes se bloqueen antes de que se llame al código de tu aplicación. Para estas solicitudes no se consumen asignaciones de recursos, facturadas o no.

De forma predeterminada, App Engine entrega una página de error genérica a las direcciones de la lista negra. En su lugar, puedes configurar tu aplicación para entregar 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 aplicación.

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

Puedes bloquear el acceso de una subred IP a tu aplicación si la defines 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 aplicación.

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 contra DoS. Los ataques de denegación de servicio distribuidos podrían involucrar una máquina infectada de un usuario legítimo. Esta página podría proporcionar una explicación para estos 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 el archivo 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 Console

Puedes ver un gráfico del número de solicitudes que se rechazan:

  1. Ve al panel de App Engine en Google Cloud Platform Console:

    Abrir el gráfico de detalles de error de App Engine

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

Cómo subir tu lista negra de DoS

Puedes usar appcfg.sh para subir opciones de configuración de DoS. Cuando subes tu aplicación en App Engine mediante appcfg.sh update, el servicio de protección contra DoS se actualiza con el contenido del archivo de configuración dos.xml.

Para actualizar solo el archivo de configuración de DoS sin subir el resto de tu aplicación, debes usar el siguiente comando:

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 8