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.
嗯窝Missbrauch der Skripts在古老而geschutztenWebdiensten 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-undStatistikaktionenzu 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 imElementund denAttributwerten. 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 konnte静脉traktiver 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:
alert ("Got you")rn ]]>
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
Regulare Ausdrucke信德leistungsstark。伏尔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
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
> unbind appfw profile
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
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 zuWeb App Firewall>Profile, markieren Sie das Zielprofil und klicken Sie aufBearbeiten.
- Klicken Sie im Bereich Erweiterte Einstellungen aufSicherheitsprü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 AktionenBlockieren,ProtokollierenundStatistikenfür dieXML Cross-Site Scripting aktivieren oder deaktivieren möchten, können Sie Kontrollkästchenin der Tabelle aktivieren oder deaktivieren, klicken Sie aufOK, und klicken Sie dann auf Speichern und Schließen, um die Sicherheit zu schließen. Kontrollkästchen.
b) Sie können aufXML Cross-Site Scriptingdoppelklicken oder die Zeile auswählen und aufAktionseinstellungenklicken, um die Aktionsoptionen anzuzeigen. Nachdem Sie eine der Aktionseinstellungen geändert haben, klicken Sie aufOK, um die Änderungen zu speichern und zur Tabelle Sicherheitsprüfungen zurückzukehren.
Sie können bei Bedarf weitere Sicherheitsprüfungen konfigurieren. Klicken Sie aufOK, um alle Änderungen zu speichern, die Sie im Abschnitt Sicherheitsprüfungen vorgenommen haben, und klicken Sie dann aufSpeichern 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 zuWeb App Firewall>Profile, markieren Sie das Zielprofil und klicken Sie aufBearbeiten.
- Klicken Sie im BereichErweiterte EinstellungenaufRelaxationsregeln.
- Doppelklicken Sie in der Tabelle Relaxationsregeln auf den EintragXML Cross-Site Scripting, oder wählen Sie ihn aus, und klicken Sie aufBearbeiten.
- Führen Sie im DialogfeldXML-Cross-Site Scripting Relaxationsregelndie VorgängeHinzufügen,Bearbeiten,Löschen,AktivierenoderDeaktivierenfü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 ZeileXML Cross-Site Scriptingin der Tabelle Relaxationsregeln markieren und aufVisualizerklicken. Der Visualizer für bereitgestellte Relaxationen bietet Ihnen die Möglichkeit, eine neue Regelhinzuzufügenoder eine vorhandene zubearbeiten. Sie können auch eine Gruppe von Regelnaktivierenoderdeaktivieren, 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 unterWeb App Firewall>Signaturen>Standardsignaturenangegeben。您要是凯文Signaturobjekt《国际卫生条例》fil 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 zuWeb App Firewall>Signaturen, wählen Sie*Standardsignaturen aus, und klicken Sie aufBearbeiten. Klicken Sie dann aufSQL/Cross-Site Scripting Pattern verwalten.
Die TabelleSQL/Cross-Site-Scripting-Pfade verwaltenzeigt die folgenden drei Zeilen, die sich auf Cross-Site-Skripts beziehen:
xss/allowed/attribute xss/allowed/tag xss/denied/pattern
Wählen Sie eine Zeile aus und klicken Sie aufElemente verwalten, um die entsprechenden Cross-Site-Scripting-Elemente (Tag, Attribut, Pattern) anzuzeigen, die von derCross-Site Scripting-Überprüfungder 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 aufBearbeiten. Klicken Sie aufSQL/Cross-Site-Skriptmusterverwalten, um die Tabelle SQL/Cross-Site-Scripting-Pfadeverwalten anzuzeigen.
- Wählen Sie die Ziel-Cross-Site-Skript-Zeile aus
a) Klicken Sie aufElemente verwalten, um das entsprechende Cross-Site-Scripting-Elementhinzuzufügen, zubearbeitenoder zuentfernen.
b) Klicken Sie aufEntfernen, 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 gegenAppFW_XML_Cross-Site Scriptingprotokolliert. 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\*\*
Beispiel für eine XML-Cross-Site Scripting Sicherheitsüberprüfungsprotokollnachricht im systemeigenen Protokollformat mit
Aktion
Oct 7 01:44:34 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\*\*>
Beispiel für eine XML-Cross-Site Scripting Sicherheitsüberprüfungsprotokollnachricht im CEF-Protokollformat mit
Aktion
Oct 7 01:46:52 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\*\*
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 zuWeb App Firewall>Profile, wählen Sie das Zielprofil aus, und klicken Sie aufSicherheitsprüfungen. Markieren Sie die ZeileXML Cross-Site Scripting,und klicken Sie aufProtokolle. 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 zuCitrix ADC>System>Auditingnavigieren. 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 zuWeb App Firewall>Richtlinien>Überwachung. Klicken Sie im AbschnittÜberwachungsmeldungenauf den LinkSyslog-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 dieXML Cross-Site ScriptingPrüfung auszuwählen, filtern Sie, indem SieAPPFWin den Dropdown-Optionen fürModulauswahlen。死ListeEreignistypbietet eine Reihe von Optionen, um Ihre Auswahl weiter zu verfeinern. Wenn Sie beispielsweise das KontrollkästchenAppFW_XML_Cross-Site Scriptingaktivieren und auf die SchaltflächeÜbernehmenklicken, 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 wieModul,Ereignistyp,Ereignis-ID,Client-IPusw. 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
您一个der Eingabeaufforderung Folgendes ein:
> **sh appfw stats**
Verwenden Sie den folgenden Befehl, um Statistiken für ein bestimmtes Profil anzuzeigen:
> **stat appfw profile**
So zeigen Sie XML Cross-Site Scripting Statistiken mit der GUI an
- Navigieren Sie zuSystem>Sicherheit>Web App Firewall.
- Greifen Sie im rechten Bereich auf denStatistik-Linkzu.
- 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