Freitag, 22. Oktober 2010


Topthema

Donnerstag, 5. November 2009 | Topthema

About Security #229: Schwachstellen-Suche: Authentifizierung - Daten übertragen

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/052199)

Wie werden Zugangsdaten sicher übertragen? Für die Richtung vom Benutzer zur Webanwendung nimmt man dafür SSL/TLS - aber was ist mit der Übertragung der von der Webanwendung während der Registrierung erzeugten Daten? Die müssen an den Benutzer übermittelt werden, und das, ohne dass Unbefugte sie dabei zu sehen bekommen.

In einem Intranet ist die sichere Verteilung von der Webanwendung erzeugter Zugangsdaten kein Problem, da können die Benutzer sie z.B. in der IT-Abteilung abholen oder sie bekommen sie von ihrem Vorgesetzten oder in der Personalabteilung oder ... Anders sieht es im Internet aus, dort soll die Übertragung der Zugangsdaten "out of band" einen gewissen Schutz vor Registrierungen unter falschen Namen gewähren: Durch das Mailen der Zugangsdaten an die angegebene E-Mail-Adresse oder ihr Schicken an die angegebene Postanschrift soll geprüft werden, ob das E-Mail-Konto bzw. der Briefkasten unter der Kontrolle der Person steht, die sich damit registriert hat. Dabei gibt es mehrere mögliche Schwachstellen:

  • Übertragung von Benutzername und Passwort
    Enthält die Nachricht sowohl Benutzername als auch Passwort, und gibt es weder ein Zeitlimit für deren Gültigkeit noch einen Zwang zur Passwortänderung bei der ersten Anmeldung, werden viele Benutzer das Passwort nicht ändern, und jeder, dem die Daten in die Hände fallen, kann sich damit anmelden.
  • Aktivierungs-Links
    Wird statt der vollständigen Zugangsdaten oder des Passworts nur ein Aktivierungs-Link verschickt, mit dem sich die Benutzer einmalig anmelden können, um dann ein eigenes Passwort zu setzen, können vorhersagbare URLs einen Angreifer in die Lage versetzen, fremde Benutzerkonten zu übernehmen.
  • Übertragung sämtlicher Daten
    Werden nicht nur Benutzername und Passwort bzw. ein Aktivierungs-Link übertragen, sondern sämtliche bei der Registrierung angegebenen Daten wie z.B. Name und Adresse, weitere Kontaktmöglichkeiten wie Telefonnummern oder (ggf. weitere) E-Mail-Adressen oder die Antwort auf die Sicherheitsfrage, schützt auch eine zeitliche Begrenzung der Gültigkeitsdauer der Zugangsdaten oder der Zwang zum Setzen eines Passworts bei der ersten Anmeldung nicht vor einem Angriff, der dann z.B. durch Nutzung der Passwort-Reset-Funktion mit der bekannten Antwort auf die Sicherheitsfrage oder in Form eines Social-Engineering-Angriffs erfolgen kann.
  • "Fremde Briefkästen"
    Werden die Zugangsdaten an die angegebene Postanschrift geschickt, beweist das nur, dass der sich registrierende Benutzer diesen Brief empfangen hat. Ob er den aus seinem eigenen Briefkasten genommen oder ihn z.B. aus einen ungenutzten Briefkasten geangelt hat oder einfach einen Briefkasten mit passenden Namen in einer anonymen Wohngegend an die Wand geschraubt hat, weiß man nicht. Will man sicher sein, dass die angegebene Anschrift stimmt, muss man schon zu einem dafür vorgesehen Verfahren, z.B. dem Postident-Verfahren der Deutschen Post, greifen.
Schwachstellen verhindern

Beim Test der eigenen Webanwendung muss man wie üblich nicht lange suchen, man weiß ja, wie die Zugangsdaten "out of band" übertragen werden und kann sofort daran gehen, evtl. vorhandenen Schwachstellen zu korrigieren:

  • Werden Benutzername und Passwort gemeinsam übertragen, sollte man prüfen, ob man auf die Übertragung des Benutzernamens verzichten kann, denn den kennt der neue Benutzer ja von der Registrierung. Sollen, aus welchen Gründen auch immer, die vollständigen Zugangsdaten übertragen werden, dürfen sie nicht unbegrenzt gültig sein, sondern nur für einen relativ kurzen Zeitraum. Wie lang der ist, muss im Einzelfall entschieden werden, da die neu registrierten Benutzer ja Zeit haben müssen, um sich damit anzumelden. Außerdem sollte es nach der ersten Anmeldung mit diesen Zugangsdaten einen Zwang zum Setzen eines neuen Passworts geben, so dass die übertragenen Zugangsdaten danach unbrauchbar sind.
  • Werden Aktivierungs-Links verschickt, müssen die wirklich zufällig und nicht vorhersagbar erzeugt werden. Es spricht nichts dagegen, z.B. den Benutzernamen oder weitere Daten in der URL zu speichern, zusätzlich muss aber ein wirklich zufälliger Wert verwendet werden, so dass ein Angreifer keine gültigen Aktivierungs-Links erzeugen kann.
    Im Extremfall, in dem der Link alle zum Anlegen des neuen Benutzerkontos verwendeten Daten enthält, könnte ein Benutzer sogar die Registrierung umgehen und nur durch das Erzeugen eines entsprechenden Links ein neues Benutzerkonto anlegen.
    Außerdem dürfen die Aktivierungs-Links nur einmal zu benutzen sein, damit ein Angreifer, dem so ein Link in die Hände fällt, darüber nicht später noch die Kontrolle über das betreffende Benutzerkonto erlangen kann.
  • Vollständige Daten sollten sicherheitshalber nicht übertragen werden. Wozu auch - die kennt der Benutzer ja. Insbesondere dürfen keine Informationen, die zum Zurücksetzen des Passworts oder für ähnliche Fallback-Funktionen verwendet werden, übertragen werden. Geraten die in falsche Hände, ist das entsprechende Benutzerkonto danach kompromittiert.
Schwachstellensuche durch Angreifer
About Security: Die komplette Serie

Ein Angreifer bzw. Black-Box-Tester registriert sich bei der Webanwendung und stellt dabei fest, ob und wie Zugangsdaten an ihn übertragen werden.

Wird ein Aktivierungs-Link verschickt, werden weitere Benutzernamen registriert und die dabei gewonnenen Aktivierungs-Links auf Regelmäßigkeiten geprüft. Danach wird versucht, ob sich die den bekannten Links vorhergehenden oder folgenden Links erfolgreich erraten lassen.

Außerdem ist von Interesse, was bei der mehrmaligen Nutzung des Aktivierungs-Links passiert. Kann man damit vielleicht auch später noch Zugriff auf das Konto erlangen? Evtl. sogar, nachdem das Passwort geändert wurde?

In der nächsten Folge geht es um typische Implementierungsfehler im Bereich der Authentifizierung.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security - Übersicht zum aktuellen Thema:

Kommentare

Folgende Links könnten Sie auch interessieren