Crypter/Packer et détection antivirus

Un petit billet concernant les détections antivirus pour tenter d’expliquer certaines détections VirusTotal.
Très souvent, des posts de ce type ont lieu Gmer « dangereux » où les internautes ne comprennent pas que sur le site il y a des fichiers ou outils qui sont en lignes et qui sont détectés par des antivirus.
Ce billet va tenter de casser l’idée que les antivirus ont toujours raison et qu’un fichier détecté par un antivirus est loin très loin d’être malicieux.

Packer et Crypter et milliers de droppers

Lorsque vous compilez du code vers le format exécutable de Windows PE32, selon le code utilisé, le fichier peut être très volumineux.
Pour réduire, il existe ce que l’on appelle des packers. Le packer permet d’empaqueter le fichier exécutable et de le compresser pour réduire sa taille, au moment de l’exécution, le code du packer est appelé pour décompresser le fichier exécutable puis être exécute ensuite.
Un peu lorsque vous « zippé » un fichier avec un zip auto-extractible, vous n’avez pas besoin qu’un programme soit installé sur l’ordinateur pour décompressé le contenu, la routine de décompression étant incluse dans le fichier compressé.

Zip_autoextractible

Il existe plusieurs formats de packer connus et reconnus : UPX, FSG, Armadillo, Themida, etc.

Certains packers ont des propriétés supplémentaires, par exemple, Themida empêche toute exécution du fichier sur des VM.
D’autres sont chiffrés, dès lors, si vous n’avez pas la routine pour déchiffrer, vous ne pouvez accéder aux codes du PE.
Cela est intéressant pour les malwares/virus, puisque cela permet de cacher le code du malware/virus, dès lors, si un bot d’une famille est connu (par exemple 34/42 sur VirusTotal), en packant l’executable avec un pack qui crypte, on peux considérablement diminuer la détection du malware.
C’est ce qui est expliqué sur le billet : RATs : Ramote Access Tools

Cela permet aussi de multiplier le nombre de fichier à partir d’un même fichier source : Lors d’une campagne d’un malware/virus (par exemple un rogue) de multiplier les droppers avec du code différents mais qui, au final, va dropper le même malware/virus (à quelques variantes près).
D’un code plus ou moins unique, on peut arriver à des milliers de droppers différents via d’autres astuces en plus des packers.

Cet aspect est évoqué sur un billet du blog d’Avast! : http://blog.avast.com/2010/12/20/malware-giftwrapping-services/

Voir aussi la page How to hide a known Malware code… du blog de  S!Ri

 

Les antivirus et les packers

Comme déjà évoqué sur la page Infections VS Antivirus, face aux milliers de droppers et malwares/virus qui apparaissent chaque jours, les antivirus ajoutent des détections génériques afin de détecter certains portions de code qui peuvent être des portions utilisés par des malwares/virus. Les antivirus connaissent, pour la plupart, les packers connus et utiliser par les programmes non malicieux : UPX, FSG etc.
Seulement, il existe des milliers de nouveaux packers codés chaque jour sont inconnus des antivirus. Certains packers ou plus moins ingénieux ou complexes que d’autres.
De ce fait, lorsque l’antivirus scanne un fichier dont le packer n’est pas connu, ce dernier n’est pas capable de voir la partie utile, probablement au bout du compte un malware dont la signature de détection a plusieurs semaines.
Ceci permet donc de cacher la partie utile des antivirus.

La vidéo suivante montre qu’en prenant un fichier texte (inoffensif donc), et en le packant, on arrive à une détection de 16 sur Virustotal.
De même, si on prend l’exécutable de GMER qui est à 1 en détection sur VirusTotal, on arrive aussi à 16.
Conclusion : les antivirus détectent le packers, dès lors, n’importe quel fichier qui sera packé par ce packer, sera détecté par les antivirus. Remarquez comme par exemple, Antivir donne un nom générique de famille.

Les antivirus courent donc, aussi après les packers, et les ajoutent au fur et à mesure de leurs sortis.
A l’heure où sont écrites ces lignes, X nouveau packers/crypters ont été codé qui ne sont pas détectés par les antivirus.
Certains écrivent des packers FUD (Fully UnDetected) pour le challenge ou le fun, d’autres les vendent.

 

Détection des antivirus : les dommages collatéraux

Pour détecter un maximum de droppers, certains antivirus ont des détections plus sensibles (pour le code générique mais aussi pour les packers).

Prenons le cas du fichier de GMER évoqué en début de billet : http://www.virustotal.com/file-scan/report.html?id=67a7cbfcf65b27c84d82a14dc0e101f531ac2cd68e93bee5fc448ee81cc85671-1310374872

File name: 6i5mh13n.exe
Submission date: 2011-07-11 09:01:12 (UTC)
Current status: finished
Result: 1 /42 (2.4%)
MD5   : b83cd19b824c5112fdccf35ba590af32

Rising le détecte comme étant suspicious.

 

Le scan VirusTotal nous apprend que le fichier est packé en UPX :

TrID:
UPX compressed Win32 Executable (39.5%)
PEiD: UPX 2.90 [LZMA] -> Markus Oberhumer, Laszlo Molnar & John Reiser packers (F-Prot): UPX

Décompressons le fichier :

malekalmorte@MaK-tux:/tmp$ md5sum 1rgcgrqh.exe
b83cd19b824c5112fdccf35ba590af32  1rgcgrqh.exe
malekalmorte@MaK-tux:/tmp$ upx -d 1rgcgrqh.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2010
UPX 3.07        Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 08th 2010

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
    714240 <-    302592   42.37%    win32/pe     1rgcgrqh.exe

Unpacked 1 file.
malekalmorte@MaK-tux:/tmp$ md5sum 1rgcgrqh.exe
d882734bb874aa75b3a0a076da59b9bd  1rgcgrqh.exe

On soumet le fichier décompressé à VirusTotal : http://www.virustotal.com/file-scan/report.html?id=49e297f1d88e3cff9f1f5ce0a4c7285230e05ed89f04fb7af2d578db0bd701a6-1310378882

File name: 1rgcgrqh.exe
Submission date: 2011-07-11 10:08:02 (UTC)
Current status: finished
Result: 0/ 43 (0.0%)

Observation : Rising ne dit plus rien.
Un autre test – Prenons l’executable du fix RogueKiller – que je vais packer :

malekalmorte@MaK-tux:/tmp$ upx -t RogueKiller_*
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2010
UPX 3.07        Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 08th 2010

upx: RogueKiller_noupx.exe: NotPackedException: not packed by UPX
testing RogueKiller_upx.exe [OK]

 

Deux fichiers donc, le RogueKiller.exe initial que l’on peux télécharger et celui packer en UPX – du point de vue exécution sur un PC, les deux font strictement la même chose (sauf que celui compressé en UPX se décompresse).

malekalmorte@MaK-tux:/tmp$ md5sum RogueKiller_*
a6dd17af7e701d48d178db3187a20cd8  RogueKiller_noupx.exe
027a21f37662955f9da3d6a1c60f2906  RogueKiller_upx.exe
On soumet à VirusTotal : http://www.virustotal.com/file-scan/report.html?id=ba0de207d592ebf74078263033092bab91ee807888d0e4d4cdf7628ca68954e4-1310378761
File name: RogueKiller_noupx.exe
Submission date: 2011-07-11 10:06:01 (UTC)
Current status: finished
Result: 0 /43 (0.0%)

RogueKiller_upx.exe : http://www.virustotal.com/file-scan/report.html?id=8cb3466897f0dc9315e4fd6b85addca68ae6326191ef129ef1df2d9ef9c48e65-1310378736
Submission date: 2011-07-11 10:05:36 (UTC)
Current status: finished
Result: 1 /43 (2.3%)
Rising le classifie à nouveau en suspicious.

Conclusion : le même fichier initial qui fait la même chose avec le même code, packé n’est pas détecté, packé en UPX, Rising warn.
La détection de Rising est très influencé par le fait que le fichier est packé UPX et classifie le fichier en suspicious alors que le fichier initial non packé n’est pas détecté.

Dès lors on arrive à une augmentation des faux positifs et des problèmes de compréhension de détection de la part des internautes. Très souvent sur des fichiers mis en ligne en téléchargement et qui ne sont pas malicieux, certains antivirus sur VirusTotal vont émettre des détections de packers (suspicious / Generic.Pack etc).
Il est parfois difficile de démontrer que les antivirus ont torts (surtout si beaucoup d’antivirus sur le scan VirusTotal warn) puisque beaucoup d’internautes ne remettent pas en question les détections des antivirus.

Exemple : TexMod : Faux positif ou fichier infectieux?

Il en va de même pour les détections génériques, S!Ri avait montré sur son blog qu’à partir d’un simple code avec un « exit » (le fichier faisait rien), on avait à une détection de 10 sur VirusTotal : Antivirus and FP

Notez aussi que l’on peut avoir l’inverse, à savoir, le packer est détecté, mais le malware/virus « tout nu » ne l’est pas. C’est la magie du traitement automatisé des infections.

Business autour des packers et crypters

Il existe tout un business autour des packers & crypters, des centaines d’annonce de crypter avec des promesses de non détections par les antivirus sont mis en ligne.
Certains services sont à 20$ du mois.
On retrouve donc le business des malwares/virus et le pourquoi des infections : Business malwares : le Pourquoi des infections informatique

Quelques exemples d’annonce :
Crypter_Vente_business_forum_underground Crypter_Vente_business_forum_underground_2

Crypter_Vente_business_forum_underground_3

Crypter_Vente_business_forum_underground_6

ou encore :

Crypter_Vente_business_forum_underground_4 Crypter_Vente_business_forum_underground_5

Conclusion

Au final, ceci peut ajouter des difficultés de compréhension pour les utilisateurs des détections/fonctionnements antivirus.
Quelques liens sur le sujet :

Comment lire d'autres tutoriels de malekal.com ?

Si le site vous a aidé, svp, débloquez les bloqueurs de publicités, n'hésitez pas non plus à partager l'article ou le site sur les réseaux sociaux.

Pour pouvoir lire plus d'articles et tutoriels, utilisez le menu en haut du site. Plein d'articles et tutos utiles vous attendent !

Besoin d'aide ?

Posez votre question ou soumettez votre problème sur le forum malekal.com pour obtenir une aide efficace : Aller sur le forum malekal.com
(Visited 436 times, 1 visits today)

3 thoughts on “Crypter/Packer et détection antivirus

  1. Ou comment tu te retrouve a appeler le support d’avira parce que tes clients disent que ya n virus dans ton logiciel juste parce qu’il est packé UPX et qu’il propose un envoi de mail au supprot technique 🙂

    A noter que les antivirus bien concut sont capable de péter les packer les plus simples à la volée pour scanner (Style UPX, FSG, etc…)..

    Sinon, les VM ca se masque, les debuggers aussi,, wireshark un coup d’éditeur hexa et on en parle plus pour la détection… Et dans 95 % des cas, 2 ou 3 points d’arrêts bien sentis mettent a mal des droppers « blindés ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *