Citrix ADC

Überprüfung des JSON-Site-Scripting-Schutzes

Wenn eine eingehende JSON-Nutzlast schädliche Cross-Site-Scripting-Daten enthält, blockiert WAF die Anforderung. Die folgenden Verfahren erklären, wie Sie dies über CLI- und GUI-Schnittstellen konfigurieren können.

Konfigurieren des JSON-Site-Scripting-Schutzes

Um den JSON-Site-Scripting-Schutz zu konfigurieren, müssen Sie die folgenden Schritte ausführen:

  1. Fügen Sie das Anwendungsfirewall-Profil als JSON hinzu.
  2. Konfigurieren der JSON-Site-Scripting-Aktion zum Blockieren schädlicher Nutzdaten für Cross-Site Scripting

Anwendungs-Firewall-Profil vom Typ JSON hinzufügen

Sie müssen zuerst ein Profil erstellen, das angibt, wie die Anwendungsfirewall Ihre JSON-Webinhalte vor siteübergreifenden JSON-Skripting-Angriffen schützen muss.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Hinweis:

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

Beispiel

add appfw profile profile1 –type JSON

Beispielausgabe für JSON-Site-Scripting-Verletzung

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

Konfigurieren der Aktion “JSON-Site-Scripting”

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

set appfw profile <name> - JSONcross-site scriptingAction [block] [log] [stats] [none]

Beispiel

set appfw profile profile1 –JSONcross-site scriptingAction block

Die verfügbaren Cross-Site-Scripting-Aktionen sind: Blockieren — Verbindungen blockieren, die diese Sicherheitsüberprüfung verletzen. Log - Protokollieren Sie Verstöße gegen diese Sicherheitsprüfung. Statistiken - Generieren Sie Statistiken für diese Sicherheitsüberprüfung. Keine — Deaktiviert alle Aktionen für diese Sicherheitsüberprüfung.

Hinweis: Um eine oder mehrere Aktionen zu aktivieren, geben Sie “set appfw profile - JsonCross-Site ScriptingAction” ein, gefolgt von den zu aktivierenden Aktionen.

Beispiel

set appfw profile profile1 -JSONSQLInjectionAction block log stat

Konfigurieren des JSON-Schutzes für Cross Site Scripting (Cross-Site Scripting) mithilfe der Citrix GUI

Gehen Sie wie folgt vor, um die Schutzeinstellungen für Cross Site Scripting (Cross-Site Scripting) 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 Profile unter Erweiterte Einstellungen auf Sicherheitsprüfungen.
  4. Wechseln Sie im Abschnitt Sicherheitsüberprüfungen zu den Einstellungen für JSON-Site-Scripting (Cross-Site-Scripting) .
  5. Klicken Sie neben dem Kontrollkästchen auf das Symbol der ausführbaren

    Sicherheitsüberprüfung für JSON-Site-Scripting

  6. Klicken Sie auf Aktionseinstellungen, um die Seite JSON-Site-Scripting-Einstellungen aufzurufen.
  7. Wählen Sie die Site-übergreifenden JSON-Skripting-Aktionen aus
  8. Klicken Sie auf OK.

    Sicherheitsüberprüfung für JSON-Site-Scripting

  9. Klicken Sie auf der Seite Citrix Web App Firewall Profile unter Erweiterte Einstellungen auf Entspannungsregeln.
  10. Wählen Sie im Abschnitt Entspannungsregeln die JSON-Site-Scripting-Einstellungen aus und klicken Sie auf Bearbeiten.

    Sicherheitsüberprüfung für JSON-Site-Scripting

  11. Klicken Sie auf der Seite JSON-Site Scripting Relaxation Rule auf Hinzufügen, um eine Relaxationsregel für JSON-Site Scripting hinzuzufügen.
  12. Geben Sie die URL ein, an die die Anfrage gesendet werden muss. Alle an diese URL gesendeten Anfragen werden nicht blockiert.
  13. Klicken Sie auf Erstellen.

    Sicherheitsüberprüfung für JSON-Site-Scripting

Konfigurieren Sie feinkörnige Entspannung für JSON-basiertes Cross-Site Scripting

Die Web App Firewall bietet Ihnen die Möglichkeit, einen bestimmten JSON-Schlüssel oder -Wert aus der JSON-basierten Cross-Site Scripting (XSS) -Prüfung zu lockern. Sie können mehrere Optionen zum Entspannen von JSON-Nutzlasten mithilfe von Feinkornrelaxierungsregeln konfigurieren. Bisher bestand die einzige Möglichkeit, Lockerungen für JSON-Schutzprüfungen zu konfigurieren, darin, die gesamte URL anzugeben, wodurch die Überprüfung der gesamten URL umgangen würde. Der JSON-basierte SQL-Sicherheitsschutz bietet Entspannung für Folgendes:

  • Die wichtigsten Namen
  • Die wichtigsten Werte

Mit dem JSON-basierten Cross-Site Scripting (XSS) -Schutz können Sie Entspannungen konfigurieren, die bestimmte Muster zulassen und den Rest blockieren. Beispielsweise verfügt die Web App Firewall derzeit über einen Standardsatz von mehr als 100 SQL-Schlüsselwörtern. Da Hacker diese Schlüsselwörter bei SQL-Einschleusung-Angriffen verwenden können, kennzeichnet die Web App Firewall alle als potenzielle Bedrohungen. Wenn Sie ein oder mehrere Schlüsselwörter lockern möchten, die für den jeweiligen Standort als sicher gelten, können Sie eine Entspannungsregel konfigurieren, die die Sicherheitsüberprüfung Bypass und den Rest blockieren kann. Die in Relaxationen verwendeten Befehle haben optionale Parameter für Value Type und Value Expression. Sie können angeben, ob der Wertausdruck ein regulärer Ausdruck oder eine literale Zeichenfolge ist. Der Werttyp kann leer gelassen werden, oder Sie haben die Möglichkeit, Keyword oder Special String auszuwählen.

Hinweis:

Reguläre Ausdrücke sind leistungsstark. Vor allem, wenn Sie mit regulären Ausdrücken im PCRE-Format nicht genau vertraut sind, überprüfen Sie alle regulären Ausdrücke, die Sie schreiben. Stellen Sie sicher, dass sie genau die URL definieren, die Sie als Ausnahme hinzufügen möchten, und nichts anderes. Die unvorsichtige Verwendung von Platzhaltern und insbesondere der Metazeichen- oder Platzhalterkombination mit Punkt-Sternchen (.*) kann zu Ergebnissen führen, die Sie nicht möchten, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder das Zulassen eines Angriffs, den die JSON-SQL-Einschleusung-Prüfung sonst blockiert hätte.

Zu berücksichtigende Punkte

  • Der Wertausdruck ist ein optionales Argument. Ein Feldname hat möglicherweise keinen Wertausdruck.
  • Ein Schlüsselname kann an Ausdrücke mit mehreren Werten gebunden werden.
  • Wertausdrücken muss ein Werttyp zugewiesen werden. Die Werttypen sind Tag, Attribut und Muster.
  • Sie können mehrere Entspannungsregeln pro Schlüsselname/URL-Kombination festlegen.

Konfigurieren der JSON-Feinkorn-Entspannung für Cross-Site Scripting (XSS) -Injection-Angriffe mithilfe der Befehlsschnittstelle

Um die JSON-Dateikorn-Entspannungsregel zu konfigurieren, müssen Sie die Feinkornentspannungseinheiten an das Web App Firewall-Profil binden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind appfw profile <profile name> -jsonxssURL <URL> -key <key name> -isregex <REGEX/NOTREGEX> -valueType <keyword/SpecialString> <value Expression> -isvalueRegex <REGEX/NOTREGEX>
<!--NeedCopy-->

Beispiel:

bind appfw profile appprofile1 -jsonxssurl www.example.com -key name  -isRegex NOTREGEX -valueType Tag “sname” -isvalueRegex NOTREGEX
<!--NeedCopy-->

So konfigurieren Sie eine JSON-basierte Cross-Site Scripting (XSS) -Injection Feinkornentspannungsregel über die GUI

  1. Navigieren Sie zu Application Firewall > Profile, wählen Sie ein Profil aus und klicken Sie auf Bearbeiten.
  2. Klicken Sie im Bereich Erweiterte Einstellungen auf Relaxationsregeln.
  3. Wählen Sie im Abschnitt Entspannungsregeln einen JSON-SQL-Einschleusung-Datensatz aus und klicken Sie auf Bearbeiten.
  4. Klicken Sie im Schieberegler für JSON-Site Scripting Relaxation Rules auf Hinzufügen.
  5. Legen Sie auf der Seite Regel für die Entspannung von JSON-Site Scripting die folgenden Parameter fest.

    1. Aktiviert
    2. Ist Name Regex
    3. Schlüsselname
    4. URL
    5. Werttyp
    6. Anmerkungen
    7. Ressourcen-ID
  6. Klicken Sie auf Erstellen.

JSON-Feinkörnige Entspannung für Cross-Site-Scripting