Websiteübergreifende HTML-Skripterstellung

Die HTML Cross-Site Scripting (XSS) Prüfung untersucht sowohl die Header als auch die POST-Bodys von Benutzeranforderungen 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.

Um den Missbrauch der Skripte auf Ihren geschützten Websites zu verhindern, um die Sicherheit auf Ihren Websites zu verletzen, blockiert das Kontrollkästchen HTML Cross-Site Scripting Skripts, die gegen dieselbe Ursprungsregelverstoßen, die besagt, dass Skripte nicht auf Inhalte auf einem Server, sondern auf dem Server, auf dem sie sich befinden, zugreifen oder ändern sollten. 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 Check complete URLs for Cross-Site Scripting Parameter konfigurieren, um anzugeben, ob Sie nicht nur die Abfrageparameter, sondern die gesamte URL überprüfen möchten, um XSS-Angriff zu erkennen. Sie können den Parameter InspectQueryContentTypes so konfigurieren, dass der Anforderungsabfrageteil auf XSS-Angriff 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 den Block aktivieren, wird die Blockaktion ausgelöst, wenn die XSS-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 jeden Header oder Formularfeld, in dem die XSS-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 XSS-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 besuchen, um zu sehen, 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 siteübergreifende Skriptfunktionen enthalten, Ihre Website jedoch nicht darauf angewiesen ist, dass diese Skripts ordnungsgemäß funktionieren, können Sie das Blockieren 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

Im Rahmen der Streaming-Änderungen hat sich die Verarbeitung der Web App Firewall der Cross-Site Scripting 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.

XSS Feinkörnige Entspannungen

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 eine engere Sicherheit durch Feinabstimmung der Relaxationsregeln 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. Die restlichen Attribute, Tags und Muster sind 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 Ort als sicher gelten. Der Rest der potenziell gefährlichen XSS-Muster wird weiterhin auf den Zielort überprüft und löst weiterhin die Sicherheitsüberprüfungsverstöße 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 integrierten XSS-Listen:

  1. XSS Zulässige Attribute: Es gibt 52 standardmäßig zulässige Attribute, wie abbr, accesskey, align, alt, axis, bgcolor, border, cellpadding, Zellabstand, char, charoff, charsetusw.
  2. XSS Zulässige Tags: Es gibt 47 standardmäßig zulässige Tags, wie Adresse, basefont, bgsound, big, blockquote, bg, br, caption, center, zitieren, dd, delusw.
  3. XSS Denied Patterns: Es gibt 129 standardmäßig abgelehnte Muster, wie FSCommand, javascript:, onAbort, onActivateusw.

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 XSS-Werttyp kann sein: 1) Tag, 2) Attribut oder 3) Pattern.
  • Sie können mehrere Relaxationsregeln pro Feldname/URL-Kombination haben
  • Die Namen der Formularfelder und die Aktions-URLs werden nicht zwischen Groß- und Kleinschreibung unterschieden.

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 festlegen Parameterbeschreibungen unten auf der Seite.)
  • <name> -crossSiteScriptingAction (([block] [learn] [log] [stats]) | [**none**])
  • Appfw-Profil festlegen Parameterbeschreibungen unten auf der Seite.
  • <name> **-crossSiteScriptingTransformUnsafeHTML** (ON | OFF)
  • Appfw-Profil festlegenParameterbeschreibungen unten auf der Seite.
  • <name> -crossSiteScriptingCheckCompleteURLs (ON | OFF)
  • Appfw-Profil festlegenParameterbeschreibungen 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 nur Block, Protokoll, Statistik und Lern-Aktionen für das Cross-Site HTML Scripting aktivieren oder deaktivieren möchten, können Sie die Kontrollkästchen in der Tabelle aktivieren oder deaktivieren, klicken Sie auf OK, und klicken Sie dann auf Speichern und Schließen bei 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 Sicherheitsprü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 Regel zu bearbeiten. Sie können eine Gruppe von Regeln auch aktivieren oder deaktivieren, indem Sie einen Knoten auswählen und auf die entsprechenden Schaltflächen im Relaxationsvisualizer klicken.

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 zulässigen XSS-Attribute oder zulässigen Tags anzuzeigen oder anzupassen. Sie können auch die Standardliste der XSS-abgelehnten Muster anzeigen oder anpassen.

