Marc Blanchard Virus Docteur

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

mercredi 9 avril 2008

[Définition&Explications] Les serveurs Web ZOMBIES

Les technologies et des process de fonctionnement évoluent de jour en jour.

Voici une technique qui, certes, est un peu compliquee à comprendre, mais qui

est cependant de plus en plus utilisée par les pirates cyberdélinquants

aujourd'hui.

Je vous renvoie sur ce post afin que vous puissiez mieux appréhender la

technologie Storm Worm et Storm Botnet.

Post Marc Blanchard : StormWorm et Storm Botnet

Comme je l'avais déjà expliqué dans ce post, les pirates vont utilisées des

méthodes de defacing de serveurs web afin de pousser leurs storm worms sur des

sites web commerciaux, informationnels, de paris en ligne, de casino, ou même de

jeux.

Afin de renforcer la longévité de leurs réseaux zombies, ils ont imaginé deux

techniques via des tentatives de pénétrations de serveurs web via du PHP

Injection ou du SQL Injection, attaques devenues aujourd'hui très courrantes.

Voici, après analyses de codes malicieux trouvés sur des serveurs Web, le

principe de fonctionnement.

Méthodologie 1 : Les serveurs WEB zombies autonomes

Le Principe est le suivant :

a. Le pirate exploite manuellement un certain nombre de serveurs internet

b. Sur ces serveurs, un botnet est installé par le délinquant.

c. Ce botnet a pour mission d'aller sur différents moteurs de recherches

(google, yahoo search, msn, altavista, etc) et font faire ressortir une liste de

serveurs web par thèmatique (sport, politique, jeux, etc)

d. les serveurs web contaminés vont alors tenter d'infecter ces nouveaux

serveurs trouvés par les moteurs de recherches. Les nouveaux serveurs web seront

alors exploités via des exploits PHP et/ou SQL afin de pouvoir pousser un botnet

sur ces serveurs

e. Une fois infecté, ces nouveaux serveurs web sont insérés dans une liste de

serveurs infectés et prêt alors d'utiliser, à leurs tours, les moteurs de

recherches..... La boucle est bouclée !

L'internaute, quand à lui, lorsqu'il arrivera sur ces serveurs web zombies,

verra son navigateur exploité par un storm worm hébergé par ces serveurs web

zombies afin que la machine victime fasse partie intégrante du réseau parallèle

zombies.

Méthodologie 2 : Les machines zombies des internautes qui enrichissent les serveurs WEB zombies

Le Principe est le suivant :

a. L'internaute infecté (utilisant sa machine zombiefiée ultérieurement) utilise

son navigateur pour aller sur un site.

b. Le storm worm présent sur la machine de l'internaute télécharge un à deux

exploits

c. Le site web que l'internaute demande se verra alors exploité par un des

serveurs web zombies par l'intermédiaire du navigateur de l'internaute.

d. Une fois ce nouveau serveur web défacé et infecté, un botnet a pour mission

d'aller sur différents moteurs de recherches (google, yahoo search, msn,

altavista, etc) et font faire ressortir une liste de serveurs web par thèmatique

(sport, politique, jeux, etc)

Les serveurs web contaminés vont alors tenter d'infecter ces nouveaux serveurs

trouvés par les moteurs de recherches. Les nouveaux serveurs web seront alors

exploités via des exploits PHP et/ou SQL afin de pouvoir pousser un botnet sur

ces serveurs

e. Une fois infecté, ces nouveaux serveurs web sont insérés dans une liste de

serveurs infectés et prêt alors d'utiliser, à leurs tours, les moteurs de

recherches..... La boucle est bouclée !

L'internaute, quand à lui, lorsqu'il arrivera sur ces serveurs web zombies,

verra son navigateur exploité par un storm worm hébergé par ces serveurs web

zombies afin que la machine victime fasse partie intégrante du réseau parallèle

zombies.

CONCLUSION

Il faut impérativement viellé à ce que l'antivirus soit bien à jour aux niveaux

des bases de signatures, et l'analyse heuristique doit être OBLIGATOIRE.

vendredi 21 décembre 2007

[Définition&Explications] Les STORM WORM et STORM BOTNET

Dans cette section tout public, il m'a semblé interessant de faire un point sur les activites virales d'aujourd'hui et de demain.

