Información complementaria sobre perfiles

A continuación se presenta información complementaria sobre aspectos particulares de perfiles de Web App Firewall. Esta información explica cómo incluir caracteres especiales en una regla de comprobación de seguridad o relajación, y cómo utilizar variables al configurar perfiles.

Compatibilidad con variables de configuración

En lugar de utilizar valores estáticos, para configurar las comprobaciones de seguridad y la configuración del Web App Firewall, ahora puede usar variables con nombre estándar de Citrix ADC. Al crear variables, puede exportar y, a continuación, importar configuraciones a nuevos dispositivos Citrix ADC, o actualizar los dispositivos Citrix ADC existentes desde un único conjunto de archivos de configuración. Esto simplifica las actualizaciones cuando utiliza una configuración de banco de pruebas para desarrollar una configuración compleja de Web App Firewall que se ajusta a su red local y servidores y, a continuación, transfiere esa configuración a los dispositivos Citrix ADC de producción.

Puede crear variables de configuración de Web App Firewall de la misma manera que cualquier otra variable con nombre de Citrix ADC, siguiendo las convenciones estándar de Citrix ADC. Para crear una variable de expresión con nombre mediante la GUI, utilice el Agregar expresión (cuadro de diálogo). Para crear una variable de expresión con nombre mediante la línea de comandos Citrix ADC, utilice el comando add expression seguido del parámetro apropiado.

Las siguientes direcciones URL y expresiones se pueden configurar con variables en lugar de valores estáticos:

  • URL de inicio (-starturl)
  • Denegar URL (-denyurl)
  • Dirección URL de acción de formulario para comprobación de coherencia de campos de formulario (-fieldconsistency)
  • URL de acción para la comprobación de inyección SQL XML (-XMLSQLinjection)
  • URL de acción para lacomprobación de scripts entre sitios de X ML (-XMLXss)
  • URL de acción de formulario para la comprobación de inyección SQL HTML (-SqlInjection)
  • Dirección URL de acción de formulario para comprobación de formato de campo (-FieldFormat)
  • Dirección URL de origen de formulario y URL de acción de formulario para comprobación de falsificación de solicitudes entre sitios (CSRF) (-CSRFTag)
  • Dirección URL de acción de formulario para comprobación de scripts entre sitios HTML (-CrossSitescripting)
  • Objeto Safe (-SafeObject)
  • URL de acción para la comprobación XML Denial-of-Service (XDoS) (-XMLDOS)
  • Dirección URL para la comprobación de interoperabilidad de servicios web (-XMLWSIURL)
  • <URL para la comprobación de validación XML (-XMLValidationUrl)
  • URL para la comprobación de datos adjuntos XML (-xMLattachmentUrl)

Para obtener más información, consulte Directivas y expresiones.

Para utilizar una variable en la configuración, debe incluir el nombre de la variable entre dos símbolos en (@) y luego usarlo exactamente como lo haría con el valor estático que reemplaza. Por ejemplo, si está configurando la comprobación Denegar URL mediante la interfaz gráfica de usuario y quiere agregar la variable de expresión con nombre myDenyURL a la configuración, escriba @myDenyURL @ en el cuadro de diálogo Agregar URL denegada, área de texto Denegar URL. Para realizar la misma tarea mediante la línea de comandos de Citrix ADC, escriba type add appfw profile <name> -denyURLAction @myDenyURL@.

Formato de codificación de caracteres PCRE

El sistema operativo Citrix ADC admite la entrada directa de caracteres únicamente en el conjunto de caracteres ASCII imprimible, caracteres con códigos hexadecimales entre HEX 20 (ASCII 32) y HEX 7E (ASCII 127). Para incluir un carácter con un código fuera de ese rango en la configuración de Web App Firewall, debe escribir su código hexadecimal UTF-8 como expresión regular PCRE.

Varios tipos de caracteres requieren codificación mediante una expresión regular PCRE si los incluye en la configuración de Web App Firewall como dirección URL, nombre de campo de formulario o expresión de objeto seguro. Entre ellas figuran:

  • Caracteres ASCII superior. Caracteres con codificaciones de HEX 7F (ASCII 128) a HEX FF (ASCII 255). Dependiendo del mapa de caracteres utilizado, estas codificaciones pueden referirse a códigos de control, caracteres ASCII con acentos u otras modificaciones, caracteres alfabéticos no latinos y símbolos no incluidos en el conjunto ASCII básico. Estos caracteres pueden aparecer en direcciones URL, nombres de campos de formulario y expresiones de objetos seguros.

  • Caracteres de doble byte. Caracteres con codificaciones que utilizan dos palabras de 8 bytes. Los caracteres de doble byte se utilizan principalmente para representar texto chino, japonés y coreano en formato electrónico. Estos caracteres pueden aparecer en direcciones URL, nombres de campos de formulario y expresiones de objetos seguros.

  • Caracteres de control ASCII. Caracteres no imprimibles utilizados para enviar comandos a una impresora. Todos los caracteres ASCII con códigos hexadecimales menores a HEX 20 (ASCII 32) entran en esta categoría. Sin embargo, estos caracteres nunca deberían aparecer en una dirección URL o un nombre de campo de formulario y rara vez aparecerían en una expresión de objeto segura.

