Feldformat-Prüfung

Mit der Prüfung Feldformate werden die Daten überprüft, die Benutzer in Webformularen an Ihre Websites senden. Es untersucht sowohl die Länge als auch den Typ der Daten, um sicherzustellen, dass es für das Formularfeld geeignet ist, in dem es angezeigt wird. Wenn die Web App Firewall ungeeignete Webformulardaten in einer Benutzeranforderung erkennt, blockiert sie die Anforderung.

Indem ein Angreifer daran hindert, unangemessene Webformulardaten an Ihre Website zu senden, verhindert die Feldformat-Prüfung bestimmte Arten von Angriffen auf Ihre Website und Datenbankserver. Wenn beispielsweise ein bestimmtes Feld erwartet, dass der Benutzer eine Telefonnummer eingibt, untersucht die Prüfung Feldformate die vom Benutzer übermittelte Eingabe, um sicherzustellen, dass die Daten mit dem Format einer Telefonnummer übereinstimmen. Wenn ein bestimmtes Feld einen Vornamen erwartet, stellt die Feldformat-Prüfung sicher, dass die Daten in diesem Feld einen Typ und eine Länge aufweisen, die für einen Vornamen geeignet ist. Es tut dasselbe für jedes Formularfeld, das Sie für den Schutz konfigurieren.

Diese Prüfung gilt nur für HTML-Anfragen. Es gilt nicht für XML-Anforderungen. Sie können Feldformatprüfungen in HTML-Profilen oder Web 2.0-Profilen konfigurieren, um die HTML-Nutzlast zum Schutz Ihrer Anwendungen zu überprüfen. Die Web App Firewall unterstützt auch den Field Format Check Schutz für Google Web Toolkit (GWT) -Anwendungen.

Die Feldformat-Prüfung erfordert, dass Sie eine oder mehrere Aktionen aktivieren. Die Web App Firewall untersucht die übermittelten Eingaben und wendet die angegebenen Aktionen an.

Hinweis:

Feldformatregeln sind Verschärfungsregeln. Das Hinzufügen von ihnen zur Relaxationsliste aus erlernten Daten dient als Blockierungsregel.

Um Feldformatregeln zu entspannen, entfernen Sie bitte bestimmte fieldname aus der Feldformat-Relaxationsliste.

Sie haben die Möglichkeit, die Standardfeldformate so festzulegen, dass Feldtyp und die minimale und maximale Länge der Daten angegeben werden, die in jedem Formularfeld auf jedem Webformular erwartet werden, das Sie schützen möchten. Sie können Relaxationsregeln bereitstellen, um ein Feldformat für ein einzelnes Feld eines bestimmten Formulars zu konfigurieren. Es können mehrere Regeln hinzugefügt werden, um den Feldnamen, die Aktions-URL und die Feldformate anzugeben. Geben Sie Feldformate an, um verschiedene Eingabetypen in verschiedenen Formularfeldern zu akzeptieren. Die Lernfunktion kann Empfehlungen für die Entspannungsregeln geben.

Feldformataktionen — Sie können AktionenBlockieren, Protokollieren, Statistiken und Lernen aktivieren. Mindestens eine dieser Aktionen muss aktiviert sein, um den Feldformatprüfungsschutz zu aktivieren.

  • Blockieren. Wenn Sie Block aktivieren, wird die Blockaktion ausgelöst, wenn die Eingabe nicht dem angegebenen Feldformat entspricht. Wenn für das Zielfeld eine Regel konfiguriert wurde, wird die Eingabe anhand der angegebenen Regel überprüft. Andernfalls wird es mit der Standardfeldformatspezifikation überprüft. Jede Nichtübereinstimmung in der Feldtyp- oder min/max Längenspezifikation führt zu einer Blockierung der Anforderung.
  • Loggen. Wenn Sie die Protokollfunktion aktivieren, generiert die Feldformatprüfung Protokollmeldungen, die die ausgeführten Aktionen angeben. Sie können die Protokolle überwachen, um festzustellen, ob Antworten auf legitime Anfragen blockiert werden. Eine große Zunahme der Anzahl von Protokollmeldungen kann auf bösartige Versuche hinweisen, einen Angriff zu starten.
  • Statistiken. Wenn diese Option aktiviert ist, werden Statistiken über Verstöße und Protokolle gesammelt. Ein unerwarteter Anstieg des Statistikzählers weist möglicherweise darauf hin, dass Ihre Anwendung angegriffen wird, oder Sie müssen die Konfiguration erneut besuchen, um festzustellen, ob das angegebene Feldformat zu restriktiv ist.
  • Lernen Sie. Wenn Sie sich nicht sicher sind, welche Feldtypen oder Mindest- und Höchstlängenwerte für Ihre Anwendung ideal geeignet sind, können Sie mit der Lernfunktion Empfehlungen basierend auf den erlernten Daten generieren. Die Web App Firewall Learning Engine überwacht den Datenverkehr und bietet Empfehlungen für Feldformate basierend auf den beobachteten Werten. Um den optimalen Nutzen zu erzielen, ohne die Leistung zu beeinträchtigen, sollten Sie die Lernoption für kurze Zeit aktivieren, um ein repräsentatives Beispiel der Regeln zu erhalten, und dann die Regeln bereitstellen und das Lernen deaktivieren. Hinweis: Die Lern-Engine der Web App Firewall kann nur die ersten 128 Byte des Namens unterscheiden. Wenn ein Formular mehrere Felder mit Namen enthält, die für die ersten 128 Bytes übereinstimmen, kann die Lern-Engine möglicherweise nicht zwischen ihnen unterscheiden. In ähnlicher Weise kann die implementierte Relaxationsregel versehentlich alle diese Felder entspannen.

Standardfeldformat— Zusätzlich zum Konfigurieren der Aktionen können Sie das Standardfeldformat so konfigurieren, dass der Typ der in allen Formularfeldern für Ihre Anwendung erwarteten Daten angegeben wird. Ein Feldtyp kann als Feldformattyp ausgewählt werden. Die Parameter Mindestlänge und Maximale Länge können verwendet werden, um die Länge der zulässigen Eingaben anzugeben. Alternativ zu Feldtypen können Sie Character Maps verwenden, um anzugeben, was in einem Feld zulässig ist (mit Ausnahme von Clusterbereitstellungen).

  • Feldtyp—Feldtypen sind ein benannter Ausdruck, dem Sie zugewiesene Prioritätswerte zuweisen. Feldtyp-Ausdrücke geben die zulässigen Eingaben an und werden mit den übermittelten Daten abgeglichen, um festzustellen, ob die empfangenen Werte mit den zulässigen Werten übereinstimmen. Die Feldtypen werden in der Reihenfolge ihrer Prioritätsnummern überprüft. Eine niedrigere Zahl gibt eine höhere Priorität an. Die Web App Firewall bietet Ihnen die Möglichkeit, eigene Feldtypen hinzuzufügen und ihnen die gewünschten Prioritäten zuzuweisen. Der Prioritätswert kann zwischen 0 und 64000 liegen. Die folgenden integrierten Feldtypen werden bereitgestellt, um den Konfigurationsprozess zu vereinfachen:

     > sh appfw fieldtype
     1)      Name:  integer           Regex:  "^[+-]?[0-9]+$"
                     Priority:  30            Comment:  Integer
                     Builtin:  IMMUTABLE
     2)      Name:  alpha             Regex:  "^[a-zA-Z]+$"
                     Priority:  40            Comment:  "Alpha characters"
                  Builtin:  IMMUTABLE
     3)      Name:  alphanum          Regex:  "^[a-zA-Z0-9]+$"
                     Priority:  50            Comment:  "Alpha-numeric characters"
                     Builtin:  IMMUTABLE
     4)      Name:  nohtml            Regex:  "^[^&<>]\*$"
                     Priority:  60            Comment:  "Not HTML"
                     Builtin:  IMMUTABLE
     5)      Name:  any               Regex:  "^.\*$"
                  Priority:  70            Comment:  Anything
                     Builtin:  IMMUTABLE
         Done
     >
    

    Hinweis: Die integrierten Feldtypen sind IMMUTABLE. Sie können nicht geändert oder entfernt werden. Alle Feldtypen, die Sie hinzufügen, sind MODIFIABLE. Sie können sie bearbeiten oder entfernen.

    Das Konfigurieren eines Feldtyps als Standardfeldformat kann nützlich sein, wenn Sie über einen PCRE-Ausdruck verfügen, der die gültigen Eingaben in allen oder den meisten Formularfeldern für Ihre Anwendung identifizieren und die ungültigen Eingaben ausschließen kann. Wenn beispielsweise erwartet wird, dass alle Eingaben in Ihren Anwendungsformularen nur Zahlen und Buchstaben enthalten, sollten Sie das integrierte Feldtypalphanum als Standardfeldtyp verwenden. Jedes nicht-alphanumerische Zeichen wie ein umgekehrter Schrägstrich () oder Semikolon; in der Eingabe löst eine Verletzung aus. Sie können auch eigene benutzerdefinierte Feldtypen hinzufügen und diese verwenden, um Standardfeldformate zu konfigurieren. Wenn Sie beispielsweise die Kleinbuchstaben x, y und z als einziges zulässiges Alphazeichen festlegen möchten, können Sie einen benutzerdefinierten Feldtyp mit regulärem Ausdruck ^[x-z]+$ konfigurieren. Sie können ihm eine höhere Priorität (niedrigere Priorität) als die integrierten Feldtypen zuweisen und es als Standardfeldtyp verwenden.

  • Mindestlänge — Die standardmäßige Mindestdatenlänge, die Formularfeldern in Webformularen zugewiesen ist, die keine explizite Einstellung aufweisen. Dieser Parameter ist standardmäßig auf 0 gesetzt, wodurch der Benutzer das Feld leer lassen kann. Eine höhere Einstellung zwingt Benutzer, das Feld auszufüllen.

    Achtung: Wenn der minimale Längenwert 0 ist, aber der Feldtyp Integer, Alpha oder Alphanum ist, wird eine Anforderung blockiert, wenn ein Eingabefeld trotz der Mindestlängeneinstellung leer bleibt. Das liegt daran, dass die RegEx für diese Feldtypen ein + -Zeichen enthält, was ein oder mehrere Zeichen bedeutet. Das Unterscheiden einer Ganzzahl von einem Alphazeichen erfordert mindestens ein Zeichen.

  • Maximale Länge— Die standardmäßige maximale Datenlänge, die Formularfeldern in Webformularen zugewiesen wird, die keine explizite Einstellung aufweisen. Dieser Parameter ist standardmäßig auf 65535 eingestellt.

    Hinweis: Zeichen vs Bytes. Die minimale und die maximale Länge für die Feldformate stellen die Anzahl der Bytes dar, nicht die Anzahl der Zeichen. Sprachen, die mehr als eine Byte-Zeichendarstellung haben, können dazu führen, dass der Grenzwert mit weniger Zeichen überschritten wird als die für den Maximalwert konfigurierte Zahl. Bei der Darstellung von Doppelbyte-Zeichen darf der maximale Wert von 9 beispielsweise nicht mehr als 4 Zeichen betragen. Tipp: Mit der GUI können Sie UTF-8-Zeichen direkt in die GUI ausschneiden und einfügen, ohne sie in hex konvertieren zu müssen.

  • Zeichentabellen: Neben der Empfehlung der Feldtypen bietet Ihnen die Lernmaschine Web App Firewall die zusätzliche Option Zeichentabelle verwenden, um die Formatprüfungsregeln bereitzustellen. Eine Zeichenzuordnung ist ein Satz aller Zeichen, die in einem bestimmten Formularfeld zulässig sind. Mit Zeichentabellen können Sie die Feldformatspezifikation so einstellen, dass bestimmte Zeichen zugelassen oder nicht zugelassen werden. Für jedes Formularfeld wird eine separate Zeichentabelle generiert. Die Alpha- und numerischen Zeichen werden in Zeichentabelle unterschiedlich behandelt. Wenn ein Alpha-Zeichen [A-Za-z] in der Eingabe angezeigt wird, sind alle Alpha-Zeichen durch den empfohlenen PCRE-Ausdruck in der Zeichenzuordnung zulässig. In ähnlicher Weise sind alle Ziffern [0-9] zulässig, wenn eine Ziffer enthalten ist. Nicht druckbare Zeichen werden mit dem x-Konstrukt angegeben. Für Zeichenzuordnungsempfehlungen werden nur einzelne Byte-Zeichen mit Werten zwischen 0 und 255 berücksichtigt.

    Eine Zeichenzuordnung kann spezifischer sein als die entsprechende Feldtypempfehlung. In einigen Situationen ist Zeichentabellen möglicherweise eine bessere Option, da sie Ihnen eine bessere Kontrolle über den Zeichensatz geben, der als Eingaben zulässig ist. Die bereitgestellten Zeichenzuordnungen werden als Zeichenfolgen angezeigt, die mit dem Präfix CM beginnen, gefolgt von Ziffern. Die Priorität für die Zeichentabelle beginnt bei 10000. Wie bei den vom Benutzer hinzugefügten Feldtypen können Sie eine Zeichentabelle hinzufügen, bearbeiten oder entfernen. Zeichenzuordnungen, die derzeit in bereitgestellten Regeln verwendet werden, können nicht geändert oder entfernt werden.

    Hinweis: Zeichenzuordnungen werden in Clusterbereitstellungen nicht unterstützt.

Hinweis:

Wenn Sie eine Feldformat-Regel mit einem integrierten Feldtyp hinzufügen und anstelle von Feldtyp eine Zeichenzuordnung verwenden und diese speichern, werden die Änderungen nicht gespeichert, und die Regel wird weiterhin mit Feldtyp angezeigt.

Wenn die Zeichenzuordnung mit einem der integrierten Typen übereinstimmt, wird der Feldtyp wiederverwendet, anstatt eine neue Zeichenzuordnung zu erstellen.

Verwenden der Befehlszeile zum Konfigurieren der Feldformatprüfung

In der Befehlszeilenschnittstelle können Sie den Befehl add appfw fieldtype verwenden, um einen neuen Feldtyp hinzuzufügen. Sie können entweder den Befehl set appfw profile oder den Befehl add appfw profile verwenden, um die Feldformatprüfung zu konfigurieren und anzugeben, welche Aktionen ausgeführt werden sollen. Sie können den Befehl unset appfw profile verwenden, um die konfigurierten Einstellungen wieder auf ihre Standardwerte zurückzusetzen. Zum Angeben einer Feldformatregel verwenden Sie den Befehl bind appfw, um einen Feldtyp an ein Formularfeld und die Aktions-URL zusammen mit den Mindest- und Höchstlängenspezifikationen zu binden.

Um einen Feldtyp mit der Befehlszeile hinzuzufügen, zu entfernen oder anzuzeigen:

Verwenden Sie den Befehl add, um einen Feldtyp hinzuzufügen. Beim Hinzufügen eines neuen Feldtyps müssen Sie den Namen, den regulären Ausdruck und die Priorität angeben. Sie haben auch die Möglichkeit, einen Kommentar hinzuzufügen. Mit dem Befehl show können Sie die konfigurierten Feldtypen anzeigen. Sie können einen Feldtyp auch mit dem Befehl remove löschen, der nur den Namen des Feldtyps erfordert.

add [appfw] fieldType <name> <regex> <priority> [-comment <string>] Wobei:

<regex> ist ein regulärer Ausdruck

<priority> ist eine positive_integer

Beispiel:

