lundi 27 août 2012

L’analyse spectrale


L’analyse spectrale se sert des particularités propres à chaque moteur de mutations des virus polymorphes. En effet, celui-ci sert à générer une boucle de déchiffrement en langage machine, et possède ses propres particularités dans le choix du codage des instructions utilisées, au même titre que les compilateurs ou les assembleurs. Rappelons en effet qu’une instruction du langage machine peut souvent être codée de plusieurs façons différentes, et ainsi chacun de ces programmes utilise tels codages plutôt que tels autres. Comme tous font des choix différents, il devient possible en analysant le codage des instructions employées dans un code d’en déduire le programme qui l’a assemblé. D’un point de vue théorique, on représente toute instruction codée du langage machine par un point dans l’espace des codages possibles, puis on établit les zones de cet espace que chaque compilateur, assembleur ou moteur de mutation utilise. Ainsi, par analyse du spectre des instructions d’un code, on peut situer celui-ci dans cet espace et faire des recoupements avec les zones voisines. On en déduit par quoi il a été construit, ce qui permet d’identifier un virus polymorphe dont on connaît le moteur.
On pourra par exemple rechercher dans un code susceptible d’être infecté par tel virus polymorphe, si il y a des codes d’instruction que seul le moteur de mutation de ce virus emploie, ou au contraire qu’il n’emploie jamais, et en déduire ainsi la présence ou l’absence du virus. Malheureusement, si une version du virus polymorphe ne présente aucune particularité, ce qui statistiquement doit arriver, elle ne pourra être détecter par analyse spectrale. De plus, un virus polymorphe peut riposter en introduisant dans son programme hôte une série d’instructions inutiles que son moteur ne pourrait pas générer, pour tromper l’analyse.

Aucun commentaire:

Enregistrer un commentaire