Citrix ADC

Comprobación de scripts de sitios HTML

La comprobación de scripts de sitios HTML (scripts de sitios) examina tanto los encabezados como los cuerpos POST de las solicitudes de los usuarios para detectar posibles ataques de scripts de sitios. Si encuentra un script de sitios, modifica (transforma) la solicitud para que el ataque sea inofensivo o bloquea la solicitud.

Nota:

La comprobación de scripts de sitios HTML (scripts de sitios) solo funciona para el tipo de contenido, la longitud del contenido, etc. Asegúrese también de tener habilitada la opción “CheckRequestHeaders” en su perfil de Firewall de aplicaciones web.

Puede evitar el uso indebido de las secuencias de comandos en sus sitios web protegidos mediante secuencias de comandos HTML de sitios que infrinjan la misma regla de origen, que establece que los scripts no deben acceder ni modificar el contenido de ningún servidor, excepto el servidor en el que se encuentran. Cualquier script que infrinja la misma regla de origen se denomina secuencia de comandos de sitios y la práctica de utilizar scripts para acceder o modificar el contenido de otro servidor se denomina script de sitios. La razón por la que los scripts de sitios son un problema de seguridad es que un servidor web que permite la creación de scripts de sitios puede ser atacado con una secuencia de comandos que no esté en ese servidor web, sino en un servidor web diferente, como uno que sea propiedad y esté controlado por el atacante.

Desafortunadamente, muchas empresas tienen una gran base instalada de contenido web mejorado con JavaScript que infringe la misma regla de origen. Si habilita la comprobación de scripts de sitios HTML en un sitio de este tipo, debe generar las excepciones apropiadas para que la comprobación no bloquee la actividad legítima.

Web App Firewall ofrece varias opciones de acción para implementar la protección de scripts HTML de sitios. Además de las acciones Bloquear, Registrar, Estadísticas y Aprender, también tiene la opción de Transformar scripts de sitios para que un ataque sea inofensivo por parte de la entidad que codifica las etiquetas de script en la solicitud enviada. Puede configurar el parámetro Comprobar URL completas para scripts de sitios para especificar si quiere inspeccionar no solo los parámetros de consulta, sino toda la URL para detectar ataques de scripts de sitios. Puede configurar el parámetro InspectQueryContentTypes para inspeccionar la parte de la consulta de solicitud en busca del ataque de scripts de sitios para los tipos de contenido específicos.

Puede implementar relajaciones para evitar falsos positivos. El motor de aprendizaje de Web App Firewall puede proporcionar recomendaciones para configurar reglas de relajación.

Para configurar una protección optimizada de scripts de sitios HTML para su aplicación, configure una de las siguientes acciones:

  • Bloquear: si habilita el bloqueo, la acción de bloqueo se desencadena si se detectan las etiquetas de scripts de sitios en la solicitud.
  • Registro: si habilita la función de registro, la comprobación de scripts de sitios HTML genera mensajes de registro que indican las acciones que lleva a cabo. Si el bloqueo está inhabilitado, se genera un mensaje de registro independiente para cada encabezado o campo de formulario en el que se detectó la infracción de scripts de sitios. Sin embargo, solo se genera un mensaje cuando se bloquea la solicitud. Del mismo modo, se genera 1 mensaje de registro por solicitud para la operación de transformación, incluso cuando las etiquetas de scripts de sitios se transforman en varios campos. Puede supervisar los registros para determinar si las respuestas a las solicitudes legítimas se están bloqueando. Un gran aumento en la cantidad de mensajes de registro puede indicar intentos de lanzar un ataque.
  • Estadísticas: si está habilitada, la función de estadísticas recopila estadísticas sobre infracciones y registros. Un aumento inesperado en el contador de estadísticas podría indicar que su aplicación está siendo atacada. Si las solicitudes legítimas se bloquean, es posible que tenga que volver a visitar la configuración para ver si debe configurar las nuevas reglas de relajación o modificar las existentes.
  • Aprender: si no está seguro de qué reglas de relajación podrían ser las más adecuadas para su aplicación, puede utilizar la función de aprendizaje para generar recomendaciones de reglas de scripts de sitios HTML basadas en los datos aprendidos. El motor de aprendizaje de Web App Firewall supervisa el tráfico y proporciona recomendaciones de aprendizaje basadas en los valores observados. Para obtener un beneficio óptimo sin comprometer el rendimiento, es posible que desee habilitar la opción de aprendizaje durante un tiempo breve para obtener una muestra representativa de las reglas y, a continuación, implementar las reglas y inhabilitar el aprendizaje.
  • Transformar scripts de sitios: Si está habilitada, Web App Firewall realiza los siguientes cambios en las solicitudes que coinciden con la comprobación de scripts de sitios HTML:
    • Corchete angular izquierdo (<) a equivalente de entidad de caracteres HTML (<)
    • Corchete angular derecho (>) a equivalente de entidad de caracteres HTML (>)

