Wie man Brute-Force-Attacken auf WordPress (und ähnliche) Dienste hinter Ihrer Firewall gehostet verhindern

Wie man Brute-Force-Attacken auf WordPress (und ähnliche) Dienste hinter Ihrer Firewall gehostet verhindern

44380
Created On 09/25/18 18:59 PM - Last Modified 06/05/23 20:31 PM


Resolution


Problem:

Wenn Sie Dienste hosten, die anfällig für Brute-Force-Angriffe auf Web-Logon-Formulare sind, ist es nicht einfach, solche Angriffe zu erkennen, es sei denn, Sie überfluten den Server hinter der Firewall. Auch andere Bedienelemente und Funktionen der Palo Alto Networks Firewall können Angriffe verhindern. Wenn der Angriff jedoch nicht übermäßig aggressiv, sondern hartnäckig ist, dann kann er nicht durch andere Kontrollen blockiert werden.

 

Die Diagnose dieser Angriffe allein in Firewall-Protokollen kann für einige Dienste wie WordPress schwierig sein, da ein Anmeldeformular mit einem HTTP-Statuscode 200 (OK) reagiert, unabhängig davon, ob die Anmeldung erfolgreich war oder nicht; der einzige Unterschied ist, dass die erfolgreiche Anmeldung den Benutzer anschließend auf die Admin-Seiten umleitet. Aber die erste Reaktion auf Erfolg oder Misserfolg ist immer HTTP Statuscode 200. Die gleiche Antwort auf Erfolg und Misserfolg zu bekommen, bedeutet, dass wir ein gut nicht von einer schlechten Reaktion unterscheiden können, wenn wir jedoch nachfolgende Versuche in Verkehrs Protokollen sehen, bei denen dieselbe IP-Quelle innerhalb relativ kurzer Zeit auf eine URL zugreift, die einen "WP-LOGON"-String enthält.  Intervall, können wir ziemlich sicher sein, dass jemand nicht in der WordPress-Website einloggen und versuchen, wieder. Wenn Sie sehr hartnäckig sind und immer wieder versuchen, für Stunden und Stunden, sind die Chancen, es ist eine Brute-Force-Attacke gegen Ihre WordPress-Installation, die nicht durch konventionelle Kontrollen blockiert wird.

 

EINE Lösung in kundenspezifischen Signaturen

Geben Sie benutzerdefinierte Signaturen ein: lassen Sie uns dies so konfigurieren, dass wir jede Quelle-IP-Adresse blockieren können, die mehr als 5 Logons innerhalb von 20 Sekunden — einem willkürlich gewählten Wert mit wenig Erfahrung versucht, sich nach Ihren Bedürfnissen und Erfahrungen anzupassen —. Mein Ansatz wäre es, diese Werte auf das zu verschärfen, was nicht zu viele reguläre Nutzer davon überlassen wird, täglich auf die Website zuzugreifen.

 

Um zu verhindern, dass sich die Nutzer negativ beeinflussen, müssen wir zunächst das Logon-Ereignis selbst erkennen und dann die Anzahl der Versuche im vorgesehenen Zeitintervall zählen. Dies kann in zwei Schritten erfolgen — indem zunächst eine Basis-Signatur erstellt wird, um das Logon-Ereignis zu erkennen, und dann eine Kombinations Unterschrift erstellt wird, die wiederholte Treffer zur Base-Signatur innerhalb eines bestimmten Zeitintervalls (5 Logons innerhalb von 20 Sekunden) zählt.

 

EINE schnelle, herunterladbare Lösung

Laden Sie einfach Anhänge von der Unterseite dieses Dokuments herunter und importieren Sie Sie in die Firewall. Um zu importieren, melden Sie sich auf WebGUI, wählen Sie die Registerkarte Objekte, dann durchsuchen Sie die linke Leiste zu BenutzerDefinierten Objekten > Verwundbarkeit. In der linken unteren Ecke der Seite klicken Sie auf "Importieren". Dann öffnen Sie die Dateien und passen Sie die Werte nach Bedarf an und verpflichten Sie. Lesen Sie weiter, um herauszufinden, was Sie anpassen können und warum.

 