add fieldtype "Cust_Zipcode" "^[0-9]{5}[-][0-9]{4}$" 4

-  show [appfw] fieldType [<name>]

    Example: sh fieldtype

    sh appfw fieldtype

    sh appfw fieldtype cust_zipcode

-  `rm [appfw] fieldType <name>`

    Example: rm fieldtype cusT_ziPcode

    `rm appfw fieldtype cusT_ziPcode`

Hinweis: Wie oben gezeigt, ist die Verwendung von appfw im Befehl optional. Beispielsweise sind Add FieldType oder Add appfw FieldType beide gültige Optionen. Bei den Namen der Feldtypen wird die Groß- und Kleinschreibung aufgrund der Normalisierung nicht berücksichtigt. Wie in den obigen Beispielen gezeigt, beziehen sich Cust_Zipcode, cust_Zipcode und cust_zipcode auf denselben Feldtyp.

So konfigurieren Sie eine Feldformatprüfung mit der Befehlszeile

Verwenden Sie entweder den Befehl set appfw profile oder den Befehl add appfw profile wie folgt:

  • set appfw profile <name> -fieldFormatAction (([block] [learn] [log] [stats]) | [none])
  • set appfw profile <name>-defaultFieldFormatType <string>
  • set appfw profile <name> -defaultFieldFormatMinLength <integer>
  • set appfw profile <name> -defaultFieldFormatMaxLength <integer>

So konfigurieren Sie eine Feldformat-Relaxationsregel mit der Befehlszeile

bind appfw profile <name> (-fieldFormat <string> <formActionURL>  <fieldType>
[-fieldFormatMinLength <positive_integer>]  [-fieldFormatMaxLength <positive_integer>]
[-isRegex ( REGEX | NOTREGEX )])

Beispiel:

bind appfw profile pr_ffc -fieldFormat "login_name" ".*/login.php" integer -fieldformatMinLength 3 -FieldformatMaxlength 6

Verwenden der GUI zum Konfigurieren der Sicherheitsüberprüfung der Feldformate

In der GUI können Sie die Feldtypen verwalten. Sie können die Sicherheitsüberprüfung für Feldformate auch im Bereich für das Profil konfigurieren, das Ihrer Anwendung zugeordnet ist.

So fügen Sie einen Feldtyp mit der GUI hinzu, ändern oder entfernen Sie ihn

  1. Navigieren Sie zum Knoten Anwendungsfirewall. Klicken Sie in den Einstellungen auf Feldtypen verwalten, um das Dialogfeld Feldtyp der Anwendungsfirewall konfigurieren anzuzeigen.
  2. Klicken Sie auf Hinzufügen, um einen neuen Feldtyp hinzuzufügen. Folgen Sie den Anweisungen in diesem Bereich, und klicken Sie auf Erstellen. Sie können auch jeden vom Benutzer hinzugefügten Feldtyp bearbeiten oder löschen, wenn er derzeit nicht von einer bereitgestellten Regel verwendet wird.

So fügen Sie die Sicherheitsüberprüfung für Feldformate mit der GUI hinzu oder ändern

  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:

    1. Wenn Sie nur Sperren, Protokollieren, Statistikenund Lernaktionenfür Feldformate aktivieren 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 Sicherheit zu schließen. Kontrollkästchen.
    2. Wenn Sie zusätzliche Optionen für diese Sicherheitsprüfung konfigurieren möchten, doppelklicken Sie auf Feldformate, oder wählen Sie die Zeile aus und klicken Sie auf Aktionseinstellungen, um die folgenden Optionen für Standardfeldformatanzuzeigen:
      • Feldtyp— Wählen Sie den Feldtyp aus, den Sie als Standardfeldtyp konfigurieren möchten. Sie können die integrierten und benutzerdefinierten Feldtypen auswählen. Die bereitgestellten Character Maps sind ebenfalls in der Liste enthalten und können ausgewählt werden.

      • Minimale Länge— Geben Sie die Mindestanzahl von Zeichen an, die in jedem Feld enthalten sein müssen. Mögliche Werte: 0-65535

      • Maximale Länge— Geben Sie die maximale Anzahl von Zeichen an, die in jedem Feld enthalten sein müssen. Mögliche Werte: 1-65535

        Sie können auch die Aktionen Blockieren, Protokollieren, Statistikenund Lernenim Bereich Einstellungen für Feldformate bearbeiten.

    Nachdem Sie eine der oben genannten Änderungen vorgenommen 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.

So konfigurieren Sie eine Relaxationsregel für Feldformate 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 Relaxationsregeln . Die Tabelle Relaxationsregeln enthält einen Eintrag Feldformate. Sie können doppelklicken oder diese Zeile auswählen und auf die Schaltfläche Bearbeiten klicken, um den Dialog Feldformat-Relaxationsregeln aufzurufen. Sie können Vorgänge zum Hinzufügen, Bearbeiten, Löschen, Aktivierenoder Deaktivierenfür Relaxationsregeln ausführen.

Um eine konsolidierte Ansicht aller Relaxationsregeln zu erhalten, können Sie die Zeile Feldformate markieren und auf Visualizer klicken. Der Visualizer für bereitgestellte Relaxationen bietet Ihnen die Möglichkeit, eine neue Regel hinzuzufügen oder eine vorhandene Regel zu bearbeiten. Sie können eine Gruppe von Regeln auch aktivieren oder deaktivieren, indem Sie einen Knoten auswählen und auf die entsprechenden Schaltflächen im Relaxationsvisualizer klicken.

