Top 5 Sicherheitslücken in WordPress-Installationen

Ihre WordPress-Installation kann so sicher oder unsicher sein, wie Sie möchten. Erfahren Sie, welche fünf Dinge beim Thema Sicherheit am wichtigsten sind.

Bedenken und Beschwerden über die Sicherheit von WordPress sind nichts Neues.

Wenn Sie ein CMS benötigen und zufällig einen Dienstanbieter konsultieren, der sich nicht mit WordPress beschäftigt, ist Sicherheit der größte Nachteil, von dem Sie hören werden. Bedeutet das, dass jeder WordPress fallen lassen und auf statische Website-Generatoren oder ein Headless-CMS umsteigen sollte?

Nein, denn wie jede Wahrheit im Leben hat auch diese viele Seiten.

Ist WordPress sehr unsicher?

Werfen wir einen Blick auf einige riesige Websites, die auf WordPress erstellt wurden:

  • TechCrunch
  • Der New Yorker
  • BBC America
  • Bloomberg
  • MTV-Nachrichten
  • PlayStation-Blog

Also, was bringt diese Unternehmen – mit absurd tiefen Taschen und einer verblüffenden Belegschaft – dazu, nicht von WordPress zu wechseln? Wenn Sie der Meinung sind, dass die Antwort Legacy-Code ist, denken Sie noch einmal darüber nach: Für diese Namen sind Datensicherheit und öffentliches Image unendlich wichtiger als eine einfache Migration, die (schätze ich) weniger als 200.000 US-Dollar kosten wird.

Sicherlich wissen ihre Ingenieure, was sie tun, und sehen keine grundlegenden, unlösbaren Sicherheitsprobleme mit WordPress?

Sogar ich habe das Glück, eine WordPress-Installation zu verwalten, die monatlich 3,5 bis 4 Millionen Besucher verzeichnet. Die Gesamtzahl der Sicherheitsverletzungen in den letzten acht Jahren? Null!

So . . . ist WordPress sicher?

Es tut mir leid, wenn es wie Trolling aussieht, aber hier ist meine Antwort:

Ich sage das, weil es, wie jede Wahrheit im Leben, kompliziert ist. Um zu einer legitimen Antwort zu gelangen, müssen wir zunächst verstehen, dass WordPress (oder jedes vorgefertigte CMS) nicht wie ein Schrank ist, den Sie dauerhaft irgendwo festhalten, und damit fertig sein.

Es ist ein komplexes Stück Software mit vielen Abhängigkeiten:

  • PHP, das ist die Sprache, mit der es gebaut wurde
  • Ein öffentlich sichtbarer Computer, der die Installation hostet
  • Der Webserver, der verwendet wird, um Besucher zu verwalten (Apache, Nginx usw.)
  • Die verwendete Datenbank (MySQL/MariaDB)
  • Designs (Pakete von PHP-, CS- und JS-Dateien)
  • Plugins (Pakete von PHP-, CS- und JS-Dateien)
  • Und viele mehr, je nachdem, wie viel Ihre Installation leisten soll

Mit anderen Worten, eine Sicherheitsverletzung an einer dieser Nähte wird als WordPress-Verletzung bezeichnet.

Wenn das Root-Passwort des Servers admin123 war und es kompromittiert wurde, ist es eine WordPress-Sicherheitslücke?

Wenn die PHP-Version eine Sicherheitslücke hatte oder wenn das neue Plugin, das Sie gekauft und installiert haben, eine eklatante Sicherheitslücke enthielt; usw. Zusammenfassend: Ein Subsystem fällt aus, und es ist ein WordPress-Sicherheitsfehler.

  So markieren und kommentieren Sie PDFs auf Ihrem iPad

Lassen Sie sich bitte nebenbei auch nicht den Eindruck vermitteln, dass PHP, MySQL und Apache nicht sicher sind. Jede Software hat Schwachstellen, deren Anzahl im Fall von Open Source atemberaubend ist (weil sie für jeden sichtbar und analysierbar ist).

Hat jemand „sicher“ gesagt? 😛

Was wir aus all dieser Übung lernen, ist Folgendes:

Nichts ist allein sicher oder unsicher. Es sind die verschiedenen verwendeten Komponenten, die die Glieder in der Kette bilden, wobei die Kette natürlich so stark ist wie das schwächste von ihnen. Historisch gesehen war das „nicht sicher“-Label von WordPress eine Kombination aus alten PHP-Versionen, Shared Hosting und dem Hinzufügen von Plugins/Themen aus nicht vertrauenswürdigen Quellen.

Gleichzeitig machen einige ziemlich häufige Versehen Ihre WordPress-Installation anfällig für diejenigen, die wissen, wie man sie ausnutzt, und entschlossen sind. Und darum geht es in diesem Beitrag. Also ohne Umschweife (und Zirkelschluss), fangen wir an.

