ADC

XML-SQL-Injectionsprüfung

Die XML-SQL-Injectionsprüfung untersucht die Benutzeranforderungen auf mögliche XML-SQL-Injection-Angriffe. Wenn es injizierte SQL in XML-Payloads findet, blockiert es die Anforderungen.

Ein XML-SQL-Angriff kann Quellcode in eine Webanwendung einspeisen, sodass er interpretiert und als gültige SQL-Abfrage ausgeführt werden kann, um einen Datenbankvorgang mit böswilliger Absicht durchzuführen. Beispielsweise können XML-SQL-Angriffe gestartet werden, um unbefugten Zugriff auf den Inhalt einer Datenbank zu erhalten oder die gespeicherten Daten zu manipulieren. XML SQL Injection-Angriffe sind nicht nur häufig, sondern können auch sehr schädlich und teuer sein.

Das Eingrenzen der Berechtigungen der Datenbankbenutzer kann dazu beitragen, die Datenbank zu einem gewissen Grad zu schützen. Alle Datenbankbenutzer müssen nur die erforderlichen Berechtigungen erhalten, um ihre beabsichtigten Aufgaben abzuschließen, damit sie keine SQL-Abfragen ausführen können, um andere Aufgaben auszuführen. Beispielsweise darf ein schreibgeschützter Benutzer keine Datentabellen schreiben oder manipulieren dürfen. Die Web App Firewall XML SQL Injection Prüfung überprüft alle XML-Anforderungen, um spezielle Abwehrmaßnahmen gegen die Einschleusung von nicht autorisiertem SQL-Code zu bieten, der die Sicherheit unterbrechen könnte. Wenn die Web App Firewall nicht autorisierten SQL-Code in einer XML-Anforderung eines Benutzers erkennt, kann sie die Anforderung blockieren.

Die Citrix Web App Firewall überprüft das Vorhandensein von SQL-Schlüsselwörtern und Sonderzeichen, um den XML SQL Injection-Angriff zu identifizieren. Ein Standardsatz von Schlüsselwörtern und Sonderzeichen enthält bekannte Schlüsselwörter und Sonderzeichen, die häufig zum Starten von XML-SQL-Angriffen verwendet werden. Die Web App Firewall betrachtet drei Zeichen, einfaches gerades Anführungszeichen (‘), umgekehrter Schrägstrich () und Semikolon (;) als Sonderzeichen für die SQL-Sicherheitsprüfung. Sie können neue Muster hinzufügen und den Standardsatz bearbeiten, um die XML-SQL-Prüfung anzupassen.

Die Web App Firewall bietet verschiedene Aktionsoptionen für die Implementierung von XML SQL Injection-Schutz. Sie können die Anfrage blockieren, eine Nachricht in der Datei ns.log mit Details zu den beobachteten Verstößen protokollieren und Statistiken sammeln, um die Anzahl der beobachteten Angriffe zu verfolgen.

Zusätzlich zu Aktionen gibt es mehrere Parameter, die für die XML-SQL-Injectionsverarbeitung konfiguriert werden können. Sie können nach SQL-Platzhalterzeichensuchen. Sie können den XML SQL Injection-Typ ändern und eine der 4 Optionen auswählen (SQLKeyword, SQLSplchar, SQLSplCharandKeyword, SQLSplCharorKeyword), um anzugeben, wie die SQL-Schlüsselwörter und SQL-Sonderzeichen bei der Verarbeitung der XML Nutzlast. Mit dem Parameter XML SQL Comments Handling können Sie den Typ der Kommentare angeben, die während der XML SQL Injection-Erkennung überprüft oder ausgenommen werden müssen.

Sie können Entspannungen bereitstellen, um Fehlalarme zu vermeiden. Die XML-SQL-Prüfung der Web App Firewall wird für die Nutzlast der eingehenden Anforderungen durchgeführt, und Angriffszeichenfolgen werden identifiziert, selbst wenn sie über mehrere Zeilen verteilt sind. Die Prüfung sucht nach SQL-Injection-Strings 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.

Aktionsoptionen

