SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

Les codeurs conquièrent la sécurité : série Share & Learn - Faiblesses de la gestion des sessions

Jaap Karan Singh
Veröffentlicht Jan 31, 2019
Zuletzt aktualisiert am 08. März 2026

Sie navigieren zu einer Website und melden sich an. Wie gewohnt füllen Sie Ihren Warenkorb mit Produkten, die Sie kaufen möchten. Dann, schwupps - rutscht Ihnen die Hand ab und Sie schließen den Browser-Tab. Nach einer kleinen Panik geben Sie die URL der Seite wieder in den Browser ein und drücken die "Enter"-Taste. Sie werden zurück auf die Seite gebracht, sind eingeloggt und alle Artikel befinden sich noch im Warenkorb. Uff.

Woher wusste die Website, wer Sie waren, ohne sich erneut zu authentifizieren? Sie hat Sie identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einem guten Benutzererlebnis bei der Nutzung des Internets. Die falsche Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Lassen Sie uns nun überprüfen, was Sitzungsverwaltung bedeutet, wie eine schwache Sitzungsverwaltung Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Schwachstellen im Session Management verstehen

Eine Sitzung bezieht sich auf einen auf dem Server gespeicherten Wert, der für einen einzelnen Benutzer der Anwendung spezifisch ist. Dies ist aus zwei Gründen notwendig: Erstens: HTTP ist ein zustandsloses Protokoll. Jede Anfrage ist separat und hat keine Kenntnis von Anfragen, die vor oder nach ihr gekommen sind. Eine Sitzung hilft dem Server zu verfolgen, wer die Anfrage gesendet hat. Andernfalls müssten Sie sich jedes Mal anmelden, wenn Sie auf eine Schaltfläche oder einen Link klicken.

Der zweite Grund für Sitzungen ist die Autorisierung des Benutzers. Die Sitzungskennung kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung weiß dann, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein Datenspeicher auf der Serverseite speichert einen Sitzungsbezeichner und ordnet ihn Informationen über den Benutzer zu, wie z. B. seine Benutzerkennung oder Warenkorbinformationen. Derselbe Sitzungsbezeichner wird in einem Cookie an den Browser gesendet. Die Cookies werden vom Browser auf dem System des Benutzers gespeichert. Der Client übergibt das Cookie bei jeder Anfrage, so dass der Server weiß, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Eine ordnungsgemäße Sitzungsverwaltung ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat den gleichen Vertrauensgrad wie ein Benutzername/Passwort oder sogar ein Second-Factor-Authentifizierungstoken.

Warum schlechtes Session Management gefährlich ist

Schlechte Sitzungsverwaltung kann zu einer kompletten Kontoübernahme führen. Das bedeutet, dass Kundendaten gestohlen oder Produkte in betrügerischer Absicht gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

Ein Sitzungsfixierungsangriff tritt auf, wenn Sitzungen zu wichtigen Zeitpunkten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen über die URL gesetzt werden können. Das Setzen von Sitzungskennungen auf diese Weise kann verwendet werden, um Benutzer über verschiedene Anwendungen hinweg angemeldet zu halten, die die gleiche Authentifizierungsquelle verwenden. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungskennung erlangen. Der Angreifer sendet dann eine URL an ein ahnungsloses Opfer per E-Mail mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich bei der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, verfügt der Angreifer nun über eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf eine schlechte Sitzungsverwaltung ist ein Brute-Force-Rate-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie oft Sitzungs-IDs, die ziemlich einfach zu erraten sind. Diese könnten eine Sequenz (1, 2, 3) oder eine Art vorhersehbares Muster sein. Der Angreifer rät einfach so lange Sitzungs-IDs, bis er eine gültige entdeckt hat. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch ungültig gemacht werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Cross-Site-Request-Forgery-Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Website verlassen hat. Angenommen, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut "src" (Quelle) wird auf die URL der verwundbaren Site gesetzt und führt eine Aktion im Namen des Benutzers aus. Zum Beispiel könnte eine verwundbare Banking-Anwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