Verwenden der Lernfunktion mit der Feldformat-Prüfung

Wenn die Lernaktion aktiviert ist, überwacht die Web App Firewall Learning Engine den Datenverkehr und lernt die ausgelösten Verletzungen. Sie können diese gelernten Regeln regelmäßig überprüfen. Nach gebührender Überlegung können Sie die gelernte Regel als Relaxationsregel für Feldformat bereitstellen.

Lernverbesserung für Feldformate— In Version 11.0 wurde eine Lernverbesserung der Web App Firewall eingeführt. In den vorherigen Versionen stoppt die Web App Firewall Lernmodul die Überwachung der gültigen Anforderungen, um neue Regeln auf der Grundlage der neuen Datenpunkte zu empfehlen. Dies schränkt den konfigurierten Sicherheitsschutz ein, da die Lerndatenbank keine Darstellungen der neuen Daten enthält, die in den gültigen Anforderungen angezeigt werden, die von der Sicherheitsprüfung verarbeitet werden.

Verstöße sind nicht mehr mit Lernen verbunden. Die Lern-Engine lernt und gibt Empfehlungen für die Feldformate unabhängig von den Verstößen. Zusätzlich zur Überprüfung der blockierten Anforderungen, um festzustellen, ob das aktuelle Feldformat zu restriktiv ist und entspannt werden muss, überwacht die Lern-Engine auch die zulässigen Anforderungen, um festzustellen, ob das aktuelle Feldformat zu permissiv ist, und ermöglicht die Erhöhung der Sicherheit durch Bereitstellung eines mehr restriktive Regel.

Im Folgenden finden Sie eine Zusammenfassung des Lernverhaltens von Feldformaten:

Kein Feldformat ist gebunden— Das Verhalten bleibt in diesem Szenario unverändert. Alle Lerndaten werden an die aslearn Engine gesendet. Die Lern-Engine schlägt eine Feldformatregel basierend auf dem Datensatz vor.

Feldformat ist gebunden: In den vorherigen Versionen werden beobachtete Daten nur im Falle einer Verletzung an die aslearn Engine gesendet. Die Lern-Engine schlägt eine Feldformatregel basierend auf dem Datensatz vor. In der Version 11.0 werden alle Daten an die aslearn Engine gesendet, auch wenn keine Verletzung ausgelöst wird. Die Lern-Engine schlägt eine Feldformatregel vor, die auf dem gesamten Datensatz aller empfangenen Eingaben basiert.

Anwendungsfall für Lernverbesserung:

Wenn die erlernten Regeln für das erste Feldformat auf einer kleinen Stichprobe von Daten basieren, können einige nicht typische Werte zu einer Empfehlung führen, die für das Zielfeld zu nachsichtig ist. Das laufende Lernen ermöglicht es der Web App Firewall, Datenpunkte aus jeder Anfrage zu beobachten, um eine repräsentative Probe für die erlernten Empfehlungen zu sammeln. Dies ist hilfreich, um die Sicherheit für die Bereitstellung des optimalen Eingabeformats mit einem angemessenen Bereichswert weiter zu verschärfen.

lokalisiertes Bild

Das Feldformat-Lernen nutzt die Priorität der Feldtypen sowie die konfigurierten Einstellungen der folgenden Lernschwellenwerte:

  • FieldFormatMinThreshold—Mindesthold, wie oft ein bestimmtes Formularfeld beobachtet werden muss, bevor eine gelernte Entspannung generiert wird. Standard: 1.
  • FieldFormatPercentThreshold—Prozentsatz der Häufigkeit, in der ein Formularfeld mit einem bestimmten Feldtyp übereinstimmte, bevor eine gelernte Entspannung generiert wird. Standard: 0.

