Sind WordPress-Plugins sicher zu verwenden?

Veröffentlicht: 2020-04-16

Im Laufe der Jahre haben Untersuchungen ergeben, dass mehr als 20 % der 50 beliebtesten WordPress-Plugins anfällig für gängige Webangriffe sind. Darüber hinaus ergab eine gezielte Recherche zu E-Commerce-Plugins, dass 7 der 10 beliebtesten E-Commerce-Plugins Schwachstellen enthalten. Leider nutzen Hacker diese anfälligen Anwendungen normalerweise aus, um auf vertrauliche Informationen wie Gesundheitsakten und Finanzdaten zuzugreifen. In anderen Fällen ermöglichen Sicherheitslücken Hackern, Websites unkenntlich zu machen oder sie auf andere von Angreifern kontrollierte Websites umzuleiten.

WordPress-Sicherheitsstatistik

In jüngerer Zeit haben wir gesehen, dass bösartige WordPress-Plugins nicht nur verwendet werden, um den Zugriff auf kompromittierte Server aufrechtzuerhalten, sondern auch, um nach Kryptowährung zu schürfen. Das wirft also die Frage auf, wie sicher WordPress-Plugins sind.

In diesem Blog konzentrieren wir uns intensiv auf WordPress-Plugins als potenzielle Quellen für Sicherheitsverletzungen.

Plugin-basierte Webentwicklung.

Im Allgemeinen ist WordPress das beliebteste Content Management System (CMS) der Welt, da es mehr als 30 % des Webs antreibt.

Die Kernstärke von WordPress liegt jedoch in seiner Fähigkeit, die Anpassung von Websites durch sein umfangreiches Angebot von Zehntausenden von Plugins und Themen zu ermöglichen. Diese Plugins unterscheiden sich in Typ und Funktionalität – vom Hinzufügen eines Kontaktformulars zur Website über die Optimierung eines Blogs für SEO bis hin zur automatischen Veröffentlichung neuer Posts auf Facebook.

Entwicklung von Drittanbietern.

Die Hauptidee hinter der Plugin-basierten Entwicklung besteht darin, zusätzliche Funktionen anzubieten, um die Kernfähigkeiten eines Systems zu erweitern. Im Wesentlichen wird der Kern der Anwendung in der Regel von einer Reihe langjähriger Entwickler gepflegt, während Dritte eine Reihe von Plugins um den Kern der Anwendung herum erstellen

Dieser Prozess ist sowohl für den Anwendungsanbieter als auch für den Plugin-Anbieter von Vorteil, da sich der Anwendungsanbieter mehr auf die Kernfunktionalität konzentrieren kann, während sich der Plugin-Anbieter nicht um die Infrastruktur des Plugins kümmern muss, die von der Kernfunktionalität der Anwendung bereitgestellt wird. Im Allgemeinen wird WordPress auch von einer globalen Community aus Tausenden von Entwicklern und Enthusiasten von kommerzieller und Open-Source-Software unterstützt.

Keine Sicherheitsrichtlinien

Obwohl es einige Codierungsstandards und -empfehlungen gibt, gibt es insgesamt technisch gesehen keine Sicherheitsrichtlinien oder Standardanforderungen, an die sich ein Plugin-Entwickler strikt halten muss. Das bedeutet, dass sich eine Schwachstelle in einem Plugin auf Millionen von Websites ausbreiten kann.

Und da WordPress ausgiebig genutzt wird, ist es folglich ein beliebtes Ziel für Angriffe. Im Wesentlichen kann ein Hacker, der die Schwachstelle eines Plugins ausnutzt, Tausende von Websites infizieren. Ein Szenario, das bereits von vielen Bloggern beobachtet wurde.

Leider neigen Plug-in-bezogene Schwachstellen auch dazu, wiederkehrend, ausnutzbar und schwer zu erkennen. Daher ist es notwendig, solche Schwachstellen besser zu verstehen, um alle relevanten Sicherheitsbedrohungen zu mindern. Lassen Sie uns tiefer graben, sollen wir?

Arten von Malware

Ist WordPress wirklich sicher?

Das Wichtigste zuerst, lassen Sie uns diese Frage beantworten. Zum größten Teil ist WordPress als rohes Ökosystem sehr sicher, solange die Best Practices für die WordPress-Sicherheit eingehalten werden. Im Durchschnitt werden jeden Tag etwa 30.000 neue Websites im Internet gehackt. Diese Hacker neigen dazu, WordPress-Websites aufgrund von Plugin-Schwachstellen, schwachen Passwörtern und veralteter Software anzugreifen. Um die beste Sicherheit zu erreichen, ist also ein gewisses Maß an Absicht erforderlich, was bedeutet, dass Sie einige grundlegende Best Practices für die WordPress-Sicherheit befolgen, um Ihre Anfälligkeit für Angriffe zu verringern.

Lesen Sie mehr: 11 effektive Möglichkeiten, Ihre WordPress-Website für hohen Traffic zu skalieren

Woher kommen diese Schwachstellen?

Ein kürzlich von wpscan.org veröffentlichter Bericht enthüllte, dass WordPress fast 4.000 bekannte Sicherheitslücken aufweist. Ein Großteil dieser Schwachstellen wurde durch Plugins verursacht. Und während einige dieser Plugin-bezogenen Schwachstellen schwerwiegende Folgen haben können, bleiben viele jahrelang unbemerkt, bevor sie behoben werden. In den meisten Fällen können sie im Allgemeinen durch kleine und lokalisierte Änderungen an ihrem Quellcode behoben werden.

Bevor wir jedoch vorgreifen, gehen wir einen Schritt zurück.

Was sind Plugins?

Grundsätzlich sind Plugins Softwareerweiterungen, die Anwendungen mit neuen, maßgeschneiderten Funktionen und Verhaltensweisen ergänzen. Insbesondere WordPress bietet Tausende von Plugins (mehr als 52.000), mit denen Tausende von benutzerdefinierten Webanwendungen erstellt wurden.

Seit Plug-in-basierte Webanwendungen immer mehr zum Mainstream wurden, wandten sich immer mehr Entwickler der Erforschung ihres Potenzials zu, Webanwendungen neu zu erfinden, indem sie verschiedene Plug-ins mit modernster Funktionalität zusammenstellten, konfigurierten und erweiterten.

Auswirkungen der Plugin-Entwicklung

Allerdings hat die Möglichkeit, Plugins zu nutzen, um Websysteme mit zusätzlichen und benutzerdefinierten Funktionen zu erweitern, sowohl positive als auch negative Auswirkungen auf Entwickler. Positiv zu vermerken ist zunächst, dass normalerweise mehrere Anpassungsoptionen zur Auswahl stehen, die Entwicklern die Möglichkeit geben, schnell und einfach Webanwendungen zu erstellen, die auf die Bedürfnisse der Benutzer zugeschnitten sind. Dadurch wird ein schnelles Prototyping und eine schnelle Entwicklung ermöglicht.

Auf der negativen Seite kann eine Webanwendung jedoch zu einer komplexen Zusammensetzung mehrerer Plugins aus verschiedenen Quellen werden. Was letztendlich Bedenken hinsichtlich der Sicherheit von Plugins aufwirft. Beispielsweise war TimThumb, ein Plugin, das von Millionen von WordPress-basierten Anwendungen verwendet wurde, Berichten zufolge offen für einen Exploit, bei dem Angreifer absichtlich Remote-Code ausführen konnten.

Tatsächlich können laut der National Vulnerability Database (NVD) der Vereinigten Staaten etwa 15 % der Schwachstellen in Websystemen als kritisch angesehen werden, wobei fast 35 % davon leicht auszunutzende Schwachstellen sind.

Welche Folgen haben kompromittierte Plugins?

Abgesehen davon, dass Benutzer Finanzinformationen verlieren oder sogar ihre Gesundheitsdaten kompromittiert werden, gilt: Je schwerwiegender eine Schwachstelle ist, desto größer sind die finanziellen Auswirkungen auf Softwareunternehmen. Darüber hinaus wird dies noch verschärft, wenn Entwickler zum Zeitpunkt der Offenlegung keinen gangbaren Weg freigeben. Daher streben Plug-in-Anbieter normalerweise danach, sicherere Anwendungen zu erstellen

Lassen Sie uns nun einige Sicherheitslücken untersuchen, die typischerweise in Plugins zu finden sind, um ein breiteres Verständnis ihrer Folgen und Auswirkungen zu erhalten.

Sicherheitslücken

Wie wir festgestellt haben, eröffnen Schwachstellen Möglichkeiten für den potenziellen Missbrauch von Softwaresystemen. Da WordPress es Millionen von Entwicklern auf der ganzen Welt ermöglicht, ihre eigenen Plugins zu erstellen, ist es letztendlich unrealistisch, nicht zu erwarten, dass bei Plugins ein gewisses Maß an Kompromissen auftritt.

Folglich kann die Sicherheit durch unvorhergesehene Plugin-Interaktionen mit dem Kernsystem verletzt werden, was zu Schwachstellen führt, die potenziell von Angreifern ausgenutzt werden können. Dies impliziert dann, dass die Sicherheit von Websystemen davon abhängt, dass sowohl das Kernsystem als auch die Plugin-Schwachstellen in Schach gehalten werden.

WordPress-Komplexität

Aufgrund der Komplexität von WordPress neigt es manchmal dazu, von Schwachstellen geplagt zu werden. Beispielsweise bietet WordPress eine intuitive Infrastruktur, zu der Plugins neue Funktionen beitragen können, indem sie den gemeinsamen globalen Zustand ändern oder eine Funktion an einem bestimmten Punkt in der Ausführung des Systemkerns ausführen. Folglich kann eine Plugin-Schwachstelle auftauchen, wenn das Plugin böswillige Eingabedaten ohne angemessene Bereinigung oder Eingabevalidierung an Kernkomponenten sendet.

Beispiele für Plugin-Schwachstellen

Letztendlich sind die häufigsten Plugin-Schwachstellen Cross-Site-Scripting, SQL-Injection und Cross-Site-Request-Forgery. Insgesamt ist SQL Injection der gefährlichste Schwachstellentyp, der von Angreifern leicht ausgenutzt werden kann. Es gibt jedoch andere Schwachstellen, Quellen für Sicherheitsverletzungen und Kompromittierungen, nämlich:

  • Datenverarbeitungsfehler
  • Unsachgemäße Eingabevalidierung
  • Offenlegung von Informationen
  • Wegdurchquerung
  • Sicherheitsfunktionen
  • Zugriffskontrollen
  • Unsachgemäße Zugriffskontrolle
  • Unzulässige Autorisierung
  • Falsche Authentifizierung
  • Cross-Site-Anfragefälschung
  • Uneingeschränkter Upload von Dateien
  • Für externe Parteien zugängliche Dateien
  • Link folgt
  • Weiterleitung öffnen
  • Befehlsinjektion
  • OS-Befehlsinjektion
  • Cross-Site-Scripting
  • SQL-Injektion
  • Code-Injektion
Beispiele-für-Plugin-Schwachstellen

Lassen Sie uns für mehr Kontext die häufigsten Angriffe und Schwachstellen untersuchen.

  • · SQL-Injection: SQL-Injections treten normalerweise auf, wenn ein Angreifer Zugriff auf die WordPress-Datenbank eines Benutzers und alle Daten seiner Website erhält. SQL-Injections können auch verwendet werden, um neue Daten in eine Datenbank einzufügen, einschließlich Links zu schädlichen oder Spam-Websites.

SQL-Injections ermöglichen die Ausführung von Befehlen auf dem Back-End-Server, z. B. die Extraktion vertraulicher Informationen. In einer gehosteten Umgebung kann ein SQL-Injection-Angriff außerdem als Sprungbrett für Angriffe auf nicht anfällige Websites verwendet werden.

  • · Cross-Site Scripting: Dieser Angriff ermöglicht die Ausführung eines Skripts auf dem Client, um Zugriffskontrollen zu umgehen. Es richtet sich in der Regel an alle Besucher einer Website. In einer gehosteten Umgebung kann ein solcher Angriff dazu verwendet werden, die Sitzungscookies des Site-Administrators zu stehlen, sodass sich der Angreifer als Administrator ausgeben kann.
  • · Cross-Site Request Forgery: Diese Schwachstelle ermöglicht es dem Hacker, eine Transaktion auf Anwendungsebene im Namen des Opfers durchzuführen. In einer gehosteten Umgebung kann sich ein Angreifer im Namen des Administrators bei der Site anmelden und böswillige Aktivitäten wie das Umleiten von Benutzern oder das Ausführen von Administratortransaktionen ausführen.

