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.
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.
Les attaques de phishing utilisant des QR codes frauduleux intégrés dans des documents PDF joints…
Microsoft a amorcé le déploiement de Windows 11 24H2. Passage en revue des nouvelles fonctionnalités…
L'intégration de Copilot dans la suite bureautique s'accélère. Où trouver l'assistant IA et comment l'utiliser…
Microsoft annonce une phase expérimentale pour lancer Recall sur les PC Copilot+. Elle doit commencer…
Comment réduire la taille des mises à jour de Windows 11 ? Microsoft annonce la…
Déjà doté de la sauvegarde automatique, d'un compteur de caractères et de Copilot, Bloc-notes embarque…