Wie man die Aufzählung von Benutzernamen vermeidet | Secure Code Warrior
Von einem Seitenkanalangriff spricht man, wenn ein Hacker Informationen aus der physischen Implementierung eines Softwaresystems gewinnen kann und nicht aus einer theoretischen Schwäche im Algorithmus oder einem Fehler im Code der Software.
Ein Beispiel, das ich gerne verwende, um dies zu verdeutlichen, ist eine Methode zur Aufzählung von Benutzernamen. Wenn Sie wissen möchten, was die Aufzählung von Benutzernamen ist oder warum sie schlecht ist, besuchen Sie unsere Website für eine Videoerklärung oder spielen Sie eine Herausforderung, um zu sehen, ob Sie sie im Code identifizieren können.
Um nun zu verstehen, wie die Aufzählung von Benutzernamen durch einen Seitenkanalangriff durchgeführt werden kann, müssen Sie ein gewisses Verständnis dafür haben, wie Kennwörter in modernen Webanwendungen gehandhabt werden (oder zumindest gehandhabt werden sollten). Eine gute Webanwendung kennt Ihr Kennwort nicht, sie speichert Ihr Kennwort nirgendwo. Woher weiß sie also, dass das, was Sie eingegeben haben, korrekt ist und tatsächlich Ihr Passwort ist? Nun, Ihr Passwort ist gehasht.
Eine Hash-Funktion ist eine mathematische Operation, die einfach in eine Richtung ausgeführt werden kann (obwohl sie etwas rechenintensiv ist), aber sehr schwer umkehrbar ist, und bei guten Hash-Algorithmen ist die Ausgabe abhängig von der Eingabe eindeutig. Wenn Sie sich auf einer Website anmelden, wird dieser Hash sicher gespeichert, nicht Ihr Passwort selbst. Das bedeutet, dass die Webanwendung jedes Mal, wenn Sie sich anmelden, Ihre Eingabe hasht und die gehashten Ergebnisse mit dem gespeicherten Hash vergleicht. Wenn Sie mehr über die sichere Speicherung von Passwörtern erfahren möchten, können Sie das auf unserer Plattform tun.

Das Hashing von Eingaben nimmt auf einem Computer einige Zeit in Anspruch und die Entwickler versuchen immer, alles, was sie schreiben, zu optimieren, damit die Benutzer eine reibungslose Erfahrung haben. Eine Sache, die das Programm beschleunigt, ist, das Hashing zu überspringen, wenn es nicht benötigt wird. Wenn zum Beispiel der Benutzername nicht existiert (und somit kein Passwort geprüft werden muss), können sie dem Benutzer sofort antworten. Auf diese Weise können sie die langsame Berechnung des Hashes für das Passwort überspringen. Wenn der Benutzername korrekt war, wird die Kennworteingabe gehasht und mit dem gespeicherten Hashwert verglichen.
An dieser Stelle haben Sie vielleicht schon erraten, wo es schief gehen kann. Auch wenn das Hashing in Wirklichkeit nur ein paar Millisekunden dauert, kann ein Hacker diese zusätzliche Verzögerung nutzen, um herauszufinden, ob der eingegebene Benutzername richtig war oder nicht, da ein falscher Benutzername eine etwas schnellere Antwort hat, weil kein Hashing durchgeführt wurde. Diese Art von Seitenkanalangriff wird als Timing-Angriff bezeichnet und ist ein gutes Beispiel dafür, wie verschiedene nicht-funktionale Anforderungen einander entgegenwirken können. Manchmal kann Code nicht gleichzeitig schnell und sicher sein.
Auch wenn die Kennwörter perfekt verarbeitet werden und die angezeigte Meldung generisch ist und nicht angibt, ob das Kennwort oder der Benutzername falsch war, ist das System also immer noch anfällig. Die Lösung ist einfach: Verschlüsseln Sie das Kennwort immer mit einem Hash-Wert oder verzögern Sie das Senden der Antwort um die Zeit, die für den Hash-Wert erforderlich wäre.
Die erhaltenen Informationen können von einem Angreifer verwendet werden, um eine Liste der Benutzer auf dem System zu erhalten. Diese Informationen können verwendet werden, um die Webanwendung anzugreifen, z. B. durch einen Brute-Force- oder Standard-Benutzername/Passwort-Angriff.


