SQL-Grammatikschutz für HTML- und JSON-Nutzlast
Citrix Web App Firewall verwendet einen Pattern-Match-Ansatz zum Erkennen von SQL-Injection-Angriffen inHTTP
undJSON
Payloads. Der Ansatz verwendet eine Reihe von vordefinierten Schlüsselwörtern und (oder) Sonderzeichen, um einen Angriff zu erkennen und ihn als Verstoß zu kennzeichnen. Obwohl dieser Ansatz effektiv ist, kann dies zu vielen Fehlalarmen führen, was dazu führt, dass eine oder mehrere Entspannungsregeln hinzugefügt werden. Insbesondere wenn häufig verwendete Wörter wie “Select” und “From” in einer HTTP- oder JSON-Anfrage verwendet werden. Wir können Fehlalarme reduzieren, indem wir die Überprüfung des SQL-GrammatikschutzesHTML
und dieJSON
Nutzlast implementieren.
Im bestehenden Pattern-Match-Ansatz wird ein SQL-Injection-Angriff identifiziert, wenn ein vordefiniertes Schlüsselwort und/oder ein Sonderzeichen in einer HTTP-Anforderung vorhanden ist. In diesem Fall muss die Anweisung keine gültige SQL-Anweisung sein. Im grammatikbasierten Ansatz wird jedoch ein SQL-Injection-Angriff nur erkannt, wenn ein Schlüsselwort oder ein Sonderzeichen in einer SQL-Anweisung vorhanden ist oder Teil einer SQL-Anweisung ist, wodurch falsch positive Szenarien reduziert werden.
Szenario zur Nutzung des SQL-Grammatikschutzes
Betrachten Sie eine Erklärung “Wählen Sie meine Tickets aus und treffen wir uns auf der Gewerkschaftsstation” in einer HTTP-Anfrage. Obwohl die Anweisung keine gültige SQL-Anweisung ist, erkennt der vorhandene Pattern-Match-Ansatz die Anforderung als SQL-Injection-Angriff, da die Anweisung Schlüsselwörter wie “Select”, “und” und “Union” verwendet. Im Falle des SQL-Grammatikansatzes wird die Anweisung jedoch nicht als Verstoßangriff erkannt, da die Schlüsselwörter nicht in einer gültigen SQL-Anweisung vorhanden sind oder nicht Teil einer gültigen SQL-Anweisung sind.
Der grammatikbasierte Ansatz kann auch für die Erkennung von SQL-Injection-Angriffen inJSON
Payloads konfiguriert werden. Um eine Entspannungsregel hinzuzufügen, können Sie die bestehenden Entspannungsregeln wiederverwenden. Feinkörnige Entspannungsregeln gelten auch für die SQL-Grammatik, für Regeln mit “ValueType” “Schlüsselwort”. In derJSON
SQL-Grammatik kann die vorhandene URL-basierte Methode wiederverwendet werden.
Konfigurieren Sie den grammatikbasierten SQL-Schutz mit der CLI
Um die grammatikbasierte SQL-Erkennung zu implementieren, müssen Sie den Parameter “SqLinjectionGrammar” im Web App Firewall-Profil konfigurieren. Standardmäßig ist der Parameter deaktiviert. Alle vorhandenen SQL Injection-Aktionen werden mit Ausnahme des Lernens unterstützt. Jedes neue Profil, das nach einem Upgrade erstellt wurde, unterstützt die SQL-Injection-Grammatik und hat weiterhin den Standardtyp als “Sonderzeichen oder Schlüsselwort” und muss explizit aktiviert sein.
您一个der Eingabeaufforderung Folgendes ein:
add appfw profile –SQLInjectionAction -SQLInjectionGrammar ON/OFF
Beispiel:
add appfw profile profile1 –SQLInjectionAction Block –SQLInjectionGrammar ON
Konfigurieren Sie den SQL-Pattern-Match-Schutz und den grammatikbasierten Schutz über die Befehlszeilenschnittstelle
您要是sowohl Grammatik-basierte als欧什n-Match-Ansätze aktiviert haben, führt die Appliance zuerst eine grammatikbasierte Erkennung durch, und wenn eine SQL-Einschleusungserkennung mit dem Aktionstyp auf blockiert festgelegt ist, wird die Anforderung blockiert (ohne die Erkennung mithilfe von Pattern-Match zu überprüfen).
您一个der Eingabeaufforderung Folgendes ein:
add appfw profile –SQLInjectionAction -SQLInjectionGrammar ON –SQLInjectionType
Beispiel:
add appfw profile p1 –SQLInjectionAction block – SQLInjectionGrammar ON –SQLInjectionType SQLSplChar
Konfigurieren Sie SQL Injection Check nur mit grammatikbasiertem Schutz über die Befehlszeilenschnittstelle
您一个der Eingabeaufforderung Folgendes ein:
add appfw profile –SQLInjectionAction -SQLInjectionGrammar ON –SQLInjectionType None
Beispiel:
add appfw profile p1 –SQLInjectionAction block – SQLInjectionGrammar ON –SQLInjectionType None
Binden Sie Entspannungsregeln für den grammatikbasierten SQL-Schutz über die Befehlszeilenschnittstelle
Wenn Ihre Anwendung erfordert, dass Sie dieSQL
Einschleusungsprüfung für ein bestimmtes “ELEMENT” oder “ATTRIBUT” in der Nutzlast Bypass müssen, müssen Sie eine Entspannungsregel konfigurieren.
Hinweis:
Entspannungsregeln mit ValueType “Schlüsselwort” werden nur ausgewertet, wenn die Appliance mithilfe der
SQL
Grammatik die Erkennung durchführt.
DerSQL
Befehl Entspannungsregeln毛皮Einschleusungsin死去spektion haben die folgende Syntax. Geben Sie an der Eingabeaufforderung Folgendes ein:
bind appfw profile -SQLInjection [isRegex(REGEX| NOTREGE)] [-location ] [-valueType (Keywor|SpecialString|Wildchar) [][-isValueRegex (REGEX | NOTREGEX) ]]
Beispiel:
bind appfw profile p1 -sqlinjection abc http://10.10.10.10/
bind appfw profile p1 –sqlinjection 'abc[0-9]+' http://10.10.10.10/ -isregex regEX
bind appfw profile p1 –sqlinjection 'name' http://10.10.10.10/ -valueType Keyword 'selec[a-z]+' -isvalueRegex regEX
Konfigurieren Sie den grammatikbasierten SQL-Schutz für JSON-Nutzlast über die Befehlszeilenschnittstelle
Um die grammatikbasierte SQL-Erkennung für die JSON-Nutzlast zu implementieren, müssen Sie den Parameter “JsonSqLinjectionGrammar” im Web App Firewall-Profil konfigurieren. Standardmäßig ist der Parameter deaktiviert. Alle vorhandenen SQL Injection-Aktionen werden mit Ausnahme des Lernens unterstützt. Jedes neue Profil, das nach einem Upgrade erstellt wurde, unterstützt die SQL-Injection-Grammatik und hat weiterhin den Standardtyp als “Sonderzeichen oder Schlüsselwort” und Sie müssen es explizit aktivieren.
您一个der Eingabeaufforderung Folgendes ein:
add appfw profile -type JSON –JSONSQLInjectionAction -JSONSQLInjectionGrammar ON/OFF
Beispiel:
add appfw profile profile1 –type JSON –JSONSQLInjectionAction Block –JSONSQLInjectionGrammar ON
Konfigurieren Sie den SQL-Muster-Match-Schutz und den grammatikbasierten Schutz über die Befehlszeilenschnittstelle
您要是sowohl Grammatik-basierte als欧什n-Match-Prüfungen aktiviert haben, führt die Appliance zuerst eine grammatikbasierte Erkennung durch, und wenn eine SQL-Einschleusungserkennung mit dem Aktionstyp auf blockiert festgelegt ist, wird die Anforderung blockiert (ohne die Erkennung mithilfe von Pattern-Match zu überprüfen).
Hinweis:
Entspannungsregeln mit ValueType “Schlüsselwort” werden nur ausgewertet, wenn die Appliance die Erkennung mithilfe der SQL-Grammatik durchführt.
您一个der Eingabeaufforderung Folgendes ein:
add appfw profile -type JSON –JSONSQLInjectionAction -JSONSQLInjectionGrammar ON –JSONSQLInjectionType
Beispiel:
add appfw profile p1 –type JSON –JSONSQLInjectionAction block – JSONSQLInjectionGrammar ON –JSONSQLInjectionType SQLSplChar
Konfigurieren Sie den grammatikbasierten SQL-Schutz für JSON-Nutzlast über die Befehlszeilenschnittstelle
您一个der Eingabeaufforderung Folgendes ein:
add appfw profile -type JSON –JSONSQLInjectionAction -JSONSQLInjectionGrammar ON –JSONSQLInjectionType None`\
Beispiel:
add appfw profile p1 –type JSON –JSONSQLInjectionAction block – JSONSQLInjectionGrammar ON –JSONSQLInjectionType None
Binden Sie URL-basierte Entspannungsregeln für JSON SQL grammatikbasierten Schutz über die Befehlszeilenschnittstelle
Wenn Ihre Anwendung erfordert, dass Sie dieJSON
-Befehlseinschleusungsprüfung für ein bestimmtes “ELEMENT” oder “ATTRIBUT” in der Nutzlast umgehen müssen, können Sie eine Entspannungsregel konfigurieren. DerJSON
Befehl Entspannungsregeln毛皮Einschleusungsin死去spektion haben die folgende Syntax. Geben Sie an der Eingabeaufforderung Folgendes ein:
bind appfw profile –JSONCMDURL -comment -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )
Beispiel:
bind appfw profile p1 -sqlinjection abc http://10.10.10.10/
bind appfw profile p1 –sqlinjection 'abc[0-9]+' http:// 10.10.10.10/ -isregex regEX
bind appfw profile p1 –sqlinjection 'name' http://10.10.10.10/ -valueType Keyword 'selec[a-z]+' -isvalueRegex regEX
Konfigurieren Sie den grammatikbasierten SQL-Schutz über die grafische Benutzeroberfläche
Führen Sie die GUI-Prozedur ab, um die grammatikbasierte HTML SQL Injection Erkennung zu konfigurieren
- Navigieren Sie im Navigationsbereich zuSicherheit > Profile.
- Klicken Sie auf der SeiteProfileaufHinzufügen.
- Klicken Sie auf der SeiteCitrix Web App Firewall ProfileunterErweiterte EinstellungenaufSicherheitsprüfungen.
- Wechseln Sie im AbschnittSicherheitsprüfungenzu Einstellungen fürHTML SQL Injection.
- Klicken Sie auf das Symbol für die ausführbare Datei neben dem Kontrollkästchen.
Klicken Sie aufAktionseinstellungen, um die SeiteEinstellungen für HMTL SQL Injectionaufzurufen.
- Aktivieren Sie dasKontrollkästchen Mit SQL-Grammatikprüfen.
- Klicken Sie aufOK.
Konfigurieren Sie den grammatikbasierten SQL-Schutz für JSON-Nutzlast über die grafische Benutzeroberfläche
Führen Sie die GUI-Prozedur ab, um die grammatikbasierte JSON SQL Injection Erkennung zu konfigurieren.
- Navigieren Sie im Navigationsbereich zuSicherheit > Profile.
- Klicken Sie auf der SeiteProfileaufHinzufügen.
- Klicken Sie auf der SeiteCitrix Web App Firewall ProfileunterErweiterte EinstellungenaufSicherheitsprüfungen.
- Wechseln Sie im AbschnittSicherheitsprüfungenzuJSON SQL Injection-Einstellungen.
- Klicken Sie auf das Symbol für die ausführbare Datei neben dem Kontrollkästchen.
- Klicken Sie aufAktionseinstellungen, um die SeiteJSON SQL Injection Settingsaufzurufen.
- Aktivieren Sie dasKontrollkästchen Mit SQL-Grammatikprüfen.
Klicken Sie aufOK.
In diesem Artikel
- Szenario zur Nutzung des SQL-Grammatikschutzes
- Konfigurieren Sie den grammatikbasierten SQL-Schutz mit der CLI
- Konfigurieren Sie den SQL-Pattern-Match-Schutz und den grammatikbasierten Schutz über die Befehlszeilenschnittstelle
- Konfigurieren Sie SQL Injection Check nur mit grammatikbasiertem Schutz über die Befehlszeilenschnittstelle
- Binden Sie Entspannungsregeln für den grammatikbasierten SQL-Schutz über die Befehlszeilenschnittstelle
- Konfigurieren Sie den grammatikbasierten SQL-Schutz für JSON-Nutzlast über die Befehlszeilenschnittstelle
- Konfigurieren Sie den SQL-Muster-Match-Schutz und den grammatikbasierten Schutz über die Befehlszeilenschnittstelle
- Konfigurieren Sie den grammatikbasierten SQL-Schutz für JSON-Nutzlast über die Befehlszeilenschnittstelle
- Binden Sie URL-basierte Entspannungsregeln für JSON SQL grammatikbasierten Schutz über die Befehlszeilenschnittstelle
- Konfigurieren Sie den grammatikbasierten SQL-Schutz über die grafische Benutzeroberfläche
- Konfigurieren Sie den grammatikbasierten SQL-Schutz für JSON-Nutzlast über die grafische Benutzeroberfläche