Donnerstag, 4. November 2010


Topthema

Donnerstag, 30. Juli 2009 | Topthema

About Security #215: Schwachstellen-Suche: Authentifizierung – Brute Force

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

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?

Schwache Passwortregeln erkennen

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.

Der digitale Vorschlaghammer: Brute-Force

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.

Brute-Force-Angriffe abwehren

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:

  • Nach dem z.B. dritten fehlgeschlagenen Login-Versuch für einen Benutzernamen gibt es eine Zwangspause
  • Nach dem z.B. zehnten fehlgeschlagenen Login-Versuch von einer bestimmten IP-Adresse aus gibt es eine Zwangspause, wobei berücksichtigt werden muss, das es sich auch um die IP-Adresse eines Proxy-Servers handeln kann, hinter dem sehr viele Benutzer stecken können.
  • Nach jedem fehlgeschlagenen Login-Versuch für einen Benutzernamen gibt es eine Zwangspause, die sich mit jedem weiteren Fehlschlag erhöht, z.B. verdoppelt - z.B. von 1 Sekunde nach dem ersten Fehlversuch auf 2 Sekunden nach dem zweiten, 3 Sekunden nach dem dritten usw.. Was ein normaler Benutzer kaum merkt, behindert einen automatisierten Angriff stark.

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.

Unfreiwillige Hilfestellungen: Fehlermeldungen
About Security: Die komplette Serie

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 an Vorname 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!

Carsten Eilers

About Security - Übersicht zum aktuellen Thema:

Kommentare

Folgende Links könnten Sie auch interessieren