Phishing : exploration des techniques utilisées & protections

Les techniques utilisées pour tromper les humains derrière leur écran m’ont toujours fasciné. Il ne s’agit plus de trouver une erreur de configuration, des guillemets en trop ou en moins dans un bout de code, il s’agit de tromper, abuser de la confiance d’un individu complexe, et parfois averti, afin de lui soutirer des informations, ou de lui faire exécuter des actions. Quoi de plus passionnant donc que de s’intéresser aux techniques de phishing ?

Nous irons ici un peu plus loin en explorant plusieurs autres pistes, comment les attaquants (on ne va pas les appeler “pêcheurs”, car ce serait ridicule) s’y prennent pour tromper leurs victime ? Nous verrons aussi que ceux-ci commettent des erreurs, parfois très grossières et que celles-ci peuvent nous aider à ne pas tomber dans un piège. Enfin, je vous détaillerai le fonctionnement des protections intégrées aux navigateurs, le fameux “Safebrowing”, l’occasion de voir que ce dernier n’est pas parfait mais qu’il peut tout de même avoir un intérêt.

J’en ai déjà parlé sur mon blog, le phishing, ou littéralement le fait de “pêcher” (“fish” en anglais), est décrit par l’OWASP de la manière suivante :

Phishing is misrepresentation where the criminal uses social engineering to appear as a trusted identity. They leverage the trust to gain valuable information; usually details of accounts, or enough information to open accounts, obtain loans, or buy goods through e-commerce sites. Source : OWASP – https://www.owasp.org/index.php/Phishing

L’OWASP précise d’ailleurs dans cette même page que les attaques de phishing sont l’un des problèmes majeurs au regard de la sécurité des banques et des sites de e-commerce (surtout pour leurs utilisateurs, en fait).

Bref, dans cet article nous allons partir en balade dans le monde du phishing, j’avais déjà évoqué ce sujet notamment dans ce précédent article où j’avais tenté d’explorer la technique utilisée dans un mail de phishing que j’avais reçu : Analyse d’un mail, site et serveur de phishing

Phistank : une banque de lien de phishing / un outil de centralisation et de protection

Je commence par vous présenter une plateforme web que j’ai découvert récemment : Phishtank.

Il s’agit d’une plateforme anti-phishing, lancée en 2006. Son but est de favoriser le partage d’informations autour du phishing afin de mieux s’en protéger. Le principe est simple, les utilisateurs soumettent des liens suspects, d’autres se chargent de les analyser, puis de voter afin de déterminer si le lien est effectivement du phishing ou non. Le but est ensuite de proposer, via une API, une liste de pages web ou liens qui sont considérés comme dangereux afin de protéger les utilisateurs. La partie “Add a Phish” permet de soumettre un nouveau lien pour que les autres utilisateurs puissent l’évaluer.

Page d'accueil de Phishtank

Page d’accueil de Phishtank

Je m’intéresse plus particulièrement à la partie “Phish Search” qui permet de rechercher des cas de phishing encore en ligne pour différentes plateformes :

Recherche de liens de phishing dans Phistank

Recherche de liens de phishing dans Phistank

Voilà qui est intéressant donc, on peut librement trouver des centaines de liens et décortiquer les techniques utilisées ! 🙂

Note : Si vous souhaitez visiter les URLs catégorisées en “phishing” présentes dans Phishtank, je vous conseille vivement d’utiliser une machine virtuelle dédiée à cette tâche, et évidemment, de n’y saisir aucune donnée réelle.

Enfin, ces portails de centralisation des pages et sites malveillants permettent de créer des listes qui peuvent être exploitées en temps réel par des pare-feux, proxy web d’entreprise ou même par les navigateurs web.

En utilisant Phishtank, je vais vous présenter quelques exemples de cas avérés de phishing.

Étude de quelques cas de phishing : quelles sont les techniques utilisées ?

Cela va notamment nous permettre de mettre en lumière les techniques utilisées pour tromper l’humain, qui va saisir ses identifiants naïvement et ainsi les envoyer directement à un individu malintentionné.

Paypal est certainement le cas le plus courant, on retrouve sur Phishtank des centaines de liens de phishing encore en ligne et de nouveaux sont ajoutés tous les jours :

Intéressons nous d’abord aux noms de domaines utilisés. Cela nous permettra par exemple de voir s’il s’agit de sites web légitimes qui hébergent malgré eux des pages de phishing (après un piratage) ou s’il s’agit d’un nom de domaine géré par un pirate qui héberge lui même (ou presque) son site de phishing.

