Schützen Sie Ihre WordPress-Site mit einer Website-Firewall

Veröffentlicht: 2020-08-25
Protect Your WordPress Site With a Website Firewall

Die enorme Popularität von WordPress hat es zu einem enormen Ziel für Kriminelle und Hacker gemacht, die versuchen, Ihre WordPress-Site auszunutzen, um schnelles Geld zu machen. Es könnten sogar nur Skript-Kiddies sein, die versuchen, bei ihren Kollegen etwas Internet-Glaubwürdigkeit zu erzielen, indem sie Ihre Website zum Spaß verunstalten. Es spielt keine Rolle, wie es passiert, jede Form von Website-Kompromittierung wird zu einem ernsthaften Vertrauensverlust bei Ihren Kunden führen und könnte leicht das Ende Ihrer Marke bedeuten.

Der Schutz Ihrer Website, Ihrer Kunden und Ihrer Marke hat daher oberste Priorität, wenn Sie eine WordPress-Instanz bereitstellen. Leider haben Hacker ausgeklügelte Tools und Techniken entwickelt, um WordPress auszunutzen und das, was Sie erstellt haben, zu zerstören. Der einzige Weg, um vorne zu bleiben, besteht darin, zu verstehen, wie Ihre WordPress-Site gezielt angegriffen werden kann und wie Sie sich vor diesen Bedrohungen schützen können.

In diesem Artikel werden wir uns alle Möglichkeiten ansehen, wie Hacker die Art und Weise nutzen können, wie Ihre WordPress-Site mit dem Internet kommuniziert, und die Abwehrmaßnahmen, die Sie errichten können, um sie zu stoppen, bevor sie Schaden anrichten.

Filtern der Bits und Bytes – Eine Netzwerk-Firewall

Das Senden von Daten über das Internet ist ein überraschend komplizierter Vorgang. Es gibt viele „Schichten“ von der Hardwareschicht unten, die die physische Infrastruktur definiert, bis zu mehreren Softwareschichten darüber, von denen jede von den darunter liegenden abhängt. Die Schichten, die uns in diesem Abschnitt interessieren, sind die Host-zu-Host-Schichten. In diesen Ebenen werden Daten, wie z. B. ein Bild, das Sie an einen Freund senden, in kleine Teile, sogenannte Pakete, aufgeteilt. Diese werden über das Internet von Ihnen (der Quelle) zu Ihrem Freund (dem Ziel) geleitet, wo sie wieder zu dem von Ihnen gesendeten Originalbild zusammengesetzt werden.

Diese Datenpakete haben alle mehrere Eigenschaften, darunter:

  • Protokoll – zB TCP, UDP, ICMP und mehr
  • Port – z. B. Web 80/443, E-Mail 110/25
  • IP-Adressen – Die Quell- und Ziel-IPs der Computer, die die Pakete senden und empfangen

Eine Netzwerk-Firewall befindet sich zwischen der Netzwerkschnittstelle und dem Betriebssystem und untersucht jedes Paket, wenn es den Server erreicht. Es erlaubt oder verweigert die Weiterleitung eines Pakets an das Betriebssystem basierend auf einer Reihe von Zulassungs- und Blockierungsregeln. Pakete werden verworfen, wenn sie gegen eine der Firewall-Regeln verstoßen.

Eine Netzwerk-Firewall ist ein unverzichtbarer Bestandteil einer Server- und WordPress-Installation, da sie jede nicht autorisierte Kommunikation mit Prozessen blockiert, die versehentlich oder absichtlich auf schädlichen Datenverkehr lauschen. Der einzige Datenverkehr, der zum Betriebssystem und darüber hinaus zu WordPress durchgelassen wird, muss den strengen Regeln entsprechen, die die Firewall auferlegt.

Eine richtig konfigurierte Netzwerk-Firewall ist ein Standardbestandteil jedes mit dem Internet verbundenen Servers. Leider bedeutet dies nicht, dass sie einfach zu installieren und zu verwalten sind. Wenn Sie nur Zugriff auf Ihre WordPress-Instanz haben, ist es unmöglich, eine Firewall richtig zu verwalten, da eine effektive Firewall nicht von WordPress aus zugänglich ist.

Filtern der Webanfragen – Eine Webanwendungs-Firewall

Hacker haben ihr Arsenal um eine ausgeklügelte Methode des Netzwerkangriffs erweitert, bei der sie böswillige Webanfragen erstellen, um Ihre WordPress-Site anzugreifen. Diese Webanfragen verletzen keine der Regeln der Netzwerk-Firewall, sodass sie durchgelassen werden, um mit Ihrer WordPress-Site zu interagieren, wo sie ernsthaften Schaden anrichten können.

Um zu verstehen, wie bösartige Webanfragen funktionieren, bedenken Sie zunächst, wie die Komplexität von Webanfragen im Laufe der Jahre zugenommen hat. Vor aktiven Webtechnologien wie PHP war eine Webanfrage sehr einfach und sah wie folgt aus:

 http://www.example.com/index.php

Diese Anfrage gliedert sich wie folgt in Teile:

  • http:// – Die Anfrage verwendet das HTTP-Protokoll.
  • www.example.com – Der Hostname, der in die IP-Adresse des Webservers aufgelöst wird.
  • index.php – Die angeforderte Datei.

Wie Sie sehen können, ist diese Anfrage sehr einfach. Wenn Sie eine Website sichern wollten, erstellten Sie einfach eine Sperrliste mit Dateien, die privat waren, damit der Webserver sich weigerte, sie bereitzustellen. Viel mehr war nicht dabei.

Da die Website-Technologie immer komplizierter geworden ist, haben auch die Möglichkeiten zugenommen, diese Komplexität auszunutzen.

Ein Beispiel für eine solche böswillige Anfrage ist als SQL-Injection-Angriff bekannt. Diese Art von Angriff versucht, vertrauliche Informationen aus der WordPress-Datenbank zu lesen oder zu modifizieren. Dies geschieht durch Erstellen einer Webanforderung, die ein PHP-Skript ausführt, und es dem Angreifer ermöglicht, die WordPress-Datenbank zu lesen oder in sie zu schreiben, wenn das Skript nicht geschrieben wurde, um seine Eingaben zu überprüfen.

Werfen wir einen Blick auf eine einfache Webanforderung für einen SQL-Injection-Angriff. Stellen Sie sich zum Beispiel vor, Sie haben ein Anmeldeformular, das an den Browser des Kunden gesendet wird. Wenn sie das Formular ausfüllen, sendet es eine Webanfrage zurück an den Server, die den von ihnen eingegebenen Konto-Benutzernamen enthält. In dieser Beispielanfrage lautet die Benutzernamen-ID JohnSmith , was uns eine Webanfrage gibt, die wie folgt aussieht:

 http://www.example.com/accountView?id=JohnSmith

Wenn das PHP-Skript auf dem Server diese Eingabe entgegennimmt und nicht auf Gültigkeit prüft, kann dies zu schwerwiegenden Problemen führen. Ein Hacker könnte beispielsweise versuchen, die folgende fehlerhafte URL zu senden, die überhaupt keine ID hat, z.

 http://www.example.com/app/accountView? hat eine besondere Bedeutung in SQL, der Sprache der Datenbanken. Es kann dazu führen, dass ein schlecht geschriebenes Skript eine vollständige Auflistung der Kundendatenbank zurücksendet, möglicherweise einschließlich Passwörtern und anderen vertraulichen Informationen. Das ist offensichtlich eine Katastrophe.

Wie schützt man sich also vor diesen Angriffsformen?

Hier kommt eine Web Application Firewall (WAF) ins Spiel. Eine WAF wird zwischen dem Internet und WordPress platziert und untersucht jede Webanfrage, wenn sie auf dem Server ankommt. Wenn es eine Anfrage findet, die fehlerhaft ist, wie die obige, oder gegen seine Regelliste verstößt, wird es diese Anfrage daran hindern, zu Ihrem WordPress zu gelangen. Eine WAF bekämpft effektiv ganze Klassen gängiger Programmierfehler, die eine WordPress-Site leicht gefährden können, die andernfalls eine Überprüfung jeder PHP-Datei auf Ihrer Site erfordern würde.

Offensichtlich ist dies nur ein Beispiel für eine böswillige Anfrage aus einer riesigen und sich schnell entwickelnden Palette von Möglichkeiten. Dies macht eine wirklich effektive WAF zu einer ständigen Herausforderung, um Regeln hinzuzufügen, die mit den Hackern Schritt halten. Genau wie eine Netzwerk-Firewall ist eine WAF technisch anspruchsvoll einzurichten und vor allem zu warten.

Stoppen der Bots – Bruteforce-Schutz und reCAPTCHA

Die letzte Ebene einer effektiven Netzwerkverteidigung besteht darin, automatisierte Angriffe auf Ihre Anmeldeseite für das WordPress-Admin-Panel zu stoppen. Diese Angriffe werden von Programmen gestartet, die gemeinhin als „Bots“ bezeichnet werden, abgeleitet vom Wort „Roboter“. Bots werden von Hackern eingesetzt, weil sie unermüdlich und in großer Zahl daran arbeiten, koordinierte Angriffe zu starten.

Die häufigste Angriffsmethode besteht darin, eine Anmeldeseite mit einem Brute-Force-Angriff anzugreifen. Dies versucht, Benutzernamen und Passwörter zu erraten, damit sie sich bei Ihrer WordPress-Site anmelden können.

Ein Bruteforce-Angriff funktioniert, indem sehr viele verschiedene Kombinationen aus Benutzername und Passwort ausprobiert werden. Normalerweise sind dies Kombinationen der beliebtesten Benutzernamen wie admin oder root zusammen mit den häufigsten Passwörtern wie „123456“. Ein Bruteforce-Angriff würde mit der Übermittlung der folgenden Kombinationen aus Benutzername und Passwort beginnen:

  • Administrator: 123456
  • Administrator: passw0rd
  • Administrator: letmein
  • Administrator: qwerty
  • Wurzel: 123456
  • root: passw0rd
  • root : letmein
  • Wurzel: qwerty

Und von dort aus versuchen Sie immer weniger gebräuchliche Kombinationen.

Der Bot wird einige hundert bis viele tausend versuchen und je nachdem, wie er konfiguriert ist. Der Bruteforce-Schutz bemerkt alle fehlgeschlagenen Anmeldungen und blockiert dann alle weiteren Anfragen von den IP-Adressen, die die falschen Anmeldeanfragen senden. Dies ist ein wesentlicher Schutz vor WordPress-Benutzern, die oft schwächere Passwörter wählen, wenn sie ihre eigenen Passwörter wählen dürfen.

Bruteforce-Angriffe sind nicht der einzige Zweck, für den Bots verwendet werden. Sie werden auch eingesetzt, um Ihre Website auf Schwachstellen, exponierte sensible Dateien oder Plugins und Designs zu untersuchen, die kompromittiert werden können.

Diese Bots können von Googles branchenüblichem Anti-Betrugs-Werbemissbrauchstool namens reCAPTCHA aufgehalten werden. reCAPTCHA sortiert automatisch Menschen von bösartigen Bots, sodass Menschen Ihre Website besuchen und Bots abweisen können. Dies geschieht normalerweise unsichtbar und nahtlos für den menschlichen Benutzer, während es für den Bot unmöglich ist, zu Ihrer Website durchzudringen, wo er sein Bestes versuchen würde, einzudringen.

Aber wie mache ich das alles?

Wenn Sie nicht die Zeit, das technische Fachwissen oder das Budget haben, um eine Netzwerk-Firewall, WAF, einen Brute-Force-Detektor und reCAPTCHA zu konfigurieren und zu warten, sollten Sie es Experten wie Rocket überlassen. Rocket ist ein Managed-Hosting-Anbieter, der WordPress-Sicherheit erhält. Sie enthalten alle diese wichtigen Sicherheitstools standardmäßig in jeder WordPress-Installation.

Alles, was Sie tun müssen, ist sich anzumelden, eine WordPress-Site zu starten und ein paar Sekunden später mit der Erstellung zu beginnen.

Oder sehen Sie sich an, wie man die passwortlose Authentifizierung in WordPress einrichtet