Citrix ADC

Überprüfung der Cookie-Konsistenz

Bei der Cookie-Konsistenzprüfung werden von Benutzern zurückgegebene Cookies untersucht, um sicherzustellen, dass sie mit den Cookies übereinstimmen, die Ihre Website für diesen Benutzer festgelegt hat. Wenn ein modifiziertes Cookie gefunden wird, wird es aus der Anforderung entfernt, bevor die Anfrage an den Webserver weitergeleitet wird. Sie können die Cookie-Konsistenzprüfung auch so konfigurieren, dass alle von ihm verarbeiteten Server-Cookies umgewandelt werden, indem Sie die Cookies verschlüsseln, die Cookies per Proxy senden oder Flags zu den Cookies hinzufügen. Diese Prüfung gilt für Anfragen und Antworten.

Ein Angreifer würde normalerweise ein Cookie modifizieren, um Zugriff auf sensible private Informationen zu erhalten, indem er sich als zuvor authentifizierter Benutzer ausgibt, oder um einen Pufferüberlauf zu verursachen. Die Pufferüberlaufprüfung schützt vor Versuchen, einen Pufferüberlauf zu verursachen, indem ein langes Cookie verwendet wird. Die Cookie-Konsistenzprüfung konzentriert sich auf das erste Szenario.

Wenn Sie den Assistenten oder die GUI verwenden, können Sie im Dialogfeld Cookie-Konsistenzprüfung ändern auf der Registerkarte Allgemein die folgenden Aktionen aktivieren oder deaktivieren:

  • Blockieren
  • Protokoll
  • Erfahren Sie mehr
  • Statistik
  • Transformieren. Wenn diese Option aktiviert ist, ändert die Aktion “Transformieren” alle Cookies wie in den folgenden Einstellungen angegeben:
    • Verschlüsseln von Servercookies. Verschlüsseln Sie die von Ihrem Webserver gesetzten Cookies, mit Ausnahme der in der Entspannungsliste zur Überprüfung der Cookie-Konsistenz aufgeführten Cookies, bevor Sie die Antwort an den Client weiterleiten. Verschlüsselte Cookies werden entschlüsselt, wenn der Client eine nachfolgende Anfrage sendet, und die entschlüsselten Cookies werden wieder in die Anfrage eingefügt, bevor sie an den geschützten Webserver weitergeleitet werden. Geben Sie eine der folgenden Verschlüsselungsarten an:
      • Ohne. Verschlüsseln oder entschlüsseln Sie keine Cookies. Die Standardeinstellung.
      • Nur entschlüsseln. Entschlüsseln Sie nur verschlüsselte Cookies. Verschlüsseln Sie keine Cookies.
      • Nur Sitzung verschlüsseln. Verschlüsseln Sie nur Sitzungscookies. Verschlüsseln Sie keine persistenten Cookies. Entschlüsseln Sie alle verschlüsselten Cookies.
      • Verschlüsseln Sie alles. Verschlüsseln Sie sowohl Sitzungs- als auch dauerhafte Cookies. Entschlüsseln Sie alle verschlüsselten Cookies. Hinweis: Beim Verschlüsseln von Cookies fügt die Web App Firewall dem Cookie das HttpOnly-Flag hinzu. Dieses Flag verhindert, dass Skripts auf den Cookie zugreifen und diese analysieren. Das Flag verhindert daher, dass ein skriptbasierter Virus oder Trojaner auf ein entschlüsseltes Cookie zugreift und diese Informationen verwendet, um die Sicherheit zu verletzen. Dies erfolgt unabhängig von den Parametereinstellungen für hinzuzufügende Flags in Cookies, die unabhängig von den Parametereinstellungen für Server-Cookies verschlüsseln gehandhabt werden.
  • Proxyserver Cookies. Proxy für alle nicht persistenten (Sitzungs-) Cookies, die von Ihrem Webserver gesetzt wurden, mit Ausnahme der Cookies, die in der Entspannungsliste für die Prüfung der Cookies werden mithilfe des vorhandenen Web App Firewall-Sitzungscookies per Proxy übertragen. Die Web App Firewall entfernt Sitzungscookies, die vom geschützten Webserver gesetzt wurden, und speichert sie lokal, bevor die Antwort an den Client weitergeleitet wird. Wenn der Client eine nachfolgende Anfrage sendet, fügt die Web App Firewall die Sitzungscookies erneut in die Anforderung ein, bevor sie an den geschützten Webserver weitergeleitet werden. Geben Sie eine der folgenden Einstellungen an:
    • Ohne. Verwenden Sie keine Proxycookies. Die Standardeinstellung.
    • Nur Sitzung. Nur Proxysitzungscookies. Keine persistenten Cookies als Proxy verwenden Hinweis: Wenn Sie das Cookie-Proxy nach der Aktivierung deaktivieren (setzen Sie diesen Wert auf Keine, nachdem es auf Nur Sitzung gesetzt wurde), wird die Cookie-Proxying für Sitzungen beibehalten, die vor der Deaktivierung eingerichtet wurden. Sie können diese Funktion daher sicher deaktivieren, während die Web App Firewall Benutzersitzungen verarbeitet.
  • In Cookies hinzuzufügende Flags. Fügen Sie während der Transformation Flags zu Cookies hinzu. Geben Sie eine der folgenden Einstellungen an:
    • Ohne. Fügen Sie keine Flags zu Cookies hinzu. Die Standardeinstellung.
    • Nur HTTP. Füge das HttpOnly-Flag allen Cookies hinzu. Browser, die das HttpOnly-Flag unterstützen, erlauben Skripten keinen Zugriff auf Cookies, für die dieses Flag gesetzt ist
    • Sicher. Fügen Sie das Secure-Flag zu Cookies hinzu, die nur über eine SSL-Verbindung gesendet werden sollen. Browser, die das Secure Flag unterstützen, senden die markierten Cookies nicht über eine unsichere Verbindung.
    • Alles. Fügen Sie das HttpOnly-Flag zu allen Cookies und das Secure-Flag zu Cookies hinzu, die nur über eine SSL-Verbindung gesendet werden sollen.

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie die folgenden Befehle eingeben, um die Cookie-Konsistenzprüfung zu konfigurieren:

  • set appfw profile <name> -cookieConsistencyAction [**block**] [**learn**] [**log**] [**stats**] [**none**]
  • set appfw profile <name> -cookieTransforms ([**ON**] | [**OFF**])
  • set appfw profile <name> -cookieEncryption ([**none**] | [**decryptOnly**] | [**encryptSession**] | [**encryptAll**])
  • set appfw profile <name> -cookieProxying ([**none**] | [**sessionOnly**])
  • set appfw profile <name> -addCookieFlags ([**none**] | [**httpOnly**] | [**secure**] | [**all**])

