.

Wie führt man ein Drupal-Sicherheitsaudit durch? Überblick über die Module und Bibliotheken

Ein Sicherheitsaudit ist der Prozess der Identifizierung von Sicherheitsbedrohungen, die zu unbefugtem Zugriff auf Inhalte, Datenlecks, Umgehung der Sicherheit und anderen Gefahren führen können. Im ersten Teil der Serie zur Durchführung eines Sicherheitsaudits konzentrieren wir uns auf den Überblick über die Drupal-Modulversionen, die wir bei Droptica zu diesem Zweck verwenden, sowie auf PHP- und JavaScript-Bibliotheken.

Drupal-Sicherheitsaudit

Bei Droptica bemühen wir uns, die von uns bereitgestellten Lösungen so sicher wie möglich zu machen. Wir verwenden die Werkzeuge, die von der Drupal-Community zur Verfügung gestellt werden, wie das Security Review-Modul, um den Prozess der Erkennung der häufigsten Sicherheitsfehler zu optimieren. Wir verwenden auch das Security Kit, um das Projekt, an dem wir arbeiten, widerstandsfähiger gegen Angriffe zu machen. Sie können in den verlinkten Beiträgen mehr über die Funktionalität dieser Module erfahren, und die Informationen über ihre Funktionsweise werden in den folgenden Teilen nützlich sein, in denen wir über die Überprüfung der Drupal-Konfiguration und die Codeanalyse sprechen werden.

Überprüfung der Versionen der installierten Drupal-Module

Das Aktualisieren von Modulen und Bibliotheken ist die einfachste Aktivität, die wir zur Verbesserung der Sicherheit unserer Anwendung durchführen können. Drupal bietet eine Ansicht, die alle Module auflistet und zusätzlich anzeigt, ob ein bestimmtes Modul auf dem neuesten Stand ist und, falls nicht, ob die Aktualisierung Sicherheitskorrekturen enthält.

Um zu überprüfen, ob die Module aktuell sind, gehen Sie zu /admin/modules/update

Überprüfung der Versionen von Drupal-Modulen im Rahmen eines Sicherheitsaudits

Im obigen Screenshot sehen Sie, dass einige der Module aktualisiert werden müssen. Natürlich empfehlen wir in solchen Fällen immer, alle möglichen Module zu aktualisieren. Wenn eines der Module eine Sicherheitskorrektur enthält, ist die Aktualisierung erforderlich, um ein hohes Maß an Sicherheit für die Anwendung zu gewährleisten.

Im Fall von Drupal wird die Information, ob ein bestimmtes Modul eine Sicherheitslücke aufweist, öffentlich zugänglich gemacht, wenn der Autor des Moduls dessen gepatchte Version veröffentlicht. Modulautoren versuchen meist zu verbergen, welcher Code geändert wurde, um eine Sicherheitslücke zu schließen, aber dies bedeutet immer, dass der Angreifer nur mehr Zeit braucht, um einen Weg zu finden, den Fehler zu verursachen und auszunutzen. Zeit ist wichtig, daher sollten Sie regelmäßig Sicherheitsupdates verfolgen, nicht nur während eines Drupal-Sicherheitsaudits. Wie bereits erwähnt, ist dies einer der einfachsten Schritte, die wir unternehmen können, um ein höheres Maß an Sicherheit für unsere Anwendung zu gewährleisten.

Patch-Überprüfung

Wenn Sie die Drupal-Module aktualisieren, sollten Sie auch überprüfen, ob ein Patch auf ein bestimmtes Modul angewendet wurde. Wenn ja, gehen wir wie folgt vor:

  1. Wir prüfen, ob der Patch von der Community erstellt wurde und ob er ein bestimmtes Problem auf drupal.org betrifft. Wenn ja, suchen wir nach dem Problem, von dem der Patch stammt. Es ist möglich, dass der Patch auf eine der neueren Versionen des Moduls angewendet wurde. In einem solchen Fall empfehlen wir, das Modul zu aktualisieren und den Patch mit der Information zu entfernen, dass der Code, der den Fehler behebt oder eine bestimmte Funktionalität hinzufügt, auf die offizielle, neuere Version des Moduls angewendet wurde. Wenn der Patch noch nicht auf die neuere Version des Moduls angewendet wurde, empfehlen wir dennoch ein Update und das Testen, ob die neueste Version des Patches ihren Zweck erfüllt.
  2. Wenn der Patch nicht von der Drupal-Community erstellt wurde, sondern das Ergebnis der Arbeit am Projekt ist, empfehlen wir dennoch, das Modul zu aktualisieren. In diesem Fall liegt jedoch die Sicherstellung des korrekten Betriebs des Patches bei den Personen, die für den benutzerdefinierten Code des Projekts verantwortlich sind. Nach dem Update sollten Sie überprüfen, ob der Patch wie beabsichtigt funktioniert. Wenn nicht, empfehlen wir, entsprechende Korrekturen am Patch vorzunehmen, die dessen korrekten Betrieb auf der neuesten Version des Moduls sicherstellen.

