Le "pharming" et les routeurs Internet domestiques ("Drive-by Pharming")
Date : 05 Mars 2007
Introduction :
Cette technique s'appuie essentiellement sur la faiblesse de l'interface d'administration des routeurs ADSL, notamment au niveau de la gestion des mots de passe d'accès qui restent généralement ceux définis par défaut (quand ils ne sont pas "vides").
Ce constat n'est cependant pas nouveau. Déjà, en 2001,
Tsutomu Shimomura, chercheur très connu dans le monde de la sécurité
informatique avait publié un rapport similaire sur des problèmes impactant les
équipements ADSL Alcatel Speed Touch (CERT-IST/AV-2001.098
: Vulnérabilités dans les modems ADSL Alcatel Speed Touch Home, Alcatel
Speed Touch Pro et Alcatel 1000 ADSL). Plus récemment, cette
problématique avait aussi été abordée lors de la dernière conférence SSTIC qui
s'était déroulée à Rennes en juin 2006 (cf. le compte-rendu
de
L'attaque la plus simple, mise en évidence dans ce document, est une attaque de type "Pharming" qui permet de modifier les paramètres de résolution de noms (DNS) du routeur ADSL, et par extension des PC qui lui sont rattachés. Cette modification a pour objectif de rediriger tout (ou une partie) du trafic web de la victime vers des sites frauduleux/malveillants.
Le détail de la technique du
"Pharming" a été décrit dans l'article du Bulletin
Le principe proposé pour mettre en œuvre de cette attaque (et donc modifier le serveur DNS au niveau du routeur ADSL) est de placer sur les sites visités par l'internaute visé, des codes JavaScript malicieux (ou des applets Java) qui seront exécutés silencieusement sur le poste de la victime, et qui tenteront depuis ce poste de modifier "par rebond" la configuration de son routeur ADSL. En effet l'accès à la configuration du routeur n'est en principe jamais possible directement depuis Internet (ce serait une grosse faille de sécurité) et un rebond sur le poste de l'internaute est donc nécessaire. Voyons plus en détail ce scénario d'attaque testé par l'équipe de chercheurs :
1 - Dans un premier temps, une applet Java qui aura été invoquée
depuis la page web visitée va se charger de découvrir l'adresse IP de la
machine de
2 - A partir de cette donnée, un script JavaScript va scanner la plage d'adresses correspondant à l'adresse trouvée précédemment afin d'y détecter le serveur web d'administration du routeur ADSL. Pour cela, le script s'appuie sur une méthode de prise d'empreinte basée sur l'accès en HTTP à des images spécifiques (logo de l'application web). En proposant plusieurs URL (correspondant à des URL de type image) au serveur web trouvé et en analysant les réponses retournées, le script pourra déterminer le type de serveur web (Apache ou IIS) ou le modèle de l'équipement hébergeant le serveur web (routeurs Linksys, Netgear, DLink, ….).
3 - Une fois le modèle de l'équipement déterminé, le script proposera à l'interface d'administration web une série d'identifiants et mots de passe connus comme étant ceux généralement configurés par défaut (ex : http://admin:password@192.168.0.1).
Nota : Cette phase peut se dérouler avant la phase 2, si l'accès à l'image déterminant le modèle du routeur nécessite une authentification.
4 - Une fois l'accès à la configuration du routeur ainsi établi, le script n'aura alors plus qu'à fournir l'URL ad hoc permettant sur ce modèle de changer la configuration du serveur DNS de l'équipement (exemple simple : http://admin:password@192.168.0.1/apply.cgi?DNS serv=serveur_DNS_pirate.com).
Une fois cette modification effectuée sur le routeur ADSL, et comme généralement les PC connectés derrière ce routeur se basent sur les informations DNS fournis par cet équipement, tout le trafic en provenance des PC sera dépendant de la résolution effectuée par le serveur DNS pirate ainsi configuré.
On peut, à partir de cet instant, imaginer des scénarios divers et variés où par exemple le serveur DNS pirate renverrait des adresses IP de serveurs web frauduleux lors des demandes de connexion à des sites web ciblés : sites bancaires (Paypal, …), sites d'achat en ligne (eBay, …), sites de mise à jour ("Windows Update", …), …
La modification des paramètres DNS du routeur n'est qu'un échantillon des attaques qui peuvent être menées contre un équipement vulnérable. D'autres scénarios peuvent également être mis en œuvre comme par exemple:
- l'activation de l'interface d'administration sur l'interface Internet (WAN) du routeur pour des accès distants aux fonctionnalités d'administration de l'équipement,
- le téléchargement d'un "firmware" spécifique sur l'équipement pour en faire un équipement "zombie" fournissant des ressources (CPU, bande passante) lors d'attaques à grande échelle. Ce scénario peut être d'autant plus plausible que certains "firmwares" sont disponibles en OpenSource ("OpenWRT").
Moyens de protections :
Afin de se protéger contre ces attaques, le document de Symantec préconise des solutions classiques, mais qui nous semble bon de rappeler :
- Au niveau de la navigation web :
- Ne pas faire confiance à des applets Java et scripts JavaScript provenant de sites web non sûrs.
- Utiliser les dernières versions des navigateurs web et de l'environnement d'exécution Java (JRE) afin de bénéficier des dernières fonctionnalités de sécurité.
- Au niveau des routeurs Internet
- Utiliser un mot de passe différent que celui proposé par défaut
- Privilégier les flux HTTPS aux flux HTTP pour l'accès à l'interface d'administration web
- Si possible, désactiver l'interface d'administration web, et effectuer l'administration via la console du routeur (pour les équipements disposant de cette fonctionnalité).
Pour plus d'information :
- Document de Symantec : http://www.symantec.com/avcenter/reference/Driveby_Pharming.pdf
- Blog d'un des auteurs du document de Symantec : http://www.cs.indiana.edu/~sstamm/blog/2007/02/drive-by-pharming.html