Agregar patrones de reglas de firma
Puede agregar un patrón o modificar un patrón existente para especificar una cadena o expresión que caracterice un ataque si la firma coincide. Para detectar los patrones que presenta un ataque, puede examinar los registros de su servidor web. Puede utilizar una herramienta para observar los datos de conexión en tiempo real u obtener la cadena o la expresión de un informe externo sobre el ataque.
- Importante
un patrón nuevo que se agrega a una regla de firma tiene una relación AND con los patrones existentes. No agregue un patrón a una regla de firma existente si no quiere que un ataque potencial tenga que coincidir con todos los patrones para que coincida con la firma.
Cada patrón puede constar de una cadena simple, una expresión regular en formato PCRE o el patrón integrado de inyección SQL o secuencias de comandos entre sitios. Antes de intentar añadir un patrón basado en una expresión regular, debe asegurarse de entender las expresiones regulares en formato PCR. Las expresiones PCRE son complejas y poderosas. Si no entiendes cómo funcionan, puedes crear involuntariamente un patrón que coincida con algo que no querías (un falso positivo) o que no coincida con algo que sí querías (un falso negativo).
Patrón de firma personalizado para tipos de contenido no predeterminados
El Web App Firewall (WAF) de NetScaler ahora admite una nueva ubicación para inspeccionar el contenido canonicalizado. De forma predeterminada, WAF no bloquea la carga codificada con tipos de contenido no predeterminados. Cuando estos tipos de contenido se incluyen en la lista de permitidos y no se aplica ninguna acción configurada, la comprobación de protección de scripts SQL y entre sitios no filtra los ataques de scripts SQL o entre sitios en las cargas útiles codificadas. Para resolver el problema, el usuario puede crear una regla de firma personalizada con esta nueva ubicación (HTTP_CANON_POST_BODY) que examine las cargas codificadas en busca de tipos de contenido no predeterminados y, si se produce algún ataque de SQL o secuencias de comandos entre sitios, bloquea el tráfico tras la canonicalización del cuerpo de la publicación.
Nota:
Ese soporte solo se aplica a las solicitudes HTTP.
Si aún no está familiarizado con las expresiones regulares en formato PCR, puede utilizar los siguientes recursos para aprender los conceptos básicos o para obtener ayuda con algún problema específico:
- “Dominar las expresiones regulares”, tercera edición. Derechos de autor (c) 2006 de Jeffrey Friedl. O’Reilly Media, ISBN: 9780596528126.
- “Libro de cocina sobre expresiones regulares”. Derechos de autor (c) 2009 de Jan Goyvaerts y Steven Levithan. O’Reilly Media, ISBN: 9780596520687
- Página principal/especificación de PCRE
- Página/especificación del hombre PCRE
- Entrada PCRE de Wikipedia
- Lista de correo de PCRE
Si necesita codificar caracteres que no sean ASCII en una expresión regular en formato PCR, la plataforma NetScaler admite la codificación de códigos UTF-8 hexadecimales. Para obtener más información, consulte Formato de codificación de caracteres PCRE.
Configurar un patrón de reglas de firma
Al modificar una firma, puede agregar o modificar el patrón de reglas. Para agregar o modificar las reglas de firma, consulte Modificar firmas para agregar o modificar reglas.
-
Tipo: Seleccione el tipo de conexión que debe coincidir con el patrón.
- Solicitud: Coincide con los elementos o funciones de la solicitud, como el código SQL inyectado, los ataques a formularios web, los scripts entre sitios o las URL inapropiadas.
- Respuesta: Coincide con los elementos o funciones de la respuesta, como números de tarjetas de crédito u objetos seguros.
-
Ubicación: Seleccione un área para examinarla con este patrón. El área describe qué elementos de la solicitud o respuesta HTTP se deben examinar para determinar este patrón. Según el tipo de patrón seleccionado, las opciones aparecen en la lista de áreas. Dependen del tipo de patrón elegido.
Para el tipo de patrón de solicitud, aparecen los elementos relevantes para las solicitudes HTTP.
- HTTP_ANY. Todas las partes de la conexión HTTP.
-
HTTP_COOKIE. Todas las cookies de los encabezados de las solicitudes HTTP después de realizar cualquier transformación de cookie.
Nota:
No busca en los encabezados “Set-Cookie:” de la respuesta HTTP.
-
HTTP_FORM_FIELD Los campos del formulario y su contenido, después de la decodificación de URL, la decodificación porcentual y la eliminación del exceso de espacios en blanco. Puede utilizar la etiqueta
<Location>
para restringir aún más la lista de nombres de campos de formulario en los que se va a buscar. - ENCABEZADO HTTP. Las partes de valores del encabezado HTTP después de cualquier transformación de secuencias de comandos entre sitios o decodificación de URL.
- MÉTODO HTTP_. El método de solicitud HTTP.
- URL HTTP. La parte de valor de la URL en los encabezados HTTP, excluyendo cualquier puerto de consulta o fragmento, tras la conversión al conjunto de caracteres UTF-*, la decodificación de URL, la eliminación de los espacios en blanco y la conversión de las URL relativas en absolutas. No incluye la decodificación de entidades HTML.
- HTTP_ORIGIN_URL. La URL de origen de un formulario web.
- HTTP_POST_BODY. El cuerpo de la publicación HTTP y los datos del formulario web que contiene.
- HTTP_RAW_COOKIE. Todas las cookie de solicitud HTTP, incluida la parte del nombre “Cookie:”. Nota: No busca en los encabezados “Set-Cookie:” de la respuesta HTTP.
- ENCABEZADO HTTP_RAW. Todo el encabezado HTTP, con los encabezados individuales separados por caracteres de alimentación de línea (\ n) o cadenas de retorno de carro o avance de línea (\r\n).
Para el tipo de respuesta, aparecen los elementos relevantes para las respuestas HTTP.
- HTTP_RAW_RESP_HEADER. Todo el encabezado de la respuesta, incluidas las partes de nombre y valor del encabezado de respuesta una vez realizada la transformación de la URL, y el estado completo de la respuesta. Al igual que con HTTP_RAW_HEADER, los encabezados individuales están separados por caracteres de avance de línea (\n) o cadenas de retorno de carro o avance de línea (\r\n).
-
HTTP_RAW_SET_COOKIE. El encabezado completo de Set-Cookie después de realizar cualquier transformación de URL
Nota:
la transformación de URL puede cambiar tanto la parte del dominio como la de la ruta del encabezado Set-Cookie.
- HTTP_RAW_URL. La URL completa de la solicitud antes de realizar cualquier transformación de URL, incluidas las partes de la consulta o del fragmento.
- HTTP_RESP_HEADER. La parte del valor de los encabezados de respuesta completos después de realizar cualquier transformación de URL.
- HTTP: //RESP_BODY. El cuerpo de la respuesta HTTP
- HTTP_SET_COOKIE. Todos los encabezados “Set-Cookie” de los encabezados de respuesta HTTP.
- CÓDIGO DEESTADO HTTP. El código de estado HTTP.
- HTTP_STATUS_MESSAGE. El mensaje de estado HTTP.
Al seleccionar una opción de la lista de áreas, cambia dinámicamente las opciones del área seleccionada.
- Any. Comprueba los nombres de los campos o las URL.
- Literal. Comprueba los nombres de campo o las URL que contienen una cadena literal. Tras seleccionar Literal, aparece un cuadro de texto. Escriba la cadena literal que desee en el cuadro de texto.
- PCRE. Comprueba los nombres de campo o las URL que coinciden con una expresión regular en formato PCR. Tras seleccionar esta opción, aparece la ventana de expresiones regulares. Escriba la expresión regular en la ventana. Puede utilizar los identificadores de expresiones regulares para insertar elementos de expresiones regulares comunes en el cursor, o puede hacer clic en el Editor de expresiones regulares para mostrar el cuadro de diálogo del editor de expresiones regulares, que proporciona más ayuda a la hora de crear la expresión regular que desee.
- Expression. Comprueba los nombres de campo o las URL que coinciden con una expresión predeterminada de NetScaler.
-
Pattern: Un patrón es una cadena literal o una expresión regular en formato PCRE que define el patrón con el que se desea hacer coincidir. Seleccione el tipo de coincidencia de la lista.
- Literal. Una cadena literal.
-
PCRE. Expresión regular de formato PCRE-.
Nota
Al elegir PCRE, se activan las herramientas de expresión regular que se encuentran debajo de la ventana Patrón. Estas herramientas no son útiles para la mayoría de los demás tipos de patrones.
-
Expression. Una expresión del lenguaje de expresiones predeterminado de NetScaler es el mismo lenguaje de expresión para crear directivas de Web App Firewall en el dispositivo NetScaler. Aunque el lenguaje de expresiones NetScaler se desarrolló originalmente para reglas de directivas, es un lenguaje de propósito general altamente flexible que también se puede usar para definir un patrón de firma.
Al elegir Expresión, el editor de expresiones NetScaler aparece debajo de la ventana Patrón. Para obtener más información sobre el Editor de expresiones e instrucciones sobre cómo utilizarlo, consulte Para agregar una regla de firewall (expresión) mediante el cuadro de diálogo Agregar expresión
-
SQL Injection. Indica al Web App Firewall que busque SQL inyectado en la ubicación especificada.
-
CrossSiteScripting. Indica al Web App Firewall que busque scripts entre sitios en la ubicación especificada.
-
CommandInjection. Indica al NetScaler Web App Firewall que busque cualquier comando malintencionado inyectado en la ubicación especificada.
-
SQLInjectionGrammar. Indica al NetScaler Web App Firewall que busque la gramática SQL inyectada en la ubicación especificada. Especialmente cuando se utilizan palabras de uso común, como
Select
yFrom
, en una solicitud HTTP. - CommandInjectionGrammar. Indica al NetScaler Web App Firewall que busque gramática de comandos maliciosa inyectada en la ubicación especificada. Especialmente, cuando se usa una palabra de uso común, como “Salir”, en una solicitud HTTP.
Si desea configurar más opciones, especifique lo siguiente:
- Compensación. El número de caracteres que se van a omitir antes de empezar a coincidir con este patrón. Utilice este campo para empezar a examinar una cadena en algún punto distinto del primer carácter.
- Depth. Cuántos caracteres desde el punto de partida se van a examinar en busca de coincidencias. Este campo se utiliza para limitar las búsquedas de una cadena grande a un número específico de caracteres.
- Min-Length. La cadena que se va a buscar debe tener una longitud de al menos la cantidad especificada de bytes. Las cadenas más cortas no coinciden.
- Max-Length. La cadena que se va a buscar no debe superar el número de bytes especificado. Las cadenas más largas no coinciden.
-
Método de búsqueda. Una casilla de verificación etiquetada
fastmatch
. Puede habilitarlofastmatch
solo para un patrón literal, a fin de mejorar el rendimiento.
Nota
Hasta que no haga clic en Aceptar en el panel Patrón de reglas de firma, los cambios no se guardarán. No cierre ninguno de estos cuadros de diálogo sin hacer clic en Aceptar a menos que quiera descartar los cambios.