Esto garantiza que los navegadores no interpreten etiquetas html inseguras, como, y, por lo tanto <script>, ejecuten código malicioso. Si habilitas tanto la verificación como la transformación de encabezados de solicitud, también se modifican los caracteres especiales que se encuentren en los encabezados de solicitud. Si los scripts de su sitio web protegido contienen funciones de scripts de sitios, pero su sitio web no depende de esos scripts para funcionar correctamente, puede inhabilitar el bloqueo y habilitar la transformación de forma segura. Esta configuración garantiza que no se bloquee el tráfico web legítimo y, al mismo tiempo, detiene los posibles ataques de scripts de sitios.

  • Compruebe las URL completas para scripts de sitios. Si la verificación de las URL completas está habilitada, Web App Firewall examina las URL completas en busca de ataques de scripts de sitios HTML en lugar de comprobar solo las partes de consulta de las URL.
  • Marque los encabezados de solicitud. Si la comprobación de encabezados de solicitud está habilitada, Web App Firewall examina los encabezados de las solicitudes de ataques de scripts de sitios HTML, en lugar de solo las URL. Si usa la GUI, puede habilitar este parámetro en la ficha Configuración del perfil de Web App Firewall.
  • Inspeccionar los tipos de contenido de la consulta. Si la inspección de consultas de solicitudes está configurada, App Firewall examina la consulta de las solicitudes de ataques de scripts de sitios para los tipos de contenido específicos. Si usa la GUI, puede configurar este parámetro en la ficha Configuración del perfil de App Firewall.

Importante:

Como parte de los cambios de transmisión, el procesamiento de Web App Firewall de las etiquetas de scripts de sitios ha cambiado. Este cambio se aplica a las compilaciones 11.0 en adelante. Este cambio también es relevante para las compilaciones de mejora de 10.5.e que admiten la transmisión en el lado de la solicitud. En versiones anteriores, la presencia de corchetes abiertos (<), corquetes cerrados (>) o corchetes abiertos y cerrados (<>) se marcaba como Infracción de scripts de sitios. El comportamiento ha cambiado en las compilaciones que incluyen soporte para la transmisión en el lado de la solicitud. Solo el carácter de corchete cerrado (>) ya no se considera un ataque. Las solicitudes se bloquean incluso cuando hay un carácter de corchete abierto (<) y se consideran un ataque. El ataque de scripts de sitios se marca.

Scripting de sitios Relajaciones de grano fino

Web App Firewall le ofrece la opción de eximir un campo de formulario, encabezado o cookie específicos de la verificación de la inspección de scripts de sitios. Puede omitir por completo la inspección de uno o más de estos campos configurando las reglas de relajación.

Web App Firewall le permite implementar una seguridad más estricta ajustando las reglas de relajación. Una aplicación puede requerir la flexibilidad para permitir patrones específicos, pero configurar una regla de relajación para eludir la inspección de seguridad puede hacer que la aplicación sea vulnerable a los ataques, ya que el campo de destino está exento de la inspección de cualquier patrón de ataque de scripts de sitios. La relajación detallada de scripts de sitios proporciona la opción de permitir atributos, etiquetas y patrones específicos. El resto de los atributos, etiquetas y patrones están bloqueados. Por ejemplo, Web App Firewall tiene actualmente un conjunto predeterminado de más de 125 patrones denegados. Como los piratas informáticos pueden utilizar estos patrones en ataques de scripts de sitios, Web App Firewall los marca como amenazas potenciales. Puede relajar uno o más patrones que se consideran seguros para la ubicación específica. El resto de los patrones de scripts de sitios potencialmente peligrosos aún se comprueban para la ubicación de destino y continúan desencadenando las infracciones de la verificación de seguridad. Ahora tienes un control mucho más estricto.

Los comandos utilizados en las relajaciones tienen parámetros opcionales para Tipo de valor y Expresión de valor. El tipo de valor se puede dejar en blanco o tiene la opción de seleccionar Etiqueta, Atributo o Patrón. Si deja el tipo de valor en blanco, el campo configurado de la URL especificada queda exento de la inspección de comprobación de scripts de sitios. Si selecciona un tipo de valor, debe proporcionar una expresión de valor. Puede especificar si la expresión de valor es una expresión regular o una cadena literal. Cuando la entrada se compara con la lista de permitidos y denegados, solo se excluyen las expresiones especificadas configuradas en las reglas de relajación.

