ADC

Verificación de formatos de campo

La comprobación Formatos de campo verifica los datos que los usuarios envían a sus sitios web en formularios web. Examina tanto la longitud como el tipo de datos para garantizar que son adecuados para el campo de formulario en el que aparecen. Si el Web App Firewall detecta datos de formularios web inapropiados en una solicitud de usuario, bloquea la solicitud.

Al impedir que un atacante envíe datos de formularios web inapropiados a su sitio web, la comprobación de formatos de campo evita ciertos tipos de ataques a su sitio web y a los servidores de bases de datos. Por ejemplo, si un campo determinado espera que el usuario introduzca un número de teléfono, la comprobación de formatos de campo examina la entrada enviada por el usuario para garantizar que los datos coincidan con el formato del número de teléfono. Si un campo en particular espera un nombre, la comprobación de formatos de campo garantiza que los datos de ese campo sean del tipo y la longitud adecuados para un nombre. Hace lo mismo para cada campo de formulario que configure para proteger.

Esta comprobación solo se aplica a las solicitudes HTML. No se aplica a las solicitudes XML. Puede configurar las comprobaciones de formato de campo en los perfiles HTML o los perfiles Web 2.0 para inspeccionar la carga HTML a fin de proteger sus aplicaciones. El Web App Firewall también admite la protección Field Format Check para las aplicaciones de Google Web Toolkit (GWT).

La comprobación de formatos de campo requiere que habilite una o más acciones. El Web App Firewall examina las entradas enviadas y aplica las acciones especificadas.

Nota

Las reglas de formato de campo son reglas restrictivas. Agregarlos a la lista de relajación a partir de los datos aprendidos actúa como una regla de bloqueo.

Para relajar las reglas de formato de campo, elimine un “nombre de campo” determinado de la lista de relajaciones de formato de campo.

Tiene la opción de configurar los formatos de campo predeterminados para especificar el tipo de campo y la longitud mínima y máxima de los datos esperados en cada campo de formulario de cada formulario web que desee proteger. Puede implementar reglas de relajación para configurar un formato de campo para un campo individual de un formulario específico. Se pueden agregar varias reglas para especificar el nombre del campo, la URL de la acción y los formatos de campo. Especifique los formatos de campo para aceptar diferentes tipos de entradas en diferentes campos de formulario. La función de aprendizaje puede proporcionar recomendaciones sobre las reglas de relajación.

Acciones de formato de campo: puede habilitar las acciones de bloqueo, registro, estadísticas y aprendizaje. Al menos una de estas acciones debe estar habilitada para activar la protección Field Format Check.

  • Bloquear. Si habilita el bloqueo, la acción de bloqueo se activa si la entrada no se ajusta al formato de campo especificado. Si se configuró una regla para el campo de destino, la entrada se compara con la regla especificada. De lo contrario, se compara con la especificación de formato de campo predeterminada. Cualquier discrepancia en la especificación del tipo de campo o de la longitud mínima/máxima provoca el bloqueo de la solicitud.
  • Registro. Si habilita la función de registro, la comprobación de formato de campo genera mensajes de registro que indican las acciones que realiza. Puede supervisar los registros para determinar si las respuestas a las solicitudes legítimas se están bloqueando. Un gran aumento en el número de mensajes de registro puede indicar intentos malintencionados 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 o puede que tenga que revisar la configuración para comprobar si el formato de campo especificado es demasiado restrictivo.
  • Aprende. Si no está seguro de qué tipos de campos o valores de longitud mínima y máxima podrían ser ideales para su aplicación, puede utilizar la función de aprendizaje para generar recomendaciones basadas en los datos aprendidos. El motor de aprendizaje Web App Firewall monitorea el tráfico y proporciona recomendaciones de formato de campo 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. Nota: El motor de aprendizaje del Web App Firewall solo puede distinguir 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.

