Das Internet ist ein unberechenbarer Ort. Man weiß nie, wer auf der Suche nach Schwachstellen auf Ihrer Website ist. Sobald Sie Ihre Anwendung im Web bereitstellen, laden Sie Anfragen aller Art auf Ihren Server ein. Abgesehen von echten Nutzern können dies potenziell automatisierte Skripte, (meist harmlose) Bots oder Crawler, ethische/nicht-ethische Hacker oder einige neugierige Geeks (wie ich) sein.
Einer der wichtigsten Bereiche für diese Akteure ist die Ausnutzung des Authentifizierungs- oder Login-Systems einer Anwendung. Die Gefährdung der Sicherheit der Konten Ihrer Nutzer kann zu schwerwiegenden Folgen führen, wie z. B. dem Verlust persönlicher Daten, dem Missbrauch ihrer Identität (oder Ihrer Plattform) und sogar zu finanziellen Verlusten.
Es ist von größter Bedeutung, dass gesunde Sicherheitsstandards implementiert werden. Dazu gehören die Durchsetzung starker Passwortrichtlinien, die Verwendung von Salted Password Hashing, die Einführung von HTTPS, die Verhinderung von Brute-Force-Angriffen, die Verwendung von Zwei-Faktor-Authentifizierung und so weiter.
Die Absicherung einer Drupal-Site ist ein weites Feld für sich, aber in diesem Artikel werden wir uns darauf konzentrieren, den Standard-Flood-Control-Mechanismus zu verstehen und später die Verwendung von Login Security, einem Contributed-Modul, zur Verbesserung der Sicherheit zu untersuchen.
Standard-Flood-Control-Mechanismus von Drupal
In Drupal ist das Kernmodul User für die Bereitstellung der Funktionen im Zusammenhang mit der Verwaltung von Benutzerkonten zuständig, wie z. B. Authentifizierung, An- und Abmeldung, Passwortverwaltung, Registrierung, Rollen und Berechtigungen. Es bietet auch eine einfache, aber effektive Prävention gegen Brute-Force-Angriffe mithilfe seines Flood-Control-Mechanismus.

Jedes Mal, wenn eine Benutzerauthentifizierung fehlschlägt, wird dies als Flood-Ereignis betrachtet und ein Eintrag in das "Flood"-Schema vorgenommen, in dem der Ereignistyp, die Benutzerkennung, der Zeitstempel und der Ablauf dieses Flood-Ereignisses gespeichert werden. Es gibt zwei Möglichkeiten (Flood-Ereignistypen), wie Drupal fehlgeschlagene Anmeldeversuche verfolgt - IP-Adress-basiert und Benutzerkonto-basiert.

Standardmäßig wird eine IP-Adresse gesperrt, wenn es innerhalb einer Stunde 50 fehlgeschlagene Anmeldeversuche von dieser IP-Adresse gegeben hat. Außerdem wird die Kombination aus Benutzerkonto und Host-IP-Adresse gesperrt, wenn es innerhalb von 6 Stunden 5 fehlgeschlagene Anmeldeversuche für dieses Benutzerkonto von dieser IP-Adresse gegeben hat.


Dieser Standardmechanismus hat jedoch hauptsächlich zwei Einschränkungen.
- Es gibt keine Benutzeroberfläche für Site-Administratoren, um die zulässige Anzahl von Anmeldeversuchen und den Sperrzeitraum zu konfigurieren.
- Es sollte eine Möglichkeit geben, den Site-Admin oder den Benutzer zu benachrichtigen, dessen Konto ausgenutzt wird.
Lassen Sie uns nun untersuchen, wie wir Login Security verwenden können, um diese Einschränkungen zu überwinden.
Herunterladen und Installieren des Login Security Moduls
Die einzige Voraussetzung für das Modul ist das Kernmodul Ban. Sobald Sie sichergestellt haben, dass es aktiviert ist, können Sie mit der Installation des Login Security Moduls mit einer der folgenden Methoden fortfahren.
$ drush dl login_security && drush en -y login_security
oder
$ drupal module:download login_security && drupal module:install login_security
oder
$ composer require 'drupal/login_security:^1.5'
Nach dem Herunterladen des Moduls mit Composer aktivieren Sie es über die Admin-UI unter admin/modules.

