Stéganographie : cacher et détecter des données (2026)

Cybersecurity Basics
16 min de lecture
Stéganographie : cacher et détecter des données (2026)
Sur cette page
  1. Qu'est-ce que la stéganographie ?
  2. Comment les données sont réellement cachées dans un fichier
    1. 1. Les champs de métadonnées
    2. 2. Les données ajoutées
    3. 3. L'encodage sur le bit de poids faible
    4. 4. L'encodage dans le texte et les espaces
  3. La stéganographie en cybersécurité : comment les attaquants l'utilisent
  4. Comment cacher des données avec Steghide
  5. Comment détecter la stéganographie
  6. Stéganographie textuelle et caractères de largeur nulle
  7. Choisir le bon outil pour le fichier que vous avez sous les yeux
  8. Questions fréquentes
  9. Considérations légales et éthiques
  10. Vos prochaines étapes avec la stéganographie

La stéganographie consiste à dissimuler un message dans quelque chose qui ne ressemble pas à un message. Le chiffrement rend les données illisibles ; la stéganographie les rend invisibles, ce qui est un problème différent et souvent plus utile pour un attaquant. Ce guide couvre les quatre façons dont les données sont réellement cachées dans les fichiers, la manière dont des attaquants ont exploité ces techniques dans de vraies campagnes, et l'enchaînement de six commandes qui permet de retrouver les charges utiles dissimulées. Suivez-le en parallèle du cours Stéganographie de HackerDNA, qui reprend les mêmes techniques avec des fichiers que vous décortiquez vous-même.

Si vous avez déjà résolu un défi capture the flag, vous avez sans doute croisé la stéganographie sous la bannière forensics. Notre guide des catégories CTF explique où elle se situe par rapport à la crypto et au reverse. La suite entre dans le détail du fonctionnement des fichiers.

En bref : la stéganographie cache des données dans un fichier porteur pour que personne ne soupçonne qu'il y a quelque chose à chercher. Les quatre techniques qui couvrent presque tout ce que vous rencontrerez sont les champs de métadonnées, les octets ajoutés après la fin du fichier, l'encodage sur le bit de poids faible des pixels ou des échantillons audio, et les caractères invisibles dans le texte. La détection suit toujours le même enchaînement : file, exiftool, binwalk, strings, zsteg, puis une attaque de la phrase secrète avec stegseek.

Qu'est-ce que la stéganographie ?

La stéganographie est la technique qui consiste à dissimuler une information dans un fichier, un message ou un objet physique d'apparence ordinaire, de sorte que l'existence même de cette information reste secrète. Le porteur se comporte exactement comme prévu : l'image s'ouvre toujours, le son se lit toujours, le document se lit normalement.

Cette dernière phrase résume tout, et c'est ce qui sépare la stéganographie de la cryptographie. Un fichier chiffré se signale de lui-même. Quiconque l'intercepte sait qu'un secret existe, même sans pouvoir le lire, et dans certains pays cela suffit à vous contraindre à livrer une clé. Un fichier stéganographié ne signale rien du tout. Les deux techniques se combinent bien : chiffrez d'abord, cachez ensuite le texte chiffré, et un enquêteur qui parvient malgré tout à trouver la charge utile n'a toujours rien à lire.

L'idée est ancienne. Hérodote raconte comment Histiée fit raser la tête d'un esclave, tatouer un message sur son crâne, puis attendit que les cheveux repoussent avant de l'envoyer. Pendant la Seconde Guerre mondiale, des agents allemands réduisaient des pages entières à des micropoints de la taille d'un point dactylographié, collés sur la ponctuation de lettres banales. La physique a changé quand les fichiers ont remplacé le papier ; la logique, non.

Trois termes reviennent en permanence et méritent d'être fixés avant les sections techniques :

  • Porteur (ou fichier de couverture) - le fichier innocent qui sert de cachette. Une photo de vacances, un enregistrement WAV, une facture PDF.
  • Charge utile - les données dissimulées. Souvent un fichier texte ou une clé, parfois un exécutable complet.
  • Fichier stéganographié - le résultat. Porteur plus charge utile, toujours valide dans son format d'origine.

Comment les données sont réellement cachées dans un fichier

Quatre familles de techniques couvrent l'immense majorité de ce que vous rencontrerez, en CTF comme lors d'incidents réels. Elles sont présentées ici à peu près par ordre de facilité de détection, qui est aussi l'ordre dans lequel il faut les tester.

1. Les champs de métadonnées

