Pufferüberlaufprüfung

Die Pufferüberlaufprüfung erkennt Versuche, einen Pufferüberlauf auf dem Webserver zu verursachen. Wenn die Web App Firewall erkennt, dass die URL, Cookies oder Header länger als die angegebene maximale Länge in einer Anforderung sind, blockiert sie diese Anforderung, da sie möglicherweise versucht wird, einen Pufferüberlauf zu verursachen.

Die Pufferüberlaufprüfung verhindert Angriffe auf unsichere Betriebssystem- oder Webserver-Software, die abstürzen oder sich unvorhersehbar verhalten können, wenn sie eine Datenzeichenfolge empfängt, die größer ist als sie verarbeiten kann. Richtige Programmiertechniken verhindern Pufferüberläufe, indem eingehende Daten überprüft und überlange Zeichenfolgen zurückgewiesen oder abgeschnitten werden. Viele Programme überprüfen jedoch nicht alle eingehenden Daten und sind daher anfällig für Pufferüberläufe. Dieses Problem betrifft insbesondere ältere Versionen von Web-Server-Software und Betriebssystemen, von denen viele noch verwendet werden.

Mit der Sicherheitsprüfung Pufferüberlauf können Sie die Aktionen Blockieren, Protokollieren und Statistiken konfigurieren. Darüber hinaus können Sie auch die folgenden Parameter konfigurieren:

  • Maximale URL-Länge. Die maximale Länge, die die Web App Firewall in einer angeforderten URL zulässt. Anfragen mit längeren URLs werden blockiert. Mögliche Werte: 0-65535. Standard: 1024
  • Maximale Plätzchenlänge. Die maximale Länge, die die Web App Firewall für alle Cookies in einer Anfrage erlaubt. Anfragen mit längeren Cookies lösen die Verstöße aus. Mögliche Werte: 0-65535. Standard: 4096
  • Maximale Kopfzeilenlänge. Die maximale Länge, die die Web App Firewall HTTP-Header zulässt. Anfragen mit längeren Kopfzeilen werden blockiert. Mögliche Werte: 0-65535. Standard: 4096

Verwenden der Befehlszeile zum Konfigurieren der Sicherheitsprüfung Pufferüberlauf

So konfigurieren Sie Pufferüberlauf-Sicherheitsüberprüfungsaktionen und andere Parameter mit der Befehlszeile

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie dem<profileName> Befehl set appfw profile die folgenden Argumente für die Pufferüberlaufprüfung hinzufügen:

  • -bufferOverflowAction [[ block] [ log] [stats]] | [none]
  • -bufferOverflowMaxURLLength <positiveInteger>
  • -bufferOverflowMaxCookieLength <positiveInteger>
  • -bufferOverflowMaxHeaderLength <positiveInteger>

Verwenden der GUI zum Konfigurieren der Sicherheitsprüfung für Pufferüberlauf

In der GUI können Sie die Sicherheitsprüfung für Pufferüberlauf im Bereich für das Profil konfigurieren, das Ihrer Anwendung zugeordnet ist.

So konfigurieren oder ändern Sie die Sicherheitsprüfung für Pufferüberlauf mit der GUI

  1. Navigieren Sie zu Anwendungsfirewall > Profile, markieren Sie das Zielprofil, und klicken Sie auf Bearbeiten.
  2. Klicken Sie im Bereich Erweiterte Einstellungen auf Sicherheitsprüfungen.

In der Tabelle Sicherheitsprüfung werden die aktuell konfigurierten Aktionseinstellungen für alle Sicherheitsprüfungen angezeigt. Sie haben 2 Optionen für die Konfiguration:

a. Wenn Sie nur Block-, Protokoll-und Statistikaktionenfür Pufferüberlaufaktivieren oder deaktivieren möchten, können Sie Kontrollkästchen in der Tabelle aktivieren oder deaktivieren, klicken Sie auf OK, und klicken Sie dann auf Speichern und Schließen, um die Sicherheitsprüfung zu schließen. -Bereich.

