ADC

Überprüfung für HTML-Befehlseinschleusungsschutz

Die HTML-Befehlseinschleusungsprüfung untersucht, ob der eingehende Datenverkehr nicht autorisierte Befehle enthält, die die Systemsicherheit unterbrechen oder das System ändern. Wenn der Datenverkehr bei Erkennung böswillige Befehle enthält, blockiert die Appliance die Anfrage oder führt die konfigurierte Aktion aus.

Das NetScaler Web App Firewall-Profil wurde jetzt um eine neue Sicherheitsüberprüfung für Command-Injection-Angriffe erweitert. Wenn die Command Injection Security Check den Datenverkehr untersucht und bösartige Befehle erkennt, blockiert die Appliance die Anfrage oder führt die konfigurierte Aktion aus.

Bei einem Command-Injection-Angriff zielt der Angreifer darauf ab, nicht autorisierte Befehle auf dem NetScaler-Betriebssystem auszuführen. Um dies zu erreichen, schleust der Angreifer Betriebssystembefehle über eine anfällige Anwendung ein. Eine NetScaler-Appliance ist anfällig für Injektionsangriffe, wenn die Anwendung unsichere Daten (Formulare, Cookies oder Header) an die System-Shell weitergibt.

So funktioniert der Befehlseinschleusungsschutz

  1. Bei einer eingehenden Anfrage untersucht WAF den Traffic auf Schlüsselwörter oder Sonderzeichen. Wenn die eingehende Anfrage keine Muster enthält, die mit einem der abgelehnten Schlüsselwörter oder Sonderzeichen übereinstimmen, ist die Anfrage zulässig. Andernfalls wird die Anforderung basierend auf der konfigurierten Aktion blockiert, verworfen oder umgeleitet.

  2. Wenn Sie es vorziehen, ein Schlüsselwort oder ein Sonderzeichen von der Liste auszunehmen, können Sie eine Lockerungsregel anwenden, um die Sicherheitsüberprüfung unter bestimmten Bedingungen zu Bypass.
  3. Sie können die Protokollierung aktivieren, um Protokollmeldungen zu generieren 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.
  4. Sie können die Statistikfunktion auch aktivieren, um statistische Daten zu Verstößen und Protokollen zu sammeln. Ein unerwarteter Anstieg im Statistikzähler deutet möglicherweise darauf hin, dass Ihre Anwendung angegriffen wird. Wenn legitime Anforderungen blockiert werden, müssen Sie möglicherweise die Konfiguration erneut aufrufen, um festzustellen, ob Sie die neue Entspannungsregel konfigurieren oder die vorhandene ändern müssen.

Schlüsselwörter und Sonderzeichen, die für die Befehlseinschleusung verweigert werden

Um Command-Injection-Angriffe zu erkennen und zu blockieren, verfügt die Appliance über eine Reihe von Mustern (Schlüsselwörter und Sonderzeichen), die in der Standardsignaturdatei definiert sind. Es folgt eine Liste der blockierten Schlüsselwörter beim Erkennen von Befehlseinschleusungsverstößen

    <commandinjection>
      <keyword type="LITERAL" builtin="ON">7z</keyword>
      <keyword type="LITERAL" builtin="ON">7za</keyword>
      <keyword type="LITERAL" builtin="ON">7zr</keyword>
…
</commandinjection>
<!--NeedCopy-->

In der Signaturdatei definierte Sonderzeichen sind: | ; & $ > < ' \ ! >> #

Konfiguration des Command Injection Check mithilfe der CLI

In der Befehlszeilenschnittstelle können Sie entweder den Befehl set the profile oder den Befehl add the profile verwenden, um die Einstellungen für die Befehlsinjektion zu konfigurieren. Sie können die Block-, Protokoll- und Statistikaktionen aktivieren. Sie müssen auch die Schlüsselwörter und Zeichenketten festlegen, die Sie in den Payloads erkennen möchten.

Geben Sie in der Befehlszeile Folgendes ein:

set appfw profile <profile-name> –cmdInjectionAction <action-name> -CMDInjectionType <CMDInjectionType>]

Hinweis:

Standardmäßig ist die Befehlseinschleusungsaktion auf “Keine” festgelegt. Außerdem wird der Standardeinschleusungsstyp des Befehls als festgelegt CmdSplCharANDKeyWord.

Beispiel:

set appfw profile profile1 -cmdInjectionAction block -CMDInjectionType CmdSplChar

Dabei sind die verfügbaren Befehlsinjektionsaktionen wie folgt:

  • Keine — Deaktiviert den Befehlseinschleusungsschutz.
  • Log — Protokollieren von Befehlseinschleusungsverstößen für die Sicherheitsprüfung
  • Blockieren - blockiert Datenverkehr, der gegen die Befehlseinschleusungsüberprüfung verstößt.
  • Statistik - Generiert Statistiken für Sicherheitsverletzungen durch Befehlseinschleusung.

Dabei sind die folgenden Befehlsinjektionstypen verfügbar:

  • Befehl splChar. Prüft Sonderzeichen
  • cmdSchlüsselwort. Prüft Schlüsselwörter zur Befehlseinspeisung
  • cmdSPLCharandSchlüsselwort. Prüft Sonderzeichen und Befehlseinfügung. Schlüsselwörter und Blöcke nur, wenn beide vorhanden sind.
  • cmdSPLCHARORSchlüsselwort. Prüft Sonderzeichen und Schlüsselwörter zur Befehlseinspeisung und blockiert, wenn eines von ihnen gefunden wird.

Konfiguration von Relaxationsregeln für die Schutzüberprüfung durch Befehlseinschleusung

Wenn Ihre Anwendung verlangt, dass Sie die Command Injection Inspection für ein bestimmtes ELEMENT oder ATTRIBUTE in der Payload Bypass, können Sie eine Relaxationsregel konfigurieren.

Die Relaxationsregeln für den Befehl Injection Inspection haben die folgende Syntax:

bind appfw profile <profile name> –cmdInjection <string> <URL> -isregex <REGEX/NOTREGEX>

Beispiel für Relaxationsregel für Regex im Header

bind appfw profile sample -CMDInjection hdr "http://10.10.10.10/" -location heaDER -valueType Keyword '[a-z]+grep' -isvalueRegex REGEX

Infolgedessen befreit die Injektion den Befehl Injection Check ermöglicht Header, der Varianten von “grep” hdr enthält.

bind appfw profile sample -CMDInjection ck_login "http://10.10.10.10/" -location cookie -valueType Keyword 'pkg[a-z]+' -isvalueRegex REGEX

Konfiguration der Befehlsinjektionsprüfung mithilfe der NetScaler-GUI

Gehen Sie wie folgt vor, um den Befehl Injection Check zu konfigurieren.

  1. Navigieren Sie zu Sicherheit > NetScaler Web App Firewall und Profile.
  2. Wählen Sie auf der Seite Profile ein Profil aus, und klicken Sie auf Bearbeiten.
  3. Gehen Sie auf der NetScaler Web App Firewall-Profilseite zum Abschnitt Erweiterte Einstellungen und klicken Sie auf Sicherheitsprüfungen.
  4. Wählen Sie im Abschnitt Sicherheitsprüfungen die Option HTML Command Injection aus und klicken Sie auf Aktionseinstellungen.
  5. Stellen Sie auf der Seite mit den Einstellungen für die HTML-Command Injection die folgenden Parameter ein:

    1. Aktionen. Wählen Sie eine oder mehrere Aktionen aus, die für die Sicherheitsprüfung durch Command Injection ausgeführt werden sollen.
    2. Überprüfen Sie die Anfrage enthält. Wählen Sie ein Befehlseinschleusungsmuster, um zu überprüfen, ob die eingehende Anforderung das Muster enthält.
  6. Klicken Sie auf OK.

Anzeigen oder Anpassen von Befehlseinschleusungsmustern über die grafische Benutzeroberfläche