Formato de campo predeterminado: además de configurar las acciones, puede configurar el formato de campo predeterminado para especificar el tipo de datos esperados en todos los campos del formulario de la aplicación. Se puede seleccionar un tipo de campo como tipo de formato de campo. Los parámetros de longitud mínima y longitud máxima se pueden utilizar para especificar la longitud de las entradas permitidas. Como alternativa a los tipos de campo, puedes usar los mapas de caracteres para especificar lo que está permitido en un campo (excepto en las implementaciones de clústeres).

  • Tipo de campo: los tipos de campo se denominan expresiones a las que se asignan los valores de prioridad asignados. Las expresiones de tipo de campo especifican las entradas permitidas y se comparan con los datos enviados para determinar si los valores recibidos son coherentes con los valores permitidos. Los tipos de campo se marcan en el orden de sus números de prioridad. Un número inferior indica una prioridad más alta. El Web App Firewall le ofrece la opción de agregar sus propios tipos de campos y asignarles las prioridades que desee. El valor de prioridad puede oscilar entre 0 y 64000. Se proporcionan los siguientes tipos de campos integrados para ayudar a simplificar el proceso de configuración:

     > sh appfw fieldtype
     1)      Name:  integer           Regex:  "^[+-]?[0-9]+$"
                     Priority:  30            Comment:  Integer
                     Builtin:  IMMUTABLE
     2)      Name:  alpha             Regex:  "^[a-zA-Z]+$"
                     Priority:  40            Comment:  "Alpha characters"
                  Builtin:  IMMUTABLE
     3)      Name:  alphanum          Regex:  "^[a-zA-Z0-9]+$"
                     Priority:  50            Comment:  "Alpha-numeric characters"
                     Builtin:  IMMUTABLE
     4)      Name:  nohtml            Regex:  "^[^&<>]\*$"
                     Priority:  60            Comment:  "Not HTML"
                     Builtin:  IMMUTABLE
     5)      Name:  any               Regex:  "^.\*$"
                  Priority:  70            Comment:  Anything
                     Builtin:  IMMUTABLE
         Done
     >
     <!--NeedCopy-->
    

    Nota: Los tipos de campo integrados son INMUTABLES. No se pueden modificar ni eliminar. Cualquier tipo de campo que añada es MODIFICABLE. Puede editarlas o eliminarlas.

    Configurar un tipo de campo como formato de campo predeterminado puede resultar útil cuando tiene una expresión PCRE que pueda identificar las entradas válidas en todos o la mayoría de los campos del formulario de la aplicación y excluir las entradas no válidas. Por ejemplo, si se espera que todas las entradas de los formularios de solicitud contengan solo números y letras, es posible que desee utilizar el tipo de campo incorporado alum como tipo de campo predeterminado. Cualquier carácter que no sea alfanumérico, como una barra invertida () o un punto y coma, en la entrada provocará una infracción. También puede agregar sus propios tipos de campo personalizados y usarlos para configurar los formatos de campo predeterminados. Por ejemplo, si desea que las minúsculas “x”, “y” y “z” sean los únicos caracteres alfabéticos permitidos, puede configurar un tipo de campo personalizado con la expresión regular “^ [x-z] +$”. Puede asignarle una prioridad más alta (número de prioridad menor) que los tipos de campo integrados y utilizarlo como tipo de campo predeterminado.

  • Longitud mínima : la longitud mínima de datos predeterminada que se asigna a los campos de formulario de los formularios web que no tienen una configuración explícita. Este parámetro se establece en 0 de forma predeterminada, lo que permite al usuario dejar el campo en blanco. Cualquier configuración superior obliga a los usuarios a rellenar el campo.

    Precaución: Si el valor de longitud mínima es 0 pero el tipo de campo es entero, alfa o alfa, se bloquea la solicitud si algún campo de entrada queda vacío, a pesar de la configuración de longitud mínima. Esto se debe a que la expresión regular de estos tipos de campo contiene un carácter +, lo que significa uno o más caracteres. Para distinguir un carácter entero de un carácter alfa se requiere al menos un carácter.

  • Longitud máxima: la longitudmáxima de datos predeterminada que se asigna a los campos de formulario de los formularios web que no tienen una configuración explícita. Este parámetro está establecido en 65535 de forma predeterminada.

    Nota: Caracteres frente a bytes. Las longitudes mínima y máxima de los formatos de campo representan el número de bytes, no el número de caracteres. Los idiomas que tienen una representación de caracteres de más de un byte pueden provocar que se supere el límite con menos caracteres que el número configurado para el valor máximo. Por ejemplo, con la representación de caracteres de doble byte, el valor máximo de 9 no permite más de 4 caracteres. Consejo: La interfaz gráfica de usuario permite cortar y pegar caracteres UTF-8 directamente en la GUI sin tener que convertirlos a formato hexadecimal.

  • Mapas de caracteres: además de recomendar los tipos de campos, el motor de aprendizaje Web App Firewall le ofrece una opción adicional, utilizar mapas de caracteres, para implementar las reglas de verificación de formato. Un mapa de caracteres es un conjunto de todos los caracteres permitidos en un campo de formulario determinado. Puede ajustar con precisión la especificación del formato de campo para permitir o no permitir caracteres específicos mediante los mapas de caracteres. Se genera un mapa de caracteres independiente para cada campo del formulario. Los caracteres alfa y numérico se tratan de manera diferente en los mapas de caracteres. Si aparece algún carácter alfa en la entrada, la expresión de PCRE recomendada en el mapa de caracteres permitirá todos los caracteres alfa [a-zA-Z]. Del mismo modo, si se incluye algún dígito, se admitirán todos los dígitos [0-9]. Los caracteres no imprimibles se especifican mediante el componente fijo x. Para las recomendaciones del mapa de caracteres, solo se tienen en cuenta los caracteres de un solo byte con valores entre 0 y 255.

    Un mapa de caracteres puede ser más específico que la recomendación de tipo de campo correspondiente. En algunas situaciones, los mapas de caracteres pueden ser una mejor opción, ya que permiten controlar mejor el conjunto de caracteres permitidos como entradas. Los mapas de caracteres desplegados se muestran como cadenas que comienzan con el prefijo “CM” seguido de dígitos. La prioridad de los mapas de personajes comienza en 10000. Al igual que con los tipos de campo añadidos por el usuario, puede añadir, editar o eliminar un mapa de caracteres. Los mapas de personajes que se utilizan actualmente en las reglas implementadas no se pueden modificar ni eliminar.

    Nota: Los mapas de personajes no se admiten en las implementaciones de clústeres.