Sitzungsmanagement kann knifflig sein, und Schwächen können verheerend sein. Es ist jedoch ein bekanntes Problem und es kann gelöst werden.

Unsicheres Sitzungsmanagement besiegen

Die Sitzungsverwaltung ist ein Kernstück einer jeden Webanwendung. Daher verfügen viele Webentwicklungs-Frameworks über eine eingebaute Session-Management-Funktionalität. Diese Systeme wurden von Experten untersucht, um Probleme zu finden und auszumerzen. Verwenden Sie sie.

Einige allgemeine Eigenschaften einer guten Sitzungsverwaltung sind:

     Generierung zufälliger Sitzungs-IDs, die Angreifer nicht erraten können

     Sitzungen werden ungültig, wenn sich ein Benutzer abmeldet

     Sitzungen werden nach Ablauf einer bestimmten Zeit automatisch ungültig gemacht

     Sitzungs-IDs werden nach der Anmeldung des Benutzers geändert

     Sitzungs-IDs, die mindestens 128 Bit lang sind, um Brute-Force-Angriffe zu verhindern

Web-Frameworks wie Spring, ASP.NET Core, Rails und Django verfügen über diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Unterm Strich: Erstellen Sie Ihr eigenes Sitzungsmanagementsystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt sind, müssen sie geschützt werden. Setzen Sie die Flags "Secure" und "HttpOnly" bei Sitzungscookies auf "true". Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch Angreifer daran gehindert werden, die Sitzung eines Benutzers während der Übertragung zu stehlen.

Sichern Sie Ihre Sitzungen

Sehen Sie sichunsere kostenlosen Lernressourcen an, um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen sichern, können Sie die Übernahme von Benutzerkonten, Rufschädigung und Umsatzeinbußen aufgrund von Sicherheitsverletzungen verhindern. Sichern Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Ressource anzeigen
Ressource anzeigen

Les sessions sont essentielles à une bonne expérience utilisateur lors de l'utilisation du Web. Cependant, une gestion incorrecte des sessions peut entraîner des failles de sécurité que les attaquants peuvent exploiter.

Möchten Sie mehr erfahren?

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

mehr erfahren

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Jaap Karan Singh
Veröffentlicht Jan 31, 2019

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

Teilen auf:
LinkedIn-MarkenSozialx Logo

Sie navigieren zu einer Website und melden sich an. Wie gewohnt füllen Sie Ihren Warenkorb mit Produkten, die Sie kaufen möchten. Dann, schwupps - rutscht Ihnen die Hand ab und Sie schließen den Browser-Tab. Nach einer kleinen Panik geben Sie die URL der Seite wieder in den Browser ein und drücken die "Enter"-Taste. Sie werden zurück auf die Seite gebracht, sind eingeloggt und alle Artikel befinden sich noch im Warenkorb. Uff.

Woher wusste die Website, wer Sie waren, ohne sich erneut zu authentifizieren? Sie hat Sie identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einem guten Benutzererlebnis bei der Nutzung des Internets. Die falsche Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Lassen Sie uns nun überprüfen, was Sitzungsverwaltung bedeutet, wie eine schwache Sitzungsverwaltung Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Schwachstellen im Session Management verstehen

Eine Sitzung bezieht sich auf einen auf dem Server gespeicherten Wert, der für einen einzelnen Benutzer der Anwendung spezifisch ist. Dies ist aus zwei Gründen notwendig: Erstens: HTTP ist ein zustandsloses Protokoll. Jede Anfrage ist separat und hat keine Kenntnis von Anfragen, die vor oder nach ihr gekommen sind. Eine Sitzung hilft dem Server zu verfolgen, wer die Anfrage gesendet hat. Andernfalls müssten Sie sich jedes Mal anmelden, wenn Sie auf eine Schaltfläche oder einen Link klicken.

