Citrix ADC

Cookie-Hijacking Schutz

Cookie-Hijacking Schutz mildert Cookie-Diebstahl-Angriffe von Hackern. Bei dem Sicherheitsangriff übernimmt ein Angreifer eine Benutzersitzung, um unbefugten Zugriff auf eine Webanwendung zu erhalten. Wenn ein Benutzer eine Website durchsucht, z. B. Banking-Anwendung, richtet die Website eine Sitzung mit dem Browser ein. Während der Sitzung speichert die Anwendung die Benutzerdaten wie Anmeldeinformationen, Seitenbesuche in einer Cookie-Datei. Die Cookie-Datei wird dann in der Antwort an den Client-Browser gesendet. Der Browser speichert die Cookies, um aktive Sitzungen aufrechtzuerhalten. Der Angreifer kann diese Cookies entweder manuell aus dem Cookie-Speicher des Browsers oder über eine Rouge Browser-Erweiterung stehlen. Der Angreifer verwendet diese Cookies, um Zugriff auf die Webanwendungssitzungen des Benutzers zu erhalten.

Zur Abwehr von Cookie-Angriffen stellt die Citrix ADC Web App Firewall (WAF) die TLS-Verbindung vom Client zusammen mit der Validierung der WAF-Cookie-Konsistenzvalidierung heraus. Für jede neue Clientanforderung validiert die Appliance die TLS-Verbindung und überprüft auch die Konsistenz von Anwendungs- und Sitzungscookie in der Anforderung. Wenn ein Angreifer versucht, Anwendungscookies und Sitzungscookies, die vom Opfer gestohlen wurden, zu mischen und abzugleichen, schlägt die Validierung der Cookie-Konsistenz fehl, und die konfigurierte Cookie-Hijack-Aktion wird angewendet. Weitere Informationen zur Konsistenz von Cookies finden Sie unter Cookie-Konsistenzprüfung Thema.

Hinweis:

Die Cookie-Hijacking Funktion unterstützt Protokollierung und SNMP-Traps. Weitere Informationen zur Protokollierung finden Sie unter ADM-Thema und weitere Informationen zur SNMP-Konfiguration unter SNMP-Thema.

Einschränkungen

  • JavaScript muss im Client-Browser aktiviert sein.
  • Der Cookie-Hijacking Schutz wird auf TLS Version 1.3 nicht unterstützt.

In den folgenden Szenarien wird erläutert, wie der Cookie-Hijacking-Schutz in einer Citrix ADC Appliance funktioniert.

Cookie-Hijacking Angriff Anwendungsfall 1: Benutzerzugriff ohne Session-Cookie

  1. Der Benutzer versucht, sich bei einer Webanwendung zu authentifizieren und beginnt ohne ADC-Sitzungscookie in der Anfrage auf die erste Webseite zuzugreifen.
  2. Wenn die Anforderung empfangen wird, erstellt die Appliance eine Application Firewall-Sitzung mit einer Sitzungs-Cookie-ID.
  3. Dadurch wird eine TLS-Verbindung für die Sitzung initiiert. Da das JavaScript nicht im Clientbrowser gesendet und ausgeführt wird, markiert die Appliance die TLS-Verbindung als validiert, und es ist keine Herausforderung erforderlich.

Hinweis:

Selbst wenn ein Angreifer versucht, alle App-Cookie-IDs von einem Opfer zu senden, ohne das Sitzungscookie zu senden, erkennt die Appliance das Problem und entfernt alle App-Cookies in der Anfrage, bevor sie die Anforderung an den Back-End-Server weiterleitet. Der Back-End-Server betrachtet diese Anfrage ohne App-Cookie und nimmt entsprechend seiner Konfiguration notwendig.

  1. Wenn der Backend-Server eine Antwort sendet, empfängt die Appliance die Antwort und leitet sie mit einem JavaScript-Sitzungstoken und einem Seed-Cookie weiter. Die Appliance markiert dann die TLS-Verbindung als verifiziert.
  2. Wenn der Client-Browser die Antwort empfängt, führt der Browser das JavaScript aus und generiert eine morphierte Cookie-ID mit dem Sitzungstoken und dem Seed-Cookie.
  3. Wenn ein Benutzer eine nachfolgende Anforderung über die TLS-Verbindung sendet, umgeht die Appliance die morphierte Cookie-Validierung. Dies liegt daran, dass die TLS-Verbindung bereits validiert ist.

