Analyse des heuristiques prédominants pour la détection des sites de phishing
Introduction à l’approche développée
Parmi les moyens de détection/protection du phishing, il y en a un qui est particulièrement facile d’accès aux Internautes : la barre d’outils anti-phishing. A l’origine, celle-ci se présentait sous forme d’un plug-in additionnel à installer au sein du navigateur. Au cours des dernières années, devant la prolifération des sites de phishing, les éditeurs ont intégré ces fonctionnalités nativement au sein de leurs navigateurs (p.ex. depuis la version 3 pour Mozilla Firefox, ou depuis la version 7 pour Microsoft Internet Explorer – cf. figure 3.1). Néanmoins, d’autres barres alternatives que celles proposées par les navigateurs – plus ou moins maintenues – peuvent être utilisées (p.ex. Spoofguard [CLT+04], Spoofstick, Netcraft, WOT (pour Web of Trust), etc. – cf. aperçus visuels en figure 2.14 de la section 2.4.3.4). Les logiciels anti-virus les plus courants (p.ex. BitDefender, Symantec Norton, McAfee Site Advisor, etc.) proposent également nativement des barres anti-phishing qui s’intègrent automatiquement (c.-à-d. au moment de l’installation de l’anti-virus) dans le navigateur. Précisons enfin que des attaquants explorent également ce filon, en diffusant régulièrement de fausses barres anti-phishing sur le web. Les barres d’outils anti-phishing basent leur détection sur l’utilisation de listes noires et/ou tests heuristiques. Précisons que ces deux techniques sont toutes autant utilisées. Elles ont d’ailleurs donné lieu à de nombreux articles et, bien que les avis divergent, il apparaît difficile de trancher définitivement en faveur de l’une ou l’autre de ces techniques. L’utilisation des listes noires s’avère relativement contradictoire avec l’une des caractéristiques principales des sites de phishing, à savoir : leur durée de vie très courte (cf. section 2.3). En effet, bien que les listes noires s’avèrent plus exactes dans leur détection (c.-à-d. à priori, elles ne présentent pas de faux-négatifs), elles n’en sont pas moins incomplètes. De plus, elles nécessitent une mise à jour en temps réel ou presque (c.-à-d. dès l’apparition du site de phishing). Enfin, que la liste noire soit stockée côté client et/ou récupérée/testée depuis Internet, elle est une cible providentielle pour les attaquants (p.ex. via une attaque de type Man-in-the-Middle). A contrario, les tests heuristiques semblent moins vulnérables car ils fonctionnent de manière autonome. De plus, ils ne nécessitent pas de mises à jour fréquentes. Néanmoins, croire que définir des tests heuristiques à un instant t peut s’avérer suffisant est un leurre. En effet, leur dimension plus « statique » leur confère un degré de péremption non négligeable. Dès lors que les attaquants ont connaissance des tests heuristiques et/ou seuils de détection associés, ils peuvent essayer d’adapter leurs contrefaçons de sites webs afin qu’elles leurrent la détection. D’où la forte association des deux familles de techniques (listes noires et tests heuristiques) dans les barres anti-phishing. L’étude menée par Sheng et al. [SWW+09] a d’ailleurs démontré que leur utilisation combinée était un facteur indispensable à une détection efficace et optimisée. Cette même étude montre notamment que 63% des 191 campagnes de phishing qu’ils ont étudiées étaient terminées au bout de 2 heures, alors que les listes noires testées (utilisées par McAfee Site Advisor, Symantec Norton, Netcraft, Internet Explorer, Chrome ou Firefox) n’étaient capables d’en détecter que 20% à l’instant t=0. Ces mêmes listes noires sont également mises à jour dans des délais très variables, aboutissant à une détection de 43 à 87% des URLs de phishing au bout de 12 heures. En complément, une étude menée par Kumaraguru et al. [KCA+09] a démontré qu’après réception d’un email de phishing, au moins 50% des victimes potentielles accédaient au site contrefait dans les 2 premières heures, et 90% dans les 8 heures. Diverses suggestions/solutions sont proposées pour améliorer l’efficacité des listes noires. On peut notamment citer que Sheng et al. [SWW+09] proposent de générer celles-ci à partir des filtres antispam, partant du principe que les attaques de phishing sont majoritairement véhiculées par les emails. De leur côté, Prakash et al [PKKG10] ont développé un outil visant à prédire des listes noires d’URLs depuis une liste noire source, grâce à l’utilisation d’heuristiques (p.ex. changement de TLD, dérivation de nom de fichier, etc.). Leur théorie s’appuie sur le fait que les attaquants génèrent souvent de multiples URLs contrefaites très ressemblantes (p.ex. http://g00gle.hdfree.in/1.html et http:// g00gle.hdfree.in/2.html, ou http://e-baltikums-mailbox.com/different.files/geoga.html et http://e-baltikums.info/different.files/arta.html). Toutefois, il n’en demeure pas moins que les listes noires semblent majoritairement inefficaces au moment où la probabilité d’accéder au site contrefait est la plus forte. Nous avons donc choisi de nous intéresser aux heuristiques sur lesquels repose la détection dans cette phase clé. Plus particulièrement, nous nous sommes intéressés à évaluer l’efficacité des tests heuristiques, qu’ils portent sur l’analyse de l’URL et/ou sur l’étude du contenu de la page web visitée. Pour ce faire, nous nous sommes appuyés sur le développement de notre propre barre anti-phishing – Phishark – conçue tel un plug-in pour Mozilla Firefox, premier navigateur web open source [web] au niveau mondial, et No 1 en Europe devant Internet Explorer [Reu11]. Nous y avons intégré 20 tests heuristiques répartis en 6 catégories. Trois catégories s’intéressent à l’analyse de l’URL visitée, tandis que les trois autres se focalisent sur l’étude du contenu de la page web. Le moteur de détection a été étalonné, puis vérifié, sur des jeux d’URLs légitimes/contrefaites différents. A partir des résultats obtenus lors de la vérification, nous avons déterminé les catégories de tests heuristiques les plus déterminantes (c.-à-d. celles conduisant à des scores négatifs pour les listes noires, et celles conduisant à un score positif pour les listes blanches) pour la différenciation des sites légitimes et contrefaits.
Positionnement par rapport aux travaux similaires
Les travaux précédents qui s’apparentent le plus à notre étude ont été amorcés dans le Chapitre 2. Nous les détaillons plus avant ci-après afin de nous positionner : – L’étude de Zhang et al. [ZECH07] s’est intéressée à évaluer/comparer l’efficacité de 10 barres d’outils anti-phishing, dont la décision de légitimité s’articule principalement autour de blacklists. Sur les échantillons d’URLs testées, un manque de réactivité dans la mise à jour des blacklists utilisées est apparu. Sur ces points, nos études/avis se rejoignent. Néanmoins, leur étude n’apporte aucune mesure d’efficacité des tests heuristiques (les uns par rapport aux autres, ou vs. les blacklists). – Les travaux de Ma et al. [MSSV09] se sont focalisés sur une étude de l’URL pour en déduire une méthode de classification des sites légitimes/contrefaits. Plusieurs des critères pertinents qu’ils utilisent ont été retrouvés dans une partie amont de notre étude (cf. section 3.4.1.2). Cette dernière nous a permis d’aboutir à une liste de triplets déterminants que nous utilisons lors de notre analyse de l’URL visitée. A contrario de notre étude, l’utilisation de ces critères est le socle de leur détection/classification. Un autre point de divergence de nos travaux réside dans le fait qu’ils ne s’intéressent pas à l’analyse du code source HTML. – L’étude menée par Ludl et al [LMKK07] est probablement celle qui s’apparente le plus à nos travaux. Elle s’est intéressée à évaluer l’efficacité de deux blacklists – utilisées par Mozilla Firefox et Internet Explorer – pour la détection des sites de phishing, ainsi qu’à distinguer les caractéristiques prédominantes pouvant amener à une décision de légitimité/contrefaçon d’un site. Leurs travaux aboutissent à l’élaboration d’un arbre de décision qui s’articule aussi bien autour de l’analyse de l’URL que du contenu de la page web. Néanmoins il apparaît difficile de vraiment comparer nos deux études puisque leurs tests heuristiques sont peu détaillés (en terme de contenus étudiés et/ou scores décisionnels associés). On peut néanmoins dire que pour les sites légitimes, leurs résultats portent sur davantage d’URLs que nous en avons testés. Leur taux de faux-positifs obtenu est de 0.43%. Sur les pages de phishing, nos bases d’URLs sont de tailles comparables, mais leur taux de faux-négatifs est relativement important : 16.97%. Il semble également que nos tests heuristiques qui s’intéressent à l’URL sont plus nombreux. Enfin, leur étude ne discute pas de l’éventuelle pérennité des tests utilisés.
Décision de légitimité/contrefaçon
La décision de légitimité/contrefaçon prise par le moteur de détection de notre barre d’outils baptisée Phishark, repose sur le calcul d’un score global établi en additionnant – avec un poids équivalent – l’ensemble des scores obtenus pour chaque heuristique : Score global (p) = ∑20 i=1 Score(i) où (p) représente la page analysée/visitée dans le navigateur et (i) le numéro d’heuristique Si le moteur de détection ne peut aboutir à une décision (c.-à-d. le score global est = 0), le site visité est considéré comme Risqué (notre barre d’outils affiche Risky Site). Si le score global est > 0, le site visité est indiqué Légitime (notre barre d’outils affiche Legitimate Site). Sinon (c.-à-d. si le score global est < 0), le site visité est décidé Contrefait (notre barre d’outils affiche Phishing Site). Les seuils de décision définitifs associés à chaque heuristique sont déterminés au travers de la combinaison de 3 facteurs : 1/ d’éventuels seuils de décision relevés au travers de précédents travaux qui ont servi de base à notre étalonnage, 2/ de nos études complémentaires approfondies sur les pages légitimes/contrefaites, qui ont abouti à des critères supplémentaires et/ou des seuils affinés, 3/ ou encore de notre phase d’étalonnage du moteur de détection qui a permis d’arriver au meilleur compromis (c.-à-d. à un minimum de décisions erronées) dans la détection des sites légitimes/contrefaits
Conditions d’expérimentation
Afin d’évaluer la pertinence des tests heuristiques utilisés par les barres d’outils anti-phishing, nous avons réalisé deux types de tests : 1/ des tests portant sur des sites légitimes, et 2/ des tests portant sur des sites de phishing. Ces deux types de tests ont été réalisés par 3 phases différentes : 1/ une première phase dite d’étalonnage qui a permis de définir des seuils de détection optimisés, 2/ une deuxième phase de vérification des performances du moteur de détection Phishark, en comparaison avec d’autres barres d’outils antiphishing courantes, et 3/ une troisième phase d’identification des heuristiques déterminants1 . Précisons que pour améliorer la lisibilité des explications données dans ce chapitre, les listes d’URLs légitimes sont ultérieurement nommées whitelist, tandis que les listes d’URLs contrefaites (c.-à-d. de phishing) sont désormais nommées blacklist.
Établissement des listes d’URLs
Une des difficultés premières de notre étude réside dans la possibilité de tester des sites de phishing. En effet, de par leur durée de vie très courte, les sites de phishing doivent être testés dès leur apparition. Pour sélectionner ces URLs, nous nous sommes appuyés sur les sites de l’APWG [apw] et de Phishtank [phi] qui délivrent des bases d’URLs de sites contrefaits. Nous avons choisi de sélectionner des sites de phishing « validés » à 100%. En effet, les bases de données communiquées par l’APWG et Phishtank indiquent un niveau de confiance (c.-à-d. il est avéré et vérifié que l’URL présentée est un site de phishing), variant de 50 à 100% pour les URLs mises à disposition. Nous avons pris soin de sélectionner – pour chaque phase de tests – des URLs de phishing d’aspects très variables, répondant à l’ensemble des caractéristiques exposées en section 2.2. Précisons toutefois que les URLs de phishing de type HTTPS sont rares. De plus, ces URLs de phishing ont été récupérées et aussitôt testées par blocs de 50 à 100 URLs maximum, pour limiter la quantité d’URLs périmées. Même en procédant ainsi, nous avons eu des taux de pertes atteignant jusqu’à 7% par jeu d’URLs récupérées. Les URLs de phishing collectées – récupérées entre Janvier et Septembre 2010 – usurpent majoritairement des sites bancaires (p.ex. Bank of America, Paypal, Chase, etc.), des sites d’e-commerce (p.ex. eBay, etc.), des sites d’email (p.ex. Hotmail), des sites de réseaux sociaux (p.ex. Facebook) ou autres (p.ex. jeux en ligne avec RuneScape). Les whitelists ont quant à elles été générées à partir de diverses sources. On peut notamment citer le Top 1000 des sites les plus visités délivré par Google [Gooc], le Top 500 des sites les plus visités publié par Alexa [AI], le Top 100 des sites les plus populaires édité par Netcraft [Net], la whitelist proposée par Google [Goob], des URLs de sites bancaires récupérés grâce au site Levoyageur [lev], etc. Nous avons pris soin – pour chaque phase de tests – de multiplier les secteurs d’activité, le type de site visité (HTTP et HTTPS), le langage des pages webs, les types d’URLs sélectionnées (FQDN simple ou suivi de multiples niveaux d’arborescence), ou encore les TLDs (Top-Level Domain). L’ensemble des URLs légitimes utilisées pour cette étude ont été collectées entre Avril 2009 et Septembre 2010. Bien que les sites de phishing visent à usurper en grande majorité des sites de login, notre sélection d’URLs légitimes ne s’est pas restreint à cette catégorie de sites. En effet, notre moteur de détection s’exécute à chaque URL visitée. Il se doit donc de délivrer les bonnes décisions quel que soit le type de site web visité, d’où la diversité d’URLs sélectionnées.
Phase d’étalonnage
Une des phases les plus délicates de l’étude développée dans ce chapitre réside dans l’ajustement des seuils de décision associés à chaque heuristique. Pour ce faire, la phase d’étalonnage s’est déroulée en deux temps : 1/ nous avons cherché à définir les seuils de décision optimum pour les sites de phishing testés (c.-à-d. un maximum de décisions négatives), puis 2/ nous avons cherché à définir les seuils de décision optimum pour les sites légitimes testés (c.-à-d. un maximum de décisions positives). A partir de ces résultats obtenus en 2 temps, nous avons ensuite réalisé un compromis pour aboutir à des seuils de détection optimum pour les deux types d’URLs : légitimes et contrefaites. En effet, chaque modification de seuil peut affecter une liste positivement et l’autre négativement. Il a donc fallu procéder à plusieurs séries de tests successifs avant d’aboutir aux tableaux optimum présentés pour chaque liste (whitelist et blacklist) en section 3.4. Cette phase d’étalonnage a porté sur une whitelist de 150 URLs, et une blacklist de 200 URLs issues du site de Phishtank.
Phase de vérification et de comparaison aux autres barres d’outils
Dans cette deuxième phase, nous avons voulu vérifier l’efficacité de notre moteur de détection. En marge, nous en avons profité pour le confronter aux performances des barres d’outils anti-phishing les plus courantes. Les tests réalisés dans cette phase ont porté sur une whitelist de 500 nouvelles URLs, et une blacklist de 520 nouvelles URLs issues des sites de Phishtank (à hauteur de 69.81%) et de l’APWG (à hauteur de 30.19%). Barres anti-phishing sélectionnées : A partir de travaux précédents [ZHC07] [WMG06] et d’une étude que nous avons menée sur les barres anti-phishing les plus courantes, nous avons sélectionné 4 barres d’outils qui apparaissent comme les mieux classées en terme de performance (c.-à-d. qui délivrent les meilleurs taux de détection avec un minimum de FPR/FNR) et les mieux maintenues. Ainsi, nous avons comparé les performances de Phishark avec : – Le navigateur web Mozilla Firefox v.3.6.7 qui intègre un moteur de détection anti-phishing basé sur des listes blanches/noires (parmi lesquelles celles de Google et de Phishtank), la liste noire étant rafraîchie toutes les 30 minutes [Moz]. D’après leurs travaux, Zhang et al. [ZECH07] présument également que le moteur de détection de Mozilla Firefox utilise des tests heuristiques. – La barre anti-phishing Netcraft v.1.4.1.5 qui s’installe telle un plug-in dans le navigateur web Mozilla Firefox. Elle appuie sa détection sur l’utilisation des listes blanches/noires propres à Netcraft (auxquelles l’Internaute peut contribuer) : à chaque page web visitée, la barre d’outils envoie l’URL de la page à contrôler aux serveurs Netcraft pour vérification. Cet envoi est non sécurisé [AN08]. En complément, la barre anti-phishing utilise des tests heuristiques tels que la vérification de l’adresse IP du site, le pays hébergeur, le nom du serveur web, l’âge du site, etc. – Le navigateur web Internet Explorer v.8.0.601.18702 qui intègre un moteur de détection antiphishing nommé SmartScreen Filter. Celui-ci utilise des listes blanches/noires maintenues par Microsoft. La liste noire provient du service en ligne Microsoft URL Reputation Service qui s’appuie sur des listes noires externes à Microsoft, auxquelles les Internautes contribuent. En complément, elle utilise des tests heuristiques [Mic]. – La barre Web of Trust (WOT) v.20100503, qui s’installe telle une extension dans le navigateur web (au choix : Mozilla Firefox, Internet Explorer, Safari, Opera ou Google Chrome). Elle utilise des tests heuristiques (p.ex. la popularité du site web, la localisation du serveur web et sa réputation, etc.), ainsi qu’une liste noire qui inclut des URLs délivrées par Phishtank [Ser06].