En effet, nous nous appercevons qu'il n'y a plus de réelles communications en presse ou même chez les éditeurs d'antivirus concernant de grandes épidémies, telles que nous les avions eu avec les ILOVEYOU, Sasser, Blaster, NetSky/Baggle, etc...

Cela ne signifie pas que les codes malicieux de tout genre, virus, trojans, vers, etc tentent a disparaitre...

non, au contraire...

La différence est que leurs propagations sont complètement transparentes, furtives et nous, utilisateurs, sommes les acteurs d'une scène de constitutions de réseaux parallèles, dont on n'imagine pas même la puissance de calculs dont les pirates actuels disposent en exploitant nos machines, dites MACHINES ZOMBIES.

Rappel Général

Un virus est un programme qui, pour fonctionner, a besoin d'un fichier hôte pour fonctionner.

Un ver, ou worm, est un programme qui a besoin d'une machine hôte pour fonctionner.

La principale différence entre un vers et un virus, est que le virus peut être détruit facilement par un antivirus, car il est localisé sur une petite entité : les fichiers du PC.

Le ver, ou worm, quant à lui, existera tant qu'une machine sur internet le fait fonctionner. On appelle cette technique : une infection par le cable.

Voici une petite statistique qui vous permettra de comprendre la problématique du worm.

Dans l'image ci-dessous :

On constate bien que SLAMMER et MSBLASTER sont bels et bien encore actifs sur une machine connectée sur le net, sur laquelle on analyse les tentatives de pénétrations (appelé VirusPot).

Ces deux vers ont été lancés sur le net aux environs des années 2002 et 2003...wow ! elles représentent encore un taux élevé de tentives d'infections alors que TOUS les antivirus...même les gratuits les détectent!

Etrange, vous ne trouvez pas...

L'explication est très simple, ces codes sont des vers ou worms. Alors qu'un virus est présent à part entière sur la machine de l'utilisateur, l'antivirus, lui, fait son travail de détection et d'eradication localement.

Alors que le ver ou worm, lui, tant qu'une machine sur internet est vulnérable, le ver existera et se propagera sur la toile... d'ou la constitution et les convergences de développement très fortes de la part des pirates vers les technologies des vers ou worms.

Qu'est-ce qu'une machine zombie (rappel)

Une machine utilisateur devient zombie en subissant des techniques de pénétration dites 'différées'.

Le principe est le suivant :

1. La machine est sur le net, et subit, de la part des worms, des tentives de pénétration par exploits de vulnérabilités que ce soit sur l'operating system, ou bien applicatifs comme des clients de messageries courrier ou instantannés, navigateurs, visualisateurs de films ou de mp3, de logiciels peer to peer, etc...

2. Un processus va alors s'installer sur la machine, et va ouvrir une porte dérobée (appelé backdoor) en modifiant les règles des parefeux logiciels.

3. Une fois la backdoor établie, un BOTNET (robot internet) va être lancé sur la machine permettant ainsi d'envoyer l'adresse IP et le numéro de la porte dérobée de la machine victime au pirate.

4. Le pirate recevant cette information, pourra référencé la machine victime dans une console d'administration, et ... plus tard, prendre la main à distance pour téléguider cette machine pour effectuer une ou plusieurs attaques, ou permettre à cette machine de devenir un serveur web pédophile, d'achat en ligne, de promouvoir des attaques de phishing, ou même d'être un faux serveur de blog.... bref tout peut être imaginé!

5. Pour ce faire, de nouveaux procédés sont mis en place sur les machines victimes en installant un DNS Dynamique....

Cette technique devient de plus en plus fréquente pour le phishing (faux serveur de logging bancaire) ou pour des faux serveurs de casinos.... oui, les machines des utilisateurs zombies sont de plus en plus référencées dans les moteurs de recherches type google et yahoo search.

En faisant des recherches en fonction de l'actualité, qui peut être sportive, politique ou ... autre... l'internaute se retrouve très facilement sur un faux serveur de blog ou faux serveur web comme le montre la photo ci-dessous :

Ce Faux blogs avec le téléchargement sur youtube d’une vidéo n’est qu'en fait qu’un fichier exécutable qui contient le storm worm...

En juin 2007, le FBI lancait une annonce presse indiquant 1 million de machines zombie.