Die wichtigsten WordPress-Schlupflöcher, die Hacker ausnutzen können

Das WordPress-Tabellenpräfix

Die berühmte 5-Minuten-Installation ist das Beste, was WordPress passieren kann, aber wie alle Installationsassistenten macht es uns faul und lässt die Dinge auf den Standardwerten.

Das bedeutet, dass das Standardpräfix für deine WordPress-Tabellen wp_ ist, was zu Tabellennamen führt, die jeder erraten kann:

  • wp-Benutzer
  • wp-Optionen
  • wp-Beiträge

Stellen Sie sich nun einen als SQL-Injection bekannten Angriff vor, bei dem böswillige Datenbankabfragen geschickt eingefügt und in WordPress ausgeführt werden (bitte beachten Sie, dass dies keineswegs ein WordPress/PHP-exklusiver Angriff ist).

Obwohl WordPress über eingebaute Mechanismen verfügt, um mit dieser Art von Angriffen umzugehen, kann niemand garantieren, dass dies nicht geschieht.

Wenn es dem Angreifer also irgendwie gelingt, eine Abfrage wie DROP TABLE wp_users auszuführen; DROP TABLE wp_posts;, alle Ihre Konten, Profile und Beiträge werden sofort gelöscht, ohne Chance auf Wiederherstellung (es sei denn, Sie haben ein Sicherungsschema eingerichtet, aber selbst dann verlieren Sie zwangsläufig Daten seit der letzten Sicherung ).

Das einfache Ändern des Präfixes während der Installation ist eine große Sache (die keinen Aufwand erfordert).

Etwas Zufälliges wie sdg21g34_ wird empfohlen, weil es Unsinn und schwer zu erraten ist (je länger das Präfix, desto besser). Das Beste daran ist, dass dieses Präfix nicht einprägsam sein muss; das Präfix ist etwas, das WordPress speichert, und Sie müssen sich nie wieder darum kümmern (genauso wie Sie sich keine Sorgen um das standardmäßige wp_-Präfix machen müssen!).

Die Standard-Anmelde-URL

Woher wissen Sie, dass eine Website auf WordPress läuft? Eines der verräterischen Zeichen ist, dass Sie die WordPress-Anmeldeseite sehen, wenn Sie „/wp-login.php“ zur Website-Adresse hinzufügen.

