Citrix ADC

Konfiguration und Verwendung der Lernfunktion

Die Lernfunktion ist ein Filter für sich wiederholende Muster, der Aktivitäten auf einer Website oder Anwendung beobachtet, die durch die Web App Firewall geschützt ist, um festzustellen, was normale Aktivitäten auf dieser Website oder Anwendung ausmacht. Anschließend wird für jede Sicherheitsüberprüfung, die die Unterstützung der Lernfunktion beinhaltet, eine Liste mit bis zu 2.000 vorgeschlagenen Regeln oder Ausnahmen (Lockerungen) generiert. Benutzer finden es normalerweise einfacher, Entspannungen mithilfe der Lernfunktion zu konfigurieren, als die erforderlichen Entspannungen manuell einzugeben.

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

  • URL-Prüfung starten
  • Cookie-Konsistenzprüfung
  • Form Field Consistency Check
  • Field Formats Check
  • CSRF Form Tagging Check
  • HTML SQL Injection Check
  • HTML Cross-Site Scripting Check
  • XML-Denial-of-Service-Prüfung
  • XML Attachment Check
  • Interoperabilitätsprüfung der Webdienste

Sie führen zwei verschiedene Arten von Aktivitäten aus, wenn Sie die Lernfunktion verwenden. Zunächst aktivieren und konfigurieren Sie die Funktion für die Verwendung. Sie können das Lernen für den gesamten Datenverkehr zu Ihren geschützten Webanwendungen verwenden, oder Sie können eine Liste von IPs (Liste Trusted Learning Clients hinzufügen ) konfigurieren, aus der die Lernfunktion Empfehlungen generieren muss. Zweitens, nachdem die Funktion aktiviert wurde und eine bestimmte Menge an Traffic auf Ihre geschützten Websites verarbeitet hat, überprüfen Sie die Liste der vorgeschlagenen Regeln und Lockerungen (gelernte Regeln) und markieren jede mit einer der folgenden Bezeichnungen:

  • Bearbeiten und bereitstellen. Die Regel wird in das Dialogfeld Bearbeiten gezogen, sodass Sie sie ändern können, und das geänderte Formular wird bereitgestellt.
  • Bereitstellen. Die unveränderte gelernte Regel wird auf die Liste der Regeln oder Lockerungen für diese Sicherheitsüberprüfung gesetzt.
  • Überspringen. Die gelernte Regel steht auf einer Liste von Regeln oder Lockerungen, die nicht eingesetzt werden. Die gelernte Regel wird beim Überspringen entfernt. Da sie jedoch nicht zu Entspannungen hinzugefügt werden, werden sie möglicherweise wieder gelernt.

Lernen wird nicht nur durchgeführt, wenn Entspannungen vorhanden sind, außer bei Feldformat-Regeln. Wenn Regeln übersprungen werden, werden sie nur aus der erlernten Datenbank entfernt. Da keine Entspannungen hinzugefügt werden, werden sie möglicherweise wieder gelernt. Wenn die Regeln bereitgestellt werden, werden sie aus der erlernten Datenbank entfernt und es werden auch Lockerungen für die Regeln hinzugefügt. Da Entspannungen hinzukommen, würden sie nicht wieder gelernt werden. Zum Schutz des Feldformats wird das Lernen unabhängig von Entspannungen durchgeführt.

Sie können zwar die Befehlszeilenschnittstelle für die Grundkonfiguration der Lernfunktion verwenden, die Funktion ist jedoch hauptsächlich für die Konfiguration über den Web App Firewall-Assistenten oder die GUI konzipiert. Sie können die Lernfunktion nur eingeschränkt konfigurieren, indem Sie die Befehlszeile verwenden.

Der Assistent integriert die Konfiguration von Lernfunktionen in die Konfiguration der Web App Firewall als Ganzes und ist daher die einfachste Methode zur Konfiguration dieser Funktion auf einer neuen Citrix ADC Appliance oder bei der Verwaltung einer einfachen Web App Firewall-Konfiguration. Der GUI-Visualisierer und die manuelle Oberfläche bieten beide direkten Zugriff auf alle erlernten Regeln für alle Sicherheitsüberprüfungen und sind daher häufig vorzuziehen, wenn Sie erlernte Regeln für viele Sicherheitsüberprüfungen überprüfen müssen.

Die Lerndatenbank ist auf 20 MB begrenzt, was erreicht wird, nachdem pro Sicherheitsüberprüfung, für die Lernen aktiviert ist, etwa 2.000 gelernte Regeln oder Entspannungen generiert wurden. Wenn Sie gelernte Regeln nicht regelmäßig überprüfen und entweder genehmigen oder ignorieren und dieses Limit erreicht ist, wird ein Fehler im NetScaler-Protokoll protokolliert und es werden keine gelernten Regeln mehr generiert, bis Sie die bestehenden gelernten Regeln und Lockerungen überprüft haben.

Wenn das Lernen aufhört, weil die Datenbank ihre Größenbeschränkung erreicht hat, können Sie das Lernen neu starten, indem Sie entweder die vorhandenen gelernten Regeln und Lockerungen überprüfen oder die Lerndaten zurücksetzen. Nachdem erlernte Regeln oder Lockerungen 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 ihre 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 Sicherheitsüberprüfung, die Sie in dieses Profil aufnehmen möchten, den Mindestschwellenwert oder den prozentualen Schwellenwert an. Der Mindestschwellenwert ist eine Ganzzahl, die die Mindestanzahl von Benutzersitzungen darstellt, die die Web App Firewall verarbeiten muss, bevor sie eine Regel oder Entspannung erlernt (Standard: 1). Der prozentuale Schwellenwert ist eine Ganzzahl, die den Prozentsatz der Benutzersitzungen darstellt, in denen die Web App Firewall ein bestimmtes Muster (URL, Cookie, Feld, Anlage oder Regelverletzung) beachten muss, bevor sie 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 oder der HTML SQL Injection-Sicherheitsüberprüfung aktiviert und konfiguriert. Dies ist eine geeignete Erstkonfiguration des Testbett-Lernens, 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
<!--NeedCopy-->

So setzen Sie die Lerneinstellungen mithilfe der Befehlszeilenschnittstelle auf die Standardeinstellungen zurück

Um jede benutzerdefinierte Konfiguration der Lerneinstellungen für das angegebene Profil und die Sicherheitsüberprüfung zu entfernen und die Lerneinstellungen auf ihre Standardeinstellungen 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 mithilfe der Befehlszeilenschnittstelle an

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

show appfw learningsettings <profileName>

So zeigen Sie nicht geprüfte gelernte Regeln oder Entspannungen für ein Profil mithilfe der Befehlszeilenschnittstelle an

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

show appfw learningdata <profileName> <securityCheck>

So entfernen Sie bestimmte nicht geprüfte gelernte Regeln oder Entspannungen mithilfe 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 Lockerungen für das Profil, die Sicherheitsüberprüfung HTML SQL Injection, entfernt, die für das Nachnamen-Formularfeld gelten.

rm appfw learningdata pr-basic -SQLInjection LastName
<!--NeedCopy-->

So entfernen Sie alle nicht überprüften gelernten Daten mithilfe 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 Profil und die Sicherheitsüberprüfung der HTML SQL Injection in eine Datei im Format mit kommagetrennten Werten (CSV) im Verzeichnis /var/learnt_data/ unter dem im Parameter -target angegebenen Dateinamen exportiert.

export appfw learningdata pr-basic SQLInjection -target sqli_ld
<!--NeedCopy-->

