Skip to main content

5 Wege, Drupal 10 zu schützen

Artikel von
Headshot of Sushnigdha Tripathy

Sushnigdha Tripathy

feature drupal

23. August 2022

0 Min. Lesezeit

Drupal ist ein beliebtes Content-Management-System (CMS), das führende Unternehmen und Behörden für geschäftskritische Anwendungen einsetzen. Dank einer engagierten Entwickler-Community, umfassender Sicherheitsfunktionen, Mehrsprachigkeit, der Einhaltung der WCAG-Richtlinien und einfacher Integration ist Drupal für viele die erste Wahl.

Drupal 10, dessen Veröffentlichung für Dezember 2022 geplant ist, bietet zahlreiche spannende Neuerungen. Dazu gehören ein automatisiertes Update-System, der Ersatz einiger jQuery-Anwendungen im Kern durch Vanilla JavaScript, Upgrades von Drittanbieter-Abhängigkeiten (CKEditor 5, Symphony Version 6, PHP 8.1) sowie die Entfernung einiger Kernmodule wie HAL, QuickEdit, Aggregator, RDF und Activity Tracker. Diese Upgrades verbessern die Website-Performance und sorgen für eine bessere Nutzererfahrung.

Der Umstieg von Drupal 9 auf Drupal 10 dürfte ebenso reibungslos verlaufen wie der Wechsel von Version 8 auf 9. Trotzdem dürfen wir bei der Sicherheit nicht nachlässig werden. Schließlich können auch unsere Drupal-10-CMS von böswilligen Akteuren angegriffen werden. In diesem Artikel stellen wir deshalb fünf Best Practices für die Sicherheit von Drupal 10 vor.

1. Behalten Sie Schwachstellen im Blick

Zu den wichtigsten Maßnahmen zum Schutz unserer Drupal-Website gehört es, bekannte Drupal-Schwachstellen in der Snyk Vulnerability Database nachzuverfolgen und sich über die neuesten Drupal-Sicherheitshinweise auf dem Laufenden zu halten, um potenziellen Schwachstellen zuvorzukommen. Dafür gibt es verschiedene Möglichkeiten:

  • Das Sicherheitsteam von Drupal veröffentlicht jede Woche Sicherheitshinweise. Um über Sicherheitsneuigkeiten informiert zu bleiben, können Sie sich anmelden und den E-Mail-Newsletter abonnieren, der Drupal-Slack-Gruppe beitreten oder RSS-Feeds folgen.

  • Drupal bietet eine integrierte Ansicht für den Events Logger, mit der wir unsere Websites regelmäßig überwachen und verdächtige Aktivitäten erkennen können.

  • Der Update-Manager ist Teil der Drupal-API. Er sucht regelmäßig nach neuen Updates und informiert uns darüber. Sie können ihn konfigurieren, indem Sie Ihre E-Mail-Adresse im Verwaltungsmenü hinterlegen, um die neuesten Sicherheitsupdates zu erhalten.

  • Mit Drush können Sie zeitaufwendige Aufgaben automatisieren und Sicherheitsupdates schnell einspielen. Wenn wir ein Sicherheitsupdate beispielsweise über die Drupal-Benutzeroberfläche installieren möchten, müssen wir uns anmelden, das Modul suchen, Konfigurationsänderungen importieren und weitere Schritte ausführen. Mit Drush lässt sich dieselbe Aktion mit einem einzigen Befehl erledigen. So können Sicherheitsupdates regelmäßig einfacher eingespielt werden.

2. Verstehen Sie Cross-Site-Scripting-Angriffe (XSS)

Laut der Snyk Vulnerability Database gibt es nur wenige Schwachstellen in Drupal. Ein großer Anteil der im Laufe von 20 Jahren gemeldeten Schwachstellen entfällt jedoch auf Cross-Site-Scripting-Angriffe (XSS). XSS ist eine JavaScript-Schwachstelle, bei der Angreifer schädlichen Code über JavaScript oder HTML in clientseitige Skripte einschleusen.

