Interview : Flashback et la mécanique d'un malware

Florian Innocente |
Le retour récent dans l'actualité du malware Flashback a remis en avant les questions de sécurité autour du Mac. Mais il y a d'autres volets intéressants dans ce dossier : comment opère ce type de logiciel, quelles sont les méthodes utilisées par les éditeurs pour les analyser et comment peut-on expliquer certaines variations dans les chiffres d'infection communiqués. Des questions auxquelles a répondu Philippe Devallois, Senior Security Analyst chez Intego, et à ce titre responsable de leur laboratoire.



MacGeneration : De quelles manières peut se faire l'installation de Flashback et est-ce que l'utilisateur est à chaque fois sollicité ?

Philippe Devallois : Il y grosso modo trois types d'installations :

1 - les anciennes variantes utilisaient un faux paquet d'installation se faisant passer pour Flash, d'où le nom.

2 - une installation au moyen de deux failles Java, sans intervention de l'utilisateur et grâce à des pages web infectées (des blogs WordPress essentiellement).

Pour ces variantes, aucune demande du mot de passe administrateur n'est requise. Le logiciel s'installait dans le répertoire de l'utilisateur courant. Très furtif. Mais très plantogène, car il injectait du code dans toutes les applications ou binaires lancés par l'utilisateur ou par launchd dans la session utilisateur. C'est d'ailleurs comme cela que des utilisateurs ont commencé à avoir des doutes et se sont manifestés sur les forums de support d'Apple (launchd est un système de démarrage des programmes qui va exécuter des démons - de petits logiciels tournant en arrière-plan - ou les applications visibles par l'utilisateur, ndr). Après ces plantages, les malfaiteurs ont donc établi une liste d'applications qui, si présentes sur la machine, ne permettaient pas l'installation du malware.

À ce stade, il est important de bien désigner les composants de ce malware : l'applet Java sur les sites infectés n'est pas au sens courant un Cheval de Troie. C'est-à-dire qu'il ne se fait pas passer pour quelque chose d'autre aux yeux d'un utilisateur. C'est ce que l'on appelle un "drive-by download", il n'a pas besoin d'une intervention de l'utilisateur. Par exemple, vous visitez un site web - même tout à fait respectable - qui aura été précédemment infecté. Dans le cadre des échanges habituels de données et d'exécution de scripts (Java, Flash, JavaScript…) entre le site et votre navigateur, un code malicieux va profiter d'une faille, soit dans le navigateur, soit dans l'un de ses plug-ins, pour s'installer en douce sur votre ordinateur.

Ce binaire, installé et exécuté par l'applet Java, est une "backdoor" (une porte dérobée, ndr). Elle se connecte dans le dos de l'utilisateur à ce que l'on appelle un serveur de contrôle (Command & Control, dans le jargon). Dans ce cas, un pare-feu logiciel ne sert à rien pour détecter sa présence. Seuls des outils de blocages des communications qui sortent de l'ordinateur peuvent repérer cette activité.

Enfin, le comportement du troisième composant est de type viral, il va injecter son code dynamiquement dans d'autres applications lancées par l'utilisateur.

Il y a là aussi différentes formes de virus : il y a le classique qui infecte des fichiers. Seuls OSX/Macarena et OSX/Leap.A (découverts en 2006) répondaient à ce type de virus qui est le plus connu. Puis il y a l'injecteur de processus en mémoire. Très discret, ce type de virus se répand dans les systèmes où l'injection de code est permise (Unix…). Flashback, dans sa dernière version, en fait partie. Enfin, on a le virus compagnon qui ne se combine pas au code du binaire infecté, mais qui est exécuté en même temps.

3 - le dernier mode d'installation passe par la fameuse faille Java numérotée CVE-2012-0503. Elle est exploitée par les dernières variantes de Flashback. Si le Mac n'avait pas d'utilitaire de sécurité réseau, ou d'outil de débogage développeur présent comme Xcode, un mot de passe administrateur était demandé pour installer un injecteur de code dans Safari. Mais même avec la présence de ces obstacles, le code de la backdoor était installé au sein du dossier Bibliothèque > LaunchAgents de l'utilisateur actif.

