Saltar al contenido

¿Cómo utilizo AWS WAF para bloquear la carga de archivos con extensiones específicas?

4 minutos de lectura
0

Quiero restringir la carga de archivos (solicitudes HTTP POST) con extensiones específicas a mi servidor web.

Descripción breve

Al analizar los datos POST de una solicitud HTTP, el contenido cargado puede ser de dos tipos:

  • Datos de formulario
  • Binario

Para restringir la carga de archivos con extensiones específicas (.pdf, .docx, .exe), crearás y configurarás una regla de lista de control de acceso web (ACL web) personalizada en AWS WAF.

Nota: AWS WAF inspecciona los primeros 8 KB (8192 bytes) del cuerpo de la solicitud. Para obtener información sobre solicitudes de mayor tamaño, consulta Sobredimensionar los componentes de las solicitudes web en AWS WAF.

Resolución

Identificar el tipo de contenido que utilizan los datos POST

Los datos POST dentro de las solicitudes HTTP suelen utilizar datos de formulario o binarios.

  • Los datos de formulario incluyen cualquier dato que un usuario introduzca en una página web o formulario HTML que HTTP envía a un servidor web o publica en él.
  • Una carga útil binaria es cualquier cosa que no sea una carga útil de texto. Por ejemplo, una carga binaria puede ser un archivo .jpeg, un archivo .gzip o un archivo .xml. Esto incluye datos binarios genéricos, como los de una aplicación .pdf, una imagen .jpeg o una aplicación .zip. Para ver todos los tipos de extensiones de archivo, consulta Media types (Tipo de contenido multimedia) en el sitio web de la Internet Assigned Numbers Authority (IANA).

Para identificar el tipo de solicitud POST, comprueba el valor Content-Type en el encabezado HTTP POST. Por ejemplo:

Content-Type: multipart/form-data

Según el resultado de Content-Type, consulta la sección correspondiente que coincida con el valor de tu encabezado.

Creación de una regla para el contenido de datos multiparte o de formulario

Sigue estos pasos:

  1. Abre la consola de AWS WAF.
  2. En el panel de navegación, selecciona Servicios de AWS.
  3. Elige Paquetes de protección y recursos.
  4. Selecciona tu paquete de protección.
  5. En el paquete de protección seleccionado, selecciona Reglas.
  6. Selecciona Ver y editar junto a Reglas para ver o modificar las reglas asociadas a tu paquete de protección.
  7. En el panel derecho de Administrar reglas, selecciona Agregar reglas.
  8. Elige Crear nueva regla.
  9. Elige Regla personalizada y selecciona Siguiente.
  10. En Tipo de regla, elige Regla personalizada y selecciona Siguiente.
  11. Para configurar la regla, configura los siguientes valores:
    En Acción, elige Bloquear para ver las reglas personalizadas.
    En Nombre, introduce un nombre para identificar la regla.
    En Si una solicitud, elige cumple la instrucción. A continuación, rellena los siguientes campos de Instrucción:
    En Inspeccionar elige Cuerpo JSON.
    En Ámbito de coincidencia JSON, elige Valores.
    En Acción para solicitudes de cuerpos JSON no válidas, elige la opción adecuada para ti.
    En Contenido que se va a inspeccionar, selecciona Contenido JSON completo.
    En Tipo de coincidencia, elige Coincide con la expresión regular.
    En Expresión regular, introduce un patrón de expresiones regulares que coincida. Observa el siguiente ejemplo:
(?:.pdf|.doc|.docx|.ppt)
  1. (Opcional) En Transformación de texto, agrega una transformación de texto o mantén el valor Ninguno para estos campos.
  2. En Gestión de componentes de gran tamaño, elige la opción correspondiente a tu caso práctico.
  3. Selecciona Crear regla.
  4. Selecciona Guardar.

Creación de una regla para el valor binario

Sigue estos pasos:

  1. Abre la consola de AWS WAF.
  2. En el panel de navegación, selecciona Servicios de AWS.
  3. Elige Paquetes de protección y recursos.
  4. Selecciona tu paquete de protección.
  5. En el paquete de protección seleccionado, selecciona Reglas.
  6. Selecciona Ver y editar junto a Reglas para ver o modificar las reglas asociadas a tu paquete de protección.
  7. En el panel derecho de Administrar reglas, selecciona Agregar reglas.
  8. Elige Crear nueva regla.
  9. Elige Regla personalizada y selecciona Siguiente.
  10. En Tipo de regla, elige Regla personalizada y selecciona Siguiente.
  11. Para configurar la regla, configura los siguientes valores:
    En Acción, elige Bloquear para ver las reglas personalizadas.
    En Nombre, introduce un nombre para identificar la regla.
    En Si una solicitud, elige cumple la instrucción.
    Rellena los siguientes campos de Instrucción:
    En Inspeccionar, elige Encabezado individual.
    En Nombre de campo de encabezado, introduce Content-Type.
    En Tipo de coincidencia, elige Coincide con la expresión regular.
    En Expresión regular, introduce un patrón de expresiones regulares que coincida.
    Consulta el siguiente ejemplo para los archivos .pdf y .jpeg:
(?:pdf|jpeg)
  1. (Opcional) En Transformación de texto, agrega una transformación de texto o mantén el valor Ninguno para estos campos.
  2. Selecciona Crear regla.

**Nota:**Para restringir la regla a una ruta URI de carga específica, utiliza una instrucción AND dentro de la regla de ACL web que inspecciona la ruta.

OFICIAL DE AWSActualizada hace 4 meses