Web App Firewall tiene las siguientes listas integradas de scripts de sitios:

  1. Atributos permitidos de scripts de sitios: Hay 52 atributos permitidos predeterminados, como abbr, accesskey, align, alt, axis, bgcolor, border, cell padding, cell spacing, char, charoff, charset, etc.
  2. Etiquetas permitidas de scripts de sitios: Hay 47 etiquetas permitidas predeterminadas, como address, basefont, bgsound, big, blockquote, bg, br, caption, center, cite, dd, del, etc.
  3. Patrones denegados de scripts de sitios: hay 129 patrones denegados predeterminados, como FSCommand, javascript:, onAbort, onActivate, etc.

Advertencia

Las URL de acción de Web App Firewall son expresiones regulares. Al configurar reglas de relajación de scripts de sitios HTML, puede especificar Nombrey Expresión de valor para que sean literales o RegEx. Las expresiones regulares son potentes. Especialmente si no está familiarizado con las expresiones regulares en formato PCRE, compruebe las expresiones regulares que escriba. Asegúrese de que definen exactamente la regla que quiere agregar como excepción y nada más. El uso descuidado de caracteres comodín, y especialmente del metacarácter punto-asterisco (.*) o la combinación de caracteres comodín, puede tener resultados que no quiere, como bloquear el acceso al contenido web que no pretendía bloquear o permitir un ataque que la comprobación de scripts de sitios HTML habría bloqueado de otro modo.

Puntos a considerar:

  • La expresión de valor es un argumento opcional. Es posible que un nombre de campo no tenga ninguna expresión de valor.
  • Un nombre de campo se puede enlazar a varias expresiones de valor.
  • A las expresiones de valor se les debe asignar un tipo de valor. El tipo de valor de scripts de sitios puede ser: 1) Etiqueta, 2) Atributo o 3) Patrón.
  • Puede tener varias reglas de relajación por combinación de nombre de campo/URL
  • Los nombres de los campos del formulario y las URL de acción no distinguen entre mayúsculas y minúsculas.

Uso de la línea de comandos para configurar la comprobación de scripts de sitios HTML

Para configurar las acciones de comprobación de scripts de sitios HTML y otros parámetros mediante la línea de comandos

