Was ist Sitzungsentführung?
Veröffentlicht: 2023-04-27Session Hijacking ist eine Art Cyberangriff, über den Besitzer von WordPress-Sites Bescheid wissen müssen. Auch als TCP-Session-Hijacking bekannt, lässt Session-Hijacking Angreifer wie ordnungsgemäß angemeldete Benutzer aussehen. Der Angreifer übernimmt eine Benutzersitzung, indem er seine Sitzungs-ID ohne das Wissen oder die Erlaubnis des gültigen Benutzers erhält. Nachdem ein Angreifer die Sitzungs-ID eines Benutzers gestohlen hat, kann er sich als Zielbenutzer ausgeben. Der Angreifer kann alles tun, was der autorisierte Benutzer tun kann, nachdem sich der autorisierte Benutzer beim selben System angemeldet hat.
Eines der schlimmsten Dinge, die Hacker mit einer gekaperten Sitzung tun können, ist, sich ohne Authentifizierung Zugriff auf eine Webanwendung oder Serversteuerung zu verschaffen. Wenn ein Angreifer die Sitzung eines Benutzers kapert, muss er sich nicht authentifizieren, solange die Sitzung aktiv ist. Die Anwendung, die die Sitzung generiert hat, hält sie für den authentifizierten Benutzer, dessen Sitzung sie entführt haben.
Mit anderen Worten, der Hacker genießt denselben Zugriff wie der Benutzer, den er kompromittiert hat. Da der legitime Benutzer seine Sitzung bereits vor dem Angriff authentifiziert hat, kann ein Angreifer bei einer erfolgreichen Entführung die Authentifizierung vollständig umgehen.
In diesem Leitfaden tauchen wir in die Details des Session-Hijacking ein. Wir zeigen Ihnen genau, was Sie tun müssen, um zu verhindern, dass dies auf Ihrer WordPress-Site passiert.
Was genau ist eine Sitzung?
Eine Sitzung ist einfach eine Reihe von Interaktionen zwischen Kommunikationsendpunkten, die während einer einzelnen HTTP-Verbindung auftreten.
Das Hypertext Transfer Protocol (HTTP) ist grundlegend für das Web. Damit können Sie Hypertext-Links verwenden und Webseiten laden. HTTP ist auch ein Protokoll der Anwendungsschicht zum Übertragen von Informationen zwischen Geräten in einem Netzwerk.
Ein Schlüsselmerkmal von HTTP ist, dass es „zustandslos“ ist. Das bedeutet, dass keine Daten über Clients (wie Sie und Ihr Browser) gespeichert werden, die eine Sitzung mit einer Website öffnen. Jede Sitzung ist komplett neu. HTTP speichert keine Daten über Benutzer aus ihren vorherigen Sitzungen.
Umgang mit Staatenlosigkeit
Webanwendungen wie WordPress müssen den Status zwischen mehreren Verbindungen von denselben und verschiedenen Benutzern verfolgen. Es muss die Sitzung jedes Benutzers identifizieren, sobald er sich angemeldet hat – möglicherweise auf mehr als einem Gerät oder Browser.
Wenn sich ein Benutzer bei einer Anwendung wie WordPress anmeldet, erstellt der Server eine Sitzung. Die Sitzung behält den „Zustand“ der Verbindung für den Benutzer bei, indem Parameter gespeichert werden, die für ihn eindeutig sind. Sitzungen werden auf dem Server für den gesamten Zeitraum, in dem ein Benutzer bei der Anwendung angemeldet ist, am Leben erhalten.
Eine Sitzung endet, wenn sich ein Benutzer vom System abmeldet oder nach einem vordefinierten Zeitraum ohne Aktivität. Wenn eine Benutzersitzung endet, sollte die Anwendung ihre Daten aus dem Speicher des Servers löschen.
Sitzungskennungen
Sitzungs-IDs (oder „Schlüssel“ oder „Token“) sind die eindeutigen Sitzungskennungen. Typischerweise handelt es sich um lange, zufällige alphanumerische Zeichenfolgen, die Server und Client einander übermitteln. Die authentifizierende Anwendung speichert normalerweise Sitzungs-IDs in URLs, Cookies oder versteckten Feldern auf Webseiten.
Während Sitzungs-IDs nützlich sind, um den Status in einem zustandslosen System aufrechtzuerhalten, bergen sie auch einige potenzielle Sicherheitsrisiken. Wenn wir beispielsweise die Algorithmen verstehen, die Sitzungs-IDs für eine Webanwendung generieren, können wir sie selbst generieren. Wenn die Webanwendung keine SSL-Verschlüsselung verwendet, um HTTP als HTTPS zu verschlüsseln, überträgt sie Sitzungs-IDs im Klartext. In einem öffentlichen Netzwerk kann jeder unverschlüsselte Verbindungen abhören und Sitzungs-IDs stehlen.
Wie genau funktioniert Session Hijacking in der Praxis?
Ein erfolgreicher Session-Hijack-Angriff ist extrem heimlich. Sie werden normalerweise in stark ausgelasteten Netzwerken mit vielen aktiven Kommunikationssitzungen durchgeführt.
Einige der häufigsten Formen des Session-Hijacking verwenden:
- Vorhersagbare Sitzungstoken-IDs
- Sitzungsschnüffeln
- Session-Sidejacking
- Man-in-the-Browser-Malware
- Cross-Site-Scripting
- Sitzungsfixierung
Sehen wir uns jeden dieser Bedrohungsvektoren einzeln an.
Vorhersagbare Sitzungstoken-IDs
Viele Webserver verwenden benutzerdefinierte Algorithmen oder vordefinierte Muster, um ihre Sitzungs-IDs zu generieren. Je größer die allgemeine Vorhersagbarkeit eines eindeutigen Sitzungstokens ist, desto schwächer ist es.
Und desto einfacher ist es für einen Hacker vorherzusagen.
Sitzungsschnüffeln
Session Sniffing ist eine der einfachsten und grundlegendsten Methoden, die Hacker für das Hijacking von Sitzungen auf Anwendungsebene verwenden.
Ein Angreifer verwendet einen Paketschnüffler wie Wireshark oder einen Proxy wie OWASP Zed, um den Netzwerkverkehr zu erfassen. Wenn dieser Datenverkehr unverschlüsselte Sitzungs-IDs für Verbindungen zwischen Clients und einer Website enthält, können die IDs gestohlen werden. Hacker können die gültige ID oder das Token verwenden, um sich schnell unbefugten Zugriff auf die Website und die Konten ihrer Benutzer zu verschaffen.
Sitzung Sidejacking
Ein Angreifer kann Packet Sniffing verwenden, um Sitzungscookies für Benutzer abzufangen, wenn sie sich bei einer Website anmelden. Wenn Anmeldeseiten nicht verschlüsselt sind oder eine schwache Verschlüsselung verwendet wird, kann ein Cyberkrimineller auf diese Weise leicht Benutzersitzungen kapern.
Mann-im-Browser
Bei diesem Angriff muss der Angreifer zunächst den Computer oder Browser eines Opfers mit Malware infizieren.
Diese Malware kann Browser-Transaktionsinformationen unsichtbar ändern und Transaktionen erstellen, ohne dass der Benutzer dies bemerkt. Die Anfragen des beschädigten Browsers werden vom physischen Gerät des Opfers initiiert, sodass davon ausgegangen wird, dass sie gültig sind.
Cross-Site-Scripting
Ein Cyberkrimineller kann Schwachstellen in Anwendungen oder Servern ausnutzen, um willkürlichen Code in die Webseiten einer Website einzuschleusen. Dies führt dazu, dass die Browser der Besucher diesen Code ausführen, wenn eine kompromittierte Seite geladen wird.
Wenn in Sitzungscookies nicht nur HTTP festgelegt ist, ist es möglich, einen Sitzungsschlüssel durch eingeschleusten Code zu stehlen. Dies würde Angreifern alles geben, was sie brauchen, um eine Benutzersitzung zu kapern.
Sitzungsfixierung
Dies verwendet eine gültige Sitzungs-ID, die noch nicht authentifiziert wurde. Mithilfe der Sitzungsfixierung versucht ein Angreifer, einen Benutzer dazu zu bringen, sich mit dieser bestimmten ID zu authentifizieren.
Sobald die Authentifizierung erfolgt ist, hat ein Angreifer nun vollen Zugriff auf den Computer des Opfers.
Die Sitzungsfixierung untersucht eine große Einschränkung bei der Verwaltung einer Sitzungs-ID durch die Webanwendung.
Was hat ein Hacker von Session Hijacking?
Wenn ein Hacker eine Sitzung kapert, kann er alles tun, wozu ein legitimer Benutzer in dieser aktiven Sitzung berechtigt war.
Das effektivste – und schädlichste – Session-Hijacking kann zu Folgendem führen:
- Kompromittierte Bankkonten
- Nicht autorisierte Online-Käufe von Artikeln im Internet
- Diebstahl erkennen
- Datendiebstahl aus unternehmensinternen Systemen
Nicht gut! Eine erfolgreiche Session-Hijacking-Session kann viel Schaden anrichten.
Was sind einige Beispiele für Sitzungs-Hijacking?
Im Herbst 2012 kündigten zwei Sicherheitsforscher namens Juliano Rizzo und Thai Duong CRIME an, einen Angriff, der sich ein Informationsleck innerhalb der Komprimierungsrate von TLS-Anfragen als Seitenkanal zunutze macht. Dadurch konnten sie die Anfragen des Clients an den Server entschlüsseln.
Dies ermöglichte es ihnen wiederum, das Login-Cookie eines Benutzers zu stehlen und die Sitzung zu kapern, indem sie sich auf hochwertigen Online-Zielen wie E-Commerce-Sites und Banken als sie ausgaben.
Diese Demonstration zeigte, wie ein Hacker diese Art von Angriff ausführen könnte, um die Header einer HTTP-Anforderung wiederherzustellen.
CRIME arbeitet daran, HTTPS-Cookies zu entschlüsseln, die von Websites gesetzt werden, um sich authentifizierte Benutzer mit Brute Force zu merken. Der Angriffscode zwingt den Browser des Opfers, speziell gestaltete HTTPS-Anfragen an eine Zielwebsite zu senden, und analysiert die Variation ihrer Länge, nachdem sie komprimiert wurden, um den Wert des Sitzungscookies des Opfers zu bestimmen. Dies ist möglich, weil SSL/TLS einen Komprimierungsalgorithmus namens DEFLATE verwendet, der doppelte Zeichenfolgen eliminiert, wie wir oben gesehen haben.
Der Angriffscode kann das in den Anforderungen enthaltene Sitzungscookie aufgrund von Sicherheitsmechanismen im Browser nicht lesen. Es kann jedoch den Pfad jeder neuen Anfrage steuern und verschiedene Zeichenfolgen einfügen, um zu versuchen, den Wert des Cookies abzugleichen.
Sitzungscookiewerte können sehr lang sein. Sie bestehen aus Groß- und Kleinbuchstaben und Ziffern.
Infolgedessen muss der CRIME-Angriffscode eine sehr große Anzahl von Anfragen initiieren, um sie zu entschlüsseln, was mehrere Minuten dauern kann.
Verhinderung von Session-Hijacking
Denken Sie daran, dass Angreifer Sitzungs-IDs (oder andere sensible Cookie-Werte) stehlen und wiederverwenden können, wenn sie unsicher übertragen oder gespeichert werden. Obwohl ein 100-prozentiger Schutz keine Garantie ist, ist die Verwendung von Verschlüsselung eine wichtige Verteidigung.
Wenn Benutzer sich authentifizieren, müssen SSL und sichere Cookies obligatorisch sein. Und wenn authentifizierte Benutzer mehr als eine sichere Seite besuchen, müssen sie gezwungen werden, HTTPS zu verwenden.
Darüber hinaus müssen Besitzer von WordPress-Sites das iThemes Security Pro WordPress-Sicherheits-Plugin zum Schutz vor Session-Hijacking verwenden. Die in iThemes Security Pro integrierte Funktion „Vertrauenswürdige Geräte“ arbeitet 24 Stunden am Tag, sieben Tage die Woche, um Ihre Website vor diesem gefährlichen Angriff zu schützen. Erfahren Sie, wie Sie es für die Benutzer Ihrer Website einrichten.
Session Hijacking verstehen und verhindern
Mit den Informationen in diesem Leitfaden wissen Sie alles, was Sie brauchen, um Ihre WordPress-Site vor Session-Hijacking zu schützen:
- Stellen Sie sicher, dass Ihre Website vollständig mit SSL verschlüsselt ist und die Benutzer gezwungen werden, in HTTPS zu bleiben.
- Laden Sie das iThemes Security Pro-Plugin herunter und installieren Sie es.
Indem Sie diese einfachen Schritte ausführen, schützen Sie Ihre Website vor Session-Hijacking.
Das beste WordPress-Sicherheits-Plugin zum Sichern und Schützen von WordPress
WordPress betreibt derzeit über 40 % aller Websites, sodass es zu einem leichten Ziel für Hacker mit böswilligen Absichten geworden ist. Das iThemes Security Pro-Plug-in beseitigt das Rätselraten bei der WordPress-Sicherheit, um es einfach zu machen, Ihre WordPress-Website zu sichern und zu schützen. Es ist, als hätten Sie einen Vollzeit-Sicherheitsexperten im Team, der Ihre WordPress-Site ständig für Sie überwacht und schützt.
Dan Knauss ist StellarWPs Technical Content Generalist. Er ist Autor, Lehrer und Freiberufler, der seit Ende der 1990er Jahre mit Open Source und seit 2004 mit WordPress arbeitet.