Coders Conquer Security: Share & Learn Series - Schwachstellen in der Sitzungsverwaltung
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.
Sitzungen sind der Schlüssel für ein gutes Benutzererlebnis bei der Nutzung des Webs. Die falsche Verwaltung von Sitzungen kann jedoch zu Sicherheitslücken führen, die Angreifer ausnutzen können.
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
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.
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.
Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
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.
Inhaltsübersicht
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
DigitalOcean verringert Sicherheitsverschuldung mit Secure Code Warrior
DigitalOceans Einsatz von Secure Code Warrior hat die Sicherheitsverschuldung deutlich reduziert, so dass sich die Teams stärker auf Innovation und Produktivität konzentrieren können. Die verbesserte Sicherheit hat die Produktqualität und den Wettbewerbsvorteil des Unternehmens gestärkt. Mit Blick auf die Zukunft wird der SCW Trust Score dem Unternehmen helfen, seine Sicherheitspraktiken weiter zu verbessern und Innovationen voranzutreiben.
Ressourcen für den Einstieg
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.
Wesentlicher Erfolg für Enterprise Secure-by-Design-Initiativen
Unser jüngstes Forschungspapier „Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise“ ist das Ergebnis einer umfassenden Analyse echter Secure-by-Design-Initiativen auf Unternehmensebene und der Ableitung von Best-Practice-Ansätzen auf Grundlage datengesteuerter Erkenntnisse.