Est-il possible de stocker des données arbitraires dans un fichier image?

25

Est-il possible de stocker des données arbitraires telles que des documents ou un programme sous la forme d'un fichier image, comme une image PNG? Ma préoccupation est que quelqu'un puisse encoder des données à utiliser par des logiciels malveillants dans une image et les télécharger sur un site comme Flickr.

bwDraco
la source
3
Découvrez l' exploit MICE qui a donné un œil au beurre noir à Microsoft il y a quelques années.
Synetech
1
Oui, c'était parmi les liens de la page MICE. Si vous ajoutez arbitrairement des liens à partir de cette page, vous pouvez également ajouter ceci , ceci , ceci , ceci , ceci , ceci et surtout tout cela .
Synetech
@Synetech: Désolé; le lien dans le commentaire (maintenant supprimé) provient d'une recherche Google, et non de l'article Wikipedia.
bwDraco
Ah d'accord; pas de soucis. L'article de Wikipédia contient d'excellentes spécifications techniques (j'ai lié la plupart des meilleures de Microsoft, Sysinternals et GRC). Cette chose a vraiment causé plus de battage médiatique que des dommages réels de ce que je me souviens. Le dernier lien dans mon commentaire était le correctif tiers que quelqu'un a décidé de créer jusqu'à ce que Microsoft publie et que Windows Update le corrige. :-P
Synetech

Réponses:

22

Pour la plupart des formats de fichiers, oui. Par exemple, les fichiers PNG sont composés de morceaux tapés, vous pouvez donc ajouter un morceau nommé aAAAou lOLZavec des données arbitraires. JPEG a des segments "spécifiques à l'application" ; les balises Exif dans les fichiers JPEG sont en fait une structure TIFF complète à l'intérieur d'une telle balise. D'autres formats tels que GIF ne sont pas extensibles, mais ils ont souvent un champ pour les commentaires textuels; cela a déjà été abusé .APPn

Cependant, il existe des moyens de se protéger contre cela - par exemple, des sites Web tels que Imgur traitent automatiquement tous les téléchargements avec pngcrushou des outils similaires, qui suppriment tout ce qui n'est pas absolument nécessaire.

Mais au final, l'échange de données ne peut être empêché. Mis à part la stéganographie d'image susmentionnée, vous avez Twitter et ses clones, des dizaines de bacs à pâte (dans lesquels les messages incompréhensibles sont considérés comme assez normaux), les formes de commentaire des anciens articles de blog (j'essaie toujours de me rappeler le livre dans lequel cela a été suggéré), ... plus réaliste, la plupart des malwares contacteront simplement leurs "propres" serveurs.

grawity
la source
19

Les données malveillantes n'existent pas. Les données ne deviennent malveillantes que lorsqu'elles sont exécutées, auquel cas il ne s'agit plus de données. Le problème avec ce genre de chose ne serait pas l'image, ce serait le logiciel (Windows, Photoshop, peu importe) qui contient un bug qui provoque l'exécution des données. C'est évidemment une préoccupation importante des principaux éditeurs de logiciels, et vous pouvez être sûr qu'ils corrigeraient ces bogues très peu de temps après leur découverte.

Cela dit, comme indiqué dans les autres réponses, il est possible d'ajouter des données qui ne font pas partie de l'image elle-même au fichier. Cependant, c'est souvent une pratique utile, voire standard. Je pense qu'il est beaucoup plus important d'être prudent avec les exécutables qu'avec les images aléatoires que vous trouvez sur Internet. Le risque ici n'est pas si grand.

Jouke van der Maas
la source
"Les données ne peuvent pas être malveillantes" Qu'en est-il des logiciels malveillants utilisant la stéganographie pour envoyer des informations telles que votre numéro de carte de crédit via des canaux d'apparence innocente?
rr-
12

Les fichiers image, y compris PNG, ont un format spécifique. La partie d'en-tête du fichier décrit l'image, et toutes les données suivantes seraient interprétées comme des données d'image (basées sur les en-têtes).

Cependant, vous pouvez ajouter des données arbitraires à la fin d'un PNG, au-delà des données d'image, qui peuvent ensuite être lues plus tard. Ce serait assez facile à détecter - il ne devrait pas y avoir de données après la fin des données d'image.

Alternativement, vous pouvez encoder des données arbitraires dans l'image elle-même, en utilisant la stéganographie . Cela modifie subtilement l'image elle-même d'une manière qui est largement indétectable à moins que vous ne sachiez exactement quoi rechercher (une connaissance préalable de la méthode de codage est souvent requise).

Paul
la source
Je sais qu'Adobe Fireworks stocke en fait des données supplémentaires dans des fichiers png (cela ne fait pas partie de l'image).
Jouke van der Maas,
Steganography: stegosploit.info évidemment
Mars Robertson