Comprobación de protección de inyección JSON SQL
Una solicitud JSON entrante puede tener una inyección SQL en forma de cadenas de consulta SQL parciales o comandos no autorizados en el código. Esto lleva al robo de datos de la base de datos JSON de sus servidores web. Al recibir dicha solicitud, el dispositivo bloquea dicha solicitud para proteger sus datos.
同样的联合国卡索en el,联合国cliente envia una年代olicitud JSON SQL a un dispositivo NetScaler, el analizador JSON analiza la carga útil de la solicitud y, si se observa una inyección SQL, el dispositivo impone restricciones en el contenido JSON SQL. La restricción impone un límite de tamaño en la solicitud JSON SQL. Como resultado, si se observa alguna inyección JSON SQL, el dispositivo aplica una acción y responde con la página de error JSON SQL.
Configurar la protección de inyección JSON SQL
Para configurar la protección JSON SQL, debe completar los siguientes pasos:
- Agregue el perfil de firewall de aplicaciones como JSON.
- Establecer el perfil de firewall de aplicaciones para la configuración de inyección JSON
- Configure la acción JSON SQL vinculando el perfil de firewall de la aplicación.
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 de inyección JSON SQL. En la línea de comandos, escriba:
add appfw profile
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
Acción Configurar inyección JSON SQL
Debe configurar una o más acciones de inyección JSON SQL para proteger su aplicación de los ataques de inyección JSON SQL. En la línea de comandos, escriba:
set appfw profile
Las acciones de inyección SQL 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.
Configurar el tipo de inyección JSON SQL
Para configurar el tipo de inyección JSON SQL en un perfil de firewall de aplicaciones, en el símbolo del sistema, escriba:
set appfw profile
Ejemplo
set appfw profile profile1 -JSONSQLInjectionType SQLKeyword
Donde los tipos de inyección SQL disponibles son: Tipos de inyección SQL disponibles. SqlSplChar. Comprueba si hay caracteres especiales de SQL, palabra clave SQL. Comprueba las palabras clave de SQL. SQL Splchar y palabra clave. Comprueba si hay bloques y si se encuentran. Palabra clave SQL Splcharor. Bloquea si se encuentra un carácter especial SQL o una palabra clave spl. Valores posibles: SQLSplChar, SQLKeyword, SQLSplcharorKeyword, SQLSplcharAndKeyword.
Nota: Para habilitar una o más acciones, escriba “set appfw profile - JSONSQLInjectionAction” seguido de las acciones que se habilitarán.
Ejemplo
set appfw profile profile1 -JSONSQLInjectionAction block log stat
El siguiente ejemplo muestra una carga útil de ejemplo, sus correspondientes contadores de mensajes de registro y estadísticas:
Payload: ======= { "test": "data", "username": "waf", "password": "select * from t1;", "details": { "surname": "test", "age": "23" } } Log Message: =========== 08/19/2019:08:49:46 GMT pegasus121 Informational 0-PPE-0 : default APPFW APPFW_JSON_SQL 6656 0 : 10.217.32.165 18402-PPE0 - profjson http://10.217.32.147/test.html SQL Keyword check failed for object value(with violation="select(;)") starting at offset(52) Counters: ======== 1 441083 1 as_viol_json_sql 3 0 1 as_log_json_sql 5 0 1 as_viol_json_sql_profile appfw__(profjson) 7 0 1 as_log_json_sql_profile appfw__(profjson)
Configurar la protección contra inyecciones de JSON SQL mediante la interfaz gráfica de usuario
Siga el procedimiento a continuación para establecer la configuración de protección de inyección JSON SQL.
- En el panel de navegación, vaya aSeguridad>Perfiles.
- En la páginaPerfiles, haga clic enAgregar.
- En la página delperfil de NetScaler Web App Firewall, haga clic enComprobaciones de seguridaden Configuraciónavanzada.
- En la secciónComprobaciones de seguridad, vaya a la configuración deinyección JSON SQL.
Haga clic en el icono ejecutable situado cerca de la casilla de verificación.
- Haga clic enConfiguración de acciónpara acceder a la páginaConfiguración de inyección JSON SQL.
- Seleccione las acciones deinyección de JSON SQL.
Haga clic enAceptar.
- En la páginaPerfil de NetScaler Web App Firewall, haga clic enReglas de relajaciónenConfiguración avanzada.
En la secciónReglas de relajación, seleccione Configuración deinyección JSON SQLy haga clic enModificar.
- En la página Regla de relajación de inyección JSON SQL, introduzca la URL a la que se debe enviar la solicitud. Todas las solicitudes enviadas a esta URL no se bloquearán.
Haga clic enCreate.
Configurar la relajación pormenorizada para la protección de inyección JSON SQL
Web应用程序防火墙le ofrece la opcion de relajar联合国a clave o valor JSON específico de la comprobación de inspección de inyección SQL 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 comprobación de protección SQL 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 Tipo de valor y 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. El tipo de valor puede ser: 1) Palabra clave, 2) SpecialString.
- Puede tener varias reglas de relajación por nombre de clave o combinación de URL.
Configurar la relajación pormenorizada JSON para los ataques de inyección de comandos mediante la interfaz
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 -jsoncmdURL -key -isregex -valueType -isvalueRegex
Ejemplo:
绑定appfw概要appprofile1 -jsonsqlurl www.example.com -key stn_name -isRegex NOTREGEX -valueType Keyword “union” -isvalueRegex NOTREGEX
Para configurar la regla de relajación pormenorizada para ataques de inyección de comandos basados en JSON mediante la interfaz gráfica de usuario
- Vaya aFirewall de aplicaciones > Perfiles, seleccione un perfil y haga clic enModificar.
- En el panelConfiguración avanzada, haga clic enReglas de relajación.
- En la secciónReglas de relajación, seleccione un registro deinyección de SQL JSONy haga clic enEditar.
- En el control deslizanteRegla de relajación de inyección JSON SQL, haga clic enAgregar.
En la páginaRegla de relajación de inyección JSON SQL, defina los siguientes parámetros.
- Habilitado
- Is Name Regex
- Nombre de la clave
- URL
- Tipo de valor
- Comentarios
- ID de recurso
- Haga clic enCreate.