Sie können die GUI verwenden, um die Injection-Pattern des HTML-Befehls anzuzeigen oder anzupassen.

Die Standardbefehl-Einschleusungsmuster sind in der Standardsignaturdatei angegeben. Wenn Sie kein Signaturobjekt an Ihr Profil binden, werden die im Standardsignatur-Objekt angegebenen Standard-HTML-Befehlseinschleusungsmuster vom Profil für die Verarbeitung der Sicherheitsprüfung der Befehlseinschleusung verwendet. Die im Standardsignaturobjekt angegebenen Regeln und Muster sind schreibgeschützt. Sie können sie nicht bearbeiten oder ändern. Wenn Sie diese Muster ändern oder ändern möchten, erstellen Sie eine Kopie des Standardobjekts sSignatures, um ein benutzerdefiniertes Signaturobjekt zu erstellen. Nehmen Sie Änderungen an den Befehlseinschleusungsmustern im neuen benutzerdefinierten Signaturobjekt vor und verwenden Sie dieses Signaturobjekt in Ihrem Profil, das den Datenverkehr verarbeitet, für den Sie diese benutzerdefinierten Muster verwenden möchten.

Weitere Informationen finden Sie unter Signaturen

So zeigen Sie die Standardeinschleusungsmuster für Befehle über die GUI an:

  1. Navigieren Sie zu Application Firewall > Signaturen, wählen Sie *Standardsignaturenaus und klicken Sie auf Bearbeiten.

  2. Klicken Sie auf CMD/SQL/XSS-Muster verwalten. Die Tabelle CMD/SQL/XSS Paths (schreibgeschützt) zeigt Muster im Zusammenhang mit der CMD/SQL/XSS-Einschleusung:

Anzeigen der Standardeinschleusungsmuster für Befehle

  1. Wählen Sie eine Zeile aus und klicken Sie auf Elemente verwalten, um die entsprechenden Befehlseinschleusungsmuster (Schlüsselwörter, spezielle Zeichenfolgen, Transformationsregeln oder Platzhalterzeichen) anzuzeigen, die von der Injection-Prüfung des Web App Firewall-Befehls verwendet werden.

So passen Sie ein Befehlseinschleusungsmuster mit der GUI an

Sie können das benutzerdefinierte Signaturobjekt bearbeiten, um die CMD-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 spezielle Zeichenfolgen für die Befehlseinschleusung ändern.

  1. Navigieren Sie zu Application Firewall > Signaturen, markieren Sie die benutzerdefinierte Zielsignatur und klicken Sie auf Hinzufügen. Klicken Sie auf CMD/SQL/XSS-Muster verwalten.
  2. Wählen Sie auf der Seite CMD/SQL/XSS-Pfade verwalten die Ziel-CMD-Einschleusungszeile aus.
  3. Klicken Sie auf Elemente verwalten, Hinzufügen oder Entfernen eines Befehlseinschleusungselements.

    Warnung:

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

Anzeigen von Statistiken zum Befehlseinschleusungsdatenverkehr und -verletzungen

Auf der Seite NetScaler Web App Firewall Statistics werden Details zu Sicherheitsdatenverkehr und Sicherheitsverletzungen in tabellarischer oder grafischer Form angezeigt.

So zeigen Sie Sicherheitsstatistiken mithilfe der Befehlszeilenschnittstelle an.

Geben Sie in der Befehlszeile Folgendes ein:

stat appfw profile profile1