Cookie-Hijacking Angriff Anwendungsfall 2: Benutzerzugriff über neue TLS mit Session-Cookie

  1. Wenn ein Benutzer eine HTTP-Anforderung für aufeinanderfolgende Seiten über eine neue TLS-Verbindung sendet, sendet der Browser die Session-Cookie-ID und die morphierte Cookie-ID.
  2. Da es sich um eine neue TLS-Verbindung handelt, erkennt die Appliance die TLS-Verbindung und fordert den Client mit einer Redirect-Antwort mit Seed-Cookie heraus.
  3. Der Client berechnet nach Erhalt der Antwort vom ADC das morphierte Cookie mit dem Token der Sitzung und dem neuen Seed-Cookie.
  4. Der Client sendet dann dieses neu berechnete morphed Cookie zusammen mit einer Session-ID.
  5. Wenn das morphierte Cookie, das innerhalb der ADC-Appliance berechnet wird und das über die Anforderung gesendete Cookie übereinstimmt, wird die TLS-Verbindung als verifiziert markiert.
  6. Wenn sich das berechnete morphierte Cookie von dem in der Clientanforderung vorhandenen Cookie unterscheidet, schlägt die Validierung fehl. Danach sendet die Appliance die Herausforderung an den Client zurück, um ein ordnungsgemäßes morphes Cookie zu senden.

Szenario 3: Angreifer, die sich als nicht authentifizierter Benutzer ausgeben

Cookie-Hijacking Angriff Anwendungsfall 3: Angreifer imitiert sich als nicht authentifizierter Benutzer

  1. Wenn sich ein Benutzer bei der Webanwendung authentifiziert, verwendet der Angreifer verschiedene Techniken, um die Cookies zu stehlen und sie wiederzugeben.
  2. Da es sich um eine neue TLS-Verbindung des Angreifers handelt, sendet der ADC eine Umleitungsherausforderung zusammen mit einem neuen Seed-Cookie.
  3. Da der Angreifer kein JavaScript ausgeführt hat, enthält die Antwort des Angreifers für die umgeleitete Anfrage nicht das morphierte Cookie.
  4. Dies führt zu einem morphierten Cookie-Validierungsfehler auf der ADC-Appliance-Seite. Die Appliance sendet erneut eine Umleitungsabfrage an den Client.
  5. Wenn die Anzahl der morphierten Cookie-Validierungsversuche den Schwellenwert überschreitet, kennzeichnet die Appliance den Status als Cookie-Hijacking.
  6. Wenn der Angreifer versucht, Anwendungscookies und Sitzungscookies zu mischen, die vom Opfer gestohlen wurden, schlägt die Cookie-Konsistenzprüfung fehl, und die Appliance wendet die konfigurierte Cookie-Hijack-Aktion an.

Szenario 4: Angreifer, die sich als authentifizierter Benutzer ausgeben

Cookie-Hijacking Angriff Anwendungsfall 4: Angreifer imitiert sich als authentifizierter Benutzer

  1. Angreifer können auch versuchen, sich bei einer Webanwendung als echter Benutzer zu authentifizieren und die Cookies des Opfers wiederzugeben, um Zugriff auf die Web-Sitzung zu erhalten.
  2. Die ADC-Appliance erkennt auch solche verkörperten Angreifer. Obwohl eine verifizierte TLS-Verbindung vom Angreifer verwendet wird, um das Cookie eines Opfers wiederzugeben, überprüft die ADC-Appliance dennoch, ob das Sitzungscookie und das Anwendungscookie in der Anforderung konsistent sind. Die Appliance überprüft die Konsistenz eines Anwendungs-Cookie mithilfe des Sitzungscookie in der Anforderung. Da die Anforderung das Sitzungscookie eines Angreifers und das App-Cookie eines Opfers enthält, schlägt die Validierung der Cookie Konsistenz fehl.
  3. Infolgedessen wendet die Appliance die konfigurierte Cookie-Hijack-Aktion an. Wenn die konfigurierte Aktion als “blockieren” festgelegt ist, entfernt die Appliance alle Anwendungscookies und sendet die Anfrage an den Back-End-Server.
  4. Der Back-End-Server empfängt eine Anfrage ohne Anwendungscookie und reagiert daher auf eine Fehlerantwort an den Angreifer, z. B. “Benutzer nicht angemeldet”.

Sie können ein bestimmtes Anwendungs-Firewall-Profil auswählen und eine oder mehrere Aktionen festlegen, die Cookie-Hijacking verhindern.

Geben Sie an der Eingabeaufforderung Folgendes ein:

set appfw profile <name> [-cookieHijackingAction <action-name> <block | log | stats | none>]

Hinweis:

Standardmäßig ist die Aktion auf “none” gesetzt.

Beispiel:

set appfw profile profile1 - cookieHijackingAction Block

Wo sind Aktionstypen:

Blockieren: Blockieren Sie Verbindungen, die gegen diese Sicherheitsprüfung verstoßen. Log: Protokollieren Sie Verstöße gegen diese Sicherheitsprüfung. Statistiken: Generieren Sie Statistiken für diese Sicherheitsprüfung. Keine: Deaktivieren Sie alle Aktionen für diese Sicherheitsprüfung.

  1. Navigieren Sie zu Sicherheit > Citrix Web App Firewall > Profile.
  2. Wählen Sie auf der Seite Profile ein Profil aus, und klicken Sie auf Bearbeiten.
  3. Wechseln Sie auf der Seite Citrix Web App Firewall Profil zum Abschnitt Erweiterte Einstellungen und klicken Sie auf Sicherheitsprüfungen.

Konfigurieren von Cookie-Hijack auf der Citrix ADC GUI

  1. Wählen Sie im Abschnitt Sicherheitsüberprüfungen die Option Cookie-Hijacking aus, und klicken Sie dann auf Aktionseinstellungen.
  2. Wählen Sie auf der Seite Cookie-Hijacking Einstellungen eine oder mehrere Aktionen aus, um Cookie-Hijacking zu verhindern.
  3. Klicken Sie auf OK.

Konfigurieren von Cookie-Hijack-Einstellungen auf der Citrix ADC GUI

Um False Positives bei der Validierung der Cookie-Konsistenz zu behandeln, können Sie eine Relaxationsregel für Cookies hinzufügen, die von der Cookie-Validierung ausgenommen werden können.

  1. Navigieren Sie zu Sicherheit > Citrix Web App Firewall > Profile.
  2. Wählen Sie auf der Seite Profile ein Profil aus, und klicken Sie auf Bearbeiten.
  3. Wechseln Sie auf der Seite Citrix Web App Firewall Profil zum Abschnitt Erweiterte Einstellungen und klicken Sie auf Relaxationsregeln.
  4. Wählen Sie im Abschnitt Relaxationsregeln die Option Cookie-Konsistenz aus, und klicken Sie auf Aktion.

  5. Legen Sie auf der Seite Cookie Consistency Relax-Regel die folgenden Parameter fest.
    1. Aktiviert Wählen Sie diese Option aus, wenn Sie die Entspannungsregel aktivieren möchten.
    2. Ist Cookie-Name Regex. Wählen Sie aus, ob der Cookie-Name ein regulärer Ausdruck ist.
    3. Cookie-Name. Geben Sie den Namen des Cookies ein, das von der Cookie-Validierung ausgenommen werden kann.
    4. Regex-Editor. Klicken Sie auf diese Option, um die Details des regulären Ausdrucks anzugeben.
    5. Bemerkungen. Eine kurze Beschreibung über den Cookie.
  6. Klicken Sie auf Erstellen und Schließen.

Zeigen Sie Sicherheitsdatenverkehr und Sicherheitsverletzungen in einem tabellarischen oder grafischen Format an.

So zeigen Sie Sicherheitsstatistiken an:

Geben Sie an der Eingabeaufforderung Folgendes ein:

stat appfw profile profile1