Un premier exemple ici :

On voit ici une page d’authentification comme celle que l’on peut trouver sur le site officiel d’Orange afin d’accéder à ses différents portails. Si l’on jette un coup d’œil à la barre d’URL, on remarque que celle-ci ne comporte même pas la mention d’Orange, voilà qui est étrange. De plus, la page web se trouve dans le dossier “media/favicon”, ce qui n’a strictement aucun sens. Pour finir, le nom de domaine est en .ro (Roumanie) alors que le texte est en français… Au vue de ces différents éléments, il s’agit très certainement d’une page de phishing. Voici un autre exemple, le cas d’une page de phishing Yahoo! :

Page de phishing Yahoo!

Page de phishing Yahoo!

Si l’on se rend à la racine du site web, on retrouve les pages tout à fait standards d’une école (Irlandaise il me semble) :

Site d'une école qui héberge une page de phishing

Site d’une école qui héberge une page de phishing

On constate donc clairement que quelqu’un s’est introduit dans le site web de cette école pour y insérer des pages de phishing. Aucun risque n’est pris par l’attaquant, il n’est le propriétaire ni du nom de domaine, ni de l’hébergement. Les informations saisies par les utilisateurs sur la page de phishing seront certainement envoyées par mail ou sur une plateforme distante pour brouiller les pistes. C’est notamment ce que j ‘avais observé lors d’une précédente analyse.

Néanmoins, cela porte un coup à la crédibilité de la page visitée. Une page d’authentification Yahoo! sur un nom de domaine “scoilbhriden.ie”, peu crédible, un utilisateur sans grande connaissance du web peut détecter cette bizarrerie et donc ne pas mordre à l’hameçon. Ce qui nous amène à un second cas plus intéressant :

Page de phishing Paypal

Page de phishing Paypal

Si l’on observe le nom de domaine de cette page phishing Paypal, on remarque la mention“paypal-account”, mais également “account/profile” plus loin dans l’URL. Néanmoins le nom de domaine réel “dotorrent.com” n’a rien a voir avec Paypal. Il s’agit donc effectivement de phishing.

Un autre exemple ci-dessous, dans lequel on peut croire qu’il s’agit effectivement d’un serveur de Facebook (“activation-fb01“). Le nom de domaine est en réalité “my1.ru“, mais la place prise par cette information dans l’URL est assez mince. “Activation“, “fb01” et “reconfirmation” seront certainement les informations que retiendront le coup d’œil rapide de l’utilisateur dans l’URL :

Page de phishing Facebook

Page de phishing Facebook

Bien entendu sur ces deux différents cas, la page de login utilisée pour saisir les identifiants est une parfaite copie de l’originale provenant des sites officiels. C’est un point qui n’est maintenant plus très compliqué à produire, un peu de CSS, le téléchargement des images en provenance directement du site officiel, et le tour est joué. C’est pourtant ce qui fait le job en matière de phishing pour des utilisateurs non avertis. La page ressemble à celle habituelle, je saisi mes informations comme d’habitude.

Un des cas les plus convaincant sur lequel je suis tombé durant mes recherches est certainement celui de l’utilisation de l’HTTPS avec un certificat Let’s Encrypt (gratuit). Ce qui permet d’afficher le fameux “cadenas vert” qui prouve que tout est “sécurisé” :

Utilisation des certificats SSL Let's Encrypt dans le cadre de pages de phishing Paypal

Utilisation des certificats SSL Let’s Encrypt dans le cadre de pages de phishing Paypal

Voici ci-dessus deux exemples de noms de domaine en rapport avec la cible (Paypal) mais qui appartiennent en réalité à des attaquants qui souhaitent voler des informations. En cas de doute, l’utilisateur peut se référer au nom de domaine, qui, il faut bien l’avouer, permet de valider qu’il s’agit bien d’un site de Paypal (aux yeux d’un utilisateur). On conseille ensuite généralement aux utilisateurs de vérifier la présence d’un cadenas vert qui, en gros, dans l’esprit de la majorité des internautes, est synonyme de sécurité. Le piège est donc quasi-parfait.