Après de nombreux calculs mathématiques au centre de recherche scientifique, on estime que le nombre de machine zombie n'est pas de 1 million comme l'indique le FBI, mais plutot estimé entre 30 et 50 millions.

Nous allons voir ensemble pourquoi.

Que se passe-t-il aujourd'hui ?

L’utilisation à distance d’une machine zombie est très pratique, certes, mais les ressources CPU doivent répondre au lancement de l’attaque ou au téléchargement du nouveau code.

Cette sur-activité CPU est normale, car des opérations mathématiques particulières doivent être lancées. Ces opérations font appels aux FLOPs (opérations à virgules flottantes).

Mais la perception au niveau de l'utilisateur est importante. En effet, avec une utilisation du processeur de 100%, l'utilisateur peut tout juste faire bouger sa souris. C'est la raison pour laquelle, de nombreux pirates voient leurs codes rapidement détectés par les Antivirus, car les utilisateurs suspectent fortement leur machine.

Si leur code est détecté, pour le pirate essayant de mettre en place un réseau parallele de machines zombies, il y a de fortes chances que l'existance et la persistance de ce réseau soit très fortement fragiligisé, et surtout que ce réseaux ait une faible durée de vie.

C'est pourquoi, depuis quelques semaines, nous assistons à une emergence de nouvelle génération de vers appelés STROM WORM.

Voici le principe :

Les délinquants ont décider de prendre des mesures technologiques afin d’éviter que les machines zombies soient affaiblies par l’activité.

Ils utilisent la techniques des ressources CPU partagées.

Lorsque le stormworm arrive sur la machine, il va faire une analyse du CPU afin de déterminer le nombre de MEGA FLOP maximum pouvant supporter le CPU, le storm worm va ainsi n'utiliser que 2/3 de la puissance de la machine victime.

La résultante est efficace :

En effet, à 47% d'utilisation du CPU, l'utilisateur n'a aucune perception de contamination, d'utilisation à distance de sa machine, y compris si la machine est un serveur web référencée sur google!

Mais comment ces codes arrivent sur ma machine ?

Les délinquants d'aujourd'hui n'utilisent plus vraiment le courrier électronique pour déployer leurs attaques....Il y a trop de procédés antispam, antivirus, blocages de certains fichiers par extensions, etc...

Ils utilisent aujourd'hui le WEB, le surfe, le HTTP !

La technique ne date pas d'hier ! C'est la technique du defacing/défaçage.

En fait, certains serveurs web sont vulnérables par le biais des applications fonctionnant sur le serveur : php, sql, etc...

Ces failles, si ces applications ne sont pas mises à jour, permettent un accès quasi total sur les répertoires du serveur web où sont localisées les pages d'index et autres pages, type contact, forum, etc...

Les anciennes générations de pirates, dit 'joueurs', ne faisaient que insérer une image comme celle ci-dessous sur la page d'index du serveur web piraté !

Maintenant, les cyber-délinquants recherchent la transparence.

Ils utilisent les mêmes méthodes pour propager leurs codes, mais insèrent tout simplement dans le code de la page du serveur du code comme ci-dessous :

Pour les pirates les plus vicieux, ils inséreront une IFRAME transparente, comme l'exemple ci-dessous :

La technique de la IFRAME transparente est simple.

Le pirate va faire héberger un code VBS ou JS sur une de ses machines zombies, et lorsque le navigant viendra sur le serveur du site défacé, le navigateur de l'internaute, ira téléchargé de facon transparente ce code en infectant ainsi, non pas le serveur web, mais l'internaute lui-même.

Epidémiologie de ces techniques

Il ne faut pas cacher que ces technologies sont extrèmement bien maitrisées, et leurs propagations sont classées parmi les plus hautement emmergents.

Une évolution de +300% sur tout ce qui est StormWorm et StormBotnet depuis juin 2007, et une evolution parallèle équivalente pour tout ce qui est JavaScript, VBScript, Iframe, PHP et HTML dans les bases antivirales de Kaspersky... SUR LA MEME PERIODE...

Associé à ces technologies, viennent s'ajouter l'utilisation des codes modulaires.

Le principe du code modulaire est la possibilité de pousser dans une enveloppe programme chargé en mémoire, un certain nombre de codes sous-programmes en temps réel afin que cette enveloppe lance en temps reel une attaque.

