L’éditeur anti-virus ESET a publié cette semaine une analyse très intéressante : ZeuS serait désormais capable d’interagir avec un lecteur de carte à puce connecté au PC infecté. Cette souche aurait été identifiée lors d’une analyse forensics d’une machine infectée.
Le module permettant à ZeuS de piloter le lecteur de carte à puce interroge directement l’API Windows de contrôle de la carte, la Smart Card API. Le module surveille la présence d’une carte insérée dans le lecteur, et enregistre les changements d’état de cette carte. Les informations sur l’état de la carte à puce sont transmises à destination du serveur de contrôle de ZeuS.
Ce module permet notamment :
- de lire la mémoire de la carte à puce (pourvu que celle-ci soit lisible) ;
- d’y écrire des données (pourvu que les zones mémoires adressées soit accessibles en écriture) ;
- d’appeler les fonctions internes à la carte (par exemple, vérifier un mot de passe ou générer une séquence aléatoire).
Concrètement, ce procédé met en péril les modes d’authentification reposant sur un lecteur de carte à puce installé chez le client pour valider et signer ses transactions bancaires. Le pirate pourrait par exemple prendre le contrôle des fonctions cryptographiques de la carte pour valider une transaction à l’aide du code PIN de son propriétaire, ce code ayant pu être dérobé par un autre moyen (phishing, ingénierie sociale, …), voire même intercepté directement par ZeuS (dans le cas où le code secret serait saisi sur l’ordinateur). Si le code PIN de la carte est tombé dans les mains du pirate, alors les fonctions cryptographiques de la carte ne sont plus d’aucune aide, puisque le malware peut alors la piloter comme s’il en était lui-même le propriétaire légitime, et donc réaliser des transactions frauduleuses qui seront numériquement signées et validées. Sans compter que les technologies de cartes à puce ne se valent pas toutes : certaines cartes à puce mal conçues pourraient être tout simplement copiées par le pirate, dans le cas où leur mémoire ne serait pas protégée ni chiffrée. On se souvient par exemple de certains dispositifs couplant biométrie et carte à puces qui se révélaient faillibles à des attaques triviales (le mot de passe étant stocké en clair dans la carte), car n’implémentant pas le protocole Match on Card. Certaines cartes à puce ne disposent d’ailleurs d’aucune fonction cryptographique, et servent uniquement d’espace de stockage.
L’apparition d’un tel module pour ZeuS souligne le fait que les attaques contre les cartes à puce ne sont pas qu’un champ de recherche théorique, mais que les fraudeurs s’y attèlent eux aussi. Cette information prend davantage de relief à l’heure où la carte d’identité numérique fait son entrée dans plusieurs pays européens, comme en Belgique ou en Italie, où il est prévu que la puce de cette carte puisse permettre une identification en ligne (pour la banque en ligne, la déclaration d’impôts, l’accès aux services publics en ligne, etc.). De nombreux établissements bancaires envisagent même de diffuser (ou ont déjà diffusé) auprès de leurs clients des lecteurs de cartes à puce, de manière à utiliser les fonctions cryptographiques incluses dans leur carte bancaire pour valider leurs opérations en ligne. Sans parler également des entreprises diffusant à leurs salariés des cartes à puce pour accéder au VPN de leur entreprise en situation de mobilité. La sécurité de ces dispositifs mérite d’être réexaminée, au regard de cette nouvelle menace.
Le blog d’ESET promet davantage de détails à venir. L’histoire ne dit pas si ce module est apparu avant ou après la cession du code-source de ZeuS à son rival, le développeur du malware bancaire SpyEye.
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));