Ce qui conduit à corriger certaines affirmations faites ces derniers temps. Une fois l'applet Java lancé, le Mac est infecté, même si un outil comme VirusBarrier (ou Office et Skype comme on a pu le lire) est installé. La différence est que dans un cas, un mot de passe est demandé en utilisant une fenêtre de type mise à jour de logiciel, et dans l'autre cas, non.

Quel est l'intérêt ? On attend tranquillement que les logiciels de sécurité soient désactivés par l'utilisateur pour reprendre la main et continuer l'installation.

Dans ce cas, la fenêtre de mise à jour logicielle avec la demande de mot de passe est un Cheval de Troie qui installe un virus (l'injecteur de code). Mais uniquement un virus de Safari dans les échantillons que j'ai eu. Si une application de sécurité est installée, aucun mot de passe n'est réclamé, donc le composant installé par l'applet Java est une simple backdoor, invisible de l'utilisateur.




MacGeneration : Une fois installé sur un ordinateur, que fait-il précisément ?

Cela dépend des variantes. Les dernières forgeaient des requêtes Google dès que l'utilisateur naviguait sur un site, afin d'augmenter artificiellement des statistiques de fréquentation qui sont monétisées. Certaines requêtes Web étaient filtrées et d'autres étaient redirigées vers des pages publicitaires. Il y avait une injection de code JavaScript dans les pages reçues par l'utilisateur, pour renvoyer le navigateur vers des adresses de pages ou de sites monétisés.

Les auteurs de ces malware ont également un total contrôle des Mac infectés et peuvent installer et exécuter de nouveaux codes natifs OS X, via le processus de mise à jour de Flashback. Je l'ai observé dans une de mes boîtes virtuelles (un OS X fonctionnant dans une machine VMware), un binaire shell a été installé et un malfaiteur a exécuté des commandes shell sur cette machine virtuelle, pour vite s'apercevoir de la supercherie (on peut voir ces machines virtuelles comme des chèvres attachées à un piquet…, ndr). À mon avis la personne à l'autre bout avait un doute sur l'infection réalisée… et il avait raison.

MacGeneration : Est-ce que Flashback a touché 600 000 machines comme l'a déclaré Dr.Web à partir de ses extrapolations ?

Je suis certain que non, par exemple les UUID (identifiants universellement uniques) de certaines machines virtuelles VMware qu'on utilise pour tester les infections figuraient dans les stats de Dr.Web.


MacGeneration : Mais comment peut-on expliquer d'autres chiffres, par exemple cette semaine Symantec a montré une évolution du nombre de machines infectées. Il base cette extrapolation sur son pool de machines qui servent d'appâts. En l'espace de 24h on passe d'une évaluation de 600 000 à 380 000 machines - c'est avant que les outils antiFlashback ne soient répandus - à des baisses beaucoup plus lentes une fois qu'Apple a réagi.

L'analyse que j'en fais est une interprétation personnelle : le malware fait une requête sur ce nom de domaine calculé du jour, ce sera par exemple "iwuyrvtylnojde" auquel il ajoute soit .com, .info, .net ou .kz et pioché de manière aléatoire dans une liste préétablie. C'est auprès de ces adresses que le malware va chercher s'il y a un serveur capable de lui fournir des instructions.



Symantec aura acheté les noms de domaine en ".info" pour les 15 prochains jours. Mais une autre société aura acheté de son côté les ".com". Le malware commence par envoyer sa requête chiffrée sur le "iwuyrvtylnojde" avec la terminaison choisie aléatoirement. Si le serveur lui répond correctement, il arrête là. Sinon, il fait une requête sur un autre domaine aléatoire iwuyrvtylnojde.com ou .info ou .net ou .kz.



Donc si le "pot de miel" tiré au sort en premier répond bien et que c'est le .com, Symantec ne verra jamais les requêtes des Macs infectés. Je pense que c'est ce qui s'est produit entre le 9 et le 10 avril.

Avec deux pots de miel, la chance est divisée par 2 normalement, or on passe de 600K à 380K, soit à peu près la moitié… Un autre "sinkholer" apparaît demain en Russie - soit celui de Kaspersky, soit DrWeb - (l'entretien a été mené au fil de la semaine, ndr), donc là ça devrait statistiquement diviser leurs résultats par 3. Cette méthode dite du "sinkhole" est bonne, mais quand on est tout seul à l'employer.

Il faut aussi tenir compte de la "fraîcheur" des échantillons de malware avec lesquels vous travaillez. Ce 19 avril j'en ai eu un dans ma boîte virtuelle qui contacte un nom de domaine qui n'est pas celui annoncé chez Symantec. On peut en conclure qu'ils ont des échantillons anciens, et pas les tout derniers, ce qui va dès lors influer sur l'estimation du nombre d'ordinateurs infectés.

MacGeneration : Quelles sont les relations entre Apple et les éditeurs spécialisés dans les logiciels de sécurité ? D.Web par exemple leur reprochait d'opérer en vase clos, contrairement à un Microsoft où les interlocuteurs sont clairement identifiés.

Je suis en contact permanent avec le groupe de Sécurité Produits d'Apple. D'ailleurs c'est ce qu'ils demandent de tous les éditeurs de solutions de sécurité. Ainsi les choses avancent pour tous les utilisateurs.

Franchement, je les trouve très performants à partir du moment où ils ont les bonnes informations. Ils ont des processus de qualité qui prennent du temps, mais qui peut leur en vouloir ? Ceci dit, ils ont travaillé de façon impressionnante quand ils ont eu les échantillons de Flashback entre les mains.

Pour donner une idée de la difficulté de la tâche, la dernière variante chiffrait les chaînes de caractères dans le code avec l'UUID du Mac infecté. Ce binaire ne pouvait être déchiffré que si on possédait cet identifiant. D'autre part, exécuter pas à pas le binaire dans un outil de débogage ne fonctionnait pas non plus pour la même raison. Donc l'échange d'échantillons classiques entre éditeurs d'antivirus ne suffisait plus.

Il a fallu également partager les informations d'UUID pour pouvoir analyser le fonctionnement des très nombreuses variantes produites en quelques semaines. Tout le monde n'a pas dû vraiment aider Apple pendant ces derniers mois et pourtant, pour développer un composant de réparation, on doit avoir la certitude qu'on a toutes les variantes... Nous travaillons tous dans l'urgence, mais avec des procédures de tests très poussées. Sans nos interventions groupées, cette menace aurait fait beaucoup plus de dégâts.


MacGeneration : Comment se fait-il que les éditeurs russes soient si en pointe dans cette affaire ? Comment se fait-il aussi que le nom de domaine que l'éditeur Kaspersky a trouvé dans le code de Flashback et qu'il a acheté pour analyser les communications de ce malware fût disponible à la vente ?

Intego ne cherche pas à faire de communiqués sur toutes les menaces, surtout celles qui sont redondantes comme Flashback qui existe sous une forme ou une autre depuis plus d'un an. Cela ne veut pas dire que les menaces ne sont pas prises en compte dans les produits de défense. Pour Flashback, VirusBarrier a toujours eu un temps d'avance sur les variantes et a toujours reconnu au moins un des composants des nouvelles variantes, ce qui a permis de bloquer l'installation et la communication avec le serveur de contrôle. Ces détections se font par l'étude du comportement dynamique des malwares.

Pour ces noms de domaines de sites qui ont été achetés, la loi française est très restrictive. Acheter un nom de domaine qui est utilisé par un malware peut-être considéré comme répréhensible. À l'Est, peut-être est-ce plus toléré à des fins de lutte contre la criminalité ?

Flashback utilise un nom de domaine différent par jour, de manière à pouvoir récupérer des machines infectées, au cas où le serveur de contrôle principal serait indisponible. Il y a aussi, comme on l'a écrit, un processus de reprise de contrôle via Twitter. Le malware va chercher sur Twitter les instructions pour savoir ce qu'il doit faire. Toutefois il ne va pas interroger un compte Twitter en particulier (qui peut être repéré et fermé), mais des mots-clefs (les hashtags) qui prennent la forme de suites anodines de chiffres.

Kaspersky et Dr.Web (depuis d'autres l'ont aussi fait) ont acheté des noms de domaines sur plusieurs jours pour voir combien ils obtenaient de connexions avec les machines infectées, puis ils ont utilisé un ensemble de méthodes pour observer l'activité de ce malware :

- des Mac constamment allumés pendant cette période de tests, sans antispyware pour bloquer les communications, sans filtrage par leurs fournisseurs Internet ;
- Des Mac OS X virtuels, un procédé utilisé par tous les éditeurs d'antivirus ;
- Des chercheurs qui font des tests à la main ou automatiquement via des outils ;
- Et ce qui fait l'objet de débats : la présence de machines Windows dans ces stats. Chose que je réfute, il n'y a que des Mac. Flashback fait exprès de placer dans ses paquets HTTP de faux en-têtes de UserAgent Windows.

En tout cas je pense que leur méthode ne peut que donner une tendance, pas des chiffres d'infection précis. Et comme on se fait griller par les serveurs de Flashback à chaque infection, on est obligé pour mener de nouveaux tests de prendre un nouveau couple adresse IP/numéro d'identification de la machine. Quel volume est-ce que cela représente dans les stats liées à Flashback ? Je ne saurai le dire. Si Dr.Web ou Kaspersky nous avaient donné la base, on aurait pu éliminer pas mal de faux positifs venant de nos machines chez Intego.


MacGeneration : Si on prend du recul sur les malwares détectés depuis mettons un an, est-ce qu'ils étaient pour la plupart fonctionnels et en opération, ou est-ce qu'on en est encore au stade ou leurs auteurs se font la main avec la plateforme Mac ?

Ils sont déjà très compliqués et sophistiqués, l'injection de code est techniquement difficile à maîtriser. L'exploitation de failles Java (et Word maintenant pour OSX/SabPab) est aussi un exercice difficile.

En définitive, ils ont une bonne connaissance d'OS X et s'adaptent très rapidement aux barrières que l'on place en travers de leur chemin. On doit dans nos laboratoires être très dynamiques et travailler un peu plus que 35h pour anticiper leurs attaques…

À partir du moment où l'on publie une alerte de sécurité, accompagnée d'une panoplie de vaccins génériques à spectre large dans nos scanners, la communauté Apple, très réactive, devient très méfiante. Nos utilisateurs nous envoient leurs échantillons détectés en générique, qu'on n'a plus qu'à confirmer. On a un coup d'avance sur les variantes de malware. Les auteurs de ces malwares doivent s'adapter très rapidement ou abandonner.

MacGeneration : Quelles sont les motivations des auteurs de ces malwares ? On parle souvent de possibilité de subtiliser des fichiers d'un disque dur, mais est-ce qu'il n'y a pas des activités beaucoup plus discrètes, plus simples et qui permettent de gagner de l'argent rapidement. On parlait de cette création de visites artificielles sur des sites pour retirer de l'argent de ces passages.

Ces bandits ne font pas ça pour le plaisir ou pour l'esprit hacker. Il y a forcément plusieurs motivations : l'argent que l'on peut obtenir par l'envoi sur des sites d'utilisateurs aux machines infectées, il y a aussi le fait de pouvoir disposer d'un réseau d'ordinateurs sous contrôle afin de mener des attaques par déni de service contre des sites qu'il s'agit de bloquer, piloter l'envoi de spams depuis ces ordinateurs infectés, et puis bien sûr l'espionnage d'informations personnelles (ou professionnelles) avec l'objectif de les monétiser.

Sur le même sujet :
- Flashback : des éditeurs remontent leurs chiffre


avatar Weeky | 
Très bon article (:
avatar AppleForLife | 
Excellent
avatar Cafefroid | 
Houra ! J'ai enfin compris.
avatar eTeks | 
Merci pour cet article. En conclusion, faut-il désormais s'équiper d'un antivirus ou pas sous Mac OS X? Si FlashBack est vieux d'un an, est-ce que les antivirus existants le prenaient déjà en compte?
avatar P'tit Suisse | 
Excellent papier, comme d'hab. Pour ma part, jamais de problemes en naviguant sur des sites peu recommandables. Quelques exec souhaitant entrer. Pas d'antivirus depuis le calamiteux Norton des années 90. Vingt ans de paix total. Je me couvre par contre depuis deux ans avec Little Snitch et m'efforce de naviguer en session utilisateur. Sophos m'a néanmoins trouvé quelques malware Windows avant que je ne le supprime.
avatar lectonet | 
MacG devrait donc vérifier un peu plus les chiffres qu'il publie avant si je comprends bien . La pertinence des informations.
avatar Liena | 
Après cet article anxiogène (tendance élection présidentielle), à quand un article sur comment protéger son Mac ? Ceci dit, article très intéressant, même si certaines choses m'échappent.
avatar Stardustxxx | 
@lectonet Il est plutot difficile de vérifier les chiffres, c'est ce que l'article veut dire. On a un ordre d'idée générale, mais il est très difficile d'avoir des chiffres exact. Et puis la petite polémique sur les machines virtuelles Mac OS X. Je suis sur que ca n'a pas fait augmenter les chiffres de beaucoup, car a par quelque professionel, la virtualisation de OS X est plutot rare.
avatar PierreBondurant | 
Merci pour cet article très lisible malgré la complexité du sujet. Perso je n'ai pas dantivirus mais j'utilise WOT (web of trust) pour éviter les sites pourris, c'est bien plus efficace que ce que je pensais au début!
avatar lectonet | 
@Stardustxxx : je suis d'accord , mais quand tu vois que deux jours après cette annonce kapersky, fait un grand coup de pub sur son anti virus Mac , tu te demandés si vraiment l'annonce des chiffres surdimensionner n'est pas voulu , donc plutôt que d'annoncer des chiffres qui toi même tu le dis difficile à vérifier , il vaut mieux s'abstenir . :)
avatar Steeve J. | 
Bon, ça prouve quand même que j'avais eu raison de faire mon "boulet" et là ça repart dans le bon sens alors je le hurle : BRAVO !!! Par contre, et je m'en doutais déjà, le fait de sur monétiser des sites internet est la principale préoccupation de ces malwares et surtout doit pouvoir être stoppé directement chez Google qui est la principale source de revenus de ces Hackers ?
avatar Florian Innocente | 
@Steeve J. : Bon, ça prouve quand même que j'avais eu raison de faire mon "boulet" et là ça repart dans le bon sens Euh... non. C'est pas parce que la méthode de calcul de départ n'est pas la bonne que le résultat est du coup moins grave que prévu. http://www.intego.com/mac-security-blog/dns-redirection-protects-against-flashback-malware-leads-to-false-infection-rates/
avatar Steeve J. | 
@innocente : 'Euh... non. C'est pas parce que la méthode de calcul de départ n'est pas la bonne que le résultat est du coup moins grave que prévu.' Ah bon ??? Bizarre ??? Alors il est plus grave ? Ou aussi grave ??? Ou personne ne sait ??? On va en reparler dans pas longtemps !!! Mais ce qui est dégueulasse c'est que la plupart des sites internet qui ont repris l'info choc ne vont pas faire d'articles pour nuancer !
avatar nayals | 
Excellente interview ! Merci :) J'ai une question de plus : a-t-on une chance de retrouver les auteurs de ces malwares pour les poursuivre ?
avatar Christophe Laporte | 
@Steeve J. : lorsque l'on avait évoqué les chiffres de dr web, on les avait pris avec un minimum de recul. Certains ont crie au loup d'autres ont carrément fait un déni. On n'a pas fait d'excès je trouve Et même si ils sont surévalués cela avait le mérite de montrer que flashback avait pris une certaine ampleur. Et on avait surtout tape sur Apple qui a quand même sorti son patch pour java trois mois après tout le monde.
avatar Armas | 
Merci beaucoup, très bon article, comme à l'accoutumée chez MacGé pour ce genre de rubriques, c'est agréable de lire de la presse de qualité sur le web, ça change.
avatar JustTheWay | 
Meilleur article que le précédent en tout cas ...
avatar liocec | 
Très bonne explication....
avatar Ielvin | 
"grâce à des pages web infectées (des blogs WordPress essentiellement)." Administrateur de deux blogs WP, j'aurais aimé savoir comment détecter un site infesté et éliminer la menace présente. Merci :)
avatar Florian Innocente | 
[b] JustTheWay : Meilleur article que le précédent en tout cas ... [/b] Le précédent n'était pas mauvais, celui qui parlait de crise, il n'était pas à côté de la plaque vu la manière dont Apple a réagi 72 heures plus tard. Il reflétait une situation à ce moment là. Depuis les éditeurs ont un peu plus de recul sur la manière dont les choses se passent et évoluent, mais justement ça change toutes les 24h. DrWeb a revu ses chiffres et il conteste la décrue brutale http://news.drweb.com/show/?i=2386&lng=en&c=14 et Intego a lui aussi actualisé ses observations http://www.intego.com/mac-security-blog/flashback-mac-infection-rates-greatly-underestimated/ Ce qui m'agace plus dans la manière dont le sujet est traité ça et là c'est lorsque l'auteur d'un article, du haut de son ignorance de ce domaine qui est super complexe (et je m'inclus dans cette catégorie, je ne suis absolument pas spécialisé) t'affirme que tout ça c'est du flan, de l'intox. Le minimum c'est d'essayer de trouver des explications auprès des gens qui sont un peu plus le nez là-dedans. Et de se sortir de la tête que parce qu'on est sur Mac on vit dans un pays magique avec des murs en or super solides. C'est pas l'invasion des barbares mais le Mac est plus visible aujourd'hui. Il faut juste ne pas verser dans un angélisme de dévot ou dans une paranoïa stupide.
avatar Anonyme (non vérifié) | 
@ielvin Nous ne voyons plus en ce moment de sources d'infections venant de blogs WordPress. Mais l'actualité du jour devrait vous inciter à mettre à jour votre serveur. http://wordpress.org/news/2012/04/wordpress-3-3-2/
avatar Mac Mac | 
Ok mais alors : Antivirus ou pas sur Mac ?
avatar Ielvin | 
@phildev : ooh, merci :)
avatar iJack | 
"Enfin, le comportement du troisième composant est de type viral, il va injecter son code dynamiquement dans d'autres applications lancées par l'utilisateur." Voilà un truc qui m'interpelle :) : Quelqu'un pourrait m'expliquer comment un virus (un programme donc, en cours d'exécution) peut injecter du code (du data en clair) dans un autre programme lancé par l'utilisateur), en cours d'exécution lui aussi ? Ne serait-ce pas une particularité d'Unix ? Merci d'avance :)
avatar lmouillart | 
@iJack non ce n'est pas une particularité d'Unix, c'est une particularité des systèmes laissent les applications avoir accès à l'ensemble de la mémoire partagé. Tout développeur pas très alaise (donc tout débutant) à tout ou tard écrit un peu n'importe ou en mémoire donc dans les données ou les programmes => plantages. Après si tu sais quoi chercher dans la mémoire et par quoi le remplacer c'est pas tellement compliquer de faire ça. Si tu le mélange aux débordements de segments tu peux en te creusant un peu la tête et en étant patient faire n'importe quoi sur la quasi totalité des systèmes grands publiques et pro. Avant 10.4 Mac OS X était une passoire, ça s'améliore petit à petit avec le NX sur la pile après sur le tas, puis ASLR, et enfin le sandboxing. Après le système ne pourra jamais être vraiment sur. Les Unix n'ont jamais été conçu pour être des systèmes très sécurisés qui de toute manière si ils l'étaient seraient tellement contraignant qu'ils en deviendraient inutilisables.

Pages

CONNEXION UTILISATEUR