Si nous nous intéressons plus particulièrement aux données, j’ai pu distinguer deux méthodes  d’envoi des données au niveau de l’attaquant. En général, ceux-ci ne disposent pas d’éléments de stockage sur la plateforme piratée (cas où l’attaquant n’est pas propriétaire du nom de domaine et de l’hébergement). Alors, ils peuvent soit inscrire les données sur un fichier local (ou distant, un autre domaine/hébergement), soit s’envoyer ces données par mail anonyme du genre “jojo_06546465@laposte.net“. Ils pourront alors venir parcourir ces mails librement sans laisser de trace. Hormis sur la plateforme de mail en elle-même, il faudra alors utiliser des procédures juridiques pour que l’hébergeur du service mail donne accès aux informations nécessaires afin de démasquer le propriétaire de l’adresse mail, bref, compliqué :

Schématisation des flux de redirection de l'utilisateur et d'envoi des données volées au pirate

Schématisation des flux de redirection de l’utilisateur et d’envoi des données volées au pirate

Le flux en rouge représente le parcours de l’utilisateur. Une fois le formulaire rempli, il atterrit généralement vers la page web en charge de traiter/stocker ses identifiants (désormais volés). Il est ensuite automatiquement et instantanément redirigé soit vers la page officielle du site sur lequel il pensait être (cas 2A), soit l’attaquant est moins rigoureux et ne redirige pas l’utilisateur, ou alors à nouveau vers la première page de login. Dans le second cas, l’utilisateur peut se rendre compte au bout de plusieurs échecs que le site n’est pas le bon et qu’il s’est fait piéger. Ainsi, il peut alors rapidement modifier ses vrais identifiants sur la vraie plateforme. Pour le premier cas, l’utilisateur pensera simplement avoir mal saisi ses identifiants, les saisira à nouveau et sera correctement authentifié (car désormais il sera sur la bonne plateforme), ce qui est beaucoup plus dangereux pour lui.

D’autres cas existent probablement, je n’ai pas été jusqu’à infiltrer chaque site de phishing pour en décortiquer le fonctionnement. On peut imaginer que pour les cas de phishing très critiques (eBay, Paypal), les pirates prennent toutes les précautions pour dissimuler leur identité et réduire les suspicions de leurs victimes.

Comment déceler un phishing ? Erreurs commises par les attaquants

La première chose à vérifier est bien entendu le nom de domaine. Voir une page d’authentification Facebook ou Paypal quand l’URL du site n’est pas clairement facebook.com ou paypal.com devrait vous mettre la puce à l’oreille.

Nous avons vu à ce titre que les attaquants deviennent très malins par exemple en positionnant le nom du site/domaine usurpé en nom de sous-domaine, exemple “facebook.activation-compte.fr“. Ici  le nom de domaine est “activation-compte.fr” et non “facebook”. L’utilisateur lambda n’y verra aucune différence (j’imagine).

D’autres éléments, relatifs à la construction de la page web elle-même, peuvent être à vérifier. Par exemple, les liens de type “j’ai oublié mon mot de passe” ou “Mentions légales” sont généralement vides et renvoient vers la même page, ce qui ne serait certainement pas le cas sur une vraie page d’authentification  :

Erreur courante sur les pages de phishing

Erreur courante sur les pages de phishing

La raison à cela est simplement que le pirate ne vas pas s’embêter à reconstruire tout le site web de l’entité qu’il veut copier. Au mieux, les liens redirigeront vers le site officiel.

Enfin, les protections intégrées à nos navigateurs, peuvent aussi être utiles, mais ne sont pas suffisantes à elles seules (comme souvent en sécurité d’ailleurs). J’ai nommé le SafeBrowsing.

SafeBrowsing : Surfez, vous êtes protégé, jusqu’à un certain point

Maintenant que nous avons étudié quelques cas de phishing, mais que nous avons vu que les attaquants commettent parfois des erreurs et qu’aucune technique n’est parfaite (ou presque, disons que la majorité sont même assez médiocres), nous allons étudier le SafeBrowsing, une “fonctionnalité” intégrée aux navigateurs les plus connus qui a pour but de protéger les utilisateurs des liens “malicieux” ou des pages de phishing.

Dans les navigateurs connus comme Firefox et Chrome, des fonctionnalités de protection des utilisateurs ont été déployées depuis plusieurs années, le “Safe Browsing”. Le Safe Browsing est actif sur trois actions utilisateurs lors de sa navigation:

  • La visite de sites web considérés comme malveillants
  • Le téléchargement de fichiers à risques (logiciels malveillants, malwares, …)
  • La visite de sites proposant au téléchargement des logiciels non souhaités/dangereux (unwanted Software)

Dans ce cadre, il est intéressant de se pencher sur le fonctionnement de ces systèmes de protection. Le fonctionnement du SafeBrowsing n’est en soit pas très complexe à comprendre. Grâce au service de Google, et d’autres bases d’URLs malicieuses, les navigateurs téléchargent des listes de hashs, correspondant aux URLS qui amènent vers des pages, domaines ou sites de phishing (ou téléchargement de malware, etc.). Les navigateurs téléchargent donc ces listes de manière régulière afin de garder leur base locale à jour. Lorsqu’une URL est visitée, le navigateur produit un hash et vérifie si celle-ci figure dans la base locale des URLs dangereuses. Si c’est le cas, un message d’avertissement est affiché :

Téléchargement et utilisation des blacklist d'URLS dans le cadre du SafeBrowsing

Téléchargement et utilisation des blacklist d’URLS dans le cadre du SafeBrowsing

Google, au travers de son Transparency Report, donne plusieurs informations sur le fonctionnement et l’utilisation du Safe browsing intégré à Chrome :

  • https://www.google.com/transparencyreport/safebrowsing/
  • https://support.google.com/chrome/answer/99020?co=GENIE.Platform%3DDesktop&hl=en
  • https://security.googleblog.com/2015/07/more-visible-protection-against.html

Google propose également un outil de vérification d’URL. Sans avoir de détails précis sur son fonctionnement, on peut envisager qu’il s’agit “simplement” de vérifier si l’URL renseignée fait partie d’une liste des sites malveillants établie par Google : https://www.google.com/transparencyreport/safebrowsing/diagnostic/?hl=en. Après avoir parcouru la documentation SafeBrowsing de Google, je pense en fait qu’il s’agit de faire analyser par Google une page qu’il n’a pas encore en base. Nous verrons un peu plus bas que Google semble utiliser des “robots” et des algorithmes pour détecter les pages de phishing.

Il s’agit par exemple d’un outil utile à présenter dans les formations de sensibilisation utilisateur. En cas de doute sur un lien, essayer de le soumettre à cet outil avant de cliquer dessus. Bien que son système de détection ne soit pas fiable à 100%.

Pour activer/désactiver le Safe Browsing Chrome, suivez cette documentation: https://www.whattechsays.com/turn-off-safe-browsing/

D’après la documentation de Firefox, la protection contre les malwares intégrées dans le navigateur de Mozilla se base sur les blacklists gérées et établies par Google. C’est ce que rapporte le site StopBadware, directement pointé par la documentation Firefox : https://www.stopbadware.org/firefox/

Il est ici intéressant de constater une centralisation des connaissances et des informations entre les navigateurs, notamment pour les malwares/phishing. Pour Firefox, qui détaille dans ces pages un peu plus le fonctionnement de son SafeBrowsing, on apprend qu’une liste des sites et pages considérés comme suspects est téléchargée ou mise à jour toutes les trente minutes environs.

Pour visualiser l’échange entre mon navigateur (Firefox) et le service SafeBrowsing de Google, j’ai positionné BurpSuite en proxy de mon navigateur. Voici la requête observée dés l’activation du SafeBroswing de mon navigateur :

Requête émise par le navigateur au service SafeBrowsing de Google

Requête émise par le navigateur au service SafeBrowsing de Google

Et voici la réponse, je n’ai pas réussi (et pas trop creusé) à comprendre le format et le contenu des données échangées. Je suppose simplement que chaque entrée possède un ID ( que l’on voit séparés par des “,”) et que si la liste du navigateur n’est pas à jour, le service de Google renvoit une liste d’ID avec des URL encodées (pure supposition, n’hésitez pas à me corriger) :

Réponse du service SafeBroswing de Google

Réponse du service SafeBroswing de Google

Quoi qu’il en soit, on voit bien un échange entre Firefox et le service de Google (ce qui peut paraitre gênant au premier abord), et ce, dés l’activation du SafeBrowsing dans mon navigateur. Je suis au passage rassuré que chaque URL que je visite ne soit pas envoyée sur les services de Google pour vérification. Autrement dit l’analyse de l’URL visitée dans la base des URL suspectes en matière de phishing se fait en local, une bonne chose. En étudiant l’historique du fonctionnement du Safe Broswing, on apprendra que les premiers fonctionnement de celui-ci utilisait ce système : chaque URL visitée était envoyée sur les services de Google, qui avait alors un suivi de notre naviguation “en temps réel”. C’est n’est plus le cas à présent.