b. Wenn Sie zusätzliche Optionen für diese Sicherheitsprüfung konfigurieren möchten, doppelklicken Sie auf Pufferüberlauf, oder wählen Sie die Zeile aus und klicken Sie auf Aktionseinstellungen, um die folgenden Optionen anzuzeigen:

Maximale URL-Länge.

Maximale Plätzchenlänge. Maximale Kopfzeilenlänge.

Nachdem Sie eine der oben genannten Einstellungen geändert haben, klicken Sie auf OK, um die Änderungen zu speichern und zur Tabelle Sicherheitsprüfungen zurückzukehren. Sie können bei Bedarf weitere Sicherheitsprüfungen konfigurieren. Klicken Sie auf OK, um alle Änderungen zu speichern, die Sie im Abschnitt Sicherheitsprüfungen vorgenommen haben, und klicken Sie dann auf Speichern und Schließen, um den Bereich Sicherheitsprüfung zu schließen.

Verwenden der Protokollfunktion mit der Sicherheitsprüfung für Pufferüberlauf

Wenn die Protokollaktion aktiviert ist, werden die Verletzungen der Pufferüberlauf-Sicherheitsprüfung im Überwachungsprotokoll als Verletzungen APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIEund APPFW_BUFFEROVERFLOW_HDRprotokolliert. Die Web App Firewall unterstützt sowohl native als auch CEF-Protokollformate. Sie können die Protokolle auch an einen entfernten Syslog-Server senden.

Wenn Sie die Protokolle mit der grafischen Benutzeroberfläche überprüfen, können Sie die Funktion Klick-zu-Deploy verwenden, um die in den Protokollen angegebenen Entspannungen anzuwenden.

So greifen Sie mit der Befehlszeile auf die Protokollmeldungen zu

Wechseln Sie zur Shell und senden Sie die ns.logs im Ordner /var/log/, um auf die Protokollmeldungen zu den Pufferüberlaufverletzungen zuzugreifen:

> \*\*Shell\*\*
> \*\*tail -f /var/log/ns.log | grep APPFW_BUFFEROVERFLOW\*\*

Beispiel für eine CEF-Protokollmeldung mit BufferOverflowMaxCookieLength-Verletzung im nicht-blockierten Modus

Oct 22 17:35:20 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|\*\*APPFW_BUFFEROVERFLOW_COOKIE\*\*|6|src=10.217.253.62 geolocation=Unknown spt=41198 method=GET request=http://aaron.stratum8.net/FFC/sc11.html \*\*msg=Cookie header length(43) is greater than maximum allowed(16).\*\* cn1=119 cn2=465 cs1=owa_profile cs2=PPE1 cs3=wvOOOb+cJ2ZRbstZpyeNXIqLj7Y0001 cs4=ALERT cs5=2015 \*\*act=not blocked\*\*

Beispiel für eine CEF-Protokollmeldung mit BufferOverflowMaxURLength Verletzung im Nicht-Blockmodus

Oct 22 18:39:56 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|\*\*APPFW_BUFFEROVERFLOW_URL\*\*|6|src=10.217.253.62 geolocation=Unknown spt=19171 method=GET request=http://aaron.stratum8.net/FFC/sc11.html \*\*msg=URL length(39) is greater than maximum allowed(20).\*\* cn1=707 cn2=402 cs1=owa_profile cs2=PPE0 cs3=kW49GcKbnwKByByi3+jeNzfgWa80000 cs4=ALERT cs5=2015 \*\*act=not blocked\*\*

Beispiel für eine Meldung des Native Format-Protokolls mit BufferOverflowMaxHeaderLength-Verletzung im Blockmodus

Oct 22 18:44:00 <local0.info> 10.217.31.98 10/22/2015:18:44:00 GMT ns 0-PPE-2 : default APPFW \*\*APPFW_BUFFEROVERFLOW_HDR\*\* 155 0 :  10.217.253.62 374-PPE2 khhBEeY4DB8V2D3H2sMLkXmfWnA0002 owa_profile \*\*Header(User-Agent) length(82) is greater than maximum allowed(10)\*\* : http://aaron.stratum8.net/ \*\*<blocked>\*\*

So greifen Sie mit der GUI auf die Protokollmeldungen zu

Die Citrix GUI enthält ein nützliches Tool (Syslog Viewer) zur Analyse der Protokollmeldungen. Sie haben mehrere Optionen für den Zugriff auf den Syslog Viewer:

  • Navigieren Sie zu Anwendungsfirewall > Profile, wählen Sie das Zielprofil aus, und klicken Sie auf Sicherheitsprüfungen. Markieren Sie die Zeile Pufferüberlauf, und klicken Sie auf Protokolle . Wenn Sie direkt über die Sicherheitsprüfung des Buffer Overflow Security Check des Profils auf die Protokolle zugreifen, filtert die GUI die Protokollmeldungen aus und zeigt nur die Protokolle an, die diese Sicherheitsüberprüfungsverletzungen betreffen.

  • Sie können auch auf den Syslog Viewer zugreifen, indem Sie zu NetScaler > System > Auditing navigieren . Klicken Sie im Abschnitt Überwachungsmeldungen auf den Link Syslog-Nachrichten, um den Syslog-Viewer anzuzeigen, in dem alle Protokollmeldungen, einschließlich anderer Protokolle für die Sicherheitsüberprüfung, angezeigt werden. Dies ist nützlich für das Debuggen, wenn während der Anforderungsverarbeitung mehrere Sicherheitsüberprüfungsverletzungen ausgelöst werden können.

  • Navigieren Sie zu Anwendungsfirewall > Richtlinien > Überwachung. Klicken Sie im Abschnitt Überwachungsmeldungen auf den Link Syslog-Nachrichten, um den Syslog-Viewer anzuzeigen, in dem alle Protokollmeldungen, einschließlich anderer Protokolle für die Sicherheitsüberprüfung, angezeigt werden.

Der XML-basierte Syslog Viewer bietet verschiedene Filteroptionen, um nur die Protokollmeldungen auszuwählen, die für Sie von Interesse sind. Um Protokollmeldungen für die Pufferüberlaufprüfung auszuwählen, filtern Sie, indem Sie APPFW in den Dropdown-Optionen für Modul auswählen. Die Liste Ereignistyp bietet drei Optionen, APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIE und APPFW_BUFFEROVERFLOW_HDR, um alle Protokollmeldungen anzuzeigen, die sich auf die Sicherheitsprüfung des Pufferüberlaufs beziehen. Sie können eine oder mehrere Optionen auswählen, um Ihre Auswahl weiter zu verfeinern. Wenn Sie beispielsweise das Kontrollkästchen APPFW_BUFFEROVERFLOW_COOKIE aktivieren und auf die Schaltfläche **Übernehmen** klicken, werden im Syslog-Viewer nur Protokollmeldungen angezeigt, die sich auf die Sicherheitsüberprüfungsverletzungen für den Cookie-Header beziehen. Wenn Sie den Cursor in der Zeile für eine bestimmte Protokollmeldung platzieren, werden unter der Protokollmeldung mehrere Optionen angezeigt, z. B. Modul, Ereignistyp, Ereignis-ID und Client-IP. Sie können eine dieser Optionen auswählen, um die entsprechenden Informationen in der Protokollmeldung hervorzuheben.

Click-to-Deploy: Die GUI bietet Klick-zu-Deploy-Funktionalität, die derzeit nur für die Pufferüberlaufprotokollmeldungen unterstützt wird, die sich auf die URL-Length-Verletzungenbeziehen. Mit dem Syslog Viewer können Sie nicht nur die ausgelösten Verletzungen anzeigen, sondern auch fundierte Entscheidungen basierend auf den beobachteten Längen der blockierten Nachrichten ausführen. Wenn der aktuelle Wert zu restriktiv ist und False Positives auslöst, können Sie eine Nachricht auswählen und bereitstellen, um den aktuellen Wert durch den URL-Längenwert in der Nachricht zu ersetzen. Die Protokollmeldungen müssen für diesen Vorgang im CEF-Protokollformat vorliegen. Wenn die Entspannung für eine Protokollmeldung bereitgestellt werden kann, wird am rechten Rand des Feldes Syslog Viewer in der Zeile ein Kontrollkästchen angezeigt. Aktivieren Sie das Kontrollkästchen, und wählen Sie dann eine Option aus der Liste Aktion aus, um die Entspannung bereitzustellen. Bearbeiten und Bereitstellen, Bereitstellen und Alle bereitstellen sind als Aktionsoptionen verfügbar. Sie können den Filter APPFW_BUFFEROVERFLOW_URL verwenden, um alle Protokollmeldungen zu isolieren, die sich auf die konfigurierten URL-Längenverletzungen beziehen.

Wenn Sie eine einzelne Protokollmeldung auswählen, stehen alle drei Aktionsoptionen Bearbeiten und Bereitstellen, Bereitstellenund Alle bereitstellenzur Verfügung. Wenn Sie Bearbeiten und Bereitstellenauswählen, wird der Dialog Pufferüberlaufeinstellungenangezeigt. Die neue URL-Länge, die in der Anforderung beobachtet wurde, wird in das Eingabefeld Maximale URL-Länge eingefügt. Wenn Sie ohne Änderungen auf Schließen klicken, bleiben die aktuell konfigurierten Werte unverändert. Wenn Sie auf die Schaltfläche OK klicken, ersetzt der neue Wert der maximalen URL-Länge den vorherigen Wert.

Hinweis:

Die Kontrollkästchen Sperren, Protokolleund StatistikenAktion sind im angezeigten Dialogfeld Pufferüberlaufeinstellungendeaktiviert und müssen neu konfiguriert werden, wenn Sie die Option Bearbeiten und Bereitstellenauswählen. Stellen Sie sicher, dass Sie diese Kontrollkästchen aktivieren, bevor Sie auf OKklicken. Andernfalls wird die neue URL-Länge konfiguriert, die Aktionen werden jedoch auf Keinegesetzt.

Wenn Sie die Kontrollkästchen für mehrere Protokollmeldungen aktivieren, können Sie die Option Bereitstellen oder Alle bereitstellen verwenden. Wenn die bereitgestellten Protokollmeldungen unterschiedliche URL-Längen aufweisen, wird der konfigurierte Wert durch den höchsten Wert der URL-Länge ersetzt, der in den ausgewählten Nachrichten beobachtet wird. Das Bereitstellen der Regel führt nur dazu, dass der Wert BufferOverflowMaxURLength geändert wird. Konfigurierte Aktionen bleiben erhalten und bleiben unverändert.

So verwenden Sie die Klick-und-Deploy-Funktionalität in der GUI

  1. Wählen Sie in den Moduloptionen im Syslog-Viewer APPFW aus.
  2. Aktivieren Sie das Kontrollkästchen APPFW_BUFFEROVERFLOW_URL als Ereignistyp, um entsprechende Protokollmeldungen zu filtern.
  3. Aktivieren Sie das Kontrollkästchen, um die Regel auszuwählen.
  4. Verwenden Sie die Dropdownliste Aktion mit Optionen, um die Entspannung bereitzustellen.
  5. Navigieren Sie zu Anwendungsfirewall > Profile, wählen Sie das Zielprofil aus, und klicken Sie auf Sicherheitsprüfungen, um den Bereich Pufferüberlaufeinstellungen aufzurufen, um zu überprüfen, ob der Wert Maximale URL-Länge aktualisiert wird.

Statistiken für die Pufferüberlauf-Verstöße

Wenn die Aktion Statistik aktiviert ist, wird der Leistungsindikator für die Sicherheitsprüfung Pufferüberlauf erhöht, wenn die Web App Firewall eine Aktion für diese Sicherheitsprüfung durchführt. Die Statistiken werden für Rate und Gesamtanzahl für Traffic, Verletzungen und Protokolle gesammelt. Die Größe eines Inkrements des Protokollzählers kann abhängig von den konfigurierten Einstellungen variieren. Wenn beispielsweise die Blockaktion aktiviert ist, erhöht eine Anforderung für eine Seite, die drei Pufferüberlauf-Verstöße enthält, den Statistikindikator um eins, da die Seite blockiert wird, sobald die erste Verletzung erkannt wird. Wenn der Block jedoch deaktiviert ist, erhöht die Verarbeitung derselben Anforderung den Statistikindikator für Verletzungen und Protokolle um drei, da jede Verletzung eine separate Protokollmeldung generiert.

So zeigen Sie Statistiken über die Pufferüberlauf-Sicherheitsprüfung mit der Befehlszeile an

Geben Sie an der Eingabeaufforderung Folgendes ein:

> sh appfw stats

Verwenden Sie den folgenden Befehl, um Statistiken für ein bestimmtes Profil anzuzeigen:

> stat appfw profile <profile name>

So zeigen Sie Pufferüberlaufstatistiken mit der GUI an

  1. Navigieren Sie zu System > Sicherheit > Anwendungsfirewall.
  2. Greifen Sie im rechten Fensterbereich auf den Statistiklink zu.
  3. Verwenden Sie die Bildlaufleiste, um die Statistiken über Buffer Overflow Verletzungen und Protokolle anzuzeigen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.

Highlights

  • Mit der Sicherheitsprüfung für Pufferüberlauf können Sie Grenzwerte konfigurieren, um die maximale Länge zulässiger URLs, Cookies und Header zu erzwingen.

  • Sperren, Protokollierenund Statistikenermöglichen es Ihnen, den Datenverkehr zu überwachen und den optimalen Schutz für Ihre Anwendung zu konfigurieren.

  • Mit Syslog Viewer können Sie alle Protokollmeldungen im Zusammenhang mit Pufferüberlaufverletzungen filtern und anzeigen.

  • Klick-und-Deploy-Funktionalität wird für die BufferOverflowMaxUrlLength-Verletzungen unterstützt. Sie können eine einzelne Regel auswählen und bereitstellen, oder Sie können mehrere Protokollmeldungen auswählen, um den aktuellen konfigurierten Wert der maximal zulässigen Länge der URL zu optimieren und zu entspannen. Der höchste Wert der URL aus der ausgewählten Gruppe wird als neuer Wert festgelegt, um all diese Anforderungen zuzulassen, die derzeit als Verletzungen gekennzeichnet sind.

  • Die Web App Firewall wertet nun einzelne Cookies aus, wenn die eingehende Anfrage überprüft wird. Wenn die Länge eines im Cookie-Header empfangenen Cookies die konfigurierte BufferOverflowMaxCookieLengthüberschreitet, wird die Verletzung des Pufferüberlaufs ausgelöst.

Wichtig

In Release 10.5.e (in einigen Interimbuilds mit Erweiterungen vor 59.13xx.e Build) sowie in 11.0 (in Builds vor 65.x) wurde die Verarbeitung des Cookie-Headers von Web App Firewall geändert. In diesen Versionen wird jedes Cookie einzeln ausgewertet, und wenn die Länge eines im Cookie-Header empfangenen Cookies die konfigurierte BufferOverflowMaxCookieLength überschreitet, wird die Pufferüberlaufverletzung ausgelöst. Infolge dieser Änderung können Anfragen, die in 10.5 und früheren Versionen blockiert wurden, zulässig sein, da die Länge des gesamten Cookie-Headers nicht für die Bestimmung der Cookie-Länge berechnet wird . ** In einigen Situationen kann die gesamte Cookie-Größe, die an den Server weitergeleitet wird, größer sein als der akzeptierte Wert, und der Server reagiert möglicherweise mit 400 Bad Request.

Beachten Sie, dass diese Änderung rückgängig gemacht wurde. Das Verhalten in den 10.5.e ->59.13xx.e und den nachfolgenden 10.5.e Erweiterungsbuilds sowie in 11.0 Release 65.x und nachfolgenden Builds ähnelt nun dem der Nicht-Erweiterungs-Builds von Release 10.5. Der gesamte rohe Cookie-Header wird nun bei der Berechnung der Länge des Cookies berücksichtigt. Umgebende Leerzeichen und Semikolon (;) Zeichen, die die Name-Wert-Paare trennen, werden ebenfalls bei der Bestimmung der Cookie-Länge berücksichtigt.**