Injection - Techniques et intérêts

Injection - Techniques et intérêts

   
En savoir plus :  Retourner à la page précédente   Imprimer cette page   

FAQ Microsoft Windows

Dossier "Virus"

S'équiper
Virus
Typologie des attaques virales
Typologie des charges actives
Typologie des auteurs de virus
A savoir - Quelques risques
Antivirus - Choisir un antivirus
Tests Antivirus et son installation
Les antivirus généraux
Les antivirus généraux
Régler les antivirus au maximum
Les antivirus gratuits spécifiques
Les antivirus gratuits en ligne
Les antivirus en ligne
Analyse d'un fichier
Analyse du PC
Envoyer échantillon
Sandbox
Rescue CDs - CD de secours
Tableaux comparatifs
Ressources
Pour une Informatique sécurisée
Anti Virus Asia Researchers
Techniques McAfee Avert Labs
IM et Pirates


Mots clé:
injection
 
 
Technique consistant, pour un parasite ne possédant normalement aucun droit, à s'injecter dans un fichier ou un processus afin de bénéficier des droits de son hôte.

Nota : il existe d'autres formes d'injections (sql injections...) qui ne sont pas du tout de la même nature.

Il faut bien distinguer :
  • les injections triviales, à l'ancienne, dans les fichiers (formes d'injections utilisées par les virus et qui relèvent des modules en temps différé ("on demand") et des modules en temps réel ("on access") des antivirus et des anti-trojans)
  • les injections dans les composants actifs avec injection différée.
L'injection peut donc intervenir à 2 endroits : en "dur" dans le fichier du composant ou "à la volée" dans le composant déjà monté en mémoire.

Vous avez un pare-feu (un vrai, pas celui de Windows, y compris celui de XP SP2) ? Les pare-feu tels OutPost Pro, permettent d'attribuer ou de restreindre les droits des applications à sortir.

  1. Tâche légitime autorisée à passer le pare-feu.
    Une application autorisée (et chacun de ses composants) passe le pare-feu sans problème.


    Fig 1 - Tâche légitime autorisée à passer le pare-feu.


  2. Tâche légitime ou inconnue bloquée par le pare-feu
    Une application nouvelle, pas encore autorisée ou une application parasite, n'a pas le droit de sortir et se heurte au pare-feu.


    Fig 2 - Tâche légitime bloquée volontairement ou tâche inconnue, bloquée par défaut par le pare-feu.


  3. Injection d'un parasite
    Les parasites de "haut de gamme" vont s'injecter dans un des composants d'une tâche ayant des privilèges élevés et des droits étendus, ou dans plusieurs composants de plusieurs tâches, afin de bénéficier des droits de ces dernières.


    Fig 3 - Parasite injecté dans un composant légitime et bénéficiant des droits de ce dernier.


  4. Injection d'un relais à un parasite
    L'implant peut être la malveillance en elle-même, comme sur la figure 3 ou, si la malveillance est un gros processus, l'implant est uniquement la couche de communication de la malveillance qui, elle, est un processus distinct communiquant avec l'implant.


    Fig 4 - Un "gros" parasite implante sa couche de communication dans un processus aux droits "utiles" pour lui et établi une communication inter-processus pour donner des ordres à l'implant ou récupérer des données qu'il aurait reçu du serveur qui le pilote.


Contre-mesure
Il s'agit d'exploiter la trace que laisse le parasite en s'injectant car il modifie la taille de l'hôte et, en conséquence, ses chiffres clés.

Contre-mesure à l'injection en "dur"
C'est une forme d'injection assez triviale et ancienne. Tous les scanners anti-trojans et antivirus, selon la nature du parasite, le trouveront, aussi bien dans leurs modules d'analyse en temps différé ("on demand") qu'en temps réel ("on access").

Contre-mesure à l'injection "à la volée"
Le seul moyen de lutter contre les injections est d'utiliser un utilitaire de sécurité qui mesure tous les exécutables (les tâches principales (en .exe) et chacun des composants de ces tâches (les .dll) alors qu'ils sont déjà en mémoire et s'exécutent. Il y a là une subtilité car un utilitaire qui mesurerait le composant au moment où il monte en mémoire (cas des modules temps réel ("on access") des anti-trojans et des antivirus) ne verrait absolument pas un parasite s'implanter dans le composant après sa montée en mémoire et son activation. Le parasite s'injecte avec un délai temporel, après le lancement, soit parce qu'il est déjà présent dans la machine et est écrit ainsi, soit parce qu'il vient d'arriver (durant une séance de navigation sur le Net, par exemple, ou durant l'installation d'un programme piégé...).

A l'installation initiale de la machine et de toutes ses applications, alors que tout est encore sain, installer les utilitaires de sécurité : le pare-feu, OutPost Pro par exemple, pour toutes les tâches qui tentent de communiquer avec l'extérieur, ou le contrôleur d'intégrité ProcessGuard pour absolument toutes les tâches. Mettre ces utilitaires en mode "apprentissage" (le terme peut varier selon les éditeurs) et lancer toutes vos applications et toutes les fonctions de vos applications (cliquer sur toutes les options des menus et des menus contextuels...). L'utilitaire de sécurité va calculer le chiffre clé de chacun de ces composants (le hashcode - voir des exemples avec SummerProperties qui fait ce genre de calcul pour les fichiers). Il va conserver cette liste de "signatures saines" dans une base de données protégée.

Basculer désormais les utilitaires de sécurité en mode surveillance (mode contrôle... le terme peut varier selon les éditeurs) des tâches principales et de leurs composants. Certains utilitaires peuvent ne surveiller que les tâches principales, autrement-dit, quasiment rien, dans leur version gratuite et permettre la surveillance des composants dans leur version commerciale.

A partir de ce moment là, en sus de l'analyse en temps réel lors de la montée en mémoire (scan "on access" fait par votre anti-trojans et votre antivirus), le composant en mémoire sera mesuré à intervalles réguliers et le hashcode sera recalculé puis confronté à la base de signatures. Si les 2 hashcodes, l'initial signant un composant réputé sain et son nouveau hashcode qui vient d'être calculé, sont identiques, le composant est autorisé à poursuivre son exécution sinon il est suspendu et l'utilisateur est alerté : il doit prendre une décision.

Par la même occasion, ce genre d'utilitaires de sécurité peut surveiller le comportement des composants actifs et détecter une tentative par un composant de tuer un autre composant (tueurs d'antivirus, d'anti-trojans et de pare-feu...).

Après une mise à jour (par exemple après un Windows Update), il est légitime que certains composants de Windows, objets de la mise à jour, soient modifiés. Si un composant est modifié alors que rien ne le justifie, c'est qu'un parasite s'est injecté dedans ou qu'une mise à jour silencieuse a eu lieu (nous nous opposons aux mises à jour silencieuses qui constituent des failles de sécurité - voir anti-mises à jour automatiques).


Ressources
MISC N° 13 de mai/juin 2004 - injection de code sous Unix

Tests
Utilisez Zapass pour faire des injections et vérifier les résultats. Communiquez-nous vos résultats dans ce forum.


Nouvelle adresse du site Assiste.com depuis le 22 octobre 2012 : http://assiste.com Nouvelle adresse du site Assiste.com depuis le 22 octobre 2012 : http://assiste.com

Nouvelle adresse du site Assiste.com depuis le 22 octobre 2012 : http://assiste.com






Historique des révisions de ce document :

23.04.05
24.03.05
03.07.06
 
   
Rédigé en écoutant :
Music