Pour creuser un peu plus le rôle et le fonctionnement de ces listes, on peut directement aller voir dans ces différents dossiers et constater que plusieurs fichiers relatifs à l’anti-phishing et plus généralement au SafeBrowsing sont présents (Firefox) :

  • Linux : ~/.cache/mozilla/firefox/XXXX/safebrowsing/
  • Mac : ~/Library/Caches/Firefox/Profiles/XXXX/safebrowsing/
  • Windows : C:\Users\XXX\AppData\Local\Mozilla\Firefox\Profiles\XXX\safebrowsing

Voici la liste exacte des fichiers dont je dispose sur un poste Windows 10 :

On peut ici voir que la base de données utilisée par le SafeBrowsing de Firefox ne se base pas uniquement sur Google, les fichier “test-” et “mozstd-” semblent provenir d’une autre source. J’ai trouvé plusieurs références aux fichiers “mozstd” dans cette  documentation de Mozilla sur le SafeBrowsing/anti-Tracking : https://wiki.mozilla.org/Services/TrackingProtection/Shavar_Server_-_Testing

Je pensais tomber sur une liste brute d’URLs ou de hashs en ouvrant ces fichiers mais cela n’a pas été le cas :

Pour ceux qui auront commencé à jouer avec des pages malveillantes, vous vous appercevrez que plusieurs types de page peuvent être affichées dans le cadre du SafeBrowsing. Voici les pages exactes qui seront affichées dans Firefox dans un des trois cas où le SafeBrowsing est actif :

Pour activer/désactiver le SafeBrowsing Firefox, suivez cette documentation : https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections#w_anti-phishing-list-updating

On peut maintenant s’intéresser à la manière dont le SafeBrowsing de Google met à jour ses listes d’URL malveillantes, car il semble être l’élement central de la protection des utilisateurs dans les principaux navigateurs. J’ai trouvé peu d’information à ce sujet. Ma première supposition était que Google se base, au moins un peu, sur des bases publics et collaboratives telles que Phishtank, mais rien n’est moins sur. Voici quelques extraits de la documentation de Google à propos de la détection des sites de phishing :

Comment Google détemine un site web suspect

Source : https://www.google.com/transparencyreport/safebrowsing/?hl=fr

Voici un autre extrait dans lequel on apprend qu’ils utilisent des modèles statistiques, ce qui est un peu curieux, mais après tout pourquoi pas :

Comment google détermine un site suspect

Source : https://www.google.com/transparencyreport/safebrowsing/faq/?hl=fr

Je suis toujours preneur d’autres informations plus techniques, n’hésitez pas à en partager dans les commentaires si vous connaissez plus en détail la manière dont Google met à jour ses listes.

Pour “contourner” le SafeBrowsing, il faut donc que notre URL ne fasse pas parti de ces listes téléchargées par tous les navigateurs ou qu’elle n’ai pas été visitée et analysée par les “robots” de Google. C’est donc le cas lors des premières heures de mise en ligne d’un phishing, qui, pour la plupart, finissent par être dénoncés sur des plateformes telles que phishtank ou”analysée” par les outils mystérieux et automatisés de Google. Personne n’est donc à l’abri d’être la cible d’une nouvelle campagne de phishing. Et il faut rappeler que toutes les pages de phishing ne sont pas forcément présentes dans les listes de protection du SafeBrowsnig. Il est donc important de rappeler que même si ce dernier est actif, avec le meilleur des antivirus et le meilleur des pare-feu, rien ne vous protégera mieux que votre propre vigilance.

Dans cet article nous avons étudié certaines techniques de phishing et surtout vu que la plupart d’entre eux peuvent être repérés grâce à un peu de vigilance. Nous en savons également plus sur le fonctionnement du SafeBrowsing, protection proposée par les navigateurs, le coeur du système est ici la blacklist, gérée et fournie prinicpalement par Google, et la comparaison des hashs des URL visitées avec cette blacklist. Les techniques des attaquants peuvent être très poussées et minutieuses, bien que ce ne soit pas le cas dans la majorité des pages de phishing.

Vous aimerez aussi...

2 réponses

  1. Stephanoux dit :

    Bonjour,

    Encore un article super intéressant. Merci de lever le voile (et la suspicion), une bonne fois pour toute, sur la fonction «SafeBrowsing ».

  2. Salvador dit :

    Super article !! Merci beaucoup!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *