Citrix ADC

Websiteübergreifende HTML-Skripterstellung

Die Prüfung HTML Cross-Site Scripting (Cross-Site Scripting) untersucht sowohl die Header als auch die POST-Texte von Benutzeranfragen auf mögliche Cross-Site-Scripting-Angriffe. Wenn es ein siteübergreifendes Skript findet, ändert es entweder die Anforderung (transformiert), um den Angriff harmlos zu machen, oder blockiert die Anforderung.

Hinweis:

Die HTML Cross-Site Scripting (Cross-Site Scripting) Prüfung funktioniert nur für Inhaltstyp, Inhaltslänge usw. Es funktioniert nicht für Cookies. Stellen Sie außerdem sicher, dass die Option ‘CheckRequestHeaders’ in Ihrem Web Application Firewall-Profil aktiviert ist.

Um den Missbrauch der Skripte auf Ihren geschützten Websites zu verhindern, um die Sicherheit auf Ihren Websites zu verletzen, blockiert die HTML Cross-Site Scripting Prüfung Skripte, die dieselbe Ursprungsregelverletzen, die besagt, dass Skripte keinen Zugriff auf Inhalte auf einem Server, sondern auf dem Server, auf dem sie sich befinden, auf dem sie befindet. Jedes Skript, das gegen dieselbe Ursprungsregel verstößt, wird als siteübergreifendes Skript bezeichnet, und die Praxis, Skripts zum Zugriff auf oder Ändern von Inhalten auf einem anderen Server zu verwenden, wird als siteübergreifende Skripte bezeichnet. Der Grund, warum Cross-Site Scripting ein Sicherheitsproblem ist, ist, dass ein Webserver, der Cross-Site Scripting ermöglicht, mit einem Skript angegriffen werden kann, das sich nicht auf diesem Webserver befindet, sondern auf einem anderen Webserver befindet, z. B. einem, der vom Angreifer gehört und kontrolliert wird.

Leider haben viele Unternehmen eine große installierte Basis von JavaScript-verbesserten Webinhalten, die gegen dieselbe Ursprungsregel verstößt. Wenn Sie die HTML Cross-Site Scripting Prüfung auf einer solchen Site aktivieren, müssen Sie die entsprechenden Ausnahmen generieren, damit die Prüfung legitime Aktivitäten nicht blockiert.

Die Web App Firewall bietet verschiedene Aktionsoptionen für die Implementierung von HTML Cross-Site Scripting Schutz. Zusätzlich zu den Aktionen Blockieren, Protokollieren, Statistikenund Lernenhaben Sie auch die Möglichkeit, siteübergreifende Skripte zu transformieren, um einen Angriff durch Entitäten harmlos zu machen, die die Skript-Tags in der übermittelten Anforderung codiert. Sie können “Vollständige URLs für Cross-Site-Scripting-Parameter prüfen” konfigurieren, um anzugeben, ob Sie nicht nur die Abfrageparameter, sondern die gesamte URL überprüfen möchten, um Cross-Site-Scripting-Angriffe zu erkennen. Sie können den Parameter InspectQueryContentTypes so konfigurieren, dass der Anforderungsabfrageabschnitt für siteübergreifende Skriptangriffe für die spezifischen Inhaltstypen überprüft wird.

Sie können Entspannungen bereitstellen, um Fehlalarme zu vermeiden. Die Lernengine der Web App Firewall kann Empfehlungen zum Konfigurieren von Relaxationsregeln enthalten.

Für die Konfiguration eines optimierten HTML Cross-Site Scripting Protection für Ihre Anwendung stehen folgende Optionen zur Verfügung:

  • Block— Wenn Sie Block aktivieren, wird die Blockaktion ausgelöst, wenn die siteübergreifenden Skript-Tags in der Anforderung erkannt werden.
  • Log— Wenn Sie die Protokollfunktion aktivieren, werden bei der Prüfung Cross-Site Scripting Protokollmeldungen generiert, die die ausgeführten Aktionen angeben. Wenn der Block deaktiviert ist, wird für jedes Kopf- oder Formularfeld, in dem die Cross-Site-Scripting-Verletzung erkannt wurde, eine separate Protokollmeldung generiert. Allerdings wird nur eine Nachricht generiert, wenn die Anforderung blockiert wird. Ebenso wird eine Protokollnachricht pro Anforderung für den Transformationsvorgang generiert, selbst wenn websiteübergreifende Skript-Tags in mehrere Felder umgewandelt werden. 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 Versuche hinweisen, einen Angriff zu starten.
  • Statistiken— Wenn diese Option aktiviert ist, sammelt die Statistikfunktion Statistiken über Verstöße und Protokolle. Ein unerwarteter Anstieg im Statistikzähler deutet möglicherweise darauf hin, dass Ihre Anwendung angegriffen wird. Wenn legitime Anfragen blockiert werden, müssen Sie möglicherweise die Konfiguration erneut aufrufen, um festzustellen, ob Sie neue Relaxationsregeln konfigurieren oder die vorhandenen ändern müssen.
  • Lernen— Wenn Sie nicht sicher sind, welche Relaxationsregeln ideal für Ihre Anwendung geeignet sind, können Sie mit der Lernfunktion HTML Cross-Site-Skripting-Regelempfehlungen basierend auf den erlernten Daten generieren. Die Web App Firewall Learning Engine überwacht den Datenverkehr und bietet Lernempfehlungen 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.
  • Siteübergreifende Skripte transformieren— Wenn diese Option aktiviert ist, nimmt die Web App Firewall folgende Änderungen an Anforderungen vor, die mit der Prüfung für HTML Cross-Site Scripting übereinstimmen:
    • Linke eckige Klammer (<) zu HTML-Zeichenelement Äquivalent (<)
    • Rechtwinklige Klammer (>) zu HTML-Zeichenentität Äquivalent (>)