Si utiliza la interfaz de línea de comandos, puede introducir los siguientes comandos para configurar la comprobación de scripts de sitios HTML:

  • set appfw profile topic.
  • <name> -crossSiteScriptingAction (([block] [learn] [log] [stats]) | [**none**])
  • [set appfw profile topic.
  • <name> **-crossSiteScriptingTransformUnsafeHTML** (ON | OFF)
  • set appfw profile topic.
  • <name> -crossSiteScriptingCheckCompleteURLs (ON | OFF)
  • set appfw profile topic.
  • ` - checkRequestHeaders (ON \| OFF)
  • <name> - CheckRequestQueryNonHtml (ON | OFF)

Para configurar una regla de relajación de comprobación de scripts de sitios HTML mediante la línea de comandos

Utilice el comando bind o unbind para agregar o eliminar enlaces, como se indica a continuación:

  • bind appfw profile <name> -crossSiteScripting <String> [isRegex (REGEX | NOTREGEX)] <formActionURL> [-location <location>] [-valueType (Tag|Attribute|Pattern) [<valueExpression>] [-isValueRegex (REGEX | NOTREGEX) ]]
  • unbind appfw profile <name> -crossSiteScripting <String> <formActionURL> [-location <location>] [-valueType (Tag |Attribute|Pattern) [<valueExpression>]]

Uso de la interfaz gráfica de usuario para configurar la comprobación de scripts de sitios HTML

En la GUI, puede configurar la comprobación HTML Cross-Site Scripting en el panel para el perfil asociado a su aplicación.

Para configurar o modificar la comprobación de scripts de sitios HTML mediante la interfaz gráfica de usuario

  1. Vaya a Firewall de aplicaciones > Perfiles, resalte el perfil de destino y haga clic en Modificar.
  2. En el panel Configuración avanzada, haga clic en Comprobaciones de seguridad.

La tabla de comprobación de seguridad muestra los valores de acción configurados actualmente para todas las comprobaciones de seguridad. Tiene 2 opciones de configuración:

a. Si quiere habilitar o inhabilitar las acciones Bloquear, Registrar, Estadísticas y Aprender para los scripts HTML de sitios, puede marcar o desmarcar las casillas de la tabla, hacer clic en Aceptar y, a continuación, hacer clic en Guardar y cerrar para cerrar el panel Comprobación de seguridad.

b. Si quiere configurar más opciones para esta comprobación de seguridad, haga doble clic en HTML Cross-Site Scriptingo seleccione la fila y haga clic en Configuración de accionespara mostrar las siguientes opciones:

Transformar scripts de sitios: Transforma etiquetas de scripts no seguros.

Comprobar las URL completas para scripts de sitios: En lugar de verificar solo la parte de consulta de la URL, verifique la URL completa para detectar infracciones de scripts de sitios.

Después de cambiar cualquiera de las configuraciones anteriores, haga clic en Aceptar para guardar los cambios y volver a la tabla Comprobaciones de seguridad. Puede proceder a configurar otras comprobaciones de seguridad si es necesario. Haga clic en Aceptar para guardar todos los cambios que ha realizado en la sección Comprobaciones de seguridad y, a continuación, haga clic en Guardar y cerrar para cerrar el panel Comprobación de seguridad.

Para habilitar o inhabilitar la configuración Comprobar encabezado de solicitud, en el panel Configuración avanzada, haga clic en Configuración de perfil. En Configuración común, marque o desmarque la casilla Comprobar encabezados de solicitud. Haga clic en Aceptar. Puede usar el icono X en la parte superior derecha del panel Configuración del perfil para cerrar esta sección o, si ha terminado de configurar este perfil, puede hacer clic en Listo para volver a Firewall de aplicaciones > Perfil.

Para habilitar o inhabilitar la configuración Consulta de solicitud de verificación no HTML, en el panel Configuración avanzada, haga clic en Configuración de perfil. En Configuración común, marque o desmarque la casilla Comprobar solicitud de consulta que no es HTML. Haga clic en Aceptar. Puede usar el icono X en la parte superior derecha del panel Configuración del perfil para cerrar esta sección o, si ha terminado de configurar este perfil, puede hacer clic en Listo para volver a App Firewall > Perfil.

Para configurar una regla de relajación de scripts de sitios HTML mediante la interfaz gráfica de usuario

  1. Vaya a Firewall de aplicaciones > Perfiles, resalte el perfil de destino y haga clic en Modificar.
  2. En el panel Configuración avanzada, haga clic en Reglas de relajación.
  3. En la tabla Reglas de relajación, haga doble clic en la entrada HTML Cross-Site Scripting o selecciónela y haga clic en Modificar.
  4. En el cuadro de diálogo Reglas de relajación de scripts de sitios HTML, realice las operaciones Agregar, Modificar, Eliminar, Habilitaro Inhabilitar para las reglas de relajación.

Nota

Al agregar una nueva regla, el campo Expresión de valor no se muestra a menos que seleccione la opción Etiqueta, Atributo o Patrón en el campo Tipo de valor.

Para administrar las reglas de relajación de scripts de sitios HTML mediante el visualizador

Para obtener una vista consolidada de todas las reglas de relajación, puede resaltar la fila HTML Cross-Site Scripting en la tabla Reglas de relajación y hacer clic en Visualizador. El visualizador de relajaciones desplegadas le ofrece la opción de agregar una nueva regla o modificar una existente. También puede habilitar o inhabilitar un grupo de reglas seleccionando un nodo y haciendo clic en los botones correspondientes en el visualizador de relajación.

Para ver o personalizar los patrones de scripts de sitios mediante la interfaz gráfica de usuario

Puede utilizar la interfaz gráfica de usuario para ver o personalizar la lista predeterminada de atributos o etiquetas permitidas de scripts de sitios. También puede ver o personalizar la lista predeterminada de patrones denegados de scripts de sitios.

Las listas predeterminadas se especifican en Firewall de aplicaciones > Firmas > Firmaspredeterminadas. Si no vincula ningún objeto de firma a su perfil, el perfil utilizará la lista predeterminada de scripts de sitios permitidas y denegadas especificada en el objeto Firmas predeterminadas para el procesamiento de la comprobación de seguridad de scripts de sitios. Las etiquetas, atributos y patrones, especificados en el objeto de firmas predeterminado, son de solo lectura. No puede modificarlos ni modificarlos. Si quiere modificarlos o cambiarlos, haga una copia del objeto Firmas predeterminadas para crear un objeto de firma definido por el usuario. Realice cambios en las listas permitidas o denegadas en el nuevo objeto de firma definido por el usuario y use este objeto de firma en su perfil que procesa el tráfico para el que quiere usar estas listas personalizadas de permitidos y denegados.

  1. Para ver los patrones de scripts de sitios predeterminados:

a. Vaya a Firewall de aplicaciones > Firmas, seleccione Firmas predeterminadasy haga clic en Modificar. A continuación, haga clic en Administrar patrones de scripts SQL/de sitios.

En la tabla Administrar rutas de scripts SQL/de sitios se muestran las tres filas siguientes relacionadas con los scripts de sitios:

xss/allowed/attribute

xss/allowed/tag

xss/denied/pattern

b. Seleccione una fila y haga clic en Administrar elementos para mostrar los elementos de scripts de sitios correspondientes (etiqueta, atributo, patrón) utilizados por la comprobación de scripts de sitios** de Web App Firewall.

  1. Para personalizar elementos de scripts de sitios: puede modificar el objeto de firma definido por el usuario para personalizar la etiqueta, los atributos permitidos y los patrones denegados permitidos. Puede agregar nuevas entradas o eliminar las existentes.

a. Vaya a Firewall de aplicaciones > Firmas, resalte la firma definida por el usuario de destino y haga clic en Modificar. Haga clic en Administrar patrones de scripts SQL/de sitios para mostrar la tabla Administrar rutas de scripts SQL/de sitios.

b. Seleccione la fila de scripts de sitios de destino.

i. Haga clic en Administrar elementospara agregar, modificar o eliminar el elemento de scripts de sitios correspondiente.

ii. Haga clic en Eliminar para quitar la fila seleccionada.

Advertencia:

Debe tener cuidado antes de eliminar o modificar cualquier elemento predeterminado de scripts de sitios, o eliminar la ruta de scripts de sitios para eliminar toda la fila. Las reglas de firma y la comprobación de seguridad de scripts de sitios se basan en estos elementos para detectar ataques con el fin de proteger sus aplicaciones. Personalizar los elementos de scripts de sitios puede hacer que su aplicación sea vulnerable a los ataques de scripts de sitios si se elimina el patrón requerido durante la edición.

Aprender las infracciones de scripts de sitios HTML (scripts de sitios)

Con el aprendizaje habilitado, el motor de aprendizaje de Citrix Web App Firewall supervisa el tráfico y aprende las infracciones de URL de scripts de sitios. Puede inspeccionar periódicamente las reglas de URL de scripts de sitios e implementarlas en escenarios de falsos positivos.

Nota:

En una configuración de clúster, todos los nodos deben ser de la misma versión para implementar las reglas de URL de scripts de sitios.

Como parte de la configuración de aprendizaje, Web App Firewall ofrece un aprendizaje detallado de scripts de sitios HTML. El motor de aprendizaje hace recomendaciones con respecto al tipo de valor observado (etiqueta, atributo, patrón) y la expresión de valor correspondiente observada en los campos de entrada. Además de comprobar las solicitudes bloqueadas para determinar si la regla actual es demasiado restrictiva y necesita ser relajada, puede revisar las reglas generadas por el motor de aprendizaje para determinar qué tipo de valor y expresiones de valor están desencadenando infracciones y deben abordarse en las reglas de relajación.

Nota:

El motor de aprendizaje de Web App Firewall puede distinguir solo los primeros 128 bytes del nombre. Si un formulario tiene varios campos con nombres que coinciden con los primeros 128 bytes, es posible que el motor de aprendizaje no pueda distinguir entre ellos. Del mismo modo, la regla de relajación implementada podría relajar inadvertidamente todos esos campos de la inspección de scripts de sitios HTML.

Sugerencia:

Las etiquetas de scripts de sitios que tienen más de 12 caracteres no se aprenden ni se registran correctamente.

Si necesita una longitud de etiqueta mayor para el aprendizaje, puede agregar una etiqueta grande que no aparezca en AS_cross-site Scripting_allowed_tags_list para una longitud ‘x’.

El proceso de aprendizaje de scripts de sitios HTML reduce los falsos positivos en los ataques de scripts de sitios. Con el aprendizaje habilitado, puede aprender todas las infracciones en una solicitud y, potencialmente, aplicar relajación a varias etiquetas, atributos o patrones sin necesidad de repetición.

Por ejemplo, si hay 15 etiquetas personalizadas en una carga útil, cada una de las cuales resulta en una infracción, puede aplicar la relajación de grano fino a todas las etiquetas marcadas como infracción, en lugar de repetir el proceso para aplicar la relajación de una etiqueta a la vez.

Escenario 1: aprendizaje habilitado y bloqueo habilitado: en este escenario, el dispositivo Citrix ADC detecta todas las infracciones en etiquetas/atributos/patrones personalizados, y la solicitud se bloquea y se registra cada infracción. El comportamiento es coherente para las infracciones identificadas en el campo del formulario, el encabezado o la cookie.

Escenario 2: aprendizaje habilitado y bloqueo inhabilitado: en este escenario, el dispositivo Citrix ADC aprende las infracciones en etiquetas/atributos/patrones personalizados y se registra cada una de las infracciones. La solicitud no está bloqueada. El comportamiento es coherente para las infracciones identificadas en el campo del formulario, el encabezado o la cookie.

Para ver o utilizar datos aprendidos mediante la interfaz de línea de comandos

En el símbolo del sistema, escriba uno de los siguientes comandos:

  • show appfw learningdata <profilename> crossSiteScripting
  • rm appfw learningdata <profilename> -crossSiteScripting <string> <formActionURL> [<location>] [<valueType> <valueExpression>]
  • export appfw learningdata <profilename> **crossSiteScripting*

Configurar la relajación de grano fino de scripts de sitios para omitir las etiquetas personalizadas

Puede configurar la relajación de scripts de sitios en el perfil de firewall de aplicaciones web para omitir las etiquetas/atributos/patrones personalizados que no están presentes en la lista de permitidos. En el símbolo del sistema, escriba:

bind appfw profile p1 -crossSiteScripting <string> <formActionURL> -valueType <valueType> <value expression>

Ejemplo:

bind appfw profile profile1 -crossSiteScripting formfield1 http://1.1.1.1 -valueType Tag tag1

Para ver o usar datos aprendidos mediante la interfaz gráfica de usuario

  1. Vaya a Firewall de aplicaciones > Perfiles, resalte el perfil de destino y haga clic en Modificar.
  2. En el panel Configuración avanzada, haga clic en Reglas aprendidas. Puede seleccionar la entrada HTML Cross-Site Scripting en la tabla Reglas aprendidas y hacer doble clic en ella para acceder a las reglas aprendidas. En la tabla se muestran las columnas Nombre de campo, URL de una acción, Tipo de valor, Valor y Visitas. Puede implementar las reglas aprendidas o modificar una regla antes de implementarla como regla de relajación. Para descartar una regla, puede seleccionarla y hacer clic en el botón Omitir. Solo puede modificar una regla a la vez, pero puede seleccionar varias reglas para implementarlas u omitirlas.

También tiene la opción de mostrar una vista resumida de las relajaciones aprendidas seleccionando la entrada HTML Cross-Site Scripting en la tabla Reglas aprendidas y haciendo clic en Visualizador para obtener una vista consolidada de todas las infracciones aprendidas. El visualizador facilita la gestión de las reglas aprendidas. Presenta una vista completa de los datos en una pantalla y facilita la acción sobre un grupo de reglas con un solo clic. La mayor ventaja del visualizador es que recomienda expresiones regulares para consolidar varias reglas. Puede seleccionar un subconjunto de estas reglas, en función del delimitador y de la URL de acción. Puede mostrar 25, 50 o 75 reglas en el visualizador, seleccionando el número en una lista desplegable. El visualizador de reglas aprendidas ofrece la opción de modificar las reglas e implementarlas como relajaciones. O puede saltarse las reglas para ignorarlas.

Uso de la función de registro con la comprobación de scripts de sitios HTML

Cuando la acción de registro está habilitada, las infracciones de comprobación de seguridad de scripts de sitios HTML se registran en el registro de auditoría como infracciones de scripts APPFW_cross-site. El Web App Firewall admite los formatos de registro nativo y CEF. También puede enviar los registros a un servidor syslog remoto.

Para acceder a los mensajes de registro mediante la línea de comandos

Cambie al shell y siga los ns.logs en la carpeta /var/log/ para acceder a los mensajes de registro relacionados con las infracciones de scripts de sitios HTML:

Shell tail -f /var/log/ns.log | grep APPFW_cross-site scripting

Ejemplo de un mensaje de registro de infracciones de comprobación de seguridad de scripts de sitios en formato de registro CEF:

Jul 11 00:45:51 <local0.info> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|\*\*APPFW_cross-site scripting\*\*|6|src=10.217.253.62 geolocation=Unknown spt=4840 method=GET request=http://aaron.stratum8.net/FFC/CreditCardMind.html?abc=%3Cdef%3E msg=\*\*Cross-site script check failed for field abc="Bad tag: def"\*\* cn1=133 cn2=294 cs1=pr_ffc cs2=PPE1 cs3=eUljypvLa0BbabwfGVE52Sewg9U0001 cs4=ALERT cs5=2015 act=\*\*not blocked\*\*
<!--NeedCopy-->

Ejemplo de mensaje de registro de infracción de comprobación de seguridad de scripts de sitios en formato de registro nativo que muestra la acción de transformación

Jul 11 01:00:28 <local0.info> 10.217.31.98 07/11/2015:01:00:28 GMT ns 0-PPE-0 : default APPFW \*\*APPFW_cross-site scripting\*\* 132 0 :  10.217.253.62 392-PPE0 eUljypvLa0BbabwfGVE52Sewg9U0001 pr_ffc http://aaron.stratum8.net/FFC/login.php?login_name=%3CBOB%3E&passwd=&drinking_pref=on &text_area=&loginButton=ClickToLogin&as_sfid=AAAAAAVFqmYL68IGvkrcn2pzehjfIkm5E6EZ9FL8YLvIW_41AvAATuKYe9N7uGThSpEAxbb0iBx55jyvqOZNiVK_XwEPstMYvWHxfUWl62WINwRMrKsEDil-FC4llF \*\*Cross-site script special characters seen in fields <transformed>\*\*
<!--NeedCopy-->

Acceder a los mensajes de registro mediante la GUI

La GUI de Citrix incluye una herramienta útil (Syslog Viewer) para analizar los mensajes de registro. Tiene varias opciones para acceder al Visor de Syslog:

  • Vaya a Firewall de aplicaciones > Perfiles, seleccione el perfil de destino y haga clic en Comprobaciones de seguridad. Resalte la fila HTML Cross-Site Scripting y haga clic en Registros. Cuando accede a los registros directamente desde la comprobación HTML Cross-Site Scripting del perfil, la GUI filtra los mensajes de registro y muestra solo los registros relacionados con estas infracciones de comprobación de seguridad.
  • También puede acceder al Visor de Syslog navegando a Citrix ADC > Sistema > Auditoría. En la sección Mensajes de auditoría, haga clic en el enlace Mensajes de Syslog para mostrar el Visor de Syslog, que muestra todos los mensajes de registro, incluidos otros registros de infracciones de comprobación de seguridad. Esto resulta útil para depurar cuando se pueden desencadenar varias infracciones de comprobación de seguridad durante el procesamiento de solicitudes.
  • Vaya a Firewall de aplicaciones > directivas > Auditoría. En la sección Mensajes de auditoría, haga clic en el enlace Mensajes de syslog para mostrar el Visor de Syslog, que muestra todos los mensajes de registro, incluidos otros registros de infracciones de comprobación de seguridad.

El Visor de Syslog basado en HTML proporciona varias opciones de filtro para seleccionar solo los mensajes de registro que le interesan. Para seleccionar mensajes de registro para la comprobación de scripts de sitiosHTML, filtre seleccionando APPFW en las opciones de la lista desplegable para el módulo. La lista Tipo de evento ofrece un amplio conjunto de opciones para refinar aún más su selección. Por ejemplo, si marca la casilla Scripts AppFW_cross-site y hace clic en el botón Aplicar, solo aparecerán en el Visor de Syslog los mensajes de registro relacionados con las infracciones de la comprobación de seguridad de scripts de sitios HTML.

Si coloca el cursor en la fila de un mensaje de registro específico, aparecen varias opciones, como Módulo, Tipo de evento, ID de evento, IP de cliente, etc., debajo del mensaje de registro. Puede seleccionar cualquiera de estas opciones para resaltar la información correspondiente en el mensaje de registro.

La funcionalidadHacer clic para implementar solo está disponible en la GUI. Puede usar Syslog Viewer no solo para ver los registros, sino también para implementar las reglas de relajación de scripts de sitios HTML basadas en los mensajes de registro de las infracciones de comprobación de seguridad de Web App Firewall. Los mensajes de registro deben estar en formato de registro CEF para esta operación. La funcionalidad Hacer clic para implementar solo está disponible para los mensajes de registro generados por la acción bloquear (o no bloquear). No puede implementar una regla de relajación para un mensaje de registro sobre la operación de transformación.

Para implementar una regla de relajación desde el Visor de Syslog, seleccione el mensaje de registro. Aparece una casilla de verificación en la esquina superior derecha del cuadro Visor de Syslog de la fila seleccionada. Seleccione la casilla de verificación y, a continuación, seleccione una opción de la lista Acción para implementar la regla de relajación. Modificar e implementar, Implementar e Implementar todo están disponibles como opciones de Acción.

Las reglas de scripts de sitios HTML que se implementan mediante la opción Hacer clic para implementar no incluyen las recomendaciones de relajación de grano fino.

Configurar la función clic para implementar mediante la interfaz gráfica de usuario

  1. En el Visor de Syslog, seleccione APPFW en las opciones de Módulo.
  2. Seleccione Scripts APP_cross-site como Tipo de evento para filtrar los mensajes de registro correspondientes.
  3. Seleccione la casilla de verificación para identificar la regla que se va a implementar.
  4. Utilice la lista desplegable Acción de opciones para implementar la regla de relajación.
  5. Compruebe que la regla aparece en la sección de reglas de relajación correspondiente.

Estadísticas de las infracciones de scripts de sitios HTML

Cuando la acción de estadísticas está habilitada, el contador de la comprobación de scripts de sitios HTML se incrementa cuando Web App Firewall realiza cualquier acción para esta comprobación de seguridad. Las estadísticas se recopilan para Rate and Total count para Tráfico, Infracciones y Registros. El tamaño de un incremento del contador de registro puede variar en función de la configuración configurada. Por ejemplo, si la acción de bloqueo está habilitada, la solicitud de una página que contiene 3 infracciones de scripts de sitios HTML aumenta el contador de estadísticas en uno, ya que la página se bloquea cuando se detecta la primera infracción. Sin embargo, si el bloque está inhabilitado, el procesamiento de la misma solicitud aumenta en tres el contador de estadísticas de infracciones y registros, porque cada infracción genera un mensaje de registro independiente.

Para mostrar scripts de sitios HTML, compruebe las estadísticas mediante la línea de comandos

En el símbolo del sistema, escriba:

> sh appfw stats

Para mostrar las estadísticas de un perfil específico, use el siguiente comando:

> **stat appfw profile** <profile name>

Mostrar estadísticas de scripts de sitios HTML mediante la interfaz gráfica de usuario

  1. Vaya a Seguridad > Firewall de aplicaciones > Perfiles > Estadísticas.
  2. En el panel derecho, acceda al enlace de Estadísticas.
  3. Use la barra de desplazamiento para ver las estadísticas sobre las infracciones y los registros de scripts de sitios HTML. La tabla de estadísticas proporciona datos en tiempo real y se actualiza cada 7 segundos.

Resumen

  • Compatibilidad integrada para la protección contra ataques de scripts de sitios HTML: Citrix Web App Firewall protege contra los ataques de scripts de sitios mediante la supervisión de una combinación de atributos y etiquetas permitidos y patrones denegados en la carga recibida. Todas las etiquetas permitidas predeterminadas integradas, los atributos permitidos y los patrones denegados utilizados por la comprobación de scripts de sitios se especifican en el archivo /netscaler/default_custom_settings.xml.
  • Personalización: puede cambiar la lista predeterminada de etiquetas, atributos y patrones para personalizar la inspección de comprobación de seguridad de scripts de sitios para las necesidades específicas de su aplicación. Realice una copia del objeto de firma predeterminado, modifique las entradas existentes o agregue otras nuevas. Enlaza este objeto de firma a tu perfil para hacer uso de la configuración personalizada.
  • Modelo de seguridad híbrido: Tanto las firmas como las protecciones de seguridad profundas utilizan los patrones de scripts SQL/de sitios especificados en el objeto de firma que está enlazado al perfil. Si ningún objeto de firma está enlazado al perfil, se utilizan los patrones de scripts SQL/de sitios presentes en el objeto de firma predeterminado.
  • Transformación: tenga en cuenta lo siguiente sobre la operación de transformación:

La operación de transformación funciona independientemente de las demás configuraciones de acción de scripts de sitios. Si la transformación está habilitada y el bloqueo, el registro, las estadísticas y el aprendizaje están desactivados, las etiquetas de scripts de sitios se transforman.

Si la acción de bloqueo está habilitada, tiene prioridad sobre la acción de transformación.

  • Relajación y aprendizaje de grano fino. Ajuste la regla de relajación para relajar un subconjunto de elementos de scripts de sitios de la inspección de controles de seguridad, pero para detectar el resto. El motor de aprendizaje recomienda un tipo de valor específico y expresiones de valor basadas en los datos observados.
  • Hacer clic para implementar: seleccione uno o varios mensajes de registro de infracciones de scripts de sitios en el visor de syslog e impleméntelos como reglas de relajación.
  • Conjunto de caracteres: el conjunto de caracteres predeterminado para el perfil debe establecerse en función de la necesidad de la aplicación. De forma predeterminada, el conjunto de caracteres del perfil está configurado en inglés de EE. UU. (ISO-8859-1). Si se recibe una solicitud sin el conjunto de caracteres especificado, Web App Firewall procesa la solicitud como si fuera ISO-8859-1. El carácter de corchete abierto (<) o de corchete cerrado (>) no se interpretará como etiquetas de scripts de sitios si estos caracteres están codificados en otros conjuntos de caracteres. Por ejemplo, si una solicitud contiene una cadena de caracteres UTF-8 “%uff1cscript%uff1epero el juego de caracteres no se especifica en la página de solicitud, es posible que la infracción de scripts de sitios no se active a menos que el juego de caracteres predeterminado para el perfil se especifique como Unicode.