Nota

Al añadir una regla de formatos de campo con cualquier tipo de campo integrado y utilizar el mapa de caracteres en lugar del tipo de campo y guardarla, los cambios no se guardarán y la regla seguirá mostrándose con el tipo de campo.

Cuando el mapa de caracteres coincide con uno de los tipos integrados, el tipo de campo se reutiliza en lugar de crear un nuevo mapa de caracteres.

Uso de la línea de comandos para configurar la comprobación de formato de campo

En la interfaz de línea de comandos, puede utilizar el comando add appfw fieldtype para añadir un nuevo tipo de campo. Puede utilizar el comando set appfw profile o el comando add appfw profile para configurar la comprobación del formato de campo y especificar las acciones que se van a realizar. Puede utilizar el comando unset appfw profile para restablecer los ajustes configurados a sus valores predeterminados. Para especificar una regla de formato de campo, utilice el comando bind appfw para vincular un tipo de campo a un campo de formulario y a la URL de la acción, junto con las especificaciones de longitud mínima y máxima.

Para añadir, eliminar o ver un tipo de campo mediante la línea de comandos:

Use el comando add para agregar un tipo de campo. Debe especificar el nombre, la expresión regular y la prioridad al añadir un nuevo tipo de campo. También tienes la opción de añadir un comentario. Puede utilizar el comando show para mostrar los tipos de campo configurados. También puede eliminar un tipo de campo mediante el comando remove, que solo requiere el nombre del tipo de campo.

add [appfw] fieldType <name> <regex> <priority> [-comment <string>]

Donde:

<regex> es una expresión regular

<priority> es un entero positivo

Ejemplo:

add fieldtype "Cust_Zipcode" "^[0-9]{5}[-][0-9]{4}$" 4

-  show [appfw] fieldType [<name>]

    Example: sh fieldtype

    sh appfw fieldtype

    sh appfw fieldtype cust_zipcode

-  `rm [appfw] fieldType <name>`

    Example: rm fieldtype cusT_ziPcode

    `rm appfw fieldtype cusT_ziPcode`
<!--NeedCopy-->

