Patrones de reglas de firma
Puede añadir 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 presenta 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 la expresión de un informe externo sobre el ataque.
Precaución:
Cualquier patrón nuevo que añada a una regla de firma está en 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 constar de una cadena simple, una expresión regular en formato PCRE o el patrón integrado de inyección SQL o secuencias de comandos entre sitios. Antes de intentar añadir un patrón basado en una expresión regular, debe asegurarse de entender las expresiones regulares en formato PCR. Las expresiones PCRE son complejas y poderosas. Si no entiendes cómo funcionan, puedes crear involuntariamente un patrón que coincida con algo que no querías (un falso positivo) o que no coincida con algo que sí querías (un falso negativo).
Patrón de firma personalizado para tipos de contenido no predeterminados
El Web App Firewall (WAF) de Citrix ADC ahora admite una nueva ubicación para inspeccionar el contenido canonicalizado. De forma predeterminada, WAF no bloquea la carga codificada con tipos de contenido no predeterminados. Cuando estos tipos de contenido se incluyen en la lista de permitidos 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, el usuario puede crear una regla de firma personalizada con esta nueva ubicación (HTTP_CANON_POST_BODY) que examine las cargas codificadas en busca de tipos de contenido no predeterminados y, si se produce algún ataque de SQL o secuencias de comandos entre sitios, bloquea el tráfico tras la canonicalización del cuerpo de la publicación.
Nota:
Ese soporte solo se aplica a las solicitudes HTTP.
Si aún no está familiarizado con las expresiones regulares en formato PCR, puede utilizar los siguientes recursos para aprender los conceptos básicos o para obtener ayuda con algún problema específico:
- “Dominar las expresiones regulares”, tercera edición. Derechos de autor (c) 2006 de Jeffrey Friedl. O’Reilly Media, ISBN: 9780596528126.
- “Libro de cocina sobre expresiones regulares”. Derechos de autor (c) 2009 de Jan Goyvaerts y Steven Levithan. O’Reilly Media, ISBN: 9780596520687
- Página principal/especificación de PCRE
- Página/especificación del hombre PCRE
- Entrada PCRE de Wikipedia
- Lista de correo de PCRE
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
- Vaya a Seguridad > Citrix Web App Firewall > Firmas.
- En el panel de detalles, seleccione el objeto de firmas que desee configurar y, a continuación, haga clic en Abrir.
-
En el cuadro de diálogo Modificar objeto de firmas, en el centro 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 puede modificar las reglas de firma predeterminadas.
Según la acción que realice, 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.
- En la ventana Patrones del cuadro de diálogo, haga clic en Agregar para añadir un nuevo patrón o seleccione un patrón existente de la lista situada debajo del botón Agregar y haga clic en Abrir. Según la acción que realice, aparecerá el cuadro de diálogo Crear nuevo patrón de regla de firma o Editar patrón de regla de firma. Ambos cuadros de diálogo tienen el mismo contenido.
-
En la lista desplegable Tipo de patrón, elija el tipo de conexión que debe coincidir con el patrón.
- Si el patrón pretende coincidir con los elementos o las funciones de la solicitud, como el código SQL inyectado, los ataques a formularios web, las secuencias de comandos entre sitios o las URL inapropiadas, elija Solicitud.
- Si el patrón pretende coincidir con los elementos o características de la respuesta, como números de tarjetas de crédito u objetos seguros, elija Response.
-
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 se deben examinar para determinar 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, aparecen los elementos relevantes para las solicitudes HTTP. Si elige Respuesta, aparecen los elementos relacionados con las respuestas HTTP. Además, al elegir un valor de la lista desplegable Área, las partes restantes del área de ubicación cambian de forma interactiva. A continuación se muestran todos los elementos de configuración que pueden aparecer en esta sección.
- Zona. Lista desplegable de elementos que describen una parte concreta 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 de los encabezados de las solicitudes HTTP después de realizar cualquier transformación de cookie. Nota: No busca en los encabezados “Set-Cookie:” de la respuesta HTTP.
-
HTTP_FORM_FIELD Los campos del formulario y su contenido, después de la decodificación de URL, la decodificación porcentual y la eliminación del exceso de espacios en blanco. Puede utilizar la etiqueta
<Location>
para restringir aún más la lista de nombres de campos de formulario en los que se va a buscar. - ENCABEZADO HTTP. Las partes de valores del encabezado HTTP después de cualquier transformación de secuencias de comandos entre sitios o decodificación de URL.
- MÉTODO HTTP_. El método de solicitud HTTP.
- HTTP_ORIGIN_URL. La 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 cookie de solicitud HTTP, incluida la parte del nombre “Cookie:”. Nota: No busca en los encabezados “Set-Cookie:” de la respuesta HTTP.
- ENCABEZADO HTTP_RAW. Todo el encabezado HTTP, con los encabezados individuales separados por caracteres de alimentación de línea (\ n) o cadenas de retorno de carro o avance de línea (\r\n).
- HTTP_RAW_RESP_HEADER. Todo el encabezado de la respuesta, incluidas las partes de nombre y valor del encabezado de respuesta una vez realizada la transformación de la URL, y el estado completo de la respuesta. 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. Todo el encabezado de Set-Cookie después de realizar cualquier transformación de URL Nota: la transformación de URL puede cambiar tanto la parte del dominio como la de la ruta del encabezado Set-Cookie.
- HTTP_RAW_URL. La URL completa de la solicitud antes de realizar cualquier transformación de URL, incluidas las partes de la consulta o del fragmento.
- HTTP_RESP_HEADER. La parte del valor de los encabezados de respuesta completos después de realizar cualquier transformación de URL.
- HTTP: //RESP_BODY. El cuerpo de la respuesta HTTP
- HTTP_SET_COOKIE. Todos los encabezados “Set-Cookie” de los encabezados de respuesta HTTP.
- CÓDIGO DEESTADO HTTP. El código de estado HTTP.
- HTTP_STATUS_MESSAGE. El mensaje de estado HTTP.
- URL HTTP. La parte de valor de la URL en los encabezados HTTP, excluyendo cualquier puerto de consulta o fragmento, tras la conversión al conjunto de caracteres UTF-*, la decodificación de URL, la eliminación de los espacios en blanco y la conversión de las URL relativas en absolutas. No incluye la decodificación de entidades HTML.
- URL. Examina las URL que se encuentran en los elementos especificados en la configuración de área. Selecciona uno de los siguientes ajustes.
- Any. Comprueba todas las URL.
- Literal. Comprueba las URL que contienen una cadena literal. Tras seleccionar Literal, aparece un cuadro de texto. Escriba la cadena literal que desee en el cuadro de texto.
- PCRE. Comprueba las URL que coinciden con una expresión regular en formato PCR. Tras seleccionar esta opción, aparece la ventana de expresiones regulares. Escriba la expresión regular en la ventana. Puede utilizar los identificadores de expresiones regulares para insertar elementos de expresiones regulares comunes en el cursor, o puede hacer clic en el Editor de expresiones regulares para mostrar el cuadro de diálogo del editor de expresiones regulares, que proporciona más ayuda a la hora de crear la expresión regular que desee.
- Expression. Comprueba las URL que coinciden con una expresión predeterminada de Citrix ADC.
- Nombre de campo. Examina cualquier nombre de campo de formulario que se encuentre en los elementos especificados en la selección de área. Any. Comprueba todas las URL.
- Literal. Comprueba las URL que contienen una cadena literal. Tras seleccionar Literal, aparece un cuadro de texto. Escriba la cadena literal que desee en el cuadro de texto.
- PCRE. Comprueba las URL que coinciden con una expresión regular en formato PCR. Tras seleccionar esta opción, aparece la ventana de expresiones regulares. Escriba la expresión regular en la ventana. Puede usar los tokens Regex para insertar elementos de expresiones regulares comunes o puede usar el Editor de expresiones regulares como ayuda para crear la expresión regular que desee.
- Expression. Comprueba las URL que coinciden con una expresión predeterminada de Citrix ADC.
- Zona. Lista desplegable de elementos que describen una parte concreta de la conexión HTTP. Las opciones son las siguientes:
-
En el área Patrón, defina el patrón. Un patrón es una cadena literal o una expresión regular en formato PCRE que define el patrón con el que se desea hacer coincidir. El área Patrón contiene los siguientes elementos: - Coincidir. Una lista desplegable de los 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.
Tipos de coincidencia de solicitudes PCRE. Expresión regular de formato PCRE-.
Nota:
Al elegir PCRE, se activan las herramientas de expresión regular que se encuentran debajo de la ventana Patrón. Estas herramientas no son útiles para la mayoría de los demás tipos de patrones.
-
Inyección. Indica al Web App Firewall que busque SQL inyectado en la ubicación especificada. La ventana Patrones desaparece porque el Web App Firewall ya tiene los patrones para la inyección de SQL.
-
CrossSiteScripting. Indica al Web App Firewall que busque scripts entre sitios en la ubicación especificada. La ventana Patrón desaparece porque Web App Firewall ya tiene los patrones para scripts entre sitios.
-
Expression. Una expresión del lenguaje de expresiones predeterminado de Citrix ADC es el mismo lenguaje de expresiones 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 utilizarlo, consulte Para agregar una regla de firewall (expresión) mediante el cuadro de diálogo Agregar expresión
Tipos de coincidencia de respuesta:
- Literal. A literal string - PCRE. A PCRE-format regular expression.
Nota
Al elegir PCRE, se activan las herramientas de expresión regular que se encuentran debajo de la ventana Patrón. Estas herramientas no son útiles para la mayoría de los demás tipos de patrones.
- Tarjeta de crédito. Un patrón integrado que coincide con uno de los seis tipos de números de tarjeta de crédito admitidos.
Nota:
El tipo de coincidencia de expresiones no está disponible para las firmas del lado de la respuesta.
- Ventana de patrones (sin etiqueta)
En esta ventana, escriba el patrón que desee hacer coincidir y complete los datos adicionales.
- Literal. Escriba la cadena que desee buscar en el área de texto.
- NÚCLEO. Escriba la expresión regular en el área de texto. Utilice el Editor Regex para obtener más ayuda a la hora de crear la expresión regular que desee, o los Tokens Regex para insertar elementos de expresiones regulares comunes en el cursor. Para habilitar los caracteres UTF-8, haga clic en UTF-8.
- Expression. Escriba la expresión avanzada de Citrix ADC en el área de texto. Utilice el prefijo para elegir el primer término de la expresión o el 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 a la hora de crear la expresión regular que desee. Haga clic en Evaluar para abrir el evaluador avanzado de expresiones y ayudar a determinar el efecto que tiene la expresión.
- Offset. El número de caracteres que se van a omitir antes de empezar a coincidir con este patrón. Utilice este campo para empezar a examinar una cadena en algún punto distinto del primer carácter.
- Depth. Cuántos caracteres desde el punto de partida se van a examinar en busca de coincidencias. Este campo se utiliza para limitar las búsquedas de una cadena grande a un número específico de caracteres.
- Min-Length. La cadena que se va a buscar debe tener una longitud de al menos la cantidad especificada de bytes. Las cadenas más cortas no coinciden.
- Max-Length. La cadena que se va a buscar no debe superar el número de bytes especificado. Las cadenas más largas no coinciden.
- Search method. Una casilla de verificación denominada fastmatch. Puede habilitar la coincidencia rápida solo para un patrón literal, a fin de mejorar el rendimiento.
-
- Haga clic en Aceptar.
- Repita los cuatro pasos anteriores para añadir o modificar más patrones.
- Cuando termine de añadir o modificar patrones, haga clic en Aceptar para guardar los cambios y volver al panel Firmas.
Precaución:
Los cambios no se guardarán hasta que no haga clic en Aceptar en el cuadro de diálogo Agregarregla de firma local o Modificarregla de firma local. No cierre ninguno de estos cuadros de diálogo sin hacer clic enAceptar a menos que quiera descartar los cambios.