Verbindliche Web App Firewall-Richtlinien
Nachdem Sie Ihre Web App Firewall-Richtlinien konfiguriert haben, binden Sie sie an Global oder einen Bindungspunkt, um sie in Kraft zu setzen. Nach dem Binden wird jede Anfrage oder Antwort, die einer Web App Firewall-Richtlinie entspricht, durch das dieser Richtlinie zugeordnete Profil transformiert.
Wenn Sie eine Richtlinie binden, weisen Sie ihr eine Priorität zu. Die Priorität bestimmt die Reihenfolge, in der die von Ihnen definierten Richtlinien ausgewertet werden. Sie können die Priorität auf jede positive Ganzzahl festlegen. Im NetScaler OS funktionieren die Richtlinienprioritäten in umgekehrter Reihenfolge — je höher die Zahl, desto niedriger die Priorität.
Da die Web App Firewall-Funktion nur die erste Richtlinie implementiert, der eine Anforderung entspricht, und keine zusätzlichen Richtlinien, denen sie möglicherweise ebenfalls entspricht, ist die Richtlinienpriorität wichtig, um die von Ihnen beabsichtigten Ergebnisse zu erzielen. Wenn Sie Ihrer ersten Richtlinie eine niedrige Priorität zuweisen (z. B. 1000), konfigurieren Sie die Web App Firewall so, dass sie nur ausgeführt wird, wenn andere Richtlinien mit einer höheren Priorität keiner Anfrage entsprechen. Wenn Sie Ihrer ersten Richtlinie eine hohe Priorität einräumen (z. B. 1), konfigurieren Sie die Web App Firewall so, dass sie zuerst ausgeführt wird, und überspringen alle anderen Richtlinien, die möglicherweise ebenfalls übereinstimmen. Sie können sich viel Raum lassen, um andere Richtlinien in beliebiger Reihenfolge hinzuzufügen, ohne Prioritäten neu zuweisen zu müssen, indem Sie Prioritäten mit Intervallen von 50 oder 100 zwischen jeder Richtlinie festlegen, wenn Sie Ihre Richtlinien binden.
Weitere Informationen zum Binden von Richtlinien auf der NetScaler Appliance finden Sie unter “Richtlinien und Ausdrücke. “
So binden Sie eine Web App Firewall Richtlinie mit der Befehlszeilenschnittstelle
Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:
bind appfw global <policyName>
bind appfw profile <profile_name> -crossSiteScripting data
Beispiel
Das folgende Beispiel bindet die Richtlinie mit dem Namen pl-blog und weist ihr die Priorität 10 zu.
bind appfw global pl-blog 10
save ns config
<!--NeedCopy-->
Logausdrücke konfigurieren
Die Unterstützung für Protokollausdrücke für die Bindung der Web App Firewall wurde hinzugefügt, um HTTP-Header-Informationen zu protokollieren, wenn Verstöße auftreten.
Der Protokollausdruck ist an das Web App Firewall-Profil gebunden. Dieser Protokollausdruck wird ausgewertet und an das Logging-Framework gesendet, wenn ein Verstoß auftritt.
Der Web App Firewall-Verstoßprotokolldatensatz mit HTTP-Header-Informationen wird aufgezeichnet. Sie können einen benutzerdefinierten Protokollausdruck angeben, der bei der Analyse und Diagnose hilft, wenn Verstöße für den aktuellen Flow (Anforderung/Antwort) generiert werden.
Beispiel-Konfiguration
bind appfw profile <profile> -logexpression <string> <expression>
add policy expression headers "" HEADERS(100):"+HTTP.REQ.FULL_HEADER"
add policy expression body_100 ""BODY:"+HTTP.REQ.BODY(100)"
bind appfw profile test -logExpression log_body body_100
bind appfw profile test -logExpression log_headers headers
bind appfw profile test -logExpression ""URL:"+HTTP.REQ.URL+" IP:"+CLIENT.IP.SRC"
<!--NeedCopy-->
Beispielprotokolle
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg= HEADERS(100):POST /test/credit.html HTTP/1.1^M User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3^M Host: 10.217.222.44^M Accept: /^M Content-Length: 33^M Content-Type: application/x-www-form-urlencoded^M ^M cn1=58 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=BODY:ata=asdadasdasdasdddddddddddddddd cn1=59 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=URL:/test/credit.html IP:10.217.222.128 cn1=60 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Other violation logs
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_STARTURL|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=Disallow Illegal URL. cn1=61 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_SAFECOMMERCE|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=Maximum number of potential credit card numbers seen cn1=62 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
<!--NeedCopy-->
Hinweis
Es ist nur Auditlog-Unterstützung verfügbar. Unterstützung für Logstream und Visibility in Security Insight würden in zukünftigen Release-Versionen hinzugefügt.
Wenn Auditlogs generiert werden, können pro Lognachricht nur 1024 Byte an Daten generiert werden.
Wenn Log-Streaming verwendet wird, basieren die Grenzwerte auf der maximal unterstützten Größe des Log-Streams/den IPFIX-Protokollgrößenbeschränkungen. Die maximale Unterstützungsgröße für den Log-Stream ist größer als 1024 Byte.
So binden Sie eine Web App Firewall-Richtlinie mithilfe der GUI
- Führen Sie einen der folgenden Schritte aus:
- Navigieren Sie zu Sicherheit > Web App Firewallund klicken Sie im Detailbereich auf Web App Firewall Policy Manager.
- Navigieren Sie zu Sicherheit > Web App Firewall > Richtlinien > Firewall-Richtlinienund klicken Sie im Detailbereich auf Policy Manager.
- Wählen Sie im Dialogfeld Web App Firewall Policy Manager aus der Dropdownliste den Bindungspunkt aus, an den Sie die Richtlinie binden möchten. Es stehen folgende Optionen zur Auswahl:
- Global überschreiben — Richtlinien, die an diesen Bindpunkt gebunden sind, verarbeiten den Datenverkehr von allen Schnittstellen auf der NetScaler Appliance und werden vor allen anderen Richtlinien angewendet.
- Virtueller VPN-Server — Richtlinien, die an einen virtuellen VPN-Server gebunden sind, werden im Richtlinienausdruck auf den verarbeiteten Datenverkehr oder eine bestimmte Web-App angewendet. Nachdem Sie den virtuellen VPN-Server ausgewählt haben, müssen Sie auch den spezifischen virtuellen VPN-Server auswählen, an den Sie diese Richtlinie binden möchten. Indem Sie eine Sicherheitsrichtlinie an den virtuellen VPN-Server binden, können Sie alle dahinter stehenden Anwendungen schützen.
- LB Virtueller Server. Richtlinien, die an einen virtuellen Lastausgleichsserver gebunden sind, werden nur auf den Datenverkehr angewendet, der von diesem virtuellen Lastausgleichsserver verarbeitet wird, und sie werden vor allen globalen Standardrichtlinien angewendet. Nachdem Sie LB Virtual Server ausgewählt haben, müssen Sie auch den spezifischen virtuellen Load-Balancing-Server auswählen, an den Sie diese Richtlinie binden möchten.
- CS Virtueller Server. Richtlinien, die an einen virtuellen Content Switching-Server gebunden sind, werden nur auf den Datenverkehr angewendet, der von diesem virtuellen Content Switching-Server verarbeitet wird, und sie werden vor allen globalen Standardrichtlinien angewendet. Nachdem Sie CS Virtual Server ausgewählt haben, müssen Sie auch den spezifischen virtuellen Content Switching-Server auswählen, an den Sie diese Richtlinie binden möchten.
- Standard Global. Richtlinien, die an diesen Bindpunkt gebunden sind, verarbeiten den gesamten Datenverkehr von allen Schnittstellen der NetScaler-Appliance.
- Richtlinien-Etikett. Richtlinien, die an ein Richtlinienlabel gebunden sind, verarbeiten den Datenverkehr, den das Richtlinienlabel an sie weiterleitet. Das Richtlinienlabel bestimmt die Reihenfolge, in der Richtlinien auf diesen Verkehr angewendet werden.
- Keine. Binden Sie die Richtlinie an keinen Bindungspunkt.
- Klicken Sie auf Weiter. Eine Liste der vorhandenen Web App Firewall-Richtlinien wird angezeigt.
- Wählen Sie die Richtlinie aus, die Sie binden möchten, indem Sie darauf klicken.
- Nehmen Sie weitere Anpassungen an der Bindung vor.
- Um die Richtlinienpriorität zu ändern, klicken Sie auf das Feld, um es zu aktivieren, und geben Sie dann eine neue Priorität ein. Sie können auch Prioritäten neu generieren auswählen, um die Prioritäten gleichmäßig neu zu nummerieren.
- Um den Richtlinienausdruck zu ändern, doppelklicken Sie auf dieses Feld, um das Dialogfeld Web App Firewall-Richtlinie konfigurieren zu öffnen, in dem Sie den Richtlinienausdruck bearbeiten können.
- Um den Goto-Ausdruck festzulegen, doppelklicken Sie auf das Feld in der Spaltenüberschrift Goto Expression, um die Dropdownliste anzuzeigen, in der Sie einen Ausdruck auswählen können.
- Um die Option Aufrufen festzulegen, doppelklicken Sie in der Spaltenüberschrift Aufrufen auf das Feld, um die Dropdownliste anzuzeigen, in der Sie einen Ausdruck auswählen können
- Wiederholen Sie die Schritte 3 bis 6, um weitere Web App Firewall-Richtlinien hinzuzufügen, die Sie global binden möchten.
- Klicken Sie auf OK. In der Statusleiste wird eine Meldung angezeigt, die besagt, dass die Richtlinie erfolgreich gebunden wurde.