Cela permet aux attaquants de changer le contenu de leurs malwares en moins de 1 heure sur les machines zombie .. et de n'être quasiement jamais détecté par les antivirus !

Les attaquants possèdent une base de données qui permet, à tout moment, de connaître le nombre exact de machines zombie en ligne, prêtes à recevoir une attaque ou à la lancer

Cette base de données peut avoir des options de réplications avec une ou plusieurs bases de d’autres cyber-délinquants....en d'autres termes les consoles des pirates sont standardisées afin de recevoir les bases de données de d'autres pirates!

Voici une console d'administration de machines zombies 'dites ancienne génération' dont le(s) pirates disposent :

Initialement la technique du botnet qui est installé sur les machines zombies des internautes envoie les adresses IP des machines zombies à une console d’administration sur la machine du pirate.

Le pirate pousse le code de son attaque sur sa console-serveur.

La console-serveur télécharge le nouveau code de l'attaque sur les machines zombies dans les codes modulaires.

La limitation de ce système est que le serveur qui déploie les attaques peut être localisé facilement. En effet, chaque machine zombie renvoie sur la même adresse IP ou nom DNS (console du pirate) ses propres informations. Lors de la découverte de ces informations, nous faisons fermer cette ip ou ce nom dns.

Résultat : le réseau zombie tombe, donc le pirate ne dispose plus de puissance de machines téléguidées.

C'est pourquoi, ils ont imaginé un nouveau concept : Les StormWorms et StormBotnet

Les StormWorms et StormBotnet

Cette console rapatrie les hosts (serveurs) décrivant des détails ultra-précis sur leurs taux d’efficacité et par pays permettant une attaque ciblée ou globale.

Comme on peut le constater, dans cette console nouvelle génération, il n'y a plus de notion du nombre d'adresses IP, mais on établi des calculs par rapport à des TAUX D'EFFICACITE!

Oui, si on revient sur mes explications concernant les FLOPs, les STORM BOTNET gèrent des puissances de calculs, qui sont géolocalisées.

Par conséquent, dans cette image on peut constater que le taux d'efficacité pour les USA est faible. La raison pour laquelle cette valeur est faible est que bon nombre d'américains éteignent leurs machines la nuit puisque la copie écran a été faite ... de la france aux heures ouvrées :-)

Mais si on pousse la réflexion, certains gouvernements européens ont subis des attaques de Chine, il y a quelques semaines.

Oui, les attaques venaient de Chine, si on géolocalise les provenances des attaques....MAIS qui est le commenditaire ??? Et oui, puisque la console ci-dessus est une console WEB accessible depuis n'importe quel PC ayant une connectivité internet.... à méditer...

Bref, revenons sur la constitution des nouveaux réseaux paralléles STORM BOTNET :

Le Storm Botnet est programmé pour avoir une grande force de calcul (Flop) et obtenir une géolocalisation précises des zombies

Le principe de ce Botnet s’appuie sur la technologie du p2p.

Le storm botnet met en place des machines zombie qui agissent en tant que serveur (hosts) ou male. Chaque serveur (host) a un nombre limité de machines zombie attaquantes, mais qui dépendent d’au moins 3 serveurs (hosts) à 5...voir plus...

Par effet de maillage, on multiple en masse rapide le nombre de machines zombies tout en limitant les trafics réseaux disponibles pour des attaques diverses

Cet effet de maillage permet également d’auto-contrôler les puissances des microprocesseurs de chacune des victimes

Il permet également une grande longévité de vie d’un réseau zombie

Dans cette photo, les carrés représentent les machines hosts dites machine male.

Lorsqu'un internaute se fait contaminé par un storm worm, alors sa machine fera des tentatives d'infections sur 1000 ou 2000 machines du net... on ne peut donc pas prétendre à une épidémie. Mais chacune de ces machines vont à leurs tours essayer de contaminer 1000 à 2000 machines, et ainsi de suite.

Par contre sur les 2000 machines, certaines deviendront des machines hosts (machines males) et les autres femelles.

Chacune des machines femelles communiqueront avec les machines hosts (males) afin de télécharger de nouvelles attaques, soit des attaques nominatives, soit multiples.

