Определить скрытое сообщение и использованный метод его стеганографического сокрытия

Обновлено: 05.07.2024

Во время Второй мировой войны правительством США придавалось большое значение борьбе против тайных методов передачи информации. Были введены определенные ограничения на почтовые отправления. Так, не принимались письма и телеграммы, содержащие кроссворды, ходы шахматных партий, поручения о вручении цветов с указанием времени и их вида; у пересылаемых часов переводились стрелки. Был привлечен многочисленный отряд цензоров, которые занимались даже перефразированием телеграмм без изменения их смысла.

Можно выделить две причины популярности исследований в области стеганографии в настоящее время: ограничение на использование криптосредств в ряде стран мира и появление проблемы защиты прав собственности на информацию, представленную в цифровом виде. Первая причина повлекла за собой большое количество исследований в духе классической стеганографии (то есть скрытия факта передачи информации), вторая – еще более многочисленные работы в области так называемых водяных знаков. Цифровой водяной знак (ЦВЗ) – специальная метка, незаметно внедряемая в изображение или другой сигнал с целью тем или иным образом защищать информацию от несанкционированного копирования, отслеживать распространение информации по сетям связи, обеспечивать поиск информации в мультимедийных базах данных.

Международные симпозиумы по скрытию данных проводятся с 1996 года, по стеганографии первый симпозиум состоялся в июле 2002 года. Стеганография – быстро и динамично развивающаяся наука, использующая методы и достижения криптографии, цифровой обработки сигналов, теории связи и информации.

1. Общие сведения о стеганографии

1.1 Основные понятия и определения стеганографии

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

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

Позднее, на конференции Information Hiding: First Information Workshop в 1996 году было предложено использовать единую терминологию и обговорены основные термины.

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

При построении стегосистемы должны учитываться следующие положения:

Обобщенная модель стегосистемы представлена на рис. 1.


Рисунок 1 – Обобщенная модель стегосистемы

Стеганографический канал или просто стегоканал – канал передачи стего.

По аналогии с криптографией, по типу стегоключа стегосистемы можно подразделить на два типа:

· с секретным ключом;

· с открытым ключом.

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

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

Предположим, что в качестве носителя используется 24-битовое изображение размером 800х600 (графика среднего разрешения). Оно занимает около полутора мегабайта памяти (800х600х3 = 1440000 байт). Каждая цветовая комбинация тона (пикселя – точки) – это комбинация трех основных цветов – красного, зеленого и синего, которые занимают каждый по 1 байту (итого по 3 на пиксел). Если для хранения секретной информации использовать наименьший значащий бит (Least Significant Bits – LSB) каждого байта, то получим по 3 бита на каждый пиксел. Емкость изображения носителя составит – 800х600х3/8=180000 байт. При этом биты в каких-то точках будут совпадать с битами реального изображения, в других – нет, но, главное, что на глаз определить такие искажения практически невозможно.

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

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

Цифровая стеганография широкое распространение получила в последние 2 года. Стеганография в сочетании с криптографией практически достигает 100% защищенности информации.

1.3 Цифровые водяные знаки

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

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

Процесс внедрения цифровых водяных знаков также должен учитывать свойства системы восприятия человека. Стеганография использует имеющуюся в сигналах психовизуальную избыточность, но другим, чем при сжатии данных образом. Приведем простой пример. Рассмотрим полутоновое изображение с 256 градациями серого, то есть с удельной скоростью кодирования 8 бит/пиксел. Хорошо известно, что глаз человека не способен заметить изменение младшего значащего бита. Еще в 1989 году был получен патент на способ скрытого вложения информации в изображение путем модификации младшего значащего бита. В данном случае детектор стего анализирует только значение этого бита для каждого пиксела, а глаз человека, напротив, воспринимает только старшие 7 бит. Данный метод прост в реализации и эффективен, но не удовлетворяет некоторым важным требованиям к ЦВЗ.

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

Различают стегодетекторы, предназначенные для обнаружения факта наличия водяного знака и устройства, предназначенные для его выделения (стегодекодеры). В первом случае возможны детекторы с жесткими (да/нет) или мягкими решениями. Для вынесения решения о наличии / отсутствии цифрового водяного знака удобно использовать такие меры, как расстояние по Хэммингу, либо взаимную корреляцию между имеющимся сигналом и оригиналом (при наличии последнего, разумеется). А что делать, если у нас нет исходного сигнала? Тогда в дело вступают более тонкие статистические методы, основанные на построении моделей исследуемого класса сигналов.

1.4 Атаки на стегосистемы

Для осуществления той или иной угрозы нарушитель применяет атаки.

1. Первичная сортировка стего по внешним признакам.

2. Выделение стего с известным алгоритмом встраивания.

3. Определение использованных стегоалгоритмов.

4. Проверка достаточности объема материала для стегоанализа.

5. Проверка возможности проведения анализа по частным случаям.

6. Аналитическая разработка стегоматериалов. Разработка методов вскрытия стегосистемы.

7. Выделение стего с известными алгоритмами встраивания, но неизвестными ключами и т.д.

– атака с использованием только шифртекста;

– атака с использованием открытого текста;

– атака с использованием выбранного открытого текста;

– адаптивная атака с использованием открытого текста;

– атака с использованием выбранного шифртекста.

По аналогии с криптоанализом в стегоанализе можно выделить следующие типы атак.

У злоумышленника может иметься возможность применить еще три атаки, не имеющие прямых аналогий в криптоанализе.

– Атака на основе известного пустого контейнера . Если он известен злоумышленнику, то путем сравнения его с предполагаемым стего он всегда может установить факт наличия стегоканала. Несмотря на тривиальность этого случая, в ряде работ приводится его информационно-теоретическое обоснование. Гораздо интереснее сценарий, когда контейнер известен приблизительно, с некоторой погрешностью (как это может иметь место при добавлении к нему шума).

– Атака на основе выбранного пустого контейнера . В этом случае злоумышленник способен заставить отправителя пользоваться предложенным ей контейнером. Например, предложенный контейнер может иметь большие однородные области (однотонные изображения), и тогда будет трудно обеспечить секретность внедрения.

2. Методы, технологии, алгоритмы

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

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

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

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

Для методов компьютерной стеганографии можно ввести определенную классификацию (рис. 20.2).


Рис. Классификация методов сокрытия информации

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

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

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

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

По используемым принципам стеганометоды можно разбить на два класса: цифровые методы и структурные методы. Если цифровые методы стеганографии, используя избыточность информационной среды, в основном, манипулируют с цифровым представлением элементов среды, куда внедряются скрываемые данные (например, в пиксели, в различные коэффициенты косинус-синусных преобразований, преобразований Фурье, Уолша-Радемахера или Лапласа), то структурные методы стеганографии для сокрытия данных используют семантически значимые структурные элементы информационной среды.

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

В особую группу можно также выделить методы, которые используют специальные свойства форматов представления файлов:

· зарезервированные для расширения поля компьютерных форматов файлов, которые обычно заполняются нулями и не учитываются программой;

· специальное форматирование данных (смещение слов, предложений, абзацев или выбор определенных позиций букв);

· использование незадействованных мест на магнитных носителях;

· удаление идентифицирующих заголовков для файла.

В основном, для таких методов характерны низкая степень скрытности, низкая пропускная способность и слабая производительность.

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

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

3. Практическая реализация

3.1 Работа с S-Tools


Перетаскиваем файл предназначенный для скрытия на окно. Вводим пароль и выбираем алгоритм шифрования


Выбираем опции преобразования цвета


Сохраняем файл со скрытой в нем информацией


3.2 Программа ImageSpyer

Загружаем файл-контейнер. Нажимая на кнопку Load:


Кнопка Flash поможет выбрать информацию для шифрования, вводим пароль.


Теперь загружаем файл с зашифрованной информацией, используя ту же самую Load и нажимаем кнопку Catch.


Таким образом получилось выделить скрытую в картинке информацию, предварительно введя тот же пароль:


Об этом и говорит следующее окно:


1. Рассмотрены методы стеганографии – прием преобразования информации путем внедрения в информацию иного вида для скрытой передачи, цифровые водяные знаки.

2. Проанализированы приемы и алгоритмы внедрения текстовой информации в графические файлы за счет использования битов с минимальной значимостью.

3. Показано, что стеганография может успешно применяться в случае контейнеров с графической, аудио- и видеоинформацией.

4. Применение стеганографии иллюстрируется программами S-Tools и ImageSpyer, а также авторскими графическими материалами.

Можно ли как-то обойтись без хитрых алгоритмов и тонких манипуляций с данными, и при этом все-таки обеспечить работоспособность контейнера и приемлемый уровень сохранности скрытых данных? Забегая вперед скажу — да, можно! И даже утилитку предложу.

Кровавые подробности метода

Основная идея проста, как удар дубиной по лбу: на диске есть области, в которые операционная система никогда не пишет (или пишет в редких случаях). Чтобы не нужно было искать эти области хитрыми алгоритмами, воспользуемся избыточностью — то есть много-много раз продублируем нашу скрытую информацию по всем секторам диска. Затем прямо поверх всего этого благолепия можно создавать нужные разделы, форматировать файловые системы, писать файлы и ставить ОСи — все равно часть секретных данных сохранится и ее можно будет извлечь, а многократное дублирование поможет нам составить из кусочков исходное целое.

Достоинство такого метода очевидно: мы не зависим ни от формата файлов, ни даже от типа используемой файловой системы.

Недостатки тоже, думаю, очевидны:

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

Понятно, что если просто размазать секретные данные по всему диску, то скрыты они будут только от невооруженного взгляда. Если вооружить взгляд, скажем, редактором диска, то данные предстанут во всей красе. Поэтому данные неплохо бы зашифровать, чтобы не отсвечивали. Шифровать будем простенько, но со вкусом: по алгоритму aes256-cbc. Ключ шифрования спросим у пользователя, пусть хороший пароль придумывает.

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

Проверяем метод на практике

В качестве машины с линуксом, к сожалению, пришлось воспользоваться валяющейся на балконе метеостанцией на Raspberry Pi 3. Памяти там негусто, поэтому большие файлы прятать не будем. Ограничимся максимальным размером в 10 мегабайт. Слишком маленькие файлы тоже прятать смысла нет: утилитка пишет данные на диск кластерами по 4 Кб. Поэтому снизу ограничимся файлом в 3 кб — он влезает в один такой кластер.

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

Total clusters read: 250752, decrypted: 158
ERROR: cannot write incomplete secretFile

Как видим, удалось успешно расшифровать только 158 кластеров (632 килобайта сырых данных, что дает 636424 байта полезной нагрузки). Понятно, что 10 мегабайт тут никак не наберется, а ведь среди этих кластеров явно есть дубликаты. Даже 1 мегабайт таким образом уже не восстановишь. Но зато можно гарантировать, что 3 килобайта секретных данных мы восстановим с флэшки даже после того, как ее отформатируют и запишут под завязку. Впрочем, опыты показывают, что с такой флэшки вполне возможно извлечь файл длиной 120 килобайт.

Последнее испытание, к сожалению, показало, что флэшка перезаписалась вся:

$ sudo ./steganodisk -p password /dev/sda
Device size: 250752 clusters
250700 99%
Total clusters read: 250752, decrypted: 0
ERROR: cannot write incomplete secretFile

Ни одного кластера не сохранилось… Печально, но не трагично! Попробуем перед форматированием создать на флэшке раздел, а уже в нем — файловую систему. Кстати, с завода она пришла именно с таким форматированием, так что ничего подозрительного мы не делаем.
Вполне ожидаемо, что доступное пространство на флэшке немного уменьшилось.

Также вполне ожидаемо, что 10 мегабайт все-таки не удалось спрятать на полностью забитый диск. Но зато теперь количество успешно расшифрованных кластеров увеличилось более чем в два раза!

Total clusters read: 250752, decrypted: 405

Мегабайт, к сожалению, собрать из кусочков не получится, а вот килобайт двести — запросто.

Ну и весть о последней, 4-й проверке, на этот раз радостная: полное форматирование такой флэшки не привело к уничтожению всей информации! 120 килобайт секретных данных прекрасно влезло в неиспользуемое пространство.

Сводная таблица по тестированию:


Немного теоретизирования: о свободном месте и неиспользуемых секторах

Другими словами, на диске есть сектора, к которым нет доступа при обычной работе с диском, но данные-то в эти сектора записать можно! А значит, и прочитать тоже. С поправкой на то, что есть еще таблица разделов и код загрузчика, которые как раз и расположены в пустой области в начале диска.

Отвлечемся на время от разделов и посмотрим на диск с высоты, так сказать, птичьего полета. Вот есть у нас на диске пустой раздел. Создадим в нем файловую систему. Можно ли сказать, что какие-то сектора на диске остались незатертыми?

И-и-и — барабанная дробь! Ответ практически всегда будет — да! Ведь в большинстве случаев создание файловой системы сводится к тому, что на диск записывается только несколько блоков служебной информации, а в остальном содержимое раздела не меняется.

Итак, чтобы максимизировать место, доступное под стеганограмму, нужно использовать файловую систему с размером кластера побольше. Можно еще создать раздел, даже если это необязательно (на флэшке, например). Создавать пустые разделы или оставлять нераспределенные области не нужно — это привлечет внимание интересующихся граждан.

Утилита для экспериментов

Исходники утилиты можно пощупать здесь

Можно поменять размер кластера с 4 Кб на, скажем, 512 байт (в secretfile.h). При этом вырастут расходы на служебную информацию: заголовок и контрольная сумма занимают фиксированные 68 байт.

Запускать утилиту нужно, естественно, с правами пользователя root, причем с осторожностью. Никаких вопросов перед перезаписью указанного файла или устройства не будет!

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

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

Для понимания происходящего, нам понадобится ввести некоторые определения.

Теперь, когда у нас есть базовое понимание принципов организации стегосистемы и работы алгоритма LSB, рассмотрим один из способов распознавания факта передачи информации в изображении. Основным инструментом будет Python, библиотеки numpy, matplotlib, pillow и openCV.

Для начала, импортируем необходимые библиотеки.

``` import numpy as np import matplotlib.image as img import matplotlib.pyplot as plt from PIL import Image import cv2 ```

Прочитаем тестовое изображение, скопируем его и сформируем изображение той же размерности, что исходное.

``` image_name = "test1" image = img.imread("images/" + image_name + ".jpg") image_check = np.copy(image) image[0, 0] ```

Далее приступим к написанию основной распознающей функции.

``` def check_lsb_channel(input_im, channel): output_im = np.copy(input_im) for x in range(0, input_im.shape[0]): for y in range(0, input_im.shape[1]): r = input_im[x,y][0] g = input_im[x,y][1] b = input_im[x,y][2] rgb = (r, g, b) binary = '<0:b>'.format(rgb[channel]) if(list(str(binary))[-1] == '1'): output_im[x,y] = (0, 0, 0) return output_im ```

Наглядно работа алгоритма видна на представленных примерах изображений — в первом случае изображение не содержит стего контейнер и виден лишь наложенный шум, во втором же случае, проявляются отличительные признаки стего контейнера – неравномерные области наложения шума в каждом из трех каналов.


Мануал

Сокрытие данных

Сокрытие данных – распространенная практика среди хакеров и злоумышленников. Они прячут свои конфиденциальные данные в защищенной области хоста (HPA), Slack space и в альтернативных потоках данных (ADS). поскольку эти области не включены ни в какие параметры поиска. Кроме того они могут использовать методы стеганографии для тайного общения, передачи лицензий программного обеспечения, обхода систем контроля за утечками и многое друго. Однако помимо злоумышленников, методы стеганографии вполне могут найти себе применение в обеспечение информационной безопасности как в повседневной, так и в профессиональной деятельности.

Стеганография

Чем стеганография отличается от криптографии?

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

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

Вот некоторые инструменты для стеганографии:

1.SilentEye

Допустим, что у нас есть файл pass.txt, который содержит учетные данные для доступа к информационным системам. И мы собираемся скрыть этот файл в изображение с помощью инструмента SilentEye.


a. Перетащим изображение в стартовое окно программы, которое мы хотим использовать для скрытия данных.

b. После добавления изображения нажмем на опцию кодирования (Encode)


c. Выберем позицию заголовка как “signature”, введем выбранную вами парольную фразу (эта парольная фраза будет использоваться для декодирования позже).
Выберем файл, который мы хотим спрятать в картинке (у нас это pass.txt), и нажмем на “Encode”


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


f. Выберем позицию заголовка как “signature” и введем кодовую фразу, которую мы ввели для кодирования этого изображения, затем выбирем на опцию “Decode”


g. Декодированный файл показан на рисунке


2. iSteg

iSteg – это инструмент стеганографии с открытым исходным кодом, используемый для скрытия файлов внутри jpeg-изображения. Достпуна для MAC. Программа относительно старая и останавливаться подробно на ней не будем, но для любителей MAC отметим ее наличие.


3. OpenStego

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

Интерфейс программы прост и приятен. Для скрытия данных в поле Message File выбираем наш файл с паролями, который мы хотим спрятать, в поле Cover File выбираем исходную картинку, которая будет являться контейнером для текстового файла, в поле Output Stego File задаем имя итогового изображения с секретом. После выбираем алгоритм шифрования (AES256 в указанном случае) и задаем пароль. После наживаем Hide Date и получаем результат


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


Для обратных действий, соответственно, на вкладке Extract Data необходимо выбрать файл со скрытыми данными, выбрать путь для сохранения файла на выходе, ввести пароль и нажать Extract Data и мы получим наш файл passwords.txt


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

Генерируем электронную подпись в формате *.sig


Проставляем водяной знак для itsecforu с использованием заранее сгенерированного файла подписи и получаем подписанный файл изображения isecforu_sig.jpg


Для проверки водяного знака на вкладке Verify Watermark необходимо, соответсвенно выбрать файл с водяным знаком и файл подписи


4. Open Puff

Open Puff – это бесплатное программное обеспечение для стеганографии для Microsoft Windows и Linux. Cтоит отметить, что программа не требует установки в Windows а для linux запускается с bash скрипта. Помимо картинок и аудио работает с файлами видеоформатов и pdf. Разработчиком предлагается очень подробная документация по работе продукта.


Для скрытия предлагается ввести 3 разных пароля, однако пароль B и С можно отключить, сняв флажки с параметров Enable (B) и Enable (C), так мы и поступим и введем пароль в поле А. Затем в блоке Data выберем файл с паролями passwords.txt. На 3-м шаге выберем файл изображения itsecforu.jpg в качестве носителя. Далее выберем формат файла на выходе и стойкость, нажимаем Hide Data! и выбираем директорию для сохранения файла со скрытыми данными.


Для извлечения файла, необходимо, соответсвенно выбрать в стартовом меню Unhide, ввести парольв блок А, выбрать контейнер itsecforu.jpg и нажать Unhide!


Как видим, мы получаем наш файл password.txt


Процесс маркировки файлов также прост и понятен, поэтому рассмотривать его не станем.

5. Steghide

Steghide – Программа для скрытия данных в различных видах изображений и аудиофайлов. Мы писали о ней в статье “Стеганография в Kali Linux – Скрытие данных в изображении”

Принцип работы аналогичен при работе в ОС Windows

Запускаем утилиту из командной строки и для просмотра всех доступных параметров вводи –help


Для скрытия файла password.txt в в файл изображения itsecforu.jpg введем:

Затем вводим пароль и подтверждение пароля и получаем наш файл itsecforu.jpg уже со скрытыми данными


Соответсвенно для извлечения скрытых данных введем:

Вводим пароль и получаем наш файл password.txt




Вообще, советую обратить на указанный ресурс внимание

  • Hide and Seek
  • JPEG-JSTEG
  • Pretty Good Envelope
  • StegoDos
  • Stegano Wav
  • PGP Stealth

Мы рассмотрели пратические подходы по использованию стеганографии на примере различных иструментов. И как видим алгоритм всегда один:

  1. Выбираем данные которые необходимо скрыть
  2. Выбираем носитель, куда прячуться данные
  3. Задаем пароль

Методы обнаружения Стеганографии

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

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

StegCracker – это бесплатный инструмент с открытым исходным кодом, используемый для анализа файла изображения (носителя) на предмет скрытия данных путем проведения статистических тестов для определения наличия или отсутствия стеганографического содержимого в файле изображения. StegCracker способен работать со словарями паролей.

Читайте также: