Ist Drupal sicher vor Brute-Force-Login-Angriffen?

9

Ein Brute-Force-Angriff ist ein Versuch, unbefugten Zugriff auf eine Website zu erlangen, indem kontinuierlich verschiedene Kombinationen eines Passworts generiert und eingegeben werden. Diese Aufgabe wird normalerweise von einer Automatisierungssoftware (einem "Bot") ausgeführt, die nach Erfolgs- oder Fehlermeldungen sucht und ständig neue Kennwörter ausprobiert, bis eine Erfolgsmeldung angezeigt wird.

Ist Drupal 7 standardmäßig sicher? Was ist eine sicherere Konfiguration dafür? Welches Modul kann mir helfen, mich sicherer anzumelden?

Yusef
quelle
1
Die Antwort hängt davon ab, um welche Art von Angriff es sich handelt. Meinen Sie einen Brute-Force-Angriff, bei dem der Angreifer vermutet, dass der Benutzer "admin" das Passwort "Password1" hat, und dann vermutet, dass das Passwort "javagod" lautet?
greggles
Ja, als Titel der Frage Brute-Force-Login-Angriff :(
Yusef

Antworten:

12

Wie Sie im Code sehen können, registriert die Funktion user_login_final_validate ein Hochwasserereignis. Das heißt, wenn dieselbe IP mehrmals versucht, ein Benutzer- / Anmeldekennwort zu verbinden, werden wir für eine Weile "gesperrt".

Dies ist einer der Schutzfunktionen, die Drupal bietet. Ein anderes, und ich denke, wenn es Ihrer Website passiert, werden Sie es sehr schnell bemerken, es ist das CSRF-Token, das Drupal für jedes Formular generiert.

Dies bedeutet, dass der Angreifer-Bot das Formular generieren, dann das Token abrufen und es dem Übermittlungsformular zuordnen sollte. Das ist sehr zeitaufwändig und wird den Angreifer wahrscheinlich entmutigen. Aber zuerst wird Ihr Server heißer.

yvan
quelle
Für das Simulations-Anmeldeformular benötigen Sie lediglich das Drupal-Anmeldeformular zum Kopieren / Einfügen. Sie können es testen, wenn Sie HTML-Code einer anderen Drupal-Site in Ihre lokale Testdatei kopieren / einfügen (nur sicher, dass die Aktion des Formulars unbedingt an domain.com/user/ weitergeleitet wird). Login ), führen Sie es lokal aus, füllen Sie es mit einem gültigen Benutzer und übergeben Sie, dass Sie angemeldet sind !!!!!
Yusef
Dieses Formular funktioniert so lange, wie Drupal das Token (und das Formular) in seiner Datenbank zwischengespeichert hat. Sobald der zwischengespeicherte Speicher abgelaufen ist, funktioniert Ihr Formular nicht mehr.
Yvan
Ich habe den Cache geleert, arbeite aber immer noch
Yusef
1
Der CSRF-Schutz kann deaktiviert werden und ist im Anmeldeformular deaktiviert. Es ist auch im Suchformular deaktiviert. Aber wie Yvan sagte, verhindert der Hochwasserschutz Brute-Force-Angriffe auf die Form selbst. Dies würde einen verteilten Angriff von jemandem, der Zugriff auf ein Botnetz hatte, nicht verhindern, aber eine Protokollanalyse (so etwas wie Droptor), die nach wiederholten fehlgeschlagenen Anmeldungen für denselben Benutzer sucht, würde dies beheben.
greggles
3

Zusätzlich zu den guten Maßnahmen, die Drupal 7 implementiert, um Anmeldeversuche zu stoppen, würde ich empfehlen, das Spambot-Modul zu installieren , das sich speziell mit neuen Benutzerregistrierungsversuchen befasst.

Bei jeder neuen Benutzerregistrierung fragt dieses Modul den Stop Forum Spam- Server ab, um festzustellen , ob der Benutzer, der die Registrierung versucht, ein bekannter Bot ist.

Sie können optional mit den Registrierungsversuchen Ihrer Website zum Stoppen von Forum-Spam beitragen.

ermannob
quelle
3

Es gibt Hochwasserschutz

Dieses Projekt soll eine Verwaltungsschnittstelle für versteckte Hochwasserschutzvariablen in Drupal 7 hinzufügen, z. B. die Begrenzungen für Anmeldeversuche und zukünftige versteckte Variablen.

Die Funktionen zum Definieren und Interagieren mit dem zentralen Hochwasserschutzsystem

Das Hochwassersystem bietet uns drei Funktionen:

flood_register_event($name, $window = 3600, $identifier = NULL)

Registrieren Sie eine Veranstaltung für den aktuellen Besucher des Hochwasserschutzmechanismus.

flood_clear_event($name, $identifier = NULL)

Lassen Sie den Hochwasserschutzmechanismus ein Ereignis für den aktuellen Besucher vergessen.

flood_is_allowed($name, $threshold, $window = 3600, $identifier = NULL)

Überprüft, ob der Benutzer mit dem angegebenen Ereignis fortfahren darf. Grundsätzlich prüfen wir, ob ein Benutzer Zugriff hat, indem wir Flut_is_allowed aufrufen. Wenn es FALSE zurückgibt, werfen Sie einen 'Access Denied'. Immer wenn ein Benutzer die Aktion ausführt, rufen wir Flut_Register_Erevent auf.

Standardmäßig wird die IP-Adresse des Benutzers überprüft. Wir könnten aber auch eine andere eindeutige Kennung wie die Benutzer-ID übergeben.

Oben kopiert von Playing with Drupal's Flooding System

niksmac
quelle
1
Bitte nicht ohne ordnungsgemäße Zuordnung aus dem Web kopieren und einfügen
Clive
1
@Clive Ich werde mich von nun an darum kümmern. Und das möchte ich aber vermitteln.
Niksmac
0

Als ich über dieses Problem nachdachte (und es hatte), schrieb ich ein Modul, mit dem Sie diese Art von Angriffen verhindern können: https://drupal.org/project/AntispammerBot

Sie können auswählen, welche Rollen sicher sind, wie viele Knoten der Benutzer veröffentlichen kann, bevor er als Spam-Angriff betrachtet wird.

Alejandro Moreno
quelle