Je n'ai pas encore tout lu mais ça a l'air d'être très intéressan t.
Bonjour,
Je ne suis pas certain d'avoir tout suivi, mais si j'ai bien compris il s'agit d'une methode alternative (ou complementaire) a l'emulation qui consiste a reconstituer la structure d'un programme a partir de sa forme binaire et a transcrire celle-ci sous la forme d'un graphe dont chaque noeud represente une "fonction" et a identifier quelles sont les donnees accedees/modifiees par chacune de ces fonctions. La detection heuristique consisterait ensuite a rechercher au sein de ce graphe des motifs connus et correspondant a des operations generalement effectuees par les virus, comme par exemple envoyer des emails en rafale. L'interet d'une telle methode serait de permettre la detection de malware polymorphe ou metamorphe, les "motifs caracteristiques" du graphe etant supposes invariants vis a vis des "mutations" subies par le binaire.
Graphiquement, certaines des informations contenues dans ce graphe peuvent donc etre repesentees comme ceci (j'espere que Pierre Vandevenne me corrigera si je me trompe) : http://www.datarescue.com/idabase/pix/pc2.gif http://www.datarescue.com/idabase/pix/pc10.gif
Les auteurs presentent le principe de la methode, qui se decompose en 5 phases successives et illustrent la vulnerabilite' de chacune de ces etapes en presentant differentes methodes d'attaque. Ils concluent que si cette methode permet effectivement d'obtenir des resultats satisfaisants pour des programmes standards, compiles a partir d'un code source ecrit en langage de haut niveau, il est relativement aise' de la circonvenir si on le veut vraiment.
J'espere que ce "pitch" aura donne' a ceux qui ne l'ont pas encore fait envie de lire l'article.
Cela dit, l'analyse parait pertinente et est accessible au beotien que je suis, mais je ne peux m'empecher de me poser la question de l'utilite' d'une telle innovation, ou plutot : cette utilite' est bien celle que les auteurs de l'article lui atribuent ? Quelle est la frequence d'apparition de malwares poly/metamorphiques necessitant une mise a jour des moteurs d'anti-virus ? Cette frequence est-elle si importante qu'on ait a ce point besoin d'implanter une nouvelle methode au sein des antivirus ? L'objectif princpal d'une telle technique ne serait-il pas plutot de permettre la detection heuristique des programmes ecrits en langage de haut niveau, la detection de virus poly/meta-morphe n'etant qu'un bonus appreciable ? La quasi-absence de detection heuristique de la grande majorite' malwares modernes n'est-elle pas un des grands manques des anti-virus modernes ?
Meme si on ne peut exclure l'apparition d'un nouvel "Hybris-like", au vu de la production actuelle de malware (quantitativement et qualitativement), il me semble qu'il faut avant tout se premunir contre les "Swen-like".
-- Tweakie
On Sun, 23 Nov 2003, Frederic Bonroy wrote:
Article très technique sur de nouvelles méthodes de détection de vi rus:
Je n'ai pas encore tout lu mais ça a l'air d'être très intéressan t.
Bonjour,
Je ne suis pas certain d'avoir tout suivi, mais si j'ai bien
compris il s'agit d'une methode alternative (ou complementaire) a
l'emulation qui consiste a reconstituer la structure d'un programme
a partir de sa forme binaire et a transcrire celle-ci sous la forme
d'un graphe dont chaque noeud represente une "fonction" et a identifier
quelles sont les donnees accedees/modifiees par chacune de ces fonctions.
La detection heuristique consisterait ensuite a rechercher au sein de
ce graphe des motifs connus et correspondant a des operations
generalement effectuees par les virus, comme par exemple envoyer des
emails en rafale. L'interet d'une telle methode serait de permettre
la detection de malware polymorphe ou metamorphe, les "motifs
caracteristiques" du graphe etant supposes invariants vis a vis des
"mutations" subies par le binaire.
Graphiquement, certaines des informations contenues dans ce graphe
peuvent donc etre repesentees comme ceci (j'espere que Pierre Vandevenne
me corrigera si je me trompe) :
http://www.datarescue.com/idabase/pix/pc2.gif
http://www.datarescue.com/idabase/pix/pc10.gif
Les auteurs presentent le principe de la methode, qui se decompose
en 5 phases successives et illustrent la vulnerabilite' de chacune de
ces etapes en presentant differentes methodes d'attaque. Ils concluent
que si cette methode permet effectivement d'obtenir des resultats
satisfaisants pour des programmes standards, compiles a partir d'un
code source ecrit en langage de haut niveau, il est relativement aise'
de la circonvenir si on le veut vraiment.
J'espere que ce "pitch" aura donne' a ceux qui ne l'ont pas encore fait
envie de lire l'article.
Cela dit, l'analyse parait pertinente et est accessible au beotien que
je suis, mais je ne peux m'empecher de me poser la question de l'utilite'
d'une telle innovation, ou plutot : cette utilite' est bien celle que les
auteurs de l'article lui atribuent ? Quelle est la frequence d'apparition
de malwares poly/metamorphiques necessitant une mise a jour des moteurs
d'anti-virus ? Cette frequence est-elle si importante qu'on ait a ce
point besoin d'implanter une nouvelle methode au sein des antivirus ?
L'objectif princpal d'une telle technique ne serait-il pas plutot de
permettre la detection heuristique des programmes ecrits en langage
de haut niveau, la detection de virus poly/meta-morphe n'etant qu'un
bonus appreciable ? La quasi-absence de detection heuristique de la
grande majorite' malwares modernes n'est-elle pas un des grands manques
des anti-virus modernes ?
Meme si on ne peut exclure l'apparition d'un nouvel "Hybris-like",
au vu de la production actuelle de malware (quantitativement et
qualitativement), il me semble qu'il faut avant tout se premunir
contre les "Swen-like".
Je n'ai pas encore tout lu mais ça a l'air d'être très intéressan t.
Bonjour,
Je ne suis pas certain d'avoir tout suivi, mais si j'ai bien compris il s'agit d'une methode alternative (ou complementaire) a l'emulation qui consiste a reconstituer la structure d'un programme a partir de sa forme binaire et a transcrire celle-ci sous la forme d'un graphe dont chaque noeud represente une "fonction" et a identifier quelles sont les donnees accedees/modifiees par chacune de ces fonctions. La detection heuristique consisterait ensuite a rechercher au sein de ce graphe des motifs connus et correspondant a des operations generalement effectuees par les virus, comme par exemple envoyer des emails en rafale. L'interet d'une telle methode serait de permettre la detection de malware polymorphe ou metamorphe, les "motifs caracteristiques" du graphe etant supposes invariants vis a vis des "mutations" subies par le binaire.
Graphiquement, certaines des informations contenues dans ce graphe peuvent donc etre repesentees comme ceci (j'espere que Pierre Vandevenne me corrigera si je me trompe) : http://www.datarescue.com/idabase/pix/pc2.gif http://www.datarescue.com/idabase/pix/pc10.gif
Les auteurs presentent le principe de la methode, qui se decompose en 5 phases successives et illustrent la vulnerabilite' de chacune de ces etapes en presentant differentes methodes d'attaque. Ils concluent que si cette methode permet effectivement d'obtenir des resultats satisfaisants pour des programmes standards, compiles a partir d'un code source ecrit en langage de haut niveau, il est relativement aise' de la circonvenir si on le veut vraiment.
J'espere que ce "pitch" aura donne' a ceux qui ne l'ont pas encore fait envie de lire l'article.
Cela dit, l'analyse parait pertinente et est accessible au beotien que je suis, mais je ne peux m'empecher de me poser la question de l'utilite' d'une telle innovation, ou plutot : cette utilite' est bien celle que les auteurs de l'article lui atribuent ? Quelle est la frequence d'apparition de malwares poly/metamorphiques necessitant une mise a jour des moteurs d'anti-virus ? Cette frequence est-elle si importante qu'on ait a ce point besoin d'implanter une nouvelle methode au sein des antivirus ? L'objectif princpal d'une telle technique ne serait-il pas plutot de permettre la detection heuristique des programmes ecrits en langage de haut niveau, la detection de virus poly/meta-morphe n'etant qu'un bonus appreciable ? La quasi-absence de detection heuristique de la grande majorite' malwares modernes n'est-elle pas un des grands manques des anti-virus modernes ?
Meme si on ne peut exclure l'apparition d'un nouvel "Hybris-like", au vu de la production actuelle de malware (quantitativement et qualitativement), il me semble qu'il faut avant tout se premunir contre les "Swen-like".
-- Tweakie
Misterjack
Salut !
Article très technique sur de nouvelles méthodes de détection de virus: http://www.virusbtn.com/magazine/archives/200309/formal.xml Je n'ai pas encore tout lu mais ça a l'air d'être très intéressant.
Très bon lien ! Merci.
Amicalement, -- Mister Jack (MJ) "Linux c'est pas pour les manchots !"
Adresse invalide pour quelques jours <<<
Salut !
Article très technique sur de nouvelles méthodes de détection de virus:
http://www.virusbtn.com/magazine/archives/200309/formal.xml
Je n'ai pas encore tout lu mais ça a l'air d'être très intéressant.
Très bon lien ! Merci.
Amicalement,
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"
Article très technique sur de nouvelles méthodes de détection de virus: http://www.virusbtn.com/magazine/archives/200309/formal.xml Je n'ai pas encore tout lu mais ça a l'air d'être très intéressant.
Très bon lien ! Merci.
Amicalement, -- Mister Jack (MJ) "Linux c'est pas pour les manchots !"
Adresse invalide pour quelques jours <<<
Frederic Bonroy
Je ne suis pas certain d'avoir tout suivi, mais si j'ai bien compris il s'agit d'une methode alternative (ou complementaire) a l'emulation qui consiste a reconstituer la structure d'un programme a partir de sa forme binaire et a transcrire celle-ci sous la forme d'un graphe dont chaque noeud represente une "fonction" et a identifier quelles sont les donnees accedees/modifiees par chacune de ces fonctions.
Ce qui m'interpelle, c'est la comparaison avec ce que font les compilateurs. Théoriquement ça semble évident, mais en pratique? Le compilateur a à sa disposition le code dans un format explicite (un code intermédiaire entre langage de programmation et code assembleur), tandis qu'un antivirus a devant soi le code binaire, ce qui rend sa tâche plus difficile que celle du compilateur.
La detection heuristique consisterait ensuite a rechercher au sein de ce graphe des motifs connus et correspondant a des operations generalement effectuees par les virus, comme par exemple envoyer des emails en rafale. L'interet d'une telle methode serait de permettre la detection de malware polymorphe ou metamorphe, les "motifs caracteristiques" du graphe etant supposes invariants vis a vis des "mutations" subies par le binaire.
C'est aussi ce que j'ai compris. Je trouve que c'est un peu ce que j'avais décrit ici, du moins en surface: http://groups.google.fr/groups?selm=bgk041%24pg507%241%40ID-75150.news.uni-berlin.de
Cela dit, l'analyse parait pertinente et est accessible au beotien que je suis, mais je ne peux m'empecher de me poser la question de l'utilite' d'une telle innovation, ou plutot : cette utilite' est bien celle que les auteurs de l'article lui atribuent ? Quelle est la frequence d'apparition de malwares poly/metamorphiques necessitant une mise a jour des moteurs d'anti-virus ?
Il n'y a pas beaucoup de tels virus en liberté, mais il ne faut pas négliger les autres. Je pense à Prizzy et Crypto qui posent de vrais problèmes à F-Prot en matière de vitesse, cette technique pourrait aider à accélerer le processus.
Meme si on ne peut exclure l'apparition d'un nouvel "Hybris-like", au vu de la production actuelle de malware (quantitativement et qualitativement), il me semble qu'il faut avant tout se premunir contre les "Swen-like".
Oui, mais là c'est avant tout aux utilisateurs de faire attention.
Je ne suis pas certain d'avoir tout suivi, mais si j'ai bien
compris il s'agit d'une methode alternative (ou complementaire) a
l'emulation qui consiste a reconstituer la structure d'un programme
a partir de sa forme binaire et a transcrire celle-ci sous la forme
d'un graphe dont chaque noeud represente une "fonction" et a identifier
quelles sont les donnees accedees/modifiees par chacune de ces fonctions.
Ce qui m'interpelle, c'est la comparaison avec ce que font les
compilateurs. Théoriquement ça semble évident, mais en pratique? Le
compilateur a à sa disposition le code dans un format explicite (un code
intermédiaire entre langage de programmation et code assembleur), tandis
qu'un antivirus a devant soi le code binaire, ce qui rend sa tâche plus
difficile que celle du compilateur.
La detection heuristique consisterait ensuite a rechercher au sein de
ce graphe des motifs connus et correspondant a des operations
generalement effectuees par les virus, comme par exemple envoyer des
emails en rafale. L'interet d'une telle methode serait de permettre
la detection de malware polymorphe ou metamorphe, les "motifs
caracteristiques" du graphe etant supposes invariants vis a vis des
"mutations" subies par le binaire.
C'est aussi ce que j'ai compris. Je trouve que c'est un peu ce que
j'avais décrit ici, du moins en surface:
http://groups.google.fr/groups?selm=bgk041%24pg507%241%40ID-75150.news.uni-berlin.de
Cela dit, l'analyse parait pertinente et est accessible au beotien que
je suis, mais je ne peux m'empecher de me poser la question de l'utilite'
d'une telle innovation, ou plutot : cette utilite' est bien celle que les
auteurs de l'article lui atribuent ? Quelle est la frequence d'apparition
de malwares poly/metamorphiques necessitant une mise a jour des moteurs
d'anti-virus ?
Il n'y a pas beaucoup de tels virus en liberté, mais il ne faut pas
négliger les autres. Je pense à Prizzy et Crypto qui posent de vrais
problèmes à F-Prot en matière de vitesse, cette technique pourrait aider
à accélerer le processus.
Meme si on ne peut exclure l'apparition d'un nouvel "Hybris-like",
au vu de la production actuelle de malware (quantitativement et
qualitativement), il me semble qu'il faut avant tout se premunir
contre les "Swen-like".
Oui, mais là c'est avant tout aux utilisateurs de faire attention.
Je ne suis pas certain d'avoir tout suivi, mais si j'ai bien compris il s'agit d'une methode alternative (ou complementaire) a l'emulation qui consiste a reconstituer la structure d'un programme a partir de sa forme binaire et a transcrire celle-ci sous la forme d'un graphe dont chaque noeud represente une "fonction" et a identifier quelles sont les donnees accedees/modifiees par chacune de ces fonctions.
Ce qui m'interpelle, c'est la comparaison avec ce que font les compilateurs. Théoriquement ça semble évident, mais en pratique? Le compilateur a à sa disposition le code dans un format explicite (un code intermédiaire entre langage de programmation et code assembleur), tandis qu'un antivirus a devant soi le code binaire, ce qui rend sa tâche plus difficile que celle du compilateur.
La detection heuristique consisterait ensuite a rechercher au sein de ce graphe des motifs connus et correspondant a des operations generalement effectuees par les virus, comme par exemple envoyer des emails en rafale. L'interet d'une telle methode serait de permettre la detection de malware polymorphe ou metamorphe, les "motifs caracteristiques" du graphe etant supposes invariants vis a vis des "mutations" subies par le binaire.
C'est aussi ce que j'ai compris. Je trouve que c'est un peu ce que j'avais décrit ici, du moins en surface: http://groups.google.fr/groups?selm=bgk041%24pg507%241%40ID-75150.news.uni-berlin.de
Cela dit, l'analyse parait pertinente et est accessible au beotien que je suis, mais je ne peux m'empecher de me poser la question de l'utilite' d'une telle innovation, ou plutot : cette utilite' est bien celle que les auteurs de l'article lui atribuent ? Quelle est la frequence d'apparition de malwares poly/metamorphiques necessitant une mise a jour des moteurs d'anti-virus ?
Il n'y a pas beaucoup de tels virus en liberté, mais il ne faut pas négliger les autres. Je pense à Prizzy et Crypto qui posent de vrais problèmes à F-Prot en matière de vitesse, cette technique pourrait aider à accélerer le processus.
Meme si on ne peut exclure l'apparition d'un nouvel "Hybris-like", au vu de la production actuelle de malware (quantitativement et qualitativement), il me semble qu'il faut avant tout se premunir contre les "Swen-like".
Oui, mais là c'est avant tout aux utilisateurs de faire attention.
Tweakie
On Mon, 24 Nov 2003, Frederic Bonroy wrote:
Ce qui m'interpelle, c'est la comparaison avec ce que font les compilateurs. Théoriquement ça semble évident,
..et encore, l'evidence ne me saute pas aux yeux.
mais en pratique? Le compilateur a à sa disposition le code dans un format explicite (un cod e intermédiaire entre langage de programmation et code assembleur), tandi s qu'un antivirus a devant soi le code binaire, ce qui rend sa tâche plus difficile que celle du compilateur.
AMHA, c'est pour ca que les premieres etapes du processus, telles que les decrivent les auteurs, consistent a desassembler le binaire et a obtenir un code plus "lisible". Je veux bien croire que c'est plus simple si ce code est produit par un compilateur qui va a-priori avoir tendance a creer des sequences binaires similaires a partir de sequences d'instructions de HLL elles memes similaires.
C'est aussi ce que j'ai compris. Je trouve que c'est un peu ce que j'avais décrit ici, du moins en surface: http://groups.google.fr/groups?selm=bgk041%24pg507%241%40ID-75150.news. uni-berlin.de
Oui, le principe est bien le meme. Doit-on conclure que ce type de techniques n'est pas encore utilise' a l'heure actuelle dans les AVs ?
-- Tweakie
On Mon, 24 Nov 2003, Frederic Bonroy wrote:
Ce qui m'interpelle, c'est la comparaison avec ce que font les
compilateurs. Théoriquement ça semble évident,
..et encore, l'evidence ne me saute pas aux yeux.
mais en pratique? Le
compilateur a à sa disposition le code dans un format explicite (un cod e
intermédiaire entre langage de programmation et code assembleur), tandi s
qu'un antivirus a devant soi le code binaire, ce qui rend sa tâche plus
difficile que celle du compilateur.
AMHA, c'est pour ca que les premieres etapes du processus, telles que
les decrivent les auteurs, consistent a desassembler le binaire et
a obtenir un code plus "lisible". Je veux bien croire que c'est plus
simple si ce code est produit par un compilateur qui va a-priori avoir
tendance a creer des sequences binaires similaires a partir de sequences
d'instructions de HLL elles memes similaires.
C'est aussi ce que j'ai compris. Je trouve que c'est un peu ce que
j'avais décrit ici, du moins en surface:
http://groups.google.fr/groups?selm=bgk041%24pg507%241%40ID-75150.news. uni-berlin.de
Oui, le principe est bien le meme. Doit-on conclure que ce type de
techniques n'est pas encore utilise' a l'heure actuelle dans les AVs ?
Ce qui m'interpelle, c'est la comparaison avec ce que font les compilateurs. Théoriquement ça semble évident,
..et encore, l'evidence ne me saute pas aux yeux.
mais en pratique? Le compilateur a à sa disposition le code dans un format explicite (un cod e intermédiaire entre langage de programmation et code assembleur), tandi s qu'un antivirus a devant soi le code binaire, ce qui rend sa tâche plus difficile que celle du compilateur.
AMHA, c'est pour ca que les premieres etapes du processus, telles que les decrivent les auteurs, consistent a desassembler le binaire et a obtenir un code plus "lisible". Je veux bien croire que c'est plus simple si ce code est produit par un compilateur qui va a-priori avoir tendance a creer des sequences binaires similaires a partir de sequences d'instructions de HLL elles memes similaires.
C'est aussi ce que j'ai compris. Je trouve que c'est un peu ce que j'avais décrit ici, du moins en surface: http://groups.google.fr/groups?selm=bgk041%24pg507%241%40ID-75150.news. uni-berlin.de
Oui, le principe est bien le meme. Doit-on conclure que ce type de techniques n'est pas encore utilise' a l'heure actuelle dans les AVs ?
-- Tweakie
Frederic Bonroy
Ce qui m'interpelle, c'est la comparaison avec ce que font les compilateurs. Théoriquement ça semble évident,
..et encore, l'evidence ne me saute pas aux yeux.
Moi si puisque les compilateurs de nos jours font des efforts d'optimisation considérables, ce qui nécessite parfois de deviner (si je puis dire, ce n'est bien sûr pas tout à fait de la devinette) ce que le programmeur voulait faire. Et c'est ce qu'on recherche aussi à faire faire à un antivirus.
AMHA, c'est pour ca que les premieres etapes du processus, telles que les decrivent les auteurs, consistent a desassembler le binaire et a obtenir un code plus "lisible". Je veux bien croire que c'est plus simple si ce code est produit par un compilateur qui va a-priori avoir tendance a creer des sequences binaires similaires a partir de sequences d'instructions de HLL elles memes similaires.
Je ne vois pas en quoi le désassemblage produirait du code plus "lisible"...
Oui, le principe est bien le meme. Doit-on conclure que ce type de techniques n'est pas encore utilise' a l'heure actuelle dans les AVs ?
Je ne pense pas.
Ce qui m'interpelle, c'est la comparaison avec ce que font les
compilateurs. Théoriquement ça semble évident,
..et encore, l'evidence ne me saute pas aux yeux.
Moi si puisque les compilateurs de nos jours font des efforts
d'optimisation considérables, ce qui nécessite parfois de deviner (si je
puis dire, ce n'est bien sûr pas tout à fait de la devinette) ce que le
programmeur voulait faire. Et c'est ce qu'on recherche aussi à faire
faire à un antivirus.
AMHA, c'est pour ca que les premieres etapes du processus, telles que
les decrivent les auteurs, consistent a desassembler le binaire et
a obtenir un code plus "lisible". Je veux bien croire que c'est plus
simple si ce code est produit par un compilateur qui va a-priori avoir
tendance a creer des sequences binaires similaires a partir de sequences
d'instructions de HLL elles memes similaires.
Je ne vois pas en quoi le désassemblage produirait du code plus "lisible"...
Oui, le principe est bien le meme. Doit-on conclure que ce type de
techniques n'est pas encore utilise' a l'heure actuelle dans les AVs ?
Ce qui m'interpelle, c'est la comparaison avec ce que font les compilateurs. Théoriquement ça semble évident,
..et encore, l'evidence ne me saute pas aux yeux.
Moi si puisque les compilateurs de nos jours font des efforts d'optimisation considérables, ce qui nécessite parfois de deviner (si je puis dire, ce n'est bien sûr pas tout à fait de la devinette) ce que le programmeur voulait faire. Et c'est ce qu'on recherche aussi à faire faire à un antivirus.
AMHA, c'est pour ca que les premieres etapes du processus, telles que les decrivent les auteurs, consistent a desassembler le binaire et a obtenir un code plus "lisible". Je veux bien croire que c'est plus simple si ce code est produit par un compilateur qui va a-priori avoir tendance a creer des sequences binaires similaires a partir de sequences d'instructions de HLL elles memes similaires.
Je ne vois pas en quoi le désassemblage produirait du code plus "lisible"...
Oui, le principe est bien le meme. Doit-on conclure que ce type de techniques n'est pas encore utilise' a l'heure actuelle dans les AVs ?