Bei der Aufzählung von Benutzernamen verwenden Hacker Brute-Force-Angriffe, um an Informationen über Benutzernamen und Passwörter zu gelangen. Erfahren Sie, wie Sie die Aufzählung von Benutzernamen mit Secure Code Warrior vermeiden können.
Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

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 buchenAnwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat


Von einem Seitenkanalangriff spricht man, wenn ein Hacker Informationen aus der physischen Implementierung eines Softwaresystems gewinnen kann und nicht aus einer theoretischen Schwäche im Algorithmus oder einem Fehler im Code der Software.
Ein Beispiel, das ich gerne verwende, um dies zu verdeutlichen, ist eine Methode zur Aufzählung von Benutzernamen. Wenn Sie wissen möchten, was die Aufzählung von Benutzernamen ist oder warum sie schlecht ist, besuchen Sie unsere Website für eine Videoerklärung oder spielen Sie eine Herausforderung, um zu sehen, ob Sie sie im Code identifizieren können.
Um nun zu verstehen, wie die Aufzählung von Benutzernamen durch einen Seitenkanalangriff durchgeführt werden kann, müssen Sie ein gewisses Verständnis dafür haben, wie Kennwörter in modernen Webanwendungen gehandhabt werden (oder zumindest gehandhabt werden sollten). Eine gute Webanwendung kennt Ihr Kennwort nicht, sie speichert Ihr Kennwort nirgendwo. Woher weiß sie also, dass das, was Sie eingegeben haben, korrekt ist und tatsächlich Ihr Passwort ist? Nun, Ihr Passwort ist gehasht.
Eine Hash-Funktion ist eine mathematische Operation, die einfach in eine Richtung ausgeführt werden kann (obwohl sie etwas rechenintensiv ist), aber sehr schwer umkehrbar ist, und bei guten Hash-Algorithmen ist die Ausgabe abhängig von der Eingabe eindeutig. Wenn Sie sich auf einer Website anmelden, wird dieser Hash sicher gespeichert, nicht Ihr Passwort selbst. Das bedeutet, dass die Webanwendung jedes Mal, wenn Sie sich anmelden, Ihre Eingabe hasht und die gehashten Ergebnisse mit dem gespeicherten Hash vergleicht. Wenn Sie mehr über die sichere Speicherung von Passwörtern erfahren möchten, können Sie das auf unserer Plattform tun.

Das Hashing von Eingaben nimmt auf einem Computer einige Zeit in Anspruch und die Entwickler versuchen immer, alles, was sie schreiben, zu optimieren, damit die Benutzer eine reibungslose Erfahrung haben. Eine Sache, die das Programm beschleunigt, ist, das Hashing zu überspringen, wenn es nicht benötigt wird. Wenn zum Beispiel der Benutzername nicht existiert (und somit kein Passwort geprüft werden muss), können sie dem Benutzer sofort antworten. Auf diese Weise können sie die langsame Berechnung des Hashes für das Passwort überspringen. Wenn der Benutzername korrekt war, wird die Kennworteingabe gehasht und mit dem gespeicherten Hashwert verglichen.
An dieser Stelle haben Sie vielleicht schon erraten, wo es schief gehen kann. Auch wenn das Hashing in Wirklichkeit nur ein paar Millisekunden dauert, kann ein Hacker diese zusätzliche Verzögerung nutzen, um herauszufinden, ob der eingegebene Benutzername richtig war oder nicht, da ein falscher Benutzername eine etwas schnellere Antwort hat, weil kein Hashing durchgeführt wurde. Diese Art von Seitenkanalangriff wird als Timing-Angriff bezeichnet und ist ein gutes Beispiel dafür, wie verschiedene nicht-funktionale Anforderungen einander entgegenwirken können. Manchmal kann Code nicht gleichzeitig schnell und sicher sein.
Auch wenn die Kennwörter perfekt verarbeitet werden und die angezeigte Meldung generisch ist und nicht angibt, ob das Kennwort oder der Benutzername falsch war, ist das System also immer noch anfällig. Die Lösung ist einfach: Verschlüsseln Sie das Kennwort immer mit einem Hash-Wert oder verzögern Sie das Senden der Antwort um die Zeit, die für den Hash-Wert erforderlich wäre.
Die erhaltenen Informationen können von einem Angreifer verwendet werden, um eine Liste der Benutzer auf dem System zu erhalten. Diese Informationen können verwendet werden, um die Webanwendung anzugreifen, z. B. durch einen Brute-Force- oder Standard-Benutzername/Passwort-Angriff.