Dies stellt sicher, dass Browser nicht unsichere HTML-Tags interpretieren, wie zum Beispiel<script>, und damit bösartigen Code ausführen. Wenn Sie sowohl die Request-Header-Prüfung als auch die Transformation aktivieren, werden alle Sonderzeichen, die in Anforderungsheadern gefunden werden, wie oben beschrieben geändert. Wenn Skripte auf Ihrer geschützten Website websiteübergreifende Skriptfunktionen enthalten, Ihre Website jedoch nicht darauf angewiesen ist, dass diese Skripte ordnungsgemäß funktionieren, können Sie die Blockierung sicher deaktivieren und die Transformation aktivieren. Diese Konfiguration stellt sicher, dass kein rechtmäßiger Webverkehr blockiert wird, während potenzielle Cross-Site Scripting Angriffe gestoppt werden.

  • Überprüfen Sie vollständige URLs für siteübergreifende Skripterstellung— Wenn die Überprüfung vollständiger URLs aktiviert ist, prüft die Web App Firewall ganze URLs auf siteübergreifende HTML-Skripting-Angriffe, anstatt nur die Abfrageteile von URLs zu überprüfen.
  • Request-Header prüfen— Wenn die Request-Headerüberprüfung aktiviert ist, untersucht die Web App Firewall die Header von Anforderungen für HTML Cross-Site-Skripting-Angriffe anstelle von URLs. Wenn Sie die GUI verwenden, können Sie diesen Parameter auf der Registerkarte Einstellungen des Web App Firewall Profils aktivieren.
  • InspectQueryContentTypes — Wenn die Anforderungsabfrageprüfung konfiguriert ist, untersucht die App Firewall die Abfrage von Anforderungen für standortübergreifende Skriptangriffe für die spezifischen Inhaltstypen. Wenn Sie die GUI verwenden, können Sie diesen Parameter auf der Registerkarte Einstellungen des App-Firewall-Profils konfigurieren.

Wichtig

Als Teil der Streaming-Änderungen hat sich die Web App Firewall Verarbeitung der Cross-Site-Skript-Tags geändert. Diese Änderung gilt für 11.0 Builds ab. Diese Änderung ist auch relevant für die Erweiterungsbuilds von 10.5.e, die das anforderungsseitige Streaming unterstützen. In früheren Versionen wurde das Vorhandensein einer offenen Klammer (<), or close bracket (>) oder sowohl offener als auch geschlossener Klammern (<>) als siteübergreifende Skriptverletzung gekennzeichnet. Das Verhalten hat sich in den Builds geändert, die Unterstützung für das anforderungsseitige Streaming enthalten. Nur das Close-Klammerzeichen (>) wird nicht mehr als Angriff betrachtet. Anfragen werden auch dann blockiert, wenn ein offenes Klammerzeichen (<) vorhanden ist, und werden als Angriff betrachtet. Der Cross-Site-Skripting-Angriff wird gekennzeichnet.

Siteübergreifende Skripterstellung Feinkörnige Relaxationen

Die Web App Firewall bietet Ihnen die Möglichkeit, ein bestimmtes Formularfeld, eine Kopfzeile oder ein Cookie von der websiteübergreifenden Skriptprüfung auszunehmen. Sie können die Inspektion für eines oder mehrere dieser Felder vollständig umgehen, indem Sie Relaxationsregeln konfigurieren.

Mit der Web App Firewall können Sie durch Feinabstimmung der Entspannungsregeln strengere Sicherheit implementieren. Eine Anwendung erfordert möglicherweise die Flexibilität, um bestimmte Muster zuzulassen, aber die Konfiguration einer Relaxationsregel, um die Sicherheitsprüfung zu umgehen, kann die Anwendung anfällig für Angriffe machen, da das Zielfeld von der Prüfung für standortübergreifende Skriptangriffsmuster ausgenommen ist. Die websiteübergreifende Scripting feinkörnige Entspannung bietet die Möglichkeit, bestimmte Attribute, Tags und Muster zuzulassen. Der Rest der Attribute, Tags und Muster wird blockiert. Beispielsweise verfügt die Web App Firewall derzeit über einen Standardsatz von mehr als 125 abgelehnten Mustern. Da Hacker diese Muster bei standortübergreifenden Skriptangriffen verwenden können, kennzeichnet die Web App Firewall sie als potenzielle Bedrohungen. Sie können ein oder mehrere Muster entspannen, die für den bestimmten Standort als sicher angesehen werden. Der Rest der potenziell gefährlichen Cross-Site-Skriptmuster wird weiterhin auf den Zielort überprüft und löst weiterhin die Sicherheitsüberprüfungen aus. Sie haben jetzt viel strengere Kontrolle.

Die in Relaxationen verwendeten Befehle verfügen über optionale Parameter für Werttyp und Wertausdruck. Der Werttyp kann leer gelassen werden, oder Sie haben die Möglichkeit, Tag oder Attribut oder Muster auszuwählen. Wenn Sie den Werttyp leer lassen, wird das konfigurierte Feld der angegebenen URL von der Überprüfung Cross-Site Scripting ausgenommen. Wenn Sie einen Werttyp auswählen, müssen Sie einen Wertausdruck angeben. Sie können angeben, ob es sich bei dem Wertausdruck um einen regulären Ausdruck oder um eine Literalzeichenfolge handelt. Wenn die Eingabe mit der Liste Zulässige und Verweigerte abgeglichen wird, werden nur die angegebenen Ausdrücke, die in den Relaxationsregeln konfiguriert sind, ausgenommen.

Die Web App Firewall verfügt über die folgenden Siteübergreifenden Skripterstellungslisten:

  1. XSS Erlaubte Attribute: Es gibt 52 Standardwerte zulässige Attribute, wie, abbr, accesskey, align, alt, axis, bgcolor, border, cell padding, Zellabstand, char, charoff, charset und so weiter
  2. XSS Erlaubte Tags: Es gibt 47 Standardwerte zulässige Tags, wie address, basefont, bgsound, big, blockquote, bg, br, caption, center, cite, dd, del und so weiter
  3. XSS verweigerte Muster: Es gibt 129 Standardwerte verweigerte Muster, wie, fsCommand, javascript:, onAbort, onActivate und so weiter

Warnung

Web App Firewall Aktions-URLs sind reguläre Ausdrücke. Beim Konfigurieren von siteübergreifenden HTML-Relaxationsregeln für Skripte können Sie Nameund Value Expressionals Literal oder RegEx angeben. Reguläre Ausdrücke sind leistungsstark. Vor allem, wenn Sie mit regulären Ausdrücken im PCRE-Format nicht vertraut sind, überprüfen Sie alle regulären Ausdrücke, die Sie schreiben. Stellen Sie sicher, dass sie genau die Regel definieren, die Sie als Ausnahme hinzufügen möchten, und nichts anderes. Die unvorsichtige Verwendung von Platzhaltern und insbesondere der Punkt-Sternchen (.*) -Metazeichen/Platzhalterkombination kann zu Ergebnissen führen, die Sie nicht wünschen, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder das Erlauben eines Angriffs, den die Cross-Site Scripting Prüfung sonst blockiert hätte.

Zu berücksichtigende Punkte:

  • Value-Ausdruck ist ein optionales Argument. Ein Feldname hat möglicherweise keinen Werteausdruck.
  • Ein Feldname kann an mehrere Wertausdrücke gebunden werden.
  • Wertausdrücken sollten einen Werttyp zugewiesen werden. Der siteübergreifende Scripting-Werttyp kann sein: 1) Tag, 2) Attribut oder 3) Pattern.
  • Sie können mehrere Relaxationsregeln pro Feldname/URL-Kombination haben
  • Bei den Formularfeldnamen und den Aktions-URLs wird die Groß- und Kleinschreibung nicht beachtet.

Verwenden der Befehlszeile zum Konfigurieren der HTML Cross-Site Scripting Prüfung

So konfigurieren Sie HTML Cross-Site Scripting Überprüfungsaktionen und andere Parameter mit der Befehlszeile

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie die folgenden Befehle eingeben, um die HTML Cross-Site Scripting Check zu konfigurieren:

  • appfw Profil setzen Parameterbeschreibungen unten auf der Seite.
  • <name> -crossSiteScriptingAction (([block] [learn] [log] [stats]) | [**none**])
  • appfw Profil setzen Parameterbeschreibungen unten auf der Seite.
  • <name> **-crossSiteScriptingTransformUnsafeHTML** (ON | OFF)
  • appfw Profil setzen Parameterbeschreibungen unten auf der Seite.
  • <name> -crossSiteScriptingCheckCompleteURLs (ON | OFF)
  • appfw Profil setzen Parameterbeschreibungen unten auf der Seite.
  • <name> - checkRequestHeaders (ON | OFF) Parameterbeschreibungen unten auf der Seite.
  • <name> - CheckRequestQueryNonHtml (ON | OFF) Parameterbeschreibungen unten auf der Seite.

So konfigurieren Sie eine HTML Cross-Site Scripting Check-Relaxationsregel mit der Befehlszeile

Verwenden Sie den Befehl bind oder unbind, um die Bindung wie folgt hinzuzufügen oder zu löschen:

  • bind appfw profile <name> -crossSiteScripting <String> [isRegex (REGEX | NOTREGEX)] <formActionURL> [-location <location>] [-valueType (Tag|Attribute|Pattern) [<valueExpression>] [-isValueRegex (REGEX | NOTREGEX) ]]
  • unbind appfw profile <name> -crossSiteScripting <String> <formActionURL> [-location <location>] [-valueType (Tag |Attribute|Pattern) [<valueExpression>]]

Verwenden der GUI zum Konfigurieren der HTML-Site-Cross-Site-Skriptprüfung

In der grafischen Benutzeroberfläche können Sie das Kontrollkästchen HTML Cross-Site Scripting im Bereich für das Profil konfigurieren, das Ihrer Anwendung zugeordnet ist.

So konfigurieren oder ändern Sie die HTML Cross-Site Scripting Prüfung 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 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:

a. Wenn Sie Aktionen zum Blockieren, Protokollieren, Statistikenund Lernen für HTML Cross-Site Scripting aktivieren oder deaktivieren möchten, können Sie die Kontrollkästchen in der Tabelle aktivieren oder deaktivieren, auf OKund dann auf Speichern und Schließen zu Schließen Sie den Bereich Sicherheitsprüfung.

b. Wenn Sie zusätzliche Optionen für diese Sicherheitsprüfung konfigurieren möchten, doppelklicken Sie auf HTML Cross-Site Scripting, oder wählen Sie die Zeile aus und klicken Sie auf Aktionseinstellungen, um die folgenden Optionen anzuzeigen:

Websiteübergreifende Skripte transformieren — Transformieren Sie unsichere Skript-Tags.

Überprüfen Sie vollständige URLs für siteübergreifende Skripterstellung— Anstatt nur den Abfrageteil der URL zu überprüfen, überprüfen Sie die vollständige URL auf siteübergreifende Skriptverletzungen.

Nachdem Sie eine der oben genannten Einstellungen geändert 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 Sicherheitsüberprüfungen vorgenommen haben, und klicken Sie dann auf Speichern und Schließen, um den Bereich Sicherheitsprüfung zu schließen.

Klicken Sie im Bereich Erweiterte Einstellungen auf Profileinstellungen, um die Einstellung Überprüfungsanforderung zu aktivieren oder zu deaktivieren. Aktivieren oder deaktivieren Sie unter Allgemeine Einstellungen das Kontrollkästchen Anforderungskopfzeilen überprüfen. Klicken Sie auf OK. Sie können entweder das X-Symbol oben rechts im Bereich Profileinstellungen verwenden, um diesen Abschnitt zu schließen. Wenn Sie die Konfiguration dieses Profils abgeschlossen haben, können Sie auf Fertig klicken, um zur Anwendungs-Firewall > Profil zurückzukehren.

Klicken Sie im Bereich Erweiterte Einstellungen auf Profileinstellungen, um die Einstellung Abfrage nicht HTML überprüfen zu aktivieren oder zu deaktivieren. Aktivieren oder deaktivieren Sie unter Allgemeine Einstellungen das Kontrollkästchen Abfrage Nicht-HTML überprüfen. Klicken Sie auf OK. Sie können entweder das X-Symbol oben rechts im Bereich Profileinstellungen verwenden, um diesen Abschnitt zu schließen oder, wenn Sie die Konfiguration dieses Profils abgeschlossen haben, klicken Sie auf Fertig, um zur App-Firewall > Profil zurückzukehren.

So konfigurieren Sie eine HTML Cross-Site-Scripting-Relaxationsregel 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.
  3. Doppelklicken Sie in der Tabelle Relaxationsregeln auf den Eintrag HTML Cross-Site Scripting, oder wählen Sie ihn aus, und klicken Sie auf Bearbeiten.
  4. Führen Sie im Dialogfeld HTML Cross-Site Scripting Relaxationsregeln die Vorgänge Hinzufügen, Bearbeiten, Löschen, Aktivieren oder Deaktivieren für Relaxationsregeln aus.

Hinweis:

Wenn Sie eine neue Regel hinzufügen, wird das Feld Wertausdruck nur angezeigt, wenn Sie im Feld Werttyp die Option Tag oder Attribut oder Muster auswählen.

So verwalten Sie HTML Cross-Site Scripting Relaxationsregeln mithilfe des Visualizers

Um eine konsolidierte Ansicht aller Relaxationsregeln zu erhalten, können Sie die Zeile HTML Cross-Site Scripting in der Tabelle Relaxationsregeln 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.

So zeigen Sie die Cross-Site Scripting Patterns mit der GUI an oder passen Sie sie an

Sie können die GUI verwenden, um die Standardliste der Siteübergreifenden Skripting-Attribute oder zulässigen Tags anzuzeigen oder anzupassen. Sie können auch die Standardliste der Siteübergreifenden Skripterstellung verweigerter Muster anzeigen oder anpassen.

Die Standardlisten werden unter Anwendungsfirewall > Signaturen > Standardsignaturen angegeben. Wenn Sie kein Signaturobjekt an Ihr Profil binden, wird die standardmäßige siteübergreifende Skripterstellung erlaubt und verweigert, die im Objekt Standardsignaturen angegeben ist, vom Profil für die Verarbeitung der Cross-Site Scripting Sicherheitsüberprüfung verwendet. Die Tags, Attribute und Patterns, die im Standardsignaturobjekt angegeben sind, sind schreibgeschützt. Sie können sie nicht bearbeiten oder ändern. Wenn Sie diese ändern oder ändern möchten, erstellen Sie eine Kopie des Standardsignaturen-Objekts, um ein Benutzerdefiniertes Signaturobjekt zu erstellen. Nehmen Sie Änderungen an den zulässigen oder abgelehnten Listen im neuen Benutzerdefinierten Signaturobjekt vor, und verwenden Sie dieses Signaturobjekt in Ihrem Profil, das den Datenverkehr verarbeitet, für den Sie diese angepassten zulässigen und verweigerten Listen verwenden möchten.

Weitere Informationen zu Signaturen.

  1. So zeigen Sie standardmäßige Cross-Site-Skriptmuster an:

a. Navigieren Sie zu Anwendungsfirewall > Signaturen, wählen Sie Standardsignaturen aus, und klicken Sie auf Bearbeiten . Klicken Sie dann auf SQL/XSS-Muster verwalten.

Die Tabelle SQL/XSS-Pfade verwalten enthält die folgenden drei Zeilen, die sich auf das Cross-Site-Scripting beziehen:

xss/allowed/attribute

xss/allowed/tag

xss/denied/pattern

b. Wählen Sie eine Zeile aus, und klicken Sie auf Elemente verwalten, um die entsprechenden siteübergreifenden Skriptelemente (Tag, Attribut, Muster) anzuzeigen, die von der Web App Firewall Cross-Site Scripting Prüfung verwendet werden.

  1. So passen Sie XSS-Elemente an: Sie können das benutzerdefinierte Signaturobjekt bearbeiten, um das zulässige Tag, die zulässigen Attribute und die abgelehnten Muster anzupassen. Sie können neue Einträge hinzufügen oder vorhandene entfernen.

a. Navigieren Sie zu Application Firewall > Signaturen, markieren Sie die benutzerdefinierte Zielsignatur, und klicken Sie auf Bearbeiten. Klicken Sie auf SQL/XSS-Muster verwalten, um die Tabelle SQL/XSS-Pfade verwalten anzuzeigen.

b. Wählen Sie die Cross-Site-Ziel-Skriptzeile aus.

i. Klicken Sie auf Elemente verwalten, um das entsprechende siteübergreifende Skriptelement Hinzuzufügen, zu Bearbeiten oder zu Entfernen .

ii. Klicken Sie auf Entfernen, um die ausgewählte Zeile zu entfernen.

Warnung

Sie müssen vorsichtig sein, bevor Sie ein standardmäßiges Cross-Site-Scripting-Element entfernen oder ändern oder den XSS-Pfad löschen, um die gesamte Zeile zu entfernen. Die Signaturregeln und die Cross-Site Scripting Sicherheitsprüfung sind bei der Erkennung von Angriffen zum Schutz Ihrer Anwendungen auf diese Elemente angewiesen. Das Anpassen der XSS-Elemente kann Ihre Anwendung anfällig für Cross-Site Scripting Angriffe machen, wenn das erforderliche Muster während der Bearbeitung entfernt wird.

Verwenden der Lernfunktion mit der HTML Cross-Site Scripting Check

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 erlernte Regel als HTML Cross-Site Scripting Relaxationsregel bereitstellen.

Verbesserung des HTML Cross-Site Scripting Learning— In Version 11.0 der Citrix ADC -Software wurde eine Verbesserung des Lernens der Web App Firewall eingeführt. Um feinkörniges HTML Cross-Site Scripting Relaxation bereitzustellen, bietet die Web App Firewall ein fein abgestimmtes HTML Cross-Site Scripting Lernen. Die Lern-Engine gibt Empfehlungen bezüglich des beobachteten Werttyps (Tag, Attribut, Muster) und des entsprechenden Werteausdrucks, der in den Eingabefeldern beobachtet wird. Zusätzlich zur Überprüfung der blockierten Anforderungen, um festzustellen, ob die aktuelle Regel zu restriktiv ist und gelockert werden muss, können Sie die von der Lernmaschine generierten Regeln überprüfen, um zu bestimmen, welche Werttypen und Wertausdrücke Verletzungen auslösen und in Relaxationsregeln behandelt werden müssen.

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 bereitgestellte Relaxationsregel versehentlich alle Felder von der HTML Cross-Site Scripting Inspektion lockern. Tipp

Siteübergreifende Skript-Tags, die länger als 12 Zeichen sind, werden nicht korrekt gelernt oder protokolliert.

Wenn Sie eine größere Taglänge zum Lernen benötigen, können Sie ein großes, nicht erscheinendes Tag in der AS_XSS_ALLOWED_TAGS_LIST für die Länge ‘x’ hinzufügen.

So zeigen Sie gelernte Daten mit der Befehlszeilenschnittstelle an oder verwenden

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein:

  • show appfw learningdata <profilename> crossSiteScripting
  • rm appfw learningdata <profilename> -crossSiteScripting <string> <formActionURL> [<location>] [<valueType> <valueExpression>]
  • export appfw learningdata <profilename> **crossSiteScripting*

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 HTML Cross-Site Scripting in der Tabelle Gelernte Regeln auswählen und darauf doppelklicken, um auf die erlernten Regeln zuzugreifen. In der Tabelle werden die Spalten Feldname,Action-URL, Werttyp, Wert und Treffer angezeigt. 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 erlernten Relaxationen anzuzeigen, indem Sie den Eintrag HTML Cross-Site Scripting in der Tabelle “Gelernte Regeln” auswählen und auf Visualizer klicken, um eine konsolidierte Ansicht aller gelernten Verletzungen zu erhalten. Der Visualizer macht es 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 HTML Cross-Site Scripting Check

Wenn die Protokollaktion aktiviert ist, werden die Verletzungen der HTML Cross-Site Scripting Sicherheitsprüfung im Überwachungsprotokoll als APPFW_XSS-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 ziehen Sie die ns.logs im Ordner /var/log/, um auf die Protokollmeldungen zu den HTML Cross-Site Scripting Verletzungen zuzugreifen:

Shell tail -f /var/log/ns.log | grep APPFW_XSS

Beispiel für eine Site-Cross-Site-Skripting-Sicherheitsüberprüfungsprotokollnachricht im CEF-Protokollformat

Jul 11 00:45:51 <local0.info> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_XSS|6|src=10.217.253.62 geolocation=Unknown spt=4840 method=GET request=http://aaron.stratum8.net/FFC/CreditCardMind.html?abc=%3Cdef%3E msg=Cross-site script check failed for field abc="Bad tag: def" cn1=133 cn2=294 cs1=pr_ffc cs2=PPE1 cs3=eUljypvLa0BbabwfGVE52Sewg9U0001 cs4=ALERT cs5=2015 act=not blocked

Beispiel für eine Site-Cross-Site-Skripting-Sicherheitsüberprüfungsprotokollnachricht im systemeigenen Protokollformat mit Transformationsaktion

Jul 11 01:00:28 <local0.info> 10.217.31.98 07/11/2015:01:00:28 GMT ns 0-PPE-0 : default APPFW APPFW_XSS 132 0 :  10.217.253.62 392-PPE0 eUljypvLa0BbabwfGVE52Sewg9U0001 pr_ffc http://aaron.stratum8.net/FFC/login.php?login_name=%3CBOB%3E&passwd=&drinking_pref=on &text_area=&loginButton=ClickToLogin&as_sfid=AAAAAAVFqmYL68IGvkrcn2pzehjfIkm5E6EZ9FL8YLvIW_41AvAATuKYe9N7uGThSpEAxbb0iBx55jyvqOZNiVK_XwEPstMYvWHxfUWl62WINwRMrKsEDil-FC4llF Cross-site script special characters seen in fields <transformed>

So greifen Sie mit der GUI auf die Protokollmeldungen zu

Die Citrix GUI enthält ein 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 HTML Cross-Site Scripting, und klicken Sie auf Protokolle . Wenn Sie direkt über die HTML Cross-Site Scripting Prüfung des Profils auf die Protokolle zugreifen, filtert die GUI die Protokollmeldungen aus und zeigt nur die Protokolle an, die diese Sicherheitsüberprüfungsverletzungen betreffen.
  • Sie können auch auf den Syslog Viewer zugreifen, indem Sie zu Citrix ADC > System > Auditing navigieren. Klicken Sie im Abschnitt Überwachungsmeldungen auf den Link Syslog-Meldungen, um den Syslog-Viewer anzuzeigen, der alle Protokollmeldungen einschließlich anderer Protokolle für Sicherheitsüberprüfungen anzeigt. Dies ist nützlich für das Debuggen, wenn während der Anforderungsverarbeitung mehrere Sicherheitsüberprüfungsverletzungen ausgelöst werden können.
  • Navigieren Sie zu Anwendungsfirewall > Richtlinien > Überwachung. Klicken Sie im Abschnitt Überwachungsmeldungen auf den Link Syslog-Meldungen, um den Syslog-Viewer anzuzeigen, der alle Protokollmeldungen einschließlich anderer Protokolle für Sicherheitsüberprüfungen anzeigt.

Der HTML-basierte Syslog Viewer bietet verschiedene Filteroptionen, um nur die Protokollmeldungen auszuwählen, die für Sie von Interesse sind. Um Protokollmeldungen für die Prüfung Cross-Site Scripting auszuwählen, filtern Sie, indem Sie APPFW in den Dropdown-Optionen für Modul auswählen. Die Liste Ereignistyp bietet eine Reihe von Optionen, um Ihre Auswahl weiter zu verfeinern. Wenn Sie z. B. das Kontrollkästchen APPFW_XSS aktivieren und auf die Schaltfläche Übernehmen klicken, werden im Syslog-Viewer nur Protokollmeldungen angezeigt, die sich auf die Verletzungen der Sicherheitsprüfung von HTML Cross-Site Scripting beziehen.

Wenn Sie den Cursor in der Zeile für eine bestimmte Protokollmeldung platzieren, werden unter der Protokollmeldung mehrere Optionen wie Modul, Ereignistyp, Ereignis-ID, Client-IP usw. angezeigt. Sie können eine dieser Optionen auswählen, um die entsprechenden Informationen in der Protokollmeldung hervorzuheben.

Klicken Sie zum Bereitstellen der Funktionalität ist nur in der grafischen Benutzeroberfläche verfügbar. Sie können den Syslog Viewer verwenden, um nicht nur die Protokolle anzuzeigen, sondern auch HTML Cross-Site Scripting Relaxationsregeln basierend auf den Protokollmeldungen für die Sicherheitsüberprüfungen der Web App Firewall bereitzustellen. Die Protokollmeldungen müssen für diesen Vorgang im CEF-Protokollformat vorliegen. Klicken Sie hier, um die Funktionalität bereitzustellen, ist nur für Protokollmeldungen verfügbar, die durch die Aktion Blockieren (oder nicht blockieren) generiert werden. Sie können keine Relaxationsregel für eine Protokollmeldung über den Transformationsvorgang bereitstellen.

Um eine Relaxationsregel aus dem Syslog-Viewer bereitzustellen, wählen Sie die Protokollmeldung aus. In der oberen rechten Ecke des Felds Syslog-Viewer der ausgewählten Zeile wird ein Kontrollkästchen angezeigt. Aktivieren Sie das Kontrollkästchen, und wählen Sie dann eine Option aus der Liste Aktion aus, um die Relaxationsregel bereitzustellen. Bearbeiten und Bereitstellen, Bereitstellen und Alle bereitstellen sind als Aktionsoptionen verfügbar.

Die HTML-Site-Cross-Site-Skripting-Regeln, die mit der Option Zum Bereitstellen klicken bereitgestellt werden, enthalten die Empfehlungen für die Feinkorn-Entspannung nicht.

So verwenden Sie Click to Deployment-Funktionalität in der GUI

  1. Wählen Sie in den Moduloptionen im Syslog-Viewer APPFW aus.
  2. Wählen Sie APP_XSS als Ereignistyp aus, um entsprechende Protokollmeldungen zu filtern.
  3. Aktivieren Sie das Kontrollkästchen, um die Regel zu identifizieren, die bereitgestellt werden soll.
  4. Verwenden Sie die Dropdownliste Aktion mit Optionen, um die Relaxationsregel bereitzustellen.
  5. Stellen Sie sicher, dass die Regel im entsprechenden Abschnitt zur Relaxationsregel angezeigt wird.

Statistiken für die HTML Cross-Site Scripting Verstöße

Wenn die Aktion Statistik aktiviert ist, wird der Leistungsindikator für die HTML Cross-Site Scripting Prüfung erhöht, wenn die Web App Firewall eine Aktion für diese Sicherheitsprüfung durchführt. Die Statistiken werden für Rate und Gesamtanzahl für Traffic, Verletzungen und Protokolle gesammelt. Die Größe eines Inkrements des Protokollzählers kann abhängig von den konfigurierten Einstellungen variieren. Wenn beispielsweise die Blockaktion aktiviert ist, erhöht die Anforderung für eine Seite, die 3 HTML Cross-Site Scripting Verletzungen enthält, den Statistikindikator um eins, da die Seite blockiert wird, sobald die erste Verletzung erkannt wird. Wenn der Block jedoch deaktiviert ist, erhöht die Verarbeitung derselben Anforderung den Statistikindikator für Verletzungen und Protokolle um drei, da jede Verletzung eine separate Protokollmeldung generiert.

So zeigen Sie HTML Cross-Site Scripting 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 HTML Cross-Site Scripting Statistiken mit der GUI an

  1. Navigieren Sie zu Sicherheit > Anwendungsfirewall > Profile > Statistik .
  2. Greifen Sie im rechten Fensterausschnitt auf die Statistikverknüpfung zu.
  3. Verwenden Sie die Bildlaufleiste, um die Statistiken über HTML Cross-Site Scripting Verletzungen und Protokolle anzuzeigen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.

Highlights

Beachten Sie die folgenden Punkte zur HTML Cross-Site Scripting Prüfung:

  • Integrierte Unterstützung für HTML Cross-Site Scripting Angriffsschutz—Die Citrix Web App Firewall schützt vor Cross-Site Scripting Angriffen, indem sie eine Kombination von zulässigen Attributen und Tags sowie verweigerte Muster in der empfangenen Nutzlast überwacht. Alle integrierten standardmäßigen zulässigen Tags, zulässigen Attribute und verweigerten Muster, die von der Cross-Site-Scripting-Überprüfung verwendet werden, sind in der Datei /netscaler/default_custom_settings.xml angegeben.
  • Customization: Sie können die Standardliste mit Tags, Attributen und Mustern ändern, um die Sicherheitsprüfung Cross-Site Scripting an die spezifischen Anforderungen Ihrer Anwendung anzupassen. Erstellen Sie eine Kopie des Standardsignaturobjekts, ändern Sie vorhandene Einträge oder fügen Sie neue hinzu. Binden Sie dieses Signaturobjekt an Ihr Profil, um die benutzerdefinierte Konfiguration zu nutzen.
  • Hybrides Sicherheitsmodell—Sowohl Signaturen als auch tiefer Sicherheitsschutz verwenden die SQL/XSS-Muster, die im Signaturobjekt angegeben sind, das an das Profil gebunden ist. Wenn kein Signaturobjekt an das Profil gebunden ist, werden die SQL/XSS-Muster verwendet, die im Standardsignaturobjekt vorhanden sind.
  • Transform—Beachten Sie Folgendes zum Transformationsvorgang:

Der Transformationsvorgang funktioniert unabhängig von den anderen Einstellungen für Cross-Site Scripting Aktionen. Wenn Transformation aktiviert ist und Blockieren, Protokollieren, Statistiken und Lerndaten deaktiviert sind, werden Cross-Site-Script-Tags transformiert.

Wenn die Blockaktion aktiviert ist, hat sie Vorrang vor der Transformationsaktion.

  • Feinkörnige Entspannung und Lernen— Optimieren Sie die Relaxationsregel, um eine Teilmenge von Cross-Site-Scripting-Elementen von der Sicherheitsprüfung zu lockern, aber den Rest zu erkennen. Die Lern-Engine empfiehlt einen bestimmten Werttyp und Wertausdrücke basierend auf den beobachteten Daten.
  • Klicken Sie auf Bereitstellen— Wählen Sie im Syslog Viewer eine oder mehrere siteübergreifende Skripting-Verstöße aus, und stellen Sie sie als Relaxationsregeln bereit.
  • Charset—Der Standard-Zeichensatz für das Profil sollte je nach Bedarf der Anwendung festgelegt werden. Standardmäßig ist der Profil-Zeichensatz auf Englisch US (ISO-8859-1) eingestellt. Wenn eine Anforderung ohne den angegebenen Zeichensatz empfangen wird, verarbeitet die Web App Firewall die Anforderung so, als ob sie ISO-8859-1 ist. Das offene Klammerzeichen (<) or the close bracket character (>) wird nicht als XSS-Tags interpretiert, wenn diese Zeichen in anderen Zeichensätzen codiert sind. Wenn eine Anforderung beispielsweise eine UTF-8-Zeichenkette “%uff1cscript%uff1eenthält, der Zeichensatz jedoch nicht auf der Anforderungsseite angegeben ist, wird die Cross-Site-Skripterstellungsverletzung möglicherweise nur ausgelöst, wenn der Standardzeichensatz für das Profil als Unicode angegeben ist.