Donnerstag, 4. November 2010 |
In About Security #214 wurde u.a. beschrieben, wie bzw. wieso es zur Wahl schlechter, d.h. unsicherer Passwörter kommt. Wie kann ein Angreifer eine solche Designschwäche ausnutzen?
Am einfachsten hat es ein Angreifer, wenn die Regeln für das Bilden von Passwörtern auf der Website angegeben sind. Gibt es keine oder wurden sie nicht auf der Website veröffentlicht, hat ein Angreifer je nach Webanwendung zwei Möglichkeiten: Kann er sich nach Belieben selbst registrieren, kann er mehrere Benutzerkonten mit unterschiedlich schwachen Passwörtern anlegen. Hat er nur Zugriff auf ein bestimmtes Benutzerkonto, dessen Passwort er aber selbst bestimmen kann, kann er darüber verschiedene schwache Passwörter testen.
Weiß der Angreifer, ob Regeln für Passwörter gelten und wie die aussehen, erleichtert das sein weiteres Vorgehen:
Gibt es keine Regeln, werden einige Benutzerkonten mit einfachen Wörtern als Passwort geschützt sein. Statt "Hunde, Katze, Maus" wie früher mal bei den Montagsmalern werden dann "passwort", "geheim", "qwertz" oder der Benutzername probiert - viel zu oft erfolgreich
Gibt es Regeln, schränken sie evtl. die Auswahl möglicher Passwörter ein. So ist ein Passwort, das aus Gross- und Kleinbuchstaben sowie Ziffern besteht, theoretisch sehr sicher. Sorgen die Passwortregeln aber z.B. dafür, das der erste Buchstabe gross, alle folgenden klein und die letzten zwei Zeichen des immer 5 Zeichen langen Passworts Ziffern sein müssen, erleichtert das einen Brute-Force-Angriff: Der Angreifer muss nur alle Kombinationen von Aaa00, Aaa01, ..., über Aab00 bis Zzz99 durchprobieren, um mit Sicherheit fündig zu werden. Da die Benutzer meist leicht zu merkende Passwörter wählen, führt ein bisschen Nachdenken oft noch eher zum Ziel. So ist die Wahrscheinlichkeit dafür, das der Benutzer mit dem Benutzernamen Manni, der sich 2009 registriert hat, ein Passwort wie Man09 gewählt hat, ziemlich groß.
Wie man gute Passwörter wählt, wird z.B. im Standpunkt Sicherheit vom 17. November 2008 beschrieben. Entsprechend müssen auch die Regeln für Passwörter implementiert werden.
Neben schwachen Passwörtern ist die Möglichkeit, beliebig viele
Kombinationen von Benutzername und Passwort ausprobieren zu können,
eine weitere sehr häufige Schwachstelle im Bereich der
Authentifizierung. Die Aufgabe "Durchprobieren aller möglichen
Kombinationen" lässt sich, egal für was, sehr einfach einem
Computer übertragen. Entsprechend gibt es auch mehrere Programme, die
solche Brute-Force-Angriffe auf Authentifizierungssysteme durchführen.
Dabei können zum einen übliche Werte aus einem Wörterbuch
durchprobiert werden, zum anderen alle möglichen Werte systematisch
erzeugt und ausprobiert werden. Besonders gefährdet sind dann
Standard-Benutzerkonten wie z.B. admin
,
administrator
, demo
oder test
: Die
sind in vielen Anwendungen vorhanden, und der Angreifer muss "nur noch" das
zugehörige Passwort ermitteln.
Um Brute-Force-Angriffe abzuwehren, darf nur eine bestimmte Anzahl fehlgeschlagener Login-Versuche pro Zeiteinheit möglich sein. Wie das für die zu schützende Webanwendung am besten realisiert wird, hängt von den jeweiligen Bedingungen ab. Einige Möglichkeiten, die sich auch kombinieren lassen, sind:
Dabei darf die Abwehr von Brute-Force-Angriffen nicht auf dem Client implementiert werden. Dort könnte sie vom Angreifer problemlos manipuliert und umgangen werden. Gibt es z.B. einen Cookie, der die fehlgeschlagenen Login-Versuche zählt, könnte ein Angreifer diesen laufend auf 0 zurück setzen und damit einen durchgeführten Brute-Force-Angriff vor der Webanwendung verbergen.
Für die Authentifizierung werden i.A. (mindestens) zwei Informationen benötigt: Ein gültiger Benutzername und das zugehörige Passwort. Kennt der Angreifer keinen gültigen Benutzernamen, muss er bei einem Brute-Force-Angriff also zwei Parameter erraten. Verrät ihm die Webanwendung aber, ob ein gewählter Benutzername gültig ist oder nicht, muss er danach nur noch das zugehörige Passwort finden. Auch im Rahmen von Social-Engineering-Angriffen können Benutzernamen hilfreich sein. Jeder kennt wohl den Satz
eBay hat diese Mitteilung anVorname Nachname
(Benutzername
) gesendet. Ihr Vor- und Nachname in dieser Mitteilung sind ein Hinweis darauf, dass die Nachricht tatsaechlich von eBay stammt.
aus eBay-Mails. Vor kurzem gab es die ersten Phishing-Versuche, die das mit
eBay hat diese Mitteilung an E-Mail-Adresse
gesendet. Ihre E-Mail-Adresse in dieser Mitteilung ist
ein Hinweis darauf, dass die Nachricht tatsaechlich von eBay
stammt.
zu imitieren versuchten - stände da der richtige Benutzername, wäre es deutlich glaubhafter.
Sofern der Benutzername nicht sowieso allgemein bekannt ist (z.B. die Mailadresse bei einer Webmail-Anwendung) ist es besser, bei einem fehlgeschlagenen Login eine Meldung wie "Benutzername und Passwort passen nicht zusammen" an stelle von "Benutzername nicht vorhanden" und "Passwort falsch" auszugeben.
In der nächsten Folge wird beschrieben, wie die hier vorgestellten Probleme im Rahmen eines Angriffs ausgenutzt werden können.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!