Um Relaxationen für die Cookie-Konsistenzprüfung festzulegen, müssen Sie die GUI verwenden. Klicken Sie auf der Registerkarte Checks des Dialogfelds Cookie-Konsistenzprüfung ändern auf Hinzufügen, um das Dialogfeld Cookie-Konsistenzprüfung hinzufügen zu öffnen, oder wählen Sie eine vorhandene Entspannung aus und klicken Sie auf Öffnen, um das Dialogfeld Entspannung der Cookie-Konsistenzprüfung ändern zu öffnen. Beide Dialogfelder bieten dieselben Optionen für die Konfiguration einer Entspannung.

Im Folgenden finden Sie Beispiele für die Lockerung der Cookie-Konsistenz:

  • Anmeldefelder. Der folgende Ausdruck befreit alle Cookie-Namen, die mit der Zeichenfolge logon_ beginnen, gefolgt von einer Reihe von Buchstaben oder Zahlen, die mindestens zwei Zeichen lang und nicht mehr als fünfzehn Zeichen lang ist:

     ^logon_[0-9A-Za-z]{2,15}$
     <!--NeedCopy-->
    
  • Anmeldefelder (Sonderzeichen). Der folgende Ausdruck schließt alle Cookie-Namen aus, die mit der Zeichenfolge türkçe-logon_ beginnen, gefolgt von einer Reihe von Buchstaben oder Zahlen, die mindestens zwei Zeichen lang und nicht mehr als fünfzehn Zeichen lang ist:

     ^txC3xBCrkxC3xA7e-logon_[0-9A-Za-z]{2,15}$
     <!--NeedCopy-->
    
  • Beliebige Zeichenfolgen. Erlauben Sie Cookies, die die Zeichenfolge sc-item_enthalten, gefolgt von der ID eines Artikels, den der Benutzer seinem Warenkorb hinzugefügt hat ([0-9a-Za-Z]+), einem zweiten Unterstrich (_) und schließlich der Anzahl dieser Artikel, die er möchte ([1-9][0-9]?) , um vom Benutzer modifizierbar zu sein:

     ^sc-item_[0-9A-Za-z]+_[1-9][0-9]?$
     <!--NeedCopy-->
    