Appfw-Profil Traffic Statistics Rate (/s) Gesamt
Anforderungen 0 0
Bytes anfordern 0 0
Antworten 0 0
Antwort-Bytes 0 0
Bricht ab 0 0
Weiterleitungen 0 0
Langzeit-Antwortzeit (ms) 0
Letzte Ave Reaktionszeit (ms) 0
HTML/XML/JSON-Verstoßstatistik Rate (/s) Gesamt
Start-URL 0 0
URL verweigern 0 0
Referer-Kopfzeile 0 0
Pufferüberlauf 0 0
Cookie-Konsistenz 0 0
Cookie-Hijacking 0 0
CSRF-Formular-Tag 0 0
HTML-Site-übergreifendes Skripting 0 0
HTML-SQL-Injektion 0 0
Feld-Format 0 0
Feldkonsistenz 0 0
Kreditkarte 0 0
Sicheres Objekt 0 0
Verletzungen der Signatur 0 0
Inhaltstyp 0 0
JSON Denial of Service 0 0
JSON SQL-Injection 0 0
JSON Cross-Site Scripting 0 0
Datei-Upload-Typen 0 0
XML-Payload des Inhaltstyps ableiten 0 0
HTML-CMD-Einspritzung 0 0
XML-Format 0 0
XML-Denial-of-Service (XDoS) 0 0
XML-Nachrichtenüberprüfung 0 0
Interoperabilität von Webdiensten 0 0
XML SQL Injection 0 0
XML-Site-übergreifendes Skripting 0 0
XML-Anhang 0 0
SOAP-Fehlerverletzungen 0 0
Allgemeine XML-Verstöße 0 0
Verstöße insgesamt 0 0
HTML/XML/JSON-Protokollstatistik Rate (/s) Gesamt
URL-Protokolle starten 0 0
URL-Protokolle verweigern 0 0
Referer-Header-Protokolle 0 0
Pufferüberlaufprotokolle 0 0
Pufferüberlaufprotokolle 0 0
Cookie-Konsistenzprotokolle 0 0
Cookie-Hijacking Protokolle 0 0
CSRF-Formular-Tag-Protokolle 0 0
HTML XSS-Protokolle 0 0
HTML XSS Transformationsprotokolle 0 0
HTML SQL Injection-Protokolle 0 0
HTML-SQL-Transformationsprotokolle 0 0
Feldformatprotokolle 0 0
Konsistenzprotokolle für Felder 0 0
Kreditkarten 0 0
Transformationsprotokolle für Kreditkarten 0 0
Sichere Objektprotokolle 0 0
Signatur-Protokolle 0 0
Inhaltstyp-Protokolle 0 0
JSON Denial-of-Service-Protokolle 0 0
JSON-SQL-Injektionsprotokolle 0 0
JSON-Site-Cross-Site-Skripting-Protokolle 0 0
Datei-Upload-Typen Protokolle 0 0
Ableiten des Inhaltstyps XML Payload L 0 0
HTML Command Injection Protokolle 0 0
Protokolle im XML-Format 0 0
XML Denial-of-Service-Protokolle (XDoS) 0 0
XML-Nachrichtenüberprüfungsprotokolle 0 0
WSI-Protokolle 0 0
XML SQL Injection-Protokolle 0 0
XML XSS Protokolle 0 0
XML-Anhangs-Protokolle 0 0
SOAP-Fehlerprotokolle 0 0
Generische XML-Protokolle 0 0
Log-Meldungen insgesamt 0 0
Statistiken zur Serverfehlerantwort Rate (/s) Gesamt
HTTP-Client-Fehler (4xx Resp) 0 0
HTTP-Serverfehler (5xx) 0 0
  1. Navigieren Sie zu Sicherheit > Citrix Web App Firewall > Profile.
  2. Wählen Sie im Detailbereich ein Web App Firewall Profil aus, und klicken Sie auf Statistik.
  3. Auf der Seite Statistiken der Citrix Web App Firewall werden die Details zum Cookie-Hijacking und zu Verstößen angezeigt.
  4. Sie können Tabellarische Ansicht auswählen oder zu Graphische Ansicht wechseln, um die Daten in einem tabellarischen oder grafischen Format anzuzeigen.

Cookie-Hijacking Verstöße auf Citrix ADC GUI