Die Empfehlungen für die Feldformatregel basieren auf den folgenden Kriterien:

  • Feldtypempfehlungen— Die Feldtypempfehlungen werden durch die zugewiesenen Prioritäten der vorhandenen Feldtypen und der angegebenen Feldformatschwellenwerte bestimmt. Die Prioritäten bestimmen die Reihenfolge, in der die Feldtypen mit den Eingaben abgeglichen werden. Eine niedrigere Zahl gibt eine höhere Priorität an. Beispiel: Feldtyp-Ganzzahl hat die höhere Priorität (30) und wird daher vor dem Feldtypalphanum (50) ausgewertet. Die Schwellenwerte bestimmen die Anzahl der Eingaben, die ausgewertet werden, um eine repräsentative Stichprobe für den Datenpunkt zu sammeln. Das Zuweisen der richtigen Priorität zu den konfigurierten Feldtypen und das Konfigurieren eines geeigneten Lerneinstellungswerts für die Parameter FieldFormatPercentThreshold und FieldFormatMinThreshold ist unerlässlich, um die richtige Feldformatempfehlung abzuraten. Der Feldtyp mit der höchsten Priorität, basierend auf den konfigurierten Schwellenwerten, wird zuerst mit den Eingaben abgeglichen. Wenn es eine Übereinstimmung gibt, wird dieser Feldtyp vorgeschlagen, ohne die anderen Feldtypen zu berücksichtigen. Beispielsweise werden drei Standardfeldtypen, Integer, Alphanum und beliebige Feldtypen übereinstimmen, wenn alle Eingaben nur Zahlen enthalten. Eine Ganzzahl wird jedoch empfohlen, da sie die höchste Priorität hat.
  • Empfehlungen für minimale und maximale Länge— Berechnungen für die minimale und maximale Länge für das Feldformat werden unabhängig von der Bestimmung für den Feldtyp durchgeführt. Die Feldformatlängenberechnungen basieren auf der durchschnittlichen Länge aller beobachteten Eingaben. Die Hälfte dieses berechneten Durchschnitts wird als Mindestwert vorgeschlagen, und das Doppelte des Mittelwerts wird als Maximalwert vorgeschlagen. Der Bereich für die Mindestlänge beträgt 0-65535 und der Bereich für die maximale Länge 1-65535. Der konfigurierte Wert für die Mindestlänge darf die maximale Länge nicht überschreiten.
  • Umgang mit Leerzeichen— Die Feldformatprüfung zählt jedes Leerzeichen, wenn die Länge der Feldformate überprüft wird. Führende oder nachfolgende Leerzeichen werden nicht entfernt, und mehrere aufeinanderfolgende Leerzeichen in der Mitte der Eingabezeichenfolge werden während der Eingabeverarbeitung nicht mehr zu einem einzigen Leerzeichen konsolidiert.

Beispiel zur Veranschaulichung der Feldformatempfehlungen:

Total requests: 100
Number of Req with Field Type:
Int : 22            (22 int values) – 22%
Alpha : 44                  (44 alpha values) – 44%
Alphanum: 14            (14 + 44 + 22 = 80 alphanum values) = 80%
noHTML: 10              (80 + 10 = 90 noHTML values) = 90%
any : 10                     (90 + 10 = 100 any values) = 100%

% threshold                              Suggested Field Type
0-22                int
23-44               alpha
45-80               alphanum
81-90               noHTML
91-100              any

So zeigen Sie gelernte Daten mit der Befehlszeilenschnittstelle an oder verwenden

show appfw learningdata <profilename> FieldFormat
rm appfw learningdata <profilename> -fieldFormat <string>  <formActionURL>
export appfw learningdata <profilename> FieldFormat

So zeigen Sie gelernte Daten mit der GUI an oder verwenden

  1. Navigieren Sie zu Anwendungsfirewall > Profile, markieren Sie das Zielprofil, und klicken Sie auf Bearbeiten.

  2. Klicken Sie im Bereich Erweiterte Einstellungen auf Gelernte Regeln . Sie können den Eintrag Feldformate in der Tabelle Gelernte Regeln auswählen und darauf doppelklicken, um auf die erlernten Regeln zuzugreifen. Sie können die erlernten Regeln bereitstellen oder eine Regel bearbeiten, bevor Sie sie als Relaxationsregel bereitstellen. Um eine Regel zu verwerfen, können Sie sie auswählen und auf die Schaltfläche Überspringen klicken. Sie können jeweils nur eine Regel bearbeiten, aber Sie können mehrere Regeln zum Bereitstellen oder Überspringen auswählen.

    Sie haben auch die Möglichkeit, eine zusammengefasste Ansicht der gelernten Entspannungen anzuzeigen, indem Sie den Eintrag Feldformate in der Tabelle Gelernte Regeln auswählen und auf Visualizer klicken, um eine konsolidierte Ansicht aller gelernten Verletzungen zu erhalten. Der Visualizer macht es sehr einfach, die erlernten Regeln zu verwalten. Es bietet eine umfassende Ansicht der Daten auf einem Bildschirm und erleichtert das Handeln an einer Gruppe von Regeln mit einem Klick. Der größte Vorteil des Visualizers besteht darin, dass reguläre Ausdrücke zur Konsolidierung mehrerer Regeln empfohlen werden. Sie können eine Teilmenge dieser Regeln basierend auf dem Trennzeichen und der Aktions-URL auswählen. Sie können 25, 50 oder 75 Regeln im Visualizer anzeigen, indem Sie die Nummer aus einer Dropdownliste auswählen. Der Visualizer für erlernte Regeln bietet die Möglichkeit, die Regeln zu bearbeiten und als Relaxation bereitzustellen. Oder Sie können die Regeln überspringen, um sie zu ignorieren.

Verwenden der Protokollfunktion mit der Feldformat-Prüfung

Wenn die Protokollaktion aktiviert ist, werden die Sicherheitsüberprüfungsverletzungen für Feldformate im Überwachungsprotokoll als APPFW_FIELDFORMAT Verletzungen protokolliert. Die Web App Firewall unterstützt sowohl native als auch CEF-Protokollformate. Sie können die Protokolle auch an einen entfernten Syslog-Server senden.

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 Feldformat-Verletzungen zuzugreifen:

  • Shell
  • tail -f /var/log/ns.log | grep APPFW_FIELDFORMAT

So greifen Sie mit der GUI auf die Protokollmeldungen zu

