ADC

CSRF-Formular-Tagging-Prüfung

Die Cross-Site Request Forgery (CSRF) -Formular-Tagging markiert jedes Webformular, das von einer geschützten Website an Benutzer gesendet wird, mit einer eindeutigen und unvorhersehbaren FormID. Anschließend untersucht die von Benutzern zurückgegebenen Webformulare, um sicherzustellen, dass die bereitgestellte formID korrekt ist. Diese Überprüfung schützt vor standortübergreifenden Anforderungsfälschungen. Diese Prüfung gilt nur für HTML-Anfragen, die ein Webformular enthalten, mit oder ohne Daten. Es gilt nicht für XML-Anforderungen.

Die CSRF-Formkennzeichnungsprüfung verhindert, dass Angreifer ihre eigenen Webformulare verwenden, um hochvolumige Formularantworten mit Daten an Ihre geschützten Websites zu senden. Diese Prüfung erfordert relativ geringe CPU-Verarbeitungskapazität im Vergleich zu bestimmten anderen Sicherheitsprüfungen, die Webformulare eingehend analysieren. Es ist daher in der Lage, Angriffe mit hohem Volumen zu bewältigen, ohne die Leistung der geschützten Website oder der Web App Firewall selbst ernsthaft zu beeinträchtigen.

Bevor Sie die CSRF-Formkennzeichnungsprüfung aktivieren, müssen Sie Folgendes beachten:

  • Sie müssen die Formularkennzeichnung aktivieren. Die CSRF-Prüfung hängt vom Formular-Tagging ab und funktioniert ohne sie nicht.
  • Sie müssen die Citrix ADC Integrated Caching-Funktion für alle Webseiten deaktivieren, die Formulare enthalten, die durch dieses Profil geschützt sind. Das integrierte Caching-Feature und das CSRF-Formular-Tagging sind nicht kompatibel.
  • Sie müssen erwägen, die Referer-Prüfung Die Überprüfung des Referers ist Teil der URL-Prüfung starten, verhindert jedoch standortübergreifende Anforderungsfälschungen, nicht Start-URL-Verstöße. Die Referenzprüfung belastet die CPU auch weniger als die CSRF-Formular-Tagging-Prüfung. Wenn eine Anforderung gegen die Verweisprüfung verstößt, wird sie sofort gesperrt, sodass die CSRF-Formular-Tagging-Prüfung nicht aufgerufen wird.
  • Die Überprüfung CSRF-Formularkennzeichnung funktioniert nicht mit Webformularen, die unterschiedliche Domänen in der Formularursprung-URL und der Formularaktions-URL verwenden. Beispielsweise kann CSRF-Formular-Tagging ein Webformular nicht mit einer Formularursprungs-URL von http://www.example.com und einer Formularaktions-URL von http://www.example.org/form.pl schützen, da example.com und example.org unterschiedliche Domänen sind.

Wenn Sie den Assistenten oder die GUI verwenden, können Sie im Dialogfeld CSRF-Formularkennzeichnung ändern auf der Registerkarte Allgemein die Aktionen Blockieren, Protokollieren, Lernen und Statistiken aktivieren oder deaktivieren.

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie den folgenden Befehl eingeben, um die CSRF-Formularkennzeichnungsprüfung zu konfigurieren:

  • set appfw profile <name> -CSRFtagAction [**block**] [**log**] [**learn**] [**stats**] [**none**]

Um die Relaxationen für die CSRF-Form-Tagging-Prüfung festzulegen, müssen Sie die GUI verwenden. Klicken Sie auf der Registerkarte Prüfungen des Dialogfelds CSRF-Formularkennzeichnung ändern auf Hinzufügen, um das Dialogfeld CSRF-Formularkennzeichnungsüberprüfung hinzufügen zu öffnen, oder wählen Sie eine vorhandene Entspannung aus, und klicken Sie auf Öffnen, um das Dialogfeld CSRF-Formularkennzeichnungsüberprüfung ändern zu öffnen. Beide Dialogfelder bieten die gleichen Optionen für die Konfiguration einer Entspannung.

Eine Warnung wird generiert, wenn Sie die Sitzungsbeschränkung der Citrix Web App Firewall auf einen Wert von 0 oder niedriger festlegen, da eine solche Einstellung die erweiterte Schutzüberprüfungsfunktion beeinflusst, die eine ordnungsgemäß funktionierende Web App Firewall-Sitzung erfordert.

Im Folgenden finden Sie Beispiele für CSRF-Formular-Tagging-Check-Relaxationen:

Hinweis: Die folgenden Ausdrücke sind URL-Ausdrücke, die sowohl in den Rollen Formularurigin-URL als auch Formularaktions-URL verwendet werden können.

  • Wählen Sie URLs, die mit http://www.example.com/search.pl? beginnen und eine beliebigen Zeichenfolge nach der Abfrage enthalten, mit Ausnahme einer neuen Abfrage:

     ^http://www[.]example[.]com/search[.]pl?[^?]*$
     <!--NeedCopy-->
    
  • Wählen Sie URLs aus, die mit http://www.example-español.com beginnen und Pfade und Dateinamen haben, die aus Groß- und Kleinbuchstaben, Zahlen, Nicht-ASCII-Sonderzeichen und ausgewählten Symbolen im Pfad bestehen. Das Zeichen ñ und alle anderen Sonderzeichen werden als codierte UTF-8-Zeichenfolgen dargestellt, die den Hexadezimalcode enthalten, der jedem Sonderzeichen im UTF-8-Zeichensatz zugewiesen ist:

    ^http://www[.]example-espa\xC3\xB1ol[.]com/(([0-9A-Za-z]|\x[0-9A-Fa-f][0-9A-Fa-f])
([0-9A-Za-z_-]|\x[0-9A-Fa-f][0-9A-Fa-f])\*/)\*([0-9A-Za-z]|\x[0-9A-Fa-f][0-9A-Fa-f])([0-9A-Za-z_-]|\x[0-9A-Fa-f][0-9A-Fa-f])*[.](asp|htp|php|s?html?)$
<!--NeedCopy-->
  • Wählen Sie alle URLs aus, die die Zeichenfolge /search.cgi? enthalten:
    ^[^?<>]\*/search[.]cgi?[^?<>]\*$
<!--NeedCopy-->

Wichtig

Reguläre Ausdrücke sind leistungsstark. Wenn Sie mit regulären Ausdrücken im PCRE-Format nicht 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 Punkt-Sternchen (.*) -Metazeichen/Platzhalterkombination kann zu Ergebnissen führen, die Sie nicht wünschen, z. B. zum Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder zum Erlauben eines Angriffs, den die Prüfung sonst blockiert hätte.

Tipp

Wenn der Referrer-Header EnableValidate unter der Start-URL-Aktion aktiviert ist, stellen Sie sicher, dass die Referrer-Header-URL ebenfalls zu startURL hinzugefügt wird.

Hinweis:

Wenn Citrix ADC appfw_session_limit erreicht und CSRF-Prüfungen aktiviert sind, wird die Webanwendung eingefroren.

Um das Einfrieren von Webanwendungen zu verhindern, verringern Sie das Sitzungstimeout und erhöhen Sie das Sitzungslimit mit der folgenden Befehle:

Von CLI: > Appfw-Einstellungen festlegen —sessiontimeout 300 Aus Shell: root @ns # nsapimgr_wr.sh -s appfw_session_limit=200000 Das Protokollieren und Generieren von SNMP-Alarmen, wenn appfw_session_limit erreicht ist, hilft Ihnen bei der Fehlerbehebung und Fehlersuche.

CSRF-Formular-Tagging-Prüfung

In diesem Artikel