Les gros interêts de cette technique sont que d'une part, si une machine host est détectée par un antivirus, les machines femelles continueront de communiquer avec les autres hosts (machines males).

C'est un peu le principe de KAZAA : Il y aura toujours l'existance de ce réseau, car il y aura toujours une machine cliente et une machine serveur, juste le minimum pour la survie de ce réseau parallele !

Quel est le principe de fonctionnement des males et femelles ?

L’enveloppe vide poussée après infection est inoffensive car elle ne possède pas encore de codes.

Elle attend que l’attaque soit envoiée sur son IP.

Le block sera rempli ultérieurement par l’intermédiaire d’un storm botnet en ‘push’ ou en ‘pull’ et être cacher avec un rookit.

Comme on peut le constater sur cette image, le Géniteur est le code qui sera poussé sur les machines males.

Ce code a un double header :

- Marker : code modulaire destiné pour les machines males ou host

- Block Information : code modulaire destiné pour les machines femelles.

Comme on peut le voir, les block modulaires peuvent être logés dans les micro-sections dans n'importe quelle zone de l'enveloppe, permettant ainsi de multiples attaques comme par ex : un faux server web/blog ET un serveur de mail pour propager du SPAM, etc...

Ce qui complique la détection des antivirus, puisque ces micros-sections ne sont réellement pas fixées à un endroit précis.

CONCLUSION

He oui! les codes modulaires sont un problème pour les antivirus.

Il est fortement recommandé d'utiliser les dernieres versions des suites des éditeurs antivirus, de choisir un antivirus très réactif au niveau de ces mises à jour de bases MAIS SURTOUT, surtout, utiliser une protection très poussée pour tout ce qui est surfe du traffic internet, en activant les détections heuristiques au maximum, l'utilisation d'une Proactive Defense poussée à son maximum.

Pour une entreprise, je ne saurai que recommander une protection antivirale renforcée au niveau des proxys HTTP.

Pourquoi ces précautions ?

Tout le monde a déjà vu, en surfant sur certains sites, des bannières publicitaires.

A chaque visite, ou pendant la visite, on peut voir défiler des bannières différentes.

Pour la propagation http des storm worms, le cyber-délinquants utilisent la même technique, sauf qu'au lieu de faire afficher des images publicitaires, ils font exécuter du code qui peut etre VBS, JS ou même des exécutables.

Pour ce faire, ils utilisent des moteurs de bannières aléatoires de ce type :

Dans cet exemple, j'ai pris NOTEPADxxx.EXE

En fait, le délinquant n'a qu'a déposer dans les faux serveurs web une url de redistribution pointant sur un ou plusieurs serveurs zombies.

Le résultat est interessant, car l'internaute (future victime) va télécharger aloéatoirement des codes différents...

Dans cet exemple, on va pouvoir accèder à ce type de téléchargement suivant, à chaque visite de la page :

- 1 ere visite :

- 2eme visite :

- 3eme visite :

Comprendre cette procédure

En fait, dans ce concept, il est facile pour le cyber-délinquant, de passer à l'antivirus, la totalité de ces codes mis à disposition des futures victimes zombie.

Dès qu'un de ces codes (ceux que l'on visualise dans le redirecteur ci-dessus) est détecté, il est simple et sans coupure de téléchargement, pour le pirate, de modifier un de ces codes afin de ne plus être détecté... et ainsi repousser sur ce serveur un nouveau StormWorm...

Un peu d'histoire

- En 1999, il fallait 10 à 15 jours pour les créateurs de virus pour exploiter des failles publiées sur les sites de sécurité!

- En 2003, 15 min suffisaient à développer un code malicieux exploitant une faille venant d'être référencée

- En 2007, moins de 4 min suffisent à développer un code malicieux exploitant une faille venant d'être référencée

On peut donc conclure que il faut impérativement pousser les analyses heuristiques et proactive défense à leurs maximum pour limiter les attaques ZERO DAY.

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.

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…

mercredi 26 septembre 2007

[Définition&Explications] Le SPAM

On parle du spam, de courriers indésirables, de publicités non-sollicité, etc... ces messages qui nous envahissent chaque jour.

Essayons de comprendre les processus et les concepts de ces messages qui nous font perdre un temps fou !

Définition :

Un spam est un message que le créateur souhaite faire passer sur un ou plusieurs supports électroniques :

