Site-übergreifende XML-Skripterstellung
Die XML Cross-Site Scripting Prüfung prüft die Benutzeranforderungen auf mögliche Cross-Site Scripting Angriffe in der XML-Payload. Wenn es einen möglichen siteübergreifenden Skriptangriff findet, blockiert es die Anforderung.
Um den Missbrauch der Skripts in Ihren geschützten Webdiensten zu verhindern, um die Sicherheit Ihrer Webdienste zu verletzen, blockiert die XML Cross-Site Scripting-Prüfung Skripts, die gegen dieselbe Ursprungsregel verstoßen, und 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.
Die Web App Firewall bietet verschiedene Aktionsoptionen für die Implementierung von XML Cross-Site Scripting Protection. Sie haben die Möglichkeit, Block-, Protokoll-und Statistikaktionenzu konfigurieren.
Die Site-Cross-Scripting-Überprüfung der Web App Firewall XML wird für die Nutzlast der eingehenden Anforderungen durchgeführt und Angriffszeichenfolgen werden auch dann identifiziert, wenn sie über mehrere Zeilen verteilt sind. Die Prüfung sucht nach Cross-Site-Scripting-Angriffszeichenfolgen im Element und den Attributwerten. Sie können Entspannungen anwenden, um die Sicherheitskontrolle unter bestimmten Bedingungen zu umgehen. Die Protokolle und Statistiken können Ihnen helfen, benötigte Entspannungen zu identifizieren.
Der CDATA Abschnitt der XML-Nutzlast könnte ein attraktiver Schwerpunkt für die Hacker sein, da die Skripts außerhalb des CDATA Abschnitts nicht ausführbar sind. Ein CDATA Abschnitt wird für Inhalte verwendet, die vollständig als Zeichendaten behandelt werden sollen. HTML-Markierungs-Tagtrennzeichen <, >und />führen nicht dazu, dass der Parser den Code als HTML-Elemente interpretiert. Das folgende Beispiel zeigt einen CDATA-Section mit Cross-Site-Scripting-Angriffsstring:
<![CDATA[rn
<script language="Javascript" type="text/javascript">alert ("Got you")</script>rn
]]>
<!--NeedCopy-->
Aktionsoptionen
Eine Aktion wird angewendet, wenn die Prüfung auf XML Cross-Site Scripting einen Cross-Site-Scripting-Angriff in der Anfrage erkennt. Die folgenden Optionen stehen zur Optimierung des XML Cross-Site Scripting Protects für Ihre Anwendung zur Verfügung:
- Block: Die Blockierungsaktion wird ausgelöst, wenn die Cross-Site-Scripting-Tags in der Anforderung erkannt werden.
- Log— Generieren Sie Protokollmeldungen, die die Aktionen angeben, die von der XML Cross-Site Scripting Prüfung ausgeführt werden. Wenn der Block deaktiviert ist, wird für jeden Standort (ELEMENT, ATTRIBUTE) eine separate Protokollnachricht generiert, in der die Cross-Site-Scripting-Verletzung erkannt wird. Allerdings wird nur eine Nachricht generiert, wenn die Anforderung blockiert wird. 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— Sammeln Sie 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.
Relaxationsregeln
Wenn Ihre Anwendung erfordert, dass Sie die Cross-Site Scripting Prüfung für ein bestimmtes ELEMENT oder ATTRIBUTE in der XML-Nutzlast umgehen müssen, können Sie eine Relaxationsregel konfigurieren. Die Relaxationsregeln für die XML-Cross-Site Scripting haben die folgenden Parameter:
-
Name—Sie können Literalzeichenfolgen oder reguläre Ausdrücke verwenden, um den Namen des ELEMENT oder des Attributs zu konfigurieren. Der folgende Ausdruck befreit alle ELEMENTS, die mit dem Zeichenfolgenname_ beginnen, gefolgt von einer Zeichenfolge aus Groß- oder Kleinbuchstaben oder Zahlen, die mindestens zwei und höchstens fünfzehn Zeichen lang sind:
^name_[0-9A-Za-z]{2,15}$
Hinweis:
Bei den Namen wird Groß- und Kleinschreibung erkannt. Doppelte Einträge sind nicht zulässig, aber Sie können die Großschreibung der Namen und Unterschiede in der Position verwenden, um ähnliche Einträge zu erstellen. Zum Beispiel ist jede der folgenden Entspannungsregeln einzigartig:
XMLcross-site scripting: ABC IsRegex: NOTREGEX
Location: ATTRIBUTE State: ENABLED
XMLcross-site scripting: ABC IsRegex: NOTREGEX
Location: ELEMENT State: ENABLED
XMLcross-site scripting: abc IsRegex: NOTREGEX
Location: ELEMENT State: ENABLED
XMLcross-site scripting: abc IsRegex: NOTREGEX
Location: ATTRIBUTE State: ENABLED
- Speicherort— Sie können den Speicherort der Ausnahme für die standortübergreifende Skriptüberprüfung in Ihrer XML-Nutzlast angeben. Die Option ELEMENT ist standardmäßig ausgewählt. Sie können es in ATTRIBUTEändern.
- Kommentar—Dies ist ein optionales Feld. Sie können bis zu 255 Zeichen verwenden, um den Zweck dieser Relaxationsregel zu beschreiben.
Warnung
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 den Namen definieren, den Sie als Ausnahme hinzufügen möchten, und nichts anderes. Die unvorsichtige Verwendung von regulären Ausdrücken kann Ergebnisse haben, die Sie nicht wünschen, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder das Zulassen eines Angriffs, den die XML Cross-Site Scripting Prüfung ansonsten blockiert hätte.
Verwenden der Befehlszeile zum Konfigurieren der XML-Site-Cross-Site-Skripting-Prüfung
So konfigurieren Sie XML 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 XML Cross-Site Scripting Check zu konfigurieren:
> set appfw profile <name> -XMLcross-site scriptingAction (([block] [log] [stats]) | [none])
So konfigurieren Sie eine XML-Cross-Site Scripting Check-Relaxationsregel mit der Befehlszeile
Sie können Relaxationsregeln hinzufügen, um die Inspektion der Cross-Site Scripting Script-Angriffsprüfung an einem bestimmten Ort zu umgehen. Verwenden Sie den Befehl bind oder unbind, um die Relaxationsregelbindung wie folgt hinzuzufügen oder zu löschen:
> bind appfw profile <name> -XMLcross-site scripting <string> [isRegex (REGEX | NOTREGEX)] [-location ( ELEMENT | ATTRIBUTE )] –comment <string> [-state ( ENABLED | DISABLED )]
> unbind appfw profile <name> -XMLcross-site scripting <String>
Beispiel:
> bind appfw profile test_pr -XMLcross-site scripting ABC
Nach dem Ausführen des obigen Befehls wird die folgende Relaxationsregel konfiguriert. Die Regel ist aktiviert, der Name wird als Literal (NOTREGEX) behandelt, und ELEMENT wird als Standardspeicherort ausgewählt:
1) XMLcross-site scripting: ABC IsRegex: NOTREGEX
Location: ELEMENT State: ENABLED
`> unbind appfw profile test_pr -XMLcross-site scripting abc`
ERROR: No such XMLcross-site scripting check
`> unbind appfw profile test_pr -XMLcross-site scripting ABC`
Done
<!--NeedCopy-->
Verwenden der GUI zum Konfigurieren der XML-Site-Cross-Site-Skriptprüfung
In der grafischen Benutzeroberfläche können Sie die XML-Cross-Site-Skripterstellung im Bereich für das Profil konfigurieren, das Ihrer Anwendung zugeordnet ist.
So konfigurieren oder ändern Sie die XML Cross-Site Scripting Prüfung mit der GUI
- Navigieren Sie zu Web App Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
- 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 Aktionen Blockieren, Protokollierenund Statistikenfür die XML Cross-Site Scripting aktivieren oder deaktivieren möchten, können Sie Kontrollkästchenin der Tabelle aktivieren oder deaktivieren, klicken Sie auf OK, und klicken Sie dann auf Speichern und Schließen, um die Sicherheit zu schließen. Kontrollkästchen.
b) Sie können auf XML Cross-Site Scriptingdoppelklicken oder die Zeile auswählen und auf Aktionseinstellungenklicken, um die Aktionsoptionen anzuzeigen. Nachdem Sie eine der Aktionseinstellungen 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.
So konfigurieren Sie eine XML-Cross-Site Scripting Relaxationsregel mit der GUI
- Navigieren Sie zu Web App Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
- Klicken Sie im Bereich Erweiterte Einstellungen auf Relaxationsregeln.
- Doppelklicken Sie in der Tabelle Relaxationsregeln auf den Eintrag XML Cross-Site Scripting, oder wählen Sie ihn aus, und klicken Sie auf Bearbeiten .
- Führen Sie im Dialogfeld XML-Cross-Site Scripting Relaxationsregeln die Vorgänge Hinzufügen, Bearbeiten, Löschen, Aktivieren oder Deaktivieren für Relaxationsregeln aus.
So verwalten Sie XML Cross-Site Scripting Relaxationsregeln mithilfe des Visualizers
Um eine konsolidierte Ansicht aller Relaxationsregeln zu erhalten, können Sie die Zeile XML 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 Web App Firewall > Signaturen > Standardsignaturen angegeben. Wenn Sie kein Signaturobjekt an Ihr Profil binden, wird die im Standardobjekt “Standardsignaturen” angegebene Standardliste für Cross-Site Scripting Allowed und “Verweigert” vom Profil für die Verarbeitung der Cross-Site Scripting Sicherheitsprü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 in den Listen Zulässig oder Verweigert im neuen benutzerdefinierten Signaturobjekt vor, und verwenden Sie dieses Signaturobjekt in dem Profil, das den Datenverkehr verarbeitet, für den Sie diese angepassten zulässigen und verweigerten Listen verwenden möchten.
Weitere Hinweise zu Signaturen finden Sie unterhttp://support.citrix.com/proddocs/topic/ns-security-10-map/appfw-signatures-con.html.
So zeigen Sie standardmäßige Cross-Site-Skriptmuster an:
- Navigieren Sie zu Web App Firewall > 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
<!--NeedCopy-->
Wählen Sie eine Zeile aus und klicken Sie auf Elemente verwalten, um die entsprechenden Cross-Site-Scripting-Elemente (Tag, Attribut, Pattern) anzuzeigen, die von der Cross-Site Scripting-Überprüfung der Web App Firewall verwendet werden.
So passen Sie Cross-Site-Scripting-Elementean: Sie können das benutzerdefinierte Signaturobjekt bearbeiten, um das zulässige Tag, die zulässigen Attribute und die verweigerten Sie können neue Einträge hinzufügen oder vorhandene entfernen.
- Navigieren Sie zu Web App Firewall > Signaturen, markieren Sie die benutzerdefinierte Zielsignatur und klicken Sie auf Bearbeiten. Klicken Sie auf SQL/Cross-Site-Skriptmuster verwalten, um die Tabelle SQL/Cross-Site-Scripting-Pfade verwalten anzuzeigen.
- Wählen Sie die Ziel-Cross-Site-Skript-Zeile aus
a) Klicken Sie auf Elemente verwalten, um das entsprechende Cross-Site-Scripting-Element hinzuzufügen, zu bearbeiten oder zu entfernen .
b) Klicken Sie auf Entfernen, um die ausgewählte Zeile zu entfernen.
Warnung
Seien Sie sehr vorsichtig, wenn Sie ein standardmäßiges Cross-Site-Scripting-Element entfernen oder ändern oder den Cross-Site-Skriptpfad löschen, um die gesamte Zeile zu entfernen. Die Signaturen, die Sicherheitsprüfung für HTML Cross-Site Scripting und die Sicherheitsprüfung für XML Cross-Site Scripting basieren auf diesen Elementen, um Angriffe zum Schutz Ihrer Anwendungen zu erkennen. 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 Protokollfunktion mit der websiteübergreifenden XML-Skriptprüfung
Wenn die Protokollaktion aktiviert ist, werden die Verletzungen der XML Cross-Site Scripting-Sicherheitsprüfung im Audit-Log als Verstöße gegen AppFW_XML_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 ziehen Sie die ns.logs im Ordner /var/log/, um auf die Protokollmeldungen zu den XML-Cross-Site Scripting Verletzungen zuzugreifen:
> \*\*Shell\*\*
> \*\*tail -f /var/log/ns.log | grep APPFW_XML_cross-site scripting\*\*
<!--NeedCopy-->
Beispiel für eine XML-Cross-Site Scripting Sicherheitsüberprüfungsprotokollnachricht im systemeigenen Protokollformat mit<blocked>
Aktion
Oct 7 01:44:34 <local0.warn> 10.217.31.98 10/07/2015:01:44:34 GMT ns 0-PPE-1 : default APPFW APPFW_XML_cross-site scripting 1154 0 : 10.217.253.69 3466-PPE1 - owa_profile http://10.217.31.101/FFC/login.html Cross-site script check failed for field script="Bad tag: script" <\*\*blocked\*\*>
<!--NeedCopy-->
Beispiel für eine XML-Cross-Site Scripting Sicherheitsüberprüfungsprotokollnachricht im CEF-Protokollformat mit<not blocked>
Aktion
Oct 7 01:46:52 <local0.warn> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_XML_cross-site scripting|4|src=10.217.30.17 geolocation=Unknown spt=33141 method=GET request=http://10.217.31.101/FFC/login.html msg=Cross-site script check failed for field script="Bad tag: script" cn1=1607 cn2=3538 cs1=owa_profile cs2=PPE0 cs4=ERROR cs5=2015 act=\*\*not blocked\*\*
<!--NeedCopy-->
So greifen Sie mit der GUI auf die Protokollmeldungen 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 Web App Firewall > Profile, wählen Sie das Zielprofil aus, und klicken Sie auf Sicherheitsprüfungen . Markieren Sie die Zeile XML Cross-Site Scripting, und klicken Sie auf Protokolle . Wenn Sie direkt über die XML 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 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. 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 Web App Firewall > Richtlinien > Überwachung . 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.
Der XML-basierte Syslog Viewer bietet verschiedene Filteroptionen, um nur die Protokollmeldungen auszuwählen, die für Sie von Interesse sind. Um Protokollmeldungen für die XML Cross-Site Scripting Prüfung 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 beispielsweise das Kontrollkästchen AppFW_XML_Cross-Site Scripting aktivieren und auf die Schaltfläche Übernehmen klicken, werden im Syslog Viewer nur Protokollnachrichten zu den Verletzungen der XML Cross-Site Scripting-Sicherheitsprüfung angezeigt.
Wenn Sie den Cursor in die Zeile für eine bestimmte Protokollnachricht stellen, 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.
Statistiken für die siteübergreifenden XML-Skriptverstöße
Wenn die Aktion Statistik aktiviert ist, wird der Zähler für die XML 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 eine Anforderung für eine Seite, die drei XML 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 XML Cross-Site Scripting Prüfstatistiken 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 XML Cross-Site Scripting Statistiken mit der GUI an
- Navigieren Sie zu System > Sicherheit > Web App Firewall .
- Greifen Sie im rechten Bereich auf den Statistik-Link zu.
- Verwenden Sie die Bildlaufleiste, um die Statistiken über XML Cross-Site Scripting Verletzungen und Protokolle anzuzeigen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.
In diesem Artikel
- Aktionsoptionen
- Relaxationsregeln
- Verwenden der Befehlszeile zum Konfigurieren der XML-Site-Cross-Site-Skripting-Prüfung
- Verwenden der GUI zum Konfigurieren der XML-Site-Cross-Site-Skriptprüfung
- Verwenden der Protokollfunktion mit der websiteübergreifenden XML-Skriptprüfung
- Statistiken für die siteübergreifenden XML-Skriptverstöße