Téléchargement furtif
Le terme téléchargement furtif ou téléchargement à la dérobée (en anglais, drive-by download ou drive-by install) signifie deux choses, chacune concernant le téléchargement involontaire de logiciels depuis Internet :
- un téléchargement qu'une personne a autorisé mais sans en comprendre les conséquences (par exemple, des téléchargements qui installent un programme non désiré ou malveillant, un composant ActiveX ou un applet Java).
- un téléchargement qui se produit à l'insu de l'utilisateur, souvent le téléchargement d'un virus informatique, d'un logiciel espion, d'un autre logiciel malveillant ou d'un logiciel criminel[2].
Un téléchargement furtif peut se produire lors de la visite d'un site Web, de l'ouverture d'une pièce jointe à un courriel, d'un clic sur un lien ou d'un clic sur une fenêtre surgissante (pop-up) trompeuse[3]. Par exemple, en cliquant sur une fenêtre surgissante malveillante affichant une publicité, un utilisateur peut penser qu'il clique sur un bouton pour fermer la fenêtre alors que le pirate qui a affiché la fenêtre agira comme si le clic de l'utilisateur était une autorisation à télécharger un logiciel.
De même, un téléchargement furtif peut se produire lors de la visite d'un site malveillant ou d'un site légitime infecté. Le contenu malveillant du site peut alors exploiter des vulnérabilités du navigateur Web ou de ses modules d'extension (plugins) pour télécharger sur l'ordinateur de l'internaute du code malveillant à son insu[4].
Fonctionnement
Pour mettre en place un téléchargement furtif, un attaquant doit d'abord créer le code qui effectuera le téléchargement furtif une fois qu'il aura été installé sur un ordinateur à infecter. Avec l'augmentation des packs d'exploits contenant le code nécessaire pour mener des téléchargements furtifs, les compétences nécessaires pour créer ce code malveillant ont été considérablement réduites[4].
L'étape suivante consiste à héberger le code malveillant. L’attaquant peut héberger le code malveillant sur son propre serveur. Toutefois, à cause de la difficulté de diriger les utilisateurs vers cette nouvelle page, il est plus efficace d'héberger le code à diffuser sur un site Web légitime compromis, ou sur un site Web légitime distribuant à son insu le code malveillant qui aura été inclus auparavant dans un service tiers (par exemple, dans une publicité). Lorsque le code est chargé par le client, le code malveillant analyse les équipements et les logiciels utilisés par le client pour découvrir les vulnérabilités spécifiques à ce client[5].
Enfin, l’attaquant exploite les vulnérabilités identifiées pour lancer le téléchargement furtif. Les téléchargements furtifs utilisent généralement l'une des deux stratégies suivantes. La première consiste à exploiter les appels API pour divers modules d'extension (plugins). Par exemple, l'API DownloadAndInstall du composant Sina ActiveX ne vérifiait pas correctement ses paramètres et permettait le téléchargement et l'exécution de fichiers arbitraires à partir d'Internet. La deuxième stratégie consiste à écrire un shellcode en mémoire, puis à exploiter les vulnérabilités du navigateur Web ou d'un module d'extension (plugin) pour renvoyer le flux de contrôle du programme vers le shellcode[5]. À travers le shellcode, l’attaquant peut effectuer diverses activités malveillantes, incluant des téléchargements furtifs[4].
Tout au long de l’attaque, l’attaquant peut prendre des mesures pour empêcher la détection du téléchargement furtif. Une méthode consiste à rendre le code malveillant impénétrable, par exemple, par l'utilisation d'iFrames[4]. Une autre méthode consiste à chiffrer le code malveillant pour empêcher sa détection. En général, l'attaquant chiffre le code malveillant, puis inclut la méthode de déchiffrement à la suite du texte chiffré[5].
Détection
La détection des téléchargements furtifs est un domaine de recherche actif. Certaines méthodes de détection se concentrent sur la détection d'anomalies qui suit les changements d’état sur le système d’un utilisateur pendant que celui-ci visite une page Web pour détecter des modifications anormales lors du rendu d'une page Web. Parmi les autres méthodes de détection, citons la détection d’occurrences d'écriture de code malveillant (shellcode) en mémoire.
Une autre méthode de détection consiste à créer des environnements d'exécution où le code JavaScript est exécuté et de suivre son comportement pendant son exécution.
D'autres méthodes de détection incluent l'examen du contenu des pages HTML pour identifier des fonctionnalités pouvant être utilisées par des pages Web malveillantes et l'utilisation des caractéristiques des serveurs Web pour déterminer si une page est malveillante[4]. Certains antivirus utilisent des signatures statiques pour identifier des scripts malveillants, bien que ceux-ci ne soient pas très efficaces en raison des techniques de camouflage des téléchargements furtifs. La détection est également possible en utilisant des pots de miel pour attirer et identifier les téléchargements furtifs[5].
Références
- « Exploit on Amnesty pages tricks AV software », The H online, Heinz Heise, (consulté le )
- Stefanie Olsen, « Web surfers brace for pop-up downloads », CNET News, (consulté le )
- Van Lam Le, Ian Welch, Xiaoying Gao et Peter Komisarczuk, « Anatomy of Drive-by Download Attack », Australian Computer Society, Inc., Darlinghurst, Australia, Australia, , p. 49–58 (ISBN 9781921770234, lire en ligne)
- (en) Manuel Egele, Engin Kirda et Christopher Kruegel, iNetSec 2009 – Open Research Problems in Network Security, vol. 309, Springer Berlin Heidelberg, coll. « IFIP Advances in Information and Communication Technology », , 52–62 p. (ISBN 978-3-642-05436-5, DOI 10.1007/978-3-642-05437-2_5), « Mitigating Drive-By Download Attacks: Challenges and Open Problems »