El dispositivo Citrix ADC no admite todo el conjunto de caracteres UTF-8, sino solo los caracteres que se encuentran en los ocho conjuntos de caracteres siguientes:

  • Inglés EE. UU. (ISO-8859-1). Aunque la etiqueta dice “Inglés EE. UU.”, Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-1, también llamado conjunto de caracteres Latin-1. Este conjunto de caracteres representa completamente la mayoría de las lenguas europeas occidentales modernas y representa todos menos algunos caracteres poco comunes en el resto.

  • Chino tradicional (Big5). El Web App Firewall admite todos los caracteres del conjunto de caracteres BIG5, que incluye todos los caracteres chinos tradicionales (ideogramas) comúnmente utilizados en chino moderno como hablado y escrito en Hong Kong, Macao, Taiwán, y por muchas personas de herencia étnica china que viven fuera de China continental.

  • Chino simplificado (GB2312). El Web App Firewall admite todos los caracteres del juego de caracteres GB2312, que incluye todos los caracteres chinos simplificados (ideogramas) comúnmente utilizados en chino moderno como hablados y escritos en China continental.

  • Japonés (SJIS). El Web App Firewall admite todos los caracteres del conjunto de caracteres Shift-JIS (SJIS), que incluye la mayoría de los caracteres (ideogramas) utilizados comúnmente en el japonés moderno.

  • japonés (EUC-JP). El Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-JP, que incluye todos los caracteres (ideogramas) utilizados comúnmente en el japonés moderno.

  • Coreano (EUC-KR). El Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-KR, que incluye todos los caracteres (ideogramas) utilizados comúnmente en coreano moderno.

  • Turco (ISO-8859-9). El Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-9, que incluye todas las letras utilizadas en el turco moderno.

  • Unicode (UTF-8). El Web App Firewall admite ciertos caracteres adicionales en el conjunto de caracteres UTF-8, incluidos los utilizados en ruso moderno.

Al configurar Web App Firewall, escriba todos los caracteres que no sean ASCII como expresiones regulares de formato PCRE-con el código hexadecimal asignado a ese carácter en la especificación UTF-8. A los símbolos y caracteres del juego de caracteres ASCII normal, a los que se les asignan códigos sencillos y de dos dígitos en ese juego de caracteres, se les asignan los mismos códigos en el juego de caracteres UTF-8. Por ejemplo, el signo de exclamación (!), al que se le asigna el código hexadecimal 21 en el juego de caracteres ASCII, también es hexadecimal 21 en el juego de caracteres UTF-8. Los símbolos y caracteres de otro juego de caracteres admitido tienen asignado un conjunto emparejado de códigos hexadecimales en el juego de caracteres UTF-8. Por ejemplo, a la letra a con acento agudo (á) se le asigna el código UTF-8 C3 A1.

La sintaxis que se utiliza para representar estos códigos UTF-8 en la configuración de Web App Firewall es “xNN” para caracteres ASCII; “\xNN\xNN” para caracteres no ASCII utilizados en inglés, ruso y turco; y “\xNN\xNN\xNN” para caracteres utilizados en chino, japonés y coreano. Por ejemplo, si quiere representar un ! en una expresión regular de Web App Firewall como un carácter UTF-8, escriba \x21. Si quiere incluir una á, escriba \xC3\xA1.

Nota:

Normalmente no es necesario representar caracteres ASCII en formato UTF-8, pero cuando esos caracteres pueden confundir un explorador web o un sistema operativo subyacente, puede usar la representación UTF-8 del personaje para evitar esta confusión. Por ejemplo, si una dirección URL contiene un espacio, es posible que quiera codificar el espacio como x20 para evitar confundir ciertos exploradores y software de servidor web.

