IMPORTANT : ce README et les autres documentations ne sont pas mis à jour pour refléter les changements apportés aux dernières versions bêta (car beaucoup de changements ont eu lieu). Tout cela sera mis à jour en temps voulu lorsqu'une version stable sera publiée (voir Roadmap jusqu'à la prochaine release). N'hésitez pas à exécuter les versions bêta par vous-même et à poser des questions si vous avez besoin d'aide.

Qu'est-ce que c'est ?
EDR avec collecte d'artefacts pilotée par la détection. Le moteur de détection est construit sur la base d'un projet précédent Gene spécialement conçu pour faire correspondre les événements Windows avec des règles définies par l'utilisateur.
Que voulez-vous dire par "collecte d'artefacts pilotée par la détection" ?
Cela signifie qu'une alerte peut directement déclencher une collecte d'artefacts (fichier, registre,
mémoire de processus). Ainsi, vous êtes sûr d'avoir collecté les artefacts dès que possible
(presque en temps réel).
Tout ce travail a été fait sur mon temps libre dans l'espoir qu'il aide d'autres personnes, j'espère que vous l'apprécierez. Sauf si j'obtiens un financement pour développer davantage ce projet, je continuerai à le développer au mieux de mes possibilités. Je ferai tout mon possible pour corriger les problèmes à temps et fournir des mises à jour. N'hésitez pas à ouvrir des issues pour améliorer ce projet et le maintenir en vie.
Pourquoi
- Fournir un EDR Open Source à la communauté
- Assurer la transparence des règles de détection pour permettre aux analystes de comprendre pourquoi une règle a déclenché
- Offrir des primitives de détection puissantes via un moteur de règles flexible
- Optimiser les processus de réponse aux incidents en réduisant considérablement le temps entre la détection et la collecte d'artefacts
NB : l'agent EDR peut être exécuté de manière autonome (sans être connecté à un gestionnaire EDR)
Ce que vous devez savoir
- Il fonctionne uniquement sur Windows en utilisant les logs ETW
- S'appuie sur Sysmon pour tout le travail lourd (composant noyau)
- Moteur de détection très puissant et personnalisable (alimenté par gene)
- Construit par un répondant aux incidents pour tous les répondants aux incidents dans le but de rendre leur travail moins pénible
- Faible empreinte -> pas d'injection de processus
- Peut co-exister avec tout antivirus (il est conseillé de l'exécuter avec MS Defender)
- Conçu pour un débit élevé. Il peut facilement enrichir et analyser jusqu'à 15 millions d'événements par jour par point de terminaison sans impact sur les performances. Bonne chance pour atteindre cela avec un SIEM.
- Facilement intégrable avec d'autres outils (Splunk, ELK, MISP ...)
- Intégré avec le framework ATT&CK
- Il existe une API administrative puissante pour faciliter la gestion des grands déploiements (pas encore d'interface graphique)
Installation
Prérequis
- Installer Sysmon
- Configurer Sysmon
- Vous pouvez trouver des configurations Sysmon optimisées ici
- La journalisation de ProcessCreate et ProcessTerminate est obligatoire
- Prenez note du chemin vers votre binaire Sysmon car vous en aurez besoin plus tard
NB : le filtrage des événements peut être effectué à 100% avec les règles Gene, donc ne vous embêtez pas à créer une configuration Sysmon compliquée.
Recommandations avant installation
Pour tirer le meilleur parti de WHIDS, vous voudrez peut-être améliorer votre politique de journalisation.
- Activer la journalisation des modules PowerShell
- Auditer la création de services : gpedit.msc ->
Computer Configuration\Windows Settings\Security Settings\Advanced Audit Policy Configuration\System Audit Policies\System\Audit Security System Extension -> Activer
- Activer l'audit du système de fichiers. Sysmon ne fournit que des événements FileCreate lors de la création de nouveaux fichiers, donc si vous voulez/devez journaliser d'autres types d'accès (Lecture, Écriture, ...), vous devez activer l'audit FS.
- gpedit.msc ->
Computer Configuration\Windows Settings\Security Settings\Advanced Audit Policy Configuration\System Audit Policies\Object Access\Audit File System -> Activer
- Clic droit sur un dossier -> Propriétés -> Sécurité -> Avancé -> Audit -> Ajouter
Sélectionner un principal (mettez ici le nom de l'utilisateur/groupe pour lequel vous voulez l'audit). Mettez le groupe Tout le monde si vous voulez journaliser les accès de n'importe quel utilisateur.
Appliquer cette règle à est utilisé pour sélectionner la portée de cette politique d'audit à partir du dossier que vous avez sélectionné
Autorisations de base sélectionnez les types d'accès pour lesquels vous voulez que les journaux soient générés
- Valider
- Les journaux d'audit du système de fichiers apparaîtront dans le canal de journal
Sécurité
Agent de point de terminaison EDR (Whids.exe)
Cette section couvre l'installation de l'agent sur le point de terminaison.
- Téléchargez et extrayez la dernière version de WHIDS https://github.com/0xrawsec/whids/releases
- Exécutez
manage.bat en tant qu'administrateur
- Lancez l'installation en sélectionnant l'option appropriée
- Vérifiez que les fichiers ont été créés dans le répertoire d'installation
- Modifiez le fichier de configuration en sélectionnant l'option appropriée dans
manage.bat ou en utilisant votre éditeur de texte préféré
- Ignorez cette étape si vous exécutez avec une connexion à un gestionnaire, car les règles seront mises à jour automatiquement. S'il n'y a rien dans le répertoire des règles, l'outil sera inutile, donc assurez-vous qu'il y a quelques règles gene dedans. Certaines règles sont fournies avec WHIDS et il vous sera demandé de choisir si vous voulez les installer ou non. Si vous voulez les dernières règles à jour, vous pouvez les obtenir ici (prenez les compilées)
- Démarrez les services à partir de l'option appropriée dans
manage.bat ou redémarrez simplement (option préférée sinon certains champs d'enrichissement seront incomplets, entraînant de fausses alertes)
- Si vous avez configuré un gestionnaire, n'oubliez pas de l'exécuter pour recevoir les alertes et les dumps
NB : Lors de l'installation, le service Sysmon sera rendu dépendant du service WHIDS afin d'être sûr que l'EDR s'exécute avant que Sysmon ne commence à générer des événements.
Gestionnaire EDR
Le gestionnaire EDR peut être installé sur plusieurs plateformes, des binaires pré-construits sont fournis pour Windows, Linux et Darwin.
- Créez un certificat TLS si nécessaire pour les connexions HTTPS
- Créez un fichier de configuration (il existe un argument de ligne de commande pour générer une configuration de base)
- Exécutez le binaire
Exemples de configuration
Veuillez visiter doc/configuration.md
Documentation supplémentaire
Problèmes connus
- Ne fonctionne pas correctement lorsqu'il est exécuté à partir d'un partage réseau monté en tant que lecteur réseau (ce cas empêche whids de s'identifier et génère donc du bruit). Exemple : si
\\vbox\test est monté en tant que lecteur Z:, exécuter Z:\whids.exe ne fonctionnera pas alors que exécuter \\vbox\test\whids.exe fonctionnerait.
Roadmap jusqu'à la prochaine version
Journal des modifications
v1.7
- Nouvelle API HTTP administrative avec les fonctionnalités suivantes :
- Gérer les points de terminaison (lister, créer, supprimer)
- Obtenir des statistiques de base sur le gestionnaire
- Exécuter des commandes sur les points de terminaison et obtenir les résultats
- Peut déposer des fichiers avant l'exécution, pour exécuter des binaires/scripts non présents sur le point de terminaison. Les fichiers déposés sont supprimés après l'exécution de la commande.
- Peut récupérer des fichiers (après exécution de la commande), pour récupérer les résultats de la commande
- Collecter des fichiers depuis les points de terminaison à des fins médico-légales
- Confiner / Déconfiner les points de terminaison en restreignant tout trafic réseau sauf la communication avec le gestionnaire.
- Interroger les journaux des points de terminaison
- Interroger les alertes des points de terminaison
- Pivoter sur un horodatage et récupérer les journaux/alertes autour de ce pivot temporel
- Accéder au rapport du point de terminaison
- Score (relatif à chaque environnement) permettant de trier les points de terminaison et de repérer ceux qui se comportent différemment des autres.
- Alertes / TTP observées sur une période donnée
- Gérer les règles (lister, créer, mettre à jour, sauvegarder, supprimer)
- Intégration avec Sysmon v12 et v13
- Intégrer les événements ClipboardData
- Mettre le contenu des données du presse-papiers dans l'événement pour permettre la création de règles sur le contenu du presse-papiers
- Intégrer les événements ProcessTampering
- Enrichir l'événement avec un score de différence entre la section .text sur disque et en mémoire
- Implémentation du pinning de certificat côté client pour renforcer la sécurité du canal de communication entre les points de terminaison et le serveur de gestion
- Capacités de filtrage des journaux, permettant de collecter des événements contextuels. Le filtrage des journaux est réalisé en créant des règles de filtrage Gene (cf. Documentation Gene).
- Fichiers de configuration au format TOML pour une meilleure lisibilité
- Meilleure protection du répertoire d'installation
Travaux connexes

Github:https://github.com/tines Website:https://www.tines.com/ Twitter:@tines_io