Best Practices für WordPress-Sicherheit

Veröffentlicht: 2022-03-10

Es gibt viele Mythen und FUD (Angst, Unsicherheit und Zweifel) über die WordPress-Sicherheit da draußen. Und beim Schutz einer Website gegen potenzielle Angriffe gibt es einiges zu beachten. Wie können Unternehmen also die Best Practices für die WordPress-Sicherheit lernen, die ihnen den bestmöglichen Webschutz bieten?

Letzte Woche habe ich ein Webinar veranstaltet, um WordPress-Sicherheitsbedenken zu entmystifizieren. An der Sitzung nahmen Ayush Malakar (Full-Stack- und WordPress-Entwickler bei Fresh Consulting) und Sean O'Shaughnessy (WordPress VIP Solutions Engineering Lead) teil.

Anhand von vier Leitfragen untersuchten diese beiden Experten Best Practices für die Sicherheit, die Entwickler, Administratoren, Websitebesitzer und Führungskräfte im Hinterkopf behalten sollten. Fassen wir zusammen, worüber wir gesprochen haben.

Ist Open-Source-Software sicher?

Open Source ist nicht gleich Open Source. Aber da WordPress schon seit 18 Jahren existiert und mehr als 40 % der weltweiten Websites betreibt, ist es klar, dass die Akzeptanz zunimmt. Aber auch bei der weltweit beliebtesten Open-Source-Software kommen Fragen zu ihren Sicherheitslücken auf. Ist nicht all dieser Code, offen herumliegend, anfällig für Angriffe?

Nicht unbedingt, sagt Ayush: „Da wir so viele Augen haben, ist es sicherer.“

Obwohl es kontraintuitiv erscheinen mag, kann Open-Source-Software tatsächlich sicherer sein als proprietäre Closed-Source-Software. Hier ist der Grund.

Mehr Augen auf potenzielle Bedrohungen

Da Open Source offen agiert, gibt es nichts zu verbergen. Viele Entwickler in der Community sehen sich das an und nehmen Aktualisierungen vor, was Zuversicht und Vertrauen schafft. Wenn eine Schwachstelle gefunden wird, wird sie so schnell wie möglich gepatcht – oft innerhalb von ein oder zwei Tagen.

Kontinuierliche Codetests und Bug Bounties

Jeder kann zu WordPress beitragen, und der Code wird von der Community aus Tausenden von WordPress-Core-Contributoren getestet. Da der Code kontinuierlich getestet wird, wird er immer zuverlässiger.

Darüber hinaus ermutigen Bug-Bounty-Programme die Öffentlichkeit, Lücken und Schwachstellen zu finden, darunter Brute-Force-Angriffe, DDoS, Phishing und mehr.

Sicherheitsupdates

Bei Sicherheitsupdates müssen Website-Entwickler sicherstellen, dass der Kerncode auf dem neuesten Stand gehalten und vor den neuesten Angriffsvektoren geschützt wird. Automatische Updates sind ebenfalls verfügbar, und Unternehmensentwickler sollten überlegen, ob diese die richtige Wahl für jedes Projekt sind.

Ist mein Code sicher?

Der WordPress-Kern ist nur einer der Code-„Eimer“, aus denen eine WordPress-Website besteht. Auf der von der Community entwickelten Software sitzt der Anwendungscode einer Website – ihr Design oder Frontend und Plugins.

Während der Open-Source-WordPress-Kerncode von der Community entwickelt wird, kann Anwendungscode, der für einzelne Websites geschrieben oder auf diesen bereitgestellt wird, ebenfalls Sicherheitslücken einführen.

Es gibt verschiedene Maßnahmen, die Sie ergreifen können, um sicherzustellen, dass Ihr Anwendungscode so gut wie möglich gegen Angriffe gehärtet ist. Auch wenn Sie je nach Höhe des akzeptablen Risikos für verschiedene Projekte unterschiedliche Entscheidungen treffen, ist es am wichtigsten, sich der potenziellen Angriffsvektoren bewusst zu sein.

Hier haben unsere Webinar-Experten einige Ratschläge.

Tools für WordPress-Sicherheit

Es gibt verschiedene Tools, die Entwickler einsetzen können, um Sicherheitslücken sowohl im Code von Erstanbietern als auch von Drittanbietern zu identifizieren.

„Wann immer wir über Tools sprechen, müssen wir verstehen, was die Vor- und Nachteile dieser Tools sind und wie wir die Tools am besten zu unserem Vorteil nutzen können?“

— Ayush Malakar, Frische Beratung

Diese Tools können entweder statische oder dynamische Codeanalysen durchführen. Die statische Analyse wird ohne Ausführung des Codes durchgeführt und kann normalerweise etwa 85 % der Fehler im Code erkennen. Die dynamische Codeanalyse basiert auf der Untersuchung, wie sich der Code während der Ausführung verhält, und hat die zusätzliche Fähigkeit, Sicherheitsprobleme zu finden, die durch die Interaktion des Codes mit anderen Systemkomponenten wie SQL-Datenbanken, Anwendungsservern oder Webdiensten verursacht werden.

Es ist wichtig, die Vorteile von Menschen gegenüber Maschinen abzuwägen, die diese Codeanalyse durchführen. Maschinelles Lernen (ML) und künstliche Intelligenz (KI) können als erste Verteidigungslinie eingesetzt werden, um sicherzustellen, dass gemeinsame Wertpapiere identifiziert werden. Aber es ist auch wertvoll, sich den Code hinterher von einem Menschen anschauen zu lassen. Dadurch wird sichergestellt, dass Menschen an verschiedenen Aspekten arbeiten können, z. B. funktionsbasierte Schwachstellen, Grenzfälle usw.

Einige Tools, die unsere Experten empfehlen:

  • WPScan ist ein CLI-Tool, mit dem Entwickler ihren Code auf Sicherheitslücken scannen können. Ayush empfiehlt Entwicklern, dies in einem Cron-Job auszuführen.
  • PHP_CodeSniffer (PHPCS) untersucht Code und hebt Probleme hervor, die von der Syntax bis hin zu Sicherheitslücken reichen. Es gibt eine Reihe spezifischer Standards für WordPress. Dies kann so eingerichtet werden, dass es in einer Continuous Integration (CI)-Pipeline ausgeführt wird und in allen WordPress-VIP-Repositories ausgeführt wird.
  • Sonar Cloud, das von Fresh Consulting für die statische Codeanalyse verwendet wird, scannt sowohl PHP- als auch JS-Code auf Schwachstellen und eine sicherere Implementierung.

„Machen wir das richtige Maß an Eingabevalidierung? Bereinigen wir jede Art von Ausgabe, die wir in unserem Code haben werden, ordnungsgemäß?“

– Sean O’Shaughnessy, WordPress-VIP

Sicherheits- und WordPress-Plugins

Suchen Sie bei der Auswahl von Plugins von Drittanbietern nach einem Plugin, das gute Rezensionen und Bewertungen, eine hohe Anzahl von Downloads und Flexibilität für die Verwendung auf Ihrer Website hat. Stellen Sie sicher, dass das Plugin aktualisiert und mit der neuesten Version von WordPress kompatibel ist.

Verwenden Sie kein Plugin, das Sie selbst schreiben können. Vor allem in Fällen, in denen nur wenig Code benötigt wird, schreiben Sie diesen Code in Ihr Theme, anstatt ein Plugin zu verwenden. Dadurch wird sichergestellt, dass beim Aktualisieren des Plugins keine Schwachstellen eingeführt werden.

„Was ich empfehlen würde, ist, den Code innerhalb des Themas selbst zu schreiben, denn was ich in der Vergangenheit gesehen habe, waren Plugins, die eine sehr minimale Arbeit leisten, um Aktualisierungen vorzunehmen. Und die Chancen stehen gut, da sich die Technologie weiterentwickelt, diese Plugins nicht. Das Potenzial dieser Plugins, Schwachstellen einzuführen, könnte höher sein als wir erwarten.“

— Ayush Malakar, Frische Beratung

Wie immer ist es wichtig, Ihren Code auf dem neuesten Stand zu halten. Achten Sie auf Core- und Plugin-Updates und halten Sie WordPress, Plugins und Themes auf dem neuesten Stand.

Sicherheit und WordPress-Endpunkte

XML-RPC und die REST-API sind Endpunkte, die WordPress verwendet, um mit anderen Systemen oder dem Frontend einer Anwendung zu kommunizieren. Es ist wichtig, diese Endpunkte zu verstehen und zu wissen, ob sie für Ihre Anwendung wichtig sind, da sie potenzielle Angriffsvektoren sind, die deaktiviert werden können, wenn sie nicht benötigt werden.

XML-RPC als potenzieller Angriffsvektor

XML-RPC ist eine Spezifikation, die die Kommunikation zwischen WordPress und anderen Systemen ermöglicht. In frühen Versionen von WordPress war XML-RPC standardmäßig deaktiviert. Aber seit Version 3.5 ist es standardmäßig aktiviert. Der Hauptgrund dafür war, dass die mobile WordPress-App mit Ihrer WordPress-Installation kommunizieren konnte.

Die REST-API als potenzieller Angriffsvektor

Stellen Sie sicher, dass Sie die besten Sicherheitspraktiken verwenden, wenn Sie die WordPress-REST-API verwenden. Während Unternehmen sie möglicherweise offen halten müssen, zum Beispiel in einer Headless-Architektur, in der Inhalte zu einem entkoppelten Frontend fließen müssen, stellen Sie sicher, dass die verbleibenden Personen über die richtige Authentifizierung und Autorisierung verfügen.

„Sie haben dieses Schloss, WordPress, Ihre Anwendung, und das Vorhandensein einer Zugbrücke macht Ihre Anwendung nicht automatisch sicher. Aber es ist eine Allee. Es ist ein Weg in dieses Schloss. Ein gutes Verständnis, Wissen und Berücksichtigen dieser Dinge ist also definitiv entscheidend, um eine bessere Haltung in Bezug auf Ihre Anwendungssicherheit zu erreichen.“

– Sean O’Shaughnessy, WordPress-VIP

Ist mein Hosting sicher?

Es gibt viele Überlegungen, die Sie anstellen müssen, um festzustellen, ob Ihr Host sicher genug für Ihre Anforderungen ist. Es ist eine gute Idee, alle verfügbaren Sicherheitsoptionen in Betracht zu ziehen, und vergessen Sie nicht, wie wichtig schneller Support in Notfällen ist – wie ein Plugin-Update, das einen Sicherheitsvorfall verursacht.

„Bietet Ihr Hosting-Anbieter schnellen und proaktiven Support? Wie reagieren sie außerdem, wenn Sicherheitslücken in Anwendungen oder Plugins veröffentlicht werden?“

– Sean O’Shaughnessy, WordPress-VIP

Suchen Sie insgesamt nach einer Plattform, die das Hosten einer gemeinsamen Verantwortung in Betracht zieht. Einige zu berücksichtigende Funktionen sind:

Dateisystemberechtigungen

Einige Hosts bieten ein schreibgeschütztes Dateisystem, anstatt Dateien schreiben zu können. Dadurch wird verhindert, dass Benutzer von Webprozessen überall Dateien schreiben können, wodurch ein potenzieller Angriffsvektor geschlossen wird.

Containerisierung

Suchen Sie nach einem Host, der die Ressourcen Ihrer Website von den Websites seiner anderen Kunden isoliert. Dies ist zwar keine umfassende Sicherheitsmaßnahme, aber die Containerisierung bietet ein grundlegendes Maß an Sicherheit. Als Bonus ermöglicht es auch dedizierte Ressourcen für horizontale oder sogar vertikale Skalierbarkeit.

Versionskontrolle

Wenn eine WordPress-Hosting-Plattform SFTP blockiert und Code-Updates über ein versioniertes System zulässt, verringern sie die Angriffsfläche Ihrer Anwendung. Darüber hinaus bietet die Verwaltung des Anwendungsquellcodes durch die Versionskontrolle eine „unberührte“ Kopie des Codes als Quelle der Wahrheit, zusammen mit einem vollständigen, überprüfbaren, kontextreichen Verlauf dieses Codes.

Wie kann mein Unternehmen die WordPress-Sicherheit durchsetzen?

Sicherheit ist nicht nur eine Überlegung auf Code- oder Hostebene. Es gibt auch menschliche Faktoren, und Unternehmen können Prozesse wie regelmäßige Sicherheitsüberprüfungen und Passwort-Hygieneregeln einbauen, die einen großen Beitrag zur Erhöhung der Sicherheit Ihrer Website leisten.

„Auf organisatorischer Ebene ist es wichtig, darüber nachzudenken, mehrere Ebenen der kontinuierlichen Authentifizierung oder Validierung einzurichten.“

– Sean O’Shaughnessy, WordPress-VIP

Zero-Trust- und Least-Privilege-Access-Management

Durch sorgfältig durchdachte Rollen- und Zugriffsverwaltung können Unternehmen ihre Mitarbeiter so ausstatten, dass sie ihre Arbeit mit den geringstmöglichen Privilegien – und damit dem geringstmöglichen Risiko – erledigen können. Stellen Sie sicher, dass Sie die Rollen und Fähigkeiten der Benutzer richtig definieren und zuweisen. Diese Funktion ist standardmäßig in WordPress enthalten und kann für jeden Anwendungsfall erweitert werden.

Passworthygiene

Benutzer sollten für jede Anwendung eindeutige und schwer zu erratende Passwörter erstellen. Sean mag diesen Comic besonders, der dafür plädiert, eine Sammlung zufälliger Wörter zu verwenden, anstatt eine Kombination aus Buchstaben, Zahlen und Symbolen:

XKCD-Comic

2FA und SSO

Zwei-Faktor-Authentifizierungs- (2FA) und Single-Sign-On-Technologien (SSO) erhöhen zwar nicht automatisch die Sicherheit Ihrer Website, bieten aber den Vorteil einer zentralisierten Benutzerverwaltung über alle unterstützten Anwendungen hinweg.

Wichtige WordPress-Sicherheitsmitnahmen

  • Open Source hat Sicherheitsvorteile
  • Halten Sie WordPress und Plugins auf dem neuesten Stand
  • Verwenden Sie die Versionskontrolle
  • Verstehen Sie die WordPress-Endpunkte
  • Suchen Sie nach einem Host, der für Sicherheit sorgt
  • Übernehmen Sie ausgereifte Sicherheitspraktiken auf Organisationsebene

Wir haben in dem einstündigen Webinar viel mehr über WordPress-Sicherheit erfahren. Wenn Sie es live verpasst haben, empfehle ich Ihnen, sich die Aufzeichnung hier anzusehen.