Citrix ADC

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 Skripte in Ihren geschützten Webdiensten zu verhindern, um die Sicherheit in Ihren Webdiensten zu verletzen, blockiert das Kontrollkästchen XML Cross-Site Scripting Skripts, die gegen dieselbe Ursprungsregel verstoßen. In der besagt, dass Skripte nicht auf Inhalte auf einem Server, sondern auf dem Server, auf dem sie sich befinden, zugreifen oder ändern sollten. 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.

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 Web App Firewall XML-XSS-Prüfung wird auf die Nutzlast der eingehenden Anforderungen durchgeführt und Angriffszeichenfolgen werden identifiziert, selbst wenn sie über mehrere Zeilen verteilt sind. Die Prüfung sucht nach XSS-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 Skripte 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 Abschnitt mit XSS-Angriffszeichenfolge:

    <![CDATA[rn
    <script language="Javascript" type="text/javascript">alert ("Got you")</script>rn
    ]]>

Aktionsoptionen

Eine Aktion wird angewendet, wenn die XML Cross-Site Scripting Prüfung einen XSS-Angriff in der Anforderung erkennt. Die folgenden Optionen stehen zur Optimierung des XML Cross-Site Scripting Protects für Ihre Anwendung zur Verfügung:

  • Block—Block-Aktion wird ausgelöst, wenn die XSS-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 Speicherort (ELEMENT, ATTRIBUTE), an dem die XSS-Verletzung erkannt wird, eine separate Protokollmeldung generiert. 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:

  1. XMLXSS: ABC IsRegex: NOTREGEX Location: ATTRIBUTE State: ENABLED

  2. XMLXSS: ABC IsRegex: NOTREGEX Location: ELEMENT State: ENABLED

  3. XMLXSS: abc IsRegex: NOTREGEX Location: ELEMENT State: ENABLED

  4. XMLXSS: 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> -XMLXSSAction (([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 XSS-Skriptangriffsprü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> -XMLXSS <string> [isRegex (REGEX | NOTREGEX)] [-location ( ELEMENT | ATTRIBUTE )] –comment <string> [-state ( ENABLED | DISABLED )]

> unbind appfw profile <name> -XMLXSS <String>

Beispiel:

> bind appfw profile test_pr -XMLXSS 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)      XMLXSS:  ABC             IsRegex:  NOTREGEX

        Location:  ELEMENT       State:  ENABLED

`> unbind appfw profile test_pr -XMLXSS abc`

ERROR: No such XMLXSS check

`> unbind appfw profile test_pr -XMLXSS 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

  1. Navigieren Sie zu Web App 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 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 Sicherheitsüberprüfungen vorgenommen haben, und klicken Sie dann auf Speichern und Schließen, um den Bereich Sicherheitsprüfung zu schließen.

So konfigurieren Sie eine XML-Cross-Site Scripting Relaxationsregel mit der GUI

  1. Navigieren Sie zu Web App 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 XML Cross-Site Scripting, oder wählen Sie ihn aus, und klicken Sie auf Bearbeiten .
  4. 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 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 Web App Firewall > 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 Sicherheitsüberprü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 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 Standard-XSS-Muster an:

  1. Navigieren Sie zu Web App Firewall > 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

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.

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.

  1. Navigieren Sie zu Web App Firewall > Signaturen, markieren Sie die benutzerdefinierte Zielsignatur, und klicken Sie auf Bearbeiten. Klicken Sie auf SQL/XSS-Musterverwalten, um die Tabelle SQL/XSS-Pfade verwalten anzuzeigen.
  2. Wählen Sie die XSS-Zielzeile aus.

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

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

Warnung

Seien Sie sehr vorsichtig, wenn Sie ein Standard-XSS-Element entfernen oder ändern oder den XSS-Pfad 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 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 Protokollfunktion mit der websiteübergreifenden XML-Skriptprüfung

Wenn die Protokollaktion aktiviert ist, werden die XML-Cross-Site Scripting Sicherheitsüberprüfungsverletzungen im Überwachungsprotokoll als APPFW_XML_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 XML-Cross-Site Scripting Verletzungen zuzugreifen:

> Shell

> tail -f /var/log/ns.log | grep APPFW_XML_XSS

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_XSS 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<not blocked> Aktion

Oct  7 01:46:52 <local0.warn> 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_XML_XSS|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 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 Überwachungsmeldungen auf den Link Syslog-Nachrichten, um den Syslog-Vieweranzuzeigen, der alle Protokollmeldungen, einschließlich anderer Sicherheitsüberprüfungsverletzungsprotokolle, 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-Meldungen, um den Syslog-Viewer anzuzeigen, der alle Protokollmeldungen einschließlich anderer Protokolle für 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 z. B. das Kontrollkästchen APPFW_XML_XSS aktivieren und auf die Schaltfläche Übernehmen klicken, werden im Syslog-Viewer nur Protokollmeldungen angezeigt, die sich auf die Verstöße der XML-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.

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

  1. Navigieren Sie zu System > Sicherheit > Web App Firewall .
  2. Greifen Sie im rechten Fensterausschnitt auf die Statistikverknüpfung zu.
  3. 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.