Pour gérer vos consentements :

SmartScreen : le bouclier de Microsoft Edge détourné pour du malvertising

Destinée notamment à avertir les internautes lorsqu’ils visitent des sites potentiellement malveillants, la fonction SmartScreen du navigateur Microsoft Edge peut être détournée pour diffuser des scams.

C’est, en substance, le constat qu’établit Manuel Caballero.

Ce chercheur indépendant en sécurité informatique s’est intéressé aux travaux menés par un confrère de Malwarebytes à propos du malvertising, qu’on définit communément comme l’utilisation de la publicité en ligne pour diffuser des logiciels malveillants.

Les travaux en question se concentrent sur l’évolution des pratiques au-delà du JavaScript typiquement utilisé pour envoyer des pop-up en boucle. L’accent est mis sur la puissance de certaines fonctions HTML5, à l’image de history.pushState(), qui consiste à insérer des données dans l’historique… et qui a la particularité, lorsqu’elle est utilisée de manière répétitive, de ne pas planter le butineur, mais de le bloquer, en sollicitant la machine au maximum de ses capacités.

En conséquence, l’utilisateur a le temps de lire le message qui s’affiche. Typiquement, une alerte « contextuelle » de type « Votre ordinateur est peut-être infecté », avec un numéro de téléphone d’apparence légitime, mais qui cache une arnaque.

Messages trompeurs

Sur cette base, Manuel Caballero a étudié SmartScreen et son système de blocage des URL malveillantes.

Il a déterminé que les alertes affichées dans le navigateur provenaient d’une ressource interne. En l’occurrence, une page HTM dénommée « PhishSiteEdge » et appelée via le protocole ms-appx-web.

Pour autant, ce n’est pas cette URL qui s’affiche dans la barre d’adresse : il s’agit de celle associée à la fonction hash.

Une recherche dans l’explorateur confirme que PhishSiteEdge.htm se trouve bien en local, dans le sous-dossier \Assets\ErrorPages du répertoire d’installation du navigateur.

Il s’y trouve d’autres ressources HTM qui ne peuvent pas toutes être chargées dans Edge, que ce soit directement, par l’intermédiaire d’une page Web ou encore d’un script.

En jouant avec la fonction window.open, qui retourne un message d’erreur lorsqu’un élément ne peut pas se charger, Manuel Caballero a déterminé qu’il suffisait de changer un caractère dans une URL bloquée pour qu’elle ne le soit plus.

Quel intérêt ? Celui de pouvoir remplacer un élément d’une URL par son code ASCII (par exemple, « 2E » pour le point) et ainsi de conserver une URL valide.

Reste alors à modifier le hash avec l’adresse qu’on souhaite afficher à l’utilisateur.

Non sans oublier de régler quelques paramètres que la page d’alerte (ici « BlockSite.htm ») importe via la fonction location.search : « BlockedDomain » pour afficher une URL en dessous du message d’alerte et « Host » pour insérer entre autres un numéro de téléphone… qui hérite automatiquement d’un lien cliquable.

Recent Posts

Avec Phi-3-mini, Microsoft va-t-il convertir les PME à la GenAI ?

Microsoft lance Phi-3-mini, un petit modèle de langage (SLM) qui s'adresse aux entreprises ne disposant…

2 jours ago

IA et RGPD : sont-ils compatibles ?

Quelle part d’incertitude faut-il accepter dans la mise en conformité des IA avec le RGPD…

3 semaines ago

Windows 10 : quel coût pour le support étendu ?

Microsoft a dévoilé les prix des mises à jour de sécurité étendues pour Windows 10.…

4 semaines ago

Cybersécurité : la plan de Docaposte pour convaincre les PME

Docaposte a sélectionné une douzaine de spécialistes français pour créer un Pack cybersécurité spécialement étudié…

1 mois ago

Surface Pro 10 : plus autonome et un peu plus réparable

La Surface Pro 10 sera disponible le 9 avril en France. Passage en revue de…

1 mois ago

Office 2024 : ce qu’on sait de la prochaine version

Que réserve Office 2024 ? Une première version de test officielle sera disponible en avril.…

1 mois ago