- mail,

- web,

- messageries instantanées,

- SMS,

- MMS,

- etc..

Les contenus sont divers:

- Produits frelatés ou expirés

- Produits illégaux

- Contrefaçons ou copies de mauvaise qualité

- Messages politiques et financiers

- Vols ou escroqueries de biens ou cartes de crédits

- Messages pornographiques

- Chaines de vie ou de mort

- Un service particulièrement nouveau ou un mensonge

Le temps perdu :

Le cerveau humain travaille en parallèle : nous lisons, nous pensons parfois à autre chose pendant que nous écoutons mais restons attentif, nous respirons, bref tous ces sens font travailler notre cerveau en parallèle.

Mais revenons à notre fonctionnement intellectuel face à notre outils favori : Le courrier électronique :-)

Pour déterminer, interpréter et effectuer une action sur un message reçu, il ne faut pas moins de 2,5 sec, car dans ce cas, le cerveau fonctionne en série. Il travaille en série, car c'est notre logiciel de courrier électronique qui ne nous permet pas de travailler en parallele. En fait, nous lisons chaque message électronique, les uns après les autres !!! Donc notre cerveau travaille en série !

Pourquoi les mêmes spams nous arrivent malgrès des filtrages ?

Le SPAM est :

- Une volonté

- Une création avec logiques humaines

- Une action

- Une analyse des résultats obtenus

Si les conditions de bloquage de spam sont « matchées » c'est à dire que les spams sont arrêtés par un logiciel AntiSpam, alors le spammeur fera en sorte d’y effectuer des modifications jusqu’à ne plus être arrêté.

Pour comprendre les reflexions des spammeurs, ou même des créateurs de virus, il faut connaître 3 types d’analyses d’interprétation que le cerveau humain peut effectuer :

- Schématisation d’un système connu

- Schématisation Isomorphique

- Schématisation Homomorphique

Ce qui aura pour résultante un même résultat mais utilisant une technique différente utilisant alors un système d’Influences.

Mesure de l’information : étude de cas

Supposons que nous recevons un spam de ce type : «  Le produit YYY, c’est bon pour toi »

Suivi d’une url du type :

« www.yyy.com/offer/discount.html »




Fonctionnement inconscient de notre cerveau :

«  Le produit YYY » : représente une curiosité car il s'agit d'un nouveau produit

« c’est bon » : représente une préconisation

« pour toi » : est une influence personnelle

Par conséquent, la victime resent un sentiment de CURIOSITE, car :

- on prend soin de la victime

- la victime est déjà en confiance avec ce slogan

Donc : la victime est sur le point de visiter le site !

Mais, le spammeur remet une couche d'influence pour finaliser l'autovolonté de la victime et lui montrer qu'il faut absoluement cliquer sur le lien !

« www.yyy.com/offer/discount.html »

Chaqu'un d'entre-nous savons ce qu'est un discount ! Une offre exceptionnelle !!

Par conséquent, la victime est quasiement persuadée qu'elle ira faire une bonne affaire ...en cliquant sur le lien !!!

Définition : schématisation d’un système connu :

Une interprétation peut être effectuée sous plusieurs formes :

- Analyse sous forme de dictionnaire dans un cadre conceptuel par rapport à la schématisation d’un système connu, avec ou sans variables, avec ou sans espace de phase en 3D

Définition : schématisation isomorphique :

Peut être considérée comme isomorphe un système pouvant subir une seule variation de transformation à un objet soumis et connu.

Dans notre exemple : « c'est bon »

Définition : schématisation homomorphique :

Une suite d’au moins deux analyses isomorphiques et pouvant faire intervenir des objets extérieurs en faisant des probabilités de séquences et/ou des influences.

Dans notre exemple : « c'est bon » ET « pour toi »

Définition : Les Influences :

Analyse dite Analyse d’Univers de Phase qui peut être provoquée par :

- Une influence externe,

- Une influence connue ou réconfortante

- Et/ou lorsque un objet change d’état,

Dans notre exemple : « www.yyy.com/offer/discount.html »

Résultat :

Remise en cause de l’influence de départ que l’on souhaiterait obtenir comme résultat, mais on s’y force si l’on souhaite quelque chose avec conviction.

En conclusion : Les systèmes d’influences

