it-swarm.com.de

Anmeldeversuche stillschweigend einschränken

Ich habe den folgenden Ansatz zur Begrenzung der Anmeldungsrate auf einer Website gesehen, an der ich gearbeitet habe, aber ich kann nicht herausfinden, ob dies eine gute Idee ist:

Nach jedem fehlgeschlagenen Anmeldeversuch sperrt die Site das Benutzerkonto für den Bruchteil einer Sekunde. Wenn das Konto gesperrt ist, schlagen Anmeldeversuche fehl, auch Versuche mit korrekten Anmeldeinformationen. Dem Benutzer wird nicht mitgeteilt, dass sein Konto gesperrt ist, sondern nur, dass seine Anmeldung fehlgeschlagen ist.

Die Idee ist, dass echte Benutzer im Allgemeinen länger als die Sperrzeit benötigen, um ihre Anmeldeinformationen erneut einzugeben (und sie wahrscheinlich beim dritten Mal langsamer erneut eingeben, wenn sie versehentlich die Sperrung auslösen). In der Zwischenzeit würden Hacker, die Passwörter brutal erzwingen, die Sperrung mit umfangreichen Anmeldeversuchen auslösen.

Was sind die Probleme bei diesem Ansatz?

33
James_pic

Es gibt eine wachsende Anzahl von "langsamen Brute-Force-Angriffen". Wenn ein Bot-Netz mit einer Liste von Zielen in regelmäßigen Abständen nur wenige Versuche mit jedem Ziel unternimmt, um nicht von den üblichen Methoden zur Überwachung schneller Angriffe erfasst zu werden.

Ich verwalte eine Reihe von Websites und sehe normalerweise fehlgeschlagene Anmeldeversuche im Bereich von 3 bis 10 Versuchen auf mehreren nicht verwandten Websites mit genau denselben Benutzernamen und Kennwortkombinationen. Normalerweise ist es eine alphabetische Liste, aber nicht immer. Die Versuche werden normalerweise einmal täglich für eine beliebige Anzahl von Tagen durchgeführt.

Die Raffinesse dieser Hacking-Versuche ist sehr gering, aber sie könnten wahrscheinlich eine kurze Sperre umgehen, wie Sie beschreiben. Jeder Benutzer mit einem schwachen Passwort kann/wird möglicherweise kompromittiert, und der Angriff soll unter dem Radar bleiben.

Ihre Methode kann für eine bestimmte Art/Geschwindigkeit eines schnellen Angriffs sehr nützlich sein, sollte jedoch nur eines von vielen Tools sein, wenn Sie sie überhaupt verwenden möchten.

23
KnightHawk

Eine Brute-Force-Funktion kann Pausen implementieren, die der von Ihnen angezeigten kurzen Sperrlücke entsprechen. Dies würde ein Brute-Force-Skript verlangsamen. Das dauerhafte Sperren des Kontos (oder das Erzwingen von CAPTCHA- und Sicherheitsfragen zusätzlich zu zukünftigen Anmeldeversuchen) nach x aufeinanderfolgenden fehlgeschlagenen Versuchen ist jedoch ein besserer Weg, um dieses Ziel zu erreichen. Ihr Ansatz hat zwar einen kleinen Vorteil, aber Sie möchten ihn sicherlich mit den traditionellen Anti-Brute-Methoden kombinieren.

27
armani

Ich mag den stillen Ansatz. Als Penetrationstester, der häufig Tests zur PCI-Konformität durchführt, stoße ich regelmäßig auf Probleme mit der Kontosperrung. PCI-DSS erfordert, dass Konten nach sechs fehlgeschlagenen Anmeldeversuchen für mindestens 30 Minuten (oder bis sie von einem Administrator entsperrt werden) gesperrt werden. Mein Problem mit Nachrichten, die besagen, dass das Konto gesperrt wurde, besteht darin, dass es sehr einfach ist, einem Benutzer einen Denial-of-Service zuzufügen. Dies kann auch verwendet werden, um gültige Benutzerkonten aufzulisten (wenn Sie jedoch brutal forcieren, würde man annehmen, dass ein gültiges Konto bereits bekannt ist).

