SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

Programmierer erobern die Sicherheit: Serie „Teilen und Lernen“ — Schwächen beim Sitzungsmanagement

Jaap Karan Singh
Veröffentlicht Jan 31, 2019
Zuletzt aktualisiert am 09. 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, hoppla — deine Hand rutscht ab und schließt den Browser-Tab. Nach einer kleinen Panik gibst du die URL der Seite wieder in den Browser ein und drückst die „Enter“ -Taste. Sie werden zurück auf die Website gebracht, angemeldet und alle Ihre Artikel befinden sich immer noch im Warenkorb. Puh.

Woher wusste die Website, wer Sie sind, ohne sich erneut zu authentifizieren? Sie wurde identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einer guten Benutzererfahrung bei der Nutzung des Webs. Eine unsachgemäße Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Sehen wir uns nun an, was Sitzungsmanagement bedeutet, wie ein schwaches Sitzungsmanagement Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Die Schwächen des Sitzungsmanagements 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 ist HTTP ein zustandsloses Protokoll. Jede Anfrage ist separat und es sind keine Anfragen bekannt, die davor oder danach eingegangen sind. Eine Sitzung hilft dem Server dabei, nachzuverfolgen, 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 Sitzungs-ID kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung wird wissen, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein serverseitiger Datenspeicher speichert eine Sitzungskennung und ordnet sie Informationen über den Benutzer zu, z. B. seiner Benutzer-ID oder Warenkorbinformationen. Dieselbe Sitzungs-ID 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 und teilt dem Server mit, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Ein ordnungsgemäßes Sitzungsmanagement ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat das gleiche Maß an Vertrauen wie ein Benutzername/Passwort oder sogar ein Zweitfaktor-Authentifizierungstoken.

Warum schlechtes Sitzungsmanagement gefährlich ist

Ein schlechtes Sitzungsmanagement kann zur vollständigen Kontoübernahme führen. Dies bedeutet, dass Kundendaten gestohlen oder Produkte betrügerisch gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

EIN Angriff auf Sitzungsfixierung tritt auf, wenn Sitzungen zu wichtigen Zeiten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen mithilfe der URL festgelegt werden können. Das Festlegen von Sitzungskennungen auf diese Weise kann dazu verwendet werden, dass Benutzer in verschiedenen Anwendungen, die dieselbe Authentifizierungsquelle verwenden, angemeldet bleiben. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungs-ID abrufen. Der Angreifer sendet dann eine URL per E-Mail an ein ahnungsloses Opfer mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich auf der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, hat der Angreifer jetzt eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf ein schlechtes Sitzungsmanagement ist ein Brute-Force-Guessing-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie häufig Sitzungs-IDs, die ziemlich einfach zu erraten sind. Dies kann eine Sequenz (1, 2, 3) oder ein vorhersehbares Muster sein. Der Angreifer errät einfach so lange Sitzungs-IDs, bis eine gültige entdeckt wird. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch für ungültig erklärt werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Seitenübergreifende Anforderungsfälschung Der Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Site verlassen hat. Nehmen wir an, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut „src“ (Quelle) ist auf die URL der anfälligen Website gesetzt und führt im Namen des Benutzers eine Aktion aus. Beispielsweise könnte eine anfällige Bankanwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

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

Besiegen Sie unsicheres Sitzungsmanagement

Das Sitzungsmanagement ist ein Kernstück jeder Webanwendung. Daher verfügen viele Frameworks für die Webentwicklung über integrierte Sitzungsverwaltungsfunktionen. Diese Systeme wurden von Experten unter die Lupe genommen, um Probleme zu finden und zu beheben. Benutze sie.

Einige gemeinsame Eigenschaften von gutes Sitzungsmanagement beinhalten:

Zufällig generierte 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 für ungültig erklärt

Sitzungs-IDs werden geändert, nachdem sich der Benutzer angemeldet hat

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

Web-Frameworks wie Spring, ASP.NET-Kern, Schienen, und Django haben diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Fazit: Erstellen Sie Ihr eigenes Sitzungsverwaltungssystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt wurden, müssen sie geschützt werden. Stellen Sie das ein Secure- und HttpOnly-Flags auf „True'on Session-Cookies“. Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch verhindert wird, dass Angreifer während der Übertragung die Sitzung einer anderen Person stehlen.

Sichere deine Sessions

