Annonce

L'art de dissimuler des informations secrètes avec la stéganographie

Rédigé par Antoine, le Lundi 15 Janvier 2024

Dans le monde numérique d'aujourd'hui, la sécurité de l'information est une préoccupation majeure et des méthodes innovantes sont développées pour protéger la confidentialité des données sensibles.


L'une des méthodes fascinantes est la stéganographie, l'art ingénieux de cacher des documents secrets dans d'autres médias, tels que des images, des fichiers audio ou même du texte. Dans cet article, nous allons explorer la magie de la stéganographie et son utilisation pour cacher des documents "secrets".


Mais c'est quoi ça, la stéganographie ??

La stéganographie est une technique particulière que permets de cacher, dissimuler différents données (par exemple un message) dans un autre fichier, comme un graphique, un fichier audio ou un autre fichier texte. La stéganographie présente un avantage par rapport à la cryptographie : le message secret n'attire pas spécialement l'attention. Personne ne peut imaginer qu'une image contient en réalité un message secret en consultant le fichier au format électronique ou papier.


La stéganographie diffère de la cryptographie traditionnelle... Elle ne cherche pas à chiffrer les données pour les rendre inintelligibles mais au lieu de cela, il se concentre sur la dissimulation des données des fichiers apparemment "inoffensifs". Cette approche offre un avantage majeur : même si un observateur malveillant intercepte le fichier porteur, il ignore l'existence des données cachées.


Plusieurs éléments interviennent dans la dissimulation des données. Il y a tout d'abord les données intégrées, c'est-à-dire le message secret. Le texte, l'image ou le son de couverture dissimule les données intégrées en générant le texte, l'image ou le son stéganographique. C'est une clé de stéganographie qui contrôle le processus de dissimulation.



Techniques de stéganographie

La méthode du bit le moins significatif, le bit de point faible (LSB) est utilisée pour incorporer des données dans l'image de superposition. Cette méthode utilise des bits pour chaque pixel de l'image. Un pixel est l'unité de base de la couleur programmable en infographie.


La couleur exacte d'un pixel est une combinaison de trois couleurs : rouge, vert et bleu (RVB). Trois octets de données définissent la couleur d'un pixel (un octet pour chaque couleur). Huit bits constituent un octet. Un système de couleurs 24 bits utilise les trois octets. La méthode LSB utilise un bit chacune pour les composants rouge, vert et bleu. Chaque pixel peut stocker trois bits.




Le schéma ci-dessus présente trois pixels d'une image en couleur de 24 bits. L'une des lettres du message secret est le 'T'. L'insertion de ce dernier va modifier uniquement deux bits de la couleur (indiqués en vert chaque début d'octet sur le schéma). L'œil humain ne peut pas identifier les modifications apportées aux bits de poids faible puisque la modification est tellement faible par la modification d'un seul pixel. Cela se traduit donc par un caractère caché.


En moyenne, il suffit de modifier à peine 50 % des bits d'une image pour dissimuler efficacement un message secret.


Utiliser la stéganographie

L'objectif est de maintenant réaliser votre fichier "secret" en utilisant la stéganographie pour dissimuler un document dans un fichier JPEG. Avec l'outil Steghide, nous serons capable de construire ce type de fichier.


Steghide est un programme de stéganographie open source qui permet de dissimuler des données dans divers types de fichiers tels que des fichiers audio ou image. Vous allez apprendre à cacher un fichier de données dans un fichier image.



Création du fichier secret et de l'image

Notre objectif sera de créer un document simple Libre Office, Word... puis de l'incorporer, de le cacher dans l'image JPEG.

Nous allons ainsi créer un simple fichier Word qui contiendra notre message :




