Marc Blanchard Virus Docteur

Aller au contenu | Aller au menu | Aller à la recherche

lundi 26 novembre 2007

[Dfinition&Explications] Un Trojan, trojen, cheval de troie

Dans cette section pour tout public, je vais essayer d'aborder de manière la plus compréhensible un certain nombre de termes que nous utilisons dans notre métier, nos laboratoires et que, peut-être, vous rencontrerez dans les différents compte-rendus scientifiques sur ce site.

Dans ce post, voici une petite explication sur le mot TROJAN (Cheval de Troie).

La nomination du mot TROJAN est utilisée pour tout ce qui a une relation avec une attaque d'un ordinateur, serveur, perturbation informatique. Cette utilisation est incorrecte, mais elle est comprise par tous et toutes. C'est pourquoi, je vais vous expliquer le terme générique TROJAN qui est aujourd'hui utilisé dans notre métier.

Définition :

Les premiers trojans ont été developpés par le mathématicien Alan Turing en 1936, qui avait comme mission d'appliquer le même programme sur différents calculateurs.

Un Trojan est un code malicieux dont la totalité de son code programme EST le code malicieux.

Contrairement aux techniques utilisées par les virus (concaténation du code malicieux dans le code programme original d'un fichier existant (fichier hôte)), les trojans sont complétement indépendant au niveau de leurs codes.

Les trojans sont généralement des programmes en tant que tel, comme des outils freeware ou shareware, téléchargés par un utilisateur ou arrivant via une technologie de Worm ou StormWorm par le biais du mail, web, MSN, IRC, etc ou sous forme de lien HTML.

Technologies embarquées :

Les Trojans peuvent embarqués de nombreuses technologies pour effectuer leurs process malicieux :

- Technologies de rootkit

- Technologies de Backdoors (portes dérobées) : ouverture d'un port TCP permettant au pirate d'entrer sur la machine victime pour lui faire faire des actions malicieuses

- Technologies de BotNet (robot internet) : permet d'envoyer l'adresse IP en temps réel de la victime au pirate, lui permettant ainsi d'avoir les coordonnées de ses victimes pour entrer via la backdoor

- Technologies de programmations telles que MUTEX

- Technologies de Compétences transversales pour une attaque sans incident !

- Technologies d'hébergement de WORMS (vers) permettant ainsi une durée de vie de ce code malicieux la plus longue possible

Perception de la contamination

En général, l'utilisateur ne s'appercoit de rien, car un trojan est si petit, si furtif, qu'il travaille en arriere plan à l'insu de l'utilisateur.

Ensuite, la perception de la contamination dépendra des actions pré-programmées du trojan.

Méthodes de détection

Les trojans sont détectés et eradiqués par des logiciels antivirus.

Méthode d'erradication

Il est possible de rencontrer des problèmes d'erradication des Trojans, car ils utilisent très fréquemment la technique MUTEX.

On essaiera, dans ce cas, de rebooter en mode sans echec, et de scanner tous les fichiers de la machine avec un antivirus à jour.

Pour certains egenes trojans, il est parfois nécessaire de procèder à un nettoyage manuel ou par le biais d'un cleaner.

mercredi 14 novembre 2007

[Définition&Explications] La technologie MUTEX

De nombreux codes malicieux, ajourd'hui, utilisent une technologie un peu particulière qui se nomme MUTEX.

Définition :

C'est une technique permettant d’allouer physiquement un emplacement mémoire particulier et de le réserver.

Toute application utilisant la technique Mutex ne peut PAS être déchargée, arrêtée ou détruite sans en avoir détruit son parent.

La notions de gestion des processus parents/enfants est alors utilisée.

On dira dans ce cas un « programme persistant ».

Pour exemple plus concret, il est quasiement impossible d'arreter un serveur de mail de type Exchange....

Il en est de même avec le process SVCHOST !

Pour stopper un programme persistant, il suffit de stopper tous les processus enfants pour finir par arrêter le programme parent.

Définition de cette technique par les codes malicieux :

Technologie MUTEX : « Le chat qui se mord la queue! »

On sait, de par cette technique, que les process enfants doivent être stoppés afin que le dernier enfant puisse faire un 'kill' du parent

Les développeurs de virus ont légèrement modifié le processus mutex.

Comme on peut le constater sur cette image, le parent GetMutex A pour être stoppé attend la fin du process D, qui lui même attend la fin du process C, qui lui-même attend la fin du process B, qui lui même attend la fin du process A....MAIS comme le process A attend la terminaison du process D, on dit que le chat se mord la queue !!!

CONCLUSION :

Des fonctionnements cycliques sont difficiles à décharger de la mémoire dues à leurs dépendances inter-liées

Une application telle qu’un Antivirus peut rencontrer des problèmes pour décharger un process utilisant Mutex (un cleaner spécifique, dans ce cas, est obligatoire).

Cela permet aux codes malicieux de devenir de VRAIs programmes résidant et persistant en mémoire.