Nota: Como se muestra arriba, el uso de “appfw” en el comando es opcional. Por ejemplo, “Agregar tipo de campo” o “Agregar tipo de campo appfw” son opciones válidas. Los nombres de los tipos de campo no distinguen entre mayúsculas y minúsculas debido a la normalización. Como se muestra en los ejemplos anteriores, Cust_Zipcode, cust_zipcode y cust_Zipcode hacen referencia al mismo tipo de campo.

Para configurar una verificación de formato de campo mediante la línea de comandos

Utilice el comando set appfw profile o el comando add appfw profile, de la siguiente manera:

  • set appfw profile <name> -fieldFormatAction (([block] [learn] [log] [stats]) | [none])
  • set appfw profile <name>-defaultFieldFormatType <string>
  • set appfw profile <name> -defaultFieldFormatMinLength <integer>
  • set appfw profile <name> -defaultFieldFormatMaxLength <integer>

Para configurar una regla de relajación del formato de campo mediante la línea de comandos

bind appfw profile <name> (-fieldFormat <string> <formActionURL>  <fieldType>
[-fieldFormatMinLength <positive_integer>]  [-fieldFormatMaxLength <positive_integer>]
[-isRegex ( REGEX | NOTREGEX )])
<!--NeedCopy-->

Ejemplo:

bind appfw profile pr_ffc -fieldFormat "login_name" ".*/login.php" integer -fieldformatMinLength 3 -FieldformatMaxlength 6
<!--NeedCopy-->

Uso de la interfaz gráfica de usuario para configurar la comprobación de seguridad del formato de campo

En la GUI, puede administrar los tipos de campos. También puede configurar la comprobación de seguridad de los formatos de campo en el panel para el perfil asociado a la aplicación.

Para añadir, modificar o eliminar un tipo de campo mediante la interfaz gráfica de usuario

  1. Navegue hasta el nodo Application Firewall. En la Configuración, haga clic en Administrar tipos de campos para mostrar el cuadro de diálogo Configurar el tipo de campo del firewall de la aplicación.
  2. Haga clic en Agregar para añadir un nuevo tipo de campo. Siga las instrucciones de este panel y haga clic en Crear. También puede editar o eliminar cualquier tipo de campo agregado por el usuario si actualmente no lo usa una regla implementada.

Para agregar o modificar la comprobación de seguridad de los formatos de campo mediante la interfaz gráfica de usuario

  1. Vaya a Application Firewall > Perfiles, resalte el perfil de destino y haga clic en Editar.

  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:

    1. Si solo desea habilitar o inhabilitar las acciones de bloqueo, registro, estadísticasy aprendizaje para los formatos de campo, puede seleccionar o desmarcar las casillas de verificación de la tabla, hacer clic en Aceptary, a continuación, hacer clic en Guardar y cerrar para cerrar el panel de comprobación de seguridad.
    2. Si desea configurar opciones adicionales para esta comprobación de seguridad, haga doble clic en Formatos de campo o seleccione la fila y haga clic en Configuración de acciones para mostrar las siguientes opciones del formato de campo predeterminado:
      • Tipo de campo: seleccione el tipo de campo que desee configurar como tipo de campo predeterminado. Puede seleccionar los tipos de campo integrados y definidos por el usuario. Los mapas de personajes desplegados también se incluyen en la lista y se pueden seleccionar.

      • Longitud mínima: especifique el número mínimo de caracteres que debe haber en cada campo. Valores posibles: 0-65535.

      • Longitud máxima: especifique el número máximo de caracteres que debe haber en cada campo. Valores posibles: 1-65535.

        También puede editar las acciones Bloquear, Registrar, Estadísticas y Aprender en el panel de configuración de formatos de campo.

    Tras realizar cualquiera de los cambios anteriores, haga clic en Aceptar para guardar los cambios y volver a la tabla de comprobaciones de seguridad. Puede proceder a configurar otras comprobaciones de seguridad si es necesario. Haga clic en Aceptar para guardar todos los cambios que haya realizado en la sección Comprobaciones de seguridad y, a continuación, haga clic en Guardar y cerrar para cerrar el panel Comprobaciones de seguridad.

