Finding: Zeitunterschiede zählen

Statische und dynamische Aspekte vieler Art spielen in der Cybersecurity eine grosse Rolle. Im Falle des Ergebnisermittlungssystems verbündete sich Security Researcher «simioni» mit der Zeit gegen uns. Seine Schwachstelle im Eingangsbereich zur Software ist interessant.

Von Daniel Scherrer, Chief Software Architect · 30. August 2022

Passwort vergessen: Die Antwortzeit gibt Hinweis auf Nutzer des Systems. (Foto: Tim Gouw/Unsplash)

Das Finding

Eine Sicherheitsanalyse beginnt mit dem Ausprobieren von Funktionen und unterschiedlichen Varianten des Zugriffs. Man versucht, Ausnahmen herauszufinden, die zu Fehlverhalten führen. Researcher simioni untersuchte jedoch auch das Verhalten der Software.

So meldete er uns, dass bei der Ausführung der Passwort-Vergessen-Funktion der Webserver innert 1-2 Sekunden antwortet, insofern der Benutzer im System existiert. Kann das System keinen Benutzer mit der aufgeführten Identität finden, antwortet dieser bereits in durchschnittlich 40 Millisekunden.

Der Angreifer kann somit beliebige Benutzernamen mit «Passwort vergessen» ausprobieren und aus den gemessenen Zeiten auf die Anwesenheit im System schliessen. Anschliessend kann er die User mit einem Passwort-Angriff gezielt attackieren. Im Security-Jargon nennt man diese Erhebung von Benutzern «User Enumeration» und der Vergleich von Antwortzeiten «Observable Timing Discrepancy».

Die Erkenntnis


Simioni hat uns eine Schwachstelle aufgezeigt, an die wir bei allen Tests nicht gedacht haben: Die Programmierroutinen bei der Erkennung einer Identität waren bei einer gültigen und einer ungültigen Identität unterschiedlich. Der Endbenutzer bzw. die Endbenutzerin musste bei einer korrekten Eingabe warten, bis der Server die notwendige E-Mail zur finalen Registrierung verschickte. Diese Wartezeit und deren Bestätigung sind aus User-Sicht nicht erforderlich – ein Hacker bedankt sich natürlich herzlich hierfür.

Die Lösung

Wir haben die entsprechenden Code-Stellen in der Software so umgebaut, dass die tatsächliche Behandlung der Anfrage im Nachhinein geschieht. Die angeforderte Person erhält direkt Rückmeldung, dass wir ihre Anfrage erhalten haben, unabhängig davon, ob es sich um eine gültige Identität handelt oder nicht. Somit ergeben sich keine zeitlich erkennbaren Unterschiede mehr. Eine mögliche Informationsquelle für Angreifende versiegt. Ebenfalls prüfen wir unsere Lösung auf weitere solcher Indizien. Wir bedanken uns dafür bei simioni.

Daniel Scherrer

Über Daniel Scherrer

Daniel Scherrer ist Chief Software Architect bei Abraxas. Er plant und entwickelt Software konsequent entlang bewährter und sicherer Methoden. Er leitet das Abraxas Bug-Bounty-Programm.