Citrix ADC

JSON-Befehlseinschleusungsprüfung

Die JSON-Befehlseinschleusungsprüfung untersucht den eingehenden JSON-Datenverkehr auf nicht autorisierte Befehle, die die Systemsicherheit beeinträchtigen oder das System modifizieren. Wenn bei der Untersuchung des Datenverkehrs schädliche Befehle erkannt werden, blockiert die Appliance die Anforderung oder führt die konfigurierte Aktion aus.

Bei einem Befehlseinschleusungsangriff zielt der Angreifer darauf ab, nicht autorisierte Befehle auf dem Citrix ADC-Betriebssystem oder dem Backend-Server auszuführen. Um dies zu erreichen, schleust der Angreifer Betriebssystembefehle über eine anfällige Anwendung ein. Die Back-End-Anwendung ist anfällig für Einschleusungsangriffe, wenn die Appliance eine Anfrage einfach ohne Sicherheitsüberprüfung weiterleitet. Daher ist es sehr wichtig, eine Sicherheitsüberprüfung zu konfigurieren, damit die Citrix ADC-Appliance Ihre Webanwendung schützen kann, indem sie unsichere Daten blockiert.

So funktioniert der Befehlseinschleusungsschutz

  1. Bei einer eingehenden JSON-Anforderung untersucht WAF den Datenverkehr auf Schlüsselwörter oder Sonderzeichen. Wenn die JSON-Anforderung keine Muster enthält, die mit einem der verweigerten Schlüsselwörter oder Sonderzeichen übereinstimmen, ist die Anforderung zulässig. Andernfalls wird die Anforderung basierend auf der konfigurierten Aktion blockiert, verworfen oder umgeleitet.
  2. Wenn Sie es vorziehen, ein Schlüsselwort oder ein Sonderzeichen von der Liste auszunehmen, können Sie eine Entspannungsregel erstellen, um die Sicherheitsüberprüfung unter bestimmten Bedingungen zu Bypass.
  3. Sie können die Protokollierung aktivieren, um Protokollmeldungen zu generieren Sie können die Protokolle überwachen, um festzustellen, ob Antworten auf legitime Anfragen blockiert werden. Ein starker Anstieg der Anzahl der Protokollmeldungen kann auf Versuche hinweisen, einen Angriff zu starten.
  4. Sie können die Statistikfunktion auch aktivieren, um statistische Daten zu Verstößen und Protokollen zu sammeln. Ein unerwarteter Anstieg im Statistikzähler deutet möglicherweise darauf hin, dass Ihre Anwendung angegriffen wird. Wenn legitime Anforderungen blockiert werden, müssen Sie möglicherweise die Konfiguration erneut aufrufen, um festzustellen, ob Sie die neue Entspannungsregel konfigurieren oder die vorhandene ändern müssen.

Schlüsselwörter und Sonderzeichen, die für die Befehlseinschleusung verweigert werden

Zum Erkennen und Blockieren von JSON-Befehlseinschleusungsangriffen hat die Appliance über eine Reihe von Mustern (Schlüsselwörter und Sonderzeichen), die in der Standardsignaturdatei definiert sind. Es folgt eine Liste der blockierten Schlüsselwörter beim Erkennen von Befehlseinschleusungsverstößen

 7z 7za 7zr 

In der Signaturdatei definierte Sonderzeichen sind:| ; & $ > < ' \ ! >> #

Konfigurieren der JSON-Befehlseinschleusungsprüfung über die CLI

In der Befehlszeilenschnittstelle können Sie entweder den Befehl set appfw profile verwenden oder einen appfw-Profilbefehl hinzufügen, um die JSON-Befehlseinschleusungseinstellungen zu konfigurieren. Sie können die Block-, Protokoll- und Statistikaktionen aktivieren. Sie müssen auch den Befehlseinschleusungstyp wie Schlüsselwörter und Zeichenfolgenzeichen festlegen, die Sie in den Nutzdaten erkennen möchten.

