Citrix ADC

JSON SQL-Injection-Schutzprüfung

Eine eingehende JSON-Anforderung kann SQL-Injection in Form von partiellen SQL-Abfragezeichenfolgen oder nicht autorisierten Befehlen im Code haben. Dies führt zum Diebstahl von Daten aus der JSON-Datenbank Ihrer Webserver. Nach Erhalt einer solchen Anfrage blockiert die Appliance diese Anfrage zum Schutz Ihrer Daten.

Betrachten Sie ein Szenario, in dem ein Client eine JSON-SQL-Anforderung an eine Citrix ADC Appliance sendet, der JSON-Parser die Anforderungsnutzlast analysiert und wenn eine SQL-Injection beobachtet wird, erzwingt die Appliance Einschränkungen für den JSON-SQL-Inhalt. Die Einschränkung erzwingt eine Größenbeschränkung für die JSON-SQL-Anforderung. Wenn eine JSON-SQL-Injection beobachtet wird, wendet die Appliance eine Aktion an und antwortet mit der JSON-SQL-Fehlerseite.

Konfigurieren des JSON SQL-Injection-Schutzes

Zum Konfigurieren des JSON-SQL-Schutzes müssen Sie die folgenden Schritte ausführen:

  1. Fügen Sie das Anwendungs-Firewall-Profil als JSON hinzu.
  2. Festlegen des Anwendungs-Firewallprofils für JSON SQL Injection-Einstellungen
  3. Konfigurieren Sie die JSON-SQL-Aktion, indem Sie das Firewallprofil der Anwendung binden.

Anwendungs-Firewall-Profil vom Typ JSON hinzufügen

Sie müssen zunächst ein Profil erstellen, das angibt, wie die Anwendungsfirewall Ihren JSON-Webinhalt vor JSON SQL Injection-Angriff schützen muss. Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Hinweis:

Wenn Sie den Profiltyp als JSON festlegen, sind andere Prüfungen wie HTML oder XML nicht anwendbar.

Beispiel

add appfw profile profile1 –type JSON

Konfigurieren der JSON-SQL-Injection-Aktion

Sie müssen eine oder mehrere JSON SQL Injection-Aktionen konfigurieren, um Ihre Anwendung vor JSON SQL-Injection-Angriffen zu schützen. Geben Sie an der Eingabeaufforderung Folgendes ein:

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

SQL Injection-Aktionen sind: Blockieren - Blockieren von Verbindungen, die diese Sicherheitsprüfung verletzen. Log - Protokollieren Sie Verstöße gegen diese Sicherheitsprüfung. Statistiken - Generieren Sie Statistiken für diese Sicherheitsprüfung. None - Deaktivieren Sie alle Aktionen für diese Sicherheitsprüfung.

JSON SQL Injection-Typ konfigurieren

Geben Sie an der Eingabeaufforderung Folgendes ein, um den JSON SQL Injection-Typ in einem Anwendungsfirewallprofil zu konfigurieren:

set appfw profile <name> - JSONSQLInjectionType <JSONSQLInjectionType>

Beispiel

set appfw profile profile1 -JSONSQLInjectionType SQLKeyword

Wo die verfügbaren SQL Injection-Typen sind: Verfügbare SQL-Injektionstypen. SQLsPlchar. Prüft auf SQL-Sonderzeichen, SQLKeyword. Überprüft nach SQL-Schlüsselwörtern. SQLSplCharAndKeyword. Prüft auf beide und Blöcke, wenn gefunden. SQLSplCharorKeyword. Blockiert, wenn SQL-Sonderzeichen oder SPL-Schlüsselwort gefunden wird. Mögliche Werte: SQLSplchar, SQLKeyword, SQLSplCharorKeyword, SQLSplCharAndKeyword.

Hinweis: Um eine oder mehrere Aktionen zu aktivieren, geben Sie set appfw profile - jsonSQLInjectionAction gefolgt von den zu aktivierenden Aktionen ein.

Beispiel

set appfw profile profile1 -JSONSQLInjectionAction block log stat

Das folgende Beispiel zeigt eine Beispielnutzlast, die entsprechende Protokollnachricht und die Statistikzähler:

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)

Konfigurieren des JSON SQL Injection-Schutzes mit der Citrix GUI

Gehen Sie folgendermaßen vor, um die JSON SQL Injection-Schutzeinstellungen festzulegen.

  1. Navigieren Sie im Navigationsbereich zu Sicherheit > Profile.
  2. Klicken Sie auf der Seite Profile auf Hinzufügen.
  3. Klicken Sie auf der Seite Citrix Web App Firewall Profil unter Erweiterte Einstellungen auf Sicherheitsprüfungen.
  4. Wechseln Sie im Abschnitt Sicherheitsprüfungen zu JSON SQL Injection-Einstellungen .
  5. Klicken Sie auf das Symbol für die ausführbare Datei neben dem Kontrollkästchen.

    JSON SQL Injection Sicherheitsprüfung

  6. Klicken Sie auf Aktionseinstellungen, um die Seite JSON SQL Injection Settings aufzurufen.
  7. Wählen Sie die JSON SQL Injection-Aktionen aus.
  8. Klicken Sie auf OK.

    JSON SQL Injection Sicherheitsprüfung

  9. Klicken Sie auf der Seite Citrix Web App Firewall Profil unter Erweiterte Einstellungen auf Relaxationsregeln.
  10. Wählen Sie im Abschnitt Relaxationsregeln die Option JSON SQL Injection-Einstellungen aus, und klicken Sie auf Bearbeiten.

    JSON SQL Injection Sicherheitsprüfung

  11. Geben Sie auf der Seite JSON SQL Injection Relaxation Rule die URL ein, an die die Anforderung gesendet werden muss. Alle Anfragen, die an diese URL gesendet werden, werden nicht gesperrt.
  12. Klicken Sie auf Erstellen.

    JSON SQL Injection Sicherheitsprüfung

JSON SQL-Injection-Schutzprüfung