Die gefährlichsten Schwachstellen bei Authentifizierungsvorgängen

Jede einzelne Web- und Mobilanwendung, die von Unternehmen benutzt wird, setzt unterschiedliche Authentifizierungsmethoden ein. Sie sind Dreh- und Angelpunkt der Sicherheit von Applikationen.

Authentifizierungsvorgänge sichern nicht nur die Anwendungen selbst, sondern schaffen auch individuellen Zugriffsschutz für jedes Benutzerkonto. Gleichzeitig können sie jedoch auch zu einem der gefährlichsten Einfallstore für Hacker und Cyberkriminelle werden, denn viele Authentifizierungsprozesse weisen in Penetrationstests unterschiedliche Schwachstellen vor: so weisen in aktuellen Tests des Veracode MPT Teams neun von zehn Applikationen mindestens eine der folgenden Schwachstellen vor:

Anzeige

1. Schwache Passwortregeln

Überraschenderweise findet man immer noch etliche Anwendungen und Websites, die schwache Passwörter zulassen. Dies rührt daher, dass Entwickler versuchen, die richtige Balance zwischen Sicherheit und Nutzerfreundlichkeit zu finden. Bei einer Mindestlänge von nur fünf Zeichen wird der Passwortsicherheit allerdings eindeutig zu wenig Wert zugeschrieben. Im Endeffekt führt dies dazu, dass viele Endnutzer weiterhin Passwörter wie „123456“ oder „Passwort“ benutzen. Dadurch erhalten Cyberkriminelle kinderleicht Zugang zu den Benutzerkonten und viele Datenpannen von Unternehmen lassen sich oft auf ein genau solches Passwort zurückführen. Entwickler sollten also sicherstellen, dass Passwörter mindestens acht Zeichen haben müssen, alphanumerische Zeichen enthalten, eine Mischung aus Groß- und Kleinbuchstaben vorweisen und weder den Benutzernamen noch den Firmennamen beinhalten dürfen. Um kompromittierte Passwörter zu erkennen, können Entwickler beispielweise die API von haveibeenpwned einsetzen.

2. Fehlende Zwei-Faktor-Authentifizierung

Zwei-Faktor-Authentifizierung (2FA) ist mittlerweile eine der wichtigsten Applikations-Sicherheitsmaßnahmen und wird nichtsdestotrotz von vielen Entwicklern übersehen. 2FA kann auf vielen verschiedenen Wegen implementiert werden: RSA Tokens, Code-Generatoren wie der Google Authenticator oder einmalige Codes, die per SMS an den Endnutzer geschickt werden. Kompliziert wird es nur dann, wenn sich sowohl Nutzer mit Admin-Rechten als auch Nutzer ohne Admin-Rechte mit der gleichen Authentifizierungsmethode in die Anwendung einloggen. Für Anwendungen dieser Art reicht eine herkömmliche 2FA oft nicht aus. Es empfiehlt sich administrative Funktionen, wie zum Beispiel Benutzerkontenverwaltung, über eine separate Anwendung laufen zu lassen, die mit einer noch stärkeren Authentifizierungsmethode gesichert ist.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

3. ​Mangelende Vorkehrungen gegen User Enumeration

Bei fehlerhaften Login-Versuchen liefern Anwendungen oft Fehlermeldungen wie „Benutzername existiert nicht“ oder „Ungültiges Passwort“. User Enumeration beschreibt die systematische Ausnutzung dieses Umstands. Denn die Fehlermeldungen enthalten Informationen, die Rückschlüsse darüber erlauben, ob ein Konto mit dem entsprechenden Username existiert oder nicht. Und somit ist der Angreifer seinem Ziel einen Schritt näher. Vermeiden lässt sich User Enumeration, indem Entwickler anstatt unterschiedlicher Fehlermeldungen nur eine einzige generische einführen, wie zum Beispiel „Falls unser System Ihren Account gefunden hat, erhalten Sie in Kürze eine E-Mail“.

4. Mangelnde Verschlüsselung bei Passwort-Resets

Auch beim Zurücksetzen von Passwörtern können Schwachstellen entstehen. Die zwei Hauptgründe hierfür sind schlichtweg schwache Security-Tokens und die Tatsache, dass viele Anwendungen das Passwort per E-Mail an den Endnutzer schicken. Entwickler sind sich oft nicht im Klaren, dass Base64 Kodierung nicht automatisch auch Verschlüsselung gewährleistet. Wird also beim Vorgang des Passwort-Resets ein Security-Token eingesetzt, das auf Base64 basiert, kann dieses relativ einfach entschlüsselt werden. Im zweiten Schritt können Cyberkriminelle dann durch das Hinzufügen einer neuen E-Mail-Adresse das Passwort des Endnutzers ändern und sich somit Zugang zum Account verschaffen. Eine weitere Schwachstelle kann durch das Versenden von Passwörtern an Endnutzer via E-Mail entstehen. Vertrauliche Daten per E-Mail zu schicken, birgt ein extrem hohes Risiko. Passwörter könnten dadurch ohne angemessene Verschlüsselung, beispielsweise durch „Salting“ oder „Hashing“, für Eindringlinge leicht zugänglich in den Datenbanken gespeichert werden. Die meisten Frameworks verfügen heutzutage über integrierte Funktionen, die bereits auf Sicherheit geprüft wurden. Entwickler sollten also generell die bereits im Framework bestehenden Funktionen einsetzen, anstatt eigene Passwort-Reset Funktionen zu programmieren.

Fazit

Generell sollten Entwickler also im ersten Schritt sicherstellen, dass sie die beschriebenen vier häufigsten Schwachstellen prüfen und gegebenenfalls so gut es geht beheben, bevor es zum Penetrationstest kommt. In den meisten Fällen gelingt dies auch ohne großen Aufwand, sodass den Entwicklerteams mehr Zeit für die Bearbeitung komplexerer Schwachstellen bleibt.

www.veracode.com
 

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.