Schauen Sie sich unsere kostenlosen Lernressourcen an um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen schützen, können Sie verhindern, dass Benutzerkonten übernommen werden, Ihr Ruf geschädigt wird und Umsatzeinbußen aufgrund von Sicherheitslücken entstehen. Schützen Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Ressource anzeigen
Ressource anzeigen

Sitzungen sind der Schlüssel zu einer guten Benutzererfahrung bei der Nutzung des Webs. Eine falsche Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Interessiert an mehr?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

mehr erfahren

Secure Code Warrior für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

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

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von 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, hoppla — deine Hand rutscht ab und schließt den Browser-Tab. Nach einer kleinen Panik gibst du die URL der Seite wieder in den Browser ein und drückst die „Enter“ -Taste. Sie werden zurück auf die Website gebracht, angemeldet und alle Ihre Artikel befinden sich immer noch im Warenkorb. Puh.

Woher wusste die Website, wer Sie sind, ohne sich erneut zu authentifizieren? Sie wurde identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einer guten Benutzererfahrung bei der Nutzung des Webs. Eine unsachgemäße Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Sehen wir uns nun an, was Sitzungsmanagement bedeutet, wie ein schwaches Sitzungsmanagement Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Die Schwächen des Sitzungsmanagements 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 ist HTTP ein zustandsloses Protokoll. Jede Anfrage ist separat und es sind keine Anfragen bekannt, die davor oder danach eingegangen sind. Eine Sitzung hilft dem Server dabei, nachzuverfolgen, 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 Sitzungs-ID kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung wird wissen, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein serverseitiger Datenspeicher speichert eine Sitzungskennung und ordnet sie Informationen über den Benutzer zu, z. B. seiner Benutzer-ID oder Warenkorbinformationen. Dieselbe Sitzungs-ID 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 und teilt dem Server mit, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Ein ordnungsgemäßes Sitzungsmanagement ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat das gleiche Maß an Vertrauen wie ein Benutzername/Passwort oder sogar ein Zweitfaktor-Authentifizierungstoken.

Warum schlechtes Sitzungsmanagement gefährlich ist

Ein schlechtes Sitzungsmanagement kann zur vollständigen Kontoübernahme führen. Dies bedeutet, dass Kundendaten gestohlen oder Produkte betrügerisch gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

EIN Angriff auf Sitzungsfixierung tritt auf, wenn Sitzungen zu wichtigen Zeiten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen mithilfe der URL festgelegt werden können. Das Festlegen von Sitzungskennungen auf diese Weise kann dazu verwendet werden, dass Benutzer in verschiedenen Anwendungen, die dieselbe Authentifizierungsquelle verwenden, angemeldet bleiben. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungs-ID abrufen. Der Angreifer sendet dann eine URL per E-Mail an ein ahnungsloses Opfer mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich auf der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, hat der Angreifer jetzt eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf ein schlechtes Sitzungsmanagement ist ein Brute-Force-Guessing-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie häufig Sitzungs-IDs, die ziemlich einfach zu erraten sind. Dies kann eine Sequenz (1, 2, 3) oder ein vorhersehbares Muster sein. Der Angreifer errät einfach so lange Sitzungs-IDs, bis eine gültige entdeckt wird. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch für ungültig erklärt werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Seitenübergreifende Anforderungsfälschung Der Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Site verlassen hat. Nehmen wir an, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut „src“ (Quelle) ist auf die URL der anfälligen Website gesetzt und führt im Namen des Benutzers eine Aktion aus. Beispielsweise könnte eine anfällige Bankanwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

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

Besiegen Sie unsicheres Sitzungsmanagement

Das Sitzungsmanagement ist ein Kernstück jeder Webanwendung. Daher verfügen viele Frameworks für die Webentwicklung über integrierte Sitzungsverwaltungsfunktionen. Diese Systeme wurden von Experten unter die Lupe genommen, um Probleme zu finden und zu beheben. Benutze sie.

Einige gemeinsame Eigenschaften von gutes Sitzungsmanagement beinhalten:

Zufällig generierte 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 für ungültig erklärt

Sitzungs-IDs werden geändert, nachdem sich der Benutzer angemeldet hat

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

