pt
Moulé à la louche depuis 1999
Les trucs qui m'énervent... et je vais pas prendre de pincettes
Internet, informatique, logiciel libre, économie, politique, vie courante et tout le reste...

Une nouvelle astuce des logiciels malveillants pour éviter la détection

Lundi 30 janvier 2012

Je vous ai déjà parlé de malwares très évolués comme Conficker ou TDL4. Le problème majeur de ces logiciels malveillants est que - avant infection - leur signature peut être détectée par les antivirus. Comment implanter le code malveillant en contournant la détection ?

Souvenez-vous des armes démontables dans les vieux films d'espionnage: Chaque pièce prise séparément paraît anodine, sans danger, et n'attire pas l'attention. Mais combinées elles forment une arme. Et bien une nouvelle tendance tout à fait analogique s'amorce chez les auteurs de chevaux de Troie, comme constaté de manière indépendante chez Microsoft et F-Secure.


Dans la plupart des scénarios d'infection, un petit bout de programme (appelé le "downloader") est en charge de télécharger et exécuter le code malveillant lui-même (le cheval de Troie). Les antivirus détectent et interceptent alors soit le téléchargement, soit le lancement du code malveillant. Game over.

Mais Microsoft a découvert un nouveau type de downloader: Ce dernier télécharge une page HTML faisant la publicité d'un restaurant asiatique. Le downloader lui-même n'étant pas malveillant, les antivirus ne le bloquent pas. Quand à la page HTML, elle paraît tout à fait anodine.

Sauf que le downloader combine les octets de la page HTML avec son propre code machine (dans son propre processus), ce qui le transforme en code malveillant. Bingo ! L'antivirus n'a intercepté ni le téléchargement (puisque qu'anodin pour lui), ni le lancement du code malveillant (puisque le downloader n'a pas lancé de nouveau processus: il continue son exécution avec le code modifié).

Brillant.


De la même manière, F-Secure est tombé sur un malware sur Android utilisant une technique similaire: En principe, quand vous avez un exécutable Android, vous avez accès à son contenu: C'est du code machine Dalvik (une machine virtuelle similaire à celle de Java). Il est donc possible d'examiner le code machine pour y détecter du code malveillant. C'est d'ailleurs ce que font certains antivirus pour Android: Ils analysent le code pour trouver, par exemple, des instructions envoyant des SMS payant.

Un auteur de logiciel malveillant a trouvé une astuce: Son programme récupère quelques octets présents dans l'entête du fichier PNG utilisé pour l'icône de l'application et les combine avec son propre code. Le résultat est un code machine qui envoie des SMS. Gagné ! Les antivirus n'ont rien vu.


On croirait un mauvais remake d'un film de Batman: Différents fichiers binaires inoffensifs, sur internet, peuvent devenir dangereux quand ils sont combinés. Et les antivirus sont bien en mal de détecter et bloquer cela: Pour des questions de performances, ils n'examinent pas toutes les opérations mémoire effectuées par les applications. Ils ne font que du cas par cas: Bloquer les noms de domaines identifiées comme distribuant des fichier malveillants. J'attends le moment où ces bouts de code recombinants seront distribué par Amazon S3, Pastbin.com ou le cache de Google: on va rigoler quand il faudra les bloquer.

Imaginez maintenant qu'un auteur décide de créer un code qui devient malveillant une fois combiné avec des logiciels "sains" comme Flash, Firefox ou WindowsMediaPlayer. C'est facile: Une simple opération binaire XOR le permet. Ou même utiliser ces exécutables sains et très répandus comme clés de déchiffrement du malware. Bon courage pour les détecter.

L'avenir est brillant pour les auteurs de codes malveillants, et les éditeurs de logiciels sont trop content de nous fourguer leur "AppStore" comme solution miracle. Pfeu.

Voir tous les billets