¿Cómo creo una regla de AWS WAF para evitar SQLi y XSS?

Última actualización: 12-07-2022

Quiero evitar la inyección de código SQL (SQLi) y el scripting entre sitios (XSS). ¿Qué opciones ofrece AWS WAF para evitar los ataques de SQLi y XSS?

Descripción breve

AWS WAF ofrece las siguientes protecciones para evitar los ataques de SQLi y XSS:

  • Motores SQLi y XSS integrados
  • Las reglas administradas de AWS están disponibles para los ataques de inyección SQLi y XSS

Para configurar estas protecciones, asegúrese de haber configurado AWS WAF y de haber creado una ACL web.

Nota: AWS WAF tiene limitaciones a la hora de inspeccionar el cuerpo, los encabezados o los componentes de solicitud de cookies. Para obtener más información, consulte Inspección del cuerpo de la solicitud, los encabezados y las cookies.

Resolución

Importante: Se recomienda probar las reglas en un entorno que no sea de producción con la Action (Acción) establecida en Count (Recuento). Evalúe la regla mediante métricas de Amazon CloudWatch combinadas con solicitudes de muestra de AWS WAF o registros de AWS WAF. Cuando esté convencido de que la regla hace lo que desea, cambie el valor de Action (Acción) a Block (Bloquear).

Utilice motores SQLi y XSS integrados

Los ataques se pueden realizar en diferentes partes de la solicitud HTTP, como el encabezado HTTP, la cadena de consulta o el URI. Configure las reglas de AWS WAF para inspeccionar diferentes partes de la solicitud HTTP con respecto a los motores de mitigación integrados.

Instrucción de regla de ataque SQLi

Cree una instrucción de regla de ataque de inyección de código SQL para inspeccionar si hay código SQL malicioso. Para crear una instrucción de regla de ataque de SQLi, haga lo siguiente:

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF, seleccione Web ACL (ACL web).
  3. En Region (Región), elija la región de AWS en la que creó la ACL web.
    Nota: Seleccione Global si su ACL web está configurada para Amazon CloudFront.
  4. Seleccione su ACL web.
  5. Seleccione Rules (Reglas) y, a continuación, Add Rules (Agregar reglas). Seleccione Add my own rules and rule groups (Agregar mis propias reglas y grupos de reglas) en el menú desplegable.
  6. En Name (Nombre), ingrese un rule name (nombre de regla) y, a continuación, seleccione Regular rule (Regla normal).
  7. En If a request (Si una solicitud), elija matches the statement (coincide con la instrucción).
  8. Para Inspect (Inspeccionar), seleccione los Request components (Componentes de la solicitud) para evaluar con respecto al motor de mitigación integrado de SQLi.
  9. Para Match Type (Tipo de coincidencia), seleccione Contains SQL injection attacks (Contiene ataques por inyección de código SQL) en el menú desplegable.
  10. Elija una Text transformation (Transformación de texto).
  11. En Action (Acción), seleccione Block (Bloquear).
  12. Elija Add rule (Agregar regla).
  13. Elija Save (Guardar).

Instrucción de regla de ataque XSS

Cree una instrucción de regla de ataque de scripting entre sitios para inspeccionar si hay scripts maliciosos en un componente de solicitud web. Para crear una instrucción de regla de ataque XSS, haga lo siguiente:

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF, seleccione Web ACL (ACL web).
  3. En Region (Región), elija la región de AWS en la que creó la ACL web.
    Nota: Seleccione Global si su ACL web está configurada para Amazon CloudFront.
  4. Seleccione su ACL web.
  5. Seleccione Rules (Reglas) y, a continuación, Add Rules (Agregar reglas). Seleccione Add my own rules and rule groups (Agregar mis propias reglas y grupos de reglas) en el menú desplegable.
  6. En Name (Nombre), ingrese un rule name (nombre de regla) y, a continuación, seleccione Regular rule (Regla normal).
  7. En If a request (Si una solicitud), elija matches the statement (coincide con la instrucción).
  8. Para Inspect (Inspeccionar), seleccione los Request components (Componentes de la solicitud) para evaluar con respecto al motor de mitigación integrado XSS.
  9. Para Match Type (Tipo de coincidencia), seleccione Contains XSS injection attacks (Contiene ataques por inyección XSS) en el menú desplegable.
  10. Elija una Text transformation (Transformación de texto).
  11. En Action (Acción), seleccione Block (Bloquear).
  12. Elija Add rule (Agregar regla).
  13. Elija Save (Guardar).

Reglas de ataque SQLi y XSS que se evalúan en función de varios componentes de solicitud

Para crear una regla de ataque que se evalúe en función de varios componentes de solicitud, haga lo siguiente:

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF, seleccione Web ACL (ACL web).
  3. En Region (Región), elija la región de AWS en la que creó la ACL web.
    Nota: Seleccione Global si su ACL web está configurada para Amazon CloudFront.
  4. Seleccione su ACL web.
  5. Seleccione Rules (Reglas) y, a continuación, Add Rules (Agregar reglas). Seleccione Add my own rules and rule groups (Agregar mis propias reglas y grupos de reglas) en el menú desplegable.
  6. En Name (Nombre), ingrese un rule name (nombre de regla) y, a continuación, seleccione Regular rule (Regla normal).
  7. En If a request (Si una solicitud), elija matches at least one of the statements (OR) (coincide con al menos una de las instrucciones [O]).
  8. Para Inspect (Inspeccionar), seleccione los Request components (Componentes de la solicitud) para evaluar con respecto al motor de mitigación integrado de SQLi o XSS.
  9. Para Match Type (Tipo de coincidencia), seleccione Contains SQLi injection attacks (Contiene ataques por inyección de código SQL) o Contains XSS injection attacks (Contiene ataques por inyección XSS) en el menú desplegable.
  10. Elija una Text transformation (Transformación de texto).
  11. Repita los pasos 8 a 10 para cada Statement (Instrucción). Elija Add another statement (Agregar otra instrucción) para obtener evaluaciones de reglas adicionales.
  12. En Action (Acción), seleccione Block (Bloquear).
  13. Elija Add rule (Agregar regla).
  14. Elija Save (Guardar).

Importante: Debe aplicar las transformaciones de texto correctas para que la regla funcione como se espera. Por ejemplo, si está inspeccionando una cookie, utilice las siguientes transformaciones asociadas a una cookie:

  • Decodificación de URL
  • Decodificación de entidades HTML
  • Minúsculas

Utilice las reglas administradas de AWS disponibles para los ataques de inyección de código SQLi y XSS

Utilice las reglas administradas de AWS para AWS WAF para protegerse contra las vulnerabilidades de las aplicaciones u otro tráfico no deseado sin necesidad de escribir sus propias reglas.

Nota: Las reglas administradas están sujetas a cambios de versión y caducidad. Para obtener más información, consulte Prácticas recomendadas para manejar las versiones de grupos de reglas administradas.

Utilice el grupo de reglas administradas de base de datos SQL para protegerse contra los ataques de inyección de código SQL. El grupo de reglas administradas de base de datos SQL (versión predeterminada 1.1) tiene las siguientes reglas que brindan protección:

  • SQLiExtendedPatterns_QUERYARGUMENTS
  • SQLi_QUERYARGUMENTS
  • SQLi_Body
  • SQLi_COOKIE
  • SQLi_URIPATH

Utilice el Grupo de reglas administradas del conjunto de reglas principales (CRS) para protegerse contra los ataques de inyección XSS. El grupo de reglas administradas del conjunto de reglas principales (CRS) (versión predeterminada 1.3) tiene las siguientes reglas que brindan protección:

  • CrossSiteScripting_COOKIE
  • CrossSiteScripting_QUERYARGUMENTS
  • CrossSiteScripting_BODY
  • CrossSiteScripting_URIPATH

Para agregar un grupo de reglas administradas de AWS a la ACL web

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF, seleccione Web ACL (ACL web).
  3. En Region (Región), elija la región de AWS en la que creó la ACL web.
    Nota: Seleccione Global si su ACL web está configurada para Amazon CloudFront.
  4. Seleccione su ACL web.
  5. Seleccione Rules (Reglas) y, a continuación, Add Rules (Agregar reglas). Seleccione Add managed rule groups (Agregar grupos de reglas administradas) en el menú desplegable.
  6. Amplíe la sección Grupos de reglas administradas de AWS.
  7. Busque el grupo de reglas y active Add to web ACL (Agregar a ACL web).
    Por ejemplo, puede activar Add to web ACL (Agregar a ACL web) tanto para la base de datos SQL para la protección de SQLi como para el conjunto de reglas principales para la protección de XSS.
  8. (Opcional) Elija Edit (Editar) para ver y modificar la configuración del grupo de reglas.
  9. Seleccione Add rules (Agregar reglas).
  10. Elija Save (Guardar).

Para editar un grupo de reglas administradas de AWS existente en su ACL web

  1. Abra la consola de AWS WAF.
  2. En el panel de navegación, en AWS WAF, seleccione Web ACL (ACL web).
  3. En Region (Región), elija la región de AWS en la que creó la ACL web.
    Nota: Seleccione Global si su ACL web está configurada para Amazon CloudFront.
  4. Seleccione su ACL web.
  5. Elija Rules (Reglas) y, a continuación, seleccione Edit (Editar) para ver y modificar la configuración.
    Nota: Para obtener información adicional sobre la edición de la configuración, consulte Trabajar con grupos de reglas administradas.
  6. Cuando haya terminado de editar, seleccione Save (Guardar).

Si obtiene situaciones de falsos positivos con los grupos de reglas de reglas administradas de AWS, consulte Reglas administradas de AWS para AWS WAF.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?