Des chercheurs en sécurité ont découvert plusieurs vulnérabilités graves dans dnsmasq, un utilitaire utilisé pour fournir des services DNS dans de nombreux systèmes sous Linux incluant routeurs et terminaux IoT. Les attaquants peuvent exploiter les failles pour rediriger les utilisateurs vers des sites web compromis ou d'exécuter du code malveillant sur des appareils vulnérables.

Dnsmasq est un outil léger proposant des services de mise en cache DNS, transfert DNS et DHCP (Dynamic Host Configuration Protocol).Cet utilitaire existe depuis une vingtaine d'années et fait partie des logiciels fournit en standard dans de nombreuses distributions Linux, incluant Android. En tant qu'utilitaire fournissant des services réseau, dnsmasq est largement utilisé dans des périphériques tels que les routeurs professionnels mais aussi domestiques, et il est également présent dans de nombreux autres types de systèmes embarqués et IoT, notamment les pare-feu, les téléphones VoIP et les systèmes WiFi de voitures.

L'utilisation principale de dnsmasq est de résoudre les requêtes DNS pour l'appareil sur lequel il s'exécute ou pour d'autres identifiés sur le réseau dans le cas des routeurs par exemple. Le logiciel transmet les requêtes à d'autres serveurs DNS sur Internet ou envoie des réponses à partir d'un cache local pour accélérer le processus. C'est précisément cette fonctionnalité de mise en cache que les chercheurs de la société israélienne spécialisée dans la sécurité de l'IoT, JSOF, ont su trouver des moyens d'exploit.

Des attaques par empoisonnement de cache DNS

JSOF a trouvé en tout sept vulnérabilités dans dnsmasq qu'ils ont collectivement surnommés DNSpooq. Certaines de ces failles permettent des attaques par empoisonnement de cache DNS en forçant la mise en cache d'entrées DNS non fiables. Concrètement, cela signifie que lorsqu'un appareil ou un ordinateur qui tente d'accéder à un nom de domaine compromis, ce dernier sera redirigé vers un serveur contrôlé par des pirates.

L'empoisonnement du cache DNS n'est pas une technique de piratage récente. Une première utilisation remonte à 2008 lorsque le chercheur en sécurité Dan Kaminsky a révélé une vulnérabilité affectant le logiciel de serveur DNS le plus populaire. Sa divulgation a déclenché ce qui était alors décrit comme le plus grand effort coordonné de correction de vulnérabilité au monde. Et accéléré par la même occasion l'adoption de DNSSEC, un ensemble d'extensions de sécurité du protocole DNS qui a ajouté la signature cryptographique et la vérification des enregistrements DNS. L'année dernière encore, des chercheurs de l'Université de Californie, de Riverside et de l'Université Tsinghua ont révélé une autre méthode d'attaque baptisée SAD DNS pouvant aussi entraîner un empoisonnement du cache DNS.

Des pratiques de validation de certificats défaillantes

Le piratage DNS, dont l'empoisonnement du cache DNS fait partie, a été utilisé au fil des ans par différents programmes malveillants et groupes d'attaquants pour diriger les utilisateurs vers de faux sites web bancaires. Techniquement, les sites Web employant HTTPS avec HTTP Strict Transport Security (HSTS), doivent être protégés. Bien que les attaquants puissent diriger les utilisateurs vers un serveur Web différent en utilisant le piratage DNS, ils ne devraient pas être en mesure d'usurper le certificat numérique du site Web entrainant une erreur liée à ce dernier dans le navigateur.

La mesure d'atténuation à mettre en place dépend de la qualité de la validation des certificats au sein du client concerné. Si les navigateurs modernes ont de bonnes pratiques de validation de certificat, les applications mobiles en revanche sont connues pour leur défaillance dans ce domaine. De plus, le DNS n'est pas seulement important pour les sites Web et le contenu diffusés via HTTP affichés dans un navigateur ou une application. Il est également utilisé pour le courrier électronique et pratiquement tous les autres protocoles impliquant de contacter un serveur distant à l'aide d'un nom de domaine et pouvant ou non prendre en charge ou implémenter la vérification de l'identité du serveur via des certificats numériques.

Au lieu d'usurper un site web complet, les attaquants peuvent utiliser le détournement DNS pour remplacer une seule des ressources externes chargées par un site web, comme un fichier JavaScript ou une publicité. Cela peut toujours entraîner le chargement d'un code malveillant dans le navigateur ou l'application de la victime dans un contexte de piratage ciblé.

A l'attaque de Dnsmasq

Dnsmasq est généralement destiné aux réseaux internes, mais les chercheurs de JSOF ont trouvé plus d'un million de périphériques, y compris de nombreux routeurs domestiques, sur lesquels dnsmasq était mal configuré et les rendant vulnérables à des attaques ciblées. Les appareils correctement configurés mais exécutant une instance vulnérable de l'outil peuvent également être ciblés si des attaquants accèdent à un autre appareil sur le réseau ou même à distance via le navigateur d'un utilisateur local. Par exemple, si les utilisateurs naviguent sur un site Web compromis ou légitime mais chargeant une publicité malveillante, les attaquants peuvent forcer les navigateurs des utilisateurs à effectuer une série de requêtes DNS malveillantes. Ce qui pourrait entraîner l'empoisonnement du cache de leur résolveur DNS local. Cela a été testé avec succès avec le navigateur Web Safari mais pas dans Google Chrome.

