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 und so weiter. Es funktioniert nicht für das Cookie. Stellen Sie außerdem sicher, dass die Option ‘CheckRequestHeaders’ in Ihrem Web Application Firewall-Profil aktiviert ist.

Sie können den Missbrauch der Skripts auf Ihren geschützten Websites verhindern, indem Sie die HTML Cross-Site Scripting-Skripts verwenden, die gegen dieselbe Ursprungsregelverstoßen, die besagt, dass Skripts auf keinem Server, sondern auf dem Server, auf dem sie sich befinden, zugreifen oder diese ändern dürfen. 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 Skripts 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 Skripts 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 Anforderungsabfrageteil auf den Cross-Site-Scripting-Angriff auf die spezifischen Content-Typen untersucht wird.

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

Um einen optimierten HTML Cross-Site Scripting Schutz für Ihre Anwendung zu konfigurieren, konfigurieren Sie eine der folgenden Aktionen:

  • 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. In ähnlicher Weise wird eine Protokollnachricht pro Anfrage für den Transformationsvorgang generiert, selbst wenn Cross-Site-Scripting-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 Skripts 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 keine unsicheren HTML-Tags interpretieren und dadurch bösartigen Code ausführen. <script> Wenn Sie sowohl die Überprüfung von Anforderungskopfdaten als auch die Transformation aktivieren, werden alle Sonderzeichen, die in Anforderungsheadern gefunden werden, Wenn die Skripts auf Ihrer geschützten Website Cross-Site-Scripting-Funktionen 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.

  • Prüfen Sie vollständige URLs für Cross-Site-Scripting. Wenn die Überprüfung vollständiger URLs aktiviert ist, untersucht die Web App Firewall gesamte URLs auf HTML-Cross-Site-Scripting-Angriffe, anstatt nur die Abfrageteile von URLs zu überprüfen.
  • Überprüfen Sie Anfrage-Header. Wenn die Request-Header-Prüfung aktiviert ist, untersucht die Web App Firewall die Header von Anforderungen für HTML-Cross-Site-Scripting-Angriffe anstelle von nur URLs. Wenn Sie die GUI verwenden, können Sie diesen Parameter auf der Registerkarte Einstellungen des Web App Firewall Profils aktivieren.
  • InspectQueryContentTypes. Wenn die Anforderungsabfrage-Inspektion konfiguriert ist, untersucht die App Firewall die Abfrage von Anforderungen für Cross-Site-Scripting-Angriffe für die spezifischen Content-Typen. 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 entweder eine offene Klammer (<), or close bracket (>) oder beide offene und geschlossene 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. cross-site scripting Allowed Attributes: There are 52 defaults allowed attributes, such as, abbr, accesskey, align, alt, axis, bgcolor, border, cell padding, cell spacing, char, charoff, charset and so forth
  2. cross-site scripting Allowed Tags: There are 47 defaults allowed tags, such as, address, basefont, bgsound, big, blockquote, bg, br, caption, center, cite, dd, del and so forth
  3. cross-site scripting Denied Patterns: There are 129 defaults denied patterns, such as, FSCommand, javascript:, onAbort, onActivate and so forth

Warnung

Web App Firewall Aktions-URLs sind reguläre Ausdrücke. Beim Konfigurieren von siteübergreifenden HTML-Relaxationsregeln für Skripts können Sie Nameund Value Expression als 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.
  • Werteausdrücken muss ein 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:

  • setze appfw profile “Parameterbeschreibungen unten auf der Seite. “)
  • <name> -crossSiteScriptingAction (([block] [learn] [log] [stats]) | [**none**])
  • setze appfw profile “Parameterbeschreibungen unten auf der Seite. “)
  • <name> **-crossSiteScriptingTransformUnsafeHTML** (ON | OFF)
  • legen Sie appfw profile Parameterbeschreibungen fest, die unten auf der Seite angegeben sind.
  • <name> -crossSiteScriptingCheckCompleteURLs (ON | OFF)
  • legen Sie appfw profile Parameterbeschreibungen fest, die unten auf der Seite angegeben sind.
  • <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-Cross-Site Scripting Check

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 Application Firewall > 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 weitere 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 Skripts 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 Sicherheitsüberprü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, oder wenn Sie die Konfiguration dieses Profils abgeschlossen haben, können Sie auf Fertig klicken, um zur Anwendungsfirewall > Profilzurü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 Application Firewall > 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.

  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/Cross-Site Scripting Pattern verwalten.

