Información complementaria sobre los perfiles
A continuación, encontrará información complementaria sobre aspectos concretos de los 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.
Soporte de variables de configuración
En lugar de utilizar valores estáticos, ahora puede utilizar variables denominadas de NetScaler estándar para configurar las comprobaciones y ajustes de seguridad del Web App Firewall. Al crear variables, puede exportar e importar configuraciones a nuevos dispositivos NetScaler con mayor facilidad o actualizar los dispositivos NetScaler existentes desde un único conjunto de archivos de configuración. Esto simplifica las actualizaciones cuando se utiliza una configuración de banco de pruebas para desarrollar una configuración compleja de Web App Firewall que se ajuste a la red y los servidores locales y, a continuación, se transfiere esa configuración a los dispositivos NetScaler de producción.
Puede crear variables de configuración de Web App Firewall de la misma manera que cualquier otra variable con nombre de NetScaler, siguiendo las convenciones estándar de NetScaler. Puede crear una variable de expresión con nombre mediante la línea de comandos o la GUI de NetScaler.
Las siguientes URL y expresiones se pueden configurar con variables en lugar de valores estáticos:
- URL de inicio (-starturl)
- Denegar URL (-denyurl)
- URL de acción de formulario para la comprobación de coherencia de campos de formulario (-fieldconsistency)
- URL de acción para la comprobación de inyección XML SQL (-xmlSQLInjection)
- URL de acción para la comprobación de scripts entre sitios de XML (scripts -xmlcross-site)
- URL de acción de formulario para la comprobación de inyección HTML SQL (-sqlInjection)
- URL de acción de formulario para comprobación de formato de campo (-fieldFormat)
- URL de origen de formulario y URL de acción de formulario para la verificación de falsificación de solicitudes entre sitios (CSRF) (-csrfTag)
- URL de acción de formulario para la comprobación de scripts entre sitios HTML (-crossSiteScripting)
- Objeto seguro (-safeObject)
- URL de acción para la comprobación de denegación de servicio XML (XDoS) (-XMLDoS)
- 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 desea agregar la variable de expresión con nombre myDenyURL a la configuración, escribiría @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 NetScaler, escriba add appfw profile <name>
-DenyURLAction @myDenyURL @.
Formato de codificación de caracteres PCRE
El sistema operativo NetScaler solo admite la entrada directa de caracteres 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 de PCRE.
Varios tipos de caracteres requieren codificación mediante una expresión regular de PCRE si los incluye en la configuración de Web App Firewall como URL, nombre de campo de formulario o expresión de objeto seguro. Entre ellas se encuentran:
-
Caracteres ASCII superiores. Caracteres con codificaciones desde HEX 7F (ASCII 128) hasta HEX FF (ASCII 255). Según el mapa de caracteres utilizado, estas codificaciones pueden hacer referencia a códigos de control, caracteres ASCII con acentos u otras modificaciones, caracteres del alfabeto no latino y símbolos no incluidos en el conjunto ASCII básico. Estos caracteres pueden aparecer en URL, nombres de campos de formulario y expresiones de objetos seguros.
-
Caracteres de doble byte. Caracteres con codificaciones que usan dos palabras de 8 bytes. Los caracteres de doble byte se utilizan principalmente para representar texto en chino, japonés y coreano en formato electrónico. Estos caracteres pueden aparecer en URL, nombres de campos de formulario y expresiones de objetos seguros.
-
Caracteres de control ASCII. Caracteres no imprimibles que se utilizan para enviar comandos a una impresora. Todos los caracteres ASCII con códigos hexadecimales inferiores a HEX 20 (ASCII 32) entran en esta categoría. Sin embargo, estos caracteres nunca deben aparecer en una URL o en un nombre de campo de formulario, y rara vez aparecerían en una expresión de objeto segura.
El dispositivo NetScaler 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 de EE. UU. (ISO-8859-1). Aunque la etiqueta dice “inglés de EE. UU.”, Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-1, también denominado conjunto de caracteres Latin-1. Este conjunto de caracteres representa completamente la mayoría de los idiomas modernos de Europa occidental y representa todos los caracteres menos comunes en el resto.
-
Chino tradicional (Big5). Web App Firewall admite todos los caracteres del conjunto de caracteres BIG5, que incluye todos los caracteres chinos tradicionales (ideografías) comúnmente utilizados en el chino moderno tal como se habla y escribe en Hong Kong, Macao, Taiwán y por muchas personas de ascendencia étnica china que viven fuera de China continental.
-
Chino simplificado (GB2312). Web App Firewall admite todos los caracteres del conjunto de caracteres GB2312, que incluye todos los caracteres en chino simplificado (ideogramas) que se utilizan comúnmente en el chino moderno tal como se habla y escribe en China continental.
-
Japonés (SJIS). Web App Firewall admite todos los caracteres del conjunto de caracteres Shift-JIS (SJIS), que incluye la mayoría de los caracteres (ideogramas) que se usan comúnmente en japonés moderno.
-
Japonés (EUC-JP). Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-JP, que incluye todos los caracteres (ideogramas) que se usan comúnmente en japonés moderno.
-
Coreano (EUC-KR). Web App Firewall admite todos los caracteres del conjunto de caracteres EUC-KR, que incluye todos los caracteres (ideogramas) que se utilizan comúnmente en el coreano moderno.
-
Turco (ISO-8859-9). Web App Firewall admite todos los caracteres del conjunto de caracteres ISO-8859-9, que incluye todas las letras usadas en turco moderno.
-
Unicode (UTF-8). Web App Firewall admite ciertos caracteres adicionales en el conjunto de caracteres UTF-8, incluidos los que se usan en ruso moderno.
Al configurar Web App Firewall, se escriben todos los caracteres que no son ASCII como expresiones regulares en formato PCRE mediante el código hexadecimal asignado a ese carácter en la especificación UTF-8. A los símbolos y caracteres del conjunto de caracteres ASCII normal, a los que se les asignan códigos únicos de dos dígitos en ese conjunto de caracteres, se les asignan los mismos códigos en el conjunto de caracteres UTF-8. Por ejemplo, el signo de exclamación (!) , al que se le asigna el código hexadecimal 21 en el conjunto de caracteres ASCII, también es hexadecimal 21 en el conjunto de caracteres UTF-8. Los símbolos y caracteres de otro conjunto de caracteres admitidos tienen un conjunto pareado de códigos hexadecimales asignados en el conjunto 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 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 usados en chino, japonés y coreano. Por ejemplo, si quieres representar a! en una expresión regular de Web App Firewall como un carácter UTF-8, escribiría\x21. Si desea incluir un á, debe escribir\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 URL contiene un espacio, es posible que desee codificar el espacio como x20 para evitar confundir ciertos exploradores web 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 en formato PCRE para que se incluyan en la configuración de Web App Firewall. En cada ejemplo se muestra primero la URL, el nombre de campo o la cadena de expresión reales, seguidos de una expresión regular en formato PCR.
-
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 no codificada [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. En la siguiente URL se encuentra un sitio web útil que contiene esta información:
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 una fuente Unicode apropiada instalada en el equipo. Si no lo hace, la visualización del personaje puede ser errónea. Sin embargo, incluso si no tiene 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 debes incluir 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 nada a continuación, el signo de exclamación se trata 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)
- Coherencia de campos de formulario (URL de acción de formulario)
- Coherencia de cookies (URL de acción de formulario)
- Falsificación de solicitudes entre sitios (CSRF) (URL de acción de formulario)
- Scripting entre sitios HTML (URL de acción de formulario)
- Formato de campo (URL de acción de formulario)
- Tipo de campo (tipo)
- Campo confidencial (URL)
Nota: Si la comprobación de seguridad contiene una marca o casilla de verificación IsRegex, debe establecerse en YES o marcarse 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 los perfiles de Web App Firewall
Los siguientes nombres se asignan a acciones y perfiles integrados en el dispositivo NetScaler 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
- NONE
- NOOP
- NOREWRITE
- RESET
- 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