Eine Aktion wird angewendet, wenn die XML-SQL-Injection-Prüfung eine SQL-Injection-Angriffszeichenfolge in der Anforderung erkennt. Die folgenden Aktionen sind verfügbar, um einen optimierten XML SQL Injection-Schutz für Ihre Anwendung zu konfigurieren:

Block— Wenn Sie Block aktivieren, wird die Blockaktion nur ausgelöst, wenn die Eingabe mit der XML-SQL-Injectionstypspezifikation übereinstimmt. Wenn beispielsweise SQLSplCharAndKeyword als XML-SQL-Injectionstyp konfiguriert ist, wird eine Anforderung nicht blockiert, wenn sie keine Schlüsselwörter enthält, selbst wenn SQL-Sonderzeichen in der Nutzlast erkannt werden. Eine solche Anforderung wird blockiert, wenn der XML-SQL-Injectionstyp auf SQLSplcharoder SQLSplCharorKeywordfestgelegt ist.

Log— Wenn Sie die Protokollfunktion aktivieren, generiert die XML-SQL-Injection-Prüfung Protokollmeldungen, die die ausgeführten Aktionen angeben. Wenn der Block deaktiviert ist, wird für jeden Speicherort (ELEMENT, ATTRIBUTE), an dem die XML-SQL-Verletzung erkannt wurde, 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— Wenn diese Option aktiviert ist, sammelt die Statistikfunktion Statistiken über Verstöße und Protokolle. Ein unerwarteter Anstieg im Statistikzähler deutet möglicherweise darauf hin, dass Ihre Anwendung angegriffen wird. Wenn legitime Anfragen blockiert werden, müssen Sie möglicherweise die Konfiguration erneut besuchen, um zu sehen, ob Sie neue Relaxationsregeln konfigurieren oder die vorhandenen ändern müssen.

XML-SQL-Parameter

Zusätzlich zu den Block-, Protokoll- und Statistikaktionen können Sie die folgenden Parameter für die XML SQL Injection-Prüfung konfigurieren:

Suche nach XML SQL-Platzhalterzeichen — Wildcard-Zeichenkönnen verwendet werden, um die Auswahl einer SQL-SELECT-Anweisung (Structured Query Language) zu erweitern. Diese Wildcard-Operatoren können in Verbindung mit den Operatoren LIKE und NOT LIKE verwendet werden, um einen Wert mit ähnlichen Werten zu vergleichen. Die Prozentzeichen (%) und Unterstriche (_) werden häufig als Platzhalter verwendet. Das Prozentzeichen entspricht dem Sternchen (*) -Platzhalterzeichen, das mit MS-DOS verwendet wird, und um Null, ein oder mehrere Zeichen in einem Feld abzugleichen. Der Unterstrich ähnelt dem MS-DOS-Fragezeichen (?) Platzhalterzeichen. Es entspricht einer einzelnen Zahl oder einem Zeichen in einem Ausdruck.

Sie können beispielsweise die folgende Abfrage verwenden, um eine Zeichenfolgensuche durchzuführen, um alle Kunden zu suchen, deren Namen das D-Zeichen enthalten.

SELECT * from customer WHERE name like "%D%"

Im folgenden Beispiel werden die Operatoren kombiniert, um Gehaltswerte zu finden, die 0 als zweites und drittes Zeichen haben.

SELECT * from customer WHERE salary like '_00%

Verschiedene DBMS-Anbieter haben die Platzhalterzeichen durch Hinzufügen zusätzlicher Operatoren erweitert. Die Citrix Web App Firewall kann vor Angriffen schützen, die durch das Eingeben dieser Platzhalterzeichen gestartet werden. Die 5 Standardplatzhalterzeichen sind Prozent (%), Unterstrich (_), Caret (^), öffnende eckige Klammer ([) und schließende eckige Klammer (]). Dieser Schutz gilt sowohl für HTML- als auch für XML-Profile.

Die Standard-Platzhalterzeichen sind eine Liste von Literalen, die in der *Standardsignaturen angegeben sind:

-  <wildchar type=”LITERAL”>%</wildchar>
-  <wildchar type=”LITERAL”>_</wildchar>
-  <wildchar type=”LITERAL”>^</wildchar>
-  <wildchar type=”LITERAL”>[</wildchar>
-  <wildchar type=”LITERAL”>]</wildchar>
<!--NeedCopy-->

Platzhalterzeichen in einem Angriff können PCRE sein, wie [^A-F]. Die Web App Firewall unterstützt auch PCRE-Platzhalter, aber die obigen Platzhalterzeichen reichen aus, um die meisten Angriffe zu blockieren.

Hinweis:

Die XML-SQL-Platzhalterzeichenprüfung unterscheidet sich von der XML-SQL-Sonderzeichenprüfung . Diese Option muss mit Vorsicht verwendet werden, um Falschmeldungen zu vermeiden.

Prüfanforderung mit SQL Injection Type— Die Web App Firewall bietet 4 Optionen, um die gewünschte Strenge für die SQL Injection-Inspektion zu implementieren, basierend auf den individuellen Anforderungen der Anwendung. Die Anforderung wird anhand der Einschleusungstypspezifikation zum Erkennen von SQL-Verletzungen überprüft. Die 4 SQL-Injection-Typ-Optionen sind:

  • SQL-Sonderzeichen und Schlüsselwort—Sowohl ein SQL-Schlüsselwort als auch ein SQL-Sonderzeichen müssen am geprüften Speicherort vorhanden sein, um eine SQL-Verletzung auszulösen. Diese am wenigsten einschränkende Einstellung ist auch die Standardeinstellung.
  • SQL-Sonderzeichen—Mindestens eines der Sonderzeichen muss in der verarbeiteten Nutzlastzeichenfolge vorhanden sein, um eine SQL-Verletzung auszulösen.
  • SQL-Schlüsselwort—Mindestens eines der angegebenen SQL-Schlüsselwörter muss in der verarbeiteten Nutzlastzeichenfolge vorhanden sein, um eine SQL-Verletzung auszulösen. Wählen Sie diese Option nicht ohne Berücksichtigung. Um Fehlalarme zu vermeiden, stellen Sie sicher, dass keines der Schlüsselwörter in den Eingaben erwartet wird.
  • SQL-Sonderzeichen oder Schlüsselwort—Entweder das Schlüsselwort oder die Sonderzeichenfolge muss in der Nutzlast vorhanden sein, um die Sicherheitsüberprüfungsverletzung auszulösen.

Tipp

Wenn Sie die Option SQL-Sonderzeichen auswählen, überspringt die Web App Firewall Zeichenfolgen, die keine Sonderzeichen enthalten. Da die meisten SQL-Server keine SQL-Befehle verarbeiten, denen kein Sonderzeichen vorausgeht, kann die Aktivierung dieser Option die Belastung der Web App Firewall erheblich reduzieren und die Verarbeitung beschleunigen, ohne Ihre geschützten Websites zu gefährden.

SQL-Kommentarbehandlung— Standardmäßig analysiert und überprüft die Web App Firewall alle Kommentare in XML-Daten auf injizierte SQL-Befehle. Viele SQL-Server ignorieren alles in einem Kommentar, selbst wenn ein SQL-Sonderzeichen vorangestellt ist. Wenn Ihr XML-SQL-Server Kommentare ignoriert, können Sie die Web App Firewall so konfigurieren, dass Kommentare beim Überprüfen von Anforderungen für injizierte SQL übersprungen werden. Die Optionen zur Verarbeitung von XML SQL-Kommentaren sind:

  • ANSI—Überspringen Sie SQL-Kommentare im ANSI-Format, die normalerweise von UNIX-basierten SQL-Datenbanken verwendet werden.
  • Verschachtelt— Verschachtelte SQL-Kommentare überspringen, die normalerweise von Microsoft SQL Server verwendet werden.
  • ANSI/verschachtelt—Überspringen Sie Kommentare, die sowohl den ANSI- als auch den verschachtelten SQL-Kommentarstandards entsprechen. Kommentare, die nur dem ANSI-Standard oder nur dem verschachtelten Standard entsprechen, werden weiterhin auf injizierte SQL überprüft.
  • Alle Kommentare prüfen— Überprüfen Sie die gesamte Anforderung für injizierte SQL, ohne etwas zu überspringen. Dies ist die Standardeinstellung.

Tipp

In den meisten Fällen dürfen Sie die Option “Verschachtelt” oder “Ansi/verschachtelt” nicht wählen, es sei denn, Ihre Backend-Datenbank läuft auf Microsoft SQL Server. Die meisten anderen Typen von SQL Server-Software erkennen verschachtelte Kommentare nicht. Wenn verschachtelte Kommentare in einer Anforderung angezeigt werden, die an einen anderen SQL-Servertyp weitergeleitet wird, deutet dies möglicherweise auf einen Versuch hin, die Sicherheit auf diesem Server zu verletzen.

Entspannungsregeln

Wenn Ihre Anwendung erfordert, dass Sie die XML-SQL-Injection-Inspektion für ein bestimmtes ELEMENT oder ATTRIBUTE in der XML-Payload umgehen müssen, können Sie eine Relaxationsregel konfigurieren. Die Relaxationsregeln für XML SQL Injection Überprüfung weisen die folgenden Parameter auf:

  • Name: Sie können Literalzeichenfolgen oder reguläre Ausdrücke verwenden, um den Namen des ELEMENT oder des ATTRIBUTE zu konfigurieren. Der folgende Ausdruck befreit alle ELEMENTS, die mit der Zeichenfolge PurchaseOrder_ beginnen, gefolgt von einer Zeichenfolge mit mindestens zwei und höchstens zehn Zeichen lang sind:

    Kommentar: “Ausgenommen XML-SQL-Prüfung für Bestellelemente”

    XMLSQLInjection:  "PurchaseOrder_[0-9A-Za-z]{2,10}"

    IsRegex:  REGEX          Location:  ELEMENT

    State:  ENABLED
<!--NeedCopy-->

Hinweis: Bei den Namen wird die Groß- und Kleinschreibung unterschieden. 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)      XMLSQLInjection:  XYZ    IsRegex:  NOTREGEX

        Location:  ELEMENT       State:  ENABLED

2)      XMLSQLInjection:  xyz    IsRegex:  NOTREGEX

        Location:  ELEMENT       State:  ENABLED

3)      XMLSQLInjection:  xyz    IsRegex:  NOTREGEX

        Location:  ATTRIBUTE     State:  ENABLED

4)      XMLSQLInjection:  XYZ    IsRegex:  NOTREGEX

        Location:  ATTRIBUTE     State:  ENABLED
<!--NeedCopy-->
  • Speicherort: Sie können den Speicherort der XML-SQL-Inspektionsausnahme 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 möchten, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder das Zulassen eines Angriffs, den die XML-SQL-Injection-Inspektion sonst blockiert hätte.

Verwenden der Befehlszeile zum Konfigurieren der XML SQL Injection Check

So konfigurieren Sie XML SQL Injection-Aktionen und andere Parameter mit der Befehlszeile:

In der Befehlszeilenschnittstelle können Sie entweder den Befehl set appfw profile oder den Befehl add appfw profile verwenden, um den XML SQL Injection-Schutz zu konfigurieren. Sie können die Block-, Protokoll- und Statistikaktionen aktivieren. Wählen Sie den Typ des SQL-Angriffsmusters (Schlüsselwörter, Platzhalterzeichen, Sonderzeichenfolgen) aus, den Sie in den Nutzlasten erkennen möchten. Verwenden Sie den Befehl unset appfw profile, um die konfigurierten Einstellungen wieder auf ihre Standardwerte zurückzusetzen. Jeder der folgenden Befehle legt nur einen Parameter fest, aber Sie können mehrere Parameter in einen einzelnen Befehl aufnehmen:

  • set appfw profile <name> **-XMLSQLInjectionAction** (([block] [log] [stats]) | [none])
  • set appfw profile <name> -XMLSQLInjectionCheckSQLWildChars (ON |OFF)
  • set appfw profile <name> -XMLSQLInjectionType ([SQLKeyword] | [SQLSplChar] | [SQLSplCharANDKeyword] | [SQLSplCharORKeyword])
  • set appfw profile <name> -XMLSQLInjectionParseComments ([checkall] | [ansi|nested] | [ansinested])

So konfigurieren Sie eine SQL Injection-Relaxationsregel mit der Befehlszeile

Verwenden Sie den Befehl bind oder unbind, um Relaxationsregeln wie folgt hinzuzufügen oder zu löschen:

