Prüfung der Feldformate
Die Feldformat-Überprüfung überprüft die Daten, die Benutzer in Webformularen an Ihre Websites senden. Dabei werden sowohl die Länge als auch der Typ der Daten untersucht, um sicherzustellen, dass sie für das Formularfeld geeignet sind, in dem sie angezeigt werden. Wenn die Web App Firewall in einer Benutzeranforderung unangemessene Webformulardaten erkennt, blockiert sie die Anfrage.
Die Feldformatprüfung verhindert, dass ein Angreifer unangemessene Webformulardaten an Ihre Website sendet, und verhindert so bestimmte Arten von Angriffen auf Ihre Website und Datenbankserver. Wenn ein bestimmtes Feld beispielsweise erwartet, dass der Benutzer eine Telefonnummer eingibt, untersucht die Prüfung Feldformate die vom Benutzer übermittelte Eingabe, um sicherzustellen, dass die Daten dem Format einer Telefonnummer entsprechen. Wenn für ein bestimmtes Feld ein Vorname erwartet wird, stellt die Prüfung der Feldformate sicher, dass die Daten in diesem Feld von einem Typ und einer Länge sind, die für einen Vornamen geeignet sind. Es macht dasselbe für jedes Formularfeld, das Sie konfigurieren, um es zu schützen.
Diese Prüfung gilt nur für HTML-Anfragen. Sie gilt nicht für XML-Anfragen. Sie können Feldformatprüfungen in HTML-Profilen oder Web 2.0-Profilen konfigurieren, um die HTML-Payload 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.
Für die Prüfung der Feldformate müssen Sie eine oder mehrere Aktionen aktivieren. Die Web App Firewall untersucht die übermittelten Eingaben und wendet die angegebenen Aktionen an.
Hinweis
Die Regeln für das Feldformat verschärfen die Regeln. Sie aus erlernten Daten zur Entspannungsliste hinzuzufügen, wirkt wie eine Sperrregel.
Um die Regeln für Feldformate zu lockern, entfernen Sie bitte einen bestimmten „Feldnamen“ aus der Liste der Feldformat-Relaxationen.
Sie haben die Möglichkeit, die Standardfeldformate festzulegen, um den Feldtyp und die Mindest- und Höchstlänge der Daten festzulegen, die in jedem Formularfeld auf jedem Webformular erwartet werden, das Sie schützen möchten. Sie können Relaxationsregeln verwenden, 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 Arten von Eingaben in verschiedenen Formularfeldern zu akzeptieren. Die Lernfunktion kann Empfehlungen für die Entspannungsregeln geben.
Aktionenim Feldformat — Sie können die Aktionen„Blockieren“, „Loggen“, „Statistiken“ und „Lernen“ aktivieren. Mindestens eine dieser Aktionen muss aktiviert sein, um den Field Format Check-Schutz zu aktivieren.
- Blockieren. Wenn Sie Block aktivieren, wird die Blockaktion ausgelöst, wenn die Eingabe nicht dem angegebenen Feldformat entspricht. Wenn eine Regel für das Zielfeld konfiguriert wurde, wird die Eingabe anhand der angegebenen Regel überprüft. Andernfalls wird es anhand der Standardfeldformatspezifikation überprüft. Jede Nichtübereinstimmung des Feldtyps oder der Angabe der Min/Max-Länge führt dazu, dass die Anfrage blockiert wird.
- Loggen. Wenn Sie die Protokollfunktion aktivieren, generiert die Feldformatprüfung Protokollmeldungen, in denen die Aktionen angegeben sind, die ausgeführt werden. Sie können die Protokolle überwachen, um festzustellen, ob Antworten auf legitime Anfragen blockiert werden. Ein starker Anstieg der Anzahl von Protokollmeldungen kann auf böswillige Angriffsversuche hinweisen.
- Statistiken. Wenn diese Option aktiviert ist, sammelt die Statistikfunktion Statistiken über Verstöße und Protokolle. Ein unerwarteter Anstieg des Statistikzählers könnte darauf hindeuten, dass Ihre Anwendung angegriffen wird, oder Sie müssen möglicherweise die Konfiguration erneut überprüfen, um festzustellen, ob das angegebene Feldformat zu restriktiv ist.
- Lernen. Wenn Sie sich nicht sicher sind, welche Feldtypen oder Werte für Mindest- und Maximallänge für Ihre Anwendung ideal geeignet sind, können Sie die Lernfunktion verwenden, um Empfehlungen auf der Grundlage der gelernten Daten zu generieren. Die Web App Firewall Learning Engine überwacht den Datenverkehr und gibt Empfehlungen für Feldformate auf der Grundlage der beobachteten Werte. Um einen optimalen Nutzen zu erzielen, ohne die Leistung zu beeinträchtigen, sollten Sie die Lernoption möglicherweise 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 eingesetzte Entspannungsregel versehentlich alle diese Felder lockern.
Standardfeldformat— Zusätzlich zur Konfiguration der Aktionen können Sie das Standardfeldformat konfigurieren, um den Datentyp anzugeben, der in allen Formularfeldern für Ihre Anwendung erwartet wird. Als Feldformattyp kann ein Feldtyp ausgewählt werden. Die Parameter Minimallänge und Maximale Länge können verwendet werden, um die Länge der zulässigen Eingaben festzulegen. Als Alternative zu Feldtypen können Sie Character Maps verwenden, um anzugeben, was in einem Feld zulässig ist (außer in Cluster-Bereitstellungen).
-
Feldtyp— Feldtypen sind benannte Ausdrücke, denen Sie Prioritätswerte zuweisen. Feldtypausdrü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 geprüft. Eine niedrigere Zahl weist auf eine höhere Priorität hin. Die Web App Firewall bietet Ihnen die Möglichkeit, Ihre eigenen 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 > <!--NeedCopy-->
Hinweis: Die integrierten Feldtypen sind UNVERÄNDERLICH. Sie können nicht geändert oder entfernt werden. Alle Feldtypen, die Sie hinzufügen, sind ÄNDERBAR. Sie können sie bearbeiten oder entfernen.
Die Konfiguration 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 Antragsformularen nur Zahlen und Buchstaben enthalten, sollten Sie das integrierte Feldtyp-Alphanum als Standardfeldtyp verwenden. Jedes nicht alphanumerische Zeichen wie ein umgekehrter Schrägstrich () oder ein 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“ zu den einzig zulässigen Alphazeichen machen möchten, können Sie einen benutzerdefinierten Feldtyp mit dem regulären Ausdruck „^ [x-z] +$“ konfigurieren. Sie können ihm eine höhere Priorität (niedrigere Prioritätsnummer) als die integrierten Feldtypen zuweisen und sie als Standardfeldtyp verwenden.
-
Mindestlänge — Die standardmäßige Mindestdatenlänge, die Formularfeldern in Webformularen zugewiesen wird, die keine explizite Einstellung haben. Dieser Parameter ist standardmäßig auf 0 gesetzt, sodass der Benutzer das Feld leer lassen kann. Jede höhere Einstellung zwingt die Benutzer, das Feld auszufüllen.
Vorsicht: Wenn der Mindestlängenwert 0 ist, der Feldtyp aber Integer, Alpha oder Alphawert ist, wird eine Anfrage blockiert, wenn trotz der Einstellung für die Mindestlänge ein Eingabefeld leer gelassen wird. Das liegt daran, dass der RegEx für diese Feldtypen ein +-Zeichen enthält, was ein oder mehrere Zeichen bedeutet. Um eine Ganzzahl von einem Alpha-Zeichen zu unterscheiden, ist mindestens ein Zeichen erforderlich.
-
Maximale Länge— Die standardmäßige maximale Datenlänge, die Formularfeldern in Webformularen zugewiesen wird, für die keine explizite Einstellung vorhanden ist. Dieser Parameter ist standardmäßig auf 65535 gesetzt.
Hinweis: Zeichen im Vergleich zu Bytes. Die Mindest- und Höchstlängen für die Feldformate geben die Anzahl der Byte an, nicht die Anzahl der Zeichen. Sprachen mit einer Zeichendarstellung von mehr als einem Byte können dazu führen, dass das Limit überschritten wird, wenn weniger Zeichen als die für den Maximalwert konfigurierte Zahl vorliegen. Bei einer Doppelbyte-Zeichendarstellung erlaubt der Maximalwert von 9 beispielsweise nicht mehr als 4 Zeichen. 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.
-
Zeichenzuordnungen: Die Web App Firewall-Lernengine empfiehlt nicht nur die Feldtypen, sondern bietet Ihnen auch die zusätzliche Option „Zeichenzuordnungen verwenden“, um die Regeln für die Formatprüfung anzuwenden. Eine Zeichentabelle ist ein Satz aller Zeichen, die in einem bestimmten Formularfeld zulässig sind. Mithilfe von Zeichenzuordnungen können Sie die Feldformatspezifikation so anpassen, 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 in der Eingabe erscheint, sind alle Alpha-Zeichen [a-zA-Z] gemäß dem empfohlenen PCRE-Ausdruck in der Zeichentabelle zulässig. Ebenso sind alle Ziffern [0-9] zulässig, wenn eine Ziffer enthalten ist. Nicht druckbare Zeichen werden mit dem x-Konstrukt angegeben. Für die Empfehlungen zur Zeichentabelle werden nur Einzelbyte-Zeichen mit Werten zwischen 0 und 255 berücksichtigt.
Eine Zeichentabelle kann spezifischer sein als die entsprechende Feldtypempfehlung. In manchen Situationen sind Charakterkarten möglicherweise die bessere Option, da Sie dadurch eine genauere Kontrolle über die Anzahl der Zeichen haben, die als Eingabe zulässig sind. Die bereitgestellten Zeichenzuordnungen werden als Zeichenketten angezeigt, die mit dem Präfix „CM“ beginnen, gefolgt von Ziffern. Die Priorität für die Charakterkarten beginnt bei 10000. Wie bei vom Benutzer hinzugefügten Feldtypen können Sie eine Zeichentabelle hinzufügen, bearbeiten oder entfernen. Charakterkarten, die derzeit in den bereitgestellten Regeln verwendet werden, können nicht geändert oder entfernt werden.
Hinweis: Charakterkarten werden in Cluster-Bereitstellungen nicht unterstützt.
Hinweis
Wenn Sie eine Regel für Feldformate mit einem beliebigen integrierten Feldtyp hinzufügen und die Zeichentabelle anstelle von Feldtyp verwenden und speichern, werden die Änderungen nicht gespeichert und die Regel wird weiterhin mit Feldtyp angezeigt.
Wenn die Zeichentabelle einem der integrierten Typen entspricht, wird der Feldtyp wiederverwendet, anstatt eine neue Zeichentabelle zu erstellen.
Konfiguration der Feldformatprüfung über die Befehlszeile
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 auf ihre Standardwerte zurückzusetzen. Um eine Feldformatregel anzugeben, verwenden Sie den Befehl bind appfw, um einen Feldtyp an ein Formularfeld und die Aktions-URL zusammen mit den Angaben zur Mindest- und Maximallänge zu binden.
Um einen Feldtyp mithilfe der Befehlszeile hinzuzufügen, zu entfernen oder anzuzeigen:
Verwenden Sie den Befehl add, um einen Feldtyp hinzuzufügen. Sie müssen den Namen, den regulären Ausdruck und die Priorität angeben, wenn Sie einen neuen Feldtyp hinzufügen. Sie haben auch die Möglichkeit, einen Kommentar hinzuzufügen. Sie können den Befehl show verwenden, um die konfigurierten Feldtypen anzuzeigen. Sie können einen Feldtyp auch löschen, indem Sie den Befehl remove verwenden, für den nur der Name des Feldtyps erforderlich ist.
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`
<!--NeedCopy-->
Hinweis: Wie oben gezeigt, ist die Verwendung von „appfw“ im Befehl optional. Beispielsweise sind „Add FieldType“ oder „Add appfw FieldType“ beide gültige Optionen. Die Namen der Feldtypen unterscheiden aufgrund der Normalisierung nicht zwischen Groß- und Kleinschreibung. Wie in den obigen Beispielen gezeigt, beziehen sich Cust_Zipcode, cust_zipcode und Cust_ZipCode auf denselben Feldtyp.
Um ein Feldformat zu konfigurieren, überprüfen Sie es mithilfe 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 Relaxationsregel für das Feldformat mithilfe der Befehlszeile
bind appfw profile <name> (-fieldFormat <string> <formActionURL> <fieldType>
[-fieldFormatMinLength <positive_integer>] [-fieldFormatMaxLength <positive_integer>]
[-isRegex ( REGEX | NOTREGEX )])
<!--NeedCopy-->
Beispiel:
bind appfw profile pr_ffc -fieldFormat "login_name" ".*/login.php" integer -fieldformatMinLength 3 -FieldformatMaxlength 6
<!--NeedCopy-->
Verwendung der GUI zur Konfiguration der Feldformate (Sicherheitscheck)
In der GUI können Sie die Feldtypen verwalten. Sie können auch die Sicherheitsprüfung Feldformate im Bereich für das Ihrer Anwendung zugeordnete Profil konfigurieren.
Um einen Feldtyp mithilfe der GUI hinzuzufügen, zu ändern oder zu entfernen
- Navigieren Sie zum Knoten Application Firewall. Klicken Sie in den Einstellungen auf Feldtypen verwalten, um das Dialogfeld „Anwendungs-Firewall-Feldtyp konfigurieren“ aufzurufen.
- 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.
Um die Feldformate hinzuzufügen oder zu ändern, überprüfen Sie die Sicherheitsüberprüfung mithilfe der GUI
-
Navigieren Sie zu Application Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
-
Klicken Sie im Bereich Erweiterte Einstellungen auf Sicherheitschecks.
In der Tabelle zur Sicherheitsüberprüfung werden die aktuell konfigurierten Aktionseinstellungen für alle Sicherheitsüberprüfungen angezeigt. Sie haben 2 Möglichkeiten für die Konfiguration:
- Wenn Sie nur die Aktionen Blockieren, Protokollieren, Statistikenund Lernen für Feldformate aktivieren oder deaktivieren möchten, können Sie die Kontrollkästchen in der Tabelle aktivieren oder deaktivieren, auf OKklicken und dann auf Speichern und Schließen klicken, um den Bereich Sicherheitsprüfung zu schließen.
- Wenn Sie zusätzliche Optionen für diese Sicherheitsüberprü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 das 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 eingesetzten Charakterkarten sind ebenfalls in der Liste enthalten und können ausgewählt werden.
-
Mindestlä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 die Aktionen Blockieren, Protokollieren, Statistiken und Lernen auch im Bereich Feldformateinstellungen 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 Sicherheitschecks 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 mithilfe der GUI
-
Navigieren Sie zu Application Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
-
Klicken Sie im Bereich Erweiterte Einstellungen auf Relaxationsregeln. Die Tabelle mit den Relaxationsregeln enthält einen Eintrag für Feldformate. Sie können auf diese Zeile doppelklicken oder diese Zeile auswählen und auf die Schaltfläche Bearbeiten klicken, um das Dialogfeld „Relaxationsregeln für Feldformate“ aufzurufen. Sie können die Operationen Hinzufügen, Bearbeiten, Löschen, Aktivierenoder Deaktivieren für Relaxationsregeln ausführen.
Für eine konsolidierte Ansicht aller Relaxationsregeln 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 zu bearbeiten . Sie können auch eine Gruppe von Regeln aktivieren oder deaktivieren, indem Sie einen Knoten auswählen und auf die entsprechenden Schaltflächen im Relaxationsvisualizer klicken.
Verwendung der Lernfunktion mit dem Field Formats Check
Wenn die Lernaktion aktiviert ist, überwacht die Web App Firewall Learning Engine den Datenverkehr und lernt die ausgelösten Verstöße. Sie können diese gelernten Regeln regelmäßig überprüfen. Nach reiflicher Überlegung können Sie die erlernte Regel als Relaxationsregel für das Feldformat anwenden.
Verbesserung des Lernens in Feldformaten— In Version 11.0 wurde eine Lernerweiterung der Web App Firewall eingeführt. In den vorherigen Versionen stoppt die Web App Firewall-Lernengine die Überwachung der gültigen Anfragen, sobald die erlernten Feldformatempfehlungen bereitgestellt wurden, um auf der Grundlage der neuen Datenpunkte neue Regeln zu empfehlen. Dies schränkt den konfigurierten Sicherheitsschutz ein, da die Lerndatenbank keine Repräsentationen der neuen Daten enthält, die in den gültigen Anfragen enthalten sind, die bei der Sicherheitsüberprüfung verarbeitet wurden.
Verstöße sind nicht mehr mit Lernen verbunden. Die Lernmaschine lernt und gibt unabhängig von den Verstößen Empfehlungen für die Feldformate ab. Die Lernmaschine überprüft nicht nur die blockierten Anfragen, um festzustellen, ob das aktuelle Feldformat zu restriktiv ist und gelockert werden muss, sondern überwacht auch die zulässigen Anfragen, um festzustellen, ob das aktuelle Feldformat zu permissiv ist, und ermöglicht es, die Sicherheit durch die Implementierung einer restriktiveren Regel zu erhöhen.
Im Folgenden finden Sie eine Zusammenfassung des Lernverhaltens von Field Formats:
Esist kein Feldformat gebunden— Das Verhalten bleibt in diesem Szenario unverändert. Alle Lerndaten werden an die aslearn-Engine gesendet. Die Lernmaschine schlägt eine Feldformatregel vor, die auf dem Datensatz basiert.
DasFeldformat ist gebunden: In den vorherigen Versionen werden beobachtete Daten nur im Falle eines Verstoßes an die aslearn-Engine gesendet. Die Lernmaschine schlägt eine Feldformatregel vor, die auf dem Datensatz basiert. In der Version 11.0 werden alle Daten an die Aslearn-Engine gesendet, auch wenn kein Verstoß ausgelöst wurde. Die Lernmaschine schlägt eine Feldformatregel vor, die auf dem gesamten Datensatz aller empfangenen Eingaben basiert.
Anwendungsfall zur Verbesserung des Lernens:
Wenn die erlernten Regeln für das anfängliche Feldformat auf einer kleinen Datenstichprobe basieren, können einige untypische Werte zu einer Empfehlung führen, die für das Zielfeld zu nachsichtig ist. Das kontinuierliche Lernen ermöglicht es der Web App Firewall, Datenpunkte aus jeder Anfrage zu beobachten, um eine repräsentative Stichprobe für die erlernten Empfehlungen zu sammeln. Dies ist hilfreich, um die Sicherheit weiter zu erhöhen und das optimale Eingabeformat mit einem angemessenen Bereichswert bereitzustellen.
Das Lernen im Feldformat nutzt die Priorität der Feldtypen sowie die konfigurierten Einstellungen der folgenden Lernschwellen:
- FieldFormatMinThreshold— Die Mindestanzahl, mit der ein bestimmtes Formularfeld beobachtet werden muss, bevor eine erlernte Entspannung generiert wird. Standard: 1.
- FieldFormatPercentThreshold— Der Prozentsatz, mit dem ein Formularfeld einem bestimmten Feldtyp entsprach, bevor eine erlernte Entspannung generiert wird. Standard: 0.
Die Regelempfehlungen für Feldformate basieren auf den folgenden Kriterien:
- Empfehlungen für Feldtypen— Die Empfehlungen für Feldtypen richten sich nach den zugewiesenen Prioritäten der vorhandenen Feldtypen und den angegebenen Schwellenwerten für das Feldformat. 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. Beispielsweise hat der Feldtyp Integer die höhere Priorität (30) und wird daher vor dem Feldtyp alphanum (50) ausgewertet. Die Schwellenwerte bestimmen die Anzahl der Eingaben, die ausgewertet wurden, um eine repräsentative Stichprobe für den Datenpunkt zu erheben. Es ist wichtig, den konfigurierten Feldtypen die richtige Priorität zuzuweisen und einen geeigneten LearningSeting-Wert für die Parameter FieldFormatPercentThreshold und FieldFormatMinThresholdzu konfigurieren, um die richtige Empfehlung für das Feldformat zu erhalten. 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 ohne Berücksichtigung der anderen Feldtypen vorgeschlagen. Beispielsweise stimmen die drei Standardfeldtypen Integer, Alphanum und Any überein, wenn alle Eingaben nur Zahlen enthalten. Integer wird jedoch empfohlen, da sie die höchste Priorität hat.
- Empfehlungen für Mindest- und Maximallänge— Die Berechnungen für die Mindest- und Maximallänge für das Feldformat werden unabhängig von der Bestimmung des Feldtyps durchgeführt. Die Längenberechnungen für das Feldformat basieren auf der durchschnittlichen Länge aller beobachteten Eingaben. Die Hälfte dieses berechneten Durchschnitts wird als Mindestwert vorgeschlagen, und der doppelte Wert dieses Durchschnitts wird als Maximalwert vorgeschlagen. Der Bereich für die Mindestlänge liegt zwischen 0 und 65535 und der Bereich für die maximale Länge zwischen 1 und 65535. Der konfigurierte Wert für die Mindestlänge darf die maximale Länge nicht überschreiten.
- Behandlung von Leerzeichen— Die Feldformatprüfung zählt jedes Leerzeichen, wenn die Länge der Feldformate überprüft wird. Führende oder nachstehende Leerzeichen werden nicht entfernt, und mehrere aufeinanderfolgende Leerzeichen in der Mitte der Eingabezeichenfolge werden bei der Eingabeverarbeitung nicht mehr zu einem einzigen Leerzeichen zusammengefasst.
Beispiel zur Veranschaulichung der Empfehlungen zum Feldformat:
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
<!--NeedCopy-->
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
<!--NeedCopy-->
So zeigen Sie erlernte Daten mit der GUI an oder verwenden sie
-
Navigieren Sie zu Application Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
-
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 gelernten Regeln zuzugreifen. Sie können die erlernten Regeln bereitstellen oder eine Regel bearbeiten, bevor Sie sie als Entspannungsregel 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 erlernten Lockerungen anzuzeigen, indem Sie in der Tabelle Gelernte Regeln den Eintrag Feldformate auswählen und auf Visualizer klicken, um eine konsolidierte Ansicht aller erlernten Verstöße 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 Ergreifen einer Gruppe von Regeln mit einem Klick. Der größte Vorteil des Visualizers besteht darin, dass reguläre Ausdrücke empfohlen werden, um mehrere Regeln zu konsolidieren. 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 Zahl aus einer Dropdown-Liste auswählen. Der Visualizer für erlernte Regeln bietet die Möglichkeit, die Regeln zu bearbeiten und als Entspannungen einzusetzen. Oder Sie können die Regeln überspringen, um sie zu ignorieren.
Verwenden der Protokollfunktion mit der Feldformatprüfung
Wenn die Protokollaktion aktiviert ist, werden die Verstöße gegen die Sicherheitsüberprüfung von Field Formats im Audit-Log als APPFW_FIELDFORMAT-Verstöße protokolliert. Die Web App Firewall unterstützt sowohl native als auch CEF-Protokollformate. Sie können die Protokolle auch an einen Remote-Syslog-Server senden.
So greifen Sie mit der Befehlszeile auf die Protokollmeldungen zu
Wechseln Sie zur Shell und verfolgen Sie die ns.logs im Ordner /var/log/, um auf die Protokollmeldungen zuzugreifen, die sich auf die Verstöße gegen Feldformate beziehen:
Shell
tail -f /var/log/ns.log | grep APPFW_FIELDFORMAT
So greifen Sie mit der GUI auf die Protokollmeldungen zu
Die GUI enthält ein sehr nützliches Tool (Syslog Viewer) zur Analyse der Logmeldungen. Sie haben mehrere Optionen für den Zugriff auf den Syslog Viewer:
-
Navigieren Sie zu Application Firewall > Profile, wählen Sie das Zielprofil aus und klicken Sie auf Sicherheitsüberprüfungen. Markieren Sie die Zeile Feldformate und klicken Sie auf Protokolle. Wenn Sie direkt von der Sicherheitsprüfung „Feldformate“ des Profils aus auf die Protokolle zugreifen, werden die Protokollmeldungen herausgefiltert und nur die Protokolle angezeigt, die sich auf diese Sicherheitsüberprüfungsverstöße beziehen.
-
Sie können auch auf den Syslog Viewer zugreifen, indem Sie zu NetScaler > System > Auditing navigieren. Klicken Sie im Abschnitt Audit-Meldungen auf den Link Syslog-Meldungen, um den Syslog-Viewer aufzurufen, in dem alle Protokollmeldungen einschließlich anderer Sicherheitsüberprüfungsverstöße angezeigt werden. Dies ist nützlich für das Debuggen, wenn während der Anforderungsverarbeitung mehrere Sicherheitsüberprüfungen ausgelöst werden können.
-
Navigieren Sie zu Application Firewall > Richtlinien > Überwachung. Klicken Sie im Abschnitt Audit-Meldungen auf den Link Syslog-Meldungen, um den Syslog-Viewer aufzurufen, in dem alle Protokollmeldungen einschließlich anderer Sicherheitsüberprüfungsverstöße 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 Protokollmeldungen über Verstöße gegen die Sicherheitsüberprüfung von Feldformaten zuzugreifen, filtern Sie, indem Sie in den Dropdownoptionen für Modul APPFW auswählen. Der Event-Typ zeigt eine Vielzahl von Optionen an, um Ihre Auswahl weiter zu verfeinern. Wenn Sie beispielsweise das Kontrollkästchen APPFW_FIELDFORMAT aktivieren und auf die Schaltfläche Anwenden klicken, werden im Syslog Viewer nur Protokollmeldungen zu Verstößen gegen die Feldformat-Sicherheitsüberprüfungen angezeigt.
Wenn Sie den Cursor in die Zeile für eine bestimmte Protokollmeldung setzen, werden mehrere Optionen, wie Module und EventType, unter der Protokollmeldung angezeigt. Sie können eine dieser Optionen auswählen, um die entsprechenden Informationen in den Protokollen hervorzuheben.
Beispiel für eine Protokollnachricht im systemeigenen Format, wenn die Anfrage 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|NetScaler|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
<!--NeedCopy-->
Statistiken für Verstöße gegen Feldformate
Wenn die Statistikaktion aktiviert ist, wird der entsprechende Zähler für die Feldformatprüfung erhöht, wenn die Web App Firewall eine Aktion für diese Sicherheitsüberprüfung ergreift. Die Statistiken werden für Rate und Gesamtanzahl für Traffic, Verletzungen und Protokolle gesammelt. Die Erhöhung des Protokollzählers kann je nach den konfigurierten Einstellungen variieren. Wenn beispielsweise die Aktion Blockieren aktiviert ist, erhöht die Anfrage nach einer Seite, die 3 Feldformatverstöße enthält, den Statistikzähler um eins, da die Seite blockiert wird, sobald der erste Verstoß gegen Feldformate erkannt wird. Wenn der Block jedoch deaktiviert ist, erhöht die Verarbeitung derselben Anfrage den Statistikzähler für Verstöße und die Protokolle um 3, da jeder Verstoß gegen Feldformate eine separate Protokollmeldung generiert.
So zeigen Sie Feldformatestatistiken mithilfe 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 Feldformatestatistiken mithilfe der GUI an
- Navigieren Sie zu System > Sicherheit > Anwendungsfirewall.
- Greifen Sie im rechten Fensterausschnitt auf die Statistikverknüpfung zu.
- Verwenden Sie die Scrollleiste, um die Statistiken zu Verstößen gegen Feldformate und zu Protokollen einzusehen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.
Einsatztipp
- Aktiviere Aktionen im Feldformat protokollieren, lernen und Statistiken.
- Nachdem Sie eine repräsentative Stichprobe des Datenverkehrs zu Ihrer Anwendung durchgeführt haben, überprüfen Sie die erlernten Empfehlungen.
- Wenn ein Feldtyp von den meisten gelernten Regeln empfohlen wird, konfigurieren Sie diesen Feldtyp als Standardfeldtyp. Verwenden Sie für Mindest- und Höchstlängen den breitesten Bereich, der in diesen Regeln vorgeschlagen wird.
- Stellen Sie Regeln für andere Felder bereit, für die andere Feldtypen oder unterschiedliche Mindest- und Maximallängen besser geeignet sind.
- Aktiviere das Blockieren und deaktiviere das Lernen.
- Überwachen Sie Statistiken und Protokolle. Wenn immer noch eine erhebliche Anzahl von Verstößen ausgelöst wird, sollten Sie die Protokollmeldungen überprüfen, um sicherzustellen, dass es sich bei den Verstößen um böswillige Anfragen handelt, die blockiert worden sein müssen. Wenn gültige Anfragen als Verstöße gekennzeichnet werden, können Sie entweder die konfigurierte Feldformatregel bearbeiten, um sie weiter zu lockern, oder das Lernen erneut aktivieren, um Empfehlungen auf der Grundlage der neuen Datenpunkte zu erhalten.
Hinweis: Sie können Ihre Konfiguration optimieren, indem Sie neue Lernempfehlungen erhalten.
Highlights
Beachten Sie die folgenden Punkte zur Feldformat-Sicherheitsprüfung:
- Schutz— Durch die Konfiguration optimaler Feldformatregeln können Sie sich vor vielen Angriffen schützen. Wenn Sie beispielsweise angeben, dass ein Feld nur Ganzzahlen enthalten kann, können Hacker mithilfe dieses Felds keine SQL-Injection- oder Cross-Site-Scripting-Angriffe starten, da die für den Start solcher Angriffe erforderlichen Eingaben die konfigurierten Feldformatanforderungen nicht erfüllen.
- Leistung— Sie können die zulässige Mindest- und Höchstlänge für die Eingaben in den Feldformatregeln einschränken. Dies kann verhindern, dass ein böswilliger Benutzer zu große Eingabezeichenfolgen eingibt, um den Verarbeitungsaufwand auf dem Server zu erhöhen, oder schlimmer noch, dazu führen, dass der Server aufgrund eines Stack-Überlaufs den Core ausgibt. Durch die Begrenzung der Eingabegröße können Sie die Zeit verkürzen, die für die Bearbeitung legitimer Anfragen benötigt wird.
- Feldformate konfigurieren— Sie müssen eine der Aktionen (Blockieren, Loggen, Statistiken, Lernen) aktivieren, um den Feldformatschutz zu aktivieren. Sie können auch die Feldformatregeln angeben, um die zulässigen Eingaben in Ihren Formularfeldern zu identifizieren.
- Auswahl von Charakterkarten 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 könnte die Lernengine für eine Eingabe wie janedoe@citrix.com den Feldtyp nohtml, aber die Zeichentabelle [empfehlen. @-zA-Z] könnte spezifischer sein, da es die erlaubte Menge von Nicht-Alpha-Zeichen einschränkt. Die Option Zeichenzuordnung erlaubt neben Alpha-Zeichen nur zwei Nicht-Alpha-Zeichen: Punkt (.) und at (@).
- Kontinuierliches Lernen— Die Web App Firewall überwacht und berücksichtigt alle eingehenden Daten (Verstöße 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 Anfragen blockieren, können Sie ein lockereres Feldformat verwenden. Ebenso können Sie, wenn die aktuellen Feldformate zu allgemein sind, die Sicherheit weiter verfeinern und erhöhen, indem Sie ein restriktiveres Feldformat verwenden.
- Regeln überschreiben— Wenn eine Regel bereits für eine Kombination aus Feld und URL bereitgestellt wurde, ermöglicht die GUI dem Benutzer, das Feldformat zu aktualisieren. In einem Dialogfeld werden Sie zur Bestätigung aufgefordert, die bestehende Regel zu ersetzen. Wenn Sie die Befehlszeilenschnittstelle verwenden, müssen Sie die vorherige Bindung explizit aufheben und dann die neue Regel binden.
- Mehrfachübereinstimmung— Wenn mehrere Feldformate mit einem bestimmten Feldnamen und seiner Aktions-URL übereinstimmen, wählt die Web App Firewall willkürlich eines davon aus, das angewendet werden soll.
- Puffergrenze— 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 Prüfung der Feldformate bietet einen anderen Schutz als die Konsistenzprüfung für Formularfelder. Die Konsistenzprüfung für Formularfelder stellt sicher, dass die Struktur der von Benutzern zurückgegebenen Webformulare intakt ist, dass die im HTML konfigurierten Datenformatbeschränkungen eingehalten werden und dass Daten in versteckten Feldern nicht geändert wurden. Dies ist ohne spezifische Kenntnisse über Ihre Webformulare möglich, außer denen, die es aus dem Webformular selbst ableitet. Die Prüfung der Feldformate überprüft, ob die Daten in jedem Formularfeld den spezifischen Formatierungsbeschränkungen entsprechen, die Sie manuell konfiguriert haben, oder ob die Lernfunktion generiert und von Ihnen 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.
In diesem Artikel
- Konfiguration der Feldformatprüfung über die Befehlszeile
- Verwendung der GUI zur Konfiguration der Feldformate (Sicherheitscheck)
- Verwendung der Lernfunktion mit dem Field Formats Check
- Verwenden der Protokollfunktion mit der Feldformatprüfung
- Statistiken für Verstöße gegen Feldformate
- Einsatztipp
- Highlights