Marc Blanchard Virus Docteur

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

jeudi 18 octobre 2007

[Définition&Explications] Les codes utilisant des compétences transversales...

Afin de mieux comprendre certains concepts technoloqiques de fonctionnement des virus et malwares, je vous propose dans ce post une petite explication sur les codes utilisant des compétences transversales.

La technique de compétences transversales existe depuis 1975 pour l’informatique.

C’est un concept de gestion de changement d’action par rapport à un résultat obtenu.

Cette compétence aura le pouvoir de capitaliser sur un résultat antérieurement obtenu comme une nouvelle entrée de données supplémentaire pour l’obtention d’un résultat différent.

En d’autre terme, l’attaque est capable d’évoluée sans pour autant changer son code original !

Etape 1 :

Un nouveau code malicieux arrive et s’exécute sur un ordinateur.

Comme tout programme, aprés exécution, le(s) fonctions programmées sont lancées et un résultat est obtenu.

Cette technique est la base de n'importe quel programme informatique.

Etape 2 :

Cette étape est programmée dans le cas de compétences transversales VOLONTAIRE de la part du développeur.

Voici le principe :

Le code auto-analyse le résultat obtenu pour prendre une Rétro-Action, dans le cas où sa première action ne peut être effectuée à 100%.

L'unité de programmation est identique à un programme traditionnel, à l'exeption prete que le résultat va être analysé.

Si le résultat n'est pas celui qui est attendu, ALORS, la compétence transversale intervient.

L'unité de programmation est alors pré-programmée pour lancer un autre type de code, permettant ainsi une nouvelle tentative.

Si elle échoue de nouveau, l'unité de programmation lancera autant de micro-codes qu'elle en dispose.

CONCLUSION :

Cette technique est utilisée par de nombreux codes malicieux permettant ainsi de s'adapter aux sécurités appliquées pour ainsi les détournées sur les postes de travail...des futures victimes.

mardi 9 octobre 2007

[Définition&Explications] Un vers ou WORM

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 WORM (vers).

La nomination du mot WORM est utilisé pour tout ce qui a une relation avec une attaque d'un groupe d'ordinateurs, serveur, connectés en réseaux.

Je qualifie cette attaque comme un code malicieux transitant sur le câble...et y restant.

Définition d'un vers

Un vers est :

- Autonome

- Sournois

- Transparent

