Citrix ADC

Patrones de reglas de firma

Puede agregar un patrón o modificar un patrón existente para especificar una cadena o expresión que caracterice un ataque si la firma coincide. Para detectar los patrones que exhibe un ataque, puede examinar los registros de su servidor web. Puede utilizar una herramienta para observar los datos de conexión en tiempo real, u obtener la cadena o expresión de un informe de terceros sobre el ataque.

Precaución:

Cualquier patrón nuevo que agregue a una regla de firma tiene una relación AND con los patrones existentes. No agregue un patrón a una regla de firma existente si no quiere que un ataque potencial tenga que coincidir con todos los patrones para que coincida con la firma.

Cada patrón puede consistir en una cadena simple, una expresión regular de formato PCRE-o la inyección SQL incorporada o el patrón de scripts entre sitios. Antes de intentar agregar un patrón basado en una expresión regular, debe asegurarse de que comprende las expresiones regulares de formato PCRE-. Las expresiones PCRE son complejas y poderosas. Si no entiende cómo funcionan, puede crear involuntariamente un patrón que coincida con algo que no quería (un falso positivo) o que no coincida con algo que quería (un falso negativo).

Patrón de firma personalizado para tipos de contenido no predeterminados

Citrix ADC Web App Firewall (WAF) admite ahora una nueva ubicación para inspeccionar contenido canonicalizado. De forma predeterminada, WAF no bloquea la carga útil codificada con tipos de contenido no predeterminados. Cuando estos tipos de contenido se incluyen en la lista blanca y no se aplica ninguna acción configurada, la comprobación de protección de scripts SQL y entre sitios no filtra los ataques de scripts SQL o entre sitios en las cargas útiles codificadas. Para resolver el problema, un usuario puede crear una regla de firma personalizada con esta nueva ubicación (HTTP_CANON_POST_BODY) que examina las cargas útiles codificadas para tipos de contenido no predeterminados y si hay algún ataque de scripts SQL o entre sitios, bloquea el tráfico después de la canonización del cuerpo de la publicación.

Nota:

Ese soporte solo es aplicable a las solicitudes HTTP.