Wie funktioniert das Login Security Modul?
Das Modul funktioniert durch die Implementierung von hook_validate() und überschreibt dadurch den Standard-Login-Formularablauf. Es verwaltet sein eigenes Schema, login_security_track, um fehlgeschlagene Anmeldeversuche zu verfolgen. Es kann einen laufenden Angriff anhand des konfigurierten Schwellenwerts innerhalb eines festgelegten Zeitfensters erkennen und den Site-Administrator per E-Mail oder Protokoll benachrichtigen.

Es bietet zwei Arten von Schutz gegen Angriffe - Soft und Hard. Der Soft-Schutz ähnelt dem Standard-Flood-Mechanismus, d. h. er verhindert vorübergehend, dass der Benutzer das Anmeldeformular absenden kann. Der Hard-Schutz hingegen sperrt die Host-IP-Adresse dauerhaft und ändert den Status des Benutzerkontos auf gesperrt.
Bei Bedarf kann der Site-Administrator die IP-Adressen über die Admin-UI unter admin/config/people/ban entsperren und die Benutzer unter admin/people entsperren. Zusätzlich kann es auch so konfiguriert werden, dass den Benutzern der letzte Zugriffs- und der letzte Anmeldezeitstempel angezeigt werden, um sie zusätzlich von ihrer Sicherheit zu überzeugen.

Konfigurieren von Login Security
Das Modul bietet ein Konfigurationsformular unter admin/config/people/login_security. Navigieren Sie also zu Verwalten → Konfiguration → Personen → Login Security.
Sie können die folgenden Optionen gemäß Ihren Sicherheitsbedürfnissen konfigurieren und dann auf "Konfiguration speichern" klicken, um die Änderungen anzuwenden.

Konfiguration |
Standardwert |
Beschreibung |
Zeitraum für die Verfolgung |
1 |
Das Zeitfenster, für das die fehlgeschlagenen Anmeldeversuche berücksichtigt werden. Soft-Schutzmaßnahmen laufen nach dieser Zeit ab |
Benutzer |
0 |
Max. Anzahl fehlgeschlagener Anmeldeversuche, nach denen ein Benutzerkonto dauerhaft gesperrt wird |
Soft Host |
0 |
Max. Anzahl fehlgeschlagener Anmeldeversuche, nach denen eine IP-Adresse vorübergehend daran gehindert wird, das Anmeldeformular abzusenden |
Hard Host |
0 |
Max. Anzahl fehlgeschlagener Anmeldeversuche, nach denen eine IP-Adresse mithilfe des Kernmoduls Ban vollständig gesperrt wird |
Angriffserkennung |
0 |
Max. Anzahl fehlgeschlagener Anmeldeversuche, nach denen ein laufender Angriff erkannt und eine Warnung protokolliert wird |
Fehlermeldung bei fehlgeschlagener Anmeldung deaktivieren |
Falsch |
Die Kern-Fehlermeldungen bei der Anmeldung anzeigen |
Benutzer über verbleibende Anmeldeversuche benachrichtigen |
Falsch |
Die Anzahl der verbleibenden Versuche anzeigen, bevor das Benutzerkonto vorübergehend gesperrt wird |
Letzten Anmeldezeitstempel anzeigen |
Falsch |
Eine Drupal-Nachricht mit dem letzten Anmeldezeitstempel des Benutzers anzeigen |
Letzten Zugriffszeitstempel anzeigen |
Falsch |
Eine Drupal-Nachricht mit dem letzten Aktivitätszeitstempel des Benutzers anzeigen |
Zusammen mit diesen Konfigurationen kann auch der Text innerhalb der Drupal-Nachrichten zu den Ereignissen (fehlgeschlagener Anmeldeversuch, Hard/Soft-IP-Adresssperre und Sperrung der Benutzer) und die E-Mail-Felder (Adresse, Betreff und Text) konfiguriert werden. Sie können die bereitgestellten Token verwenden, um dynamische Daten in der Warnung/Nachricht zu senden.

Fazit
Das Login Security Modul fügt einer Drupal-Website eine weitere Sicherheitsmaßnahme hinzu. Insbesondere ermöglicht es eine bessere Kontrolle im Umgang mit einer Situation eines Brute-Force-Angriffs. Letztendlich beschränkt sich die Gewährleistung der Sicherheit jedoch nicht nur auf die Konfiguration der Module, sondern liegt auch in den Händen der Personen, die die Websites verwalten und bereitstellen.
Bei Fragen oder Anregungen können Sie gerne einen Kommentar hinterlassen.
Abonnieren
Verwandte Blogs
Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…
Erklärbare KI-Tools: SHAPs Stärke in der KI

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…
KI-Chatbots: Präzision und Persönlichkeit in Perfektion

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…