Une attaque réussie nécessite d'effectuer une succession rapide d'au moins 150 requêtes DNS pour empoisonner le cache, ce qui peut prendre entre 30 secondes et 5 minutes, a expliqué Shlomi Oberman, CEO et chercheuse au sein de JSOF. Chrome de son côté limite le nombre de requêtes DNS simultanées à six ou huit pour des raisons de performances, ce qui le protège d'une certain façon mieux que d'autres de ce type d'attaque. Les appareils qui exécutent dnsmasq peuvent également être ciblés directement s'ils sont connectés à un réseau ouvert, comme ceux des aéroports ou d'autres espaces publics. De nombreux points d'accès, y compris ceux d'entreprise utilisés pour configurer des réseaux invités, utilisent dnsmasq et sont exposés de cette manière car tout le monde peut se connecter à ces réseaux et envoyer des requêtes malveillantes au résolveur DNS.

Exécuter du code malveillant à distance

Certaines des vulnérabilités trouvées par JSOF sont des débordements de tampon et leur exploitation peut conduire à l'exécution de code arbitraire. Ces failles se trouvent dans les routines d'analyse des réponses DNSSEC avant déclenchement du processus de validation des signatures. Cela signifie que l'instance dnsmasq est vulnérable dès lors qu'elle est configurée avec le support DNSSEC, ce qui est en soit recommandé pour des raisons de sécurité. Dans ce scénario, l'attaquant n'a toutefois pas besoin d'envoyer des réponses DNS qui sont en fait signées numériquement avec une signature légitime car les failles précèdent leur étape de validation.

En fait, le moyen le plus simple d'exploiter les débordements de tampon est de les combiner avec des vulnérabilités d'empoisonnement du cache DNS. L'attaquant peut d'abord envoyer des requêtes pour empoisonner le cache. Les enregistrements ajoutés dans le cache peuvent ensuite être utilisés pour exploiter le dépassement de mémoire tampon à des fins d'exécution de code malveillant. Sur de nombreux systèmes embarqués, tous les processus s'exécutent avec des privilèges root, de sorte qu'une telle attaque peut entraîner une compromission complète d'un appareil. Et permettre aux attaquants de mettre un pied dans le réseau local ce qui est très difficile à détecter et éviter car les appareils IoT ne reçoivent généralement pas le même niveau d'analyse et de surveillance de sécurité que d'autres systèmes.

Atténuer les vulnérabilités dnsmasq

JSOF a travaillé avec le Centre de coordination CERT (CERT / CC), ICS-CERT, le développeur dnsmasq, Google et d'autres acteurs concernés pour coordonner l'effort de correction et divulguer ces vulnérabilités. Les failles ont été corrigées dans la version 2.83 de dnsmasq, sortie ce mardi 19 janvier et disponible dans les référentiels de la plupart des distributions Linux. Cela dit, il est probable que de nombreux appareils resteront non corrigés dans un avenir proche voire après. Les périphériques intégrés ont en effet tendance à exécuter des versions simplifiées de Linux avec des noyaux et des outils d'espace utilisateur plus anciens. Certains appareils sont très lents à recevoir les mises à jour du micrologiciel ou ne sont plus supportés et ne recevront alors jamais de correctifs pour ces problèmes. D'autant que la plupart des routeurs domestiques et des petites entreprises nécessitent toujours des mises à jour manuelles du micrologiciel, mais leurs utilisateurs les mettent rarement à jour...

JSOF a identifié plus de 40 fournisseurs concernés par DNSpooq, dont certains fabriquent des équipements de contrôle industriel et de réseau d'entreprise. La liste n'est probablement pas complète et comprend des noms tels que Google, Cisco Systems, Siemens, Huawei, General Electric, Ubiquiti Networks, Aruba Networks, Dell, Netgear, Synology, OpenStack et Linksys. Certains ont été plus réactifs et impliqués que d'autres et, bien que les fournisseurs de matériel ICS et d'entreprise soient susceptibles de publier des correctifs en temps utile, pour de nombreux appareils IoT et plus petits, cela prend généralement beaucoup plus de temps, malheureusement.

« Je pense que ces défauts persisteront pendant des mois ou des années pour certains appareils », regrette Shlomi Oberman qui pense que les attaques comme celles-ci seront concentrées sur les routeurs domestiques et d'autres appareils directement exposés à Internet. Une raison simple à cela, 1 million d'appareils piratés ouvrent l'appétit de tout opérateur de botnet, même pour être utilisés pour de « simples » attaques DDoS. Cependant, ce sont également les attaques les plus visibles et il est peu probable que nous entendions si ces vulnérabilités sont utilisées contre des organisations dans des attaques ciblées et furtives. Shlomi Oberman recommande aux entreprises d'exécuter leurs serveurs DNS locaux sur lesquels elles peuvent effectuer un nettoyage DNS et empêcher non seulement ces attaques, mais bien d'autres également. Ajouter plus de visibilité et de surveillance pour les appareils IoT à l'aide de diverses solutions disponibles sur le marché couplée à de la segmentation réseau peut - généralement - également aider à atténuer l'impact des problèmes de sécurité avec ces appareils.