-  bind appfw profile <name> -XMLSQLInjection <string> [isRegex (REGEX | NOTREGEX)] [-location ( ELEMENT | ATTRIBUTE )] –comment <string> [-state ( ENABLED | DISABLED )]
-  unbind appfw profile <name> -XMLSQLInjection <String>
<!--NeedCopy-->

Beispiel:

> bind appfw profile test_profile -XMLSQLInjection "PurchaseOrder_[0-9A-Za-z]{2,15}" -isregex REGEX -location ATTRIBUTE

> unbind appfw profile test_profile –XMLSQLInjection "PurchaseOrder_[0-9A-Za-z]{2,15}" -location ATTRIBUTE
<!--NeedCopy-->

Verwenden der GUI zum Konfigurieren der XMLSQL-Injectionssicherheitsprüfung

In der GUI können Sie die Sicherheitsprüfung für XML SQL Injection im Bereich für das Profil konfigurieren, das Ihrer Anwendung zugeordnet ist.

So konfigurieren oder ändern Sie die XML-SQL-Injection-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 Block-, Protokoll- und Statistikaktionen für XML-SQL-Injection aktivieren oder deaktivieren möchten, können Sie die Kontrollkästchen in der Tabelle aktivieren oder deaktivieren, klicken Sie auf OK, und klicken Sie dann auf Speichern und Schließen, um den Sicherheitsüberprüfungsbereich zu schließen.

b. Wenn Sie zusätzliche Optionen für diese Sicherheitsprüfung konfigurieren möchten, doppelklicken Sie auf XML SQL Injection, oder wählen Sie die Zeile aus und klicken Sie auf Aktionseinstellungen, um die folgenden Optionen anzuzeigen:

Nach SQL-Platzhalterzeichen suchen— Betrachten Sie SQL-Platzhalterzeichen in der Nutzlast als Angriffsmuster.

Überprüfen Sie die Anforderung mit—Type der SQL-Einschleusung (SqlKeyword, SqlSplChar, SqlSplcharandKeyword oder SqlSplcharorKeyword), die überprüft werden soll.

SQL Comments Handling— Art der zu prüfenden Kommentare (Alle Kommentare überprüfen, ANSI, verschachtelte oder ANSI/verschachtelte Kommentare).

Nachdem Sie eine der oben genannten Einstellungen geändert haben, klicken Sie auf OK, um die Änderungen zu speichern und zur Tabelle Sicherheitsprüfungen zurückzukehren. Sie können bei Bedarf weitere Sicherheitsprüfungen konfigurieren. Klicken Sie auf OK, um alle Änderungen zu speichern, die Sie im Abschnitt 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 SQL Injection-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 SQL Injection, oder wählen Sie ihn aus, und klicken Sie auf Bearbeiten .
  4. Führen Sie im Dialogfeld XML-SQL-Injection-Relaxationsregeln die Vorgänge Hinzufügen, Bearbeiten, Löschen, Aktivieren oder Deaktivieren für Relaxationsregeln aus.

So verwalten Sie XML SQL Injection-Relaxationsregeln mithilfe des Visualizers

Um eine konsolidierte Ansicht aller Relaxationsregeln zu erhalten, können Sie die Zeile XML SQL Injection 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 SQL Injection-Muster mit der GUI an oder passenSie sie an:

Sie können die GUI verwenden, um die SQL-Muster anzuzeigen oder anzupassen.

Die Standard-SQL-Muster werden unter Web App Firewall > Signaturen > *Standardsignaturen angegeben. Wenn Sie kein Signaturobjekt an Ihr Profil binden, werden die im Default Signatures -Objekt angegebenen Standard-SQL-Muster vom Profil für die Verarbeitung von XML SQL Injection Sicherheitsprüfung verwendet. Die Regeln und Muster im Default Signatures -Objekt sind schreibgeschützt. Sie können sie nicht bearbeiten oder ändern. Wenn Sie diese Muster ändern oder ändern möchten, erstellen Sie ein benutzerdefiniertes Signaturobjekt, indem Sie eine Kopie des Standardsignatur-Objekts erstellen und die SQL-Muster ändern. Verwenden Sie das benutzerdefinierte Signaturobjekt in dem Profil, das den Datenverkehr verarbeitet, für den Sie diese benutzerdefinierten SQL-Muster verwenden möchten.