Ainsi, si on veut établir une mesure de l'information, on doit tenir compte du degré d'incertitude lié à chaque cas possible.

Mais on peut en déduire alors la volonté de la victime pour acquérir le produit : pour cela, le spammeur veillera à le conforter une fois de plus en s'appuyant sur les mêmes techniques que ci-dessus en ayant pris soin de renforcer le système d'influence sur le site web « www.yyy.com/offer/discount.html » en communiquant sur :

- Les facilités de paiements

- Les délais de livraison

- Les garanties (satisfait/remboursé)

- Les promotions exceptionnelles voire gratuite

- Des couleurs et des logos de couleurs chaudes, des gens sur les photos souriantes, etc…

Spam : Techniquement : Les envois :

L’annonceur et le spammeur peuvent être la même personne et/ou la même société.

Les techniques d’acheminement du mail peuvent se faire :

- En exploitant les failles de relay des serveurs de messageries

- En exploitant des failles Mail via des proxy http

- En installant une porte dérobée (backdoor) de micro serveur SMTP sur les postes zombies des victimes ayant recu le spam et ayant visité leurs sites

- En transformant, dans ce cas, le poste de la victime en serveur de spam ou de serveur web du spammeur. Dans ce cas, la machine victime devient une machine zombie dont l'utilisateur n'est pas le seul utilisateur de sa propre machine. Sa machine devient alors une machine prête à lancer une attaque télécommandée sur des sites commerciaux et/ou professionels, et peut ainsi aider un hacker à faire du chantage, ou pire encore, devinir une machine serveur hébergeant des photos très compremettantes...

Mais comment ont-ils mon adresse mail ?

Les spammeurs utilisent des techniques diverses:

- Rachat de mailing listes

- Crawler (sniffeurs) SMTP sous forme de backdoor (tout courrier electronique est échantilloné et envoyé au spammer, pris sur les blogs, forums, carnet d'adresses, etc)

- Echange d’adresses : sur les undergrounds

- Spam de vente d’adresses mail qui sont générés uniquement pour obtenir votre mail

- Les réponses aux spams par « désabonnement »

- Les syphonages de sites web récapitulant les discussions des news-groups

- Des syphonages de pages HTML contenant des adresses mails

- Des vers syphonant des mails locaux et les WAB ou les carnets d’adresses de leurs victimes

- Technique de génération de mails automatiques par dictionnaires croisés !

Cette technique est utilisée pour un spam des utilisateurs de grands FAIs (fournisseurs d'accès internet) :

- Dictionnaire de noms / pays (ex: Smith) , les plus populaires du pays à spammer

- Dictionnaire de prénoms / pays (Paul, Brian, etc) , les plus populaires du pays à spammer

- Dictionnaire des noms des FAIs (aol.com)

Résultats de ces robots :

- Paul.smith@aol.com

- Smith.paul@aol.com

- Paulsmith@aol.com

- Paul1smith@aol.com

- Paul_smith@aol.com

- Etc…

Donc les tentatives seront effectuées les unes après les autres sur ces adresses. Lorsqu'il n'y aura plus d'erreur de la part du serveur de courriers destinataires, le pirate pourra être certain que cette adresse mail est correcte, et il en essaiera d'autres avec d'autres noms et prénoms...et ainsi de suite...

Conclusion :

Le spam n'est pas une suite de numerique facilement détectable, car comme vous l'avez certainement compris, les spammeurs utilisent des techniques évolutives, dont les contenus changent très régulièrement, comme par exemple : envoyer le contenu du spam dans une image ou un document acrobat en PDF, etc...

C'est pourquoi qu'un antispam doit pouvoir analyser les courriers électroniques avec de nombreuses technologies de détections associées à des filtrages linguistiques, listes de serveurs de mails déclarés en listes noires ou en relais ouverts.

Aujourd'hui, selon spamhaus.org, la France est au 9eme rang mondial des relais de serveurs propageant du spam....C'est à réfléchir....

...et surtout, à s'équiper si on ne veut pas perdre du temps à lire des informations inutile, et à être productif dans un système travaillant en série (je veux dire le courrier électronique :-)

lundi 24 septembre 2007

Evolution des Codes Malicieux et des virus

Un petit graphique qui permet de mieux comprendre l'évolution des virus et malwares informatiques