Von einem Seitenkanalangriff spricht man, wenn ein Hacker Informationen aus der physischen Implementierung eines Softwaresystems gewinnen kann und nicht aus einer theoretischen Schwäche im Algorithmus oder einem Fehler im Code der Software.
Ein Beispiel, das ich gerne verwende, um dies zu verdeutlichen, ist eine Methode zur Aufzählung von Benutzernamen. Wenn Sie wissen möchten, was die Aufzählung von Benutzernamen ist oder warum sie schlecht ist, besuchen Sie unsere Website für eine Videoerklärung oder spielen Sie eine Herausforderung, um zu sehen, ob Sie sie im Code identifizieren können.
Um nun zu verstehen, wie die Aufzählung von Benutzernamen durch einen Seitenkanalangriff durchgeführt werden kann, müssen Sie ein gewisses Verständnis dafür haben, wie Kennwörter in modernen Webanwendungen gehandhabt werden (oder zumindest gehandhabt werden sollten). Eine gute Webanwendung kennt Ihr Kennwort nicht, sie speichert Ihr Kennwort nirgendwo. Woher weiß sie also, dass das, was Sie eingegeben haben, korrekt ist und tatsächlich Ihr Passwort ist? Nun, Ihr Passwort ist gehasht.
Eine Hash-Funktion ist eine mathematische Operation, die einfach in eine Richtung ausgeführt werden kann (obwohl sie etwas rechenintensiv ist), aber sehr schwer umkehrbar ist, und bei guten Hash-Algorithmen ist die Ausgabe abhängig von der Eingabe eindeutig. Wenn Sie sich auf einer Website anmelden, wird dieser Hash sicher gespeichert, nicht Ihr Passwort selbst. Das bedeutet, dass die Webanwendung jedes Mal, wenn Sie sich anmelden, Ihre Eingabe hasht und die gehashten Ergebnisse mit dem gespeicherten Hash vergleicht. Wenn Sie mehr über die sichere Speicherung von Passwörtern erfahren möchten, können Sie das auf unserer Plattform tun.

