ADMIN

2025

02

2025-01-31T12:00:00

Endpunkt-Sicherheit

PRAXIS

052

Security-Tipp

Sicherheit

Cookies

Session Cookies als Ziel von Kriminellen

Griff in die Keksdose

von Dr. Matthias Wübbeling

Veröffentlicht in Ausgabe 02/2025 - PRAXIS

Cookies werden seit Beginn des Internets für die lokale Speicherung von Informationen genutzt. Auch Sitzungsdaten landen darüber mitunter auf der Festplatte der Benutzer. Kriminelle haben diese Cookies im Blick, um damit aktive Sitzungen von Benutzern ganz ohne Passwort oder zweiten Faktor zu umgehen. In unserem Security-Tipp beleuchten wir die Gefahren von Cookie-Daten in den falschen Händen.

In den Urzeiten des Internets galten JavaScript und Cookies als böse und gefährliche Konstrukte, die zur Ausführung von Code und dem geheimen Speichern von Trackinginformationen missbraucht werden. Benutzer, die Wert auf Sicherheit legten, haben JavaScript deaktiviert und Cookies mit nur wenigen Ausnahmen einfach verboten. Heutzutage sind beide Konzepte nicht mehr aus dem Internet wegzudenken. Responsive Webanwendungen sind mit umfassenden Bibliotheken innerhalb kurzer Zeit erstellt und verwenden APIs auf dem Server für die gesamte Kommunikation. Um die Benutzeraktivitäten abzusichern, kommen statische API-Keys, JSON Web Tokens (JWT) oder einfach sogenannte Session-Cookies, im Grunde dynamische API-Keys, zum Einsatz.
Session-Cookies sind kleine Informationseinheiten, die Webanwendungen dazu dienen, temporäre Informationen über die Sitzung eines Benutzers zu referenzieren. Sie ermöglichen es, den User während der Benutzung einer Website wiederzuerkennen, ohne dass er sich ständig neu authentifizieren muss. Typische Informationen einer Sitzung sind neben dem Anmeldestatus auch Warenkorbinhalte in Onlineshops oder Konfigurationen des Benutzers. Session-Cookies bilden also die Grundlage für Webanwendungen.
Üblicherweise lagern Session-Cookies im Speicher des Webbrowsers auf dem Endgerät des Nutzers. Anzeigen lassen können Sie sich diese etwa mit den Entwicklertools, wie im Bild zu sehen. Anders als dauerhafte Cookies, die vom Browser auch auf der Festplatte gespeichert werden, müssen Session-Cookies eigentlich nur im Arbeitsspeicher des Browsers vorliegen. Diesen Speicherbereich erreichen Sie über das sessionStorage-API des Browsers. Die Informationen wären dann nur so lange verfügbar, wie der Browser geöffnet ist. Sobald der Nutzer das Browserfenster schließt, verschwinden die Daten automatisch. Dieses Verfahren ist also sicherer, da keine Daten dauerhaft auf dem Gerät verbleiben. Viele Anwendungen speichern ihre Datenkekse allerdings zusätzlich im lokalen Cookie-Speicher der Browser, damit sie auch in weiteren Fenstern derselben Anwendung zur Verfügung stehen.
In den Urzeiten des Internets galten JavaScript und Cookies als böse und gefährliche Konstrukte, die zur Ausführung von Code und dem geheimen Speichern von Trackinginformationen missbraucht werden. Benutzer, die Wert auf Sicherheit legten, haben JavaScript deaktiviert und Cookies mit nur wenigen Ausnahmen einfach verboten. Heutzutage sind beide Konzepte nicht mehr aus dem Internet wegzudenken. Responsive Webanwendungen sind mit umfassenden Bibliotheken innerhalb kurzer Zeit erstellt und verwenden APIs auf dem Server für die gesamte Kommunikation. Um die Benutzeraktivitäten abzusichern, kommen statische API-Keys, JSON Web Tokens (JWT) oder einfach sogenannte Session-Cookies, im Grunde dynamische API-Keys, zum Einsatz.
Session-Cookies sind kleine Informationseinheiten, die Webanwendungen dazu dienen, temporäre Informationen über die Sitzung eines Benutzers zu referenzieren. Sie ermöglichen es, den User während der Benutzung einer Website wiederzuerkennen, ohne dass er sich ständig neu authentifizieren muss. Typische Informationen einer Sitzung sind neben dem Anmeldestatus auch Warenkorbinhalte in Onlineshops oder Konfigurationen des Benutzers. Session-Cookies bilden also die Grundlage für Webanwendungen.
Üblicherweise lagern Session-Cookies im Speicher des Webbrowsers auf dem Endgerät des Nutzers. Anzeigen lassen können Sie sich diese etwa mit den Entwicklertools, wie im Bild zu sehen. Anders als dauerhafte Cookies, die vom Browser auch auf der Festplatte gespeichert werden, müssen Session-Cookies eigentlich nur im Arbeitsspeicher des Browsers vorliegen. Diesen Speicherbereich erreichen Sie über das sessionStorage-API des Browsers. Die Informationen wären dann nur so lange verfügbar, wie der Browser geöffnet ist. Sobald der Nutzer das Browserfenster schließt, verschwinden die Daten automatisch. Dieses Verfahren ist also sicherer, da keine Daten dauerhaft auf dem Gerät verbleiben. Viele Anwendungen speichern ihre Datenkekse allerdings zusätzlich im lokalen Cookie-Speicher der Browser, damit sie auch in weiteren Fenstern derselben Anwendung zur Verfügung stehen.
Dieses Speichern ist eigentlich kein Problem, solange die Gültigkeit auf die Dauer der Browsersitzung beschränkt ist. Mit JWT lassen sich Gültigkeitszeiten direkt im Token mit umsetzen. Ein automatischer Ablauf ist damit garantiert. Auch wenn Session-Cookies im Vergleich zu ihren dauerhaften Kollegen eher kurzlebiger Natur sind, da sie keine Daten über Sitzungen hinweg speichern müssen und sich auf die Dauer eines einzigen Webseitenbesuchs beschränken, hängt die Gültigkeit nicht nur von der Website im Browser ab.
Anzeige des lokalen Speichers einer Webanwendung im Entwicklermodus.
Ablaufdaten im Blick
Die Lebenszeit einer Session auf der Serverseite wird unabhängig von den tatsächlichen Session-Cookies im Browser durch die Serverkonfiguration der Webanwendung bestimmt. Eine Sitzung kann also auch nach dem Löschen des entsprechenden Cookies im Browser weiterbestehen, solange der Server den zugehörigen Session-Datensatz nicht als abgelaufen markiert. Die Dauer dieser Lebenszeit wird in der Regel durch einen Timeout-Wert definiert, den die Serverlogik festlegt. Typischerweise orientiert sich die Laufzeit an der Dauer einer üblichen Benutzersitzung, wird tendenziell aber eher länger gewählt beziehungsweise verlängert sich bei jeder Benutzung automatisch, um User nicht zu stören.
Die OWASP Foundation empfiehlt für Anwendungen mit hohen Sicherheitsanforderungen, etwa beim Onlinebanking, eine Lebensdauer von zwei bis fünf Minuten, für alle anderen Anwendungen beträgt der vorgeschlagene Timeout-Wert 15 bis 30 Minuten für einen Ablauf des Cookies bei Inaktivität [1]. Aber auch für die aktive Verwendung empfiehlt OWASP einen definierten Zeitpunkt zum Ablauf der Sitzung, ausgehend von einem üblichen Benutzungsalltag, im beruflichen Kontext also etwa alle vier bis acht Stunden. Warum das wichtig ist, erfahren Sie gleich.
Nach Ablauf dieser definierten Zeitspanne löscht der Server dann konsequent die Session oder macht sie ungültig – unabhängig vom Cookie im Webbrowser müsste sich der User dann neu anmelden. Aus Gründen der Benutzerfreundlichkeit setzen vor allem die großen Anbieter mitunter auf deutlich länger laufende Cookies. So sind diese bei Google, Facebook oder Amazon mitunter mehrere Monate gültig und werden als sogenannte Geräte-Cookies mit unterschiedlichen Werten auf unterschiedlichen Devices initialisiert. In der Geräte- oder Sitzungsübersichten können Sie als Benutzer dann Geräte ausloggen und Sitzungen explizit beenden.
Cookies in den falschen Händen
In den letzten Jahren ist die Zahl geleakter Logindaten von Benutzern nahezu explodiert. Immer mehr Anbieter von Webanwendungen bringen daher weitere Faktoren zur Authentifikation von Benutzern in Stellung. Der wohl bekannteste Mechanismus ist die Verwendung von Authenticator-Anwendungen wie Authy und des Authenticators von Google oder Microsoft. Damit wird im Rahmen der Authentisierung vom Benutzer zusätzlich zu E-Mail und Passwort auch das berechnete Token mit angegeben. Auch die (mitunter nicht immer korrekte) Verwendung von Passkeys als Ersatz für klassische Logindaten kann den Erfolg solcher Account-Takeover genannten Angriffe deutlich einschränken.
Umso interessanter sind die Session-Cookies für Kriminelle. Einmal im Besitz eines gültigen Cookies, lässt sich die authentifizierte Sitzung des Benutzers einfach auf dem Computer des Angreifers weiterführen. Es sind dann weder Logindaten noch MFA-Token oder Passkeys nötig, um den Account zu übernehmen. Kriminelle gelangen auf verschiedenen Wegen an die Session-Cookies. Häufig basieren die Methoden der Hacker auf Sicherheitslücken in den Webanwendungen und dem Verhalten der Anwender:
- Eine oft auch in Awareness-Schulungen kommunizierte Technik ist der sogenannte Man-in-the-Middle-Angriff, bei dem Angreifer den Datenverkehr in unsicheren Netzwerken, etwa dem öffentlichen WLAN in Hotels oder Cafés, abfangen kann. Da mittlerweile fast alle Webanwendungen über TLS abgesicherte Verbindungen verwenden, ist dieser Ansatz heute kaum noch erfolgreich.
- Eine weitere Methode ist als Cross-Site Scripting (XSS) bekannt. Schadcode wird dabei in eine Website eingeschleust, der, wenn er im Browser des Opfers läuft, die Session-Cookies auslesen und weitersenden kann. Social Engineering und Phishing kommen häufig zum Einsatz, um Benutzer dazu zu bringen, sensible Informationen preiszugeben, etwa die in einer URL enthaltene Session-ID.
- Ein perfider Angriff ist die Session Fixation. Ein Angreifer erzeugt dabei eine eigene Session in der Anwendung, meldet sich dort aber nicht an. Anschließend verbreitet er einen manipulierten Link, der die Session-ID dieser Sitzung in der URL enthält. Folgt ein Opfer diesem Link und meldet sich dann später bei der Webanwendung an, wird die Sitzung des Angreifers über die Session-ID in dem Moment in eine authentifizierte Session des Opfers umgewandelt.
Schadsoftware als Ursache
Immer wieder drängen in der letzten Zeit gestohlene Datensätze von Schadsoftware-Infektionen an die Öffentlichkeit. Das sind Daten, die direkt von den Computern der Benutzer stammen und mitunter Logindaten aber eben auch Session-Cookies enthalten. Benutzer infizieren ihren Computer versehentlich durch unsichere Downloads oder Webseiten mit Schadsoftware, die dann kontinuierlich die Aktionen und Eingaben des Benutzers mitschneidet. Die Inhalte der Passwortmanager sind dabei natürlich ein primäres Ziel der Angreifer. Mit dem Masterpasswort, das bei der Eingabe natürlich mitgelesen wird, hat ein Angreifer dann ohne große Umwege schnell viele Logindaten eines Opfers. Ist die Authentifikation aber wie oben beschrieben mit weiteren Faktoren abgesichert, kann er damit erst einmal wenig anfangen.
Angepasste Schadsoftware in Form eines sogenannten (Cookie-)Stealers ist darauf ausgelegt, neben den üblichen Benutzerdaten eben auch die Cookies direkt aus dem Browser auszulesen. Solange der Benutzer die Webanwendung aktiv verwendet, bleibt dann auch das Zeitfenster für die kriminellen Aktivitäten groß genug. Selbst das amerikanische FBI hat eine offizielle Warnung vor Account-Takeovers mit Session Cookies veröffentlicht [2]. Auch die Hersteller von Browsern und Webanwendungen arbeiten an entsprechenden Gegenmaßnahmen. Vor allem Google versucht hier durch eindeutige gerätespezifische Cookies die Verwendung auf fremden Computern weiter einzuschränken.
Fazit
Session-Cookies speichern Sitzungsinformationen von Webseiten und oft auch Infos über die erfolgte Authentifizierung des Benutzers. Das macht diese Cookies für Kriminelle interessant, denn mit ihrer Hilfe lässt sich auch eine Multifaktor-Authentifizierung umgehen. Daher ist hier besondere Vorsicht geboten.
(dr)
Link-Codes