Journaux du Web App Firewall
Journaux au format NetScaler (natif)
-
Horodatage. Date et heure de la connexion.
-
Gravité. Niveau de gravité du journal.
-
module. Module NetScaler qui a généré l'entrée du journal.
-
Type d'événement. Type d'événement, tel qu'une violation de signature ou une violation du contrôle de sécurité.
-
ID de l'événement. ID attribué à l'événement.
-
Adresse IP du client. Adresse IP de l'utilisateur dont la connexion a été enregistrée.
-
ID de transaction. ID attribué à la transaction à l'origine du journal.
-
ID de session. ID attribué à la session utilisateur à l'origine du journal.
-
Message. Le message du journal. Contient des informations identifiant la signature ou le contrôle de sécurité qui a déclenché l'entrée du journal.
/var/log/folder
Jun 22 19:14:37 <local0.info> 10.217.31.98 06/22/2015:19:14:37 GMT ns 0-PPE-1 :
default APPFW APPFW_cross-site scripting 60 0 : 10.217.253.62 616-PPE1 y/3upt2K8ySWWId3Kavbxyni7Rw0000
pr_ffc http://aaron.stratum8.net/FFC/login.php?login_name=abc&passwd=
12345&drinking_pref=on&text_area=%3Cscript%3E%0D%0A&loginButton=ClickToLogin&as_sfid=
AAAAAAWEXcNQLlSokNmqaYF6dvfqlChNzSMsdyO9JXOJomm2v
BwAMOqZIChv21EcgBc3rexIUcfm0vckKlsgoOeC_BArx1Ic4NLxxkWMtrJe4H7SOfkiv9NL7AG4juPIanTvVo
%3D&as_fid=feeec8758b41740eedeeb6b35b85dfd3d5def30c Cross-site script check failed for
field text_area="Bad tag: script" <blocked>
Journaux du format d'événement commun (CEF)
-
src — adresse IP source
-
spt — numéro de port source
-
request — URL de la demande
-
act — action (par exemple bloqué, transformé)
-
msg — message (message concernant la violation du contrôle de sécurité observée)
-
Offset : représente les octets depuis le début du fichier.
-
cn1 — ID d'événement
-
cn2 — ID de transaction HTTP
-
cs1 — nom du profil
-
cs2 — ID PPE (par exemple PPE1)
-
cs3 - ID de session
-
cs4 — Gravité (par exemple INFO, ALERT)
-
CS5 — année de l'événement
-
cs6 - Catégorie de violation de signature
-
method — Méthode (par exemple GET/POST)
Jun 12 23:37:17 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0
|APPFW|APPFW_STARTURL|6|src=10.217.253.62 spt=47606 method=GET
request=http://aaron.stratum8.net/FFC/login.html msg=Disallow Illegal URL. cn1=1340
cn2=653 cs1=pr_ffc cs2=PPE1 cs3=EsdGd3VD0OaaURLcZnj05Y6DOmE0002 cs4=ALERT cs5=2015
act=blocked
Jun 13 00:21:28 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_FIELDCONSISTENCY|6|src=10.217.253.62 spt=761 method=GET request=
http://aaron.stratum8.net/FFC/login.php?login_name=abc&passwd=
123456789234&drinking_pref=on&text_area=&loginButton=ClickToLogin&as_sfid
=AAAAAAWIahZuYoIFbjBhYMP05mJLTwEfIY0a7AKGMg3jIBaKmwtK4t7M7lNxOgj7Gmd3SZc8KUj6CR6a
7W5kIWDRHN8PtK1Zc-txHkHNx1WknuG9DzTuM7t1THhluevXu9I4kp8%3D&as_fid=feeec8758b4174
0eedeeb6b35b85dfd3d5def30c msg=Field consistency check failed for field passwd cn1=1401
cn2=707 cs1=pr_ffc cs2=PPE1 cs3=Ycby5IvjL6FoVa6Ah94QFTIUpC80001 cs4=ALERT cs5=2015 act=
not blocked
Jun 13 00:25:31 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_SAFECOMMERCE|6|src=10.217.253.62 spt=34041 method=GET request=
http://aaron.stratum8.net/FFC/CreditCardMind.html msg=Maximum number of potential credit
card numbers seen cn1=1470 cn2=708 cs1=pr_ffc cs2=PPE1
cs3=Ycby5IvjL6FoVa6Ah94QFTIUpC80001 cs4=ALERT cs5=2015 act=transformed
Jun 13 01:11:09 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_SIGNATURE_MATCH|6|src=10.217.253.62 spt=61141 method=GET request=
http://aaron.stratum8.net/FFC/wwwboard/passwd.txt msg=Signature violation rule ID 807:
web-cgi /wwwboard/passwd.txt access cn1=140 cn2=841 cs1=pr_ffc cs2=PPE0
cs3=OyTgjbXBqcpBFeENKDlde3OkMQ00001 cs4=ALERT cs5=2015 cs6=web-cgi act=blocked
Jan 24 10:00:00 <local0.warn> 10.175.4.47 CEF:0|Citrix|NetScaler|NS13.0|APPFW|APPFW_XML_ERR_NOT_WELLFORMED|4|src=5.31.100.129 spt=20644 method=GET request=https://wifiuae.duwifi.ae/publishApplications/en/5dafe3e74fa8015599009bc1/images/fallback_photo.svg msg=XML Format check failed: Message is not a well-formed XML.Error string is 'unclosed token'. Offset:-517597 cn1=547290214 cn2=974226675 cs1=WIFI_UAE_AppFw cs2=PPE0 cs4=ERROR cs5=2023 act=blocked
unclosed token. Cette violation se trouve à l'emplacement 517597 depuis le début du fichier.
Consigner la géolocalisation dans les messages de violation du Web App Firewall
CEF logging et GeoLocationLogging sont désactivés. Vous devez explicitement activer les deux paramètres.
June 8 00:21:09 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_STARTURL|6|src=10.217.253.62 geolocation=NorthAmerica.US.Arizona.Tucson.*.*
spt=18655 method=GET request=http://aaron.stratum8.net/FFC/login.html
msg=Disallow Illegal URL. cn1=77 cn2=1547 cs1=test_pr_adv cs2=PPE1
cs3=KDynjg1pbFtfhC/nt0rBU1o/Tyg0001 cs4=ALERT cs5=2015 act=not blocked
June 9 23:50:53 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|
APPFW|APPFW_STARTURL|6|src=10.217.30.251 geolocation=Unknown spt=5086
method=GET request=http://aaron.stratum8.net/FFC/login.html msg=Disallow Illegal URL.
cn1=74 cn2=1576 cs1=test_pr_adv cs2=PPE2 cs3=PyR0eOEM4gf6GJiTyauiHByL88E0002
cs4=ALERT cs5=2015 act=not blocked
Configurer l'action du journal et d'autres paramètres de journalisation à l'aide de
-
set appfw profile <name> SecurityCheckAction ([log] | [none]) -
unset appfw profile <name> SecurityCheckAction
set appfw profile pr_ffc StartURLAction log
unset appfw profile pr_ffc StartURLAction
-
set appfw settings CEFLogging on -
unset appfw settings CEFLogging -
sh appfw settings | grep CEFLogging
-
set appfw profile <name> -doSecureCreditCardLogging ([ON] | [OFF]) -
unset appfw profile <name> -doSecureCreditCardLogging
-
Utilisez la commande set pour activer GeolocationLogging. Vous pouvez activer la journalisation CEF en même temps. Utilisez la commande unset pour désactiver la journalisation de géolocalisation. La commande show affiche les paramètres actuels de tous les paramètres de Web App Firewall, sauf si vous incluez la commande grep pour afficher le paramètre d'un paramètre spécifique.
-
set appfw settings GeoLocationLogging ON [CEFLogging ON] -
unset appfw settings GeoLocationLogging -
sh appfw settings | grep GeoLocationLogging
-
-
Spécifiez la base de données
add locationfile /var/netscaler/inbuilt_db/Citrix_netscaler_InBuilt_GeoIP_DB.csvouadd locationfile <path to database file>
Personnaliser les journaux du Web App Firewall
> sh version
NetScaler NS12.1: Build 50.0013.nc, Date: Aug 28 2018, 10:51:08 (64-bit)
Done> add audit messageaction custom1 ALERT 'HTTP.REQ.URL + " " + HTTP.REQ.USER.NAME + " " + CLIENT.IP.SRC + ":" + CLIENT.TCP.SRCPORT'
Warning: HTTP.REQ.USER has been deprecated. Use AAA.USER instead.
Done> add appfw profile test_profile
Done> add appfw policy appfw_pol true test_profile -logAction custom1
Done
Configurer la stratégie Syslog pour séparer les journaux du Web App Firewall
-
Passez au shell et utilisez un éditeur tel que vi pour éditer le fichier /etc/syslog.conf. Ajoutez une nouvelle entrée pour utiliser local2.* pour envoyer les journaux vers un fichier distinct, comme illustré dans l'exemple suivant :
local2.* /var/log/ns.log.appfw -
Redémarrez le processus Syslog. Vous pouvez utiliser la commande grep pour identifier l'ID de processus Syslog (PID), comme illustré dans l'exemple suivant :
root@ns# **ps -A | grep syslog**1063 ?? Ss 0:03.00 /usr/sbin/syslogd -b 127.0.0.1 -n -v -v -8 -Croot@ns# **kill -HUP** 1063 -
À partir de l'interface de ligne de commande, configurez la stratégie SYSLOG avancée ou classique avec une action et liez-la en tant que stratégie globale de Web App Firewall. Citrix vous recommande de configurer la stratégie SYSLOG avancée.Configuration avancée de la stratégie SYSLOG
add audit syslogAction sysact1 1.1.1.1 -logLevel ALL -logFacility LOCAL2add audit syslogPolicy syspol1 true sysact1bind audit syslogGlobal -policyName syspol1 -priority 100 -globalBindType APPFW_GLOBALConfiguration de la stratégie classique SYSLOGadd audit syslogAction sysact1 1.1.1.1 -logLevel ALL -logFacility LOCAL2add audit syslogPolicy syspol1 ns_true sysact1bind appfw global syspol1 100 -
Toutes les violations du contrôle de sécurité du Web App Firewall seront désormais redirigées vers le fichier
/var/log/ns.log.appfw. Vous pouvez suivre ce fichier pour afficher les violations du Web App Firewall qui sont déclenchées pendant le traitement du trafic en cours.root@ns# tail -f ns.log.appfw
/var/log/ns.log.
syslogaction à sa propre adresse IP et configurez l'ADC comme vous le feriez pour un serveur externe. L'ADC agit en tant que serveur pour stocker vos journaux. Deux actions ne peuvent pas être ajoutées avec la même adresse IP et le même port. Dans syslogaction, par défaut, la valeur IP est définie sur 127.0.0.1 et la valeur de port est définie sur 514.
Envoyer les messages du pare-feu d'application à un serveur SYSLOG distinct
-
Un utilitaire de transfert de fichiers sécurisé tel que WinSCP
-
Un utilitaire permettant d'ouvrir une console SSH sur l'appliance, tel que PuTTY
-
Connectez-vous à l'appliance NetScaler via WinSCP.
-
Mettez à jour le fichier /etc/syslog.conf et ajoutez la ligne suivante dans le fichier :
local5.* /var/log/appfw.log
-
Exécutez la commande suivante à partir de l'interface de ligne de commande pour redémarrer le PID Syslog :
kill –HUP <PID> -
Exécutez la commande suivante à partir de l'interface de ligne de commande pour ajouter une action Syslog telle que sysact1 :
add audit syslogAction sysact1 127.0.0.1 -logLevel ALL -logFacility LOCAL5 -
Exécutez la commande suivante pour ajouter la stratégie syspol1, qui utilise le serveur sysact1 :
add audit syslogPolicy syspol1 ns_true sysact1Ou ajoutez une stratégie Syslog avancée :add audit syslogPolicy syspol1 true sysact1 -
Exécutez la commande suivante pour lier la stratégie de pare-feu d'applications et assurez-vous qu'elle est enregistrée dans le fichier ns.conf :
bind appfw global syspol1 100Vous pouvez également exécuter la commande suivante pour lier la stratégie Syslog avancée :
bind audit syslogGlobal -policyName syspol1 -priority 100 -globalBindType APPFW_GLOBAL
/var/log/appfw.log et n'apparaîtront plus dans le ns.log. Vous pouvez maintenant exécuter la commande tail et afficher les dernières entrées dans le /var/log/appfw.log.
Afficher les journaux du Web App Firewall
-
Shell -
tail -f /var/log/ns.log
grep pour accéder aux messages de journal relatifs aux violations de carte de crédit :
-
tail -f /var/log/ns.log | grep SAFECOMMERCE
-
Pour afficher les messages de journal d'une vérification de sécurité spécifique d'un profil, accédez à Web App Firewall > Profils, sélectionnez le profil cible, puis cliquez sur Vérifications de sécurité. Mettez en surbrillance la ligne correspondant au contrôle de sécurité cible, puis cliquez sur Journaux. Lorsque vous accédez aux journaux directement à partir de la vérification de sécurité sélectionnée du profil, il filtre les messages de journal et affiche uniquement les journaux relatifs aux violations du contrôle de sécurité sélectionné. La visionneuse Syslog peut afficher les journaux du Web App Firewall au format natif et au format CEF. Cependant, pour que la visionneuse Syslog filtre les messages de journal spécifiques au profil cible, les journaux doivent être au format de journal CEF lorsqu'ils sont accessibles à partir du profil.
-
Vous pouvez également accéder à la visionneuse Syslog en accédant à NetScaler > Système > Audit. Dans la section Messages d'audit, cliquez sur le lien Messages Syslog pour afficher la visionneuse Syslog, qui affiche tous les messages de journal, y compris tous les journaux de violation de contrôle de sécurité du Web App Firewall pour tous les profils. Les messages de journal sont utiles pour le débogage lorsque plusieurs violations de contrôle de sécurité peuvent être déclenchées pendant le traitement de la demande.
-
Accédez à Web App Firewall > stratégies > Audit. Dans la section Messages d'audit, cliquez sur le lien Messages Syslog pour afficher la visionneuse Syslog, qui affiche tous les messages de journal, y compris tous les journaux de violation de contrôle de sécurité pour tous les profils.
-
Fichier—Le fichier
/var/log/ns.logactuel est sélectionné par défaut et les messages correspondants apparaissent dans la visionneuse Syslog. Liste des autres fichiers journaux du répertoire /var/log disponibles au format .gz compressé. Pour télécharger et décompresser un fichier journal archivé, sélectionnez le fichier journal dans l'option de liste déroulante. Les messages de journal relatifs au fichier sélectionné sont ensuite affichés dans la visionneuse Syslog. Pour actualiser l'affichage, cliquez sur l'icône Actualiser (un cercle de deux flèches). -
Zone de liste des modules : vous pouvez sélectionner le module NetScaler dont vous souhaitez consulter les journaux. Vous pouvez le définir sur APPFW pour les journaux de Web App Firewall.
-
Zone de liste Type d'événement : cette zone contient un ensemble de cases à cocher permettant de sélectionner le type d'événement qui vous intéresse. Par exemple, pour afficher les messages de journal relatifs aux violations de signature, vous pouvez activer la case à cocher APPFW_SIGNATURE_MATCH. De même, vous pouvez cocher une case pour activer le contrôle de sécurité spécifique qui vous intéresse. Vous pouvez sélectionner plusieurs options.
-
Gravité : vous pouvez sélectionner un niveau de gravité spécifique pour afficher uniquement les journaux correspondant à ce niveau de gravité. Laissez toutes les cases à cocher vides si vous souhaitez voir tous les journaux.Pour accéder aux messages du journal des violations de contrôle de sécurité du Web App Firewall pour un contrôle de sécurité spécifique, filtrez en sélectionnant APPFW dans les options de la liste déroulante pour Module. Le type d'événement affiche un ensemble complet d'options pour affiner votre sélection. Par exemple, si vous activez la case à cocher APPFW_FIELDFORMAT et que vous cliquez sur le bouton Appliquer, seuls les messages de journalisation relatifs aux violations des contrôles de sécurité des formats de champ apparaissent dans la visionneuse Syslog. De même, si vous activez les cases à cocher APPFW_SQL et APPFW_STARTURL et que vous cliquez sur le bouton Appliquer, seuls les messages de journal relatifs à ces deux violations de contrôle de sécurité apparaissent dans la visionneuse Syslog.
Résumé
-
Prise en charge du format de journal CEF : l'option de format de journal CEF fournit une option pratique pour surveiller, analyser et analyser les messages de journal du Web App Firewall afin d'identifier les attaques, d'affiner les paramètres configurés afin de réduire les faux positifs et de recueillir des statistiques.
-
Option de personnalisation des messages de journal : vous pouvez utiliser des expressions PI avancées pour personnaliser les messages de journal et inclure les données que vous souhaitez voir dans les journaux.
-
Séparer les journaux spécifiques au Web App Firewall : vous avez la possibilité de filtrer et de rediriger les journaux spécifiques au pare-feu d'application vers un fichier journal distinct.
-
Journalisation à distance : vous pouvez rediriger les messages de journal vers un serveur Syslog distant.
-
Journalisation de la géolocalisation : vous pouvez configurer le Web App Firewall pour inclure la géolocalisation de la zone à partir de laquelle la demande est reçue. Une base de données de géolocalisation intégrée est disponible, mais vous avez la possibilité d'utiliser une base de données de géolocalisation externe. L'appliance NetScaler prend en charge les bases de données de géolocalisation statiques IPv4 et IPv6.
-
Message de journal riche en informations : voici quelques exemples du type d'informations pouvant être incluses dans les journaux, en fonction de la configuration :
-
Une stratégie Web App Firewall a été déclenchée.
-
Une violation du contrôle de sécurité a été déclenchée.
-
Une demande a été considérée comme mal formée.
-
Une demande ou une réponse a été bloquée ou non bloquée.
-
Les données de demande (telles que les caractères spéciaux de script SQL ou intersite) ou les données de réponse (telles que les numéros de carte de crédit ou les chaînes d'objets sûrs) ont été transformées.
-
Le nombre de cartes de crédit dans la réponse a dépassé la limite configurée.
-
Le numéro et le type de la carte de crédit.
-
Les chaînes de journaux configurées dans les règles de signature et l'ID de signature.
-
Informations de géolocalisation sur la source de la demande.
-
Saisie utilisateur masquée (sortie X) pour les champs confidentiels protégés.
-
Masquer les données sensibles à l'aide d'un modèle regex
REGEX_REPLACE (PI) d'une expression de journal (liée à un profil de pare-feu d'application Web (WAF)) vous permet de masquer les données sensibles dans les journaux WAF. Vous pouvez utiliser cette option pour masquer les données à l'aide d'un modèle d'expression régulière et fournir un modèle de caractère ou de chaîne pour masquer les données. Vous pouvez également configurer la fonction PI pour remplacer la première occurrence ou toutes les occurrences du modèle d'expression régulière.
-
SSN
-
Carte de crédit
-
Mot de passe
-
Nom d’utilisateur
Masquer les données sensibles dans les journaux du pare-feu d'application Web
REGEX_REPLACE dans l'expression de journal liée à un profil WAF. Pour masquer les données sensibles, vous devez effectuer les étapes suivantes :
-
Ajouter un profil de pare-feu d'application Web
-
Liaison d'une expression de journal au profil WAF
Ajouter un profil de pare-feu d'application Web
add appfw profile <name>
Add appfw profile testprofile1
Liaison d'une expression de journal avec le profil de pare-feu d'application Web
bind appfw profile <name> -logExpression <string> <expression> –comment <string>
bind appfw profile testProfile -logExpression "MaskSSN" "HTTP.REQ.BODY(10000).REGEX_REPLACE(re!\b\d{3}-\d{2}-\d{4}\b!, “xxx”, ALL)" -comment "SSN Masked"
Masquer les données sensibles dans les journaux du Web Application Firewall à l'aide de l'interface graphique NetScaler
-
Dans le volet de navigation, développez Sécurité > NetScaler Web App Firewall > Profils.
-
Sur la page Profils, cliquez sur Modifier.
-
Sur la page Profil de NetScaler Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Enregistrement étendu.
-
Dans la section Enregistrement étendu, cliquez sur Ajouter.

-
Sur la page Create NetScaler Web App Firewall Extended Log Binding, définissez les paramètres suivants :
-
Nom. Nom de l'expression du journal.
-
Activé. Sélectionnez cette option pour masquer les données sensibles.
-
Masque de journal. Sélectionnez les données à masquer.
-
Expression. Entrez l'expression de stratégie avancée qui vous permet de masquer les données sensibles dans les journaux WAF
-
Commentaires. Brève description du masquage des données sensibles.
-
-
Cliquez sur Créer et Fermer.