Les merveilles (et horreurs) de la Stéganographie numérique

Stéganographie. C’est un mot nouveau.

Et bien peut-être pas si nouveau que cela. Il a été utilisé pour la première fois en 1499 par le cryptographe allemand Johannes Trithemus, ce mot vient en fait du grec ancien, en associant les mots steganos (caché, protégé, couvert) et graphein (écrire).

Aujourd’hui, la stéganographie est définie comme “la pratique de cacher des messages ou des informations dans d’autres textes ou données non secrètes.”

Avant les ordinateurs – et en fait avant que le mot soit même inventé – la stéganographie physique était employée par les Grecs de l’antiquité pour envoyer des messages secrets. Dès 440 av. J.C., les messagers cachaient des informations importantes écrites sur des tablettes en bois en les recouvrant d’une couche de cire d’abeille qui contenait un message différent et non secret. À réception, la cire était retirée et le vrai message – peut-être une manœuvre militaire – apparaissait. Dans d’autres cas, les messagers avaient le message secret tatoué sur leur crâne. Ils attendaient alors que leurs cheveux repoussent pour cacher les informations, et transmettaient ainsi le message visuellement. À leur arrivée, leur tête était rasée.

Dans ces deux exemples provenant de l’antiquité, et en fait dans tous les cas de la stéganographie, le subterfuge repose sur le fait de cacher quelque chose de secret dans quelque chose qui ne l’est pas. Ainsi, la stéganographie se démarque de la cryptographie – un autre mot que vous avez dû entendre lancé sur la scène des programmes malveillants (et qui a aussi des origines grecques). Si la cryptographie cache des informations secrètes, elle ne le fait pas de façon évidente ; car en fait lorsque vous les voyez , vous savez que quelque chose se passe. La stéganographie, au contraire, cache intentionnellement un secret, pour ne pas éveiller de soupçons.

La stéganographie numérique en bref

Aujourd’hui, la stéganographie numérique a à peu près la même approche que les Grecs de l’antiquité : des éléments secrets sont cachés par des choses qui ne sont pas secrètes. Par exemple, regardez le message suivant :

Emsisoft Rocks

Si nous voulions transmettre ce message en le cryptant nous écririons alors :

Dlrhrnes Qnbjr

Caché par un simple algorithme (chaque lettre devient la lettre qui la précède dans l’alphabet) nous pouvons maintenant diffuser ce message à des tiers, et seulement à ceux qui connaissent la façon de le déchiffrer pourraient le lire.

Un changement de lettre est cependant chose facile. Pour cacher un message d’une façon plus satisfaisante nous pourrions créer un algorithme plus complexe, en ajoutant une autre étape. Par exemple, après avoir changé la lettre par la lettre qui la précède, nous pourrions alors convertir chaque lettre par son équivalent numérique, tel que A=01, B=02, C=03, etc. Ce nouvel algorithme transformerait Emsisoft Rocks en deux nombres :

0412180818140519 1714021018

Nous avons maintenant un cryptage. Sous cette forme numérique, à deux étapes, aucun humain normalement constitué ne pourrait déchiffrer notre message secret en un coup d’œil. Ce qui est intéressant, sauf qu’un problème subsiste encore : notre message secret est maintenant crypté de façon bien trop évidente ! Toute personne déjà soupçonneuse à notre égard et qui intercepte notre message saura immédiatement qu’il est codé et qu’il cache un secret. La personne en question, en interceptant ce message, fera une enquête et déchiffrera le code, et si on souhaite transmettre un élément secret, c’est raté.

Et donc quoi faire maintenant ?

Et si nous cachions notre message dans quelque chose qui ne ressemblerait en rien à un message. Et si on écrivait Emsisoft Rocks comme ceci :

montagne-avant-648

Vous êtes un peu perdu ? C’est parfait. C’est bien de cela dont il s’agit.

Comment la Stéganographie numérique cache des programmes malveillants

Repensez au messager grec qui cachait un message de guerre sur son crâne. Le message est là, sous ses cheveux, et pourtant personne ne soupçonne qu’il l’a sur lui. Revenons maintenant à la montagne. En y jetant un coup d’oeil, c’est juste une montagne, et rien d’autre. C’est seulement lorsque nous commençons à enlever une à une des couches que le secret est révélé.

Les fichiers média numériques d’aujourd’hui, comme ceux de la photo de la montagne ci-dessus, constituent en fait un ensemble de données extrêmement complexes. Vous voyez une montagne, mais votre ordinateur visualise quelque chose de différent.

hex-pixel-before-boxed

mountain-before-w-arrow

Vous pouvez voir ci-dessus le code machine hexadécimal qui se trouve derrière un des pixels de cette photo de montagne. Ceux qui connaissant la conception graphique pourraient autrement reconnaître ce petit élément comme R-111 G-140 B-172, ou héx # 6f8cac.

Maintenant, voyons ce qui se passe si nous transformons très légèrement ce pixel, en R-112 G-141 B-173, ou héx # 708dad.

mountain-after-648

Vous pouvez faire la différence ?

