Voilà c'est parti je déterre le blog après quelques années d'absence
Aujourd'hui je vais vous parler de WindowsSpyBlocker qui est un ensemble de règles pour bloquer la télémétrie / espionnage de Windows 7 à Windows 10.
Le procédé se base sur divers outils permettant de capturer le trafic réseau.
J'utilise pour cela des machines virtuelles QEMU sur la plateforme de virtualisation Proxmox VE avec comme VMs :
- Windows 10 Pro 64bits
- Windows 8.1 Pro 64bits
- Windows 7 SP1 Pro 64bits
Toutes ces VMs ont les mises à jour automatiques d'activées et je nettoie les dumps et compare les résultats chaque jour afin de mettre à jour les hosts et les règles de pare-feu.
Pour en revenir aux outils de capture, voici ceux que j'utilise :
- qemu -net dump (capture)
- Wireshark (capture + logs)
- Sysmon (capture + logs)
- Proxifier (logs)
Tous les événements liés au trafic réseau sont disponibles dans le répertoire de logs.
UtilisationData
data est le répertoire maître de ce projet. Il contient les règles de blocage basées sur les noms de domaine ou les adresses IPs détectées durant le processus de capture.
- data//winX/spy.txt : Bloquer la télémétrie / espionnage
- data//winX/update.txt : Bloquer les mises à jour Windows Update
- data//winX/extra.txt : Bloquer les applications tierces
Hosts
Copier / coller le contenu des fichiers se trouvant dans data/hosts dans le fichier hosts Windows se trouvant dans C:\Windows\System32\drivers\etc\hosts.
Vous pouvez utiliser le logiciel gratuit HostsMan pour garder à jour votre fichier hosts.
J'ai d'ailleurs créer un hook Git afin de publier les fichiers hosts sur le site.
Pare-feu
Certaines requêtes utilisent les adresses IP mais vous pouvez les bloquer avec votre pare-feu.
Toutes les informations relatives à ces adresses IPs sont listées dans les fichiers CSV firewall- dans le répertoire des logs.
Pour ajouter / supprimer des règles de blocage pour le pare-feu ou bien tester ces adresses IPs, lisez les instructions pour l'utilisation du script.
NCSI (Network Connectivity Status Indicator)
Windows vérifie l'accès à Internet de votre ordinateur via un de ses sites appelé Network Connectivity Status Indicator.
NCSI effectue un DNS lookup sur www.msftncsi.com et envoie une requête DNS sur dns.msftncsi.com.
Vous pouvez bloquer cette sonde en ajoutant le contenu du fichier data//winX/extra.txt dans votre fichier hosts.
Mais cela engendrera un avertissement sur votre carte réseau avec le message "Pas d'accès Internet".
Pour résoudre ce problème, vous pouvez utiliser le NCSI alternatif de WindowsSpyBlocker. Lisez les instructions pour l'utilisation du script.
DNSCrypt
DNSCrypt est un protocole pour sécuriser les communications entre le client et la résolution DNS. Avec cet outil vous pouvez blacklister certains domaines avec le plugin libdcplugin_example_ldns_blocking.
Pour installer DNSCrypt sur Windows, lisez le README-WINDOWS sur le dépôt officiel sur GitHub.
Copiez le contenu des fichiers dnscrypt (data/dnscrypt) dans un fichier appelé par exemple C:\blacklisted-domains.txt et entrez la commande suivante :
dnscrypt-proxy -R --plugin=libdcplugin_example_ldns_blocking.dll,--domains=C:\blacklisted-domains.txt
Remplacez avec un resolver DNS public supportant DNSCrypt. Notez son nom dans la première colonne (par exemple dnscrypt.org-fr).
Proxifier
Certains hosts ne peuvent être bloqués et requièrent une application de plus haut niveau.
Par exemple vous pouvez utiliser le logiciel Proxifier pour bloquer certaines sondes Windows.
Copiez le contenu des fichiers Proxifiers (data/proxifier) dans une règles bloquante.
OpenWRT
Des règles OpenWRT ont également été créées.
LogsComme je le disais plus haut, des logs du trafic réseau sont disponibles au format CSV :
- *-all.csv : Tous les événements
- *-hosts-count.csv : Nombre d'événements par hôte
- *-unique.csv : Premier déclenchement par hôte / processus / port
Certains scripts sont disponibles pour faciliter l'implémentation des règles mais également pour contribuer au projet. Pour utiliser ces scripts vous devez télécharger et installer les Visual C++ Redistributable for Visual Studio 2012 (vcredist_x86.exe).
- diff.bat : Générer un log des différences basées sur les fichiers CSV et les données provenant de Sysmon, Proxifier et Wireshark.
- firewall.bat : Ajouter / supprimer des règles et resoudre les adresses IPs.
- ncsi.bat : Appliquer un NCSI alternatif et tester votre connexion Internet comme le fait Microsoft. Plus d'infos dans la FAQ du Wiki.
- proxifier.bat : Extraire les événements des logs et générer les fichiers CSV. Plus d'infos sur la page Proxifier du Wiki.
- sysmon.bat : Installer / désinstaller Sysmon et extraire les événements des logs puis générer les fichiers CSV. Plus d'infos sur la page Sysmon du Wiki.
- wireshark.bat : Extraire les événements des logs et générer les fichiers CSV. Plus d'infos sur la page Wireshark du Wiki.
Si vous souhaitez contribuer au projet, n'hésitez pas à vous rendre sur le dépôt officiel de WindowsSpyBlocker.
Pour suivre les mises à jour (nouvelles règles de blocage, etc...), vous pouvez Star et/ou Watch le projet (en haut à droite).
A venir dans les prochaines versions, la création d'une application à part entière, la résolution des noms de service pour le processus svchost.exe, créer un script pour mettre à jour le fichier hosts, etc...
Ces améliorations à apporter sont visibles dans la TODO liste du Wiki.
Si vous rencontrez des problèmes ou que vous souhaitez apporter vos idées, n'hésitez pas et postez une issue sur GitHub!