Comprobación de protección de scripting de sitios JSON
Si una carga útil JSON entrante tiene datos de scripting de sitios maliciosos, WAF bloquea la solicitud. Los siguientes procedimientos explican cómo puede configurarlo a través de interfaces CLI y GUI.
Configurar la protección contra scripting de sitios JSON
Para configurar la protección contra scripting de sitios JSON, debe completar los siguientes pasos:
- Agregue el perfil de firewall de aplicaciones como JSON.
- Configurar la acción de scripting de sitios JSON para bloquear la carga maliciosa de scripting de sitios
Agregar perfil de firewall de aplicaciones de tipo JSON
Primero debe crear un perfil que especifique cómo el firewall de la aplicación debe proteger el contenido web JSON del ataque por scripting de sitios JSON.
En la línea de comandos, escriba:
add appfw profile <name> -type (HTML | XML | JSON)
Nota:
Cuando establece el tipo de perfil como JSON, no se aplicarán otras comprobaciones, como HTML o XML.
Ejemplo
add appfw profile profile1 –type JSON
Salida de ejemplo para la infracción de scripting de sitios JSON
JSONcross-site scriptingAction: block log stats
Payload: {"username":"<a href="jAvAsCrIpT:alert(1)">X</a>","password":"xyz"}
Log message: Aug 19 06:57:33 <local0.info> 10.106.102.21 08/19/2019:06:57:33 GMT 0-PPE-0 : default APPFW APPFW_JSON_cross-site scripting 58 0 : 10.102.1.98 12-PPE0 - profjson http://10.106.102.24/ Cross-site script check failed for object value(with violation="Bad URL: jAvAsCrIpT:alert(1)") starting at offset(12). <blocked>
Counters
1 357000 1 as_viol_json_xss
3 0 1 as_log_json_xss
5 0 1 as_viol_json_xss_profile appfw__(profjson)
7 0 1 as_log_json_xss_profile appfw__(profjson)
<!--NeedCopy-->
Configurar la acción de scripting de sitios JSON
Debe configurar una o más acciones de scripting de sitios JSON para proteger su aplicación de los ataques de scripting de sitios JSON. En la línea de comandos, escriba:
set appfw profile <name> - JSONcross-site scriptingAction [block] [log] [stats] [none]
Ejemplo
set appfw profile profile1 –JSONcross-site scriptingAction block
Las acciones de scripting de sitios disponibles son: Bloquear: bloquear las conexiones que infrinjan esta comprobación de seguridad. Registro: Registrar infracciones de esta comprobación de seguridad. Estadísticas: genera estadísticas para esta comprobación de seguridad. Ninguno: inhabilite todas las acciones de esta comprobación de seguridad.
Nota: Para habilitar una o más acciones, escriba “set appfw profile - JSONCross-site ScriptingAction” seguido de las acciones que se van a habilitar.
Ejemplo
set appfw profile profile1 -JSONSQLInjectionAction block log stat
Configure la protección de secuencias de comandos entre sitios de JSON (secuencias de comandos entre sitios) mediante la interfaz gráfica de usuario
Siga el procedimiento que se indica a continuación para establecer la configuración de protección contra scripting de sitios (scripting de sitios).
- En el panel de navegación, vaya a Seguridad > Perfiles.
- En la página Perfiles, haga clic en Agregar.
- En la página de perfil de NetScaler Web App Firewall, haga clic en Comprobaciones de seguridad en Configuración avanzada.
- En la sección Comprobaciones de seguridad, vaya a Configuración de scripting de sitios JSON (scripting de sitios).
- Haga clic en el icono ejecutable cerca de la casilla de verificación.
- Haga clic en Configuración de acción para acceder a la página Configuración de scripting de sitios JSON.
- Seleccione las acciones de scripting de sitios JSON.
- Haga clic en Aceptar.
- En la página Perfil de NetScaler Web App Firewall, haga clic en Reglas de relajación en Configuración avanzada.
- En la sección Reglas de relajación, seleccione Configuración de scripting de sitios JSON y haga clic en Modificar.
- En la página Regla de relajación de scripting de sitios JSON, haga clic en Agregar para agregar una regla de relajación de scripting de sitios JSON.
- Introduzca la URL a la que se debe enviar la solicitud. Todas las solicitudes enviadas a esta URL no se bloquearán.
- Haga clic en Crear.
Configurar una relajación pormenorizada para scripting de sitios basadas en JSON
Web App Firewall le ofrece la opción de relajar una clave o valor JSON específicos de la comprobación de inspección de scripting de sitios (XSS) basada en JSON. Puede configurar varias opciones para relajar las cargas JSON mediante reglas de relajación pormenorizada. Anteriormente, la única forma de configurar relajaciones para las comprobaciones de protección JSON era especificar la URL completa y eso evitaría la verificación de toda la URL. La protección de seguridad SQL basada en JSON proporciona relajación para lo siguiente:
- Nombres clave
- Valores clave
La protección contra scripting de sitios (XSS) basada en JSON le permite configurar relajaciones que permiten patrones específicos y bloquean el resto. Por ejemplo, Web App Firewall tiene actualmente un conjunto predeterminado de más de 100 palabras clave SQL. Como los piratas informáticos pueden usar estas palabras clave en los ataques de inyección SQL, Web App Firewall marca todas como amenazas potenciales. Si quiere relajar una o más palabras clave que se consideran seguras para la ubicación específica, puede configurar una regla de relajación que pueda omitir el control de seguridad y bloquear el resto. Los comandos utilizados en las relajaciones tienen parámetros opcionales para el tipo de valor y la expresión de valor. Puede especificar si la expresión de valor es una expresión regular o una cadena literal. El tipo de valor se puede dejar en blanco o tiene la opción de seleccionar Palabra clave o Cadena especial.
Nota:
Las expresiones regulares son potentes. Especialmente si no está familiarizado con las expresiones regulares en formato PCRE, compruebe las expresiones regulares que escriba. Asegúrese de que definen exactamente la URL que quiere agregar como excepción, y nada más. El uso descuidado de caracteres comodín, y especialmente de la combinación de metacarácter o comodín punto-asterisco (.*), puede tener resultados que no quiere, como bloquear el acceso al contenido web que no pretendía bloquear o permitir un ataque que la comprobación de inyección JSON SQL habría bloqueado de otro modo.
Puntos a tener en cuenta
- La expresión de valor es un argumento opcional. Es posible que un nombre de campo no tenga ninguna expresión de valor.
- Un nombre de clave se puede enlazar a varias expresiones de valor.
- A las expresiones de valor se les debe asignar un tipo de valor. Los tipos de valores son etiqueta, atributo y patrón.
- Puede tener varias reglas de relajación por combinación de nombre de clave/URL.
Configurar la relajación pormenorizada de JSON para ataques de inyección de scripting de sitios (XSS) mediante la interfaz de comandos
Para configurar la regla de relajación pormenorizada de archivos JSON, debe vincular las entidades de relajación pormenorizada al perfil de Web App Firewall.
En la línea de comandos, escriba:
bind appfw profile <profile name> -jsonxssURL <URL> -key <key name> -isregex <REGEX/NOTREGEX> -valueType <keyword/SpecialString> <value Expression> -isvalueRegex <REGEX/NOTREGEX>
<!--NeedCopy-->
Ejemplo:
bind appfw profile appprofile1 -jsonxssurl www.example.com -key name -isRegex NOTREGEX -valueType Tag “sname” -isvalueRegex NOTREGEX
<!--NeedCopy-->
Para configurar una regla de relajación pormenorizada de inyección de scripting de sitios (XSS) basada en JSON mediante la interfaz gráfica de usuario
- Vaya a Firewall de aplicaciones > Perfiles, seleccione un perfil y haga clic en Modificar.
- En el panel Configuración avanzada, haga clic en Reglas de relajación.
- En la sección Reglas de relajación, seleccione un registro de inyección JSON SQL y haga clic en Editar.
- En el control deslizante Reglas de relajación de scripting de sitios JSON, haga clic en Agregar.
-
En la página Regla de relajación de scripting de sitios JSON, defina los siguientes parámetros.
- Habilitado
- Is Name Regex
- Nombre de la clave
- URL
- Tipo de valor
- Comentarios
- ID de recurso
- Haga clic en Crear.
En este artículo
- Configurar la protección contra scripting de sitios JSON
- Configurar la acción de scripting de sitios JSON
- Configure la protección de secuencias de comandos entre sitios de JSON (secuencias de comandos entre sitios) mediante la interfaz gráfica de usuario
- Configurar una relajación pormenorizada para scripting de sitios basadas en JSON