Para configurar una regla de relajación de formatos de campo mediante la interfaz gráfica

  1. Vaya a Application Firewall > Perfiles, resalte el perfil de destino y haga clic en Editar.

  2. En el panel Configuración avanzada, haga clic en Reglas de relajación. La tabla de reglas de relajación tiene una entrada Formatos de campo. Puede hacer doble clic o seleccionar esta fila y hacer clic en el botón Editar para acceder al diálogo Reglas de relajación de formatos de campo. Puede realizar las operaciones de agregar, editar, eliminar, habilitaro inhabilitar para las reglas de relajación.

Para obtener una vista consolidada de todas las reglas de relajación, puede resaltar la fila Formatos de campo y hacer clic en Visualizador. El visualizador de relajaciones implementadas 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.

Uso de la función de aprendizaje con la comprobación de formatos de campo

Cuando la acción de aprendizaje está habilitada, el motor de aprendizaje de Web App Firewall supervisa el tráfico y detecta las infracciones desencadenadas. Puede inspeccionar periódicamente estas reglas aprendidas. Tras considerarlo debidamente, puede implementar la regla aprendida como una regla de relajación del formato de campo.

Mejora del aprendizaje de formatos de campo: en la versión 11.0 se introdujo una mejora del aprendizaje de Web App Firewall. En las versiones anteriores, una vez implementada la recomendación de formato de campo aprendido, el motor de aprendizaje de Web App Firewall deja de monitorear las solicitudes válidas con el fin de recomendar nuevas reglas en función de los nuevos puntos de datos. Esto limita la protección de seguridad configurada, ya que la base de datos de aprendizaje no incluye ninguna representación de los nuevos datos que se ven en las solicitudes válidas procesadas por la comprobación de seguridad.

Las violaciones ya no van acompañadas del aprendizaje. El motor de aprendizaje aprende y hace recomendaciones para los formatos de campo independientemente de las infracciones. Además de comprobar las solicitudes bloqueadas para determinar si el formato de campo actual es demasiado restrictivo y debe flexibilizarse, el motor de aprendizaje también supervisa las solicitudes permitidas para determinar si el formato de campo actual es demasiado permisivo y permite aumentar la seguridad mediante la implementación de una regla más restrictiva.

A continuación se presenta un resumen del comportamiento de aprendizaje de Field Formatos:

No hay ningún formato de campo enlazado: el comportamiento permanece sin cambios en este caso. Todos los datos de aprendizaje se envían al motor aslearn. El motor de aprendizaje sugiere una regla de formato de campo basada en el conjunto de datos.

El formato de campo está enlazado: en las versiones anteriores, los datos observados se enviaban al motor aslearn solo en caso de infracción. El motor de aprendizaje sugiere una regla de formato de campo basada en el conjunto de datos. En la versión 11.0, todos los datos se envían al motor aslearn incluso si no se produce ninguna infracción. El motor de aprendizaje sugiere una regla de formato de campo basada en todo el conjunto de datos de todas las entradas recibidas.

Caso de uso para mejorar el aprendizaje:

Si las reglas aprendidas sobre el formato de campo inicial se basan en una pequeña muestra de datos, algunos valores no típicos podrían resultar en una recomendación demasiado indulgente para el campo de destino. El aprendizaje continuo permite que el Web App Firewall observe los puntos de datos de cada solicitud para recopilar una muestra representativa para las recomendaciones aprendidas. Esto resulta útil para reforzar aún más la seguridad a la hora de implementar el formato de entrada óptimo con un valor de rango adecuado.

Reglas de formato de campo

El aprendizaje en formato de campo utiliza la prioridad de los tipos de campo, así como las configuraciones configuradas de los siguientes umbrales de aprendizaje:

  • FieldFormatMinThreshold: se debe observar un número mínimo de veces que se debe observar un campo de formulario específico antes de generar una relajación aprendida. Predeterminado: 1.
  • FieldFormatPercentThreshold: porcentaje de veces que un campo de formulario coincide con un tipo de campo determinado, antes de que se genere una relajación aprendida. Predeterminado: 0.