Chaque JPEG, PNG et MP3 transporte des métadonnées structurées : balises EXIF, blocs XMP, trames ID3. La plupart de ces champs sont en texte libre et rien ne valide ce qu'on y met. Un champ commentaire contenant un bloc base64 est la cachette la plus paresseuse qui soit, et on la retrouve pourtant régulièrement, parce qu'elle survit aux transferts de fichiers et ne demande aucun outil particulier.

2. Les données ajoutées

Les formats d'image déclarent où ils se terminent. Un JPEG s'achève sur le marqueur de fin d'image FFD9, un PNG sur le chunk IEND. Tous les octets qui suivent ce marqueur sont ignorés par les visionneuses et conservés par le système de fichiers. Concaténez une archive ZIP à un PNG et vous obtenez un fichier qui s'ouvre comme une image dans un programme et se décompresse comme une archive dans un autre. Cette astuce, appelée polyglotte, explique pourquoi cat photo.png secret.zip > output.png fait partie des premières commandes que tout le monde apprend.

3. L'encodage sur le bit de poids faible

C'est la technique à laquelle on pense quand on dit stéganographie sans préciser. Dans une image 24 bits, chaque pixel stocke trois canaux de couleur de huit bits chacun. Modifiez le dernier bit d'un canal et la couleur se décale d'une part sur 256, ce qu'aucun œil ne perçoit. Avec un bit par canal sur une image 1920x1080, vous disposez de 6 220 800 bits, soit environ 759 Ko de charge utile dans un fichier qui semble intact.

Le même calcul vaut pour les échantillons audio et les images vidéo. Le prix à payer est la fragilité : les données en bit de poids faible ne survivent pas au réencodage. Envoyez un PNG porteur sur une plateforme qui recompresse les images et la charge utile disparaît, ce qui explique précisément pourquoi les attaquants qui utilisent cette technique hébergent leurs images sur des services qui restituent les fichiers octet pour octet.

4. L'encodage dans le texte et les espaces

Le texte n'a pas de pixels à modifier, il cache donc les données dans ce que personne n'affiche : espaces en fin de ligne, alternance de tabulations et d'espaces, et caractères Unicode sans largeur visible. L'espace sans chasse (U+200B), l'antiliant sans chasse (U+200C) et le liant sans chasse (U+200D) sont des caractères légitimes que les navigateurs transmettent docilement et n'affichent pas. Deux d'entre eux suffisent à encoder du binaire.

💻
Pratiquez maintenant : Stego Hunt - un seul PNG contenant un flag, sans indice sur la technique employée. Dans le navigateur, sans installation, gratuit pour commencer.

La stéganographie en cybersécurité : comment les attaquants l'utilisent

La stéganographie est répertoriée par MITRE sous la référence T1027.003, une sous-technique de la catégorie Obfuscated Files or Information. Les exemples cités par le référentiel couvrent quinze ans d'outillage : Duqu chiffrait les données collectées sur le système et les cachait dans une image avant de l'exfiltrer, PowerDuke dissimulait des portes dérobées dans des fichiers PNG, IcedID intégrait des binaires dans des PNG chiffrés pour sa distribution, et APT37 a diffusé des images contenant du shellcode.

Le schéma qui domine les campagnes actuelles est plus simple que tout cela. Un script de première étape télécharge une image depuis un hébergeur ordinaire, en extrait une charge utile encodée en base64 et exécute le résultat en mémoire. Dans une campagne analysée par ANY.RUN et rapportée en mars 2025, un chargeur XWorm était caché dans une image à l'offset 000d3d80, encadré par la chaîne <<BASE64_START>>, puis injecté dans AddInProcess32 par un téléchargeur VBS.

Notez ce que ce marqueur d'offset révèle. La charge utile n'avait pas été tissée dans les données de pixels à coups de mathématiques astucieuses. Elle avait été collée dans le fichier avec un délimiteur texte autour, parce que l'objectif n'a jamais été de tromper un analyste forensique. L'objectif était de franchir une passerelle de messagerie et un antivirus de poste de travail, et la plupart d'entre eux inspectent les exécutables, les archives et les scripts bien plus agressivement qu'un PNG.

C'est la leçon de sécurité à retenir de cette section. La stéganographie est rarement la partie intéressante d'une chaîne d'attaque. C'est un emballage de livraison choisi parce que les fichiers image sont approuvés par défaut, et il fonctionne exactement tant que cette hypothèse tient dans votre chaîne de supervision.

Comment cacher des données avec Steghide

Steghide est l'outil vers lequel se tournent la plupart des tutoriels, et il vaut la peine d'être connu précisément parce qu'il revient si souvent dans les défis CTF. La version 0.5.1 date de 2003 et n'a jamais été mise à jour, ce qui compte moins qu'on ne le croit : les formats de fichiers qu'elle vise n'ont pas changé non plus.