Web-Frameworks wie Spring, ASP.NET-Kern, Schienen, und Django haben diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Fazit: Erstellen Sie Ihr eigenes Sitzungsverwaltungssystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt wurden, müssen sie geschützt werden. Stellen Sie das ein Secure- und HttpOnly-Flags auf „True'on Session-Cookies“. Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch verhindert wird, dass Angreifer während der Übertragung die Sitzung einer anderen Person stehlen.

Sichere deine Sessions

Schauen Sie sich unsere kostenlosen Lernressourcen an um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen schützen, können Sie verhindern, dass Benutzerkonten übernommen werden, Ihr Ruf geschädigt wird und Umsatzeinbußen aufgrund von Sicherheitslücken entstehen. Schützen Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Ressource anzeigen
Ressource anzeigen

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

Wir bitten um Ihre Erlaubnis, Ihnen Informationen zu unseren Produkten und/oder verwandten Themen rund um sichere Codierung zuzusenden. Wir behandeln Ihre persönlichen Daten stets mit größter Sorgfalt und verkaufen sie niemals zu Marketingzwecken an andere Unternehmen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular abzusenden, aktivieren Sie bitte „Analytics“-Cookies. Wenn Sie fertig sind, können Sie sie jederzeit 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, hoppla — deine Hand rutscht ab und schließt den Browser-Tab. Nach einer kleinen Panik gibst du die URL der Seite wieder in den Browser ein und drückst die „Enter“ -Taste. Sie werden zurück auf die Website gebracht, angemeldet und alle Ihre Artikel befinden sich immer noch im Warenkorb. Puh.

Woher wusste die Website, wer Sie sind, ohne sich erneut zu authentifizieren? Sie wurde identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einer guten Benutzererfahrung bei der Nutzung des Webs. Eine unsachgemäße Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Sehen wir uns nun an, was Sitzungsmanagement bedeutet, wie ein schwaches Sitzungsmanagement Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Die Schwächen des Sitzungsmanagements 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 ist HTTP ein zustandsloses Protokoll. Jede Anfrage ist separat und es sind keine Anfragen bekannt, die davor oder danach eingegangen sind. Eine Sitzung hilft dem Server dabei, nachzuverfolgen, 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 Sitzungs-ID kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung wird wissen, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein serverseitiger Datenspeicher speichert eine Sitzungskennung und ordnet sie Informationen über den Benutzer zu, z. B. seiner Benutzer-ID oder Warenkorbinformationen. Dieselbe Sitzungs-ID 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 und teilt dem Server mit, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Ein ordnungsgemäßes Sitzungsmanagement ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat das gleiche Maß an Vertrauen wie ein Benutzername/Passwort oder sogar ein Zweitfaktor-Authentifizierungstoken.

Warum schlechtes Sitzungsmanagement gefährlich ist

Ein schlechtes Sitzungsmanagement kann zur vollständigen Kontoübernahme führen. Dies bedeutet, dass Kundendaten gestohlen oder Produkte betrügerisch gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

EIN Angriff auf Sitzungsfixierung tritt auf, wenn Sitzungen zu wichtigen Zeiten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen mithilfe der URL festgelegt werden können. Das Festlegen von Sitzungskennungen auf diese Weise kann dazu verwendet werden, dass Benutzer in verschiedenen Anwendungen, die dieselbe Authentifizierungsquelle verwenden, angemeldet bleiben. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungs-ID abrufen. Der Angreifer sendet dann eine URL per E-Mail an ein ahnungsloses Opfer mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich auf der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, hat der Angreifer jetzt eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf ein schlechtes Sitzungsmanagement ist ein Brute-Force-Guessing-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie häufig Sitzungs-IDs, die ziemlich einfach zu erraten sind. Dies kann eine Sequenz (1, 2, 3) oder ein vorhersehbares Muster sein. Der Angreifer errät einfach so lange Sitzungs-IDs, bis eine gültige entdeckt wird. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch für ungültig erklärt werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Seitenübergreifende Anforderungsfälschung Der Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Site verlassen hat. Nehmen wir an, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut „src“ (Quelle) ist auf die URL der anfälligen Website gesetzt und führt im Namen des Benutzers eine Aktion aus. Beispielsweise könnte eine anfällige Bankanwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

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

Besiegen Sie unsicheres Sitzungsmanagement