Nutzer von Webanwendungen, die sich der Gefahr nicht bewusst sind, werden dazu verleitet, schädlichen Code auszuführen. Sobald dieser im Browser des Nutzers ausgeführt wird, können Angreifer unsere Sitzungstoken stehlen und sich als wir ausgeben, um Aktionen durchzuführen, die nur wir ausführen können sollten – einschließlich des Zugriffs auf private Systeme.

Es gibt drei Arten von XSS-Angriffen: reflektierte, gespeicherte und DOM-basierte.

Reflektiertes (nicht persistentes) XSS

Reflektiertes XSS ist die einfachste Form des XSS-Angriffs. Dabei wird die XSS-Payload von einer Webanwendung an den Browser eines Nutzers zurückgegeben. Da dieser Angriff nicht persistent ist, wird die Payload nicht auf der Website gespeichert. Stattdessen wird das Skript an das Ende einer URL angehängt. Klickt der Nutzer darauf, wird die schädliche Payload ausgeführt.

Gespeichertes (persistentes) XSS

Der gespeicherte Angriff ist die gefährlichste Angriffsart auf clientseitige Server. Dabei schleust der Angreifer die Payload in die Zieldatenbank ein. Fehlt eine Datenvalidierung, wird sie dauerhaft auf der Website gespeichert. Öffnen Nutzer die betroffene Webseite, führen sie die Payload unbeabsichtigt in ihrem Browser aus.

DOM-basiertes XSS

Ein Angriff auf das Document Object Model (DOM) ist ein clientseitiger Angriff, bei dem die Payload nicht an den Server gesendet wird. Solche Angriffe sind schwer zu erkennen, da sie nicht in den Serverprotokollen erscheinen.

Sehen wir uns an, wie ein XSS-Angriff abläuft.

Stellen Sie sich eine E-Commerce-Website für Sportartikel vor. Sie verfügt über eine Suchfunktion, die vom Nutzer eingegebene Daten als URL-Parameter entgegennimmt, zum Beispiel:

https://notsecured-website.com/search?term=tennisracquet

Die obige Anwendung zeigt Informationen zum gesuchten Tennisschläger an:

<p>You searched for: tennisracquet</p>

Wie wir sehen, findet keine Eingabevalidierung statt. Dadurch können Hacker die URL leicht ändern und schädliche Skripte einfügen, etwa so:

https://notsecured-website.com/search?term=<script>/*+malicious script+*/</script>

Ruft ein Nutzer die URL des Hackers auf, wird das schädliche Skript im Browser des Nutzers ausgeführt und führt zu folgender Antwort:

<p>You searched for: <script>/*+malicious script+*/</script></p>

Um XSS-Angriffe wirksam zu verhindern, sollten wir:

  • eine Content Security Policy (CSP) implementieren, um XSS-Angriffe zu erkennen und zu neutralisieren.

  • Frameworks verwenden, die HTML-Tags escapen.

  • in ein Log-Management-System investieren, das alles protokolliert.

  • OWASP-Best-Practices für die Sicherheit befolgen.

  • HTML-Steuerzeichen in eine kontextsensitive Codierung umwandeln.

  • Niemals ungefiltertes HTML aus Nutzereingaben rendern lassen.

  • Unsere Datenbanken regelmäßig mit Web-Schwachstellenscannern überprüfen.

3. Verwenden Sie immer HTTPS

Böswillige Akteure können Schwachstellen auf Ihrer HTTP-Drupal-Website ausnutzen, um Pharming-, Phishing- und Man-in-the-Middle-Angriffe (MITM) durchzuführen, denn das HTTP-Protokoll überträgt Daten im Klartext. Um die Verbindung zwischen den beiden Parteien zu sichern, sollten wir immer HTTPS verwenden. Dazu benötigen wir ein SSL-Zertifikat – ein sicheres Protokoll, das den Website-Traffic verschlüsselt.

SSL-Zertifikate verwenden asymmetrische und symmetrische Kryptografie, um die Kommunikation zu verschlüsseln und sicherer zu machen. Selbst wenn unsere Daten abgefangen werden, sind sie daher für Hacker nutzlos, da sie nur als unleserlicher Zeichensalat vorliegen.

4. Wenden Sie das Prinzip der geringsten Berechtigung an

