Überprüfung des WordPress-Plugins BBQ: Bad Queries blockieren

Veröffentlicht: 2014-01-30

BBQ:Block Bad Queries ist eine WordPress Web Application Firewall, die böswillige HTTP-Anfragen blockiert

Es sind viele WordPress-Sicherheits-Plugins verfügbar, aber nur wenige behandeln die WordPress-Sicherheit wirklich richtig und helfen Ihnen, Ihre WordPress-Installation vor böswilligen Hackerangriffen zu schützen.

Eines dieser Plugins ist BBQ: Block Bad Queries. Dieses Plugin ist wie eine hochgradig anpassbare, aber einfache und wartungsfreie Firewall für WordPress-Webanwendungen, die jeder WordPress-Administrator und -Manager installieren sollte.

Dieser WordPress-Sicherheitsbeitrag erklärt:

  • So funktioniert das BBQ:Block Bad Queries Plugin
  • So passen Sie das Plugin „BBQ:Block Bad Queries“ an
    • Ändern/Hinzufügen von zu blockierenden Mustern
    • Blockieren Sie Besucher mit einer bestimmten User-Agent-Zeichenfolge
    • Konfigurieren einer maximalen Anzahl von Zeichen, die in HTTP-Anforderungen zulässig sind
  • So testen Sie BBQ: Blockieren Sie Bad Queries und Ihre Anpassungen

So funktioniert das BBQ:Block Bad Queries WordPress Plugin

Das Plugin BBQ:Block Bad Queries analysiert jede an Ihr WordPress gesendete Anfrage, bevor sie vom WordPress-Kern ausgeführt wird. Sollte die Anfrage böswillig sein, verbietet das Plugin dem Besucher den Zugriff auf diese Ressource, indem es mit einem HTTP-Statuscode 403, Zugriff verboten, antwortet.

Die Standardliste bösartiger Muster Block Bad Queries blockiert nicht nur Ihr WordPress vor gezielten WordPress-Angriffen, sondern schützt Ihr WordPress auch vor potenziellen Zero-Day-Schwachstellen und anderen typischen Angriffen wie Cross-Site-Scripting, SQL-Injection und Directory Traversal. Wenn Sie daher BBQ:Block Bad Queries installieren, können böswillige Hacker bekannte Schwachstellen immer noch nicht ausnutzen, wenn Sie eine anfällige (alte) WordPress-Installation, ein Plugin oder ein Thema ausführen.

WP White Security Tipp : Auch wenn Sie BBQ:Block Bad Queries ausführen, sollten Sie immer noch die neuesten und sichersten Versionen von WordPress, Plugins und Themes ausführen. Das WordPress BBQ-Plugin sollte als zusätzliche Sicherheitsebene verwendet werden, anstatt bestehende Sicherheitslücken zu schließen.

BBQ:Block Bad Queries Plugin anpassen

Standardmäßig erfordert Block Bad Queries keine Anpassungen oder Konfigurationsänderungen, aber es gibt immer Ausnahmen von den Regeln. Falls Sie BBQ:Block Bad Queries anpassen müssen, finden Sie hier eine Erklärung dazu, was Sie anpassen können. Zu Beginn scannt es drei Teile jeder Anfrage, die an eine WordPress-Installation gesendet wird:

Anforderungs-URI : die vom Benutzer angeforderte URL, z. B. https://www.wpwhitesecurity.com/wordpress-security/

Abfragezeichenfolge : die in der URL enthaltene Abfragezeichenfolge, z. B. https://www.wpwhitesecurity.com/wordpress-security/?query_string=1

User-Agent-String : Der User-Agent-String wird automatisch von der Client-Software gesendet, die auf Ihr WordPress zugreift, um sich zu identifizieren. Beispielsweise verwendet Google Chrome den folgenden User-Agent-String:

Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/32.0.1667.0 Safari/537.36

Alle Muster, die typischerweise in böswilligen Anfragen verwendet werden, sind in drei Arrays im Plugin gespeichert und ihr Name ist selbsterklärend:

  • $request_uri_array
  • $query_string_array
  • $user_agent_array

BBQ:Block Bad Queries hat keine Konfigurationsschnittstelle. Wenn Sie also Änderungen vornehmen möchten, wie in den folgenden Beispielen erläutert, müssen Sie den Code aus der PHP-Plugin-Datei bearbeiten.

Ändern der HTTP-Anforderungen, die das BBQ:Block Bad Queries Plugin blockieren soll

Wenn Sie einen bestimmten Typ von Abfragezeichenfolge blockieren möchten, fügen Sie das Abfragezeichenfolgenmuster zum $query_string_array-Array hinzu. Nachdem Sie ein neues Muster hinzugefügt haben, testen Sie es, um sicherzustellen, dass Sie keine legitimen Anfragen blockieren. Es folgt ein Syntaxbeispiel:

$query_string_array  = apply_filters( 'query_string_items',  array( 'PATTERN_1', 'PATTERN_2', 'PATTERN_3');

Hinweis: Jedes Muster, das Sie hinzufügen, sollte zwischen einfachen Anführungszeichen (') deklariert und von den anderen Mustern durch ein Kommasymbol (,) getrennt werden.

Blockieren von Besuchern mit einem bestimmten Benutzeragenten von WordPress

Um Besucher zu blockieren, die einen bestimmten Benutzeragenten verwenden, wie automatisierte Viren- und Malware-Bots, fügen Sie ihre Benutzeragentenzeichenfolge in das $user_agent_array ein.

Konfigurieren einer maximalen URL-Längenbegrenzung für WordPress

Indem Sie die Anzahl der Zeichen begrenzen, die in einer HTTP-Anfrage verwendet werden können, können Sie Ihre WordPress-Installation vor Zero-Day-Angriffen und mehreren anderen böswilligen Angriffen schützen. Zero-Day-Angriffe sind Software-Schwachstellen, die von böswilligen Hackern ausgenutzt werden, aber dem Softwarehersteller noch nicht bekannt sind, daher gibt es noch keinen Patch.

Die meisten böswilligen Angriffe auf Webanwendungen verwenden lange URLs, um bekannte Schwachstellen auszunutzen. Wenn Sie also die Anzahl der Zeichen begrenzen, die in einer HTTP-Anfrage verwendet werden können, schützen Sie Ihre WordPress-Installation automatisch vor solchen Angriffen.

Indem Sie die Anzahl der in einer URL verwendeten Zeichen begrenzen, blockieren Sie möglicherweise auch legitime Anfragen. Bevor Sie diese Sicherheitsfunktion aktivieren, überprüfen Sie daher die Länge der längsten URL, die Sie in Ihrer WordPress-Installation haben (einschließlich im Abschnitt WordPress-Admin-Seiten (/wp-admin/).

Um eine maximale URL-Länge zu aktivieren und zu konfigurieren, kommentieren Sie die folgende Codezeile im Plugin aus (durch Löschen von „//“) und geben Sie die maximale Anzahl von Zeichen an, die eine HTTP-Anforderung enthalten kann. Der Standardwert im Plugin ist 255, wie unten gezeigt.

strlen( $_SERVER['REQUEST_URI'] ) > 255 ||

Testen Ihrer WordPress-Webanwendungs-Firewall

Nachdem Sie das BBQ:Block Bad Queries WordPress-Plugin installiert haben, führen Sie mehrere Tests durch, indem Sie die folgende Liste von Beispiel-URLs anfordern, um sicherzustellen, dass es funktioniert (ersetzen Sie some_site.com durch Ihre Domain):

  • http://www.some_site.com/../../../etc/passwd
  • http://www. some_site.com/path/?q=%00
  • http://www. some_site.com/path/base64_

Wenn das Plug-in ordnungsgemäß funktioniert, sollte der Server bei der Anforderung solcher URLs mit einem HTTP-Statuscode von 403 Forbidden antworten. Die obigen Anfragen sind nur URL-Beispiele, die vom BBQ:Block Bad Requests-Plugin blockiert werden sollten. Sie können mehrere andere Tests durchführen, indem Sie Anforderungen verwenden, die normalerweise bei Hacking-Angriffen im wirklichen Leben verwendet werden.

Testen des BBQ:Block Bad Queries Plugin mit Fiddler

Wenn Sie sich nicht sicher sind, wie die Serverantwort beim Senden böswilliger HTTP-Anforderungen lautet, können Sie die Antwort mit dem Fiddler-Proxy bestätigen.

Wie im folgenden Screenshot hervorgehoben, haben wir in diesem Test die URL https://www.wpwhitesecurity.com/contact/base64_ angefordert und können bestätigen, dass der Server mit einer HTTP 403 Forbidden-Antwort antwortet.

Testen von BBQ: Blockieren Sie das WordPress-Plugin für fehlerhafte Anfragen mit Fiddler

Block Bad Queries Plugin – Eine Webanwendungs-Firewall für WordPress

Hier hast du es! Wenn Sie nach einer hochgradig anpassbaren und starken Webanwendungs-Firewall für Ihre WordPress-Blogs und -Websites gesucht haben, installieren Sie das Plugin BBQ:Block Bad Queries und vergessen Sie es. Sie können BBQ:Block Bad Queries aus dem WordPress-Plugin-Repository herunterladen oder die PRO-Version hier kaufen.

Wenn Sie andererseits etwas bevorzugen, das keine Konfiguration erfordert und auch Malware-Scanning durchführt, würde ich den Malcare-Malware-Scanner empfehlen.