Der zweite Grund für Sitzungen ist die Autorisierung des Benutzers. Die Sitzungskennung kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung weiß dann, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein Datenspeicher auf der Serverseite speichert einen Sitzungsbezeichner und ordnet ihn Informationen über den Benutzer zu, wie z. B. seine Benutzerkennung oder Warenkorbinformationen. Derselbe Sitzungsbezeichner wird in einem Cookie an den Browser gesendet. Die Cookies werden vom Browser auf dem System des Benutzers gespeichert. Der Client übergibt das Cookie bei jeder Anfrage, so dass der Server weiß, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Eine ordnungsgemäße Sitzungsverwaltung ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat den gleichen Vertrauensgrad wie ein Benutzername/Passwort oder sogar ein Second-Factor-Authentifizierungstoken.

Warum schlechtes Session Management gefährlich ist

Schlechte Sitzungsverwaltung kann zu einer kompletten Kontoübernahme führen. Das bedeutet, dass Kundendaten gestohlen oder Produkte in betrügerischer Absicht gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

Ein Sitzungsfixierungsangriff tritt auf, wenn Sitzungen zu wichtigen Zeitpunkten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen über die URL gesetzt werden können. Das Setzen von Sitzungskennungen auf diese Weise kann verwendet werden, um Benutzer über verschiedene Anwendungen hinweg angemeldet zu halten, die die gleiche Authentifizierungsquelle verwenden. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungskennung erlangen. Der Angreifer sendet dann eine URL an ein ahnungsloses Opfer per E-Mail mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich bei der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, verfügt der Angreifer nun über eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf eine schlechte Sitzungsverwaltung ist ein Brute-Force-Rate-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie oft Sitzungs-IDs, die ziemlich einfach zu erraten sind. Diese könnten eine Sequenz (1, 2, 3) oder eine Art vorhersehbares Muster sein. Der Angreifer rät einfach so lange Sitzungs-IDs, bis er eine gültige entdeckt hat. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch ungültig gemacht werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Cross-Site-Request-Forgery-Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Website verlassen hat. Angenommen, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut "src" (Quelle) wird auf die URL der verwundbaren Site gesetzt und führt eine Aktion im Namen des Benutzers aus. Zum Beispiel könnte eine verwundbare Banking-Anwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

Sitzungsmanagement kann knifflig sein, und Schwächen können verheerend sein. Es ist jedoch ein bekanntes Problem und es kann gelöst werden.

Unsicheres Sitzungsmanagement besiegen

Die Sitzungsverwaltung ist ein Kernstück einer jeden Webanwendung. Daher verfügen viele Webentwicklungs-Frameworks über eine eingebaute Session-Management-Funktionalität. Diese Systeme wurden von Experten untersucht, um Probleme zu finden und auszumerzen. Verwenden Sie sie.

Einige allgemeine Eigenschaften einer guten Sitzungsverwaltung sind:

     Generierung zufälliger Sitzungs-IDs, die Angreifer nicht erraten können

     Sitzungen werden ungültig, wenn sich ein Benutzer abmeldet

     Sitzungen werden nach Ablauf einer bestimmten Zeit automatisch ungültig gemacht

     Sitzungs-IDs werden nach der Anmeldung des Benutzers geändert

     Sitzungs-IDs, die mindestens 128 Bit lang sind, um Brute-Force-Angriffe zu verhindern

Web-Frameworks wie Spring, ASP.NET Core, Rails und Django verfügen über diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Unterm Strich: Erstellen Sie Ihr eigenes Sitzungsmanagementsystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt sind, müssen sie geschützt werden. Setzen Sie die Flags "Secure" und "HttpOnly" bei Sitzungscookies auf "true". Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch Angreifer daran gehindert werden, die Sitzung eines Benutzers während der Übertragung zu stehlen.

Sichern Sie Ihre Sitzungen

Sehen Sie sichunsere kostenlosen Lernressourcen an, um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen sichern, können Sie die Übernahme von Benutzerkonten, Rufschädigung und Umsatzeinbußen aufgrund von Sicherheitsverletzungen verhindern. Sichern Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Ressource anzeigen
Ressource anzeigen

Füllen Sie das untenstehende Formular aus, um den Bericht herunterzuladen.