Erstellung einer Basis Unterschrift

Um mit der Erstellung von Signaturen zu beginnen, loggen Sie sich auf die Web-GUI der Firewall und unter der Registerkarte Objekte, Durchsuchen Sie das linke Fenster zu BenutzerDefinierten Objekten > Verwundbarkeit. In der unteren linken Ecke der Seite klicken Sie auf HinzuFügen, und lassen Sie uns eine eigene Signatur erstellen.

 

Konfigurations Register

Konfigurieren Sie Folgendes:

Basis-Regel-Konfiguration Tab

  • Bedrohungs Ausweis: beliebige Zahl zwischen 41000 und 45000 — ich wählte 43434.
  • Name: WordPress-BF-Base (beliebige Wahl)
  • Schwere: Informationelle — das ist wichtig. Sie wollen, dass Base-Signatur von informativer oder geringer Schwere ist, weil Sie in der Regel Action ' Alert ' auf niedriger/informativer schwere haben würden und nicht ' Block ', wie Sie es auf mittlerer/hoher/kritischer Schweregrade tun würden. Wir wollen ' Block ' nicht wählen, weil eine einzige Instanz des Besuchs von WP-Logon auch diese Basis-Verwundbarkeit auslösen wird. Stattdessen werden wir eine Kombinations Unterschrift mit hoher Härte erstellen, die durch wiederholte Auslöser dieser Basis Unterschrift aus derselben IP-Quelle innerhalb kurzer Zeit ausgelöst wird.
  • Richtung: beides.
  • Standard-Aktion: Alert — wie bereits erwähnt, wollen wir nicht jeden blockieren, der diese Regel trifft, sondern nur diejenigen, die ihn in den kurzen Zeitabständen immer mehr von der gleichen Quelle-IP-Adresse treffen.
  • Betroffenes System: Client-and-Server

 

Signatur-Tab

Wir müssen folgende Punkte konfigurieren:

Basis Regel-Signaturen Tab

Wählen Sie "Standard" und klicken Sie auf HinzuFügen, um Signatur-Details zu konfigurieren, wie:

Basis Regel-Standard-Signaturen

Standard: WP-Logon-Failure (beliebiger Name, dieser ist selbst beschreibend).

Scope: Session — wir erkennen eine HTTP-Session, die aus zwei Transaktionen besteht — die erste ist eine HTTP-Anfrage für URL, die ' WP-Login ' in Ihrem Pfad enthält, während die zweite Transaktion eine HTTP-Antwort mit Statuscode 200 ist.

Bestellte Kondition-Match: Ja — wir erwarten, dass diese Sitzung aus Transaktionen besteht, die sich in einer bestimmten Reihenfolge befinden (Antwort wird immer auf Anfrage verursacht).

 

Erste Bedingung

Klicken Sie auf "HinzuFügen oder Bedingung", um die erste Bedingung hinzuzufügen, und konfigurieren Sie:

Basis Regel-erste Bedingung der Standard Regel

Betreiber: Pattern Match — wir werden Regex-Muster verwenden, um ' WP-Login '-String in URL-Anfrage zu erfassen.

Kontext: http-req-URI-Path — wir werden es innerhalb des HTTP-Request-URL-Pfades anpassen.

Muster: wp\-Login — wir müssen das Escape "-" Zeichen mit Backslash verwenden. Wir brauchen mindestens 7 Zeichen zum Matching; Wenn Sie eine eigene URL für WP-Logon haben oder mit einem anderen Web-Service übereinstimmen, ändern Sie dies entsprechend. Weitere Referenzen zur Mustererstellung und Regex finden Sie hier.

 

Zweite Bedingung

Klicken Sie auf "HinzuFügen oder Bedingung", um die zweite Bedingung hinzuzufügen und zu konfigurieren:

Basis Regel-zweite Bedingung der Standard Regel

Betreiber: gleich

Kontext: http-RSP-Code

Wert: 200 — wir suchen eine HTTP-Antwort mit einem Statuscode 200 (OK).

 

Eine Kombi-Signatur erstellen

Nun, da wir unsere Basis-Signatur erstellt haben, lassen Sie uns fortfahren und eine Kombi-Signatur erstellen. Klicken Sie noch einmal an der linken unteren Ecke des Bildschirms, um mit der Konfiguration zu beginnen.

 

Konfigurations Register

Wir müssen Folgendes konfigurieren:

KombiNation Regel-Konfiguration Tab

 

  • Bedrohungs-ID: beliebige Zahl zwischen 41000 und 45000, wähle ich 43435, weil zuvor 43435 war:)
  • Name: WordPress-BruteForce (beliebige Wahl)
  • Schwere: Critica — das ist wichtig, Sie wollen, dass diese Signatur eine hohe oder kritische schwere hat, da wir Brute-Force-Versuche erkennen, in ihre Dienste einzubrechen.
  • Standard-Aktion: Block IP — wir werden diese Aktion weiter definieren:
  • Track by: Source — wir werden die Quelle-IP-Adresse blockieren, wir möchten in diesem Fall nicht das Ziel blockieren, da dies unser Server innerhalb der Firewall ist. Die vorherige Basis Regel benutzte die Idee einer "geordneten Sitzung" mit der ersten Transaktion der Anfrage für WP-LOGON und die Antwort von 200 auf Sie; Daher ist die Quelle der Sitzung externer Angreifer.
  • Dauer: 60 — Dies ist die Dauer, wie lange wir wollen, dass dieser Block stattfindet, bis zu einer Stunde (3600 Sekunden). Während unsere Demonstration verhindert, dass die Quelle IP nur für 60 Sekunden angeschlossen wird, könnte man dies bei strenger Einstellung in der Produktion auf 3600 Sekunden erhöhen; Dies sollte ausreichen, um jeden Angreifer abzuschrecken-Sie könnten versuchen, einen Bruch zu erzwingen, der nur 5 Passwörter pro Stunde zwingt.
  • Richtung: beide
  • Betroffenes System: Server

Signaturen Tab

Jetzt müssen wir dies mit unserer Basis Unterschrift korrelieren. Wählen Sie auf dieser Registerkarte:

Signatur: KombiNation

und gehen Sie zur Konfiguration von Sub-Tabs:

Kombinations Unterschriften

Kombinationsregel-Signatur-Tab

Bedrohungs Ausweis: Klicken Sie auf "HinzuFügen oder konditionieren" und tippen Sie 43434 (oder welche Bedrohungs Nummer Sie für Ihre Basis Unterschrift gewählt haben).

 

Zeit Attribut

KombiNation Regel-Zeit-Attribut Tab

Anzahl der Treffer: 5 pro 20 Sekunden — Dies ist der letzte Teil, in dem wir Werte aufstellen, die unsere Basis Unterschrift auslösen. Dies kann je nach Erfahrung angepasst werden. Sie können zwischen 1-255 Treffern innerhalb von 1-3600 Sekunden alles zählen.

Aggregations Kriterien: Quelle — wir werden diese Auslöser pro Quelle IP-Adresse zählen.

 

Weitere details

Derzeit ist Threat ID 37480 in der Verwundbarkeits Liste PAN Signature für WordPress-Login; Es ist auch von informativer Härte und kann als Basis-Signatur im obigen Beispiel verwendet werden. Dieser Artikel sollte Ihnen einen Mehrwert bringen, wenn Sie lernen, wie Sie jede Signatur erstellen und anpassen, falls Sie angepasste Logon-URLs haben oder Sie einen anderen Dienst verwenden, der dem oben beschriebenen Fall ähnelt.

 

Fazit

Ihre endgültige Konfiguration würde zwei benutzerdefinierte Verwundbarkeiten zeigen, um zu verhindern, dass brutale Gewalt Angriffe auf die WordPress-Website hinter Ihrer Firewall gehostet werden. Mit ein wenig basteln können Sie aber auch viele verschiedene Dienste schützen, einige Arbeiten von dedizierter WAF abmildern und über reguläre Signaturen hinaus zusätzlichen Wert bieten.

Letzte Ansicht

 

Wenn Ihnen die Idee gefällt, individuelle Signaturen für Ihr Gerät zu erstellen, besuchen Sie bitte unsere Community-Seiten für individuelle Signaturen.

 



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClSTCA0&lang=de&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language