Las recomendaciones de reglas de formato de campo se basan en los siguientes criterios:

  • Recomendaciones detipos de campo: las recomendaciones de tipos de campo se determinan según las prioridades asignadas a los tipos de campo existentes y los umbrales de formato de campo especificados. Las prioridades determinan el orden en que los tipos de campo se comparan con las entradas. Un número inferior especifica una prioridad más alta. Por ejemplo, el número entero del tipo de campo tiene la prioridad más alta (30) y, por lo tanto, se evalúa antes que el tipo de campo alum (50). Los umbrales determinan el número de entradas evaluadas para recopilar una muestra representativa para el punto de datos. Asignar la prioridad correcta a los tipos de campo configurados y configurar un valor de configuración de aprendizaje adecuado para los parámetros FieldFormatPercentThreshold y FieldFormatMinThresholdes esencial para obtener la recomendación de formato de campo correcta. El tipo de campo con la prioridad más alta, según los umbrales configurados, se compara primero con las entradas. Si hay alguna coincidencia, se sugiere este tipo de campo sin tener en cuenta los demás tipos de campo. Por ejemplo, los tres tipos de campo predeterminados (entero, um y cualquiera) coincidirán si todas las entradas contienen solo números. Sin embargo, se recomienda el número entero, ya que tiene la prioridad más alta.
  • Recomendaciones de longitud mínima y máxima: los cálculos de las longitudes mínima y máxima del formato de campo se realizan independientemente de la determinación del tipo de campo. Los cálculos de longitud del formato de campo se basan en la longitud promedio de todas las entradas observadas. La mitad de este promedio calculado se sugiere como valor mínimo, y el doble del valor de este promedio se sugiere como valor máximo. El rango para la longitud mínima es 0-65535 y el rango para la longitud máxima es 1-65535. El valor configurado para la longitud mínima no puede superar la longitud máxima.
  • Manejo del carácter de espacio: la verificación de formato de campo cuenta todos los caracteres de espacio al comprobar la longitud del formato de campo. Los espacios iniciales o finales no se eliminan y los múltiples espacios consecutivos en el centro de la cadena de entrada ya no se consolidan en un solo espacio durante el procesamiento de la entrada.

Ejemplo para ilustrar las recomendaciones de formato de campo:

Total requests: 100
Number of Req with Field Type:
Int : 22            (22 int values) – 22%
Alpha : 44                  (44 alpha values) – 44%
Alphanum: 14            (14 + 44 + 22 = 80 alphanum values) = 80%
noHTML: 10              (80 + 10 = 90 noHTML values) = 90%
any : 10                     (90 + 10 = 100 any values) = 100%

% threshold                              Suggested Field Type
0-22                int
23-44               alpha
45-80               alphanum
81-90               noHTML
91-100              any
<!--NeedCopy-->

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

show appfw learningdata <profilename> FieldFormat
rm appfw learningdata <profilename> -fieldFormat <string>  <formActionURL>
export appfw learningdata <profilename> FieldFormat
<!--NeedCopy-->

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

  1. Vaya a Application Firewall > Perfiles, resalte el perfil de destino y haga clic en Editar.

  2. En el panel Configuración avanzada, haga clic en Reglas aprendidas. Puede seleccionar la entrada Formatos de campo de la tabla Reglas aprendidas y hacer doble clic en ella para acceder a las reglas aprendidas. 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 Formatos de campo de la tabla de reglas aprendidas y haciendo clic en Visualizador para obtener una vista consolidada de todas las infracciones aprendidas. El visualizador facilita mucho 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 formatos de campo

Cuando la acción de registro está habilitada, las infracciones de verificación de seguridad de Field Formats se registran en el registro de auditoría como infracciones de APPFW_FIELDFORMAT. 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 el comando ns.logs de la carpeta /var/log/ para acceder a los mensajes de registro relacionados con las infracciones de los formatos de campo:

  • Shell
  • tail -f /var/log/ns.log | grep APPFW_FIELDFORMAT

Para acceder a los mensajes de registro mediante la interfaz gráfica de usuario

La GUI incluye una herramienta muy ú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 Formatos de campo y haga clic en Registros. Al acceder a los registros directamente desde la comprobación de seguridad de Field Formatos del perfil, se filtran los mensajes de registro y solo se muestran los registros relacionados con estas infracciones de los controles de seguridad.

  • También puede acceder al Visor de Syslog navegando a NetScaler > 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 las comprobaciones 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 las comprobaciones 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 acceder a los mensajes del registro de infracciones de verificación de seguridad de Field Formatos, filtre seleccionando APPFW en las opciones desplegables del módulo. El tipo de evento muestra un amplio conjunto de opciones para refinar aún más la selección. Por ejemplo, si selecciona la casilla APPFW_FIELDFORMAT y hace clic en el botón Aplicar, solo aparecerán los mensajes de registro relacionados con las infracciones de la comprobación de seguridad de Field Formatos en el visor de Syslog.