So konfigurieren Sie die Lernfunktion mithilfe 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 im Abschnitt Erweiterte Einstellungen auf Gelernte Regeln .
  4. Wählen Sie im Abschnitt “ Gelernte Regeln “ eine Sicherheitsüberprüfung aus und klicken Sie auf Einstellungen.
  5. Legen Sie auf der Seite Einstellungen für die Sicherheitsprüfung die folgenden Parameter fest:

    1. Mindestzahlschwelle. Je nachdem, welche Lerneinstellungen der Sicherheitsüberprüfung Sie konfigurieren, bezieht sich der Schwellenwert für die Mindestanzahl an Benutzersitzungen, die eingehalten werden müssen, auf die Mindestanzahl von zu beachtenden Anfragen oder auf die Mindestanzahl, wie oft ein bestimmtes Formularfeld eingehalten werden muss. bevor eine erlernte Entspannung erzeugt wird. Standard: 1

    2. Prozentsatz des Schwellenwerts. Je nachdem, welche Lerneinstellungen der Sicherheitsüberprüfung Sie konfigurieren, bezieht sich der Schwellenwert in Prozent auf den Prozentsatz der gesamten beobachteten Benutzersitzungen, die gegen die Sicherheitsüberprüfung verstoßen haben, auf den Prozentsatz der Anfragen oder auf den Prozentsatz, mit dem ein Formularfeld mit einem bestimmten Feldtyp übereinstimmte, vor erlernte Entspannung wird erzeugt. Standard: 0

  6. Klicken Sie auf OK und Schließen.

    Abschnitt Regel gelernt

  7. Klicken Sie auf Alle gelernten Daten entfernen, um alle gelernten Daten zu entfernen und die Lernfunktion zurückzusetzen, sodass sie ihre Beobachtungen von Anfang an erneut starten muss.

    Hinweis:

    Mit dieser Schaltfläche werden nur gelernte Empfehlungen entfernt, die nicht geprüft und entweder genehmigt oder übersprungen wurden. Erlernte Entspannungen, die akzeptiert und eingesetzt wurden, werden nicht beseitigt.

  8. Um die Lernmaschine auf den Datenverkehr von einer bestimmten Gruppe von IPs zu beschränken, klicken Sie auf Trusted Learning Clientsund fügen Sie die zu verwendenden IP-Adressen zur Liste hinzu.
    1. Um der Liste der vertrauenswürdigen Lernclients eine IP-Adresse oder einen IP-Adressbereich hinzuzufügen, klicken Sie auf Hinzufügen.
    2. Geben Sie im Dialogfeld Trusted 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 Ihre neue IP-Adresse oder Ihren neuen Bereich zur Liste hinzuzufügen.
    5. Um eine vorhandene IP-Adresse oder einen 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 Trusted Learning Clients hinzufügen.
    6. Um eine IP-Adresse oder einen Bereich zu deaktivieren oder zu aktivieren, diese jedoch in der Liste zu belassen, klicken Sie auf die IP-Adresse oder den Bereich, und klicken Sie dann entsprechend 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.
  9. Klicken Sie auf Schließen, um zur Seite Web App Firewall-Profil konfigurieren zurückzukehren.
  10. Klicken Sie auf Fertig.

So überprüfen Sie gelernte Regeln oder Entspannungen mithilfe 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 im Abschnitt Erweiterte Einstellungen auf Gelernte Regeln .
  4. Wählen Sie im Abschnitt “ Gelernte Regeln “ eine Sicherheitsüberprüfung aus und klicken Sie auf Einstellungen.
  5. Um die erlernten Daten hierarchisch als verzweigten Baum zu überprüfen, sodass Sie allgemeine Muster auswählen können, die vielen der erlernten Muster entsprechen, klicken Sie auf Visualizer.
  6. Wenn Sie sich entschieden haben, tatsächlich erlernte Muster zu überprüfen, führen Sie die folgenden Schritte aus.
  7. Wählen Sie die erste erlernte Entspannung aus und entscheiden Sie, wie Sie damit umgehen

    1. Um die Entspannung zu ändern und dann zu akzeptieren, klicken Sie auf Bearbeiten und bereitstellen, bearbeiten Sie den regulären Entspannungsausdruck, und klicken Sie dann auf OK.
    2. Um die Entspannung ohne Änderungen zu akzeptieren, klicken Sie auf Bereitstellen.
    3. Um die Entspannung aus der Liste zu entfernen, ohne sie bereitzustellen, klicken Sie auf Überspringen.
    4. Wiederholen Sie den vorherigen Schritt, um jede weitere gelernte Entspannung zu überprüfen.
  8. Klicken Sie auf Schließen, um zum Dialogfeld Gelernte Regeln verwalten zurückzukehren.
  9. Klicken Sie auf Fertig.

    Abschnitt Regel mit Visualizer gelernt