Wir möchten Ihre Einwilligung einholen, um Ihnen Informationen zu unseren Produkten und/oder zu Themen im Zusammenhang mit sicherer Verschlüsselung zuzusenden. Wir werden Ihre personenbezogenen Daten stets mit größter Sorgfalt behandeln und niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte die „Analytics“-Cookies. Sie können diese nach Abschluss des Vorgangs wieder deaktivieren.

Sie navigieren zu einer Website und melden sich an. Wie gewohnt füllen Sie Ihren Warenkorb mit Produkten, die Sie kaufen möchten. Dann, schwupps - rutscht Ihnen die Hand ab und Sie schließen den Browser-Tab. Nach einer kleinen Panik geben Sie die URL der Seite wieder in den Browser ein und drücken die "Enter"-Taste. Sie werden zurück auf die Seite gebracht, sind eingeloggt und alle Artikel befinden sich noch im Warenkorb. Uff.

Woher wusste die Website, wer Sie waren, ohne sich erneut zu authentifizieren? Sie hat Sie identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einem guten Benutzererlebnis bei der Nutzung des Internets. Die falsche Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Lassen Sie uns nun überprüfen, was Sitzungsverwaltung bedeutet, wie eine schwache Sitzungsverwaltung Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Schwachstellen im Session Management verstehen

Eine Sitzung bezieht sich auf einen auf dem Server gespeicherten Wert, der für einen einzelnen Benutzer der Anwendung spezifisch ist. Dies ist aus zwei Gründen notwendig: Erstens: HTTP ist ein zustandsloses Protokoll. Jede Anfrage ist separat und hat keine Kenntnis von Anfragen, die vor oder nach ihr gekommen sind. Eine Sitzung hilft dem Server zu verfolgen, wer die Anfrage gesendet hat. Andernfalls müssten Sie sich jedes Mal anmelden, wenn Sie auf eine Schaltfläche oder einen Link klicken.

Der zweite Grund für Sitzungen ist die Autorisierung des Benutzers. Die Sitzungskennung kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung weiß dann, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein Datenspeicher auf der Serverseite speichert einen Sitzungsbezeichner und ordnet ihn Informationen über den Benutzer zu, wie z. B. seine Benutzerkennung oder Warenkorbinformationen. Derselbe Sitzungsbezeichner wird in einem Cookie an den Browser gesendet. Die Cookies werden vom Browser auf dem System des Benutzers gespeichert. Der Client übergibt das Cookie bei jeder Anfrage, so dass der Server weiß, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Eine ordnungsgemäße Sitzungsverwaltung ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat den gleichen Vertrauensgrad wie ein Benutzername/Passwort oder sogar ein Second-Factor-Authentifizierungstoken.

Warum schlechtes Session Management gefährlich ist

Schlechte Sitzungsverwaltung kann zu einer kompletten Kontoübernahme führen. Das bedeutet, dass Kundendaten gestohlen oder Produkte in betrügerischer Absicht gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

Ein Sitzungsfixierungsangriff tritt auf, wenn Sitzungen zu wichtigen Zeitpunkten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen über die URL gesetzt werden können. Das Setzen von Sitzungskennungen auf diese Weise kann verwendet werden, um Benutzer über verschiedene Anwendungen hinweg angemeldet zu halten, die die gleiche Authentifizierungsquelle verwenden. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungskennung erlangen. Der Angreifer sendet dann eine URL an ein ahnungsloses Opfer per E-Mail mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich bei der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, verfügt der Angreifer nun über eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf eine schlechte Sitzungsverwaltung ist ein Brute-Force-Rate-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie oft Sitzungs-IDs, die ziemlich einfach zu erraten sind. Diese könnten eine Sequenz (1, 2, 3) oder eine Art vorhersehbares Muster sein. Der Angreifer rät einfach so lange Sitzungs-IDs, bis er eine gültige entdeckt hat. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch ungültig gemacht werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Cross-Site-Request-Forgery-Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Website verlassen hat. Angenommen, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut "src" (Quelle) wird auf die URL der verwundbaren Site gesetzt und führt eine Aktion im Namen des Benutzers aus. Zum Beispiel könnte eine verwundbare Banking-Anwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

Sitzungsmanagement kann knifflig sein, und Schwächen können verheerend sein. Es ist jedoch ein bekanntes Problem und es kann gelöst werden.

Unsicheres Sitzungsmanagement besiegen

Die Sitzungsverwaltung ist ein Kernstück einer jeden Webanwendung. Daher verfügen viele Webentwicklungs-Frameworks über eine eingebaute Session-Management-Funktionalität. Diese Systeme wurden von Experten untersucht, um Probleme zu finden und auszumerzen. Verwenden Sie sie.

Einige allgemeine Eigenschaften einer guten Sitzungsverwaltung sind:

     Generierung zufälliger Sitzungs-IDs, die Angreifer nicht erraten können

     Sitzungen werden ungültig, wenn sich ein Benutzer abmeldet

     Sitzungen werden nach Ablauf einer bestimmten Zeit automatisch ungültig gemacht

     Sitzungs-IDs werden nach der Anmeldung des Benutzers geändert

     Sitzungs-IDs, die mindestens 128 Bit lang sind, um Brute-Force-Angriffe zu verhindern

Web-Frameworks wie Spring, ASP.NET Core, Rails und Django verfügen über diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Unterm Strich: Erstellen Sie Ihr eigenes Sitzungsmanagementsystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt sind, müssen sie geschützt werden. Setzen Sie die Flags "Secure" und "HttpOnly" bei Sitzungscookies auf "true". Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch Angreifer daran gehindert werden, die Sitzung eines Benutzers während der Übertragung zu stehlen.

Sichern Sie Ihre Sitzungen

Sehen Sie sichunsere kostenlosen Lernressourcen an, um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen sichern, können Sie die Übernahme von Benutzerkonten, Rufschädigung und Umsatzeinbußen aufgrund von Sicherheitsverletzungen verhindern. Sichern Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Webinar anzeigen
Beginnen Sie
mehr erfahren

Klicken Sie auf den untenstehenden Link und laden Sie das PDF dieser Ressource herunter.

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht anzeigenDemo buchen
PDF herunterladen
Ressource anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Möchten Sie mehr erfahren?

Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Jaap Karan Singh
Veröffentlicht Jan 31, 2019

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

Teilen auf:
LinkedIn-MarkenSozialx Logo

Sie navigieren zu einer Website und melden sich an. Wie gewohnt füllen Sie Ihren Warenkorb mit Produkten, die Sie kaufen möchten. Dann, schwupps - rutscht Ihnen die Hand ab und Sie schließen den Browser-Tab. Nach einer kleinen Panik geben Sie die URL der Seite wieder in den Browser ein und drücken die "Enter"-Taste. Sie werden zurück auf die Seite gebracht, sind eingeloggt und alle Artikel befinden sich noch im Warenkorb. Uff.

Woher wusste die Website, wer Sie waren, ohne sich erneut zu authentifizieren? Sie hat Sie identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einem guten Benutzererlebnis bei der Nutzung des Internets. Die falsche Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Lassen Sie uns nun überprüfen, was Sitzungsverwaltung bedeutet, wie eine schwache Sitzungsverwaltung Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Schwachstellen im Session Management verstehen

Eine Sitzung bezieht sich auf einen auf dem Server gespeicherten Wert, der für einen einzelnen Benutzer der Anwendung spezifisch ist. Dies ist aus zwei Gründen notwendig: Erstens: HTTP ist ein zustandsloses Protokoll. Jede Anfrage ist separat und hat keine Kenntnis von Anfragen, die vor oder nach ihr gekommen sind. Eine Sitzung hilft dem Server zu verfolgen, wer die Anfrage gesendet hat. Andernfalls müssten Sie sich jedes Mal anmelden, wenn Sie auf eine Schaltfläche oder einen Link klicken.

