01Ce qu’est l’exfiltration DNS
Un programme découpe un fichier en morceaux, code chaque morceau en lettres et en chiffres, et demande des noms comme 4a6f686e20446f652c207061737377.x.example.com. Les serveurs de noms de ce domaine appartiennent à l’attaquant : ils reçoivent les morceaux, et leurs réponses peuvent rapporter des ordres. Des outils comme iodine ou dnscat2 construisent ainsi un tunnel complet.
MITRE ATT&CK, le catalogue de référence des techniques des attaquants, la range sous trois techniques : T1048 (exfiltration par un protocole alternatif), T1071.004 (commande et contrôle par le DNS) et T1572 (tunnel de protocole).
02Ce que Warda vérifie
Sur la carte Fuites de données par le DNS des Réglages de protection (gratuite, active par défaut), Warda lit les noms demandés, sur le boîtier, et rien d’autre : rien n’est déchiffré, et les noms (les données) ne sont jamais gardés.
- Les noms codés : la partie sous le domaine est très longue (100 caractères ou plus), ou son plus long segment fait 20 caractères ou plus et semble aléatoire : une forte entropie avec des chiffres mêlés, ou presque pas de voyelles.
- En nombre : quand un appareil demande 40 noms codés différents sous un même domaine en 10 minutes, ce domaine est bloqué pour cet appareil pendant 24 heures, et les administrateurs reçoivent une alerte.
- Depuis Warda 0.9.10, un second signal : quand un appareil demande, en 10 minutes, 30 noms différents sous un même domaine avec un type d’enregistrement inhabituel (TXT, NULL, MX, CNAME, ANY…), le domaine est bloqué aussi pour cet appareil. Les noms courts (moins de 8 caractères sous le domaine) et les segments qui commencent par « _ » — ce que les serveurs de courrier et les services demandent toute la journée : _dmarc, _domainkey, _spf — sont écartés. Warda 0.9.10 liste aussi les appareils qui interrogent un autre serveur DNS que Warda.
- Les services qui codent exprès (les listes de blocage des serveurs de courrier, les vérifications des antivirus, les noms partagés des clouds) sont écartés ; Autoriser ce domaine lève un blocage pour un service de confiance.
03Ce qui aide autour
Un tunnel a besoin d’un domaine à lui, souvent récent. D’autres protections de Warda ferment les détours :
- la catégorie des domaines récents, à bloquer par profil, et la réputation des domaines, qui demande l’avis du service d’analyse de Warda sur un domaine que le foyer connaît mal (seul le domaine quitte le boîtier) ;
- la catégorie des contournements du filtre : les services connus de DNS over HTTPS, de VPN et de proxy, bloqués pour les enfants et les ados, et le Relais privé iCloud pour leurs appareils à la maison ;
- le nom de test de Firefox, use-application-dns.net, auquel Warda répond « n’existe pas » : Firefox garde alors le DNS du réseau au lieu du sien.
04Les limites, dites franchement
- Une requête envoyée directement à 8.8.8.8 n’arrive jamais à Warda : fermer les ports du DNS aux autres appareils est le travail du routeur.
- Une fuite lente n’est pas vue : moins d’environ 4 noms codés par minute (40 en 10 minutes), ou 3 noms de types inhabituels par minute (30 en 10 minutes), reste sous les seuils.
- Un tunnel dans une connexion chiffrée vers un résolveur public (DNS over HTTPS sur le port 443) ne montre rien à Warda, sauf si le service est connu et bloqué.
- Une alerte dit qu’un appareil se comporte comme un tunnel, pas quel programme le fait : vérifiez l’appareil, et mettez-le en quarantaine le temps de le faire.