Enquête policière encore, dans les murs de l’Esiea, mais sur les traces d’un virus polymorphique chiffré et camouflé, conduite par Zdenek Breitenbacher d’AVG. Sans entrer dans les détails mathématiques, ce chercheur explique comment il est possible de reconnaître un type de virus précis lorsque celui-ci est caché par une technique polymorphique. Car, noyé dans le chaos d’un chiffrement interdisant toute possibilité de comparaison, rien ne distingue un polymorphe d’un autre… information pourtant indispensable au blocage et éventuellement à l’éradication de la charge. Pourtant, les méthodes sont nombreuses explique le chercheur Tchèque : tenter de déterminer le type de générateur de virus utilisé, les compilateurs employés, les compacteurs (UPX, PECompact, ASPack…). A ces indices l’on peut ajouter les bugs propres à un générateur, les erreurs dans les formats de ressources ou les en-têtes de fichiers, les palettes d’instructions, les panoplies d’outils anti-debug, les astuces anti-désassemblage etc. Mais lorsque toutes ces traces ne donnent rien de particulièrement significatif, il faut avoir recours à une sorte d’examen de l’enveloppe du code. Pour ce faire, Zdenek Breitenbacher ne cherche plus à découvrir les instructions derrière les octets du fichier, mais applique un calcul d’entropie sur la partie considérée comme douteuse, l’espace qu’occupe généralement le virus. Le résultat de ce calcul laisse clairement apparaître une empreinte avec des résultats de poids « fort » et des zones pratiquement vides (ou de poids faible). Et c’est la simple comparaison de l’empreinte de ce calcul entropique qui permet très aisément de déterminer un lien de parenté entre deux infections polymorphiques et ainsi savoir s’il s’agit ou non d’un seul et même virus. Le « packet shaping » appliqué à la lutte antivirale en quelques sortes.