Konfigurieren und Verwenden der Lernfunktion

Die Lernfunktion ist ein sich wiederholender Musterfilter, der Aktivitäten auf einer Website oder Anwendung beobachtet, die durch die Web App Firewall geschützt ist, um zu bestimmen, was normale Aktivität auf dieser Website oder Anwendung ausmacht. Anschließend wird für jede Sicherheitsprüfung eine Liste mit bis zu 2.000 vorgeschlagenen Regeln oder Ausnahmen (Relaxationen) erstellt, die Unterstützung für die Lernfunktion beinhaltet. Benutzer finden es normalerweise einfacher, Entspannungen mit der Lernfunktion zu konfigurieren, als durch manuelle Eingabe der notwendigen Entspannungen.

Die Sicherheitsüberprüfungen, die die Lernfunktion unterstützen, sind:

  • URL-Prüfung starten
  • Cookie-Konsistenzprüfung
  • Konsistenzprüfung des Formularfelds
  • Feldformat-Prüfung
  • CSRF-Formularkennzeichnen-Prüfung
  • HTML-SQL-Injektionsprüfung
  • HTML-Site-Cross-Site-Skripting-Prüfung
  • XML-Denial-of-Service-Prüfung
  • XML-Anlagenprüfung
  • Web-Services-Interoperabilitätsprüfung

Sie führen zwei verschiedene Arten von Aktivitäten durch, wenn Sie die Lernfunktion verwenden. Zuerst aktivieren und konfigurieren Sie das Feature, um es zu verwenden. Sie können das Lernen für den gesamten Datenverkehr zu Ihren geschützten Webanwendungen verwenden, oder Sie können eine Liste von IPs konfigurieren (die so genannte Liste Vertrauenswürdige Learning-Clients hinzufügen ), aus der die Lernfunktion Empfehlungen generieren soll. Zweitens überprüfen Sie, nachdem die Funktion aktiviert wurde und eine bestimmte Menge an Datenverkehr zu Ihren geschützten Websites verarbeitet wurde, die Liste der vorgeschlagenen Regeln und Entspannungen (erlernte Regeln) und markieren sie jeweils mit einer der folgenden Bezeichnungen:

  • Bearbeiten und Bereitstellen. Die Regel wird in das Dialogfeld Bearbeiten abgezogen, sodass Sie sie ändern können, und das geänderte Formular wird bereitgestellt.
  • Bereitstellen. Die unveränderte Regel Gelernte wird in die Liste der Regeln oder Relaxationen für diese Sicherheitsprüfung eingefügt.
  • Überspringen. Die Lernregel wird in eine Liste von Regeln oder Relaxationen eingefügt, die nicht bereitgestellt werden. Die gelernte Regel wird entfernt, wenn sie übersprungen wird. Da sie jedoch nicht zu Entspannungen hinzugefügt werden, könnten sie wieder gelernt werden.

Das Lernen wird nicht nur durchgeführt, wenn Entspannungen vorhanden sind, außer für Feldformatregeln. Wenn Regeln übersprungen werden, werden sie nur aus der erlernten Datenbank entfernt. Da Entspannungen nicht hinzugefügt werden, könnten sie wieder gelernt werden. Wenn Regeln bereitgestellt werden, werden sie aus der erlernten Datenbank entfernt und auch Relaxationen für die Regeln hinzugefügt. Wenn Entspannungen hinzugefügt werden, würden sie nicht wieder gelernt werden. Für den Feldformatschutz wird das Lernen unabhängig von Entspannungen durchgeführt.

Obwohl Sie die Befehlszeilenschnittstelle für die grundlegende Konfiguration der Lernfunktion verwenden können, ist das Feature hauptsächlich für die Konfiguration über den Web App Firewall Assistenten oder die GUI konzipiert. Sie können nur eine eingeschränkte Konfiguration der Lernfunktion über die Befehlszeile durchführen.

Der Assistent integriert die Konfiguration von Lernfunktionen in die Konfiguration der Web App Firewall als Ganzes und ist daher die einfachste Methode, um diese Funktion auf einer neuen Citrix ADC Appliance oder bei der Verwaltung einer einfachen Web App Firewall-Konfiguration zu konfigurieren. Der GUI-Visualisierer und die manuelle Schnittstelle bieten beide direkten Zugriff auf alle erlernten Regeln für alle Sicherheitsprüfungen und sind daher oft vorzuziehen, wenn Sie erlernte Regeln für eine große Anzahl von Sicherheitsprüfungen überprüfen müssen.

Die Lerndatenbank ist auf 20 MB begrenzt, was erreicht wird, nachdem pro Sicherheitsprüfung, für die das Lernen aktiviert ist, ungefähr 2.000 Lernregeln oder Relaxationen generiert wurden. Wenn Sie gelernte Regeln nicht regelmäßig überprüfen und entweder genehmigen oder ignorieren und dieser Grenzwert erreicht ist, wird ein Fehler im NetScaler Protokoll protokolliert, und es werden keine gelernten Regeln mehr generiert, bis Sie die vorhandenen gelernten Regeln und Relaxationen überprüfen.

Wenn das Lernen beendet wird, weil die Datenbank ihre Größenbeschränkung erreicht hat, können Sie das Lernen neu starten, indem Sie die vorhandenen Lernregeln und -entspannungen überprüfen oder die Lerndaten zurücksetzen. Nachdem gelernte Regeln oder Relaxationen genehmigt oder ignoriert wurden, werden sie aus der Datenbank entfernt. Nachdem Sie die Lerndaten zurückgesetzt haben, werden alle vorhandenen Lerndaten aus der Datenbank entfernt und auf die Mindestgröße zurückgesetzt. Wenn die Datenbank unter 20 MB fällt, wird das Lernen automatisch neu gestartet.

So konfigurieren Sie die Lerneinstellungen mit der Befehlszeilenschnittstelle

Geben Sie das zu konfigurierende Web App Firewall Profil an, und geben Sie für jede Sicherheitsprüfung, die Sie in dieses Profil aufnehmen möchten, den Mindestschwellenwert oder den Prozentschwellenwert an. Der Mindestschwellenwert ist eine Ganzzahl, die die Mindestanzahl von Benutzersitzungen darstellt, die die Web App Firewall verarbeiten muss, bevor eine Regel oder Entspannung erfährt (Standard: 1). Der Schwellenwert in Prozent ist eine Ganzzahl, die den Prozentsatz der Benutzersitzungen darstellt, in denen die Web App Firewall ein bestimmtes Muster (URL, Cookie, Feld, Anhang oder Regelverletzung) beobachten muss, bevor eine Regel oder Entspannung erfährt (Standard: 0). Verwenden Sie die folgenden Befehle:

  • set appfw learningsettings <profileName> [-startURLMinThreshold <positive_integer>] [-startURLPercentThreshold <positive_integer>] [-cookieConsistencyMinThreshold <positive_integer>] [-cookieConsistencyPercentThreshold <positive_integer>] [-CSRFtagMinThreshold <positive_integer>] [-CSRFtagPercentThreshold <positive_integer>] [-fieldConsistencyMinThreshold <positive_integer>] [-fieldConsistencyPercentThreshold <positive_integer>] [-crossSiteScriptingMinThreshold <positive_integer>] [-crossSiteScriptingPercentThreshold <positive_integer>] [-SQLInjectionMinThreshold <positive_integer>] [-SQLInjectionPercentThreshold <positive_integer>] [-fieldFormatMinThreshold <positive_integer>] [-fieldFormatPercentThreshold <positive_integer>] [-XMLWSIMinThreshold <positive_integer>] [-XMLWSIPercentThreshold <positive_integer>] [-XMLAttachmentMinThreshold <positive_integer>] [-XMLAttachmentPercentThreshold <positive_integer>]
  • save ns config

Beispiel

Im folgenden Beispiel werden die Lerneinstellungen im Profil pr-basic für die Sicherheitsprüfung von HTML SQL Injection aktiviert und konfiguriert. Dies ist eine geeignete Erstlernkonfiguration für das Testbett, bei der Sie die vollständige Kontrolle über den Datenverkehr haben, der an die Web App Firewall gesendet wird.

set appfw learningsettings pr-basic -SQLInjectionMinThreshold 10
set appfw learningsettings pr-basic -SQLInjectionPercentThreshold 70
save ns config

So setzen Sie Lerneinstellungen mit der Befehlszeilenschnittstelle auf ihre Standardwerte zurück

Um eine benutzerdefinierte Konfiguration der Lerneinstellungen für das angegebene Profil und die Sicherheitsprüfung zu entfernen und die Lerneinstellungen auf ihre Standardwerte zurückzusetzen, geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

  • unset appfw learningsettings <profileName> [-startURLMinThreshold ] [-startURLPercentThreshold] [-cookieConsistencyMinThreshold] [-cookieConsistencyPercentThreshold] [-CSRFtagMinThreshold ] [-CSRFtagPercentThreshold ] [-fieldConsistencyMinThreshold ] [-fieldConsistencyPercentThreshold ] [-crossSiteScriptingMinThreshold ] [-crossSiteScriptingPercentThreshold ] [-SQLInjectionMinThreshold ] [-SQLInjectionPercentThreshold ] [-fieldFormatMinThreshold] [-fieldFormatPercentThreshold ] [-XMLWSIMinThreshold ] [-XMLWSIPercentThreshold ] [-XMLAttachmentMinThreshold ] [-XMLAttachmentPercentThreshold]
  • save ns config

So zeigen Sie die Lerneinstellungen für ein Profil mit der Befehlszeilenschnittstelle an

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

