Можно ли хранить произвольные данные в файле изображения?

25

Можно ли хранить произвольные данные, например документы или программу, в виде файла изображения, например изображения PNG? Меня беспокоит то, что кто-то может кодировать данные для использования вредоносными программами в изображение и загружать их на сайт, такой как Flickr.

bwDraco
источник
3
Посмотрите на эксплойт MICE, который пару лет назад подарил Microsoft черный глаз.
Synetech
1
Да, это было среди ссылок на странице MICE. Если вы произвольно добавляете ссылки с этой страницы, то вы можете также добавить это , это , это , это , это , это , и больше всего этого .
Synetech
@Synetech: Извините; ссылка в (теперь удаленном) комментарии была из поиска Google, а не из статьи Википедии.
bwDraco
Ох, ну ладно; не стоит беспокоиться. В статье Википедии есть несколько отличных технических характеристик (я связал большинство лучших из Microsoft, Sysinternals и GRC). Эта вещь действительно вызвала больше шумихи, чем фактический ущерб от того, что я помню. Последней ссылкой в ​​моем комментарии было стороннее исправление, которое кто-то взял на себя, чтобы сделать, пока Microsoft не выпустит и официальный Центр обновления Windows, чтобы исправить это. :-P
Synetech

Ответы:

22

Для большинства форматов файлов, да. Например, файлы PNG состоят из типизированных блоков, поэтому вы можете добавить фрагмент с именем aAAAили lOLZс произвольными данными. JPEG имеет «специфичные для приложения» сегменты ; теги Exif в JPEG - это фактически полная структура TIFF внутри такого тега. Другие форматы, такие как GIF, не расширяемы, но они часто имеют поле для текстовых комментариев; этим уже злоупотребили .APPn

Однако есть способы защиты от этого - например, такие веб-сайты, как Imgur, автоматически обрабатывают все загрузки с помощью pngcrushаналогичных инструментов, которые отбрасывают все, что не является абсолютно необходимым.

Но, в конце концов, обмен данными не может быть предотвращен. Помимо вышеупомянутой стеганографии изображения, у вас есть Твиттер и его клоны, десятки вставок (в которых непонятные посты считаются вполне нормальными), формы комментариев старых постов в блоге (я все еще пытаюсь вспомнить книгу, в которой это было предложено), ... более реалистично, большинство вредоносных программ просто связываются со своими "собственными" серверами.

grawity
источник
19

Вредоносных данных не существует. Данные не становятся вредоносными, пока они не будут выполнены, после чего они больше не будут данными. Проблема такого рода вещей не в изображении, а в программном обеспечении (Windows, Photoshop и т. Д.), Содержащем ошибку, приводящую к выполнению данных. Это, очевидно, важная проблема для крупных поставщиков программного обеспечения, и вы можете быть уверены, что они исправят эти ошибки очень скоро после их обнаружения.

Тем не менее, как указано в других ответах, можно добавить в файл данные, которые не являются частью самого изображения. Однако это часто бывает полезной или даже стандартной практикой. Я думаю, что гораздо важнее быть осторожным с исполняемыми файлами, чем со случайными изображениями, которые вы можете найти в Интернете. Риск здесь не так велик.

Джук ван дер Маас
источник
«данные не могут быть вредоносными», а как насчет вредоносных программ, использующих стеганографию для отправки информации, например номера вашей кредитной карты, по невинно выглядящим каналам?
17-
12

Файлы изображений, включая PNG, имеют определенный формат. Часть заголовка файла описывает изображение, и любые последующие данные будут интерпретироваться как данные изображения (основанные на заголовках).

Однако вы можете добавить произвольные данные в конец PNG, после данных изображения, которые затем можно будет прочитать позже. Это было бы довольно легко обнаружить - после конца данных изображения не должно быть никаких данных.

Кроме того, вы можете кодировать произвольные данные в само изображение, используя стеганографию . Это слегка изменяет само изображение таким образом, что его невозможно обнаружить, если вы не знаете точно, что искать (часто требуется предварительное знание метода кодирования).

Павел
источник
Я знаю, что Adobe Fireworks на самом деле хранит дополнительные данные в файлах PNG (это не часть изображения).
Джук ван дер Маас
Стеганография: stegosploit.info очевидно
Марс Робертсон