Installez-le et intégrez une charge utile :

sudo apt install steghide
steghide embed -cf holiday.jpg -ef secret.txt -p hunter2

L'extraction est l'opération miroir :

$ steghide extract -sf holiday.jpg -p hunter2
wrote extracted data to "secret.txt".

Deux détails tirés du manuel de steghide font gagner un temps réel. D'abord, le fichier de couverture doit être au format JPEG, BMP, WAV ou AU. Steghide ne prend en charge ni PNG ni GIF : quand quelqu'un vous tend un PNG en suggérant steghide, il vous a déjà indiqué que c'est le mauvais outil. Ensuite, la charge utile est chiffrée avant intégration, par défaut avec Rijndael et une clé de 128 bits en mode d'enchaînement des blocs. Il faut donc la bonne phrase secrète, et une mauvaise produit une erreur plutôt que du charabia.

Demandez ce qui est intégré sans l'extraire :

$ steghide info holiday.jpg
"holiday.jpg":
  format: jpeg
  capacity: 3.1 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:

Steghide répartit aussi ses modifications à l'aide d'un algorithme de couplage issu de la théorie des graphes, au lieu d'écrire les bits dans des pixels consécutifs, ce qui laisse intacte la distribution des fréquences de couleurs de l'image. Cela met en échec les tests statistiques du premier ordre, et c'est pourquoi les détecteurs LSB génériques restent muets face à une sortie de steghide : il faut un outil conçu pour ce format.

Comment détecter la stéganographie

Comment détecter la stéganographie ? Faites passer le fichier par une séquence fixe de vérifications qui ciblent chacune une technique de dissimulation : identifier le vrai type de fichier, lire les métadonnées, chercher des fichiers ajoutés, extraire les chaînes imprimables, tester les plans de bits, puis attaquer la phrase secrète. La plupart des charges utiles apparaissent dès les trois premières étapes.

Voici l'enchaînement, dans l'ordre qui trouve le plus vite :

  1. Confirmez ce qu'est vraiment le fichier. file suspicious.png compare les octets magiques à l'extension. Un résultat "PNG image data" sur un fichier nommé .jpg est déjà une trouvaille en soi.
  2. Lisez tous les champs de métadonnées. exiftool -a -u suspicious.png affiche les balises dupliquées et inconnues en plus des balises standard. Les champs Comment, Artist et Software sont là où logent les charges utiles paresseuses.
  3. Cherchez les fichiers ajoutés. binwalk suspicious.png recherche des signatures de fichiers n'importe où dans le flux d'octets. Binwalk 3 est une réécriture en Rust de l'ancien outil Python et se montre nettement plus rapide sur les gros fichiers. Ajoutez --extract dès qu'il signale une correspondance.
  4. Extrayez les chaînes imprimables. strings -n 8 suspicious.png | grep -Ei 'flag|base64|BEGIN' attrape les blocs base64 et les marqueurs délimiteurs. C'est l'étape qui aurait repéré le chargeur XWorm en quelques secondes.
  5. Testez les plans de bits. zsteg -a suspicious.png essaie toutes les combinaisons de canal, d'ordre des bits et d'offset sur les fichiers PNG et BMP. Extrayez une correspondance précise avec zsteg -E '1b,rgb,lsb' suspicious.png > out.bin. L'outil reconnaît aussi les sorties d'OpenStego et de Camouflage.
  6. Attaquez la phrase secrète. Pour les fichiers JPEG, BMP, WAV et AU, stegseek suspicious.jpg rockyou.txt casse les phrases secrètes de steghide par force brute.

Cette dernière étape mérite sa propre remarque, car elle change ce qui est réalisable. Stegseek parcourt l'intégralité de rockyou.txt en moins de deux secondes sur un ordinateur portable ordinaire, soit environ 14 millions de mots de passe en 1,21 seconde. Les outils qu'il a remplacés mettaient des heures à faire le même travail. Si vous avez appris la stéganographie avant 2021 et gardez le souvenir du cassage de phrase secrète comme d'un ultime recours, c'est désormais quelque chose que vous lancez pendant que vous lisez encore l'énoncé du défi. La même logique de dictionnaire s'applique ici que dans n'importe quelle attaque de mots de passe, ce que notre guide du cassage de hash détaille en profondeur.