In Unternehmen sind Konten mit weitreichenden Berechtigungen keine Seltenheit. Sie bieten böswilligen Akteuren jedoch mehr Möglichkeiten, Daten aus Systemen zu exfiltrieren und erheblichen Schaden anzurichten. Deshalb sollten Sie stets das Prinzip der geringsten Berechtigung (POLP) anwenden und den Zugriff auf die Ressourcen beschränken, die Ihre Nutzer zur Erledigung ihrer Aufgaben benötigen.

POLP bedeutet, Nutzern nur die minimal erforderlichen Berechtigungen für ihre Aufgaben zuzuweisen – und nicht mehr. Indem wir den Zugriff der Nutzer auf verschiedene Bereiche unserer Drupal-Website sowie auf unsere Infrastruktur, Datenbanken und Ressourcen begrenzen, verringern wir die Wahrscheinlichkeit, dass böswillige Akteure innerhalb oder außerhalb unseres Unternehmens auf unbefugte Inhalte zugreifen. POLP wird vor allem durch die Zuweisung von Rollen mit festgelegten Berechtigungen umgesetzt.

In Drupal werden Nutzern Rollen zugewiesen, mit denen sie Inhalte anzeigen und bearbeiten können. Auf der Seite „Berechtigungen“ können wir die Berechtigungen detailliert festlegen. Das Einrichten von Berechtigungen in Drupal ist einfach. Öffnen Sie zunächst das Admin-Panel, klicken Sie auf das Menü Personen und anschließend auf Berechtigungen, um Nutzern entsprechend ihrer Rollen Zugriff zu gewähren.

Drupal-Berechtigungen lassen sich den folgenden Kategorien zuordnen.

Anonymer Nutzer

Die Rolle „Anonymer Nutzer“ gilt für alle Nutzer, die nicht angemeldet sind. Diese Nutzer erhalten in der Regel nur Leserechte und haben die geringsten Zugriffsrechte.

Authentifizierter Nutzer

Authentifizierte Nutzer sind angemeldet. Sie verfügen normalerweise über mehr Rechte als anonyme Nutzer. Ihre Identität wird in der Regel über ein Anmeldesystem mit Benutzername bzw. E-Mail-Adresse und Passwort überprüft.

Administrator

Der Administrator – oder Root-Nutzer – verfügt über Root-Berechtigungen und kann umfangreiche Änderungen am System vornehmen. Seien Sie beim Zugriff auf unsere Drupal-Website als Root-Administrator stets vorsichtig, denn selbst ein kleiner Fehler kann verheerende Folgen für Ihre Website haben.

Rollenbasierte Zugriffskontrolle (RBAC)

Zusätzlich zu den oben beschriebenen Berechtigungen nutzt Drupal eine rollenbasierte Zugriffskontrolle (RBAC). Damit setzt Drupal das POLP-Prinzip durch und ermöglicht uns, zu steuern, was Nutzer auf unserer Website sehen und tun können. Wenn wir rollenbasierten Zugriff nach dem Need-to-know-Prinzip vergeben, stellen wir sicher, dass nur vertrauenswürdiges Personal Zugriff auf unsere geschäftskritischen Daten hat.

5. Sichern Sie Drupal mit Sicherheitsmodulen ab

Ein Modul besteht aus JavaScript- und PHP-Dateien, die Ihrer Drupal-Website neue Funktionen hinzufügen. Drupal bietet verschiedene Module, mit denen sich die Sicherheit von Drupal-Websites verbessern lässt. Dazu gehören:

Login-Security-Modul

Das Login-Security-Modul ist ein wichtiges Drupal-Modul, das die Anzahl ungültiger Anmeldeversuche begrenzt. Außerdem kann es bestimmte IP-Adressen dauerhaft oder vorübergehend blockieren. Drupal-Administratoren können das Modul auch so konfigurieren, dass sie bei Brute-Force-Angriffen oder anderen unerwünschten Aktivitäten benachrichtigt werden.

Security Review

Das Security-Review-Modul überprüft unsere Website auf kleinere Entwicklungsfehler, die sie anfällig für Angriffe machen könnten. Das Modul nimmt zwar keine Änderungen vor, führt aber einen Sicherheitstest durch, der Schwachstellen aufzeigt, die böswillige Akteure ausnutzen könnten. Anhand des Berichts können wir die markierten Bereiche überprüfen und unsere Website besser schützen.