Das Sitzungsmanagement ist ein Kernstück jeder Webanwendung. Daher verfügen viele Frameworks für die Webentwicklung über integrierte Sitzungsverwaltungsfunktionen. Diese Systeme wurden von Experten unter die Lupe genommen, um Probleme zu finden und zu beheben. Benutze sie.

Einige gemeinsame Eigenschaften von gutes Sitzungsmanagement beinhalten:

Zufällig generierte 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 für ungültig erklärt

Sitzungs-IDs werden geändert, nachdem sich der Benutzer angemeldet hat

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

Web-Frameworks wie Spring, ASP.NET-Kern, Schienen, und Django haben diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Fazit: Erstellen Sie Ihr eigenes Sitzungsverwaltungssystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt wurden, müssen sie geschützt werden. Stellen Sie das ein Secure- und HttpOnly-Flags auf „True'on Session-Cookies“. Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch verhindert wird, dass Angreifer während der Übertragung die Sitzung einer anderen Person stehlen.

Sichere deine Sessions

Schauen Sie sich unsere kostenlosen Lernressourcen an um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen schützen, können Sie verhindern, dass Benutzerkonten übernommen werden, Ihr Ruf geschädigt wird und Umsatzeinbußen aufgrund von Sicherheitslücken entstehen. Schützen Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Webinar ansehen
Fangen Sie an
mehr erfahren

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

Secure Code Warrior für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht ansehenEine Demo buchen
Ressource anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Interessiert an mehr?

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

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von 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, hoppla — deine Hand rutscht ab und schließt den Browser-Tab. Nach einer kleinen Panik gibst du die URL der Seite wieder in den Browser ein und drückst die „Enter“ -Taste. Sie werden zurück auf die Website gebracht, angemeldet und alle Ihre Artikel befinden sich immer noch im Warenkorb. Puh.

Woher wusste die Website, wer Sie sind, ohne sich erneut zu authentifizieren? Sie wurde identifiziert, weil sie Sitzungen verwendet hat. Sitzungen sind der Schlüssel zu einer guten Benutzererfahrung bei der Nutzung des Webs. Eine unsachgemäße Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.

Sehen wir uns nun an, was Sitzungsmanagement bedeutet, wie ein schwaches Sitzungsmanagement Ihnen schaden kann und was Sie tun können, um Sitzungen richtig zu verwalten.

Die Schwächen des Sitzungsmanagements 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 ist HTTP ein zustandsloses Protokoll. Jede Anfrage ist separat und es sind keine Anfragen bekannt, die davor oder danach eingegangen sind. Eine Sitzung hilft dem Server dabei, nachzuverfolgen, 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 Sitzungs-ID kann verwendet werden, um einen bestimmten Benutzer mit bestimmten Rechten innerhalb des Systems zu erkennen. Die Anwendung wird wissen, wer die Person ist und was sie tun darf.

Eine Sitzung besteht aus zwei Komponenten. Ein serverseitiger Datenspeicher speichert eine Sitzungskennung und ordnet sie Informationen über den Benutzer zu, z. B. seiner Benutzer-ID oder Warenkorbinformationen. Dieselbe Sitzungs-ID 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 und teilt dem Server mit, dass diese Anfrage von demselben Benutzer stammt. Die meisten Anwendungen verwenden Sitzungen, um Benutzer sowohl vor als auch nach der Authentifizierung zu verfolgen.

Ein ordnungsgemäßes Sitzungsmanagement ist für die Sicherheit einer Anwendung unerlässlich. Eine gültige Sitzungs-ID hat das gleiche Maß an Vertrauen wie ein Benutzername/Passwort oder sogar ein Zweitfaktor-Authentifizierungstoken.

Warum schlechtes Sitzungsmanagement gefährlich ist

Ein schlechtes Sitzungsmanagement kann zur vollständigen Kontoübernahme führen. Dies bedeutet, dass Kundendaten gestohlen oder Produkte betrügerisch gekauft werden können. Es gibt mehrere Möglichkeiten für Angreifer, eine gültige Sitzungs-ID zu erhalten.