Cross-Site-Scripting-Schwachstellen, die in WordPress-Plugins üblich sind, funktionieren auf folgende Weise – ein Angreifer findet einen Weg, ein Opfer dazu zu bringen, Webseiten mit unsicheren JavaScript-Skripten zu laden.

Wo treten die meisten Schwachstellen auf?

Eine technische Studie ergab, dass die meisten Sicherheitslücken (ca. 92 %) im Plugin-Code auftreten. Darüber hinaus waren den Ergebnissen zufolge Schwachstellen wie Cross-Site Scripting und Cross-Site Request Forgery häufiger im Plugin-Code, während andere Schwachstellen häufiger im Kerncode auftraten. In diesem Zusammenhang ergab die Studie, dass die Qualität der Plugins variierte und dass es keinen Zusammenhang zwischen den Bewertungen der Plugins und der Anzahl der darin gefundenen Schwachstellen gab.

Quellen-von-Schwachstellen-von-WordPress

Der PHP-Code-Schreibprozess

Der Code-Schreibprozess könnte die Entstehung jeder Schwachstelle oder Kompromittierung sein. Generell ist PHP dafür bekannt, die Ausführung von beliebigem Code auf der Serverseite zu unterstützen, ohne das Host-Betriebssystem direkt aufzurufen. Wenn Entwickler jedoch während des Code-Schreibprozesses nachlässig sind, besteht die Möglichkeit, dass Cross-Site-Scripting-Schwachstellen in Plugin-Code eingeführt werden.

Andererseits ist SQL Injection eine häufige Schwachstelle, da sie leicht erkannt und ausgenutzt werden kann. Ironischerweise ist sogar eine Website mit einer kleinen Benutzerbasis wahrscheinlich Gegenstand eines versuchten Angriffs von SQL Injection.

Ein Teil der Anfälligkeit für Schwachstellen stammt von Entwicklern, die unsichere Ressourcen verwenden. In ähnlicher Weise ist die ordnungsgemäße Eingabevalidierung immer noch eine große Herausforderung für Plugin-Entwickler, da viele der kürzlich entwickelten Plugins von nicht so erfahrenen Entwicklern erstellt wurden

Sind Schwachstellen, die durch WordPress-Plugins verursacht werden, kritisch?

Alles in Betracht gezogen; Eine Schwachstelle kann das Websystem auf verschiedene Weise negativ beeinflussen. Beispielsweise kann die erfolgreiche Ausnutzung einer Schwachstelle zu einem vollständigen Verlust der Vertraulichkeit führen, jedoch ohne Verlust der Verfügbarkeit.

Wie bereits erwähnt, scheint die SQL-Injektion der gefährlichste Schwachstellentyp zu sein, obwohl sie die Integrität, Verfügbarkeit und Vertraulichkeit des Systems nur teilweise beeinträchtigt. Eine solche Schwachstelle hat jedoch das Potenzial, Angreifern uneingeschränkten Zugriff auf Dateien oder Informationen zu ermöglichen.

Daher haben die meisten Schwachstellen versehentlich das Potenzial, zu Datenschutzverletzungen zu führen, während einige wenige Schwachstellen die Webanwendung nicht unbedingt ernsthaften Sicherheitsrisiken aussetzen. In beiden Fällen ist es wichtig, bei solchen Quoten kein Risiko einzugehen.

Wie lange kann eine Schwachstelle im Code eines WordPress-Plugins überleben?

Normalerweise durchlaufen Schwachstellen im Code unterschiedliche Stadien, die von der Einführung über die Offenlegung bis zur Veröffentlichung eines Patches zur Behebung der Sicherheitsbedrohung variieren.

Typischerweise wird eine Schwachstelle offengelegt, wenn der Entdecker die Details der Sicherheitsbedrohung einem breiteren Publikum preisgibt. Schließlich wird die Schwachstelle behoben, wenn der Entwickler einen Patch veröffentlicht, der die zugrunde liegende Sicherheitsbedrohung behebt. Manchmal bleibt eine Schwachstelle in einer Webanwendung jedoch jahrelang unbemerkt, bevor sie identifiziert und behoben wird.

Mögliche Abhilfemaßnahmen und Erkennungsmethoden

Vorbeugen ist besser als heilen, wie die meisten Leute sagen. Wenn Plugin-Entwickler also Cross-Site-Scripting, SQL-Injection und Cross-Site-Request-Forgery vollständig verstehen, erkennen und eliminieren können, ist es möglich, dass wir Plugins mit 75 % weniger Schwachstellen haben werden.

Es ist jedoch erwähnenswert, dass diese drei Schwachstellen nicht die einzigen Schwachstellen sind, die von Angreifern ausgenutzt werden können. Vielmehr sind die häufigsten Schwachstellen.

Obwohl diese vorgeschlagenen Minderungsstrategien nicht garantieren, dass ein bestimmtes Plugin vollständig sicher ist, setzen sie jedoch gute Prinzipien für die Vermeidung von Schwachstellen. Zum Beispiel:

  1. Verstehe, wie Daten verwendet werden und welche Kodierung von den Kernteilen von WordPress erwartet wird. In diesem Fall sollten Entwickler immer alle Eingaben als bösartig annehmen und jede Eingabe ablehnen, die nicht strikt dem erforderlichen Codierungsmuster entspricht, oder sie in eine gültige Eingabe umwandeln.
  2. Um Datenbanken vor SQL-Injection zu schützen, sollten Entwickler parametrisierte SQL-Anweisungen verwenden, indem sie den Code von der Datenmanipulation trennen. Überprüfen Sie außerdem immer die Header, um festzustellen, ob die Anfrage vom selben Ursprung stammt. Darüber hinaus kann es auch nützlich sein, zu vermeiden, dass Daten nicht authentifizierten Angreifern zugänglich gemacht werden.
  3. Eine bewährte Vorgehensweise besteht darin, die GET-Methode für alle Anforderungen zu vermeiden, die eine Statusänderung auslösen.

Schwachstellenerkennung

Leider gibt es keine konsistente Methode, um die häufigsten Codeschwächen mit 100 % Genauigkeit und Abdeckung zu erkennen. Leider liefern sogar moderne Techniken, die Datenflussanalysen verwenden, um Cross-Site-Scripting zu erkennen, manchmal falsch positive Ergebnisse.

Im Gegensatz dazu sind manuelle Analysemethoden wie Code-Reviews tendenziell effektiver als vollautomatisierte Methoden, insbesondere bei Schwachstellen im Zusammenhang mit dem Design. Beispielsweise ist Cross-Site Request Forgery mit automatisierten Methoden besonders schwer zuverlässig zu erkennen, da jede Anwendung ihre eigene Sicherheitsrichtlinie und Art und Weise hat, um anzugeben, welche Anforderungen starkes Vertrauen erfordern, dass der Benutzer beabsichtigt, die Anforderung zu stellen.

Auf der anderen Seite kann eine manuelle Analyse jedoch nützlich sein, um SQL Injection zu finden, obwohl sie innerhalb begrenzter Zeitbeschränkungen möglicherweise nicht die gewünschte Codeabdeckung erreicht. Bei Schwachstellen, die bei allen Eingaben berücksichtigt werden müssen, kann dies schwierig werden, da die Angriffsfläche zu groß werden kann.

Folglich betonen einige Organisationen die Bedeutung eines ausgewogenen Ansatzes, der sowohl manuelle Überprüfungen als auch automatisierte Analysen umfasst, die alle Phasen des Websystementwicklungsprozesses umfassen.

Best Practices zum Schutz Ihrer WordPress-Anwendung

  • Laden Sie Plugins nur von seriösen Quellen wie WordPress.org herunter: Da jeder ein WordPress-Plugin entwickeln kann, nutzen Hacker diese Schwachstelle notorisch aus, um ihre eigenen schädlichen Plugins zu verbergen. Ein seriöser Marktplatz garantiert möglicherweise nicht vollständig den Zugriff auf harmlose Plugins, wird jedoch als mildernde Maßnahme empfohlen.
  • Stellen Sie immer sicher, dass alle Ihre Plugins auf dem neuesten Stand sind: WordPress-Benutzer erhalten normalerweise Benachrichtigungs-E-Mails, die sie oft ignorieren. Stellen Sie sicher, dass Ihre Plugins automatisch aktualisiert werden, oder aktualisieren Sie sie zumindest manuell.
  • Überprüfen Sie die Sicherheitslage des Plugins, indem Sie es auf Sicherheitsprobleme scannen: Die meisten Plugins sind Open Source, was bedeutet, dass ihr Quellcode verfügbar ist. Stellen Sie also sicher, dass Sie ein statisches Quellcode-Analysetool verwenden, das Ihnen die „Gesundheitsbestätigung“ des Plugins liefert. Einige fortschrittliche Scanner können Sie sogar mit den optimalen und schnellsten Lösungsempfehlungen aufzeigen.
  • Alle ungenutzten Plugins entfernen: Leider verbleibt der Code alter, ungenutzter Plugins typischerweise auf dem Server – auch wenn die Plugins inaktiv sind. Stellen Sie also sicher, dass Sie im Rahmen der Wartung Ihrer WordPress-Site immer unbenutzte Plugins entfernen

Empfehlungen für Plugin-Entwickler

  • Integrieren Sie immer Sicherheit in die Plugin-Entwicklung: Schwachstellen verursachen später höhere Kosten, um sie zu beheben. Integrieren Sie daher immer Sicherheit in die Plugin-Entwicklung als Teil Ihres sicheren Software Development Life Cycle (SDLC)-Prozesses.
  • Führen Sie das Plugin durch einen Code-Scanner, um sicherzustellen, dass es den neuesten Sicherheitsstandards entspricht. Stellen Sie sicher, dass Sie während der Entwicklung und vor der Veröffentlichung einen umfassenden Quellcode-Analysetest durchführen.

Entwicklung sicherer Plugins

Wie bereits erwähnt, müssen sich Plugin-Entwickler bemühen, sicheren Code zu schreiben. Leider wissen viele Entwickler immer noch nicht, wie das geht, da sie nicht so erfahren sind. Insbesondere angesichts der Art der oben genannten häufigsten Schwachstellen ist es klar, dass viele Entwickler häufige Angriffe, die Sicherheitsfunktionen der von ihnen verwendeten Sprache und Plattform und die Anwendung anwendbarer Praktiken zur Minderung von Sicherheitsproblemen nicht verstehen.

Daher lautet unsere Empfehlung bei Creole Studios, dass vielleicht neue Methoden entwickelt werden sollten, die auf Plugin-Entwickler zugeschnitten sind. Solche Methoden sollten die Sicherheit in den Anforderungs- und Entwurfsphasen fördern, da Entwickler die wichtigsten Einheiten in der Softwaresicherheit sind.

Abschließende Gedanken

Um das Thema zusammenzufassen: WordPress-Plugins können kompromittiert werden, wobei die häufigsten Schwachstellen Cross-Site-Scripting, SQL-Injection und Cross-Site-Request-Forgery sind.

Leider scheint die Forschung darauf hinzudeuten, dass die Häufigkeit, mit der diese Schwachstellen auftreten, mit der Zeit nicht abzunehmen scheint. Man kann davon ausgehen, dass der Hauptgrund dafür darin besteht, dass die meisten WordPress-Plugin-Entwickler in Bezug auf sichere Programmierung noch etwas unterqualifiziert sind.

Davon abgesehen sollte die erste Verteidigungslinie das Entwicklungsteam sein! Und wir glauben, dass Benutzer, sobald die besten Sicherheitspraktiken angewendet werden, nachts besser schlafen können, da sie wissen, dass sie vor Cyberkriminellen geschützt sind.

Für weitere Informationen zu unseren WordPress-Sicherheitspraktiken wenden Sie sich bitte an eine Beratung.