Die Standardlisten werden unter Anwendungsfirewall > Signaturen > Standardsignaturen angegeben. Wenn Sie kein Signaturobjekt an Ihr Profil binden, wird die im Standardsignaturobjekt angegebene Standardliste XSS zulässig und verweigert vom Profil für die Verarbeitung der Sicherheitsprüfung Cross-Site Scripting 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 Standardsignaturobjekts, 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 Unterschriften.

  1. So zeigen Sie Standard-XSS-Muster 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.

In der Tabelle “SQL/XSS-Pfade verwalten “ werden folgende drei Zeilen angezeigt, die sich auf XSS 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 XSS-Elemente (Tag, Attribut, Muster) anzuzeigen, die von der Web App Firewall Cross-Site Scripting Prüfung verwendet werden.

  1. So passen Sie XSS-Elementean: 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 Anwendungsfirewall > Signaturen, markieren Sie die Zielsignatur Benutzerdefinierte Signatur, und klicken Sie auf Bearbeiten . Klicken Sie auf SQL/XSS-Musterverwalten, um die Tabelle SQL/XSS-Pfade verwalten anzuzeigen.

b. Wählen Sie die XSS-Zielzeile aus.

i. Klicken Sie auf Elemente verwalten, um das entsprechende XSS-Element hinzuzufügen, zu bearbeitenoder zu entfernen.

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

Warnung

Sie müssen sehr vorsichtig sein, bevor Sie ein Standard-XSS-Element entfernen oder ändern oder den XSS-Pfad löschen, um die gesamte Zeile zu entfernen. Die Signaturregeln sowie die Sicherheitsprüfung Cross-Site Scripting basieren auf diesen Elementen, um Angriffe zu erkennen, um Ihre Anwendungen zu schützen. 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 Lernregel 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

XSS-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,A-ction URL, Werttyp, Wertund Trefferangezeigt. Sie können die erlernten Regeln bereitstellen oder eine Regel bearbeiten, bevor Sie sie als Relaxationsregel bereitstellen. Um eine Regel zu verwerfen, können Sie sie auswählen und auf die Schaltfläche Überspringen klicken. Sie können jeweils nur eine Regel bearbeiten, aber Sie können mehrere Regeln zum Bereitstellen oder Überspringen auswählen.

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

Verwenden der Protokollfunktion mit der 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-Nachrichten, um den Syslog-Viewer anzuzeigen, in dem alle Protokollmeldungen, einschließlich anderer Protokolle für die Sicherheitsüberprüfung, angezeigt werden. Dies ist nützlich für das Debuggen, wenn während der Anforderungsverarbeitung mehrere Sicherheitsüberprüfungsverletzungen ausgelöst werden können.
  • Navigieren Sie zu Anwendungsfirewall > Richtlinien > Überwachung. Klicken Sie im Abschnitt Überwachungsmeldungen auf den Link Syslog-Nachrichten, um den Syslog-Viewer anzuzeigen, in dem alle Protokollmeldungen, einschließlich anderer Protokolle für die Sicherheitsüberprüfung, angezeigt werden.

Der HTML-basierte Syslog Viewer bietet verschiedene Filteroptionen, um nur die Protokollmeldungen auszuwählen, die für Sie von Interesse sind. Um 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 Protokollnachricht platzieren, werden unter der Protokollmeldung mehrere Optionen angezeigt, z. B. Modul, Ereignistyp, Ereignis-ID, Client-IPusw. 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 Fensterbereich auf den Statistiklink 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 eingebauten zulässigen Standard-Tags, zulässigen Attributen und verweigerten Mustern, die von der XSS-Prü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 Block, Log, Stats und Learn deaktiviert sind, werden XSS-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 XSS-Elementen von der Sicherheitskontrolle zu entspannen, 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 eine oder mehrere XSS-Verstoßprotokollmeldungen im Syslog-Viewer 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 XSS-Verletzung möglicherweise nicht ausgelöst, es sei denn, der Standardzeichensatz für das Profil wird als Unicode angegeben.