Überprüfung von PHP-Bibliotheken

Der nächste Schritt wird das Überprüfen der verwendeten PHP-Bibliotheken sein. Um sie aufzulisten, können wir den Befehl composer show oder das local-php-security-checker-Paket verwenden. Wir empfehlen die letztgenannte Lösung, da sie den Prozess erheblich beschleunigt.

Ergebnis des Kommandos composer show während der Überprüfung der verwendeten PHP-Bibliotheken

Ergebnis des Kommandos composer show.

Wenn Sie sich dafür entscheiden, das Paket local-php-security-checker zu installieren, befolgen Sie die Anweisungen in der README.md-Datei.

Ergebnis des Scans mit local-php-security-checker während eines Drupal-Sicherheitsaudits

Ergebnis des Scans mit local-php-security-checker.

Es gibt auch das kaum bekannte Drupal Composer Security Checker-Modul, das das security-checker-Paket verwendet. Derzeit erfüllt dieses Modul nicht seine Aufgabe und das security-checker-Paket selbst wird nicht aktiv entwickelt (seit Januar 2021), daher konzentrieren wir uns auf das local-php-security-checker-Paket selbst. Wenn Sie ein Sicherheitsrisiko finden, lautet unsere Empfehlung natürlich, die Bibliothek zu aktualisieren – wie in jedem Fall. Ein Audit der PHP-Bibliotheken sollte regelmäßig durchgeführt werden, genauso wie im Fall der Drupal-Module.

Überprüfung von JavaScript-Bibliotheken

Der nächste Schritt wird sein, zu überprüfen, ob die verwendeten JavaScript-Bibliotheken auf dem neuesten Stand sind und Sicherheitskorrekturen enthalten. Zu diesem Zweck sollten Sie das Bibliotheksverzeichnis und die verwendeten package.json-Dateien überprüfen.

Im Fall des Bibliotheksverzeichnisses müssen Sie die Version manuell überprüfen. Bei package.json verwenden wir den Befehl npm-audit.

Ergebnis des npm-audit Kommandos bei der Überprüfung der package.json während des Audits der JavaScript-Bibliotheken

Ergebnis des npm-audit Kommandos

Das npm-audit-Kommando listet alle bekannten Schwachstellen auf, bestimmt den Bedrohungsgrad, Paket, Abhängigkeiten, Paketpfad und zeigt einen Link mit Informationen zur Schwachstelle an.

Das npm-audit Kommando zeigt alle Schwachstellen in den JavaScript-Bibliotheken

Wenn Sie eine Schwachstelle finden, empfehlen wir wie immer das Update. Scans der JS-Bibliotheken sollten routinemäßig durchgeführt werden, öfter als ein umfassendes Sicherheitsaudit.

Verbesserung der Drupal-Sicherheit - weitere Schritte

In diesem Teil des Drupal-Sicherheitsaudit-Zyklus haben wir gelernt, wie man überprüft, ob die verwendeten Versionen der Module und Bibliotheken aktuell sind und keine bekannten Sicherheitsfehler enthalten. Wir verstehen auch, wie man vorgeht, wenn ein Patch für ein Modul verfügbar ist – sowohl wenn der Patch von der Drupal-Community stammt als auch wenn er vom Entwickler der Anwendung vorbereitet wurde.

Das Erwerben des in diesem Beitrag bereitgestellten Wissens ist der einfachste Weg, um die Sicherheit Ihrer Anwendung zu verbessern. Die Überprüfung der Versionen der verwendeten Lösungen ist der erste Schritt, den wir während eines Sicherheitsaudits durchführen - unser Drupal-Support-Team empfiehlt regelmäßige Überprüfungen auf Updates. Falls ein Update mit Sicherheitskorrekturen veröffentlicht wird, empfehlen wir, dieses so schnell wie möglich durchzuführen.

Im nächsten Teil dieser Artikelserie werden wir mehr über die Drupal-Konfiguration erfahren, die darauf abzielt, die Sicherheit unserer Anwendung zu erhöhen. Wir werden auch lernen, wie man die Anzahl der Angriffsvektoren reduziert und mehr über die Module erfahren, die uns dabei helfen werden.

As part of Drupal support, we maintain existing websites and expand them with new functionalities