Vous pouvez prendre une image au format JPEG afin de cacher votre document ou bien de la créer vous même (pour du test, avec Paint. Oui je sais..., j'ai énormément de talent en dessin 😜) :




Les points importants pour l'image est de respecter le format JPEG et que la taille de l'image soit égale ou supérieur à la taille du document :




Cacher le document dans l'image avec Steghide

Sur une machine basé sur Linux, copiez ces deux fichiers dont le document et l'image, par exemple dans le dossier ~/Documents :




À l'invite de commandes, saisissez la commande suivante :

┌──(ipan㉿kali)-[~/Documents]
└─$ steghide embed -cf secret-img.jpg -ef Secret_File.docx


Cette commande incorpore le document Secret_File.docx dans le fichier jpeg porteur secret-img.jpg.

  • embed : indique l'intention d'incorporer des données secrètes dans un support (dans ce cas, une image).
  • -cf secret-img.jpg : spécifie le fichier de couverture, c'est-à-dire l'image dans laquelle vous souhaitez cacher les données. Dans cet exemple, le fichier de couverture est secret-img.jpg.
  • -ef Secret_File.docx : indique le fichier à dissimuler, notre fichier Word secret. Dans cet exemple, le fichier secret est Secret_File.docx.


Lorsque vous y êtes invité, saisissez un mot de passe de protection de l'image (ex : 123).


Le fichier Word a bien été incorporé. Le document original n'as absolument pas changé, mais en revanche l'image quant à elle, a été modifiée et le document Word y est injecté et donc la taille de l'image a augmentée :




On peut vérifier les informations de l'image avec l'option info :

┌──(ipan㉿kali)-[~/Documents]
└─$ steghide info secret-img.jpg


À l'invite, saisissez 'y' ou 'o' (pas la touche entrée qui quitte sinon le programme). Spécifiez le mot de passe de "chiffrement" de l'image (ici : mon superbe mot de passe "123").

Les résultats affichés ci-dessous montrent que le fichier Secret_File.docx est chiffré et compressé.



Extraire le fichier caché

Si jamais vous souhaitez consulter le fichier caché dans l'image, l'option extract permets de faire cela :

┌──(ipan㉿kali)-[~/Documents]
└─$ steghide extract -sf secret-img.jpg


Saisissez le mot de passe, puis appuyez sur Entrée. Lorsque vous y êtes invité, saisissez y pour écraser le fichier Word avec le nouveau fichier extrait (si jamais vous êtes toujours dans le répertoire utilisateur ~/Documents).




Et nous pouvons constater que le fichier est affiché, tel quel !




Phase de détection

L'utilisation de la stéganographie pour cacher des documents secrets peut avoir de multiples applications pratiques. Dans des environnements où la sécurité est primordiale, tels que les agences gouvernementales, les entreprises ou les individus soucieux de protéger leur vie privée, cette technique peut jouer un rôle essentiel. Les informations sensibles, telles que des plans stratégiques, des données confidentielles ou des communications sensibles, peuvent être dissimulées efficacement, réduisant ainsi le risque de détection ou d'accès non autorisé.


Cependant, il est important de noter que la stéganographie n'est pas un bouclier invincible. Les avancées technologiques ont également permis le développement de techniques sophistiquées de détection stéganographique, visant à identifier la présence potentielle de données dissimulées. Par conséquent, la stéganographie doit être utilisée avec prudence et en tenant compte des limites de sécurité associées.


La "stéganalyse" a pour vocation de détecter si un élément est susceptible de contenir des informations cachées et de révéler ensuite ces informations. Les motifs de l'image stéganographique paraissent suspects. Un disque peut, par exemple, contenir des zones inutilisées où sont dissimulées des informations. Les utilitaires d'analyse de disque peuvent signaler les informations cachées dans les clusters inutilisés des supports de stockage. Les filtres peuvent capturer des paquets de données dont les en-têtes contiennent des informations cachées. Ces deux méthodes utilisent des signatures de stéganographie.


En comparant l'image d'origine à l'image stéganographique, un analyste peut relever visuellement des schémas répétitifs.


En complément, avec l'outil stegcracker, il est possible en effet de "bruteforcer" le mot de passe du fichier avec des wordlists:

┌──(ipan㉿kali)-[~/Documents]
└─$ stegcracker secret-img.jpg /usr/share/wordlists/john.lst




Vu de la complexité inouïe du mot de passe de l'image (qui est "123" 😜), le fichier a été "bruteforcé" en à peine quelques secondes.


D'autres pistes, également, pour détecter ces types de fichiers tel que stegdetect permet de vérifier l'utilisation d'outils stéganographiques tel que jphide, outguess, steghide mais encore jsteg 😉



Références :