show appfw learningsettings <profileName>

So zeigen Sie nicht überprüfte erlernte Regeln oder Relaxationen für ein Profil mit der Befehlszeilenschnittstelle an

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

show appfw learningdata <profileName> <securityCheck>

So entfernen Sie bestimmte nicht überprüfte gelernte Regeln oder Entspannungen mit der Befehlszeilenschnittstelle aus der Lerndatenbank

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

rm appfw learningdata <profileName> (-startURL <expression> | -cookieConsistency <string> | (-fieldConsistency <string> <formActionURL>) | (-crossSiteScripting <string> <formActionURL>) | (-SQLInjection <string> <formActionURL>) | (-fieldFormat <string><formActionURL>) | (-CSRFTag <expression> <CSRFFormOriginURL>) | -XMLDoSCheck <expression> | -XMLWSICheck <expression> | -XMLAttachmentCheck <expression>) [-TotalXMLRequests]

Beispiel

Im folgenden Beispiel werden alle nicht überprüften gelernten Entspannungen für das pr-basic-Profil, die Sicherheitsprüfung HTML SQL Injection, entfernt, die für das Formularfeld LastName gelten.

rm appfw learningdata pr-basic -SQLInjection LastName

So entfernen Sie alle nicht überprüften erlernten Daten mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

reset appfw learningdata

So exportieren Sie Lerndaten mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

export appfw learningdata <profileName> <securitycheck>[-target <string>]

Beispiel

Im folgenden Beispiel werden gelernte Entspannungen für das pr-basic-Profil und die Sicherheitsprüfung von HTML SQL Injection in eine CSV-Formatdatei (kommagetrennte Werte) im Verzeichnis /var/learnt_data/ unter dem Dateinamen exportiert, der im Parameter -target angegeben ist.

export appfw learningdata pr-basic SQLInjection -target sqli_ld

So konfigurieren Sie die Lernfunktion mit der GUI

  1. Navigieren Sie zu Sicherheit > Web App Firewall > Profile .
  2. Wählen Sie im Bereich Profile das Profil aus, und klicken Sie dann auf Bearbeiten .
  3. Klicken Sie auf die Registerkarte Lernen. Oben auf der Registerkarte Lernen finden Sie eine Liste der Sicherheitsprüfungen, die im aktuellen Profil verfügbar sind und die Lernfunktion unterstützen.
  4. Um die Lernschwellenwerte zu konfigurieren, wählen Sie eine Sicherheitsprüfung aus, und geben Sie dann die entsprechenden Werte in die folgenden Textfelder ein:

    Mindestzahlschwelle. Je nachdem, welche Lerneinstellungen für die Sicherheitsprüfung Sie konfigurieren, bezieht sich der Schwellenwert für die Mindestanzahl an Benutzersitzungen, die eingehalten werden müssen, auf die Mindestanzahl von Anforderungen, die eingehalten werden müssen, oder auf die Mindestanzahl der Beobachtungen eines bestimmten Formularfelds. bevor eine gelernte Entspannung erzeugt wird. Standard: 1

    Prozentsatz des Zeitgrenzwerts. Je nachdem, welche Lerneinstellungen für die Sicherheitsprüfung Sie konfigurieren, bezieht sich der Prozentsatz der Zeiten des Schwellenwerts möglicherweise auf den Prozentsatz der gesamten beobachteten Benutzersitzungen, die die Sicherheitsprüfung verletzt haben, auf den Prozentsatz der Anforderungen oder auf den Prozentsatz, in dem ein Formularfeld mit einem bestimmten Feldtyp übereinstimmte, bevor ein gelernte Entspannung erzeugt wird. Standard: 0

  5. Um alle gelernten Daten zu entfernen und die Lernfunktion zurückzusetzen, damit sie ihre Beobachtungen von Anfang an erneut starten muss, klicken Sie auf Alle gelernten Daten entfernen. Hinweis: Mit dieser Schaltfläche werden nur gelernte Empfehlungen entfernt, die nicht geprüft und entweder genehmigt oder übersprungen wurden. Es entfernt keine gelernten Entspannungen, die akzeptiert und eingesetzt wurden.
  6. Klicken Sie auf Vertrauenswürdige Lernclients, und fügen Sie der Liste die IP-Adressen hinzu, die Sie verwenden möchten.
    1. Um der Liste Trusted Learning-Clients eine IP-Adresse oder einen IP-Adressbereich hinzuzufügen, klicken Sie auf Hinzufügen.
    2. Geben Sie im Dialogfeld Vertrauenswürdige Learning-Clients hinzufügen im Listenfeld Vertrauenswürdige Clients die IP-Adresse oder einen IP-Adressbereich im CIDR-Format ein.
    3. Geben Sie im Textbereich Kommentare einen Kommentar ein, der diese IP-Adresse oder diesen Bereich beschreibt.
    4. Klicken Sie auf Erstellen, um der Liste die neue IP-Adresse oder den neuen Bereich hinzuzufügen.
    5. Um eine vorhandene IP-Adresse oder einen vorhandenen Bereich zu ändern, klicken Sie auf die IP-Adresse oder den Bereich, und klicken Sie dann auf Öffnen. Mit Ausnahme des Namens ist das angezeigte Dialogfeld identisch mit dem Dialogfeld Vertrauenswürdige Lernclients hinzufügen .
    6. Wenn Sie eine IP-Adresse oder einen Bereich deaktivieren oder aktivieren möchten, diese jedoch in der Liste belassen möchten, klicken Sie auf die IP-Adresse oder den Bereich, und klicken Sie dann gegebenenfalls auf Deaktivieren oder Aktivieren.
    7. Um eine IP-Adresse oder einen Bereich vollständig zu entfernen, klicken Sie auf die IP-Adresse oder den Bereich, und klicken Sie dann auf Entfernen.
  7. Klicken Sie auf Schließen, um zum Dialogfeld Web App Firewall profil konfigurieren zurückzukehren.
  8. Klicken Sie auf Schließen, um das Dialogfeld Web App Firewall Profil konfigurieren zu schließen und zum Bildschirm Web App Firewall-Profil zurückzukehren.

So überprüfen Sie gelernte Regeln oder Entspannungen mit der GUI

  1. Navigieren Sie zu Sicherheit > Web App Firewall > Profile .
  2. Wählen Sie die Sicherheitsprüfung aus, für die Sie gelernte Regeln oder Relaxationen überprüfen möchten, und klicken Sie dann auf Regeln verwalten.
  3. Wählen Sie im Dialogfeld Gelernte Regeln verwalten aus, wie Sie die erlernten Regeln überprüfen möchten.
    • Um die tatsächlich erlernten Muster zu überprüfen, wie im Fenster angezeigt, tun Sie nichts und fahren Sie mit dem nächsten Schritt fort.
    • Klicken Sie auf** Visualizer, um die erlernten Daten hierarchisch als Verzweigungsbaum zu überprüfen und allgemeine Muster auszuwählen, die vielen erlernten Mustern entsprechen**.
  4. Wenn Sie sich entschieden haben, tatsächlich gelernte Muster zu überprüfen, führen Sie die folgenden Schritte aus.
  5. Wählen Sie die erste gelernte Entspannung aus und wählen Sie, wie Sie damit umgehen sollen. - Um die Entspannung zu ändern und dann zu akzeptieren, klicken Sie auf Bearbeiten und Bereitstellen, bearbeiten Sie den regulären Ausdruck der Entspannung, und klicken Sie dann auf OK. - Um die Entspannung ohne Änderungen zu akzeptieren, klicken Sie auf Bereitstellen. - Um die Entspannung aus der Liste zu entfernen, ohne sie bereitzustellen, klicken Sie auf Überspringen.

    1. Wiederholen Sie den vorherigen Schritt, um jede zusätzliche gelernte Entspannung zu überprüfen.
  6. Wenn Sie den Learning Visualizer verwenden möchten, führen Sie die folgenden Schritte aus.
    1. Wählen Sie in der hierarchischen Anzeige der Verzweigung einen Knoten aus, der ein erlerntes Muster enthält, und wählen Sie, wie er behandelt werden soll.

      Der Bildschirmbereich unterhalb der Baumstruktur unter Regex von Selected Node zeigt einen generalisierten Ausdruck an, der allen Mustern in diesem Knoten entspricht. Wenn Sie einen Ausdruck anzeigen möchten, der nur einem der Zweige oder nur einem der Blätter entspricht, wählen Sie diesen Zweig oder dieses Blatt aus.

      • Um die gelernte Entspannung zu ändern und dann zu akzeptieren, klicken Sie auf Bearbeiten und Bereitstellen, bearbeiten Sie den regulären Ausdruck der Entspannung, und klicken Sie dann auf OK.

      • Klicken Sie auf Bereitstellen, um die Entspannung ohne Änderungen zu akzeptieren.

      • Klicken Sie auf Überspringen, um die Änderung aus der Liste zu entfernen, ohne sie bereitzustellen.

    2. Wiederholen Sie den vorherigen Schritt, um andere Teile der Anzeige zu überprüfen.

  7. Klicken Sie auf Schließen, um zum Dialogfeld Gelernte Regeln verwalten zurückzukehren.
  8. Klicken Sie auf Schließen, um zum Dialogfeld Web App Firewall profil konfigurieren zurückzukehren.
  9. Klicken Sie auf Schließen, um das Dialogfeld Web App Firewall Profil konfigurieren zu schließen und zum Bildschirm Web App Firewall-Profil zurückzukehren.