Security Kit

Das Security-Kit-Modul (SecKit) bietet verschiedene Optionen, um gängige Web-Schwachstellen wie Clickjacking, Cross-Site-Scripting und Cross-Site-Request-Forgery-Angriffe zu erkennen. Außerdem unterstützt es die Verwendung von HTTP-Response-Headern, um MITM-Angriffe zu verhindern.

Passwort-Richtlinien-Modul

Das Passwort-Richtlinien-Modul ist ein Community-Modul, mit dem wir Passwortrichtlinien für bestimmte Rollen konfigurieren können. Website-Administratoren können damit verschiedene Passwortrichtlinien festlegen. Jede Richtlinie enthält Anforderungen (in Form von Untermodulen), die vor einer Passwortänderung erfüllt sein müssen. Dazu gehören:

  • Großbuchstaben

  • Kleinbuchstaben

  • Verzögerung

  • Buchstaben/Ziffern (alphanumerisch)

  • Länge

  • Satzzeichen

  • Benutzername

  • Position von Ziffern

Zwei-Faktor-Authentifizierungsmodul

Die Zwei-Faktor-Authentifizierung (2FA) fügt unserer Drupal-Website eine zusätzliche Sicherheitsebene hinzu und stellt sicher, dass nur Nutzer mit gültigen Anmeldedaten Zugriff erhalten. Das TFA-Modul bietet Schnittstellen, über die wir verschiedene 2FA-Lösungen auswählen können, etwa per SMS übermittelte Codes, zeitbasierte Einmalpasswörter oder vorab generierte Codes.

Schützen Sie Ihr Drupal-CMS

Da 1 von 30 Websites darauf läuft, ist Drupal eine beliebte und vertrauenswürdige Lösung für unsere Websites. Was macht Drupal also so sicher?

Drupal hält sich an die OWASP-Sicherheitsstandards, bietet robuste, granulare Zugriffskontrollen und verfügt über eine sichere Codebasis, die vom Drupal-Sicherheitsteam genau überwacht wird. Zusammengenommen machen diese Eigenschaften Drupal zu einem sehr sicheren CMS. Das bedeutet jedoch nicht, dass es immun gegen Schwachstellen ist.

Wenn wir Drupal als CMS verwenden, müssen wir Web-Exploits gründlich verstehen und Best Practices umsetzen, um unsere Website zu schützen. Zusätzlich zu den fünf hier beschriebenen Sicherheitsmaßnahmen können wir Website-Sicherheitsscans und Schwachstellenscans durchführen, damit unsere Drupal-Websites sicher und zuverlässig verfügbar bleiben.

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.

Weiterlesen

illustration hero ai
Blog

PHP behebt zwei kritische unauthentifizierte RCE-Schwachstellen (CVE-2026-109618, CVE-2026-109619): Jetzt aktualisieren

Zwei kritische Sicherheitslücken im Request-Lebenszyklus von PHP können unauthentifizierte Remote Code Execution ermöglichen. Aktualisieren Sie auf eine korrigierte Version oder installieren Sie für ältere Versionen einen Backport des Anbieters.

blog feature ai lilac
Blog

Mit agentischer Behebung Ihren Schwachstellen-Backlog in Pull Requests verwandeln

Der Evo Remediation Agent ist jetzt in der öffentlichen Vorschau verfügbar und erweitert Evo Agentic AppSec um die automatisierte Auflösung von Abhängigkeiten. AppSec-Teams können jetzt kontinuierliche Behebungskampagnen durchführen

AI Background min crop
Blog

KI ruft alle Risiken auf den Plan, die Sie akzeptiert haben: Sieben Erkenntnisse aus dem AI Security Panel: Unfiltered

KI macht Angriffe günstiger und schneller und legt Risiken offen, die Unternehmen bereits tragen. Vier Sicherheitsverantwortliche erklären, warum Abwehr in Maschinengeschwindigkeit und schnellere Behebung jetzt unverzichtbar sind.