Citrix ADC

Cookie-Konsistenzprüfung

Die Cookie-Konsistenzprüfung prüft die von den Benutzern zurückgegebenen Cookies, 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 von der Anforderung entfernt, bevor die Anforderung an den Webserver weitergeleitet wird. Sie können die Cookie-Konsistenzprüfung auch so konfigurieren, dass alle von ihm verarbeiteten Server-Cookies transformiert werden, indem Sie die Cookies verschlüsseln, die Cookies über Proxy zu verarbeiten oder Flags zu den Cookies hinzufügen. Diese Prüfung gilt für Anfragen und Antworten.

Ein Angreifer würde normalerweise ein Cookie ändern, um Zugriff auf vertrauliche private Informationen zu erhalten, indem er sich als zuvor authentifizierter Benutzer posiert oder einen Pufferüberlauf verursacht. Die Pufferüberlaufprüfung schützt vor Versuchen, einen Pufferüberlauf zu verursachen, indem ein sehr 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
  • Lernen
  • Statistik
  • Transformieren. Wenn diese Option aktiviert ist, ändert die Aktion Transformieren alle Cookies wie in den folgenden Einstellungen angegeben:
    • Verschlüsseln Sie Server-Cookies. Verschlüsseln Sie Cookies, die von Ihrem Webserver festgelegt wurden, mit Ausnahme der in der Liste Cookie Consistency Check 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 Anforderung eingefügt, bevor sie an den geschützten Webserver weitergeleitet werden. Geben Sie einen der folgenden Verschlüsselungstypen an:
      • Keine. Verschlüsseln oder entschlüsseln Sie Cookies nicht. Der Standardwert.
      • Nur entschlüsseln. Entschlüsseln Sie nur verschlüsselte Cookies. Verschlüsseln Sie keine Cookies.
      • Nur Sitzung verschlüsseln. Verschlüsseln Sie nur Session-Cookies. Verschlüsseln Sie keine persistenten Cookies. Verschlüsselte Cookies entschlüsseln.
      • Verschlüsseln Sie alle. Verschlüsseln Sie sowohl Sitzungs- als auch persistente Cookies. Verschlüsselte Cookies entschlüsseln. Hinweis: Beim Verschlüsseln von Cookies fügt die Web App Firewall dem Cookie das HttpOnly-Flaghinzu. Dieses Flag verhindert, dass Skripte auf den Cookie zugreifen und diese analysieren. Das Flag verhindert daher, dass ein skriptbasierter Virus oder Trojaner auf ein entschlüsseltes Cookie zugreifen und diese Informationen verwenden, um die Sicherheit zu verletzen. Dies geschieht unabhängig von den Parametereinstellungen Flags to Add in Cookies, die unabhängig von den Parametereinstellungen Encrypt Server Cookies behandelt werden.
  • Proxy-Server-Cookies. Proxy alle nicht persistenten (Sitzungs-) Cookies, die von Ihrem Webserver gesetzt werden, mit Ausnahme der in der Cookie-Konsistenzliste aufgeführten Cookies. Cookies werden mithilfe des vorhandenen Sitzungscookies der Web App Firewall proxiert. Die Web App Firewall entfernt vom geschützten Webserver gesetzte Session-Cookies und speichert diese lokal, bevor die Antwort an den Client weitergeleitet wird. Wenn der Client eine nachfolgende Anforderung sendet, setzt die Web App Firewall die Session-Cookies wieder in die Anforderung ein, bevor sie an den geschützten Webserver weitergeleitet wird. Geben Sie eine der folgenden Einstellungen an:
    • Keine. Proxy Cookies nicht. Der Standardwert.
    • Nur Sitzung. Nur Proxy-Sitzungs-Cookies. Persistente Cookies nicht per Proxy verarbeiten Hinweis: Wenn Sie das Cookie-Proxying deaktivieren, nachdem Sie es aktiviert haben (setzen Sie diesen Wert auf Keine, nachdem er auf Session 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.
  • Flags, die in Cookies hinzugefügt werden sollen. Fügen Sie Flags zu Cookies während der Transformation hinzu. Geben Sie eine der folgenden Einstellungen an:
    • Keine. Fügen Sie keine Flags zu Cookies hinzu. Der Standardwert.
    • Nur HTTP. Fügen Sie das HttpOnly-Flag zu allen Cookies hinzu. Browser, die das HttpOnly-Flag unterstützen, erlauben Skripts nicht, auf Cookies zuzugreifen, für die dieses Flag festgelegt ist.
    • Sichern. 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 gekennzeichneten Cookies nicht über eine unsichere Verbindung.
    • Alles. Fügen Sie allen Cookies das HttpOnly-Flag hinzu und das Secure Flag zu Cookies, 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 Prüfungen 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 Cookie-Konsistenzprüfung ändern zu öffnen. Beide Dialogfelder bieten die gleichen Optionen für die Konfiguration einer Entspannung.

Im Folgenden finden Sie Beispiele für die Cookie-Konsistenzprüfung:

  • Anmeldefelder. Der folgende Ausdruck befreit alle Cookie-Namen, die mit der Zeichenfolge logon_ beginnen, gefolgt von einer Zeichenfolge aus Buchstaben oder Zahlen, die mindestens zwei Zeichen lang und höchstens fünfzehn Zeichen lang sind:

     ^logon_[0-9A-Za-z]{2,15}$
    
  • Anmeldefelder (Sonderzeichen). Der folgende Ausdruck befreit alle Cookie-Namen, die mit der Zeichenfolge türkçe-logon_ beginnen, gefolgt von einer Zeichenfolge aus Buchstaben oder Zahlen, die mindestens zwei Zeichen lang und höchstens fünfzehn Zeichen lang sind:

     ^txC3xBCrkxC3xA7e-logon_[0-9A-Za-z]{2,15}$
    
  • Beliebige Zeichenfolgen. Cookies zulassen, die die Zeichenfolge sc-item_ enthalten, gefolgt von der ID eines Artikels, den der Benutzer in seinen Warenkorb gelegt hat ([0-9A-Za-z]+), einem zweiten Unterstrich (_) und schließlich der Anzahl dieser Artikel, die er will ([1-9][0-9]?), um vom Benutzer modifizierbar zu sein:

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

Achtung: Reguläre Ausdrücke sind leistungsstark. Vor allem, 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 Kombination mit Punkt und Sternchen (.*) mit Metazeichen und Platzhaltern kann zu Ergebnissen führen, die Sie nicht erwarten oder erwarten, wie zum Beispiel das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten oder einen Angriff zulassen, den die Cookie-Konsistenzprüfung ansonsten hätte blockiert.

Wichtig

In Release 10.5.e (in einigen Interimbuilds mit Erweiterungen vor 59.13xx.e Build) sowie in 11.0 (in Builds vor 65.x) wurde die Verarbeitung des Cookie-Headers von 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 können Anfragen, die in 10.5 und früheren Versionen blockiert wurden, zulässig sein, 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 an den Server weitergeleitete Cookie-Größe größer sein als der akzeptierte Wert, und der Server reagiert möglicherweise mit “400 Bad Request”.

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

Hinweis:

Sitzungslose Cookie-Konsistenz: Das Cookie-Konsistenzverhalten hat sich in Release 11.0 geändert. In früheren Versionen ruft die Cookie-Konsistenzprüfung Sitzungen auf. Die Cookies werden in der Sitzung gespeichert und signiert. Ein wlt_ Suffix wird an transiente Cookies angehängt und ein wlf_ Suffix wird an die dauerhaften 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 Release 11.0 ist die Cookie-Konsistenzprüfung sitzungslos. Die Web App Firewall fügt nun ein Cookie hinzu, das ein Hash aller Cookies ist, die von der Web App Firewall verfolgt werden. Wenn dieses Hash-Cookie oder ein anderes verfolgtes Cookie fehlt oder manipuliert wird, entfernt die Web App Firewall die Cookies, bevor die Anforderung an den Back-End-Server weitergeleitet wird und löst eine Cookie-Konsistenzverletzung aus. Der Server behandelt die Anfrage als neue Anforderung 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.

Cookie-Konsistenzprüfung