Weitere Informationen finden Sie unter Signaturen.

So zeigen Sie SQL-Standardmuster an:

a. 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 Paths verwalten zeigt die folgenden vier Zeilen in Bezug auf SQL Injection:

Injection (not_alphanum, SQL)/ Keyword

Injection (not_alphanum, SQL)/ specialstring

Injection (not_alphanum, SQL)/ transformrules/transform

Injection (not_alphanum, SQL)/ wildchar
<!--NeedCopy-->

b. Wählen Sie eine Zeile aus, und klicken Sie auf Elemente verwalten, um die entsprechenden SQL-Muster (Schlüsselwörter, spezielle Zeichenfolgen, Transformationsregeln oder Platzhalterzeichen) anzuzeigen, die von der SQL Injection Check der Web App Firewall verwendet werden.

So passen Sie SQL-Muster an: Sie können ein benutzerdefiniertes Signaturobjekt bearbeiten, um die SQL-Schlüsselwörter, Sonderzeichenfolgen und Platzhalterzeichen anzupassen. Sie können neue Einträge hinzufügen oder vorhandene entfernen. Sie können die Transformationsregeln für die SQL-Spezialzeichenfolgen ändern.

a. 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.

b. Wählen Sie die SQL-Zielzeile aus.

i. Klicken Sie auf Elemente verwalten, um das entsprechende SQL-Element hinzuzufügen, zu bearbeitenoder zu entfernen.

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

Warnung

Sie müssen sehr vorsichtig sein, wenn Sie ein Standard-SQL-Element entfernen oder ändern oder den SQL-Pfad löschen, um die gesamte Zeile zu entfernen. Die Signaturregeln sowie die Sicherheitsprüfung von XML SQL Injection basieren auf diesen Elementen, um SQL Injection-Angriffe zu erkennen, um Ihre Anwendungen zu schützen. Das Anpassen der SQL-Muster kann Ihre Anwendung anfällig für XML-SQL-Angriffe machen, wenn das erforderliche Muster während der Bearbeitung entfernt wird.

Verwenden der Protokollfunktion mit der XML-SQL-Injectionsprüfung

Wenn die Protokollaktion aktiviert ist, werden die XML SQL Injection Sicherheitsüberprüfungsverletzungen im Überwachungsprotokoll als APPFW_XML_SQL-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 über die Befehlszeile auf die Protokollmeldungenzu:

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_SQL
<!--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 SQL Injection, und klicken Sie auf Protokolle . Wenn Sie direkt über die XML SQL Injection-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 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 Vieweranzuzeigen, 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-SQL-Injection-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_SQL aktivieren und auf die Schaltfläche Übernehmen klicken, werden im Syslog-Viewer nur Protokollmeldungen angezeigt, die sich auf die Sicherheitsüberprüfungsverletzungen von XML SQL Injection beziehen.

Wenn Sie den Cursor in der Zeile für eine bestimmte Protokollmeldung platzieren, werden unter der Protokollmeldung mehrere Optionen angezeigt, z. B. Modul, Ereignistyp, Ereignis-IDund Client-IP. Sie können eine dieser Optionen auswählen, um die entsprechenden Informationen in der Protokollmeldung hervorzuheben.

Statistiken für die XML-SQL-Injectionsverletzungen

Wenn die Aktion Statistik aktiviert ist, wird der Zähler für die XML-SQL-Injection-Prüfung erhöht, wenn die Web App Firewall eine Aktion für diese Sicherheitsprüfung ausfü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-SQL-Injection-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-SQL-Injection-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-SQL-Injection-Statistiken mit der GUI an

  1. Navigieren Sie zu System > Sicherheit > Web App Firewall .
  2. Greifen Sie im rechten Bereich auf den Statistik-Link zu.
  3. Verwenden Sie die Bildlaufleiste, um die Statistiken über XML-SQL-Injection-Verletzungen und -Protokolle anzuzeigen. Die Statistiktabelle enthält Echtzeitdaten und wird alle 7 Sekunden aktualisiert.