Authentifizierung sicher planen

Die vier größten Fehler bei Authentifizierungsvorgängen

| Redakteur: Peter Schmitz

Entwickler sollten sicherstellen, dass sie die vier häufigsten Schwachstellen prüfen und gegebenenfalls so gut es geht beheben, bevor es zum Penetrationstest kommt.
Entwickler sollten sicherstellen, dass sie die vier häufigsten Schwachstellen prüfen und gegebenenfalls so gut es geht beheben, bevor es zum Penetrationstest kommt. (Bild: gemeinfrei / Pixabay)

Jede Web- und Mobilanwendung, die von Unternehmen benutzt wird, setzt Authentifizie­rungsmethoden ein. Sie sind Dreh- und Angel­punkt der Sicherheit von Applikationen. Au­then­ti­fizie­rungs­vorgänge sichern nicht nur die Anwendungen selbst, sondern schaffen auch individuellen Zugriffsschutz für jedes Benutzer­konto. Gleich­zeitig können sie jedoch auch zu einem der gefährlichsten Einfallstore für Hacker und Cyberkriminelle werden.

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:

1. Fehler: 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 beispielsweise die API von haveibeenpwned einsetzen.

2. Fehler: 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.

3. Fehler: 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. Fehler: 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.

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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46151415 / Application Security)