Die Citrix GUI enthält ein sehr 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 Feldformate, und klicken Sie auf Protokolle. Wenn Sie direkt über die Sicherheitsüberprüfung für Feldformate des Profils auf die Protokolle zugreifen, werden die Protokollmeldungen herausgefiltert und nur die Protokolle angezeigt, die sich auf diese Sicherheitsüberprüfungsverletzungen beziehen.

  • Sie können auch auf den Syslog Viewer zugreifen, indem Sie zu Citrix ADC > 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 HTML-basierte Syslog Viewer bietet verschiedene Filteroptionen, um nur die Protokollmeldungen auszuwählen, die für Sie von Interesse sind. Um auf die Protokollmeldungen von Sicherheitsüberprüfungen für Feldformate zuzugreifen, filtern Sie, indem Sie APPFW in den Dropdown-Optionen für Modul auswählen. Der Ereignistyp zeigt eine Reihe von Optionen an, um Ihre Auswahl weiter zu verfeinern. Wenn Sie z. B. das Kontrollkästchen APPFW_FIELDFORMAT aktivieren und auf die Schaltfläche Übernehmen klicken, werden im Syslog-Viewer nur Protokollmeldungen angezeigt, die sich auf die Sicherheitsüberprüfungsverletzungen von Feldformaten beziehen.

Wenn Sie den Cursor in der Zeile für eine bestimmte Protokollmeldung platzieren, werden unter der Protokollmeldung mehrere Optionen wie Module und EventType angezeigt. Sie können eine dieser Optionen auswählen, um die entsprechenden Informationen in den Protokollen hervorzuheben.

Beispiel für eine Protokollmeldung im nativen Format, wenn die Anforderung nicht blockiert wird

Jun 10 22:32:26 <local0.info> 10.217.31.98 06/10/2015:22:32:26 GMT ns 0-PPE-0 :
default APPFW APPFW_FIELDFORMAT 97 0 :  10.217.253.62 562-PPE0
x1MV+YnNGzQFM3Bsy2wti4bhXio0001 pr_ffc http://aaron.stratum8.net/FFC/login_post.php
Field format check failed for field passwd="65568888sz-*_" <not blocked>
Example of a CEF format log message when the request is blocked
Jun 11 00:03:51 <local0.info> 10.217.31.98
CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_FIELDFORMAT|6|src=10.217.253.62 spt=27076
method=POST requet=http://aaron.stratum8.net/FFC/maxlen_post.php msg=Field format check
failed for field text_area="" cn1=108 cn2=644 cs1=pr_ffc cs2=PPE0
cs3=GaUROfl1Nx1jJTvja5twH5BBqI0000 cs4=ALERT cs5=2015 act=blocked

Statistiken für die Feldformat-Verstöße

Wenn die Aktion Statistik aktiviert ist, wird der entsprechende Zähler für die Feldformat-Prüfung erhöht, wenn die Web App Firewall eine Aktion für diese Sicherheitsprüfung ausführt. Die Statistiken werden für Rate und Gesamtanzahl für Traffic, Verletzungen und Protokolle gesammelt. Die Inkrement des Protokollzählers kann je nach konfigurierten Einstellungen variieren. Wenn beispielsweise die Blockaktion aktiviert ist, erhöht die Anforderung für eine Seite, die 3 Feldformatverletzungen enthält, den Statistikindikator um eins, da die Seite blockiert wird, sobald die erste Feldformat-Verletzung erkannt wird. Wenn der Block jedoch deaktiviert ist, erhöht die Verarbeitung derselben Anforderung den Statistikindikator für Verletzungen und Protokolle um 3, da jeder Feldformat-Verstoß eine separate Protokollmeldung generiert.

So zeigen Sie Feldformat-Statistiken 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 Feldformat-Statistiken 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 zu Feldformat-Verletzungen und -Protokollen anzuzeigen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.

Bereitstellungstipp

  • Aktivieren Sie Feldformat-Aktionen protokollieren, lernen und Statistiken.
  • Nachdem Sie ein repräsentatives Beispiel für den Datenverkehr zu Ihrer Anwendung ausgeführt haben, lesen Sie die erlernten Empfehlungen.
  • Wenn ein Feldtyp von den meisten erlernten Regeln empfohlen wird, konfigurieren Sie diesen Feldtyp als Standardfeldtyp. Verwenden Sie für minimale und maximale Längen den breitesten von diesen Regeln vorgeschlagenen Bereich.
  • Stellen Sie Regeln für andere Felder bereit, für die unterschiedliche Feldtypen oder unterschiedliche minimale/maximale Längen besser geeignet sind.
  • Aktivieren Sie das Blockieren und deaktivieren Sie das Lernen.
  • Überwachen Sie Statistiken und Protokolle. Wenn noch eine beträchtliche Anzahl von Verstößen ausgelöst wird, sollten Sie die Protokollmeldungen überprüfen, um zu bestätigen, dass die Verletzungen bösartige Anforderungen darstellen, die blockiert werden sollen. Wenn gültige Anforderungen als Verstöße gekennzeichnet werden, können Sie entweder die konfigurierte Feldformatregel bearbeiten, um sie weiter zu entspannen, oder das Lernen erneut aktivieren, um Empfehlungen basierend auf den neuen Datenpunkten zu erhalten.

Hinweis: Sie können Ihre Konfiguration anpassen, indem Sie neue Lernempfehlungen erhalten.

Highlights