Si coloca el cursor en la fila de un mensaje de registro específico, aparecen varias opciones, como Module y EventType, debajo del mensaje de registro. Puede seleccionar cualquiera de estas opciones para resaltar la información correspondiente en los registros.

Ejemplo de un mensaje de registro en formato nativo cuando la solicitud no está bloqueada

Jun 10 22:32:26 <local0.info> 10.217.31.98 06/10/2015:22:32:26 GMT ns 0-PPE-0 :
default APPFW APPFW_FIELDFORMAT 97 0 :  10.217.253.62 562-PPE0
x1MV+YnNGzQFM3Bsy2wti4bhXio0001 pr_ffc http://aaron.stratum8.net/FFC/login_post.php
Field format check failed for field passwd="65568888sz-*_" <not blocked>
Example of a CEF format log message when the request is blocked
Jun 11 00:03:51 <local0.info> 10.217.31.98
CEF:0|Citrix|NetScaler|NS11.0|APPFW|APPFW_FIELDFORMAT|6|src=10.217.253.62 spt=27076
method=POST requet=http://aaron.stratum8.net/FFC/maxlen_post.php msg=Field format check
failed for field text_area="" cn1=108 cn2=644 cs1=pr_ffc cs2=PPE0
cs3=GaUROfl1Nx1jJTvja5twH5BBqI0000 cs4=ALERT cs5=2015 act=blocked
<!--NeedCopy-->

Estadísticas sobre las infracciones de los formatos de campo

Cuando la acción de estadísticas está habilitada, el contador correspondiente para la comprobación de formatos de campo se incrementa cuando el Web App Firewall realiza alguna 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 incremento del contador de registros puede variar según los ajustes configurados. Por ejemplo, si la acción de bloqueo está habilitada, la solicitud de una página que contenga 3 infracciones de formato de campo incrementa el contador de estadísticas en una, ya que la página se bloquea en cuanto se detecta la primera infracción de formatos de campo. Sin embargo, si el bloqueo está desactivado, al procesar la misma solicitud, el contador de estadísticas de las infracciones y los registros se incrementan en 3, ya que cada infracción de Field Formatos genera un mensaje de registro independiente.

Para mostrar las estadísticas de los formatos de campo mediante la línea de comandos

En la línea de comandos, escriba:

sh appfw stats

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

stat appfw profile <profile name>

Para mostrar las estadísticas de los formatos de campo mediante la interfaz gráfica de usuario

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

Sugerencia de implementación

  • Habilite el formato de campo: registro de acciones, aprendizaje y estadísticas.
  • Tras ejecutar una muestra representativa del tráfico de su aplicación, revise las recomendaciones aprendidas.
  • Si la mayoría de las reglas aprendidas recomiendan un tipo de campo, configure ese tipo de campo como el tipo de campo predeterminado. Para las longitudes mínima y máxima, utilice el rango más amplio sugerido por estas reglas.
  • Implemente reglas para otros campos para los que resulten más adecuados diferentes tipos de campo o diferentes longitudes mínimas/máximas.
  • Habilita el bloqueo y desactiva el aprendizaje.
  • Supervise las estadísticas y los registros. Si se sigue produciendo un número importante de infracciones, puede que desee revisar los mensajes de registro para confirmar que las infracciones representan solicitudes malintencionadas que deben haberse bloqueado. Si las solicitudes válidas se marcan como infracciones, puede editar la regla de formato de campo configurada para flexibilizarla aún más o volver a habilitar el aprendizaje para obtener recomendaciones basadas en los nuevos puntos de datos.

Nota: Puede ajustar su configuración obteniendo nuevas recomendaciones de aprendizaje.

Resumen

