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:
Lamanipulación porcentual no es válida. Configure el método de gestión de nombres y valores codificados por porcentaje.
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 por porcentaje 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.
Valores posibles: apache_mode, asp_mode, secure_mode Valor
por defecto: secure_mode
Optimizar las solicitudes parciales. Cuando está DESACTIVADO/ENCENDIDO (sin objeto seguro), un dispositivo Citrix ADC envía la solicitud parcial al servidor back-end. 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 a solicitudes completas al servidor back-end 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. Dirección URL que Citrix Web App Firewall 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