Configuración del perfil de Firewall de aplicaciones web
A continuación se indican los ajustes de perfil que debe configurar en el dispositivo.
En la línea de comandos, escriba:
add appfw profile <name> [-invalidPercentHandling <invalidPercentHandling>] [-checkRequestHeaders ( ON | OFF )] [-URLDecodeRequestCookies ( ON | OFF )] [-optimizePartialReqs ( ON | OFF )] [-errorURL <expression>] [-logEveryPolicyHit ( ON | OFF )] [-stripHtmlComments <stripHtmlComments>] [-stripXmlComments ( none | all )] [-postBodyLimitSignature <positive_integer>][-fileUploadMaxNum <positive_integer>][-canonicalizeHTMLResponse ( ON | OFF )][-percentDecodeRecursively ( ON | OFF )] [-multipleHeaderAction <multipleHeaderAction> ...][-inspectContentTypes <inspectContentTypes> ...][-semicolonFieldSeparator ( ON | OFF )]
Ejemplo:
add appfw profile profile1 [-invalidPercentHandling secure_mode] [-checkRequestHeaders ON] [-URLDecodeRequestCookies OFF] [-optimizePartialReqs OFF]
Donde:
InvalidPercentHandling : configura el método para gestionar nombres y valores codificados por porcentajes.
Los ajustes disponibles funcionan de la siguiente manera:
asp_mode - Elimina y analiza el porcentaje no válido para el análisis.
Ejemplo፦ curl –v “http://<vip>/forms/login.html?field=sel%zzect -> Invalid percent encoded char(%zz)
se despoja y se inspecciona el resto del contenido y se toman medidas para la comprobación de SQLInjection.
secure_mode: detectamos el valor codificado porcentual no válido y lo ignoramos.
Ejemplo፦ curl –v “http://<vip>/forms/login.html?field=sel%zzect -> Invalid percent encoded char(%zz)
se detecta, los contadores se incrementan y el contenido se pasa tal cual al servidor.
apache_mode - Este modo funciona de forma similar al modo seguro.
Nota:
A partir de la versión 13.1, compilación 45.x, la
apache_mode
función está en desuso.
Valores posibles: apache_mode, asp_mode, secure_mode
Valor predeterminado: secure_mode
OptimizePartialReqs : cuando está desactivado o activado (sin objeto seguro), un dispositivo NetScaler envía la solicitud parcial al servidor de fondo. Esta respuesta parcial se devuelve al cliente. OptimizePartialReqs tiene sentido cuando se configura el objeto Safe. El dispositivo envía solicitudes de respuesta completa desde el servidor cuando está DESACTIVADO y solo solicita una respuesta parcial cuando está activado.
Los ajustes disponibles son los siguientes:
ON : Las solicitudes parciales del cliente dan como resultado solicitudes parciales al servidor back-end. DESACTIVADO: las solicitudes parciales del cliente se cambian por solicitudes completas al servidor de fondo.
Valores posibles: ON, OFF Valor predeterminado: ON
Cookies de solicitud de decodificación de URL. Cuando checkRequestHeaders
está habilitada, las cookies se inspeccionan para comprobar su seguridad (SQL, cross-site, inyección de cmd). Si URLDecodeRequestCookies
está habilitada, las cookies se decodifican en URL y, a continuación, se inspeccionan.
Valores posibles: ON, OFF Valor predeterminado: OFF
Límite del cuerpo de la publicación de firma (bytes). Limita la carga útil de la solicitud (en bytes) inspeccionada en busca de firmas con la ubicación especificada como ‘HTTP_POST_BODY’.
Valor por defecto: 8096 Valor mínimo: 0 Valor máximo: 4294967295
Límite del cuerpo de la publicación (bytes). Limita la carga útil de la solicitud (en bytes) inspeccionada por Web Application Firewall.
Valor predeterminado: 20000000 Valor mínimo: 0 Valor máximo: 10 GB
Para obtener más información sobre la configuración Seguridad y su procedimiento de GUI, consulte el tema Configurar perfil de Web App Firewall.
PostbodyLimitAction. PostBodyLimit respeta la configuración de error cuando especifica el tamaño máximo del cuerpo HTTP que se va a permitir. Para respetar la configuración de errores, debe configurar una o más acciones de límite de cuerpo de la publicación. La configuración también se aplica a las solicitudes en las que el encabezado de codificación de transferencia está fragmentado.
set appfw profile <profile_name> -PostBodyLimitAction block log stats
Dónde, Bloquear: Esta acción bloquea la conexión que infringe la comprobación de seguridad y se basa en el tamaño máximo del cuerpo HTTP configurado (límite de cuerpo de publicación). Debe activar siempre la opción.
Registro: Registrar infracciones de esta comprobación de seguridad.
Estadísticas: genera estadísticas para esta comprobación de seguridad.
Nota:
El formato de registro de la acción de límite del cuerpo de la publicación se ha cambiado para que siga el formato de registro de auditoría estándar, por ejemplo:
ns.log.4.gz:Jun 25 1.1.1.1. <local0.info> 10.101.10.100 06/25/2020:10:10:28 GMT 0-PPE-0 : default APPFW APPFW_POSTBODYLIMIT 1506 0 : <Netscaler IP> 4234-PPE0 - testprof ><URL> Request post body length(<Post Body Length>) exceeds post body limit.
InspectQueryContentTypes Inspeccione la consulta de solicitud y los formularios web de SQL inyectados y scripts entre sitios para los siguientes tipos de contenido.
set appfw profile p1 -inspectQueryContentTypes HTML XML JSON OTHER
Valores posibles: HTML, XML, JSON, OTHER
De forma predeterminada, este parámetro se establece como “inspectQueryContentTypes: HTML JSON OTHER” para perfiles appfw básicos y avanzados.
Ejemplo de tipo de contenido de consulta de inspección como XML:
> set appfw profile p1 -type XML
Warning: HTML, JSON checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action” will not be applicable when profile type is not HTML or JSON respectively.
<!--NeedCopy-->
Ejemplo de tipo de contenido de consulta de inspección como HTML:
> set appfw profile p1 -type HTML
Warning: XML, JSON checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action” will not be applicable when profile type is not XML or JSON respectively
Done
<!--NeedCopy-->
Ejemplo de tipo de contenido de consulta de inspección como JSON:
> set appfw profile p1 -type JSON
Warning: HTML, XML checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action will not be applicable when profile type is not HTML or XML respectively
Done
<!--NeedCopy-->
Expresión errorURL. La URL que el Web App Firewall de NetScaler utiliza como URL de error. Longitud máxima: 2047.
Nota:
Para bloquear infracciones en una URL solicitada, si la URL de error es similar a la URL de firma, el dispositivo restablece la conexión.
LogEveryPolicyHit : registra todas las coincidencias de perfil, independientemente de los resultados de las comprobaciones de seguridad. Valores posibles: ON, OFF. Valor predeterminado: OFF.
stripXMLComments - Elimina los comentarios XML antes de reenviar una página web enviada por un sitio web protegido en respuesta a una solicitud del usuario. Valores posibles: none, all, exclude_script_tag. Valor predeterminado: none
PostBodyLimitSignature - Tamaño máximo permitido del cuerpo de la publicación HTTP para la inspección de firmas para la ubicación HTTP_POST_BODY en las firmas, en bytes. Los cambios en el valor pueden afectar a la CPU y al perfil de latencia. Valor por defecto: 2048. Valor mínimo: 0 Valor máximo: 4294967295
FileUploadMaxNum : número máximo permitido de cargas de archivos por solicitud de envío de formularios. La configuración máxima (65535) permite un número ilimitado de cargas. Valor por defecto: 65535 Valor mínimo: 0 Valor máximo: 65535
CanonicalizeHTMLResponse - Realiza la codificación de entidad HTML para cualquier carácter especial en las respuestas enviadas por tus sitios web protegidos. Valores posibles: ON, OFF Valor predeterminado: ON
PercentDecodeRecursively : configure si el firewall de la aplicación debe utilizar decodificación recursiva porcentual. Valores posibles: ON, OFF Valor predeterminado: ON
multipleHeaderAction : una o varias acciones de encabezado. Los ajustes disponibles funcionan de la siguiente manera:
- Bloquear. Bloquea las conexiones que tienen varios encabezados.
- Registrar. Registra las conexiones que tienen varios encabezados.
- KeepLast. Mantenga solo el último encabezado cuando haya varios encabezados presentes.
InspectContentTypes : una o varias listas de InspectContentType.
- aplicación/x-www-form-urlencoded
- multipart/form-data
- texto/x-gwt-rpc
Valores posibles: ninguno, application/x-www-form-urlencoded, multipart/form-data, text/x-gwt-rpc
SemiColonFieldSeparator : permite ‘;’ como separador de campos de formulario en consultas URL y cuerpos de formulario POST. Valores posibles: ON, OFF Valor predeterminado: OFF