ADC

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.

Considere un caso en el que un cliente envía una solicitud JSON SQL a un dispositivo NetScaler ADC, 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:

  1. Agregue el perfil de firewall de aplicaciones como JSON.
  2. Establecer el perfil de firewall de aplicaciones para la configuración de inyección JSON
  3. 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 <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

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 <name> - JSONSQLInjectionAction [block] [log] [stats] [none]

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 <name> - JSONSQLInjectionType <JSONSQLInjectionType>

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) <blocked>
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)
<!--NeedCopy-->

Configurar la protección de inyección JSON SQL mediante la GUI de Citrix

Siga el procedimiento a continuación para establecer la configuración de protección de inyección JSON SQL.

  1. En el panel de navegación, vaya a Seguridad > Perfiles.
  2. En la página Perfiles, haga clic en Agregar.
  3. En la página Perfil de Citrix Web App Firewall, haga clic en Comprobaciones de seguridad en Configuración avanzada.
  4. En la sección Comprobaciones de seguridad, vaya a la configuración de inyección JSON SQL.
  5. Haga clic en el icono ejecutable situado cerca de la casilla de verificación.
  6. Haga clic en Configuración de acción para acceder a la página Configuración de inyección JSON SQL.
  7. Seleccione las acciones de inyección de JSON SQL.
  8. Haga clic en Aceptar.
  9. En la página Perfil de Citrix Web App Firewall, haga clic en Reglas de relajación en Configuración avanzada.
  10. En la sección Reglas de relajación, seleccione Configuración de inyección JSON SQL y haga clic en Modificar.
  11. 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.
  12. Haga clic en Crear.

    Comprobación de seguridad de inyección JSON SQL

Comprobación de protección de inyección JSON SQL