Home Blogs WAF-Tuning leicht gemacht
Applications

About The Author

Outline

Kleine und neue Unternehmen stehen vor einer kritischen Sicherheitsherausforderung. Sie benötigen eine ausgeklügelte Sicherheitslösung, um ihre Webanwendungen zu schützen und gleichzeitig die Kosten für die Einstellung spezialisierter Sicherheitsspezialisten oder verwalteter Services von Drittanbietern zu minimieren. Angesichts der ständig neuen Angriffsvektoren wird die Sicherheit von Webanwendungen immer wichtiger – und schwieriger denn je. Edgecast, jetzt Edgio, WAF ist die Lösung. Es bietet eine robuste und ausgereifte Lösung, die die Verwaltung vereinfacht. Echtzeit-Dashboards und Protokollbereitstellung bieten aktuelle Transparenz, sodass Administratoren Bedrohungen schnell erkennen und Maßnahmen ergreifen können. In diesem Blog konzentrieren wir uns darauf, wie Unternehmen Fehlalarme erkennen und beseitigen und maßgeschneiderte Lösungen für ihre Webanwendung entwickeln können, ohne zusätzliche Supportkosten zu verursachen. Wenn Sie neu in diesem Bereich sind und noch nicht mit dem Edgio WAF arbeiten müssen, sehen Sie sich bitte dieses kurze Tutorial an, um die Benutzeroberfläche und ihre Funktionsweise zu verstehen. Wenn Sie bereits ein Konto haben, können Sie diese Übung mit mir machen. 1. Gehen wir zunächst zum Echtzeit-Dashboard und filtern die WAF-Ereignisse nach Zeit. Dies ist der Zeitraum, für den Sie den Webverkehr analysieren möchten. (Hinweis: Wenn Sie bereits einige Regeltuning durchgeführt haben, sollten Sie unbedingt einen Zeitrahmen nach der letzten Einstellung auswählen.)

Abbildung 1: WAF-Ereignisse, die in den letzten 6 Stunden aufgetreten sind.

2. Sehen Sie sich die Top 10 Regel-IDs an, die von diesem Datenverkehr ausgelöst werden. Regel-IDs sind eine hervorragende Möglichkeit, den Datenverkehr weiter zu filtern und die Payloads für verschiedene WAF-Ereignisse zu beobachten. Fangen Sie jedoch an, den Datenverkehr nacheinander nach diesen Regel-IDs zu filtern, um weitere Analysen durchzuführen.

Abbildung 2: Top 10 Regeln, die durch die WAF-Ereignisse ausgelöst wurden.

3. Prüfen Sie als Nächstes die Payload-Werte, die diese Regel ausgelöst haben, indem Sie das Feld „abgeglichener Wert“ prüfen.

Abbildung 3: Nutzlastwerte in der Spalte „Matched Value“ (übereinstimmender Wert).

4. Analysieren Sie die Nutzlastwerte, um festzustellen, ob sie böswillig sind. Sie sind sich nicht sicher, wie sie aussehen? Hier sind einige potenzielle schädliche Werte, die Sie in der Payload finden können.

  • Pfadüberquerung: http://some_site.com.br/../../../../some Richtung/einige file¹ http://testsite.com/get.asp?f=/etc/passwd²‍
  • LFI-Sicherheitsanfälligkeiten: Ein Angreifer versucht, auf vertrauliche Dateien auf dem Server zuzugreifen, wie .ini. Edgecast WAF blockiert diese und viele andere kritische Dateisystemerweiterungen standardmäßig.³‍
  • Cross-Site-Scripting: http://testsite.test/<Skript>Alert(„TEST“);</Script>⁴ <Img src=”http://url.to.file.which/not.exist” onerror=Alert(document.Cookie);>⁵‍
  • SQL-Injection: WÄHLEN SIE * AUS Elementen, WOBEI „a“=„a“;⁶ 1 AUSWÄHLEN;⁷‍
  • Remotecodeausführung: eval(„\$$user = „$regdate“);⁸‍
  • Zeitbasierte Angriffe: Select 1 und Sleep(2);⁹ select BENCHMARK(2000000,MD5(„A“));¹⁰

5. Wenn Sie immer noch nicht sicher sind, ob die Payload bösartig war, können Sie dies anhand der Liste der Client-IPs ermitteln, die die Anforderungen mit der entsprechenden Payload ausgelöst haben. Wenn die Client-IPs verteilt, d. h. variiert werden, besteht die Wahrscheinlichkeit, dass die Nutzlast falsch positiv ist. Wenn jedoch alle Client-IPs denselben Wert haben, würde dies auf einen potenziellen volumetrischen Angriff hinweisen und ihn somit als schädliche Payload klassifizieren. Um dies zu demonstrieren, gehen wir auf Schritt 3 zurück und wählen diesen übereinstimmenden Wert – {„iata“:[„TGZ“,”MEX“]} aus und verwenden ihn als Beispiel. Um die Liste der Client-IPs zu ermitteln, die diese Payload gesendet haben, fügen Sie den übereinstimmenden Wert wie folgt als Filter hinzu:

Abbildung 5: Client-IPs, die den Nutzlastwert gesendet haben: {„iata“:[„TGZ“,”MEX“]}.

In diesem Fall besteht angesichts der Vielfalt der IP-Adressen, die diese Anfrage stellen, eine hohe Wahrscheinlichkeit, dass diese Anfragen von echten Benutzern stammen, was dies zu einem guten Kandidaten für ein falsch positives Verhalten macht.

6. Nachdem ein False-positive identifiziert wurde, können Sie im Abschnitt „verwaltete Regeln“ eine Ausnahme dafür erstellen. Vorher müssen Sie jedoch herausfinden, wo diese Payload gefunden wurde: Abfragezeichenfolge, Anforderungsheader, URL oder ein anderer Speicherort. Dies lässt sich ganz einfach anhand der Spalte „Abgleich auf“ auf derselben Seite aus Schritt 5 durchführen. In diesem Anwendungsfall wurde die Payload im Abfrageargument „Data“ gefunden, wie unten gezeigt:

Abbildung 6: Position des Nutzlastwerts: {„iata“:[„TGZ“,”MEX“]}.

7. Eine gute Faustregel besteht darin, diese spezifischen übereinstimmenden Felder zu filtern, die die falsch-positive Payload enthalten, und dann zu überprüfen, ob es keine andere Anforderung mit diesem übereinstimmenden ON-Parameter gibt, die eine tatsächliche schädliche Payload enthält. Mit anderen Worten: Die Payload im Feld „Matched on“ (Abgleich auf) ist niemals bösartig. Dies wird durch Hinzufügen eines Filters für das entsprechende Feld erreicht. Wenn wir uns unseren Anwendungsfall ansehen, können wir bestätigen, dass in diesem Abfrageargument keine schädliche Payload gefunden wurde:

Abbildung 7: Alle Payload-Werte, die im Abfrageargument „Data“ gesendet werden.

8. Der letzte Schritt vor dem Erstellen einer Ausnahme besteht darin, die Regel-IDs zu finden, die durch das Feld „Abgleich am“ ausgelöst werden. Wir versuchen, alle Regeln (Regel-IDs) zu notieren, die durch dieses falsche positive ausgelöst wurden. Basierend auf unserem Anwendungsfall sind diese Informationen ab Schritt 5 auf derselben Seite verfügbar.

Abbildung 8: Liste der Regeln, die durch den Nutzlastwert ausgelöst werden: {„iata“: [„TGZ“,„MEX“]}.

9. Es ist an der Zeit, die Ausnahme zu schaffen. Gehen Sie zum Abschnitt „verwaltete Regeln“, und klicken Sie auf die verwaltete Regel, der Sie diese Ausnahmen hinzufügen möchten.

Abbildung 9: Vorhandene verwaltete Regeln, die für die WAF-Konfiguration erstellt wurden.

10. Gehen Sie zur Registerkarte Ausnahmen und klicken Sie auf neue Bedingung hinzufügen. Wählen Sie den Typ der Übereinstimmung in dem Feld, wie z.B. args, Request_Cookies oder URL, in der die Payload gefunden wurde. Geben Sie dann den Namen des Parameters ein, z. B. Abfrage oder Cookie. Geben Sie abschließend die Liste aller Regel-IDs ein, die die Payload ausgelöst hat.

Abbildung 10: Registerkarte „Ausnahmen“ unter der Konfiguration „verwaltete Regel“. 11. Machen Sie weiter und schaffen Sie diese Bedingung. Innerhalb von 30 Sekunden nach dem Speichern der verwalteten Regel können Sie sehen, dass dieses falsch positive Ergebnis in Zukunft durch die WAF geht 12. Jetzt, da Sie wissen, wie das funktioniert, gehen Sie zu Schritt 3 zurück, filtern Sie den Datenverkehr nach einer anderen Regel-ID, und wiederholen Sie diesen Vorgang, um so viele Fehlalarme wie möglich zu beseitigen. Du hast es geschafft. Sie haben gerade die WAF-Lösung für Ihren Datenverkehr angepasst.

Ein paar letzte Tipps

Wenn Sie den Edgio WAF zum ersten Mal verwenden, empfehlen wir, 2-3 Runden dieser Übung durchzuführen, bevor Sie den Blockmodus einschalten. Und basierend auf Ihrem Verkehrsaufkommen können Sie diese Übung alle 2-7 Tage wiederholen. Für bestehende Edgio WAF-Kunden empfehlen wir, diese Feinabstimmung alle 3-4 Wochen durchzuführen. Eine weitere Sache, die Sie beachten sollten, ist, den Schwellenwert Ihrer verwalteten Regel auf unter 10 zu senken und sich allmählich auf den optimalen Wert von 5 zu begeben. Dadurch wird sichergestellt, dass Sie kontinuierlich einen präziseren und klareren Regelsatz erstellen. Denken Sie daran, dass die Edgio WAF duale WAF bietet, eine tatsächliche Staging-Umgebung (der Audit-Modus) für Ihren Echtzeit-Datenverkehr. Sie können den Auditmodus für alle wiederkehrenden Aktualisierungen und Feinabstimmungen der Regelsammlung verwenden, ohne sich Gedanken darüber machen zu müssen, dass legitimer Datenverkehr gelöscht wird. Kontaktieren Sie uns noch heute, um mehr über all unsere Sicherheitstechnologien zu erfahren, mit denen Ihre Webanwendungen geschützt sind.
Ressourcen: ¹⁻² OWASP, „Path Traversal“ , owasp.org, owasp.org/www-community/attacks/Path_Traversal. ³ Offensive Security, “File Inclusion Vulnerabilities” , offensive-security.com, offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/. ⁴⁻⁵ OWASP, “Cross Site Scripting” owasp.org, owasp.org/www-community/attacks/xss/. ⁶⁻⁷OWASP, „SQL Injection“ , owasp.org, owasp.org/www-community/attacks/SQL_Injection. ⁸ Netsparker, “ Schwachstelle für die Remotecodeauswertung (Ausführung) ,” netsparker.com, netsparker.com/blog/web-security/remote-code-evaluation-execution/. ⁹⁻¹⁰ Ashraff, Ahmad, „Timing-based Attacks in Web Applications“, owasp.org, owasp.org/www-pdf-archive/2018-02-05-AhmadAshraff.pdf.