Probablement pas – mais votre ordinateur si.

hex-pixel-after-boxed

C’est l’essence même de la stéganographie numérique.

Dans l’exemple ci-dessus, la modification non malveillante d’un seul pixel de l’image fait apparaître ce qui semble être la même image ; cependant, comme vous pouvez le voir, le code machine responsable de la production de l’image est différent.

Les auteurs de programmes malveillants peuvent employer cette technique pour cacher un code malveillant dans un fichier multimédia apparemment normal telle qu’une image, sans éveiller aucun soupçon.

Par exemple, au lieu d’un seul pixel, un auteur de programme malveillant pourrait utiliser notre photo de montagne et légèrement modifier 100 pixels. Il pourrait alors envoyer à sa victime un injecteur – une sorte de pièce jointe d’e-mail ressemblant à un banal fichier. L’injecteur pourrait inclure un programme conçu pour installer un programme malveillant provenant d’une adresse internet précise. L’injecteur pourrait aussi inclure une photo de montagne apparemment inoffensive. Maintenant, quand les injecteurs installent des programmes malveillants provenant d’une adresse internet spécifique, cette adresse est en général codée de manière irréversible dans le dessin de l’injecteur ; Ce qui les rend plus facilement détectables par les programmes anti malveillants. Ainsi, pour éviter toute détection, l’injecteur de notre exemple fait référence à la photo de la montagne et ses 100 pixels modifiés. Cette allusion s’effectue grâce à un algorithme – qui permet à l’injecteur de localiser les pixels modifiés, lire le code machine, pour convertir ensuite ce code en une adresse URL, en utilisant un autre algorithme. Une fois l’adresse URL décodée, une connexion s’établit, des fichiers sont téléchargés, et voilà – vous avez votre programme malveillant.

Qu’est ce que la Stéganographie numérique signifie pour moi ?

Aussi alambiquée qu’elle puisse paraître, la stéganographie numérique dans des applications pour programmes malveillants n’est pas une simple vue de l’esprit. En effet, la dissimulation d’URL décrite plus haut est exactement ce qui est arrivé avec Lurk. Tout d’abord analysé chez Malware Don’et Need Coffee puis par Dell SecureWorks, Lurk utilise la stéganographie numérique pour cacher son adresse de téléchargement d’URL et pour détourner ensuite des ordinateurs infectés avec des fraudes de clic.

Dans des scénarios beaucoup plus simples (et aussi pour Lurk en partie), le code malveillant peut simplement être joint à un grand fichier multimédia, en entraînant un petit effet statique, ou “bruit visuel.”

un bruit

Ce bruit peut être en fait un code qui fait exécuter un morceau de programme malveillant (affiché juste sous forme de carte visuelle) ! Dans ce cas, encore une fois, c’est le code machine au travail en arrière-plan qui est responsable de la malveillance, alors que vous ne voyez guère plus qu’un “bug” à la fin de la vidéo ou au coin de l’image.

Mais alors…En quoi cela vous concerne-t-il ?

Outre le fait d’être quelque part fascinante (c’est du moins notre avis) la stéganographie numérique signifie que même les images que l’on trouve sur le Web ne sont pas au-dessus de tout soupçon. En fait, l’art de la stéganographie – et pour beaucoup le fait de créer des programmes malveillants – est de cacher des choses là où personne ne pense à les chercher.

Pour les utilisateurs, il faut rester prudent. Laisser entrer un nouveau fichier dans votre ordinateur équivaut à faire entrer un inconnu chez vous. La stéganographie numérique nous montre que c’est lorsque ces étrangers semblent inoffensifs – ou même amicaux – que c’est souvent l’inverse qui se produit. Ce qui ne veut pas dire que vous devez arrêter de regarder des photos de chats, évidemment. Cela signifie simplement que vous avez besoin d’un système pour bloquer les intrus. Ceux qui utilisent notre logiciel savent qu’il est conçu pour ne faire que cela.

Si un programme tente de vous connecter à un site internet malveillant, Emsisoft l’arrête avec Surf Protection – même si le ce site est masqué par des techniques de stéganographie. Si un fichier contient un code malveillant, Emsisoft bloque l’exécution de ce fichier avec File Guard – même si le code est écrit en bitmap statique. Si un programme malveillant tente d’exploiter la faiblesse de la technologie numérique, telle que la vulnérabilité d’un lecteur média comme Adobe Flash, Emsisoft sonne l’alarme avec Behavior Blocker – même si la vulnérabilité n’était pas connue auparavant de la communauté anti programme malveillant en général. Et si les utilisateurs veulent en savoir un peu plus sur la façon dont les auteurs de ces programmes malveillants, fous et illégitimes, cherchent à prendre l’argent des autres – au lieu d’employer leur intelligence à quelque chose d’utile – Emsisoft offre une assistance sur un forum et un blog – même si le sujet ne semble que porter sur un groupe de Grecs.

Passez une excellente journée (sans programme malveillant (caché de façon stéganographique)) !

 

 

 

 

 

Senan Conrad

What to read next