En pratique, les quatre premières étapes règlent la plupart des fichiers, et les deux suivantes servent pour ceux qui résistent. Quand un PNG passe file, exiftool, binwalk et strings sans un murmure, ce silence est lui-même une information : vous avez probablement affaire à un encodage sur le bit de poids faible, ou bien à rien du tout. Ouvrez-le dans Stegsolve et faites défiler les plans de couleur. Les vraies charges utiles LSB apparaissent comme du bruit visible ou des formes aux bords nets dans un seul plan de bits, et vous reconnaîtrez la différence dès votre troisième ou quatrième fichier.

Une mise en garde sur les outils de détection qui promettent une certitude statistique. Le test du khi-deux et l'analyse RS, méthodes derrière des détecteurs comme StegExpose, fonctionnent bien contre un encodage LSB séquentiel naïf et mal contre tout ce qui répartit les positions avec un générateur initialisé par une phrase secrète. Un rapport statistique propre est une preuve faible de fichier propre.

Stéganographie textuelle et caractères de largeur nulle

La stéganographie textuelle est écartée par la plupart des guides parce qu'elle passe pour une curiosité. C'est pourtant la technique la plus susceptible d'atteindre un utilisateur réel, puisqu'elle survit intacte au copier-coller, aux clients de messagerie et aux applications de discussion.

La méthode est simple. Encodez la charge utile en binaire, associez 0 à un espace sans chasse et 1 à un antiliant sans chasse, puis insérez la séquence obtenue entre deux caractères visibles. Le message s'affiche exactement comme avant. Un secret de 200 caractères devient 1 600 caractères invisibles glissés dans un article de blog, et aucun lecteur n'y voit quoi que ce soit.

La détection est plus facile que la dissimulation, une fois que l'on sait quoi chercher :

$ python3 -c "print([hex(ord(c)) for c in open('post.txt').read() if ord(c) > 0x2000])"
['0x200b', '0x200c', '0x200b', '0x200c', '0x200c']

Toute suite de U+200B à U+200D dans de la prose ordinaire est délibérée. Des usages légitimes existent, surtout pour la césure dans les écritures sans espaces, mais ils n'apparaissent pas par dizaines consécutives dans un texte en français ou en anglais. Collez le texte suspect dans un éditeur hexadécimal et le motif saute aux yeux.

Cette technique sous-tend aussi le filigrane invisible utilisé pour tracer les fuites de documents, où chaque destinataire reçoit une copie portant un identifiant de largeur nulle différent. Même mécanisme, finalité défensive. Le lab Phantom Text cache un flag dans des caractères de largeur nulle au sein d'un article de blog d'apparence banale, et c'est le moyen le plus rapide d'acquérir le réflexe de les repérer.

Choisir le bon outil pour le fichier que vous avez sous les yeux

La stéganographie fait perdre plus de temps en CTF que toute autre catégorie, presque toujours parce que les outils sont lancés dans le mauvais ordre ou contre des formats qu'ils n'ont jamais pris en charge. Ce tableau résume tout ce qui précède.

Type de fichierCommencez parPuis essayez
PNG, BMPzsteg -abinwalk, plans de bits dans Stegsolve
JPEGstegseek avec rockyouexiftool, binwalk
WAV, MP3Vue spectrogramme d'Audacitysteghide, strings
PDF, DOCXbinwalk --extractexiftool, décompresser le conteneur
Texte brutÉditeur hexadécimal, U+200B à U+200DAnalyse des motifs d'espaces

La ligne audio surprend. Chargez un WAV dans Audacity, basculez l'affichage de la piste en Spectrogramme, et les messages écrits dans certaines bandes de fréquences apparaissent en toutes lettres, dessinés à l'écran. Aucune ligne de commande, et cela prend une quinzaine de secondes. Plusieurs défis CTF réputés n'ont jamais rien caché de plus élaboré.

Limite de temps à respecter : si l'enchaînement complet ne donne rien en dix minutes, le fichier est probablement un leurre, ou la charge utile réclame une clé venue d'un autre défi. Passez à autre chose et revenez plus tard. S'acharner une heure sur une seule image est la façon la plus courante de perdre un CTF.

Questions fréquentes

La stéganographie est-elle illégale ?

Non. La stéganographie est une technique, et cacher des données dans vos propres fichiers est légal partout. Ce qui crée un risque juridique, c'est ce que vous cachez, dans les fichiers de qui, et où vous le déplacez ensuite. Dissimuler des données pour les sortir d'une organisation qui n'a pas autorisé ce transfert constitue au minimum une violation de politique interne, et une infraction pénale dans de nombreux pays, que la stéganographie soit impliquée ou non.

Quelle est la différence entre stéganographie et cryptographie ?