Nehmen wir als Beispiel meine Website (http://ankushthakur.com). Liegt es an WordPress? Nun, machen Sie weiter und fügen Sie den Login-Teil hinzu. Wenn Sie sich zu faul fühlen, passiert Folgendes:

  VirusTotal veröffentlicht Mac-App; Überprüft Dateien auf Viren, ohne sie zu öffnen

¯_(ツ)_/¯

WordPress, richtig?

Sobald dies bekannt ist, kann sich der Angreifer vor Freude die Hände reiben und anfangen, fiese Tricks aus seinem Bag-O‘-Doom auf alphabetischer Basis anzuwenden. Ich armer!

Die Lösung besteht darin, die Standard-Anmelde-URL zu ändern und sie nur an vertrauenswürdige Personen weiterzugeben.

Zum Beispiel ist diese Website auch auf WordPress, aber wenn Sie http://wdzwdz.com/wp-login.php besuchen, werden Sie nur eine tiefe Enttäuschung erleben. Die Anmelde-URL ist versteckt und nur den Admins bekannt?

Das Ändern der Anmelde-URL ist auch kein Hexenwerk. Schnapp dir das einfach Plugin.

Herzlichen Glückwunsch, Sie haben gerade eine weitere frustrierende Sicherheitsebene gegen Brute-Force-Angriffe hinzugefügt.

Die PHP- und Webserver-Version

Wir haben bereits besprochen, dass jede Software, die jemals geschrieben wurde (und geschrieben wird), voller Fehler ist, die darauf warten, ausgenutzt zu werden.

Dasselbe gilt für PHP.

Selbst wenn Sie die neueste Version von PHP verwenden, können Sie nicht sicher sein, welche Schwachstellen vorhanden sind und möglicherweise über Nacht entdeckt werden. Die Lösung besteht darin, einen bestimmten Header zu verbergen, der von Ihrem Webserver gesendet wird (nie von Headern gehört? read Dies!), wenn sich ein Browser damit verbindet: x-powered-by.

So sieht es aus, wenn Sie die Entwicklungstools Ihres bevorzugten Browsers überprüfen:

Wie wir hier sehen können, teilt uns die Website mit, dass sie auf Apache 2.4 läuft und die PHP-Version 5.4.16 verwendet.

Nun, das sind bereits eine Menge Informationen, die wir ohne Grund weitergeben, um dem Angreifer zu helfen, seine Auswahl an Tools einzugrenzen.

Diese (und ähnliche) Header müssen ausgeblendet werden.

Glücklicherweise geht das schnell; Leider sind ausgefeilte technische Kenntnisse erforderlich, da Sie in die Eingeweide des Systems eintauchen und mit wichtigen Dateien herumspielen müssen. Daher rate ich Ihnen, Ihren Website-Hosting-Provider zu bitten, dies für Sie zu tun. wenn sie nicht sehen, ob ein Berater dies erledigen kann, hängt dies jedoch weitgehend von Ihrem Website-Host ab, ob sein Setup solche Möglichkeiten hat oder nicht.

Wenn es nicht funktioniert, ist es möglicherweise an der Zeit, den Hosting-Anbieter zu wechseln oder zu einem VPS zu wechseln und einen Berater für Sicherheits- und Verwaltungsbelange zu beauftragen.

Lohnt es sich? Das kannst nur du entscheiden. 🙂

Oh, und wenn Sie Sicherheits-Header austricksen möchten, hier ist Ihre Lösung!

Anzahl der Anmeldeversuche

Einer der ältesten Tricks im Hacker-Handbuch ist der sogenannte Wörterbuchangriff.

Die Idee ist, dass Sie eine lächerlich große Anzahl (Millionen, wenn möglich) von Kombinationen für ein Passwort ausprobieren, es sei denn, eine davon ist erfolgreich. Da Computer in dem, was sie tun, blitzschnell sind, ist ein solch dummes Schema vernünftig und kann in angemessener Zeit Ergebnisse liefern.

  So löschen Sie das DeviantArt-Konto

Eine übliche (und äußerst effektive) Verteidigung bestand darin, eine Verzögerung hinzuzufügen, bevor der Fehler angezeigt wird. Dies lässt den Empfänger warten, was bedeutet, dass es zu lange dauert, bis es fertig ist, wenn es sich um ein Skript handelt, das von einem Hacker verwendet wird. Das ist der Grund, warum Ihr Computer oder Ihre Lieblings-App ein wenig hüpft und dann sagt: „Ups, das falsche Passwort!“.

Wie auch immer, der Punkt ist, dass Sie die Anzahl der Anmeldeversuche für Ihre WordPress-Site begrenzen sollten.

Nach einer festgelegten Anzahl von Versuchen (z. B. fünf) sollte das Konto gesperrt werden und nur über die E-Mail des Kontoinhabers wiederhergestellt werden können.

Zum Glück ist es ein Kinderspiel, dies zu erledigen, wenn Sie auf eine nette stoßen Plugin.

HTTP vs. HTTPS

Das SSL-Zertifikat, mit dem Sie Ihr Anbieter belästigt, ist wichtiger als Sie vielleicht denken.

Es ist nicht nur ein Reputationstool, das im Browser ein grünes Schlosssymbol mit der Aufschrift „Sicher“ anzeigt; Vielmehr reicht es aus, ein SSL-Zertifikat zu installieren und alle URLs zu zwingen, auf „https“ zu funktionieren, um Ihre Website von einem offenen Buch in eine kryptische Schriftrolle zu verwandeln.

Wenn Sie nicht verstehen, wie dies geschieht, lesen Sie bitte etwas über etwas, das als bekannt ist Man-in-the-Middle-Angriff.

Eine weitere Möglichkeit, den Datenverkehr von Ihrem Computer zum Server abzufangen, ist Packet Sniffing, das eine passive Form der Datenerfassung ist und sich nicht einmal bemühen muss, sich in der Mitte zu positionieren.

Bei Websites, die über einfaches „HTTP“ laufen, werden die Person, die den Netzwerkverkehr abfängt, Ihre Passwörter und Kreditkartennummern in klarem Klartext angezeigt.

Quelle: comparitech.com

Gruselig? Sehr!

Aber sobald Sie ein SSL-Zertifikat installiert haben und alle URLs in „https“ konvertiert werden, werden diese sensiblen Informationen als Kauderwelsch angezeigt, das nur der Server entschlüsseln kann. Mit anderen Worten, schwitzen Sie nicht diese paar Dollar pro Jahr. 🙂

Fazit

Wird es Ihnen gelingen, diese fünf Dinge in den Griff zu bekommen und Ihre Website gut zu sichern?

Nein überhaupt nicht. Wie unzählige Sicherheitsartikel sagen, ist man nie 100 % sicher, aber es ist möglich, eine große Klasse dieser Probleme mit vertretbarem Aufwand zu beseitigen. Sie können die Verwendung von SUCURI Cloud WAF in Betracht ziehen, um Ihre Websites ganzheitlich zu schützen.