
Überprüfung der Drupal-Konfiguration hinsichtlich Sicherheit
Im ersten Teil der Serie über Drupal-Sicherheitsaudits haben wir beschrieben, wie man Module und Bibliotheken überprüft. Allerdings werden Module und Abhängigkeiten nutzlos sein, wenn jeder Benutzer unsere benutzerdefinierten Routen sehen kann, auf denen wir alle Kundeninformationen anzeigen. Daher betrachten wir in diesem Artikel die Konfiguration unserer Website. Die korrekte Konfiguration ist eines der Schlüsselelemente, die die Sicherheit beeinflussen.
Überprüfung der Drupal-Konfiguration
Für diesen Teil umfasst unsere Liste die Überprüfung der Rollenzuweisungen, den Zugriff auf die Drupal-Ansichten und Routings sowie andere Punkte. Wir werden auch die Korrektheit der Textformat-Konfiguration überprüfen und weitere Checks durchführen, um die größte Anzahl potenzieller Angriffsvektoren auf unsere Anwendung zu finden.
Audit der Rollenzuweisungen
Indem wir zu /admin/people/roles gehen, sehen wir die Liste aller verfügbaren Rollen.

In der Liste auf der rechten Seite (der OPERATIONEN-Spalte) können wir nach Klick die Option 'Berechtigungen bearbeiten' wählen, die uns zur Seite /admin/people/permissions/[Maschinenname_der_Rolle] umleitet (Beispiel für die Anonyme Rolle: /admin/people/permissions/anonymous). Nach dem Aufrufen der Berechtigungsbearbeitung listet Drupal alle möglichen Berechtigungen auf, die der ausgewählten Rolle zugewiesen wurden.

Um die Berechtigungen zu überprüfen, sollten wir zunächst überlegen, welche Aufgabe der Rolle zugewiesen ist. Wir müssen uns fragen, ob Rolle X die Berechtigung für die Aktion Y haben sollte, zum Beispiel: Sollte die Inhaltsredakteur-Rolle in der Lage sein, alle Ansichten zu bearbeiten? Wenn die Antwort nein lautet, sollten die Berechtigungen eingeschränkt werden.
Vollständiges Projektwissen ist für ein Berechtigungsaudit erforderlich. Wenn wir eine Berechtigung finden, von der wir glauben, dass sie eine gegebene Rolle nicht haben sollte, sollten wir im Auditbericht nur über die Möglichkeit informieren, dass die Rolle optionale Berechtigungen hat. In einem der nächsten Artikel in der Drupal-Sicherheitsaudit-Serie werden wir mehr Informationen darüber geben, wie man einen guten Bericht erstellt.
Audit der Ansichtsberechtigungen
Nach dem Audit der Rollen ist es Zeit, die Ansichten zu betrachten. Sie sind alle unter /admin/structure/views aufgeführt.

Unsere erste Aufgabe in diesem Fall wird es sein, in die Bearbeitung jeder Ansicht einzutreten, die Routing bereitstellt. Wir müssen den SEITENEINSTELLUNGEN-Abschnitt finden und genauer die Zugriff-Option, die nur absichtlich auf "Unbeschränkt" gesetzt sein sollte.

Wie im Fall der Rollen sollten wir uns bei der Überprüfung der Ansichtsberechtigungen fragen: Welche Einschränkungen sollten für die X-Ansicht gelten? Wenn die Ansicht für alle zugänglich sein sollte, ist es eine gute Praxis, eine Einschränkung zu verwenden, die eine Berechtigung zum Zugriff auf den veröffentlichten Inhalt erfordert. Wenn eine der Ansichten keine Einschränkungen hat oder wir sie für zu moderat halten, sollten wir dies im Bericht angeben.
Audit der routing.yml-Dateien in benutzerdefinierten Modulen
Was die in benutzerdefinierten Modulen erstellten Routen betrifft, sieht das Audit ähnlich aus. Wir sollten jede *.routing.yml-Datei überprüfen, um sicherzustellen, dass jede Routing über das entsprechende Sicherheitsniveau verfügt. Hier ist ein Beispiel einer neuen Routing-Deklaration

In diesem Fall darf jeder Benutzer mit der Berechtigung 'Zugriff auf Inhalte' auf die Seite /machine_name/transliterate zugreifen. Auch in diesem Fall ist es eine gute Praxis, ein minimal erforderliches Zugriffslevel für jeden Zugriffsinhalt-Routing zu definieren.
Audit der Textformate
Der Pfad /admin/config/content/formats enthält alle auf der Seite verfügbaren Textformate. In diesem Fall umfasst das Audit die Überprüfung, ob es beispielsweise nicht möglich ist, JavaScript-Code mit einem bestimmten Textformat einzufügen oder ob es nicht möglich ist, ein Bild zu verlinken, das von einer anderen Seite heruntergeladen wird. Es ist auch wichtig, dass die Liste der möglichen Dateiendungen nicht das Hochladen von Dateien mit unsicheren Erweiterungen erlaubt, wenn es nicht notwendig ist. Natürlich melden wir die Konfigurationsfehler – das Risikoniveau hängt von der Art des Fehlers ab.
Audit der Fehlerprotokollierung
Es gibt die Konfigurationsoption Anzuzeigende Fehlermeldungen auf der Seite /admin/config/development/logging. Sie wird verwendet, um das Fehleranzeigniveau festzulegen. Diese Option sollte auf der Produktionsseite auf Keine gesetzt sein. Wenn diese Option in der Produktionsumgebung auf eine andere Variante als Keine gesetzt ist, melden wir sie als Bedrohung mit niedrigem Schweregrad.

Grundlegendes Login-Audit
Es gibt zwei Möglichkeiten, wie das Login-Panel mitteilen kann, ob der Benutzer, der sich anmelden möchte, falsche Daten angegeben hat. Es kann eine kurze Antwort geben wie "Daten sind falsch", oder es gibt eine Information, wenn der Login falsch ist, und eine andere, wenn das Passwort falsch ist. Im letzteren Fall handelt es sich um einen Vektor für einen Brute-Force-Angriff. Der Angreifer kann zuerst die Logins und dann die Passwörter stürmen – und so Zugang zu den Benutzerkonten erlangen.
Ein weiterer Aspekt, den es zu überprüfen gilt, ist die Passwort-Richtlinie. Es ist ein kontroverses Thema, da einige vorschlagen, einen Passwortwechsel periodisch zu erzwingen, und andere sagen, dass das Passwort mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und ein Sonderzeichen enthalten sollte. Manche kombinieren beide Regeln, und Benutzer enden mit Passwörtern wie 'July2021!', die alle Anforderungen erfüllen. Meine persönliche Empfehlung in diesem Fall schließt die Notwendigkeit aus, das Passwort von Zeit zu Zeit zu ändern. Es wird empfohlen, die Komplexität des Passworts zu bestimmen, aber das Wichtigste ist seine Länge – je länger das Passwort ist, desto länger dauert es, es zu knacken. Die Passwort-Richtlinie ist ein Thema, das vom Typ des Projekts abhängt und individuell analysiert werden muss. Im Fall einer schwachen Passwort-Richtlinie sollten Sie sie als Bedrohung mit einem Level melden, das davon abhängt, wie schlecht die Richtlinie ist.
Formular-Audit
Die Formulare sollten gegen Spam geschützt sein. Sie sollten wo möglich mit der Drupal API erstellt werden. Überprüfen Sie, ob die Formulare gegen Spam geschützt sind und ob ihre Validierung das Eingeben inkorrekter oder gefährlicher Daten nicht zulässt. Finden Sie eine falsch konfigurierte Stelle in einem Formular, sollten Sie dies melden – das Risiko hängt von der Situation ab. Es gibt ein anderes Risikolevel für einen potenziellen SQLi und für die Möglichkeit, inkorrekte Daten einzugeben – zum Beispiel in der Auswahl-Liste.
Zusätzliche Empfehlungen
Es gibt Drupal-Module, die die Sicherheit unserer Anwendung erhöhen. Eines dieser Module ist Security Kit. Damit reduzieren Sie die Wahrscheinlichkeit der Nutzung von Sicherheitslücken auf der Website. Dieses Modul bietet Anti-XSS, Anti-CSRF, Anti-ClickJacking und andere Sicherheitsmaßnahmen. Wir empfehlen, den verlinkten Beitrag zu lesen und die Installation in Betracht zu ziehen.
Security Review ist ein Modul, das bei einem Drupal-Sicherheitsaudit helfen kann. Es verwendet automatisierte Sicherheitstests, die bei der Durchführung des Audits helfen.
Dieses Modul:
- überprüft die Dateiberechtigungen,
- führt ein Audit der Dateiformate durch,
- führt ein Audit der für Fehlerberichte verantwortlichen Optionen durch,
- führt ein Audit der Optionen durch, in dem wir bestimmen, welche Dateiendungen hochgeladen werden können (z.B. zum Herunterladen in einem Blogbeitrag),
- überwacht Datenbankfehler, um einen potenziellen Angriff zu erkennen,
- überwacht das Login-Panel zu demselben Zweck,
- überprüft die Konfiguration der vertrauenswürdigen Gastdatei,
- überprüft die Ansichtsberechtigungen.
Security Review wird empfohlen, da es den Auditprozess der Seite beschleunigen kann.
Drupal-Konfiguration geprüft - was kommt als Nächstes?
In diesem Teil der Serie über die Durchführung eines Drupal-Sicherheitsaudits haben wir gelernt, wie man die Drupal-Konfiguration überprüft. Wir sind mit den Konfigurationsoptionen vertraut, die Angriffsvektoren eröffnen, und wir wissen, welche Empfehlungen es gibt, um diese Vektoren zu schließen.
Das Erlangen der in diesem Beitrag bereitgestellten Kenntnisse hat Ihnen ermöglicht, besser zu verstehen, dass eine korrekte Drupal-Konfiguration ebenso wichtig ist wie das Halten auf dem aktuellen Stand. Eine Konfigurationsprüfung ist eine der Maßnahmen, die wir während eines Sicherheitsaudits durchführen – unser Drupal-Support-Team empfiehlt eine umfassende Konfigurationsüberprüfung während eines Sicherheitsaudits.
Im nächsten Teil dieser Artikelserie werden wir uns mit dem Code befassen und die grundlegenden Möglichkeiten zur Prüfung vorstellen. Wir werden die Methoden zur Analyse von Modulen und Themes vorstellen. Wir werfen einen Blick darauf, was sich im Repository befindet. Gibt es irgendwelche Passwörter, Schlüssel darin? Oder vielleicht der komplette Datenbank-Dump?