La cryptographie rend un message illisible mais visible ; la stéganographie le rend invisible mais lisible pour qui le trouve. Un fichier chiffré signale à l'observateur qu'un secret existe, tandis qu'un fichier stéganographié cherche à empêcher que la question soit posée. Un usage sérieux combine les deux : chiffrer la charge utile, puis cacher le texte chiffré.

L'IA peut-elle détecter la stéganographie ?

Les classifieurs d'apprentissage automatique font effectivement mieux que les tests statistiques classiques comme le khi-deux et l'analyse RS pour la détection LSB, et les systèmes issus de la recherche atteignent une précision élevée sur des jeux de données construits avec des outils d'intégration connus. Ils généralisent mal aux techniques sur lesquelles ils n'ont pas été entraînés, et aucune des deux approches ne signale de façon fiable l'intégration adaptative au contenu. En pratique, les vérifications déterministes avec binwalk, zsteg et stegseek trouvent plus de charges utiles réelles que n'importe quel détecteur.

La stéganographie survit-elle aux publications sur les réseaux sociaux ?

Généralement non. Les plateformes qui recompressent ou redimensionnent les images détruisent les charges utiles en bit de poids faible et suppriment la plupart des métadonnées, ce qui fait du LSB un mauvais canal de diffusion. Les données ajoutées après le marqueur IEND ou FFD9 survivent sur tout service qui stocke les fichiers octet pour octet, et cette différence explique quels hébergeurs reviennent sans cesse dans les campagnes de malware.

Où pratiquer la stéganographie légalement ?

Sur des fichiers conçus pour cela. Le cours Stéganographie de HackerDNA couvre les métadonnées, les données ajoutées, le LSB, le cassage de steghide, l'audio, le texte et les fichiers polyglottes en dix chapitres guidés, fichiers de défi inclus. Les compétitions CTF et les images que vous créez vous-même sont tout aussi sûres. Ne lancez jamais d'outils d'extraction sur des fichiers obtenus sans autorisation.

Considérations légales et éthiques

Rappel essentiel : n'analysez que des fichiers qui vous appartiennent ou pour lesquels vous disposez d'une autorisation écrite explicite. Extraire des données cachées des images d'autrui peut constituer un accès non autorisé au sens du Computer Fraud and Abuse Act aux États-Unis, du Computer Misuse Act au Royaume-Uni et de lois équivalentes ailleurs, quelle que soit la façon dont le fichier vous est parvenu.

Deux situations reviennent assez souvent pour être anticipées. Si vous découvrez des données cachées pendant une mission autorisée, arrêtez-vous et vérifiez vos règles d'engagement avant de poursuivre l'extraction. Des charges utiles qui contiennent des données personnelles, des identifiants appartenant à des tiers ou du contenu illégal créent des obligations bien plus simples à traiter avant de les avoir copiées sur votre poste qu'après.

La seconde est côté défense. La stéganographie est un vrai canal d'exfiltration, et la contre-mesure n'est pas la détection. C'est la transformation. Réencoder chaque image au niveau de la passerelle détruit les charges utiles LSB sans avoir à les identifier, et supprimer les métadonnées à l'envoi élimine la cachette la plus facile. Les deux mesures coûtent peu, les deux sont déterministes, et aucune ne dépend d'un classifieur qui aurait vu juste.

Vos prochaines étapes avec la stéganographie

La stéganographie récompense la reconnaissance de motifs bien plus que la connaissance des outils. La liste de commandes est courte et stable, et une fois que file, exiftool, binwalk, strings, zsteg et stegseek sont dans vos doigts, la compétence qui reste consiste à regarder un fichier et à savoir laquelle des quatre techniques de dissimulation vous avez devant vous avant de taper quoi que ce soit. Cela vient du volume, pas de la lecture.

Commencez par le lab Vigenere Stego Hunt, où vous extrayez une clé d'une image pour casser un chiffre classique, parce que les défis à plusieurs couches sont ce à quoi ressemble vraiment la stéganographie en CTF. Enchaînez ensuite avec le cours Stéganographie, qui reprend chaque technique de ce guide sur dix chapitres, avec des fichiers à décortiquer dans chacun. Tout tourne dans le navigateur, et l'offre gratuite ne demande aucune carte bancaire.

HackerDNA Team

Équipe HackerDNA

Écrit par l'équipe HackerDNA - des professionnels de la cybersécurité qui créent des labs de hacking pratiques et du contenu éducatif pour vous aider à développer des compétences réelles en sécurité.

Rencontrer l'équipe

Prêt à mettre cela en pratique?

Arrêtez de lire, commencez à hacker. Obtenez une expérience pratique avec plus de 170 labs de cybersécurité réels.

Commencer à Hacker Gratuitement
21 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement