Verificación de desbordamiento del búfer
La comprobación de desbordamiento de búfer detecta los intentos de provocar un desbordamiento de búfer en el servidor web. Si el Web App Firewall detecta que la URL, las cookies o el encabezado superan la longitud configurada, bloquea la solicitud porque puede provocar un desbordamiento del búfer.
La comprobación de desbordamiento de búfer evita ataques contra software de servidor web o sistema operativo inseguro que puede bloquearse o comportarse de forma impredecible cuando recibe una cadena de datos mayor de lo que puede manejar. Las técnicas de programación adecuadas evitan los desbordamientos del búfer al comprobar los datos entrantes y rechazar o truncar las cadenas demasiado largas. Sin embargo, muchos programas no comprueban todos los datos entrantes y, por lo tanto, son vulnerables a los desbordamientos del búfer. Este problema afecta especialmente a las versiones anteriores del software del servidor web y los sistemas operativos, muchos de los cuales todavía están en uso.
La comprobación de seguridad de Buffer Overflow le permite configurar las acciones Bloquear, RegistraryEstadísticas . Además, también puede configurar los siguientes parámetros:
- Longitud máxima de URL. La longitud máxima que permite el Web App Firewall en una URL solicitada. Las solicitudes con URL más largas están bloqueadas. Valores posibles: 0—65535. Predeterminado: 1024
- Longitud máxima de la cookie. La longitud máxima que el Web App Firewall permite para todas las cookies de una solicitud. Las solicitudes con cookies más largas desencadenan las infracciones. Valores posibles: 0—65535. Predeterminado: 4096
- Longitud máxima del encabezado. La longitud máxima que el Web App Firewall permite para los encabezados HTTP. Las solicitudes con cabeceras más largas están bloqueadas. Valores posibles: 0—65535. Predeterminado: 4096
- Longitud de cadena de consulta. Longitud máxima permitida para la cadena de consulta en una solicitud entrante. Las solicitudes con consultas más largas están bloqueadas. Valores posibles: 0—65535. Predeterminado: 1024
- Longitud total de la solicitud. Longitud máxima de solicitud permitida para una solicitud entrante. Se bloquean las solicitudes con una longitud mayor. Valores posibles: 0—65535. Predeterminado: 24820
Uso de la línea de comandos para configurar la comprobación de seguridad de Buffer Overflow
Para configurar las acciones de comprobación de seguridad de Buffer Overflow y otros parámetros mediante la línea de comandos
En el símbolo del sistema, escriba:
add appfw profile <name> -bufferOverflowMaxURLLength <positive_integer> -bufferOverflowMaxHeaderLength <positive_integer> - bufferOverflowMaxCookieLength <positive_integer> -bufferOverflowMaxQueryLength <positive_integer> -bufferOverflowMaxTotalHeaderLength <positive_integer>
Ejemplo:
add appfw profile profile1 –bufferOverflowMaxURLLength 7000 –bufferOverflowMaxHeaderLength 7250 – bufferOverflowMaxCookieLength 7100 –bufferOverflowMaxQueryLength 7300 –bufferOverflowMaxTotalHeaderLength 7300
Configure la comprobación de seguridad por desbordamiento del búfer mediante la interfaz gráfica de usuario de NetScaler
- Vaya a Seguridad > Firewall yperfilesde aplicaciones web.
- En la página Perfiles, seleccione un perfil y haga clic en Modificar.
- En la página Perfil de NetScaler Web App Firewall, vaya a la sección Configuración avanzada y haga clic en Comprobaciones de seguridad.
- En la sección Comprobaciones de seguridad, seleccione Desbordamiento de búfer y haga clic en Configuración de acciones.
- En la página de configuración de Buffer Overflow, defina los siguientes parámetros. a. Acciones. Seleccione una o más acciones para realizar la comprobación de seguridad de la inyección de comandos. b. Longitud máxima de URL. Longitud máxima, en caracteres, de las URL de sus sitios web protegidos. Las solicitudes con URL más largas están bloqueadas. c. Longitud máxima de la cookie. Longitud máxima, en caracteres, de las cookies que se envíen a sus sitios web protegidos. Se bloquean las solicitudes con cookies más largas. d. Longitud máxima del encabezado. Longitud máxima, en caracteres, de los encabezados HTTP de las solicitudes enviadas a sus sitios web protegidos. Las solicitudes con cabeceras más largas están bloqueadas. e. Longitud máxima de consulta. Longitud máxima, en bytes, de la cadena de consulta enviada a sus sitios web protegidos. Se bloquean las solicitudes con cadenas de consulta más largas. f. Longitud máxima total del encabezado. Longitud máxima, en bytes, de la longitud total del encabezado HTTP de las solicitudes enviadas a los sitios web protegidos. Se utilizará el valor mínimo de este y maxHeaderLen en HttpProfile. Se bloquean las solicitudes con una longitud mayor.
-
Haga clic en Aceptar y Cerrar.
Uso de la función de registro con la comprobación de seguridad de Buffer Overflow
**Cuando la acción de registro está habilitada, las infracciones de la comprobación de seguridad de Buffer Overflow se registran en el registro de auditoría como infracciones de APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIE y **APPFW_BUFFEROVERFLOW_HDR.** El Web App Firewall admite los formatos de registro nativo y CEF. También puede enviar los registros a un servidor syslog remoto.
Si utilizas la GUI para revisar los registros, puedes utilizar la función de hacer clic para desplegar para aplicar las relajaciones indicadas en los registros.
Para acceder a los mensajes de registro mediante la línea de comandos
Cambie al shell y siga los pasos ns.logs de la carpeta /var/log/ para acceder a los mensajes de registro relacionados con las infracciones por desbordamiento del búfer:
> \*\*Shell\*\*
> \*\*tail -f /var/log/ns.log | grep APPFW_BUFFEROVERFLOW\*\*
<!--NeedCopy-->
Ejemplo de un mensaje de registro de CEF que muestra la infracción de BufferOverflowMaxCookieLength en modo sin bloqueo
Oct 22 17:35:20 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|\*\*APPFW_BUFFEROVERFLOW_COOKIE\*\*|6|src=10.217.253.62 geolocation=Unknown spt=41198 method=GET request=http://aaron.stratum8.net/FFC/sc11.html \*\*msg=Cookie header length(43) is greater than maximum allowed(16).\*\* cn1=119 cn2=465 cs1=owa_profile cs2=PPE1 cs3=wvOOOb+cJ2ZRbstZpyeNXIqLj7Y0001 cs4=ALERT cs5=2015 \*\*act=not blocked\*\*
<!--NeedCopy-->
Ejemplo de un mensaje de registro de CEF que muestra la violación de BufferOverflowMaxURLlength en modo sin bloqueo
Oct 22 18:39:56 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|\*\*APPFW_BUFFEROVERFLOW_URL\*\*|6|src=10.217.253.62 geolocation=Unknown spt=19171 method=GET request=http://aaron.stratum8.net/FFC/sc11.html \*\*msg=URL length(39) is greater than maximum allowed(20).\*\* cn1=707 cn2=402 cs1=owa_profile cs2=PPE0 cs3=kW49GcKbnwKByByi3+jeNzfgWa80000 cs4=ALERT cs5=2015 \*\*act=not blocked\*\*
<!--NeedCopy-->
Ejemplo de un mensaje de registro en formato nativo que muestra la violación de BufferOverflowMaxHeaderLength en modo de bloqueo
Oct 22 18:44:00 <local0.info> 10.217.31.98 10/22/2015:18:44:00 GMT ns 0-PPE-2 : default APPFW \*\*APPFW_BUFFEROVERFLOW_HDR\*\* 155 0 : 10.217.253.62 374-PPE2 khhBEeY4DB8V2D3H2sMLkXmfWnA0002 owa_profile \*\*Header(User-Agent) length(82) is greater than maximum allowed(10)\*\* : http://aaron.stratum8.net/ \*\*<blocked>\*\*
<!--NeedCopy-->
Para acceder a los mensajes de registro mediante la interfaz gráfica de usuario
La GUI 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 Buffer Overflow y haga clic en Registros. Al acceder a los registros directamente desde la comprobación de seguridad de Buffer Overflow del perfil, la GUI filtra los mensajes de registro y muestra solo los registros relacionados con estas infracciones de las comprobaciones 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 de mensajes de Syslog para mostrar el Visor de Syslog, que muestra todos los mensajes de registro, incluidos otros registros de infracciones de control 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 de mensajes de Syslog para mostrar el Visor de Syslog, que muestra todos los mensajes de registro, incluidos otros registros de infracciones de control de seguridad.
El visor de registros basado en XML ofrece varias opciones de filtro para seleccionar únicamente los mensajes de registro que le interesen. Para seleccionar los mensajes de registro para la comprobación dedesbordamiento de búfer, filtre seleccionandoAPPFWen las opciones de la lista desplegable del módulo. La listade tipos de eventosofrece tres opciones,APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIE y A PPFW_BUFFEROVERFLOW_HDR**, para ver todos los mensajes de registro relacionados con la comprobación de seguridad del desbordamientode búfer.** Puede seleccionar una o más opciones para refinar aún más la selección. Por ejemplo, si selecciona la casilla APPFW_BUFFEROVERFLOW_COOKIE 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 seguridad de Buffer Overflow para el encabezado de la cookie. Si coloca el cursor en la fila de un mensaje de registro específico, aparecen varias opciones, como el módulo, el tipo de evento, el identificador de eventoy la IP del cliente, debajo del mensaje de registro. Puede seleccionar cualquiera de estas opciones para resaltar la información correspondiente en el mensaje de registro.
Hacer clic para implementar: la GUI proporciona la funcionalidad de hacer clic para implementar, que actualmente solo se admite para los mensajes del registro de desbordamiento del búfer relacionados con las infracciones de longitud de URL.Puede utilizar el Syslog Viewer no solo para ver las infracciones provocadas, sino también para tomar decisiones informadas en función de la longitud observada de los mensajes bloqueados. Si el valor actual es demasiado restrictivo y provoca falsos positivos, puede seleccionar un mensaje e implementarlo para reemplazar el valor actual por el valor de longitud de la URL que aparece en el mensaje. Los mensajes de registro deben estar en formato de registro CEF para esta operación. Si se puede implementar la relajación para un mensaje de registro, aparece una casilla de verificación en el borde derecho de la casillaSyslog Viewerde la fila. Seleccione la casilla de verificación y, a continuación, seleccione una opción de la lista deaccionespara implementar la relajación.Modificar e implementar,ImplementareImplementar todoestán disponibles como opciones deAcción. Puede utilizar el filtroAPPFW_BUFFEROVERFLOW_URL para aislar todos los mensajes de registro relacionados con las infracciones de longitud de URL configuradas.
Si selecciona un mensaje de registro individual, estarán disponibles las tres opciones de acción Modificar e implementar, Desplieguee Implementar todo . Si selecciona Modificar e implementar, aparecerá el diálogo de configuración de Buffer Overflow . La nueva longitud de URL que se observó en la solicitud se inserta en el campo de entrada Longitud de URL máxima . Si hace clic en Cerrar sin realizar ninguna modificación, los valores configurados actualmente permanecen inalterados. Si hace clic en el botón Aceptar, el nuevo valor de la longitud máxima de URL sustituye al valor anterior.
Nota
Las casillas de verificación de bloqueo, registro y acciones estadísticas no están marcadas en el cuadro de diálogo de configuración de Buffer Overflow que se muestra y deben volver a configurarse si seleccionas la opción Modificar e implementar . Asegúrese de activar estas casillas de verificación antes de pulsar Aceptar; de lo contrario, se configurará la nueva longitud de URL, pero las acciones se configurarán como ninguna.
Si selecciona las casillas de verificación para varios mensajes de registro, puede utilizar la opción Despliegue o Despliegue todo . Si los mensajes de registro implementados tienen longitudes de URL diferentes, el valor configurado se reemplaza por el valor de longitud de URL más alto observado en los mensajes seleccionados. Al implementar la regla, solo se cambia el valor BufferOverflowMaxURLlength . Las acciones configuradas se conservan y permanecen inalteradas.
Para usar la funcionalidad Click-to-Deploy en la GUI
- En el Visor de Syslog, seleccione APPFW en las opciones de Módulo.
- Active la casillaAPPFW_BUFFEROVERFLOW_URLcomo tipo de evento para filtrar los mensajes de registro correspondientes.
- Active la casilla de verificación para seleccionar la regla.
- Utilice la lista desplegable de opciones de Acción para implementar la relajación.
- Vaya a Application Firewall > Perfiles, seleccione el perfil de destino y haga clic en Comprobaciones de seguridad para acceder al panel de configuración de Buffer Overflow y comprobar que el valor de longitud máxima de URL está actualizado.
Estadísticas de las infracciones de Buffer Overflow
Cuando la acción de estadísticas está habilitada, el contador de la comprobación de seguridad de Buffer Overflow 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 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, una solicitud de una página que contenga tres infracciones de Buffer Overflow incrementa el contador de estadísticas en una, ya que la página se bloquea cuando se detecta la primera infracción. Sin embargo, si el bloqueo está desactivado, al procesar la misma solicitud se incrementa el contador de estadísticas de las infracciones, ya que cada infracción genera un mensaje de registro independiente.
Para mostrar las estadísticas de Buffer Overflow Security Check 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>
Para mostrar las estadísticas de desbordamiento de búfer mediante la interfaz gráfica de usuario
- Vaya a Sistema > Seguridad > Firewall de aplicaciones.
- En el panel derecho, acceda al enlace de Estadísticas.
- Utilice la barra de desplazamiento para ver las estadísticas sobre las infracciones y los registros de Buffer Overflow. La tabla de estadísticas proporciona datos en tiempo real y se actualiza cada 7 segundos.
Resumen
-
La comprobación de seguridad por desbordamiento del búfer le permite configurar límites para aplicar la longitud máxima de las URL, las cookies y los encabezados permitidos.
-
Las acciones debloqueo, registro y estadísticas le permiten supervisar el tráfico y configurar una protección óptima para su aplicación.
-
El visor Syslog le permite filtrar y ver todos los mensajes de registro relacionados con las infracciones por desbordamiento del búfer.
-
Se admite la funcionalidadClick-ToDeploypara las infracciones de BufferOverflowMaxURLlength. Puede seleccionar e implementar una regla individual o puede seleccionar varios mensajes de registro para modificar y relajar el valor configurado actualmente de la longitud máxima permitida de la URL. El valor más alto de la URL del grupo seleccionado se establece como el nuevo valor para permitir todas estas solicitudes que actualmente están marcadas como infracciones.
-
El Web App Firewall ahora evalúa las cookies individuales al inspeccionar la solicitud entrante. Si la longitud de una cookie recibida en el encabezado de la cookie supera la longitud configurada de bufferOverflowMaxCookieLength, se activa la infracción de BufferOverflow.
Importante
En la versión 10.5.e (en algunas mejoras provisionales, compilaciones anteriores a la 59.13xx.e) y en la versión 11.0 (en compilaciones anteriores a la 65.x), se modificó el procesamiento del encabezado de la cookie por parte de Web App Firewall. En esas versiones, cada cookie se evalúa individualmente, y si la longitud de cualquier cookie recibida en el encabezado Cookie excede la configuración de BufferOverflowMaxCookieLength, se desencadena la infracción de desbordamiento de búfer. Como resultado de este cambio, es posible que se permitan las solicitudes que se bloquearon en versiones 10.5 y anteriores, porque la longitud de todo el encabezado de la cookie no se calcula para determinar la longitud de la cookie. ** En algunas situaciones, el tamaño total de la cookie reenviada al servidor podría ser mayor que el valor aceptado y el servidor podría responder con “400 solicitudes incorrectas”.
Este cambio se ha revertido. El comportamiento de la versión 10.5.e ->59.13xx.e y las versiones mejoradas posteriores de la 10.5.e, además de la 11.0 versión 65.x y las compilaciones posteriores, ahora es similar al de las versiones sin mejoras de la versión 10.5. Ahora se tiene en cuenta todo el encabezado de Cookie sin procesar al calcular la longitud de la cookie. Los espacios circundantes y los caracteres de punto y coma (;) que separan los pares nombre-valor también se incluyen para determinar la longitud de la cookie.
En este artículo
- Uso de la línea de comandos para configurar la comprobación de seguridad de Buffer Overflow
- Configure la comprobación de seguridad por desbordamiento del búfer mediante la interfaz gráfica de usuario de NetScaler
- Uso de la función de registro con la comprobación de seguridad de Buffer Overflow
- Estadísticas de las infracciones de Buffer Overflow
- Resumen