web-dev-qa-db-fra.com

Comment un virus peut-il exister dans une image?

J'ai récemment regardé cette vidéo d'un expert finlandais en sécurité Internet. Quelque part vers la onzième minute, il parle d'un virus qui est caché dans une image et s'exécute lorsque l'image est sur le point d'être affichée.

Je me demande comment font-ils techniquement une telle chose, je veux dire comment le virus est exécuté , quand l'image doit être affichée et comment se fait-il que l'image ne soit pas compromise d'une manière ou d'une autre. Je pensais que l'ordinateur regarde d'abord l'extension, puis l'ouvre avec le programme approprié et laisse le programme fonctionner lui-même (et je ne m'attends pas à ce que la visionneuse d'image régulière puisse exécuter un virus en elle-même). Évidemment, cela ne fonctionne pas comme ça, mais personne à qui j'ai demandé ne pouvait m'aider.

Alors, quelqu'un sait-il comment faire cela, le principe? Merci beaucoup.

45
JoeSlotsky

Vous avez raison de dire que votre système d'exploitation choisira un programme et lui demandera d'ouvrir l'image. L'OS ne demandera pas au programme de - exécuter l'image - ce serait un non-sens.

Cependant, les images sont des formats complexes et contiennent souvent des métadonnées et d'autres parties qui ne sont pas directement affichées - vous pouvez y cacher des éléments sans affecter l'image à l'écran. Il peut donc y avoir des données hostiles cachées dans le fichier image.

De plus, le programme peut avoir des bogues, en particulier débordements de tampon . En bref, un virus peut exploiter cela en mettant des données trop volumineuses dans les sections de métadonnées - plus grandes que le programme qui décode l'image attend. Les tampons internes débordent et avec suffisamment d'habileté, un auteur de virus est capable de mettre le code exécutable au bon endroit en mémoire afin que le programme qui décode l'image finisse à exécuter le code. De cette façon, un fichier innocent et "mort" comme une image peut héberger un exploit.

43
Martin Geisler

Il ne doit pas être affiché, il doit être lu.

Le système d'exploitation peut avoir un fil de génération de vignettes qui analysera toutes les images qu'il trouve. Un débordement de tampon dans ce code permettra l'exécution de code sans intervention de l'utilisateur.

Cela vaut pour tout fichier qui a n'importe quelle forme de fonction de lecture automatique, pour extraire les propriétés d'un mp3, indexer un PDF, etc.

3
ixe013

Un virus peut stocker des informations dans une image et peut exploiter une vulnérabilité dans un programme de visualisation d'images. Il ne peut pas "infecter" une image, autant qu'il altère malicieusement une image de telle sorte que le programme susceptible de l'ouvrir sera subverti et déclenchera un exploit dans ce processus.

Si un virus place des données malformées dans une image pour exploiter le programme X, et que l'image est ouverte dans le programme Y, il est probable que l'image ne sera pas rendue parce qu'elle est trop mal formée, ou sera rendue comme une image innocente ou aléatoire dans ce programme.

Le défaut comme avec toutes ces choses n'est pas dans le format d'image, mais plutôt dans la mise en œuvre du décodeur d'image.

2
SecurityMatt