🚨 Utilisation des événements de sécurité

📝 Introduction
Les événements de sécurité (détection de programmes malveillants, système d'exploitation non autorisé, etc.) sont associées à des actions telles que la mise en quarantaine d'appareils et l'envoi d'alertes par courriel par exemple. Ils peuvent être déclenchés soit par PacketFence directement soit pas des applications tierces.
🎯 Objectif
Dans cet artcile, nous allons utiliser les événements de sécurité :
- pour du profilage de matériel afin de bloquer les consoles de jeux.
- pour mettre en quarantaine un périphérique si son antivirus est désactivé.
🛡️ Profilage de matériel
Prérequis
Avant de s'attaquer à la configuration des événéments de sécurité, vous devez avoir activé le module Fingerbank. Si ce n'est pas déjà fait, vous pouvez suivre ce mode opératoire Configuration de Fingerbank
Configuration de PacketFence
Rendez-vous sur Événements de sécurité et cliquez sur Nouvel événement de sécurité.

Renseignez les éléments suivants :


J'ai nommé l'identifiant de cet événement 3000009 étant donné que les règles de blocage exsistantes se basaient sur la série 300000X.
Si ce n'est pas déjà fait, pensez à configurer une email afin d'être notifié.
Résultat attendu : si un utilisateur connecte une console de jeux sur le réseau, ce terminal doit être isolé du réseau et afficher un message expliquant le blocage.
🧪 Expérience
Pour réaliser cet expérience, j'ai connecté la Nintendo Swith de mes filles au réseau de mon lab. Et ça juste marche.

Sur PacketFence, en se rendant sur l'appareil en question, nous pouvons constater l'événement de sécurité :

Si vous avez configuré une alerte par mail, vous recevez alors un email vous informant du blocage de l'appareil.

Merci FingerBank ! J'oserai même dire "finger(bank) in the noise".
Plus loin avec FingerBank
FingerBank permet de récupérer une base gigantesque de périphériques. On peut ainsi faire du profilage sur un matériel spécifique ou sur une famille de matériel comme l'exemple ci-dessus. Vous pouvez consulter la (très) longue liste des appareils dans Conformité > Appareils. Cela peut être pratique pour bloquer par exemple des points d'accès Wifi rebelles.

🛡️ Mise en quarantaine d'un matériel
Introduction
Cet expérience est partie de la question suivante qui m'a été posée par un lecteur : comment mettre en quarantaine un terminal, maîtrisé et autorisé par PacketFence, quand l'antivirus est désactivé ?
PacketFence est "agent less". Il ne peut pas deviner si l'antivirus sur le terminal est actif ou pas. Pour cela il faut mettre en place une application tierce capable de générer un requête sur l'API de PacketFence.
Au départ, j'ai pensé mettre en place un script powershell qui relève l'état de l'antivirus. C'est simple mais ça n'était pas très "secure". Je me suis alors rabattu sur l'XDR open source Wazuh.
Configuration de PacketFence
Je me suis rendu dans Evénements de sécurité et une règle portant l'identifiant 3000006 était déjà présente. J'ai modifiée celle-ci au niveau des actions.


Déclenchement manuel de l'événement avec curl
À partir de là, j'ai un peu galéré pour comprendre comment déclencher cet événement. Finalement, j'ai trouvé la solution en faisant un peu de reverse-engineering. Pour cela, je me suis rendu sur Appareils > l'appareil en question > Événements de sécurité. En bas de la page, nous pouvons déclencher manuelle un événement de sécurité. Cela est plutôt pratique pour tester.

J'ai pu ainsi récupérer la requête sur l'API déclenchant l'événement de sécurité. Alors comment ça marche ?
- Il faut d'abord récupérer un token. Exemple avec la commande curl (et la commande jq pour un affichage propre) :
- Une fois le token récupéré, il suffit de passer cette requête en utilisant l'adresse MAC du terminal visé
Déclenchement de l'événement de sécurité 3000006Si tout s'est bien passé, vous avez reçu un mail et vous devez voir l'événement de sécurité sur l'appareil concerné.
curl -k -X 'PUT' \ 'https://IP_PACKET_FENCE:1443/api/v1/node/ac:e0:10:xx:xx:xx/apply_security_event?' \ -H 'accept: application/json' \ -H 'Authorization: Bearer TOKEN_RECUPERE' \ -H 'Content-Type: application/json' \ -d '{ "security_event_id": "3000006" }'
Déclenchement automatique avec Wazuh
Afin d'être le plus générique possible, j'ai utilisé un poste de travail sous Windows 10 Pro et l'antivirus fourni avec Windows defender.
Je ne vais pas rentrer dans les détails mais expliquer le principe. J'écrirai plus tard un article sur Wazuh.
Une fois le serveur Wazuh installé sur une VM et l'agent déployé sur le poste client Windows, j'ai configuré Wazuh pour remonter que l'agent remonte les événements de Windows Defender.
J'ai ensuite configuré l'"active response" de Wazuh pour appeler un script python présent sur le serveur Wazuh. Ainsi si un programme ou un utilisateur désactive l'antivirus, l'agent Wazuh déclenche la règle 62152 sur le serveur Wazuh qui exécute alors le script Python permettant de déclencher l'événement de sécurité 3000006 sur PacketFence.
Voici l'ordonnancement : 1. Désactivation de l'antivirus Windows defender sur la machine cliente. 2. Règle 62152 déclenchée sur le serveur, elle-même déclenchant l'exécution du script. 3. Le serveur Wazuh passe l'id de l'agent Wazuh au script 4. Avec cet id, le script parse, à travers l'API de Wazuh, l'inventaire (stocké sur le serveur Wazuh) des adresses MAC de la machine concernée. 5. Le script teste la présence sur PacketFence, à travers également son API, des adresses MAC relevées ci-dessus.
curl -k -X 'POST' \
'https://IP_PACKET_FENCE:1443/api/v1/nodes/search?' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer TOKEN_RECUPERE' \
-d '{
"cursor": 0,
"fields": [
"mac",
"status"
],
"query": {
"op": "and",
"values": [
{
"op": "and",
"values": [
{
"field": "mac",
"op": "contains",
"value": "bc:e0:10:a7:67:49"
}
]
}
]
}
}'
Et ça fonctionne.

J'ai remarqué que le périphérique est vu comme un matériel "Phone, Tablet or Wearable/Windows Phone" alors que c'est un PC portable ASUS.
Ensuite, après une bonne journée et demi dessus, je me suis arrêté là. Pour aller jusqu'au bout, il me faudrait également générer une action de sortie d'événement de sécurité lors de la réactivation de l'antivirus. Qui plus est, cette configuration ne remonte pas d'alerte si l'antivirus a été desactivé avant sa connexion au réseau.
On pourrait également se passer de Wazuh et utiliser une console centrale gérant les antivirus qui déclencherait elle-même un événement de sécurité sur PacketFence.
Conclusion
Autant la configuration du profilage matériel fût simple à mettre en place autant le déclenchement des événements de sécurité par une application tierce ne fut pas aisée. Mais une fois le fonctionnement compris, on peut entrevoir les nombreuses possibilités que nous offre ce module. D'ailleurs, on poussera encore un peu plus loin l'usage de ce dernier dans le prochain article. J'ai par ailleurs pu enfin pratiquer Wazuh et l'outil est formidable. J'essaierai de trouver du temps pour écrire quelques articles dessus. En attendant vous pouvez consulter les vidéos de Xavki sur ce sujet.