您一个der Eingabeaufforderung Folgendes ein:

设置appfw概要文件<配置文件名称> -cmdInjectionAction -CMDInjectionType ]

Hinweis:

Standardmäßig ist die Befehlseinschleusungsaktion auf “Protokollstatistiken blockieren” festgelegt. Außerdem wird der Standardeinschleusungsstyp des Befehls als festgelegtCmdSplCharANDKeyWord. Nach einem Upgrade ist für die vorhandenen Web-App-Firewall-Profile die Aktion auf “Keine” festgelegt.

Beispiel:

set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar

Dabei sind die verfügbaren JSON-Befehlseinschleusungsaktionen:

Keine — Deaktiviert den Befehlseinschleusungsschutz. Log — Protokollieren von Befehlseinschleusungsverstößen für die Sicherheitsprüfung Blockieren - blockiert Datenverkehr, der gegen die Befehlseinschleusungsüberprüfung verstößt. Statistik - Generiert Statistiken für Sicherheitsverletzungen durch Befehlseinschleusung.

Dabei sind die verfügbaren JSON-Befehlseinschleusungstypen:

Cmd SplChar- Prüft SonderzeichenCmdKeyWord- Prüft Schlüsselwörter zur BefehlseinschleusungCmdSplCharANDKeyWord- Dies ist die Standardaktion. Die Aktion prüft Sonderzeichen und Befehlseinschleusung. Schlüsselwörter und Blöcke nur, wenn beide vorhanden sind.CmdSplCharORKeyWord- Überprüft Sonderzeichen und Befehlseinschleusungsschlüsselwörter und blockiert, wenn gefunden.

Konfigurieren der Entspannungsregeln für die JSON-Befehlseinschleusungsprüfung

Wenn Ihre Anwendung erfordert, dass Sie die JSON-Befehlseinschleusungsprüfung für ein bestimmtes ELEMENT oder ATTRIBUTE in der Nutzlast umgehen müssen, können Sie eine Entspannungsregel konfigurieren.

Die Entspannungsregeln für die JSON-Befehlseinschleusungsprüfung haben folgende Syntax.

bind appfw profile –JSONCMDURL -comment -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )

Beispiel für Relaxationsregel für Regex im Header

bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/hello.html

Im Folgenden werden Anfragen von allen auf 1.1.1.1 gehosteten URLs gelockert:

bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/*”

Um die Entspannung zu entfernen, verwenden Sie “unbind”.

unbind appfw profile abc_json -jsoncmDURL “ http://1.1.1.1/*”

Konfigurieren der JSON-Befehlseinschleusungsprüfung über die GUI

Führen Sie die folgenden Schritte aus, um die JSON-Befehlseinschleusungsprüfung zu konfigurieren.

  1. Navigieren Sie zuSicherheit > Citrix Web App Firewall und Profile.
  2. Wählen Sie auf der SeiteProfileein Profil aus, und klicken Sie aufBearbeiten.
  3. Wechseln Sie auf derCitrix Web App Firewall Profilseitezum AbschnittErweiterte Einstellungenund klicken Sie aufSicherheitsprüfungen.

Zugriff auf die JSON-Sicherheitsprüfung für Sicherheitseinstellungen

  1. Wählen Sie im AbschnittSicherheitsüberprüfungendie OptionJSON-Befehlseinschleusungaus und klicken Sie aufAktion.
  2. Stellen Sie auf der SeiteJSON-Befehlseinschleusungseinstellungendie folgenden Parameter ein

    1. Aktionen. Wählen Sie eine oder mehrere Aktionen für die Sicherheitsüberprüfung der JSON-Befehlseinschleusung aus.
    2. Überprüfen Sie die Anfrage enthält. Wählen Sie ein Befehlseinschleusungsmuster, um zu überprüfen, ob die eingehende Anforderung das Muster enthält.
  3. Klicken Sie aufOK.

Konfigurieren Sie die Einstellungen für die JSON-Befehlseinschleusungsprüfung

Anzeigen von Statistiken zum Befehlseinschleusungsdatenverkehr und -verletzungen

Auf der Seite “Citrix Web App Firewall Statistics“ werden Details zu Sicherheitsdatenverkehr und Sicherheitsverletzungen in einem tabellarischen oder grafischen Format angezeigt.

So zeigen Sie Sicherheitsstatistiken mithilfe der Befehlszeilenschnittstelle an.

您一个der Eingabeaufforderung Folgendes ein:

stat appfw profile profile1

Appfw-Profil Verkehrsstatistiken Geschwindigkeit (/s) Gesamt
Anfragen 0 0
Byte anfragen 0 0
Antworten 0 0
Antwort Byte 0 0
Bricht ab 0 0
Leitet 0 0
Langfristige Reaktionszeit (ms) 0
Letzte Reaktionszeit von Ave (ms) 0
Statistiken zu HTML/XML/JSON-Verstößen Geschwindigkeit (/s) Gesamt
Start-URL 0 0
URL verweigern 0 0
Referer-Header 0 0
Pufferüberlauf 0 0
Cookie-Konsistenz 0 0
Cookie-Entfuhrung 0 0
CSRF-Formular-Tag 0 0
Site-übergreifendes HTML 0 0
HTML SQL injection 0 0
Feld-Format 0 0
Field consistency 0 0
Kreditkarte 0 0
Sicheres Objekt 0 0
Verstöße gegen die Signatur 0 0
Inhaltstyp 0 0
JSON-Denial-of-Service-Angriff 0 0
JSON-SQL-Einschleusung 0 0
JSON-Cross-Site Scripting 0 0
Dateiuploadtyp 0 0
Ableiten der XML-Nutzlast für Inhaltstypen 0 0
HTML-Befehlseinschleusung 0 0
XML-Format 0 0
XML-Denial-of-Service-Angriff (XDoS) 0 0
XML-Nachrichtenüberprüfung 0 0
Interoperabilität der Webdienste 0 0
XML SQL Injection 0 0
Site-übergreifende XML-Skrip 0 0
XML-Anhang 0 0
SOAP-Fehlerverletzungen 0 0
Generische XML-Verstöße 0 0
Verstöße insgesamt 0 0
HTML/XML/JSON-Protokollstatistiken Geschwindigkeit (/s) Gesamt
Starten der URL-Protokolle 0 0
URL-Protokolle verweigern 0 0
Referer-Header-Protokolle 0 0
Pufferüberlauf-Protokolle 0 0
Protokolle zur Cookie-Konsistenz 0 0
Protokolle zur Cookie-Entführung 0 0
CSRF aus Tag-Protokollen 0 0
HTML-Cross-Site Scripting-Protokolle 0 0
HTML Cross-Site Scripting-Transformationsprotokolle 0 0
HTML SQL-Einschleusungsprotokolle 0 0
HTML SQL Transformationsprotokolle 0 0
Protokolle im Feldformat 0 0
Protokolle zur Feldkonsistenz 0 0
Kreditkarten 0 0
Protokolle zur Kreditkarten-Transformation 0 0
Sichere Objektprotokolle 0 0
Signatur-Protokolle 0 0
Inhalts-Typ-Protokolle 0 0
JSON-Denial-of-Service-Protokolle 0 0
JSON SQL-Einschleusungsprotokolle 0 0
JSON-Site-Scripting-Protokolle 0 0
Protokolle zum Hochladen von Dateien 0 0
Ableiten der XML-Nutzlast des Inhaltstyps L 0 0
JSON-CMD-Einschleusung 0 0
HTML-Befehlseinschleusungsprotokolle 0 0
Protokolle im XML-Format 0 0
XML Denial of Service (XDoS) -Protokolle 0 0
Protokolle zur XML-Nachrichtenüberprüfung 0 0
WSI-Protokolle 0 0
XML SQL Injection-Protokolle 0 0
XML-Cross-Site Scripting-Protokolle 0 0
Protokolle für XML-Anhänge 0 0
SOAP-Fehlerlogs 0 0
Generische XML-Protokolle 0 0
Gesamtzahl der Protokollmeldungen 0 0

Statistikrate der Serverfehlerantwort (/s) | Gesamt | |—|–|–| HTTP Client Errors (4xx Resp) | 0 | 0| HTTP Server Errors (5xx Resp) | 0 | 0 |

HTML/XML/JSON-Protokollstatistiken Geschwindigkeit (/s) Gesamt
JSON-Command Injection- 0 0
Protokolle im XML-Format 0 0

Anzeigen von JSON-Befehlseinschleusungsstatistiken über die Citrix ADC GUI

Führen Sie die folgenden Schritte aus, um Befehlseinschleusungsstatistiken anzuzeigen:

  1. Navigieren Sie zuSicherheit > Citrix Web App Firewall > Profile.
  2. Wählen Sie im Detailbereich ein Web App Firewall-Profil aus und klicken Sie aufStatistiken.
  3. Auf der SeiteCitrix Web App Firewall Statisticswerden die Details zum JSON-Befehlseinschleusungsverkehr und Verstößen angezeigt.
  4. Sie könnenTabellarische Ansichtwählen oder zurgrafischen Ansichtwechseln, um die Daten in einem tabellarischen oder grafischen Format anzuzeigen.

JSON-Befehlseinschleusungverkehrsstatistiken

Abschnitt

Statistiken zu JSON-Befehlseinschleusungsverstößen

Abschnitt

Konfigurieren der feingesteuerten Lockerung für JSON-Befehlseinschleusungsprüfung

死Web应用防火墙bietet您Moglichkeit死去,靠窗户bestimmten JSON-Schlüssel oder -Wert aus der JSON-basierten Befehlseinschleusungsprüfung zu lockern. Sie können die Inspektion für ein oder mehrere Felder vollständig Bypass, indem Sie feingesteuert die Lockerungsregeln 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 Sicherheitsschutz gegen Befehlseinschleusung bietet Lockerungen für Folgendes:

  • Die wichtigsten Namen
  • Die wichtigsten Werte

Mit dem JSON-basierten Befehlseinschleusungsschutz 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 Befehlseinschleusungsangriffen 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:

Regulare Ausdrucke信德leistungsstark。伏尔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. Der Werttyp kann sein: 1) Schlüsselwort, 2) SpecialString.
  • Sie können mehrere Entspannungsregeln pro Schlüsselname/URL-Kombination festlegen.

Konfigurieren der JSON-Feinkorn-Entspannung für Befehlseinspritzangriffe mithilfe der Befehlsschnittstelle

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

您一个der Eingabeaufforderung Folgendes ein:

bind appfw profile  -jsoncmdURL  -key  -valueType   

Beispiel:

bind appfw profile appprofile1 -jsoncmdurl www.example.com -key blg_cnt -isRegex NOTREGEX -valueType Keyword “cat” -isvalueRegex NOTREGEX

Konfigurieren der Feinkornentspannungsregel für JSON-basierte Befehlseinschleusungsangriffe über die GUI

  1. Navigieren Sie zuApplication Firewall > Profile, wählen Sie ein Profil aus und klicken Sie aufBearbeiten.
  2. Klicken Sie im BereichErweiterte EinstellungenaufRelaxationsregeln.
  3. Wählen Sie im AbschnittEntspannungsregeln靠窗户JSON Command Injection -Datensatzaus und klicken Sie aufBearbeiten.
  4. Klicken Sie im Schieberegler für dieJSON-BefehlseinspritzungaufHinzufügen.
  5. Legen Sie auf der Seite “Relaxationsregel für die JSON-Befehlseinschleusung

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

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