Il se fixe sur les autostarts (les clefs de registres qui permettent de lancer automatiquement des programmes au démarrage de l'ordinateur)

Le vers effectue des rebonds sur les cartes réseaux pour affecter d’autres ordinateurs

Il ne représente pas un fléau en nombre d’infections, mais représente un nombre très important de propagations et de rebonds, appelé machines affectées.

Sa durée de vie est très longue (plusieurs mois)

Il fait réagir les Antivirus, sans pour autant qu’une action de nettoyage puisse être entreprise due aux rebonds réseaux. En d'autres termes, le worm essaye de pénétrer la machine, mais est stoppé par l'antivirus de cette machine. On parle alors que cette machine utilisateur est affectée.

Si le vers arrive à pénétrer la machine utilisateur sans qu'il soit arrêté, alors cette machine sera infecté, puisque le worm s'y sera installé !

Méthodologie d'un vers

Une machine infectée suffit pour affecter les autres machines du réseau, voire même des réseaux extérieurs car le vers contient généralement un scanner réseau.

De nombreux vers contiennent des backdoors ouvrant des portes extérieures et interagissent avec une technique BotNet pour envoyer les informations de connectivité (adresse IP) de la victime à son créateur, en vue de créer ou de renforcer le réseau des machines des utilisateurs qui ont été ou seront zombifiées.

Fonctionnement d'un worm

Il faut faire la différence en une machine infectée et affectée.

Partant sur le principe qu’un ver fonctionne si et seulement si il est lancé d’une machine infectée, il fera, via son scan réseau, une tentative d’infection puis un rebond IP pour saturer sa victime qui n’est pas forcément celle ou le rebond est effectué. Par conséquent, on appelera une machine qui reçoit le vers comme machine affectée.

Concept de fonctionnement concernant la propagation d'un vers

Le ver possède une notion de parallélisme des attaques ou des rebonds donnant ainsi naissance à du multi-threading réduisant ainsi les timeout pour une affectation et saturation importantes de sa ou ses victimes.

Le concept se porte sur les faits :

- d’infecter un nombre limité de machines afin de mieux les contrôler et de lancer une attaque en quelques secondes

OU

- de déployer en masse une affectation de rebonds en masse pour déstabiliser les accès TCP des machines vulnérables via un scan réseau, ou bien encore un déni de service contre un serveur d'une entreprise, ou bien même d'entretenir un ensemble de machines victimes pour un réseau zombie.

Simulations de Laboratoire :

On estime que 34000 machines d'utilisateurs affectés toutes les 5 secondes à partir de 17000 machines infectées résulte qu’en 36,506 secondes permettent une affectation en masse avec des Advanced worms utilisant la technique du parallélisme.

Voici une simulation effectuée sur la propagation d'un vers utilisant la technologie séquentielle de propagation. L'affectation pour 170 000 machine s'effectue en 500 minutes.

Voici une simulation effectuée sur la propagation d'un vers utilisant la technologie parallele multithreading de propagation. L'affectation pour 170 000 machine s'effectue en 70 SECONDES.

Comme on peut le constater on ne parle plus en minutes mais en seconde !!!

Voici une simulation à partir de diverses simulations de laboratoire que j'ai pu effectuées

On peut constater les temps de propagations des vers dits WORM.

Conclusion

Attention avec les détections des antivirus !

Ce n'est pas parce que l'antivirus envoie une alerte sur un worm que le poste est infecté!!!

Il faut bien lire les rapports de l'antivirus APRES un scan complet de la machine.

En effet, la machine en question peut être une machine AFFECTEE, qui recoit le vers, sans pour autant être INFECTEE.

Il vous faut impérativement trouver la source de la machine INFECTEE, car c'est elle qui fera réagir les antivirus des postes en cours d'affectation.

Dites vous, que, tant que vous n'avez pas trouver la machine infectée, l'utilisateur aura des réactions de la part des antivirus, sans pour autant être infecté !!!

Une technique des WORMs dérivée nous arrive depuis mars 2007 appelée STORM WORM et STORM BOTNET.

Nous traiterons dans cette section ces nouvelles catégories encore plus emergentes !

		

dimanche 7 octobre 2007

[Définition&Explications] Un virus

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 VIRUS.

La nomination du mot virus est utilisé pour tout ce qui a une relation avec une attaque d'un ordinateur, serveur, épidémie sur internet ou un infection informatique. Cette utilisation est incorrecte, mais elle est comprise par tous et toutes. C'est pourquoi, je vais vous expliquer les différences entre tous ces codes qui, de par leurs formes, leurs techniques, leurs propagations et infections sont nommés différemment.

Que se passe-t-il lorsqu'un logiciel ou un programme est excécuté ?

a. l'utilisateur clique sur une icone d'un programme, dans notre exemple Notepad :

b. Ce programme va se charger en mémoire RAM de l'ordinateur :

c. Le résultat après exécution apparait sous forme de fenêtre ou dans une barre de tâches

Que se passe-t-il lorsqu'un virus tente d'infecter un fichier ?

Un virus est en fait un micro-programme qui est dépendant d'un fichier utilisateur que nous appelons un fichier hôte. Le virus va effectuer plusieurs tentatives d'infections dans le fichier hôte en fonction de sa technologie. En d'autres termes, le virus s'auto-adapte selon les fichiers présents sur le disque dur de sa victime. Le but est d'infecter un maximum de fichier afin d'allonger sa durée de vie.

On constate sur la gauche, la structure schématique d'un fichier. De gauche à droite, représentent toutes les possibilités technologiques qu'un virus va tenter pour infecter un fichier hôte, afin qu'il puisse continuer de fonctionner nativement, mais également de lancer le virus de facon transparente.

Constatation

On se retrouve alors avec un fichier qui a en fait deux programmes, le micro-programme du virus et le programme original !

Perception de la contamination

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

Un virus pénètre dans la machine de sa victime par le biais de téléchargement de programmes ou de logiciels comme des sharewares ou freewares proposés sur des forums, peer to peer, par des pièces jointes attachées aux messages, ou en cliquant sur un lien web contenu dans un courrier électronique, etc...

Méthodes de détection

Les virus, utilisant ces techniques d'infections, sont généralement bien détectés et eradiqués par des logiciels antivirus.

Variantes technologiques

Pour contrer les antivirus, certaines technologies incluent dans toutes les catégories de codes malicieux comme les virus, vers, chevaux de troie, portes dérobées, rootkits, etc, et sont utilisées afin de gagner du temps de durée de vie.

Pour un code malicieux, la durée de vie est capitale, puisque plus la durée de vie est longue, plus il sera virulent, et donc plus propagateur. Par consequent, plus long à être eradiqué.

Dans cette rubrique, nous traiterons plus en détails de ces technologies.

[Définition&Explications] Technologies embarquées dans les virus

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 certaines variantes de technologique embarquées dans les codes des virus.

Les catégories que nous allons expliquer ci-dessous peuvent être imbriquées dans codes programmes des virus.

Virus multi-partite ou virus bi-valent

C’est un virus qui capable d’infecter 2 ou plusieurs types de fichiers dans le même code.

Exemples :

- Un EXE peut infecter les fichiers EXE et le secteur de boot

- Un EXE peut infecter les fichiers EXE et le normal.dot

Les familles des virus Junky ou Tequila appartiennent au premier exemple.

Virus polymorphes ou polymorphiques

Ce type de virus change son code à chaque infection

Le décodage est géré par le code du virus lui-même !

Il est très difficile de le voir dans un désassembleur parce que la plupart du temps ces virus contiennent une routine anti-debug.

Dans ce cas, il est impossible de voir le code du virus.

On peut juste utiliser un viewer hexadécimal … mais bien souvent le virus est crypté.

La solution la plus facile consiste à travailler avec “baits file” et d’analyser les différences.

Exemple : MTX

Virus furtifs

Cette catégorie de virus peut se supprimer ou se camoufler quand un programme spécifique tourne sur la machine (par exemple un antivirus)

Généralement ils interceptent les interruptions int21h AH=11h,12h,4Eh,4Fh, int25h,int13h

Pour les voir, nous avons besoin de trouver le fichier infecté et de le regarder en hexadécimal depuis une machine saine.

Note: Un virus macro furtif est appelé ainsi si la fonction Outils/Macro disparaît.

Virus furtifs d’encryption/décryption à la volée

Ce type de virus est rare !

Le concept est que le virus chiffre le disque dur et sa position est sur le MBR (MultiBootRecord) qui lui même contient l’algo de cryptage/Décryptage à la volée.

Quand le virus chiffre complètement le disque dur, il n’est plus possible d’accéder aux données.

Exemple : OneHalf

Virus métamorphes

C’est une technologies très complexe qui utilise EPO (EntryPointObscuring).

Le virus insère/modifie lui-même un JMP dans l’EntryPoint sans aucune autre modification dans le header du fichier.

Il est très difficile pour un moteur de scan de voir la différence entre le code du programme et celui du virus. (ex:MTX).

Les virus métamorphes peuvent utiliser les instructions du Co-Processeur & MMX (Multi-Media) (ex:THORIN).

Les virus métamorphes peuvent utiliser le calcul de checksum de fichiers quand les Kernel est infecté, simulant ainsi un update d’OS (ex:KRIZ)

Virus macros

Il lance un contrôle visual basic et lance une session MAPI invisible pour l’utilisateur.

Par exemple, pour Melissa Virus, il utilise le carnet d’adresses d’Outlook pour envoyer les messages et les attachements.

Des variantes macros permettent même au code macro du virus de se cacher via les classes des fichiers word, Excel, Powerpoint.

Ils se glissent dans cette zone, qui, théoriquement, est réservée pour les wiziwig, les imprimantes. Pour cette catégories de virus, les éditeurs d'antivirus ont été obligés de modifier leurs moteurs de scan.

Virus JAVA

Les virus JAVA ont été développés pour tester les fonctionnalités.

Nous appelons cela Proof of the Concept. Ce POC a été modifiée pour créer un ver JavaScript.

Virus de script

Les virus de script sont généralement des codes malicieux compagnons.

Deux types de comportement peuvent être constatés:

- S’inclure dans la signature de mail

- Spam ou utilisation d’IRC, MSN, ICQ, Yahoo messenger pour se propager

Leurs langages peuvent être :

- HTML Script

- VBS Script

- JavaScript

- PHP coté serveur

- Virus de Script

Les scripts malicieux VBS&JS utilisant les technologies d’encryption et de polymorphisme (ex:VBS_KALAMAR).

Ils peuvent être « embedded » (insérés) dans des fichiers html/xml (ex:VBS_KAKWORM)

Les instructions du script peuvent être très dangereuses pour le système d’exploitation, les applications et les données (ex:VBS_LOVELETTER)

Les droits du script sont ceux des droits de l’utilisateur (en local ou en réseau)

Virus plaisantins dits JOKE

Les Jokes sont développés dans le but de perturber les compagnies

Ils n’ont pas d’effet destructeur, mais font perdre du temps aux administrateurs

On a tous bien connu le socle coca-cola qui lorsque l'utilisateur exécutait ce code avec un icone coca-cola, cela ouvrait le CDROM, faisant penser à un porte gobelet !!!

Mais des jokes plus pernitieux se sont vus entrainés de grave conséquences, comme une simulation d'un formatage du disque dur...alors qu'en fait, il suffisait de cliquer sur CANCEL !!!

Leurs arrivées : mail, ftp, http, cdrom, clefs usb, etc…