Site-übergreifende HTML-Skriptprüfung
Die HTML Cross-Site Scripting-Prüfung untersucht sowohl die Header als auch die POST-Texte von Benutzeranfragen auf mögliche Cross-Site-Scripting-Angriffe. Wenn es ein seitenübergreifendes Skript findet, modifiziert (transformiert) es entweder die Anfrage, um den Angriff unschädlich zu machen, oder blockiert die Anfrage.
Hinweis:
Die Prüfung von HTML Cross-Site Scripting (Cross-Site-Scripting) funktioniert nur für den Inhaltstyp, die Inhaltslänge usw. 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 Sites 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 darstellt, besteht darin, 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, z. B. einem, der dem Angreifer gehört und von diesem kontrolliert wird.
Leider verfügen viele Unternehmen über eine große installierte Basis von Webinhalten mit Javascript, die gegen dieselbe Ursprungsregel verstoßen. 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 keine legitimen Aktivitäten 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, Statistiken und Lernen haben Sie auch die Möglichkeit, Site-übergreifende Skripte zu transformieren, um einen Angriff unschädlich zu machen, indem die Entität die Script-Tags in der gesendeten Anforderung codiert. Sie können den Parameter Vollständige URLs für Cross-Site Scripting überprüfen konfigurieren, um anzugeben, ob Sie nicht nur die Abfrageparameter, sondern die gesamte URL überprüfen möchten, um einen Cross-Site-Scripting-Angriff zu erkennen. Sie können den Parameter InspectQueryContentTypes so konfigurieren, dass der Teil der Anforderungsabfrage auf den Cross-Site-Scripting-Angriff auf die spezifischen Inhaltstypen überprüft wird.
Sie können Entspannungen einsetzen, 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:
- Blockieren— Wenn Sie Block aktivieren, wird die Blockaktion ausgelöst, wenn die websiteübergreifenden Scripting-Tags in der Anforderung erkannt werden.
- Log— Wenn Sie die Protokollfunktion aktivieren, generiert die HTML-Site-Scripting-Prüfung Protokollmeldungen, die die Aktionen angeben, die ausgeführt werden. Wenn Block deaktiviert ist, wird für jeden Header oder jedes Formularfeld, in dem die Cross-Site-Scripting-Verletzung erkannt wurde, eine separate Protokollnachricht generiert. Allerdings wird nur eine Nachricht generiert, wenn die Anforderung blockiert wird. In ähnlicher Weise wird eine Protokollnachricht pro Anforderung für den Transformationsvorgang generiert, auch 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. Ein starker Anstieg der Anzahl der Protokollmeldungen kann auf Versuche hinweisen, einen Angriff zu starten.
- Statistiken— Wenn diese Option aktiviert ist, sammelt die Statistikfunktion Statistiken zu Verstößen und Protokollen. 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 zu prüfen, ob Sie die neuen Entspannungsregeln konfigurieren oder die vorhandenen ändern müssen.
- Lernen— Wenn Sie sich nicht sicher sind, welche Entspannungsregeln für Ihre Anwendung am besten geeignet sind, können Sie die Lernfunktion verwenden, um basierend auf den erlernten Daten Empfehlungen für HTML-Site-Scripting-Regeln zu generieren. Die Web App Firewall Learning Engine überwacht den Datenverkehr und gibt auf der Grundlage der beobachteten Werte Lernempfehlungen ab. Um einen optimalen Nutzen zu erzielen, ohne die Leistung zu beeinträchtigen, sollten Sie die Lernoption möglicherweise 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 (<) zum Äquivalent der HTML-Zeichenentität (<)
- Rechtwinklige Klammer (>) zu HTML-Zeichenentitätsäquivalent (>)
Dadurch wird sichergestellt, dass Browser keine unsicheren HTML-Tags wie <script>
z. B. interpretieren und dadurch schädlichen Code ausführen. Wenn Sie sowohl die Prüfung der Anforderungsheader als auch die Transformation aktivieren, werden alle Sonderzeichen in Anforderungsheadern ebenfalls geändert. Wenn die Skripts auf Ihrer geschützten Site Cross-Site-Scripting-Funktionen enthalten, Ihre Site 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 legitimer Webverkehr blockiert wird, während potenzielle Cross-Site-Scripting-Angriffe gestoppt werden.
- Prüfen Sie die vollständigen URLs für Cross-Site Scripting. Wenn die Überprüfung vollständiger URLs aktiviert ist, untersucht die Web App Firewall ganze URLs auf HTML-Site-Scripting-Angriffe, anstatt nur die Abfrageteile der URLs zu überprüfen.
- Markieren Sie Header der Anforderung. Wenn die Headerüberprüfung anfordern aktiviert ist, untersucht die Web App Firewall die Header von Anfragen für websiteübergreifende HTML-Scripting-Angriffe, anstatt nur URLs. Wenn Sie die GUI verwenden, können Sie diesen Parameter auf der Registerkarte “Einstellungen” des Web App Firewall-Profils aktivieren.
- InspectQueryContentTypes. Wenn Abfrageprüfung anfordern konfiguriert ist, untersucht die App Firewall die Abfrage von Anforderungen für Cross-Site-Scripting-Angriffe auf die spezifischen Inhaltstypen. Wenn Sie die GUI verwenden, können Sie diesen Parameter auf der Registerkarte “Einstellungen” des App Firewall-Profils konfigurieren.
Wichtig:
Im Rahmen der Streaming-Änderungen wurde die Web App Firewall Verarbeitung der Cross-Site-Scripting-Tags geändert. Diese Änderung gilt ab 11.0 Builds. Diese Änderung ist auch für die Erweiterungs-Builds von 10.5.e relevant, die das Streaming auf Anforderungsseite unterstützen. In früheren Versionen wurde das Vorhandensein einer offenen Klammer (<) oder einer schließenden Klammer (>) oder beiden (<>) als Cross-Site-Scripting-Verletzung gekennzeichnet. Das Verhalten wurde in den Builds geändert, die Unterstützung für das Streaming auf der Anforderungsseite beinhalten Nur das Zeichen in der engen Klammer (>) wird nicht mehr als Angriff betrachtet. Anfragen werden auch dann geblockt, wenn ein Zeichen in offener Klammer (<) vorhanden ist, und werden als Angriff betrachtet. Der Cross-Site-Scripting-Angriff wird markiert.
Site-übergreifendes Scripting Feinkörnige
Die Web App Firewall bietet Ihnen die Möglichkeit, ein bestimmtes Formularfeld, einen Header oder ein Cookie von der websiteübergreifenden Überprüfung des Scripting auszunehmen. Sie können die Prüfung für eines oder mehrere dieser Felder vollständig Bypass, indem Sie die Entspannungsregeln 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 Entspannungsregel zur Bypass der Sicherheitsüberprüfung könnte die Anwendung anfällig für Angriffe machen, da das Zielfeld von der Überprüfung auf Cross-Site-Scripting-Angriffsmuster ausgenommen ist. Cross-Site-Scripting Die feinkörnige Entspannung bietet die Möglichkeit, bestimmte Attribute, Tags und Muster zuzulassen. Der Rest der Attribute, Tags und Muster ist gesperrt. Beispielsweise verfügt die Web App Firewall derzeit über einen Standardsatz von mehr als 125 verweigerten Mustern. Da Hacker diese Muster bei standortübergreifenden Skript-Angriffen verwenden können, kennzeichnet die Web App Firewall sie als potenzielle Bedrohungen. Sie können ein oder mehrere Muster lockern, die für den jeweiligen Standort als sicher gelten. Der Rest der potenziell gefährlichen Cross-Site-Scripting-Muster wird weiterhin auf den Zielort überprüft und löst weiterhin die Verstöße gegen die Sicherheitsüberprüfung aus. Sie haben jetzt eine viel strengere Kontrolle.
Die in Relaxationen verwendeten Befehle haben optionale Parameter für Werttyp und Wertausdruck. Der Werttyp kann leer gelassen werden oder Sie haben die Möglichkeit, Tag oder Attribut oder Musterauszuwählen. Wenn Sie den Werttyp leer lassen, wird das konfigurierte Feld der angegebenen URL von der Cross-Site Scripting-Prüfung ausgenommen. Wenn Sie einen Werttyp auswählen, müssen Sie einen Wertausdruck angeben. Sie können angeben, ob der Wertausdruck ein regulärer Ausdruck oder eine literale Zeichenfolge ist. Wenn die Eingabe mit der Liste “Zulässig” und “Verweigert” abgeglichen wird, werden nur die in den Entspannungsregeln konfigurierten angegebenen Ausdrücke ausgenommen.
Die Web App Firewall verfügt über die folgenden integrierten Listen für das Cross-Site Scripting:
- Cross-Site Scripting Zulässige Attribute: Es sind 52 standardmäßig zulässige Attribute wie abbr, accesskey, align, alt, axis, bgcolor, border, cell padding, cellabstand, char, charoff, charset und so weiter
- Cross-Site Scripting Zulässige Tags: Es sind 47 Standard-Tags zulässig, z. B. address, basefont, bgsound, big, blockquote, bg, br, caption, center, **cite, **dd, del und so weiter
- Cross-Site Scripting Denied Patterns: Es gibt 129 Standardeinstellungen für verweigerte Muster, wie FSCommand, Javascript:, onAbort, onActivate und so weiter
Warnung
Die Aktionsadressen der Web App Firewall 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 genau 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 sonst nichts. Die unvorsichtige Verwendung von Platzhaltern und insbesondere des Punkt-Sternchen-Metazeichens (.*) oder der Platzhalterkombination kann zu Ergebnissen führen, die Sie nicht möchten, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder das Zulassen eines Angriffs, den die HTML Cross-Site Scripting Prüfung sonst blockiert hätte.
Zu berücksichtigende Punkte:
- Der Wertausdruck ist ein optionales Argument. Ein Feldname hat möglicherweise keinen Wertausdruck.
- Ein Feldname kann an Ausdrücke mit mehreren Werten gebunden werden.
- Wertausdrücken muss ein Werttyp zugewiesen werden. Der Cross-Site Scripting -Werttyp kann sein: 1) Tag, 2) Attribut oder 3) Muster.
- Sie können mehrere Entspannungsregeln pro Feldname/URL-Kombination festlegen
- Die Namen der Formularfelder und die Aktionsadressen unterscheiden nicht zwischen Groß- und Kleinschreibung
Konfigurieren der HTML-Site-Scripting-Prüfung über die Befehlszeile
So konfigurieren Sie HTML Cross-Site Scripting, überprüfen Sie Aktionen und andere Parameter mithilfe 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-Profilthema .
<name> -crossSiteScriptingAction (([block] [learn] [log] [stats]) | [**none**])
- [appfw-Profilthema festlegen.
<name> **-crossSiteScriptingTransformUnsafeHTML** (ON | OFF)
- setze appfw-Profilthema.
<name> -crossSiteScriptingCheckCompleteURLs (ON | OFF)
- setze appfw-Profilthema.
- `
- checkRequestHeaders (ON \| OFF) <name> - CheckRequestQueryNonHtml (ON | OFF)
So konfigurieren Sie ein HTML Cross-Site Scripting, überprüfen Sie die Entspannungsregel mithilfe 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 zur Konfiguration der websiteübergreifenden HTML-Skriptprüfung
In der GUI können Sie das HTML Cross-Site Scripting Check im Bereich für das Profil konfigurieren, das mit Ihrer Anwendung verknüpft ist.
So konfigurieren oder ändern Sie die HTML Cross-Site Scripting Prüfung mit der GUI
- Navigieren Sie zu Application Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
- Klicken Sie im Bereich Erweiterte Einstellungen auf Sicherheitsprüfungen.
In der Tabelle zur Sicherheitsüberprüfung werden die aktuell konfigurierten Aktionseinstellungen für alle Sicherheitsüberprüfungen angezeigt. Sie haben 2 Möglichkeiten für die Konfiguration:
a. Wenn Sie die Aktionen Blockieren, Protokollieren, Statistikenund Lernen für das HTML Cross-Site Scripting aktivieren oder deaktivieren möchten, können Sie die Kontrollkästchen in der Tabelle aktivieren oder deaktivieren, auf OKklicken und dann auf Speichern und schließen klicken, um die Bereich Sicherheitsüberprüfung .
b. Wenn Sie weitere Optionen für diese Sicherheitsüberprüfung konfigurieren möchten, doppelklicken Sie auf HTML Cross-Site Scripting, oder wählen Sie die Zeile aus und klicken auf Aktionseinstellungen, um die folgenden Optionen anzuzeigen:
Siteübergreifende Skripts transformieren — Transformieren Sie unsichere Skript-Tags.
Vollständige URLs für Cross-Site-Scriptingprüfen — Anstatt nur den Abfrageteil der URL zu überprüfen, überprüfen Sie die vollständige URL auf websiteübergreifende Skriptverletzungen.
Nachdem Sie eine der obigen Einstellungen geändert haben, klicken Sie auf OK, um die Änderungen zu speichern und zur Tabelle Sicherheitsüberprü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.
Um die Einstellung Header der Anforderung überprüfen zu aktivieren oder zu deaktivieren, klicken Sie im Bereich Erweiterte Einstellungen auf Profileinstellungen. Aktivieren oder deaktivieren Sie in den allgemeinen Einstellungendas Kontrollkästchen Header der Anforderung ü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 dieses Profil konfiguriert haben, können Sie auf Fertig klicken, um zur Anwendungsfirewall > Profilzurückzukehren.
Um die Einstellung Anfrage für Abfrage ohne HTML prüfen zu aktivieren oder zu deaktivieren, klicken Sie im Bereich Erweiterte Einstellungen auf Profileinstellungen. Aktivieren oder deaktivieren Sie in den allgemeinen Einstellungendas Kontrollkästchen Anfrage Nicht-HTML abfragen. 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 dieses Profil konfiguriert haben, können Sie auf Fertig klicken, um zur App Firewall > Profilzurückzukehren.
So konfigurieren Sie eine Entspannungsregel für HTML Cross-Site Scripting über die GUI
- Navigieren Sie zu Application Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
- Klicken Sie im Bereich Erweiterte Einstellungen auf Relaxationsregeln.
- Doppelklicken Sie in der Tabelle Entspannungsregeln auf den Eintrag HTML Cross-Site Scripting, oder wählen Sie ihn aus und klicken Sie auf Bearbeiten.
- Führen Sie im Dialogfeld Regeln zur Lockerung von HTML-Site-Skripten die Vorgänge zum Hinzufügen, Bearbeiten, Löschen, Aktivierenoder Deaktivieren für Entspannungsregeln 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 “ ausgewählt haben.
So verwalten Sie die Entspannungsregeln für HTML Cross-Site Scripting mithilfe des Visualizers
Für eine konsolidierte Ansicht aller Entspannungsregeln können Sie die Zeile HTML Cross-Site Scripting in der Tabelle Entspannungsregeln markieren und auf Visualizerklicken. 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-Muster über die GUI an oder passen sie an
Sie können die GUI verwenden, um die Standardliste der für das Cross-Site Scripting zulässigen Attribute oder zulässigen Tags anzuzeigen oder anzupassen. Sie können auch die Standardliste der Site-übergreifenden Scripting-Muster anzeigen oder anpassen.
Die Standardlisten sind unter Anwendungsfirewall > Signaturen > Standardsignaturenangegeben. Wenn Sie kein Signaturobjekt an Ihr Profil binden, wird die standardmäßige Liste der zulässigen und verweigerten Cross-Site-Scripting, die im Objekt Standardsignaturen angegeben ist, vom Profil für die Sicherheitsüberprüfung von Cross-Site Scripting verwendet. Die im Standardsignaturobjekt angegebenen Tags, Attributes und Patterns sind schreibgeschützt. Sie können sie nicht bearbeiten oder ändern. Wenn Sie diese ändern oder ändern möchten, erstellen Sie eine Kopie des Default Signatures -Objekts, um ein benutzerdefiniertes Signaturobjekt zu erstellen. Nehmen Sie Änderungen in den Listen “Zulässig” oder “Verboten” im neuen benutzerdefinierten Signaturobjekt vor und verwenden Sie dieses Signaturobjekt in Ihrem Profil, das den Datenverkehr verarbeitet, für den Sie diese benutzerdefinierten Listen “Zulässige” und “Verweigerte” verwenden möchten.
- Um standardmäßige Cross-Site-Scripting-Muster anzuzeigen:
a. Navigieren Sie zu Application Firewall > Signaturen, wählen Sie Standardsignaturenund klicken Sie auf Bearbeiten. Klicken Sie anschließend auf SQL/Cross-Site-Scripting-Muster verwalten.
In der Tabelle “SQL/Cross-Site-Scripting-Pfade verwalten “ werden die folgenden drei Zeilen zum Cross-Site Scripting angezeigt:
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 Cross-Site-Scripting-Elemente (Tag, Attribut, Muster) anzuzeigen, die von der Web App Firewall Cross-Site Scripting Prüfung verwendet werden.
- So passen Sie Cross-Site-Scripting-Elementean: Sie können das benutzerdefinierte Signaturobjekt bearbeiten, um das zulässige Tag, zulässige Attribute und verweigerte Muster anzupassen. 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-Scripting-Musterverwalten, um die Tabelle SQL/Cross-Site-Scripting-Pfade verwalten anzuzeigen.
b. Wählen Sie die Site-übergreifende Ziel-Scripting-Zeile 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 stützen sich auf diese Elemente, um Angriffe zum Schutz Ihrer Anwendungen zu erkennen. Das Anpassen der Cross-Site-Scripting-Elemente kann Ihre Anwendung anfällig für Cross-Site-Scripting-Angriffe machen, wenn das erforderliche Pattern während der Bearbeitung entfernt wird.
Lernen Sie Verstöße gegen HTML-Site-Scripting (Cross-Site-Scripting)
Wenn das Lernen aktiviert ist, überwacht die Lernengine der NetScaler Web App Firewall den Datenverkehr und lernt die Verstöße gegen die Cross-Site Scripting Skripting-URL. Sie können die Regeln für Cross-Site-Scripting-URLs regelmäßig überprüfen und sie auf falsch positive Szenarien anwenden.
Hinweis:
In einer Cluster-Konfiguration müssen alle Knoten dieselbe Version haben, um die Regeln für die websiteübergreifende Skripting-URL bereitstellen zu können.
Als Teil der Lernkonfiguration bietet die Web App Firewall feinkörniges HTML-Site-Scripting-Lernen. Die Lernmaschine gibt Empfehlungen zum beobachteten Werttyp (Tag, Attribut, Muster) und zum entsprechenden Value-Ausdruck, 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 Entspannungsregel versehentlich alle diese Felder von der HTML-Site-Scripting-Überprüfung lockern.
Tipp:
Site-übergreifende Scripting-Tags, die länger als 12 Zeichen sind, werden nicht richtig erlernt 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’ hinzufügen.
Der Lernprozess von HTML Cross-Site Scripting reduziert Fehlalarme bei Cross-Site-Scripting-Angriffen. Wenn das Lernen aktiviert ist, können Sie alle Verstöße in einer Anforderung lernen und möglicherweise eine Lockerung auf mehrere Tags, Attribute oder Muster anwenden, ohne dass eine Wiederholung erforderlich ist.
Wenn eine Nutzlast beispielsweise 15 benutzerdefinierte Tags enthält, die jeweils zu einer Verletzung führen, können Sie die feinkörnige Entspannung für alle Tags anwenden, die als Verstoß gekennzeichnet sind, anstatt den Vorgang zu wiederholen, um die Entspannung für jeweils ein Tag anzuwenden.
Szenario 1: Lernen aktiviert und Block aktiviert: In diesem Szenario lernt die NetScaler-Appliance alle Verstöße in benutzerdefinierten Tags/Attributen/Mustern, und die Anforderung wird blockiert und jede Verletzung wird protokolliert. Das Verhalten ist konsistent für Verstöße, die im Formularfeld, Header oder Cookie identifiziert wurden.
Szenario 2: Lernen aktiviert und Block deaktiviert: In diesem Szenario lernt die NetScaler-Appliance die Verletzungen in benutzerdefinierten Tags/Attributen/Mustern und jede der Verletzungen wird protokolliert. Die Anfrage ist nicht gesperrt. Das Verhalten ist konsistent für Verstöße, die im Formularfeld, Header oder Cookie identifiziert wurden.
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*
Konfigurieren Sie die Cross-Site-Scripting-Feinkornentspannung Bypass um benutzerdefinierte Tags
Sie können die Site-übergreifende Entspannung von Skripten im Web-App-Firewall-Profil konfigurieren, um benutzerdefinierte Tags/Attribute/Muster zu Bypass, die nicht in der Zulassungsliste enthalten sind. Geben Sie in der Befehlszeile Folgendes ein:
bind appfw profile p1 -crossSiteScripting <string> <formActionURL> -valueType <valueType> <value expression>
Beispiel:
bind appfw profile profile1 -crossSiteScripting formfield1 http://1.1.1.1 -valueType Tag tag1
So zeigen Sie erlernte Daten mit der GUI an oder verwenden sie
- Navigieren Sie zu Application Firewall > Profile, markieren Sie das Zielprofil und klicken Sie auf Bearbeiten.
- 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, EineAktions-URL, Werttyp, Wertund Treffer angezeigt. Sie können die erlernten Regeln bereitstellen oder eine Regel bearbeiten, bevor Sie sie als Entspannungsregel 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 zusammenfassende 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 erlernten 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 Ergreifen einer Gruppe von Regeln mit einem Klick. Der größte Vorteil des Visualizers besteht darin, dass reguläre Ausdrücke empfohlen werden, um mehrere Regeln zu konsolidieren. 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 Zahl aus einer Dropdown-Liste auswählen. Der Visualizer für erlernte Regeln bietet die Möglichkeit, die Regeln zu bearbeiten und als Entspannungen einzusetzen. Oder Sie können die Regeln überspringen, um sie zu ignorieren.
Verwenden der Protokollfunktion mit der HTML Cross-Site Scripting Prüfung
Wenn die Protokollaktion aktiviert ist, werden die Verstöße gegen die HTML-Site-Scripting-Sicherheitsüberprüfung im Überwachungsprotokoll als AppFW_Cross-Site-Scripting-Verletzungen protokolliert. Die Web App Firewall unterstützt sowohl native als auch CEF-Protokollformate. Sie können die Protokolle auch an einen Remote-Syslog-Server senden.
So greifen Sie mit der Befehlszeile auf die Protokollmeldungen zu
Wechseln Sie zur Shell und schließen Sie die ns.logs im /var/log/
Ordner an, um auf die Protokollmeldungen zuzugreifen, die sich auf die HTML-Site-Scripting-Verstöße beziehen:
Shell
tail -f /var/log/ns.log | grep APPFW_cross-site scripting
Beispiel für eine Protokollmeldung bei Verstößen gegen die Cross-Site Scripting-Sicherheitsprüfung im CEF-Protokollformat:
Jul 11 00:45:51 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|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 Protokollmeldung von Verstößen gegen die Cross-Site Scripting-Sicherheitsüberprüfung im nativen 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 Protokollmeldungen zu
Die GUI enthält ein nützliches Tool (Syslog Viewer) zur Analyse der Logmeldungen. Sie haben mehrere Optionen für den Zugriff auf den Syslog Viewer:
- Navigieren Sie zu Application Firewall > Profile, wählen Sie das Zielprofil aus und klicken Sie auf Sicherheitsüberprüfungen. Markieren Sie die Zeile HTML Cross-Site Scripting und klicken Sie auf Protokolle. Wenn Sie direkt von der HTML-Cross-Site Scripting-Prüfung des Profils auf die Protokolle zugreifen, filtert die GUI die Protokollmeldungen heraus und zeigt nur die Protokolle an, die sich auf diese Verstöße gegen die Sicherheitsüberprüfung beziehen.
- Sie können auch auf den Syslog Viewer zugreifen, indem Sie zu NetScaler > System > Auditing navigieren. Klicken Sie im Abschnitt Prüfmeldungen auf den Link Syslog-Meldungen, um den Syslog-Viewer aufzurufen, in dem alle Protokollmeldungen angezeigt werden, einschließlich anderer Protokolle von Verstößen gegen die Sicherheitsüberprüfung. Dies ist nützlich für das Debuggen, wenn während der Anforderungsverarbeitung mehrere Sicherheitsüberprüfungen ausgelöst werden können.
- Navigieren Sie zu Application Firewall > Richtlinien > Überwachung. Klicken Sie im Abschnitt Prüfmeldungen auf den Link Syslog-Meldungen, um den Syslog-Viewer aufzurufen, in dem alle Protokollmeldungen angezeigt werden, einschließlich anderer Protokolle von Verstößen gegen die Sicherheitsüberprüfung.
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 nur Protokollmeldungen im Syslog-Viewer angezeigt, die sich auf die Sicherheitsüberprüfungen von HTML Cross-Site Scripting beziehen.
Wenn Sie den Cursor in die Zeile für eine bestimmte Protokollnachricht setzen, werden mehrere Optionen wie Modul, Ereignistyp, Ereignis-ID, Client-IP usw. unter der Protokollmeldung angezeigt. Sie können eine dieser Optionen auswählen, um die entsprechenden Informationen in der Protokollmeldung hervorzuheben.
Die Funktion“Zum Bereitstellen klicken” ist nur in der GUI verfügbar. Sie können den Syslog Viewer nicht nur zum Anzeigen der Protokolle verwenden, sondern auch zum Bereitstellen der Relaxierungsregeln für das HTML Cross-Site Scripting basierend auf den Protokollmeldungen für Verstöße gegen die Web App Firewall Sicherheitsüberprüfung. Die Protokollmeldungen müssen für diesen Vorgang im CEF-Protokollformat vorliegen. Die Funktion zum Bereitstellen klicken ist nur für Protokollmeldungen verfügbar, die durch die Blockierung (oder nicht Blockierung) generiert wurden. Sie können keine Entspannungsregel für eine Protokollmeldung über den Transformationsvorgang bereitstellen.
Um eine Entspannungsregel aus dem Syslog Viewer bereitzustellen, wählen Sie die Protokollmeldung aus. In der oberen rechten Ecke des Kästchens 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 Entspannungsregel bereitzustellen. “Bearbeiten und Bereitstellen”, “ Bereitstellen” und “ Alle bereitstellen “ sind als Aktionsoptionen verfügbar.
Die HTML-Site-Scripting-Regeln, die mithilfe der Option “Zum Bereitstellen klicken” bereitgestellt werden, sind die Empfehlungen zur Feinkornentspannung nicht enthalten.
Konfigurieren Sie die Funktion “Click to Deployment” über die GUI
- Wählen Sie im Syslog Viewer in den ModuloptionenAPPFW aus.
- Wählen Sie das app_Cross-Site-Scripting als Ereignistyp aus, um die entsprechenden Protokollmeldungen zu filtern.
- Markieren Sie das Kontrollkästchen, um die auszubringende Regel zu identifizieren.
- Verwenden Sie die Dropdownliste Aktion mit Optionen, um die Entspannungsregel bereitzustellen.
- Stellen Sie sicher, dass die Regel im entsprechenden Abschnitt zur Entspannungsregel angezeigt wird.
Statistiken für Verstöße gegen das HTML Cross-Site Scripting
Wenn die Statistikaktion aktiviert ist, wird der Zähler für die HTML-Site-Scripting-Prüfung inkrementiert, wenn die Web App Firewall Maßnahmen für diese Sicherheitsüberprüfung ergreift. 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 die Blockaktion beispielsweise aktiviert ist, erhöht die Anforderung für eine Seite, die 3 HTML Cross-Site Scripting Verletzungen enthält, den Statistikzähler um eins, da die Seite gesperrt wird, wenn die erste Verletzung erkannt wird. Wenn der Block jedoch deaktiviert ist, erhöht die Verarbeitung derselben Anforderung den Statistikzähler für Verstöße und die Protokolle um drei, da jeder Verstoß eine separate Protokollnachricht generiert.
Um HTML Cross-Site Scripting anzuzeigen, überprüfen Sie die Statistiken mithilfe der Befehlszeile
Geben Sie in der Befehlszeile 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-Site-Scripting-Statistiken über die GUI
- Navigieren Sie zu Sicherheit > Anwendungsfirewall > Profile > Statistiken.
- Greifen Sie im rechten Bereich auf den Statistik-Link zu.
- Verwenden Sie die Bildlaufleiste, um die Statistiken zu Verstößen und Protokollen des HTML-Site-Scripting anzuzeigen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.
Highlights
- Integrierte Unterstützung für den Schutz vor HTML-Site Scripting-Angriffen— Die NetScaler Web App Firewall schützt vor Cross-Site Scripting-Angriffen, indem sie eine Kombination aus zulässigen Attributen und Tags überwacht und Muster in der empfangenen Nutzlast verweigert. Alle integrierten standardmäßigen zulässigen Tags, zulässigen Attribute und verweigerten Muster, die von der websiteübergreifenden Skriptprüfung verwendet werden, sind in der Datei /netscaler/default_custom_settings.xml angegeben.
- Anpassung— Sie können die Standardliste von Tags, Attributen und Mustern ändern, um die Cross-Site Scripting-Sicherheitsüberprüfung 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 umfassender Sicherheitsschutz verwenden die SQL/Cross-Site-Scripting-Muster, die in dem Signaturobjekt angegeben sind, das an das Profil gebunden ist. Wenn kein Signaturobjekt an das Profil gebunden ist, werden die im Standardsignaturobjekt vorhandenen SQL/Cross-Site-Scripting-Muster verwendet.
- Transform—Beachten Sie Folgendes über den Transformationsvorgang:
Der Transformationsvorgang funktioniert unabhängig von den anderen Einstellungen der Cross-Site Scripting-Aktion. Wenn Transformation aktiviert ist und Block, Protokoll, Statistik und Lernen alle deaktiviert sind, werden Cross-Site-Scripting-Tags transformiert.
Wenn die Blockaktion aktiviert ist, hat sie Vorrang vor der Transformationsaktion.
- Feinkörnige Entspannung und Lernen. Optimieren Sie die Entspannungsregel, um eine Teilmenge von Cross-Site-Scripting-Elementen von der Sicherheitsüberprüfung zu lockern, aber den Rest zu erkennen Die Lern-Engine empfiehlt einen bestimmten Werttyp und Wertausdrücke basierend auf den beobachteten Daten.
- Zum Bereitstellen klicken— Wählen Sie im Syslog-Viewer eine oder mehrere Cross-Site Scripting -Verletzungsprotokollmeldungen aus und stellen Sie sie als Entspannungsregeln bereit.
- Charset—Der Standardzeichensatz für das Profil muss je nach Bedarf der Anwendung festgelegt werden. Standardmäßig ist der Zeichensatz des Profils 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 es sich um ISO-8859-1 handelt. Das offene Klammerzeichen (<) 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%uff1e“enthä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.
In diesem Artikel
- Site-übergreifendes Scripting Feinkörnige
- Konfigurieren der HTML-Site-Scripting-Prüfung über die Befehlszeile
- Verwenden der GUI zur Konfiguration der websiteübergreifenden HTML-Skriptprüfung
- Lernen Sie Verstöße gegen HTML-Site-Scripting (Cross-Site-Scripting)
- Verwenden der Protokollfunktion mit der HTML Cross-Site Scripting Prüfung
- Statistiken für Verstöße gegen das HTML Cross-Site Scripting
- Highlights