Tenga en cuenta los siguientes puntos acerca de la comprobación de seguridad del formato de campo:

  • Protección: al configurar reglas de formato de campo óptimas, puede protegerse contra muchos ataques. Por ejemplo, si especifica que un campo solo puede contener números enteros, los piratas informáticos no podrán lanzar ataques de inyección de SQL ni de secuencias de comandos entre sitios mediante este campo, ya que las entradas necesarias para lanzar dichos ataques no cumplirán con el requisito de formato de campo configurado.
  • Rendimiento: puede limitar la longitud mínima y máxima permitida para las entradas en las reglas de formato de campo. Esto puede evitar que un usuario malintencionado introduzca cadenas de entrada excesivamente grandes para intentar aumentar la sobrecarga de procesamiento del servidor o, lo que es peor, provocar que el servidor vacíe el núcleo debido al desbordamiento de la pila. Al limitar el tamaño de entrada, puede acortar el tiempo necesario para procesar las solicitudes legítimas.
  • Configuración de formatos de campo: debe habilitar una de las acciones (bloquear, registrar, estadísticas, aprender) para activar la protección de formatos de campo. También puede especificar las reglas de formato de campo para identificar las entradas permitidas en los campos del formulario.
  • Selección de mapas de personajes vs. Tipos de campos: tanto los mapas de caracteres como los tipos de campo utilizan expresiones regulares. Sin embargo, un mapa de caracteres proporciona una expresión más específica al reducir la lista de caracteres permitidos. Por ejemplo, para una entrada como janedoe@citrix.com, el motor de aprendizaje podría recomendar el tipo de campo nohtml pero el mapa de caracteres [. @-zA-z] podría ser más específico, ya que reduce el conjunto permitido de caracteres no alfa. La opción Mapa de caracteres permite, además de los caracteres alfa, solo dos caracteres no alfa: Punto (.) y en (@).
  • Aprendizaje continuo: el Web App Firewall monitorea y tiene en cuenta todos los datos entrantes (las infracciones y las entradas permitidas) para crear una tabla de aprendizaje que recomiende reglas. Las reglas se revisan y actualizan a medida que llegan nuevos datos entrantes. Se sugieren nuevas reglas de formato de campo para un campo, incluso si ya tiene una regla de formato de campo enlazado. Si los formatos de campo configurados son demasiado restrictivos y bloquean las solicitudes válidas, puede implementar un formato de campo más relajado. Del mismo modo, si los formatos de campo actuales son demasiado genéricos, puede refinar y reforzar aún más la seguridad mediante la implementación de un formato de campo más restrictivo.
  • Reglas de sobrescritura: si ya se ha implementado una regla para una combinación de campo y URL, la GUI permite al usuario actualizar el formato del campo. Un cuadro de diálogo solicita la confirmación para reemplazar la regla existente. Si está usando la interfaz de línea de comandos, debe desvincular explícitamente el enlace anterior y luego enlazar la nueva regla.
  • Coincidencia múltiple: si varios formatos de campo coinciden con un nombre de campo determinado y la URL de su acción, el Web App Firewall selecciona arbitrariamente uno de ellos para aplicarlo.
  • Límite del búfer: si el valor de un campo se extiende a través de varios búferes de transmisión y el formato de estas dos partes del valor del campo es diferente, se envía un formato de campo correspondiente a “cualquiera” a la base de datos de aprendizaje.
  • Formato de campo frente a Verificación de coherencia de campos: tanto la comprobación de formato de campo como la comprobación de coherencia de campos son comprobaciones de protección basadas en formularios. La comprobación de formatos de campo proporciona un tipo de protección diferente al de la comprobación de coherencia de los campos del formulario. La comprobación de coherencia de los campos del formulario verifica que la estructura de los formularios web devueltos por los usuarios esté intacta, que se respeten las restricciones de formato de datos configuradas en el HTML y que los datos de los campos ocultos no se hayan modificado. Puede hacerlo sin ningún conocimiento específico sobre sus formularios web, aparte de lo que se deriva del propio formulario web. La comprobación de formatos de campo verifica que los datos de cada campo del formulario coincidan con las restricciones de formato específicas que configuró manualmente o que la función de aprendizaje generó y usted aprobó. En otras palabras, la comprobación Consistencia de campos de formulario aplica la seguridad general del formulario web, mientras que la comprobación Formatos de campo aplica las reglas específicas para las entradas permitidas para los formularios web.