Какой метод применяется в стеганографии для сокрытия текста внутри файла изображения

Обновлено: 07.07.2024

Рассказываем об одном из самых креативных способов спрятать информацию.

Как работает цифровая стеганография?

Для формата RGB, который используется в большинстве цветных картинок, это описание занимает в памяти 24 бита. Если в описании некоторых или даже всех точек 1–3 бита будет занято секретной информацией, на картинке в целом изменения будут неразличимы. А за счет огромного числа пикселей всего в изображение вписать можно довольно много данных.

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

Как используют цифровую стеганографию?

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

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

Стеганография — находка для кибершпиона

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

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

Самые тонкие мемы

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

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

Код в картинке

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

Так, в январе злоумышленники распространяли через рекламные сети занятный баннер. Собственно рекламы на нем не было, он выглядел как небольшой белый прямоугольник. Зато он содержал скрипт, который выполнялся в браузере. Да, в рекламный слот можно загружать скрипты, например, чтобы компании могли собирать статистику о просмотре объявления.

Баннер со скрытым кодом

Баннер со скрытым кодом. Источник: блог компании Confiant

Извлеченный из картинки код перенаправлял пользователя на сайт злоумышленников. Там жертву уже ждал троян, притворяющийся обновлением Adobe Flash Player, который затем скачивал другие гадости, в частности рекламное ПО.

Обнаружить стеганографию очень трудно

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

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

Существует множество секретных средств связи, которые можно отнести к методам стенографии, от достаточно древних (невидимые чернила, особое расположение знаков в письме, узелки на нитках, надписи на боковой стороне колоды карт или внутри варёного яйца, тайные каналы передачи) до современных, используемых в, так называемой, компьютерной стеганографии (метод наименьшее значащего бита, метод Куттера-Джордана-Боссена, алгоритм Брайндокса или Коха и так далее). В этой статье мы рассмотрим метод наименьшее значащего бита или 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 ```

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


Мануал

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

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

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

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

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

1.SilentEye

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


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

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



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



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


2. iSteg


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


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


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


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


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

5. Steghide

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


Для скрытия файла 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.

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

В этой статье мы рассмотрим метод наименьшее значащего бита или Least Significant Bit method (LSB).

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


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

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

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

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

Первый случай, стего контейнер отсутствует:


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


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

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