Der Artikel soll dem Leser das Sicherheitsbewusstsein in Umgang mit Passwörtern und deren Nutzung in verschiedenen Anwendungsbereichen stärken. Die nachfolgenden Erläuterungen und Informationen liefern einige Beispiele und Anregen. Dies soll nicht die professionelle Hilfe von Sicherheitsexperten ersetzen. Der Autor hat versucht seine Kenntnisse weiter zu vermitteln und übernimmt daher keine Gewähr für den nachfolgenden Inhalt.
Vermeidung / Blockierung von Brute-Force Attacken (Blocking Brute-Force Attacks)
Ein Angreifer kann über Bruce Force Angriffen versuchen für einen Benutzernamen das Passwort auszuspionieren.
Was ist überhaupt Brute-Force?
Der Brute-Force-Algorithmus versucht systematisch alle möglichen Schlüssel / Kombinationen zu überprüfen, bis die richtige Kombination gefunden ist. Damit wird letztendlich versucht das (geheime) Passwort bzw. den Hash zu ermitteln.
Passwortlänge / Kombinationen und Dauer
Abhängig von der Passwortlänge und dessen Komplexität gibt es auch entsprechende Anzahl an möglichen Kombinationen.
Die Anzahl der Kombinationen errechnet sich gemäß folgender Formel.
Kombinationen = [Zu prüfende Zeichen] ^ [Zeichenlänge des Passwortes]
Ein paar persönliche einfache Versuchsreihen zur Ermittlung der Dauer von verschiedenen Passwortlängen.
5 Zeichen für [Zeichenlänge des Passwortes] = ca. 33 s
6 Zeichen für [Zeichenlänge des Passwortes] = ca. 40 min
Siehe Links.
Um die Geschwindigkeit von Angriffen zu erhöhen, werden oft auch Wörterbücher (dictionary words) und modifizierte Wörterbücher eingesetzt. Der Grund liegt darin, dass viele Benutzer anstatt von komplexen „Zufallspasswörter“ bekannte Begriffe als Passwort verwenden.
Einige Algorithmen fangen bei den zu prüfenden Zeichen mit einem „a“ an. Bei einem Versuch mit einem Passwort welches mit einem „a“ beginnt, war die Dauer für das ermitteln des Passwortes geringer.
Woran erkenne ich Angriffe?
- Anmeldeversuche mit folgendem Aufruf. http://user:password@www.beispiel.de
- Erhöhte Logins von der selben IP-Adresse
- Logins mit verschiedenen Benutzernamen von der selben IP-Adresse
- Fehlerhafte Logins von alphanumerischer Änderung des Benutzernamens oder des Passwortes
- Erhöhte Last und Bandbreite bei Login Versuchen
Für Bruce-Force Angriffe werden oft verfügbare Tools eingesetzt. Das Erkennen von solchen Angriffen ist oft leicht möglich, das Verhindern ist jedoch entsprechend komplex.
Mögliche Lösungsansätze zur Vermeidung von Angriffen.
Ansatz | Beschreibung |
Sperrung IP-Adresse | Nach einem Angriffsversuch wird die IP-Adresse des Angreifers gesperrt.
|
Sperrung Account | Nach einer festgelegten Anzahl an Zugriffsversuchen wird der Account gesperrt.
|
Pausen zwischen Fehlversuchen | Nach einer Fehleingabe sollte entweder per (sicherer) Zufallszahl, oder per logarithmischer Erhöhung die Pausenzeit erhöht werden. |
Hinweismeldung bei fehlerhafter Anmeldung | Bei Fehlversuchen sollte immer eine andere Meldung nach „außen“ gegeben werden. Damit soll den Angriffstools das Verhalten bei fehlerhafter Anmeldung erschwert werden.
Eventuell können auch Grafiken mit dynamischen Meldungstext und dyn. Positionierung zum Einsatz kommen. Wichtig: Die Meldung darf keine Details (wie bspw. „Benutzernamen nicht bekannt“) liefern. è Das Verhalten der Prüfroutine darf nicht vorhersehbar sein! |
Zusätzliche Möglichkeiten der Passwortabsicherung |
|
Logging | Alle Angriffsversuche sind vollumfänglich mit Zeitpunkt, IP-Adress etc. zu loggen. Hier sind auch zwingend die entsprechenden Monitorings/Überwachungen einzurichten. |
Passwortspeicherung | Im Backend niemals Passwörter direkt speichern, sondern nur entsprechende Hashes. Diese sind dann entsprechend gegen die gehashten Anmeldedaten zu validieren.
Auch darauf achten, dass Passwörter nicht direkt in Konfig-Dateien lesbar abgespeichert werden. |
Passwort Policy
(Anlage / Änderung) |
|
Passwort Prüfroutine |
|
Sicherheit im Backend
(Server) |
|
URL Aufruf | Niemals wichtige Daten direkt als URL Parameter übergeben. (Egal ob per GET oder POST Methode)
Bsp. schlecht: http://www.beispiel.de/index.aspx?userid=4711 besser: (alle Parameter zusammenfassen und verschlüsseln) |
Benutzername | Der Benutzername sollte wenn möglich nicht auf den Benutzer schließen. Bspw. keine Email-Adresse wie hans.huber@beispiel.de |
Bitte immer daran denken, dass auch Angreifer die Verfahren kennen!
Der Angriff soll erschwert werden und somit die Möglichkeit liefern, einen Angreifer zu identifizieren.
Links:
- Sicherheitsrichtlinien: https://www.owasp.org/index.php/Main_Page
- Passwörter, Kombinationen: http://www.1pw.de/brute-force.html
- Brute Force Calculator: http://calc.opensecurityresearch.com/
- Server Tipps: http://serverzeit.de/tutorials/firewall/schutz-vor-bruteforce-angriffen