A continuación se muestran ejemplos de direcciones URL, nombres de campos de formulario y expresiones de objetos seguros que contienen caracteres no ASCII que deben escribirse como expresiones regulares de formato PCRE-para incluirlos en la configuración de Web App Firewall. Cada ejemplo muestra primero la dirección URL real, el nombre de campo o la cadena de expresión, seguida de una expresión regular de formato PCRE-para ello.

  • Una URL que contiene caracteres ASCII extendidos.

    URL real: http://www.josénuñez.com

    URL codificada: ^http://www\[.\]jos\xC3\xA9nu\xC3\xB1ez\[.\]com$

  • Otra URL que contiene caracteres ASCII extendidos.

    URL real: http://www.example.de/trömso.html

    URL codificada: ^http://www[.]example\[.]de/tr\xC3\xB6mso[.]html$

  • Nombre de campo de formulario que contiene caracteres ASCII extendidos.

    Actual Name: nome_do_usuário

    Nombre codificado: ^nome_do_usu\xC3\xA1rio$

  • Expresión de objeto seguro que contiene caracteres ASCII extendidos.

    Expresión sin codificar [A-Z]{3,6}¥[1-9][0-9]{6,6}

    Expresión codificada: [A-Z]{3,6}\xC2\xA5[1-9][0-9]{6,6}

Puede encontrar una serie de tablas que incluyen todo el conjunto de caracteres Unicode y codificaciones UTF-8 coincidentes en Internet. Un sitio web útil que contiene esta información se encuentra en la siguiente URL:

http://www.utf8-chartable.de/unicode-utf8-table.pl

Para que los caracteres de la tabla de este sitio web se muestren correctamente, debe tener instalada en el equipo una fuente Unicode adecuada. Si no lo hace, la visualización visual del carácter puede ser un error. Aunque no tenga instalada una fuente adecuada para mostrar un carácter, la descripción y los códigos UTF-8 y UTF-16 de este conjunto de páginas web serán correctos.

Expresiones PCRE invertidas

Además de hacer coincidir el contenido que contiene un patrón, puede hacer coincidir el contenido que no contiene un patrón mediante una expresión PCRE invertida. Para invertir una expresión, simplemente incluya un signo de exclamación (!) seguido de un espacio en blanco como primer carácter de la expresión.

Nota: Si una expresión consiste solo en un signo de exclamación sin que siga nada, el signo de exclamación se tratará como un carácter literal, no como una sintaxis que indica una expresión invertida.

Los siguientes comandos de Web App Firewall admiten expresiones PCRE invertidas:

  • URL de inicio (URL)
  • Denegar URL (URL)
  • Consistencia de campos de formulario (URL de acción de formulario)
  • Consistencia de cookies (URL de acción del formulario)
  • Falsificación de solicitudes entre sitios (CSRF) (URL de acción del formulario)
  • Scripting entre sitios HTML (URL de acción del formulario)
  • Formato de campo (URL de acción del formulario)
  • Tipo de campo (tipo)
  • Campo confidencial (URL)

Nota: Si la comprobación de seguridad contiene un indicador o una casilla de verificación IsRegEx, debe establecerse en YES o activarse para habilitar expresiones regulares en el campo. De lo contrario, el contenido de ese campo se trata como literal y no se analizan expresiones regulares (invertidas o no).

Nombres no permitidos para perfiles de Web App Firewall

Los siguientes nombres se asignan a las acciones y perfiles integrados en el dispositivo Citrix ADC y no se pueden utilizar como nombres para un perfil de Web App Firewall creado por el usuario.

  • AGRESSIVE
  • ALLOW
  • BASIC
  • CLIENTAUTH
  • COMPRESS
  • CSSMINIFY
  • DEFLATE
  • DENY
  • DNS-NOP
  • DROP
  • GZIP
  • HTMLMINIFY
  • IMGOPTIMIZE
  • JSMINIFY
  • MODERATE
  • NOCLIENTAUTH
  • NOCOMPRESS
  • NINGUNO
  • NOOP
  • NOREWRITE
  • RESTABLECER
  • SETASLEARNNSLOG_ACT
  • SETNSLOGPARAMS_ACT
  • SETSYSLOGPARAMS_ACT
  • SETTMSESSPARAMS_ACT
  • SETVPNPARAMS_ACT
  • SET_PREAUTHPARAMS_ACT
  • default_DNS64_action
  • DNS_default_act_cacheBypass
  • DNS_default_act_drop
  • nshttp_default_profile
  • nshttp_default_strict_validation
  • nstcp_default_mobile_profile
  • nstcp_default_XA_XD_profile
  • nstcp_default_profile
  • nstcp_default_tcp_interactive_stream
  • nstcp_default_tcp_lan
  • nstcp_default_tcp_lan_thin_stream
  • nstcp_default_tcp_lfp
  • nstcp_default_tcp_lfp_thin_stream
  • nstcp_default_tcp_lnp
  • nstcp_default_tcp_lnp_thin_stream
  • nstcp_internal_apps