Codepurple Logo Codepurple Logo Codepurple Logo
  • Services
  • Blog
  • About us
  • Contact
  • de
  • /

  • en
  • Language:

  • de
  • /

  • en

Penetrationtest : 2-Faktor-Auhtentifizierung

Only in German available.

Published on: July 6, 2023
Author: Thomas Federer

Unser erster Blogbeitrag zu diesem Thema behandelte die 2-Faktor-Authentifizierung für den Benutzer. Weshalb diese wichtig ist und weshalb 2FA unbedingt überall aktiviert werden sollte (Blog: 2FA ist wichtig).

In diesem Blog-Beitrag beleuchten wir einige Punkte, auf welche wir bei einem Security-Review bei 2FA besonders achten. Denn 2FA stellt einen wichtigen Layer der Sicherheit dar. Unser Ziel dabei ist immer, den 2FA Schritt zu umgehen.

2FA

Überspringen des 2FA Verifikations-Schrittes

Wir prüfen, ob nach der Eingabe des korrekten Benutzernamens und Passwortes schon eine gültige Session vorhanden ist und der 2FA Schritt übersprungen werden kann. Das konkrete Vorgehen hängt dabei von der Webapplikation und der Implementation von 2FA ab.

Benutzen eines 2FA Tokens eines anderen Benutzers

Es wird von uns getestet, ob das 2FA Token benutzergebunden ist oder nicht. Es ist wichtig, dass nicht irgendein 2FA Token akzeptiert wird, sondern nur 2FA Token des entsprechenden Benutzers.

Remember-Me Funktion prüfen

Viele Applikationen bieten die Möglichkeit, dass man die Funktion "Remember-Me" für zum Beispiel 30 Tage aktivieren kann. Dies hilft bei einem privaten Gerät, dass man den 2FA Schritt nicht bei jedem Login durchführen muss.

Dabei wird von uns kontrolliert, wie die "Remember-Me" umgesetzt ist. Spannend für uns ist hier, wie diese Funktion die Daten speichert, meist ist dies via Cookie gelöst.

Dabei gilt es zwei wichtige Aspekte zu beachten:

  1. Der Wert des Cookies sollte nicht "erraten" werden können, ansonsten kann ein Angreifer das Remember-Me Cookie selber konstruieren und so den 2FA Schritt umgehen.
  2. Der Wert des Cookies muss auf dem Server beim entsprechenden Benutzer hinterlegt und dann auch geprüft werden. Ansonsten kann man ein Remember-Me Cookie eines anderen Benutzers verwenden und so wiederum den 2FA Schritt umgehen.

Schnittstellen / APIs ohne 2FA

Eine Applikation bietet oft verschiedene Schnittstellen an, um mit ihr zu interagieren: Webbrowser, Mobile-Applikation und verschiedene weitere APIs (Bsp. REST, SOAP, etc.). Bei jeder Schnittstelle schauen wir, ob bei allen Möglichkeiten der der 2FA Schritt implementiert ist. Ansonsten kann ein Angreifer zum Beispiel 2FA in einer alten und "vergessenen" SOAP-Schnittstelle umgehen.

Rate-Limits

Bei der Verifizierung des 2FA-Schrittes ist ein sinnvolles Rate-Limit zwingend notwendig. Dabei überprüfen wir, ob ein Rate-Limit vorhanden ist und dass dieses auch forciert wird. Ein 2FA Token ist in der Regel nummerisch, 6 Zeichen lang und 30 Sekunden gültig. Ohne Rate-Limit ist es technisch ohne weiteres möglich, in dieser Zeit alle möglichen Tokens zu probieren. Wichtig ist, dass das Rate-Limit nicht anhand der IP umgesetzt ist, sondern auf den Nutzer, welcher sich einloggen möchte, geht.

Verhalten nach Passwort-Reset

Im Zusammenhang mit der Überprüfung von 2FA nehmen wir immer auch die Passwort-Reset-Funktion unter die Lupe. 2FA sollte bei einem Passwort-Reset nicht automatisch deaktiviert werden. Weder beim Anfordern des Links noch danach beim erfolgreichen Neusetzten des Passwortes. Der 2FA Schritt sollte immer aktiv bleiben. Sonst macht man es einem Angreifer unter Umständen einfach.

Contact us without obligation:

Wurde es bei Ihnen richtig implementiert? Wir überprüfen den Login-Prozess.

More blog posts

You may be interested in the following blog posts:

  • Ungewollte Datenlecks (online und offline)
  • Interessante Fakten zu Ransomware Teil 4/4
  • Interessante Fakten zu Ransomware Teil 2/4

A password with 8 characters with numbers, upper and lower case letters and symbols can be cracked in under one hour.

Source: Hive Systems

Hello

X

Wurde es bei Ihnen richtig implementiert? Wir überprüfen den Login-Prozess.

Contact us without obligation:

Speech bubble

Do you have any questions or would you like an appointment?

Kathrin Müller is looking forward to hearing from you and will be happy to organize a meeting according to your needs.

Contact

nanio GmbH (Codepurple)
Moosweg 24
5606 Dintikon

+41 79 823 45 30
rhino@codepurple.ch

Follow us

Linekdin

Imprint| Privacy| © Codepurple 2025. All rights reserved