Beachten Sie die folgenden Punkte zur Sicherheitsüberprüfung für Feldformat:

  • Schutz— Durch die Konfiguration optimaler Feldformatregeln können Sie vor vielen Angriffen schützen. Wenn Sie beispielsweise angeben, dass ein Feld nur ganze Zahlen haben kann, können Hacker SQL-Injection- oder XSS-Angriffe nicht mit diesem Feld starten, da die zum Starten solcher Angriffe erforderlichen Eingaben nicht die konfigurierte Feldformatanforderung erfüllen.
  • Performance— Sie können die minimale und maximal zulässige Länge für die Eingaben in den Feldformatregeln einschränken. Dies kann verhindern, dass ein böswilliger Benutzer übermäßig große Eingabezeichenfolgen eingeben, um dem Server Verarbeitungsaufwand hinzuzufügen, oder schlimmer noch, dass der Server Core wegen Stapelüberlauf ausgibt. Durch die Begrenzung der Eingabegröße können Sie die Zeit verkürzen, die für die Verarbeitung rechtmäßiger Anfragen erforderlich ist.
  • Konfigurieren von Feldformaten— Sie müssen eine der Aktionen (block, log, stats, learn) aktivieren, um das Feld Formatschutz zu aktivieren. Sie können auch die Feldformatregeln angeben, um die zulässigen Eingaben in den Formularfeldern zu identifizieren.
  • Auswählen von Zeichenzuordnungen vs. Feldtypen— Sowohl Zeichenzuordnungen als auch Feldtypen verwenden reguläre Ausdrücke. Eine Zeichenzuordnung stellt jedoch einen spezifischeren Ausdruck bereit, indem die Liste der zulässigen Zeichen eingeschränkt wird. Beispielsweise empfiehlt die Lern-Engine für eine Eingabe wie janedoe@citrix.com den Feldtyp nohtml, aber die Zeichenzuordnung[.@-Za-z]könnte spezifischer sein, da sie den zulässigen Satz von Nicht-Alpha-Zeichen einschränkt. Die Option Zeichenzuordnung erlaubt neben Alpha-Zeichen nur zwei Nicht-Alpha-Zeichen: Punkt (.) und at (@).
  • Laufendes Lernen— Die Web App Firewall überwacht und berücksichtigt alle eingehenden Daten (Verletzungen sowie zulässige Eingaben), um eine Lerntabelle für die Empfehlung von Regeln zu erstellen. Die Regeln werden überarbeitet und aktualisiert, sobald neue eingehende Daten eintreffen. Neue Feldformatregeln werden für ein Feld vorgeschlagen, auch wenn es bereits über eine gebundene Feldformatregel verfügt. Wenn die konfigurierten Feldformate zu restriktiv sind und die gültigen Anforderungen blockieren, können Sie ein entspannteres Feldformat bereitstellen. Wenn die aktuellen Feldformate zu generisch sind, können Sie die Sicherheit weiter verfeinern und verschärfen, indem Sie ein restriktiveres Feldformat bereitstellen.
  • Regeln überschreiben— Wenn bereits eine Regel für eine Feld-/URL-Kombination bereitgestellt wurde, ermöglicht die grafische Benutzeroberfläche dem Benutzer, das Feldformat zu aktualisieren. In einem Dialogfeld werden Sie aufgefordert, die vorhandene Regel zu ersetzen. Wenn Sie die Befehlszeilenschnittstelle verwenden, müssen Sie die Bindung der vorherigen Bindung explizit aufheben und dann die neue Regel binden.
  • Mehrere Übereinstimmungen— Wenn mehrere Feldformate mit einem bestimmten Feldnamen und seiner Aktions-URL übereinstimmen, wählt die Web App Firewall willkürlich eine dieser Formate aus, die angewendet werden soll.
  • Pufferbegrenzung— Wenn sich ein Feldwert über mehrere Streaming-Puffer erstreckt und das Format für diese beiden Teile des Feldwerts unterschiedlich ist, wird ein Feldformat, das any entspricht, an die Lerndatenbank gesendet.
  • Feldformat vs. Feldkonsistenzprüfung— Sowohl die Feldformatprüfung als auch die Feldkonsistenzprüfung sind formularbasierte Schutzprüfungen. Die Feldformat-Prüfung bietet einen anderen Schutz als die Formularfeldkonsistenzprüfung. Die Konsistenzprüfung für Formularfelder überprüft, ob die Struktur der von Benutzern zurückgegebenen Webformulare intakt ist, dass im HTML konfigurierte Datenformatbeschränkungen eingehalten werden und dass Daten in ausgeblendeten Feldern nicht geändert wurden. Es kann dies ohne spezifische Kenntnisse über Ihre Webformulare tun, außer dem, was es vom Webformular selbst ableitet. Die Feldformat-Prüfung überprüft, ob die Daten in den einzelnen Formularfeldern mit den spezifischen Formatierungseinschränkungen übereinstimmen, die Sie manuell konfiguriert haben oder ob das Lernfeature generiert und genehmigt wurde. Mit anderen Worten, die Konsistenzprüfung für Formularfelder erzwingt die allgemeine Webformularsicherheit, während die Feldformat-Prüfung die spezifischen Regeln für die zulässigen Eingaben für Ihre Webformulare durchsetzt.