Appfw-Profil Verkehrsstatistiken Geschwindigkeit (/s) Gesamt
Anfragen 0 0
Byte anfragen 0 0
Antworten 0 0
Antwort Byte 0 0
Bricht ab 0 0
Leitet 0 0
Langfristige Reaktionszeit (ms) 0
Letzte Reaktionszeit von Ave (ms) 0
Statistiken zu HTML/XML/JSON-Verstößen Geschwindigkeit (/s) Gesamt
Start-URL 0 0
URL verweigern 0 0
Referer-Header 0 0
Pufferüberlauf 0 0
Cookie-Konsistenz 0 0
Cookie-Entführung 0 0
CSRF-Formular-Tag 0 0
Site-übergreifendes HTML 0 0
HTML SQL injection 0 0
Feld-Format 0 0
Field consistency 0 0
Kreditkarte 0 0
Sicheres Objekt 0 0
Verstöße gegen die Signatur 0 0
Inhaltstyp 0 0
JSON-Denial-of-Service-Angriff 0 0
JSON-SQL-Einschleusung 0 0
JSON-Cross-Site Scripting 0 0
Dateiuploadtyp 0 0
Ableiten der XML-Nutzlast für Inhaltstypen 0 0
HTML-Befehlseinschleusung 0 0
XML-Format 0 0
XML-Denial-of-Service-Angriff (XDoS) 0 0
XML-Nachrichtenüberprüfung 0 0
Interoperabilität der Webdienste 0 0
XML SQL Injection 0 0
Site-übergreifende XML-Skrip 0 0
XML-Anhang 0 0
SOAP-Fehlerverletzungen 0 0
Generische XML-Verstöße 0 0
Verstöße insgesamt 0 0
HTML/XML/JSON-Protokollstatistiken Geschwindigkeit (/s) Gesamt
Starten der URL-Protokolle 0 0
URL-Protokolle verweigern 0 0
Referer-Header-Protokolle 0 0
Pufferüberlauf-Protokolle 0 0
Protokolle zur Cookie-Konsistenz 0 0
Protokolle zur Cookie-Entführung 0 0
CSRF aus Tag-Protokollen 0 0
HTML-Cross-Site Scripting-Protokolle 0 0
HTML Cross-Site Scripting-Transformationsprotokolle 0 0
HTML SQL-Einschleusungsprotokolle 0 0
HTML SQL Transformationsprotokolle 0 0
Protokolle im Feldformat 0 0
Protokolle zur Feldkonsistenz 0 0
Kreditkarten 0 0
Protokolle zur Kreditkarten-Transformation 0 0
Sichere Objektprotokolle 0 0
Signatur-Protokolle 0 0
Inhalts-Typ-Protokolle 0 0
JSON-Denial-of-Service-Protokolle 0 0
JSON SQL-Einschleusungsprotokolle 0 0
JSON-Site-Scripting-Protokolle 0 0
Protokolle zum Hochladen von Dateien 0 0
Ableiten der XML-Nutzlast des Inhaltstyps L 0 0
HTML-Befehlseinschleusungsprotokolle 0 0
Protokolle im XML-Format 0 0
XML Denial of Service (XDoS) -Protokolle 0 0
Protokolle zur XML-Nachrichtenüberprüfung 0 0
WSI-Protokolle 0 0
XML SQL Injection-Protokolle 0 0
XML-Cross-Site Scripting-Protokolle 0 0
Protokolle für XML-Anhänge 0 0
SOAP-Fehlerlogs 0 0
Generische XML-Protokolle 0 0
Gesamtzahl der Protokollmeldungen 0 0

**Statistikrate für Serverfehler (/s) > Gesamt** | |—|–|–| HTTP Client Errors (4xx Resp) | 0 | 0| HTTP Server Errors (5xx Resp) | 0 | 0 |

Anzeigen von Statistiken zur HTML-Befehlsinjektion mithilfe der NetScaler-GUI

Führen Sie die folgenden Schritte aus, um Befehlseinschleusungsstatistiken anzuzeigen:

  1. Navigieren Sie zu Sicherheit > NetScaler Web App Firewall > Profile.
  2. Wählen Sie im Detailbereich ein Web App Firewall-Profil aus und klicken Sie auf Statistik.
  3. Auf der Seite mit den NetScaler Web App Firewall-Statistiken werden der Datenverkehr und die Verstöße gegen HTML-Befehle angezeigt.
  4. Sie können die Tabellarische Ansicht wählen oder zur grafischen Ansicht wechseln, um die Daten in einem tabellarischen oder grafischen Format anzuzeigen.