Achtung: 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 sonst nichts. Die unvorsichtige Verwendung von Wildcards und insbesondere der Punkt-Sternchen-Kombination (.*) kann zu Ergebnissen führen, die Sie nicht wollen oder erwarten, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten oder einen Angriff zulassen, den die Cookie-Konsistenzprüfung anderweitig hätte geblockt.

Wichtig

In Version 10.5.e (in einigen vorläufigen Erweiterungs-Builds vor dem Build von 59.13xx.e) sowie in der Version 11.0 (in Builds vor 65.x) wurde die Verarbeitung des Cookie-Headers durch die Web App Firewall geändert. In diesen Versionen wird jedes Cookie einzeln ausgewertet, und wenn die Länge eines im Cookie-Header empfangenen Cookies die konfigurierte bufferOverflowMaxCookieLength überschreitet, wird die Pufferüberlaufverletzung ausgelöst. Infolge dieser Änderung sind Anforderungen, die in 10.5 und früheren Release-Builds blockiert wurden, möglicherweise zulässig, da die Länge des gesamten Cookie-Headers nicht für die Bestimmung der Cookie-Länge berechnet wird. In einigen Situationen kann die gesamte Cookie-Größe, die an den Server weitergeleitet wird, größer als der akzeptierte Wert sein, und der Server antwortet möglicherweise mit “400 Bad Request”.

Beachten Sie, dass diese Änderung rückgängig gemacht wurde. Das Verhalten in 10.5.e ->59.13xx.e und nachfolgenden 10.5.e-Erweiterungs-Builds sowie in Version 11.0 65.x und nachfolgenden Builds ähnelt nun dem der Builds ohne Erweiterung von Version 10.5. Der gesamte rohe Cookie-Header wird jetzt bei der Berechnung der Länge des Cookies berücksichtigt. Umgebende Räume und die Semikolon-Zeichen (;), die die Name-Wert-Paare trennen, werden ebenfalls bei der Bestimmung der Cookie-Länge berücksichtigt.**

Hinweis

Cookie-Konsistenz ohne Sitzung: Das Cookie-Konsistenzverhalten hat sich in Version 11.0 geändert. In früheren Versionen ruft die Cookie-Konsistenzprüfung die Sitzungserstellung auf. Die Cookies werden in der Sitzung gespeichert und signiert. Ein “wlt_” -Suffix wird an vorübergehende Cookies angehängt und ein Suffix “wlf_” wird an die persistenten Cookies angehängt, bevor sie an den Client weitergeleitet werden. Selbst wenn der Client diese signierten WLF/WLT-Cookies nicht zurückgibt, verwendet die Web App Firewall die in der Sitzung gespeicherten Cookies, um die Cookie-Konsistenzprüfung durchzuführen.

In Version 11.0 ist die Cookie-Konsistenzprüfung sitzungslos. Die Web App Firewall fügt jetzt ein Cookie hinzu, das ein Hash aller von der Web App Firewall verfolgten Cookies ist. Wenn dieses Hash-Cookie oder ein anderes nachverfolgtes Cookie fehlt oder manipuliert wird, entfernt die Web App Firewall die Cookies, bevor sie die Anfrage an den Backend-Server weiterleitet, und löst eine Verletzung der Cookie-Konsistenz aus. Der Server behandelt die Anfrage als neue Anfrage und sendet neue Set-Cookie-Header. Die Cookie-Konsistenzprüfung in Citrix ADC Version 13.0, 12.1 und NetScaler 12.0 und 11.1 hat keine sitzungslose Option.

Überprüfung der Cookie-Konsistenz

In diesem Artikel