Die Tabelle SQL/Cross-Site-Scripting-Pfade verwalten zeigt die folgenden drei Zeilen, die sich auf Cross-Site-Skripts 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 cross-Site-Scripting-Elementean: Sie können das benutzerdefinierte Signaturobjekt bearbeiten, um das zulässige Tag, die zugelassenen Attribute und die abgelehnten 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/Cross-Site-Skriptmusterverwalten, um die Tabelle SQL/Cross-Site-Scripting-Pfade verwalten anzuzeigen.

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

i. Klicken Sie auf Elemente verwalten, um das entsprechende Cross-Site-Scripting-Element 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 Cross-Site-Scripting-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 Cross-Site-Scripting Elements 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 Aktion “Lernen” aktiviert ist, überwacht die Lernengine der Citrix Web App Firewall den Datenverkehr und lernt die Cross-Site-Scripting-URL-Verstöße. Sie können regelmäßig Cross-Site-Scripting-URL-Regeln überprüfen und sie für falsch positive Szenarien bereitstellen.

Hinweis:

In einer Clusterkonfiguration müssen alle Knoten dieselbe Version haben, um die Cross-Site-Scripting-URL-Regeln bereitstellen zu können.

Verbesserung des Cross-Site-Scripting-Lernens von HTML Eine Verbesserung des Web App Firewall wurde in Version 11.0 der Citrix ADC -Software 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 Lern-Engine generierten Regeln überprüfen, um festzustellen, welcher Werttyp und welcher Werteausdruck Verstöße auslösen und in den 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 Tag-Länge zum Lernen benötigen, können Sie ein großes, nicht erscheinendes Tag in as_Cross-Site Scripting_Allowed_Tags_List für die Länge “x” einfü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 Application Firewall > 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, Value Type, Valueund Hits 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-Überprüfung

Wenn die Protokollaktion aktiviert ist, werden die Verletzungen der HTML Cross-Site Scripting Sicherheitsprüfung im Audit-Log als Verstöße gegen AppFW_Cross-Site Scripting 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 halten Sie die ns.logs im /var/log/ Ordner, um auf die Protokollnachrichten im Zusammenhang mit den HTML Cross-Site Scripting Verstößen zuzugreifen:

Shell tail -f /var/log/ns.log | grep APPFW_cross-site scripting

Beispiel für eine Meldung einer Cross-Site Scripting-Sicherheitsüberprüfung im CEF-Protokollformat:

Jul 11 00:45:51 <local0.info> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|\*\*APPFW_cross-site scripting\*\*|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\*\*
<!--NeedCopy-->

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_cross-site scripting\*\* 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>\*\*
<!--NeedCopy-->

Greifen Sie mit der GUI auf die Protokollnachrichten zu

Die Citrix GUI enthält ein nützliches Tool (Syslog Viewer) zum Analysieren 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, der alle Protokollmeldungen einschließlich anderer Protokolle gegen 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 Audit-Meldungen auf den Link Syslog-Nachrichten, 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 HTML-Cross-Site Scripting-Überprüfung auszuwählen, filtern Sie, indem Sie APPFW in der Dropdownliste Optionen für Modulauswählen. Die Liste Ereignistyp bietet eine Reihe von Optionen, um Ihre Auswahl weiter zu verfeinern. Wenn Sie beispielsweise das Kontrollkästchen AppFW_Cross-Site Scripting aktivieren und auf die Schaltfläche Übernehmen klicken, werden im Syslog Viewer nur Protokollnachrichten im Zusammenhang mit der HTML Cross-Site Scripting-Sicherheitsprüfung angezeigt.

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.

Konfigurieren Sie die Funktion zum Bereitstellen über die GUI

  1. Wählen Sie im Syslog Viewer in den Optionen des Moduls die Option APPFW aus.
  2. Wählen Sie das App_Cross-Site-Scripting als Ereignistyp aus, um die entsprechenden Protokollnachrichten 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>

Anzeigen von HTML Cross-Site Scripting Statistiken über die GUI

  1. Navigieren Sie zu Sicherheit > Anwendungsfirewall > Profile > Statistik .
  2. Greifen Sie im rechten Bereich auf den Statistik-Link 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

  • Integrierte Unterstützung für HTML-Site Scripting Angriffsschutz— Die Citrix Web App Firewall schützt vor Cross-Site Scripting-Angriffen, indem sie eine Kombination aus zulässigen Attributen und Tags und verweigerten Mustern 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/Cross-Site-Skriptmuster, die im Signaturobjekt angegeben sind, das an das Profil gebunden ist. Wenn kein Signaturobjekt an das Profil gebunden ist, werden die SQL/Cross-Site-Skriptmuster 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 Untergruppe von Cross-Site-Scripting-Elementen von der Sicherheitsprüfung zu entfernen, 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 muss basierend auf den Anforderungen 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 Zeichen der offenen Klammer (<) or the close bracket character (>) wird nicht als Cross-Site-Scripting-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.