Wenn Sie die Verzögerung erhöhen, bis ein "maximaler Schwellenwert" erreicht ist, und dann das Konto für einen längeren Zeitraum sperren, scheint mir der Ansatz vollkommen gültig zu sein. Außerdem sollten Sie die Uhr jedes Mal zurücksetzen, wenn ein weiterer Authentifizierungsversuch durchgeführt wird.

15
HillBillyHacker

Die Umsetzung wäre schwierig, um es richtig zu machen. Sie müssten verschiedene Möglichkeiten in Betracht ziehen, wie ein Angreifer erkennen kann, dass etwas nicht stimmt. Mein erster unmittelbarer Gedanke ist, dass ein Angreifer möglicherweise bemerkt, dass eine geschwindigkeitsbeschränkte fehlgeschlagene Anmeldung schneller zurückkehrt als eine normale fehlgeschlagene Anmeldung. Oder vielleicht ist die zurückgegebene Nachricht versehentlich etwas anders.

In jedem Fall sollte dies nicht die einzige Verteidigungslinie sein. Eine vollständige Sperrung ist für einen Benutzer eine Unannehmlichkeit, ebenso wie gehackte Konten. Zumindest sollte die Site weiterhin alle Anmeldeversuche mit demselben Algorithmus fehlschlagen, jedoch eine vollständige Sperrung erzwingen, bis der Benutzer sein Kennwort zurücksetzt. Sie sollten auch nur einmal per E-Mail oder SMS benachrichtigt werden, dass mehrere fehlgeschlagene Versuche stattgefunden haben. Sie werden wissen, ob sie es getan haben oder nicht.

Insgesamt denke ich, dass die Implementierung die Zeit nicht wert ist, verglichen mit dem Sperren des Benutzers oder dem Erfordernis eines Captchas oder eines sekundären Kennworts, wie einer Sicherheitsfrage, nach einigen Versuchen.

5
phyrfox

Die meisten verzögerungsbasierten Sperrmechanismen geben eine progressive Verzögerung an. Wenn die Verzögerung mit der Zeit nicht zunimmt, reicht es möglicherweise nicht aus, ein adaptives Brute-Forcing-Programm zu stoppen - eines, das langsamer wird, um die kleinen Verzögerungen zu bewältigen. Der Nachteil im ursprünglichen Beispiel ist, dass die Brute Force möglicherweise nicht ausreichend verlangsamt wird. Der Nachteil eines Algorithmus, der die Verzögerung erhöht, besteht darin, dass legitime Benutzer möglicherweise gesperrt werden.

3
baordog

Ich glaube nicht, dass Sie einen Benutzer auf diese Weise sperren möchten, sondern den Endpunkt sperren möchten. Es gibt zwei Gründe, warum Sie dies tun würden: Erstens, wenn ein Benutzer versucht, sich gleichzeitig mit dem Hacken seines Kontos anzumelden, ist er nicht betroffen, da er sich nicht vom selben Endpunkt aus anmeldet. Zweitens zielt der Angreifer möglicherweise nicht nur auf einen ab Konto, so dass sie gesperrt werden, wenn mehrere Konten sowie einzelne Konten ausprobiert werden.

Wie andere bereits betont haben, möchten Sie Ihr Timing nicht ändern oder andere Verteidigungslinien vernachlässigen.

1
hildred

Ich denke, vorübergehend IP sperren bietet keine gute Sicherheit. Weil Angreifer ihre IP per Proxy ändern und es mit verschiedenen IPs versuchen. Es kann durch zwei Methoden überwunden werden.

1. Captcha-Überprüfung auf Anmeldeseite hinzufügen

2. Fügen Sie vorübergehend die Sperr-IP hinzu.

In WordPress können wir Plugins dafür hinzufügen. https://wordpress.org/plugins/wp-limit-login-attempts/ Plugin, das diese beiden Feacher bereitstellt.

0
Arshid KV