EIN Angriff auf Sitzungsfixierung tritt auf, wenn Sitzungen zu wichtigen Zeiten nicht geändert werden, z. B. wenn sich ein Benutzer am System anmeldet, und wenn Sitzungskennungen mithilfe der URL festgelegt werden können. Das Festlegen von Sitzungskennungen auf diese Weise kann dazu verwendet werden, dass Benutzer in verschiedenen Anwendungen, die dieselbe Authentifizierungsquelle verwenden, angemeldet bleiben. In diesem Fall kann ein Angreifer eine Website aufrufen und eine Sitzungs-ID abrufen. Der Angreifer sendet dann eine URL per E-Mail an ein ahnungsloses Opfer mit der Sitzungs-ID in der URL. Das Opfer klickt auf die URL in der E-Mail und meldet sich auf der Website an. Wenn die Sitzungs-ID bei der Anmeldung nicht rotiert wird, hat der Angreifer jetzt eine gültige, authentifizierte Sitzungs-ID. Dies ermöglicht eine vollständige Kontoübernahme.

Ein weiterer Angriff auf ein schlechtes Sitzungsmanagement ist ein Brute-Force-Guessing-Angriff. Wenn Entwickler versuchen, ihre eigenen Sitzungsverwaltungssysteme zu erstellen, verwenden sie häufig Sitzungs-IDs, die ziemlich einfach zu erraten sind. Dies kann eine Sequenz (1, 2, 3) oder ein vorhersehbares Muster sein. Der Angreifer errät einfach so lange Sitzungs-IDs, bis eine gültige entdeckt wird. Dies führt auch zu einer Kontoübernahme.

Sitzungen, die nach Ablauf einer bestimmten Zeit nicht automatisch für ungültig erklärt werden, können ausgenutzt werden, um Benutzer anzugreifen. Ein erfolgreicher Seitenübergreifende Anforderungsfälschung Der Angriff hängt von Sitzungen ab, die noch gültig sind, nachdem der Benutzer die Site verlassen hat. Nehmen wir an, ein Angreifer platziert einen Iframe oder ein Bild auf einer vom Benutzer besuchten Website. Das Attribut „src“ (Quelle) ist auf die URL der anfälligen Website gesetzt und führt im Namen des Benutzers eine Aktion aus. Beispielsweise könnte eine anfällige Bankanwendung dazu gebracht werden, ohne die Erlaubnis des Benutzers Geld auf das Konto eines Angreifers zu überweisen.

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

Besiegen Sie unsicheres Sitzungsmanagement

Das Sitzungsmanagement ist ein Kernstück jeder Webanwendung. Daher verfügen viele Frameworks für die Webentwicklung über integrierte Sitzungsverwaltungsfunktionen. Diese Systeme wurden von Experten unter die Lupe genommen, um Probleme zu finden und zu beheben. Benutze sie.

Einige gemeinsame Eigenschaften von gutes Sitzungsmanagement beinhalten:

Zufällig generierte 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 für ungültig erklärt

Sitzungs-IDs werden geändert, nachdem sich der Benutzer angemeldet hat

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

Web-Frameworks wie Spring, ASP.NET-Kern, Schienen, und Django haben diese Eigenschaften und sollten in diesem Fall aufgrund ihrer höheren Sicherheitsstandards verwendet werden.

Fazit: Erstellen Sie Ihr eigenes Sitzungsverwaltungssystem nicht von Grund auf neu.

Sobald die Sitzungs-IDs erstellt wurden, müssen sie geschützt werden. Stellen Sie das ein Secure- und HttpOnly-Flags auf „True'on Session-Cookies“. Dadurch wird sichergestellt, dass ihr Wert nicht mit JavaScript abgerufen werden kann und der Browser das Cookie nur über HTTPS sendet, wodurch verhindert wird, dass Angreifer während der Übertragung die Sitzung einer anderen Person stehlen.

Sichere deine Sessions

Schauen Sie sich unsere kostenlosen Lernressourcen an um mehr über sicheres Sitzungsmanagement zu erfahren. Wenn Sie lernen, wie Sie Ihre Sitzungen schützen, können Sie verhindern, dass Benutzerkonten übernommen werden, Ihr Ruf geschädigt wird und Umsatzeinbußen aufgrund von Sicherheitslücken entstehen. Schützen Sie Ihre Sitzungen und schützen Sie Ihre Benutzer.

Inhaltsverzeichnis

PDF herunterladen
Ressource anzeigen
Interessiert an mehr?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

mehr erfahren

Secure Code Warrior für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Eine Demo buchenHerunterladen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcen-Hub

Ressourcen für den Einstieg

Weitere Beiträge
Ressourcen-Hub

Ressourcen für den Einstieg

Weitere Beiträge