Der zweite Grund für Sitzungen ist die Autorisierung des Benutzers. Die Sitzungskennung kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung weiß dann, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein Datenspeicher auf der Serverseite speichert einen Sitzungsbezeichner und ordnet ihn Informationen über den Benutzer zu, wie z. B. seine Benutzerkennung oder Warenkorbinformationen. Derselbe Sitzungsbezeichner wird in einem Cookie an den Browser gesendet. Die Cookies werden vom Browser auf dem System des Benutzers gespeichert. Der Client übergibt das Cookie bei jeder Anfrage, so dass der Server weiß, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Eine ordnungsgemäße Sitzungsverwaltung ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat den gleichen Vertrauensgrad wie ein Benutzername/Passwort oder sogar ein Second-Factor-Authentifizierungstoken.

Warum schlechtes Session Management gefährlich ist

Schlechte Sitzungsverwaltung kann zu einer kompletten Kontoübernahme führen. Das bedeutet, dass Kundendaten gestohlen oder Produkte in betrügerischer Absicht gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

Ein Sitzungsfixierungsangriff tritt auf, wenn Sitzungen zu wichtigen Zeitpunkten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen über die URL gesetzt werden können. Das Setzen von Sitzungskennungen auf diese Weise kann verwendet werden, um Benutzer über verschiedene Anwendungen hinweg angemeldet zu halten, die die gleiche Authentifizierungsquelle verwenden. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungskennung erlangen. Der Angreifer sendet dann eine URL an ein ahnungsloses Opfer per E-Mail mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich bei der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, verfügt der Angreifer nun über eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf eine schlechte Sitzungsverwaltung ist ein Brute-Force-Rate-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie oft Sitzungs-IDs, die ziemlich einfach zu erraten sind. Diese könnten eine Sequenz (1, 2, 3) oder eine Art vorhersehbares Muster sein. Der Angreifer rät einfach so lange Sitzungs-IDs, bis er eine gültige entdeckt hat. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch ungültig gemacht werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Cross-Site-Request-Forgery-Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Website verlassen hat. Angenommen, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut "src" (Quelle) wird auf die URL der verwundbaren Site gesetzt und führt eine Aktion im Namen des Benutzers aus. Zum Beispiel könnte eine verwundbare Banking-Anwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

Sitzungsmanagement kann knifflig sein, und Schwächen können verheerend sein. Es ist jedoch ein bekanntes Problem und es kann gelöst werden.

Unsicheres Sitzungsmanagement besiegen

Die Sitzungsverwaltung ist ein Kernstück einer jeden Webanwendung. Daher verfügen viele Webentwicklungs-Frameworks über eine eingebaute Session-Management-Funktionalität. Diese Systeme wurden von Experten untersucht, um Probleme zu finden und auszumerzen. Verwenden Sie sie.

Einige allgemeine Eigenschaften einer guten Sitzungsverwaltung sind:

     Generierung zufälliger Sitzungs-IDs, die Angreifer nicht erraten können

     Sitzungen werden ungültig, wenn sich ein Benutzer abmeldet

     Sitzungen werden nach Ablauf einer bestimmten Zeit automatisch ungültig gemacht

     Sitzungs-IDs werden nach der Anmeldung des Benutzers geändert

     Sitzungs-IDs, die mindestens 128 Bit lang sind, um Brute-Force-Angriffe zu verhindern

Web-Frameworks wie Spring, ASP.NET Core, Rails und Django verfügen über diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Unterm Strich: Erstellen Sie Ihr eigenes Sitzungsmanagementsystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt sind, müssen sie geschützt werden. Setzen Sie die Flags "Secure" und "HttpOnly" bei Sitzungscookies auf "true". Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch Angreifer daran gehindert werden, die Sitzung eines Benutzers während der Übertragung zu stehlen.

Sichern Sie Ihre Sitzungen

Sehen Sie sichunsere kostenlosen Lernressourcen an, um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen sichern, können Sie die Übernahme von Benutzerkonten, Rufschädigung und Umsatzeinbußen aufgrund von Sicherheitsverletzungen verhindern. Sichern Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Inhaltsverzeichnis

PDF herunterladen
Ressource anzeigen
Möchten Sie mehr erfahren?

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

mehr erfahren

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchenHerunterladen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge