Главная » Компьютерный шпионаж » Защита » Как спрятать файл в картинку, в музыку или в видео?

Как спрятать файл в картинку, в музыку или в видео?

спрятать файл в картинку музыку

Как спрятать файл в картинку?

Спрятать файл в изображение или в музыкальный файл можно с помощью стеганографии. Мы уже когда-то рассказывали про цифровую стеганографию. Я не буду повторятся и рассказывать что это такое еще раз. Если вам интересно, вы можете узнать про все тонкости стеганографии в статье, ссылку на которую я давал выше.

Итак, что же сегодня будет. Сегодня будет обзор популярных программ для скрытия информации в изображение, в музыкальные и в видеофайлы. Из огромного количества программ мы отобрали только 5. В данном обзоре будут рассматриваться утилиты для операционной системы Windows. Тестировать которые будем на Windows 10.

Как спрятать файл в картинку

Содержание

  • Предисловие
  • Зачем прятать файл в картинку, в музыку и в видео?
  • Программы для скрытия информации в изображении, в музыке и в видео.
    • DeepSound: скрываем информацию в звуковых файлах WAV, MP3, CDA, WMA, APE и FLAC.
    • Hallucinate: прячем информацию в изображение, в файлы PNG и BMP.
    • JHide: скрытие информации в изображение, в BMP, PNG и TIFF.
    • OpenPuff: скрываем информацию в видеофайлы: MP4, MPG, VOB и т.д.
  • Заключение

Зачем прятать файл в картинку, если можно его зашифровать?

Шифрование информации помогает сохранять конфиденциальные данные в секрете, но вместе с этим привлекает лишнее внимание. Если пользователь пытается скрыть данные с помощью шифрования, значит в нем наверняка есть что-то важное. И поэтому иногда важнее не столько зашифровать, сколько скрыть само наличие секретной информации на жестком диске.

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

DeepSound: скрываем информацию в музыке

Последняя версия этой программы вышла в ноябре 2015 года. В отличие от других утилит в этом обзоре, она прячет данные внутри звуковых файлов. В качестве контейнеров DeepSound может использовать WAV (только несжатый, PCM), а также MP3, CDA, WMA, APE и FLAC. DeepSound умеет внедрять файлы любого типа и автоматически рассчитывает доступное для них место в зависимости от размера контейнера и настроек качества аудио.

При использовании MP3 доступное место для стегосообщения показывается больше самого контейнера, но это иллюзия. Независимо от исходного формата файла новый контейнер создается только в одном из несжатых форматов: WAV, APE или FLAC. Поэтому размер первоначального контейнера значения не имеет. В итоге сообщение будет занимать какой-то процент от объема нового (несжатого) аудиофайла.

спрятать файл в картинку
Большой объем для любых файлов

Программа может просто поместить любой файл внутри музыкального, или предварительно зашифровать его по алгоритму AES с длиной ключа 256 бит. Опытным путем было установлено, что предельная длина пароля — всего 32 символа. Мои обычные пароли были длиннее и приводили к ошибке (anunhandled exception).

спрятать файл в картинку
Шифрование AES

В один контейнер можно поместить любое количество файлов, пока не заполнится счетчик свободного места. Его количество зависит от степени качества (то есть вносимых в аудиофайл искажений). Всего доступны три настройки: высокое, обычное и низкое качество. Каждая из них увеличивает полезный объем контейнера вдвое. Однако рекомендую не жадничать и всегда использовать максимальное качество — так сложнее будет обнаружить скрытый файл.

Извлекается стегосообщение после выбора соответствующего контейнера вручную. Если использовалось шифрование, то без ввода пароля программа не покажет даже название скрытого файла. Кириллические символы в названиях файлов не поддерживаются. При извлечении они заменяются на XXXX, однако на содержимое файла это никак не влияет.
DeepSound умеет конвертировать MP3 и CDA, поэтому мы легко можем преобразовать исходный файл из MP3 в WAV и сравнить два контейнера: пустой и заполненный.

спрятать файл в картинку
PDF размазан внутри WAV

Здесь нас ждет приятный сюрприз: размеры файлов идентичны, а их содержимое различается сразу после заголовка. Байты отличаются почти везде через один, причем на малые значения. Скорее всего, перед нами реализация алгоритма LSB (Least Significant Bit — наименьший значащий бит).

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

DeepSound вполне годится для сокрытия важной информации (кроме гостайны, разумеется). Можно применять и встроенное шифрование, но, насколько качественно оно реализовано, никто не знает, потому что открытого аудита у программы не было. Поэтому надежнее будет предварительно поместить секретные файлы в какой-нибудь надежный криптоконтейнер (например, TrueCrypt или VeraCrypt), а затем уже прятать его внутри аудиофайла. Если вы будете использовать в качестве контейнеров уникальные аудиофайлы (например, собственные записи), то побайтно сравнить их будет не с чем и вашу «матрешку» вряд ли кто-нибудь сможет найти. Просто запишите в тот же каталог несколько гигабайтов теплого несжатого звука для лучшей маскировки.

Hallucinate: прячем информации в изображение

Последняя версия программы Hallucinate (v. 1.2) вышла в ноябре 2015 года. Эта компактная (всего 34 Кбайт) утилита написана на Java и не требует установки. В качестве контейнера она поддерживает форматы BMP и PNG, что делает ее гораздо удобнее Anubis. Картинки PNG используются сегодня куда чаще, чем BMP. Их полно даже во временных каталогах браузера, поэтому лежать одиноким и очень заметным файлом на диске такой контейнер точно не будет.

спрятать файл в музыку
Галлюцинации со смыслом

Интерфейс у Hallucinate прост и функционален. Требуется выбрать контейнер, указать скрываемый в нем файл и желаемую степень качества итоговой картинки. Доступны восемь вариантов. Чем сильнее огрубляется исходное изображение, тем больше в нем можно спрятать, но тем заметнее становятся артефакты. Выберем в настройках лучшее качество и проиллюстрируем эту разницу, повторив операцию с файлом BMP.

спрятать файл в музыку
Видишь отличия? А они есть!

Визуально картинки слева и справа не отличаются. Однако программа Beyond Compare показывает разницу между ними в кадре по центру. Текстовый файл закодирован как изменения яркости отдельных пикселей, равномерно распределенных по всему кадру. Только в самых темных и самых светлых участках они кучкуются плотно.

спрятать файл в музыку
Раздеваем матрешку

При побайтном сравнении файлов эта же разница в шестнадцатеричном формате выглядит знакомо: тот же алгоритм LSB, что и у DeepSound. Графический файл или звуковой — в данном случае значения не имеет. В оба формата вносятся минимальные искажения, неразличимые без специальных методов сравнения. Обнаружить их без исходного файла (имея на руках только контейнер) довольно сложно. Никаких явных указателей на внедрение стегосообщения он не содержит. Выдает скрытый файл только частотный анализ, но хорошо работает этот метод только для обнаружения крупных «матрешек».

Извлекается скрытый файл буквально в два клика. Достаточно выбрать контейнер (HAL-file в терминологии автора программы), нажать Decode и указать
место для сохранения файла.

JHide: скрытие информации в изображение

JHide — еще одна подобная программа которая используя Java, позволяет спрятать файл в картинку. Компактной ее не назовешь, она занимает почти три мегабайта. Однако в отличие от Hallucinate, помимо BMP и PNG, она поддерживает TIFF, а также позволяет использовать защиту паролем.

спрятать файл в музыку
Интерфейс программы jHide

Сравнение утилитой Beyond Compare показывает едва различимые отличия. В первую секунду их не видно вообще. Надо прибавить яркости и присмотреться, чтобы разглядеть на черном фоне равномерно рассеянные темно-синие точки.

спрятать файл в музыку
Результат работы jHide

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

спрятать файл в музыку
Правильный LSB

Программа сама пытается максимально сжать скрываемый файл перед его помещением в контейнер. Поэтому извлекается он всегда в формате ZIP, а спрятанный файл находится уже внутри этого архива. Парольную защиту необходимо деактивировать перед распаковкой вручную — jHide сама не покажет, надо ли его вводить. Это тоже плюс, поскольку  исключает возможность использования утилиты для проверки изображений на наличие в них скрытых файлов.

спрятать файл в музыку
Распаковка контейнера в jHide

Утилита иногда игнорирует вводимое имя файла и извлекает его с шаблонным именем stego_%name%.bmp, однако эту недоработку можно и простить. Содержимое файла считывается ей без искажений.

OpenPuff: скрываем информацию в видео

Самая сложная утилита в этом обзоре — OpenPuff. Ее последняя версия (4.00) поддерживает не только сокрытие одних файлов внутри других, но и работу со стегометками произвольнoго формата. Ей даже можно выделить несколько процессорных ядер, если предстоит большой объем работы.

спрятать информацию в видео
Основное окно OpenPuff

В отличие от других утилит, поддерживающих парольную защиту скрываемого сообщения, OpenPuff умеет использовать для шифрования криптографически стойкий генератор псевдослучайных чисел (CSPRNG — Cryptographically secure pseudorandom number generator). Если простого пароля недостаточно, то поставь флажки напротив полей B и C, а затем введи в них три разных пароля длиной от 8 до 32 символов. На их основе CSPRNG сгенерирует уникальный ключ, которым и будет зашифровано сообщение.

спрятать информацию в видео
Использование CSPRNG

Мелкие файлы можно хранить в картинках и аудиозаписях, а крупные (например, криптоконтейнеры) удобнее прятать в видеозаписях — OpenPuff поддерживает MP4, MPG, VOB и множество других форматов. Максимальный размер скрываемого файла — 256 Мбайт.

спрятать информацию в видео
Результат работы OpenPuff

Применение CSPRNG на малых файлах сильно увеличивает итоговый размер стегосообщения. Поэтому разница между пустым и заполненным контейнером становится слишком очевидной. Мы снова видим, что измененные пиксели в основном распределяются равномерно, однако на самых светлых и самых темных участках они образуют крупные блоки. Если бы таких блоков не было, результат был бы больше похож на артефакты, получаемые при сжатии при помощи JPEG.

Побайтное сравнение тоже дает очень характерную картину. Несмотря на малый размер скрываемого файла, в контейнере изменены значения у большинства пикселей. Если jHide хватило 330 байт для записи стегосообщения, то OpenPuff использовал для этой же задачи более 170 Кбайт.

спрятать информацию в видео
Изменения затронули большинство пикселей

С одной стороны, это плюс: нет прямой корреляции между размером сообщения и числом измененных пикселей. Анализ такого контейнера существенно усложняется. С другой стороны, на создание контейнера приходится затратить дополнительные усилия, что может оттолкнуть неискушенного пользователя.

Другой режим работы программы — запись и чтение стегометок. Это скрытые строки длиной до 32 символов, которые можно использовать для защиты авторского права. Например, спрятать копирайт в фотографии, музыкальном файле или документе.

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

спрятать информацию в видео
Работа со стегометками в OpenPuff

При возникновении любых правовых споров просто запускаешь OpenPuff и показываешь изумленному оппоненту ранее внедренную метку.

спрятать информацию в видео
Даже лягушка может сказать, кто ее сфотографировал

Сложности возникают в том случае, если файл подвергался модификации. Даже простое конвертирование в другой формат стирает стегометку. Не удается ее считать и в том случае, если файл был снова приведен к исходному формату. Стойкие стегометки существуют, но внедрять их умеют только отдельные программы. Как правило, они привязаны к какому-то конкретному оборудованию (например, модели камеры).

спрятать информацию в видео
Стегометка испарилась после конвертации файла

Заключение

Итак, мы рассмотрели пять утилит, одинаковых по своему назначению. Если одни можно смело рекомендовать, то другие я привел, чтобы проиллюстрировать типичные ошибки.
Настоящие стеганографические утилиты не меняют размер файла-контейнера. Они «растворяют» скрываемое сообщение по алгоритму LSB или более продвинутому, стремясь сделать распределение измененных байтов неотличимым от наложения случайных шумов.

Продвинутые утилиты умеют использовать шифрование, но добавить его можно и самому — например, используя VeraCrypt или тот же RAR. Обнаружилось немало программ, которые вроде бы обещают защиту, но на деле имеют очень косвенное отношение к стеганографии. Они просто дописывают скрываемый файл в конец исходного, используют узнаваемые указатели и слабое шифрование.

Стеганографию эффективнее всего использовать не вместо криптографии, а вместе с ней. Такое сочетание позволяет скрыть как саму информацию, так и факт ее хранения или передачи.

Вас также может заинтересовать приложение PixelKnot. Данная программа позволяет спрятать файл в картинку на Android устройствах.

На этом все, друзья. Теперь вы знаете как спрятать файл в картинку, в аудио или видеофайл. Всем удачи и информационной безопасности!

В статье использованы материалы сайта Xaкер.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *