Citrix ADC

Pufferüberlaufprüfung

Die Pufferüberlaufprüfung erkennt Versuche, einen Pufferüberlauf auf dem Webserver zu verursachen. Wenn die Web App Firewall feststellt, dass die URL, Cookies oder Header länger als die konfigurierte Länge sind, blockiert sie die Anforderung, da sie zu einem Pufferüberlauf führen kann.

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 Cookie-Lä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
  • Länge der Abfragezeichenfolge. Maximal zulässige Länge für Abfragezeichenfolge in einer eingehenden Anforderung. Anfragen mit längeren Abfragen werden blockiert. Mögliche Werte: 0—65535. Standard: 1024
  • Gesamtlänge der Anfrage. Maximale Anforderungslänge für eine eingehende Anforderung. Anfragen mit längerer Länge werden blockiert. Mögliche Werte: 0—65535. Standard: 24820

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

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

Geben Sie an der Eingabeaufforderung Folgendes ein:

add appfw profile <name> -bufferOverflowMaxURLLength <positive_integer> -bufferOverflowMaxHeaderLength <positive_integer> - bufferOverflowMaxCookieLength <positive_integer> -bufferOverflowMaxQueryLength <positive_integer> -bufferOverflowMaxTotalHeaderLength <positive_integer>

Beispiel:

add appfw profile profile1 –bufferOverflowMaxURLLength 7000 –bufferOverflowMaxHeaderLength 7250 – bufferOverflowMaxCookieLength 7100 –bufferOverflowMaxQueryLength 7300 –bufferOverflowMaxTotalHeaderLength 7300

Konfigurieren der Pufferüberlauf-Sicherheitsprüfung über die Citrix ADC GUI

  1. Navigieren Sie zu Sicherheit > Citrix Web App Firewall und Profile.
  2. Wählen Sie auf der Seite Profile ein Profil aus, und klicken Sie auf Bearbeiten.
  3. Wechseln Sie auf der Seite Citrix Web App Firewall Profil zum Abschnitt Erweiterte Einstellungen und klicken Sie auf Sicherheitsprüfungen.
  4. Wählen Sie im Abschnitt Sicherheitsüberprüfungen die Option Pufferüberlauf aus, und klicken Sie auf Aktionseinstellungen.
  5. Legen Sie auf der Seite Pufferüberlauf-Einstellungen die folgenden Parameter fest. a. Aktionen. Wählen Sie eine oder mehrere Aktionen aus, die für die Sicherheitsprüfung der Befehlseinschleusung ausgeführt werden sollen. b. Maximale URL-Länge. Maximale Länge (in Zeichen) für URLs auf Ihren geschützten Websites. Anfragen mit längeren URLs werden blockiert. c. Maximale Cookie-Länge. Maximale Länge (in Zeichen) für Cookies, die an Ihre geschützten Websites gesendet werden. Anfragen mit längeren Cookies werden blockiert. d. Maximale Kopfzeilenlänge. Maximale Länge (in Zeichen) für HTTP-Header in Anfragen, die an Ihre geschützten Websites gesendet werden. Anfragen mit längeren Kopfzeilen werden blockiert. e. Maximale Abfragelänge. Maximale Länge (in Byte) für Abfragezeichenfolgen, die an Ihre geschützten Websites gesendet werden. Anfragen mit längeren Abfragezeichenfolgen werden blockiert. f. Maximale Gesamtlänge der Kopfzeile. Maximale Länge (in Byte) für die gesamte HTTP-Headerlänge in Anfragen, die an Ihre geschützten Websites gesendet werden. Der Mindestwert dieser und MaxHeaderLen in HttpProfile wird verwendet. Anfragen mit längerer Länge werden blockiert.
  6. Klicken Sie auf OK und schließen .

    Konfiguration der Pufferüberlaufprüfung

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 fahren Sie die ns.logs im Ordner /var/log/ ab, um auf die Protokollmeldungen zuzugreifen, die sich auf die Verletzungen des Pufferüberlaufs beziehen:

> 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) zum Analysieren 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-Meldungen, um den Syslog-Viewer anzuzeigen, der alle Protokollmeldungen einschließlich anderer Protokolle für Sicherheitsüberprüfungen anzeigt. 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-Meldungen, um den Syslog-Viewer anzuzeigen, der alle Protokollmeldungen einschließlich anderer Protokolle für Sicherheitsüberprüfungen anzeigt.

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 der Dropdown-Liste 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 Verletzungen der Pufferüberlauf-Sicherheitsprüfung 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 Syslog Viewer-Felds 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, Bereitstellen und Alle bereitstellen zur Verfügung. Wenn Sie Bearbeiten und Bereitstellen auswählen, wird der Dialog Pufferüberlaufeinstellungen angezeigt. 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 Aktion-Kontrollkästchen Sperren, Protokolleund Statistiken sind im angezeigten Dialogfeld Pufferüberlaufeinstellungen deaktiviert und müssen neu konfiguriert werden, wenn Sie die Option Bearbeiten und Bereitstellen auswählen. Stellen Sie sicher, dass Sie diese Kontrollkästchen aktivieren, bevor Sie auf OK klicken. Andernfalls wird die neue URL-Länge konfiguriert, die Aktionen sind jedoch auf none festgelegt.

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überlaufverletzungen enthält, den Statistikzähler um eins, da die Seite blockiert wird, wenn die erste Verletzung erkannt wird. Wenn der Block jedoch deaktiviert ist, erhöht die Verarbeitung derselben Anforderung den Statistikzähler für Verstöße, 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 Fensterausschnitt auf die Statistikverknüpfung 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

  • Die Pufferüberlauf-Sicherheitsprüfung ermöglicht es Ihnen, Limits zu konfigurieren, um die maximale Länge der zulässigen 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 Zwischenverbesserungen vor dem Build 59.13xx.e) und in der Version 11.0 (in Builds vor 65.x) wurde die Verarbeitung des Cookie-Headers durch 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 an den Server weitergeleitete Cookie-Größe größer sein als der akzeptierte Wert, und der Server reagiert möglicherweise mit “400 Bad Request”.

Diese Änderung wurde rückgängig gemacht. Das Verhalten in der Version 10.5.e ->59.13xx.e und den nachfolgenden Erweiterungen 10.5.e zusätzlich zu Version 11.0 65.x und nachfolgenden Builds ähnelt nun dem der Builds ohne Erweiterung 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.