Si aún no está familiarizado con las expresiones regulares de formato PCRE-Format, puede utilizar los siguientes recursos para aprender los conceptos básicos o para obtener ayuda con algún problema específico:

  • “Dominar expresiones regulares”, tercera edición. Copyright (c) 2006 por Jeffrey Friedl. O’Reilly Media, ISBN: 9780596528126.
  • “Libro de cocina de expresiones regulares”. Copyright (c) 2009 por Jan Goyvaerts y Steven Levithan. O’Reilly Media, ISBN: 9780596520687
  • PCRE Página/Especificación (texto/oficial): "<http://www.pcre.org/pcre.txt>"
  • PCRE Man Página/Especificación (html/gammon.edu.au): "<http://www.gammon.com.au/pcre/index.html>"
  • Entrada PCRE de Wikipedia: “[http://en.wikipedia.org/wiki/PCRE] (http://en.wikipedia.org/wiki/pcre)”
  • Lista de correo PCRE (dirigida por exim.org): <http://lists.exim.org/mailman/listinfo/pcre-dev>"

Si necesita codificar caracteres no ASCII en una expresión regular con formato PCRE-formato, la plataforma Citrix ADC admite la codificación de códigos hexadecimales UTF-8. Para obtener más información, consulte Formato de codificación de caracteres PCRE.

Para configurar un patrón de regla de firma

  1. Vaya a Seguridad > Servidor de seguridad de aplicaciones > Firmas.
  2. En el panel de detalles, seleccione el objeto de firmas que quiere configurar y, a continuación, haga clic en Abrir.
  3. En el cuadro de diálogo Modificar objeto de firmas, en el medio de la pantalla debajo de la ventana Resultados filtrados, haga clic en Agregar para crear una regla de firma o seleccione una regla de firma existente y haga clic en Abrir.

    Nota:

    Solo puede modificar las reglas de firma que haya agregado. No se pueden modificar las reglas de firma predeterminadas.

    Según la acción, aparecerá el cuadro de diálogo Agregar regla de firma local o Modificar regla de firma local. Ambos cuadros de diálogo tienen el mismo contenido.

  4. En la ventana Patrones del cuadro de diálogo, haga clic en Agregar para agregar un nuevo patrón o seleccione un patrón existente en la lista situada debajo del botón Agregar y haga clic en Abrir. Según la acción, aparecerá el cuadro de diálogo Crear nuevo patrón de regla de firma o Modificar patrón de regla de firma. Ambos cuadros de diálogo tienen el mismo contenido.
  5. En la lista desplegable Tipo de patrón, elija el tipo de conexión que debe coincidir el patrón.

    • Si el patrón está pensado para que coincida con elementos o funciones de solicitud, como código SQL inyectado, ataques a formularios web, scripts entre sitios o direcciones URL inapropiadas, elija Solicitar.
    • Si el patrón está pensado para que coincida con elementos u operaciones de respuesta, como números de tarjetas de crédito u objetos seguros, elija Respuesta.
  6. En el área Ubicación, defina los elementos que se van a examinar con este patrón. El área Ubicación describe qué elementos de la solicitud o respuesta HTTP examinar para este patrón. Las opciones que aparecen en el área Ubicación dependen del tipo de patrón elegido. Si elige Solicitud como tipo de patrón, aparecerán elementos relevantes para las solicitudes HTTP. Si seleccionó Respuesta, aparecerán elementos relevantes para las respuestas HTTP. Además, a medida que elija un valor de la lista desplegable Área, las partes restantes del área Ubicación cambian de forma interactiva. Los siguientes son todos los elementos de configuración que pueden aparecer en esta sección.

    • Área. Lista desplegable de elementos que describen una parte determinada de la conexión HTTP. Las opciones son las siguientes:
      • HTTP_ANY. Todas las partes de la conexión HTTP.
      • HTTP_Cookie. Todas las cookies en los encabezados de solicitud HTTP después de cualquier transformación de cookies se realizan. Nota: No busca encabezados de respuesta HTTP “Set-Cookie:”.
      • HTTP_FORM_FIELD Campos de formulario y su contenido, después de la decodificación de URL, decodificación de porcentaje y eliminación del exceso de espacio en blanco. Puede utilizar la etiqueta <Location> para restringir aún más la lista de nombres de campos de formulario que se van a buscar.
      • HTP_HEADER Las partes de valor del encabezado HTTP después de cualquier transformación de scripts entre sitios o decodificación de URL.
      • HTTP_METHOD El método de solicitud HTTP.
      • HTTP_ORIGIN_URL. Dirección URL de origen de un formulario web.
      • HTTP_POST_BODY El cuerpo de la publicación HTTP y los datos del formulario web que contiene.
      • HTTP_RAW_Cookie. Todas las cookies de solicitud HTTP, incluida la parte del nombre “Cookie:”. Nota: No busca encabezados de respuesta HTTP “Set-Cookie:”.
      • HTTP_RAW_HEADER. El encabezado HTTP completo, con encabezados individuales separados por caracteres de avance de línea (\n) o cadenas de retorno de carretera/avance de línea (\r\n).
      • HTTP_RAW_RESP_HEADER. El encabezado de respuesta completo, incluidas las partes de nombre y valor del encabezado de respuesta después de la transformación de URL se ha realizado, y el estado de respuesta completo. Al igual que con HTTP_RAW_HEADER, los encabezados individuales están separados por caracteres de avance de línea (\n) o cadenas de retorno de carro o avance de línea (\r\n).
      • HTTP_RAW_SET_Cookie. Toda la cabecera Set-Cookie después de realizar cualquier transformación de URL Nota: La transformación de URL puede cambiar tanto las partes de dominio como de ruta del encabezado Set-Cookie.
      • HTTP_RAW_URL. La URL de solicitud completa antes de realizar cualquier transformación de URL, incluidas las partes de consulta o fragmentos.
      • HTTP_RESP_HEADER. La parte del valor de los encabezados de respuesta completos después de que se hayan realizado las transformaciones de URL.
      • HTTP_RESP_BODY. El cuerpo de respuesta HTTP
      • HTTP_SET_Cookie. Todos los encabezados “Set-Cookie” en los encabezados de respuesta HTTP.
      • HTTP_STATUS_CODE. El código de estado HTTP.
      • HTTP_STATUS_Message. El mensaje de estado HTTP.
      • HTTP_URL. La parte de valor de la URL en los encabezados HTTP, excluyendo cualquier puerto de consulta o fragmento, después de la conversión al conjunto de caracteres UTF-*, la decodificación de URL, la eliminación de espacios en blanco y la conversión de URL relativas a absolutas. No incluye la decodificación de entidades HTML.
      • URL. Examina las URL encontradas en los elementos especificados por la configuración Área. Seleccione una de las siguientes opciones de configuración.
      • Cualquiera. Comprueba todas las URL.
      • Literalmente. Comprueba las URL que contienen una cadena literal. Después de seleccionar Literal, se muestra un cuadro de texto. Escriba la cadena literal que quiera en el cuadro de texto.
      • PCRE. Comprueba las URL que coinciden con una expresión regular con formato PCRE-format. Después de seleccionar esta opción, se muestra la ventana de expresión regular. Escriba la expresión regular en la ventana. Puede utilizar los Tokens de expresiones regulares para insertar elementos de expresiones regulares comunes en el cursor, o puede hacer clic en Editor de expresiones regulares para mostrar el cuadro de diálogo Editor de expresiones regulares, que proporciona más ayuda para construir la expresión regular que quiera.
      • Expresión. Comprueba las direcciones URL que coinciden con una expresión predeterminada de Citrix ADC.
      • Nombre del campo. Examina los nombres de campos de formulario encontrados en los elementos especificados por la selección Área. Cualquiera. Comprueba todas las URL.
      • Literalmente. Comprueba las URL que contienen una cadena literal. Después de seleccionar Literal, se muestra un cuadro de texto. Escriba la cadena literal que quiera en el cuadro de texto.
      • PCRE. Comprueba las URL que coinciden con una expresión regular con formato PCRE-format. Después de seleccionar esta opción, se muestra la ventana de expresión regular. Escriba la expresión regular en la ventana. Puede utilizar los tokens de expresión regular para insertar elementos comunes de expresión regular o puede utilizar el Editor de expresiones regulares para obtener ayuda en la construcción de una expresión regular que quiera.
      • Expresión. Comprueba las direcciones URL que coinciden con una expresión predeterminada de Citrix ADC.
  7. En el área Patrón, defina el patrón. Un patrón es una cadena literal o expresión regular de formato PCRE-que define el patrón que quiere hacer coincidir. El área Patrón contiene los siguientes elementos: - Coincidir. Una lista desplegable de métodos de búsqueda que puede utilizar para la firma. Esta lista varía en función de si el tipo de patrón es Solicitud o Respuesta.

    Solicitar tipos de coincidencia PCRE. Expresión regular de formato PCRE-.

    Nota:

    Al seleccionar PCRE, se activan las herramientas de expresión regular situadas debajo de la ventana Patrón. Estas herramientas no son útiles para la mayoría de los otros tipos de patrones.

    • Inyección. Indica al Web App Firewall que busque SQL inyectado en la ubicación especificada. La ventana Patrón desaparece, porque Web App Firewall ya tiene los patrones para la inyección SQL.

    • CrossSitescripting. Indica al Web App Firewall que busque scripts entre sitios en la ubicación especificada. La ventana Patrón desaparece, porque el Web App Firewall ya tiene los patrones para scripts entre sitios.

    • Expresión. Una expresión en el lenguaje de expresiones predeterminado de Citrix ADC es el mismo idioma de expresión para crear directivas de Web App Firewall en el dispositivo Citrix ADC. Aunque el lenguaje de expresiones Citrix ADC se desarrolló originalmente para reglas de directivas, es un lenguaje de propósito general altamente flexible que también se puede usar para definir un patrón de firma.

    Al elegir Expresión, el Editor de expresiones de Citrix ADC aparece debajo de la ventana Patrón. Para obtener más información sobre el Editor de expresiones e instrucciones sobre cómo usarlo, consulte Para agregar una regla de firewall (expresión) mediante el cuadro de diálogo Agregar expresión

    Tipos de coincidencia de respuesta:

    -  Literal. Una cadena literal
    -  PCRE. Expresión regular de formato PCRE-.
    

    Nota

    Al seleccionar PCRE, se activan las herramientas de expresión regular situadas debajo de la ventana Patrón. Estas herramientas no son útiles para la mayoría de los otros tipos de patrones.

    • Tarjeta de crédito. Un patrón integrado que coincide con uno de los seis tipos admitidos de número de tarjeta de crédito.

    Nota:

    El tipo de coincidencia de expresión no está disponible para las firmas del lado de respuesta.

    • Ventana de patrón (sin etiqueta)

    En esta ventana, escriba el patrón que quiere que coincida y complete los datos adicionales.

    • Literalmente. Escriba la cadena que quiere buscar en el área de texto.
    • CRE. Escriba la expresión regular en el área de texto. Utilice el Editor de expresiones regulares para obtener más ayuda en la construcción de la expresión regular que quiera, o los Tokens de expresiones regulares para insertar elementos comunes de expresiones regulares en el cursor. Para habilitar caracteres UTF-8, haga clic en UTF-8.
    • Expresión. Escriba la expresión avanzada de Citrix ADC en el área de texto. Utilice Prefijo para elegir el primer término de la expresión u Operador para insertar operadores comunes en el cursor. Haga clic en Agregar para abrir el cuadro de diálogo Agregar expresión para obtener más ayuda en la construcción de la expresión regular que quiera. Haga clic en Evaluar para abrir el Evaluador de expresiones avanzadas para ayudar a determinar el efecto que tiene la expresión.
    • Desplazamiento. El número de caracteres que se deben omitir antes de comenzar a coincidir en este patrón. Utilice este campo para comenzar a examinar una cadena en algún momento distinto del primer carácter.
    • Profundidad. Cuántos caracteres desde el punto de partida examinar para buscar coincidencias. Este campo se utiliza para limitar las búsquedas de una cadena grande a un número específico de caracteres.
    • Longitud mínima. La cadena que se va a buscar debe tener al menos el número especificado de bytes de longitud. Las cadenas más cortas no coinciden.
    • Longitud máxima. La cadena que se va a buscar no debe ser mayor que el número especificado de bytes de longitud. Las cadenas más largas no coinciden.
    • Método de búsqueda. Una casilla de verificación etiquetada fastmatch. Puede habilitar fastmatch solo para un patrón literal, para mejorar el rendimiento.
  8. Haga clic en Aceptar.
  9. Repita los cuatro pasos anteriores para agregar o modificar más patrones.
  10. Cuando termine de agregar o modificar patrones, haga clic en Aceptar para guardar los cambios y volver al panel Firmas.

Precaución:

Hasta que haga clic en Aceptar en el cuadro de diálogo Agregar regla de firma local o Modificar regla de firma local, los cambios no se guardarán. No cierre ninguno de estos cuadros de diálogo sin hacer clic en Aceptar a menos que quiera descartar los cambios.

Patrones de reglas de firma