Proteger su aplicación mediante WAF

Una vez que la aplicación se enruta a través del firewall de la aplicación web (WAF), proteja la aplicación mediante las distintas funciones de seguridad que ofrece WAF.

Puede proteger la aplicación mediante:

  • Configuración de Reglas de Protección
  • Uso de la gestión de bots
  • Adición de reglas de acceso

Configurar reglas de protección

Puede proteger la aplicación con reglas para bloquear ataques de XSS (Cross Site Scripting) e inyección SQL (SQLi).

Para configurar reglas de protección:
  1. Inicie sesión en la consola de Oracle Cloud Infrastructure.
  2. Abra el menú de navegación. En Control y administración, vaya a Seguridad y haga clic en Políticas de WAF.
  3. Haga clic en Reglas de protección.
    Se muestra una tabla con reglas de protección predefinidas.
  4. Use el filtro ID de RULE y seleccione las reglas 941140 y 981300.
    Los detalles de la regla se muestran a la derecha.
  5. Seleccione cada regla y haga clic en Bloquear en el menú desplegable Acciones.
  6. Haga clic en Publicar todo.
    La publicación de cambios en la política de WAF puede tardar varios minutos.

Verificar reglas de protección

Para verificar si las reglas de protección funcionan:
  1. Abra el separador Red desde la página Herramientas de desarrollador del explorador.
  2. Acceda a la aplicación de empleado de muestra, http://employee.<example.com>/public/, desde el explorador.
  3. Haga clic en Nuevo empleado y rellene el formulario con información de muestra.
  4. Introduzca la siguiente inyección SQL en el campo Nombre:
    SomeUser; DROP TABLE users
  5. Con el separador Red del explorador abierto, haga clic en Guardar en el formulario Nuevo empleado.
    El valor de POST en /employees está bloqueado con 403 Forbidden.
  6. Ejecute el siguiente comando de cURL:
    curl -X POST http://${WAF_TARGET}/employees \ 
    -H 'host: employee.example.com' \ 
    -d '{"firstName":"Name; DROP TABLE users"}'
    El comando devuelve un error 403.
  7. Ejecute una solicitud GET al intentar utilizar scripts de sitios (XSS) en los parámetros de consulta de la barra de direcciones del explorador:
    http://employee.<example.com>/employees/?id=%3Cscript%3Ealert(%27bad%27)%3C/script%3Ein

    El explorador devuelve lo siguiente:


    A continuación se muestra la descripción de waf-forbidden.png
    Descripción de la ilustración waf-forbidden.png

Los pasos anteriores disparan la acción Block de WAF varias veces. Ahora, regrese a los detalles de política de WAF en la consola de Oracle Cloud Infrastructure para inspeccionar los logs.
  1. Abra la política de demostración de empleado.
  2. Haga clic en Logs.
  3. Seleccione un rango de fecha/hora que abarque la hora a la que intentó ejecutar ataques de SQLi y XSS.
  4. Identifique los elementos con Action: Block, amplíe los detalles de la fila en una solicitud bloqueada y, a continuación, haga clic en Ver JSON.
  5. Ver los mensajes mostrados como protectionRuleDetections y otros detalles de solicitud.

Usar Gestión de Bots

Otra función del servicio Oracle Cloud Infrastructure Web Application Firewall (WAF) es su capacidad de gestión de bot.

En muchos casos, un tráfico no humano constituye el mayor porcentaje de tráfico hacia un sitio. Aunque determinados bots" buenos" resultan favorables, otros bots" malos" pueden intentar intentar desechar contenido, enviar por correo, ataques por fuerza bruta o ataques de nivel de aplicación de DDoS.

Por ejemplo, puede que desee incluir en la lista blanca determinados bots conocidos para la optimización del motor de búsqueda (SEO) y la clasificación del contenido, pero limitar la verificación de un usuario humano para determinadas interacciones. Este tipo de escenario se logra con facilidad con la configuración de gestión de bots de política de WAF.

Agregar una comprobación de CAPTCHA

Una de las características principales de la gestión de bots es CAPTCHA. El uso de CAPTCHA ofrece un medio sencillo de verificación de usuarios que garantiza la interacción humana, sin necesidad de realizar cambios en la aplicación subyacente.

Para agregar una comprobación de CAPTCHA:
  1. Consola de Oracle Cloud Infrastructure.
  2. Abra el menú de navegación. En Control y administración, vaya a Seguridad y haga clic en Políticas de WAF.
  3. Abra la política de demostración de empleados y haga clic en Gestión de bots.
  4. Haga clic en el separador Comprobación de CAPTCHA y, a continuación, haga clic en Agregar comprobación de CAPTCHA.
  5. Introduzca /public/index.html como valor en el campo Ruta de URL de CAPTCHA.
  6. Deje los valores por defecto en los campos restantes como están.
  7. Haga clic en Agregar y, a continuación, en Publicar todo.
  8. Después de publicar los cambios y de que la política de WAF se reanuda en el estado ACTIVE, cargue la página, http://employee.<example.com>/public/index.html, desde el explorador.
    El explorador muestra la siguiente comprobación de CAPTCHA:

Después de introducir el código correcto, debe introducir el sitio web sin realizar más comprobaciones para un período que corresponda al valor Session Duration de la configuración de comprobación.

Agregar regla de control de acceso

El control de acceso de WAF proporciona una capa adicional de seguridad restringiendo o bloqueando el acceso a los datos y servicios disponibles en una aplicación.

Con el control de acceso, puede definir reglas basadas en las condiciones de solicitud, incluidas:
  • Cabeceras HTTP
  • Patrones de URL
  • Direcciones IP
  • Geolocalización

En la aplicación Empleado de ejemplo, tiene la capacidad de suprimir los detalles de empleado de la base de datos. Puede que necesite restringir el uso de la función Delete para garantizar la seguridad. Puede crear y aplicar una regla de acceso para bloquear las solicitudes de supresión.

Para agregar una regla de control de acceso:
  1. Consola de Oracle Cloud Infrastructure.
  2. Abra el menú de navegación. En Control y administración, vaya a Seguridad y haga clic en Políticas de WAF.
  3. Abra la política de demostración de empleado y haga clic en Control de acceso.
  4. Haga clic en Agregar regla de acceso.
  5. Introduzca un nombre de regla, como Prevent Delete.
  6. Agregue las siguientes condiciones de regla:
    • El método HTTP es: DELETE
    • La URL empieza por: /employees
  7. Seleccione la acción de regla de bloque y, a continuación, seleccione 403 Prohibido (opción por defecto) como Definir código de respuesta (acción de bloque).
  8. Haga clic en Agregar regla de acceso para crear la regla y, a continuación, haga clic en Publicar todo.

Después de publicar los cambios y de que la política de WAF se reanuda en el estado ACTIVE:

  1. Abra el separador Red desde la página Herramientas de desarrollador del explorador.
  2. Acceda a la aplicación de empleado de muestra, http://employee.<example.com>/public/, desde el explorador.
  3. Seleccione un registro de empleado y, a continuación, haga clic en el botón Suprimir.

En la pestaña Red de la sección Herramientas de desarrollador de broswer, observará que WAF ha interceptado esta solicitud y lo ha bloqueado con una respuesta 403 Forbidden.

Las funciones de Oracle Cloud Infrastructure WAF descritas en esta solución se centran en proteger una aplicación de ejemplo básica. Los escenarios de uso serán únicos para cada aplicación y puede configurar WAF según corresponda.