Das Hashing von Eingaben nimmt auf einem Computer einige Zeit in Anspruch und die Entwickler versuchen immer, alles, was sie schreiben, zu optimieren, damit die Benutzer eine reibungslose Erfahrung haben. Eine Sache, die das Programm beschleunigt, ist, das Hashing zu überspringen, wenn es nicht benötigt wird. Wenn zum Beispiel der Benutzername nicht existiert (und somit kein Passwort geprüft werden muss), können sie dem Benutzer sofort antworten. Auf diese Weise können sie die langsame Berechnung des Hashes für das Passwort überspringen. Wenn der Benutzername korrekt war, wird die Kennworteingabe gehasht und mit dem gespeicherten Hashwert verglichen.
An dieser Stelle haben Sie vielleicht schon erraten, wo es schief gehen kann. Auch wenn das Hashing in Wirklichkeit nur ein paar Millisekunden dauert, kann ein Hacker diese zusätzliche Verzögerung nutzen, um herauszufinden, ob der eingegebene Benutzername richtig war oder nicht, da ein falscher Benutzername eine etwas schnellere Antwort hat, weil kein Hashing durchgeführt wurde. Diese Art von Seitenkanalangriff wird als Timing-Angriff bezeichnet und ist ein gutes Beispiel dafür, wie verschiedene nicht-funktionale Anforderungen einander entgegenwirken können. Manchmal kann Code nicht gleichzeitig schnell und sicher sein.
Auch wenn die Kennwörter perfekt verarbeitet werden und die angezeigte Meldung generisch ist und nicht angibt, ob das Kennwort oder der Benutzername falsch war, ist das System also immer noch anfällig. Die Lösung ist einfach: Verschlüsseln Sie das Kennwort immer mit einem Hash-Wert oder verzögern Sie das Senden der Antwort um die Zeit, die für den Hash-Wert erforderlich wäre.
Die erhaltenen Informationen können von einem Angreifer verwendet werden, um eine Liste der Benutzer auf dem System zu erhalten. Diese Informationen können verwendet werden, um die Webanwendung anzugreifen, z. B. durch einen Brute-Force- oder Standard-Benutzername/Passwort-Angriff.

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 buchenAnwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat
Von einem Seitenkanalangriff spricht man, wenn ein Hacker Informationen aus der physischen Implementierung eines Softwaresystems gewinnen kann und nicht aus einer theoretischen Schwäche im Algorithmus oder einem Fehler im Code der Software.
Ein Beispiel, das ich gerne verwende, um dies zu verdeutlichen, ist eine Methode zur Aufzählung von Benutzernamen. Wenn Sie wissen möchten, was die Aufzählung von Benutzernamen ist oder warum sie schlecht ist, besuchen Sie unsere Website für eine Videoerklärung oder spielen Sie eine Herausforderung, um zu sehen, ob Sie sie im Code identifizieren können.
Um nun zu verstehen, wie die Aufzählung von Benutzernamen durch einen Seitenkanalangriff durchgeführt werden kann, müssen Sie ein gewisses Verständnis dafür haben, wie Kennwörter in modernen Webanwendungen gehandhabt werden (oder zumindest gehandhabt werden sollten). Eine gute Webanwendung kennt Ihr Kennwort nicht, sie speichert Ihr Kennwort nirgendwo. Woher weiß sie also, dass das, was Sie eingegeben haben, korrekt ist und tatsächlich Ihr Passwort ist? Nun, Ihr Passwort ist gehasht.
Eine Hash-Funktion ist eine mathematische Operation, die einfach in eine Richtung ausgeführt werden kann (obwohl sie etwas rechenintensiv ist), aber sehr schwer umkehrbar ist, und bei guten Hash-Algorithmen ist die Ausgabe abhängig von der Eingabe eindeutig. Wenn Sie sich auf einer Website anmelden, wird dieser Hash sicher gespeichert, nicht Ihr Passwort selbst. Das bedeutet, dass die Webanwendung jedes Mal, wenn Sie sich anmelden, Ihre Eingabe hasht und die gehashten Ergebnisse mit dem gespeicherten Hash vergleicht. Wenn Sie mehr über die sichere Speicherung von Passwörtern erfahren möchten, können Sie das auf unserer Plattform tun.

