Citrix 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 Citrix ADC, el analizador JSON analiza la carga útil de la solicitud y, si se observa una inyección SQL, el dispositivo aplica restricciones sobre el contenido JSON SQL. La restricción impone un límite de tamaño en la solicitud JSON SQL. Como resultado, si se observa cualquier inyección JSON SQL, el dispositivo aplica una acción y responde con la página de error JSON SQL.

Configurar la protección JSON SQL Injection

Para configurar la protección JSON SQL, debe completar los siguientes pasos:

  1. Agregue el perfil de firewall de la aplicación como JSON.
  2. Establecer perfil de firewall de aplicaciones para la configuración de JSON SQL Injection
  3. Configure la acción JSON SQL vinculando el perfil del 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 JSON SQL Injection. En el símbolo del sistema, escriba:

add appfw profile <name> -type (HTML | XML | JSON)

Nota:

Al establecer 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 JSON SQL Injection

Debe configurar una o más acciones JSON SQL Injection para proteger su aplicación de ataques de inyección JSON SQL. En el símbolo del sistema, escriba:

set appfw profile <name> - JSONSQLInjectionAction [block] [log] [stats] [none]

Las acciones de SQL Injection son: Bloquear: Bloquear conexiones que infrinjan esta comprobación de seguridad. Registro: Registrar infracciones de esta comprobación de seguridad. Estadísticas: Generar estadísticas para esta comprobación de seguridad. Ninguno: Inhabilite todas las acciones para esta comprobación de seguridad.

Configurar el tipo de inyección JSON SQL

Para configurar el tipo JSON SQL Injection 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 SQLdisponibles son: Tipos de inyección SQL disponibles. SQLSplChar. Comprueba si hay caracteres especiales de SQL, SQLKeyword. Comprueba las palabras clave de SQL. SQLSplCharANDKeyword. Comprueba los bloques y si se encuentran. SQLSplCharORKeyword.. 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 van a habilitar.

Ejemplo

set appfw profile profile1 -JSONSQLInjectionAction block log stat

En el ejemplo siguiente se muestra una carga útil de ejemplo, su mensaje de registro correspondiente y contadores de 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)

Configurar la protección JSON SQL Injection mediante Citrix GUI

Siga el procedimiento siguiente para establecer la configuración de protección JSON SQL Injection.

  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 Configuración de inyección JSON SQL.
  5. Haga clic en el icono ejecutable situado cerca de la casilla de verificación.

    Comprobación de seguridad de inyección JSON SQL

  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 JSON SQL Injection.
  8. Haga clic en Aceptar.

    Comprobación de seguridad de inyección JSON SQL

  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.

    Comprobación de seguridad de inyección JSON SQL

  11. En la página JSON SQL Injection Relaxation Rule, 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