Das Hashing von Eingaben nimmt auf einem Computer einige Zeit in Anspruch und die Entwickler versuchen immer, alles, was sie schreiben, zu optimieren, damit die Benutzer eine reibungslose Erfahrung haben. Eine Sache, die das Programm beschleunigt, ist, das Hashing zu überspringen, wenn es nicht benötigt wird. Wenn zum Beispiel der Benutzername nicht existiert (und somit kein Passwort geprüft werden muss), können sie dem Benutzer sofort antworten. Auf diese Weise können sie die langsame Berechnung des Hashes für das Passwort überspringen. Wenn der Benutzername korrekt war, wird die Kennworteingabe gehasht und mit dem gespeicherten Hashwert verglichen.
An dieser Stelle haben Sie vielleicht schon erraten, wo es schief gehen kann. Auch wenn das Hashing in Wirklichkeit nur ein paar Millisekunden dauert, kann ein Hacker diese zusätzliche Verzögerung nutzen, um herauszufinden, ob der eingegebene Benutzername richtig war oder nicht, da ein falscher Benutzername eine etwas schnellere Antwort hat, weil kein Hashing durchgeführt wurde. Diese Art von Seitenkanalangriff wird als Timing-Angriff bezeichnet und ist ein gutes Beispiel dafür, wie verschiedene nicht-funktionale Anforderungen einander entgegenwirken können. Manchmal kann Code nicht gleichzeitig schnell und sicher sein.
Auch wenn die Kennwörter perfekt verarbeitet werden und die angezeigte Meldung generisch ist und nicht angibt, ob das Kennwort oder der Benutzername falsch war, ist das System also immer noch anfällig. Die Lösung ist einfach: Verschlüsseln Sie das Kennwort immer mit einem Hash-Wert oder verzögern Sie das Senden der Antwort um die Zeit, die für den Hash-Wert erforderlich wäre.
Die erhaltenen Informationen können von einem Angreifer verwendet werden, um eine Liste der Benutzer auf dem System zu erhalten. Diese Informationen können verwendet werden, um die Webanwendung anzugreifen, z. B. durch einen Brute-Force- oder Standard-Benutzername/Passwort-Angriff.
Inhaltsübersicht
Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

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
KI-Codier-Assistenten: Ein Leitfaden zur sicherheitsgerechten Navigation für die nächste Generation von Entwicklern
Große Sprachmodelle bieten unwiderstehliche Geschwindigkeits- und Produktivitätsvorteile, aber sie bringen auch unbestreitbare Risiken für das Unternehmen mit sich. Herkömmliche Sicherheitsleitplanken reichen nicht aus, um die Flut zu kontrollieren. Entwickler benötigen präzise, geprüfte Sicherheitskenntnisse, um Sicherheitslücken bereits zu Beginn des Softwareentwicklungszyklus zu erkennen und zu verhindern.
Sicher durch Design: Definition von Best Practices, Befähigung von Entwicklern und Benchmarking von präventiven Sicherheitsergebnissen
In diesem Forschungspapier werden die Mitbegründer von Secure Code Warrior , Pieter Danhieux und Dr. Matias Madou, Ph.D., zusammen mit den Experten Chris Inglis, ehemaliger US National Cyber Director (jetzt strategischer Berater der Paladin Capital Group), und Devin Lynch, Senior Director, Paladin Global Institute, die wichtigsten Erkenntnisse aus mehr als zwanzig ausführlichen Interviews mit Sicherheitsverantwortlichen in Unternehmen, darunter CISOs, ein VP of Application Security und Software-Sicherheitsexperten, offenlegen.
Ressourcen für den Einstieg
Maßstäbe setzen: SCW veröffentlicht kostenlose Sicherheitsregeln für KI-Codierung auf GitHub
KI-gestützte Entwicklung ist nicht mehr nur Zukunftsmusik – sie ist bereits da und verändert die Art und Weise, wie Software geschrieben wird, rasant. Tools wie GitHub Copilot, Cline, Roo, Cursor, Aider und Windsurf machen Entwickler zu ihren eigenen Co-Piloten, ermöglichen schnellere Iterationen und beschleunigen alles vom Prototyping bis hin zu großen Refactoring-Projekten.
Schließen Sie den Kreis zu Schwachstellen mit Secure Code Warrior + HackerOne
Secure Code Warrior freut sich, unsere neue Integration mit HackerOne, einem führenden Anbieter von offensiven Sicherheitslösungen, bekannt zu geben. Gemeinsam bauen wir ein leistungsstarkes, integriertes Ökosystem auf. HackerOne zeigt auf, wo Schwachstellen in realen Umgebungen tatsächlich auftreten, und deckt das "Was" und "Wo" von Sicherheitsproblemen auf.
Aufgedeckt: Wie die Cyber-Industrie "Secure by Design" definiert
In unserem neuesten Whitepaper haben sich unsere Mitbegründer Pieter Danhieux und Dr. Matias Madou, Ph.D., mit über zwanzig Sicherheitsverantwortlichen in Unternehmen, darunter CISOs, AppSec-Leiter und Sicherheitsexperten, zusammengesetzt, um die wichtigsten Teile dieses Puzzles herauszufinden und die Realität hinter der Secure by Design-Bewegung aufzudecken. Die Sicherheitsteams haben ein gemeinsames Ziel, aber kein gemeinsames Regelwerk.