18 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Содержание

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

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

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

Но порой самый простой способ спрятать файл от посторонних – это просто не говорить о его наличии. Если не концентрировать на этом внимание и просто не упоминать, никто кроме вас и не узнает, что в хранящемся или передаваемом файле (или целой директории) есть ещё что-то. Как видите по ссылкам сверху, сама Windows это делает очень неплохо. Но сегодня мы обратимся к программам стороннего производителя.

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

И СРАЗУ. Программ очень много, мне известны десятки. Так что в рамках статьи ограничусь чуть больше, чем просто перечислением, и только тех, что успели себя зарекомендовать. Впоследствии некоторые из них будут появляться в конкретной работе против Windows. Например, похожие манипуляции можно проводить в программах удалённого администрирования, например Dark Comet – популярный в сети троян, в арсенале которого есть такой инструмент. Но многого от этих простеньких утилит не ждите – это лишь введение в мир “кто кого обманет”.

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

Алексей Кошкин, Наталья Кошкина
Королевство Delphi

1. Введение

Написать эту статью меня побудило практическое отсутствие в Интернете грамотных материалов в этой области и достаточно странная ситуация на рынке непрофессионального ПО, связанного со стеганографией. Забавно, но Интернет сейчас буквально завален поделками «уровня школьника» — серьёзные системы интересны серьёзным людям и стоят — вот странно, не правда ли? — серьёзных денег, а на рынке простых систем распространены удручающе примитивные программы, авторы которых явно прогуливали занятия если не в школе, то в институте точно. Я никого не хочу обидеть персонально (оптом — тоже не хочу), но ученье свет, а «неученье», особенно в области защиты информации, является всего лишь основанием для самоуспокоения, что тоже хорошо, но не имеет практической ценности =).

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

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

2. Итак, приступим: основные понятия и определения.

Во-первых. В чём главное отличие стеганографии от других методов защиты, в частности от той же криптографии? Дело в том, что первоочередной задачей стеганографии является скрытие самого существования канала связи, задача извлечения информации тут отступает на второй план и решается в большинстве случаев стандартными криптографическими методами. Есть области стеганографии, когда факт внедрения данных известен: это цифровые водяные знаки, так называемые «отпечатки пальцев», и заголовки, но их я рассматривать не буду.

Во-вторых. Почему НЗБ? Потому что это один из самых простых методов цифровой стеганографии, дающий скрытый канал с достаточно большой пропускной способностью.

Определения просты, но понятны:

  • Контейнер — некоторая информация, в частности файл, в которую можно внедрить другую информацию, не предназначенную для посторонних глаз.
  • Пустой контейнер — контейнер, в который ещё не внедрена информация. Соответственно, когда информацию внедрили, то контейнер становится заполненным.
  • Сообщение — секретная информация, наличие которой в контейнере необходимо скрыть, то, из-за чего весь сыр-бор. Это может быть файл, текст, что угодно. Исторически сложилось, что это всё называется сообщением.
  • Канал передачи — путь, по которому контейнер попадает от отправителя к получателю (пусть будут Юстас и Алекс, для интереса. Или Алиса и Боб, что тоже хорошо…).
  • Наблюдатель — промежуточное звено, задачей которого является определение, не передаётся ли от Юстаса Алексу чего-то скрытое и насквозь запрещённое в обычном их общении. Существует три типа наблюдателей: пассивный, активный и злонамеренный. Самый безопасный пассивный — он не может разрушить сообщение, или скажем заменить его ложным, все его возможности сконцентрированы на одном: смотреть, смотреть и еще раз смотреть… и быть тревогу, если что-то там высмотрит.

Предположим, что у нашего канала связи появился пассивный наблюдатель (бороться с активным можно только с помощью полной замены применяемого алгоритма, метод НЗБ не выдерживает такой атаки). Допустим, от Юстаса Алексу непрерывно пересылаются невинные — на первый взгляд — файлы. Если наблюдатель обоснованно определит, что в этих файлах не всё чисто, то это явится основанием для приглашения в гестапо, где, как известно, скорость перебора паролей очень высока, ибо прямо пропорциональна температуре паяльника. Или утюга, кому что больше нравится.

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

3. Собственно НЗБ

Что такое метод НЗБ? Это метод скрытия данных с искажением контейнера, основанный на особенностях человеческого восприятия. Конкретнее, идея метода заключается вот в чём: если взять картинку в формате BMP (или, скажем, как альтернативу 8 и более- битный оцифрованный звук), лучше всего TrueColor, в 24-х битном формате и взять да изменить младшие значащие биты цвета, то на глаз это будет незаметно. Почему 24 бита? Существует такой немаловажный фактор, как объём контейнера — сколько всего можно впихнуть в картинку, пока это не станет явным. Логично предположить, что чем больше контейнер, тем больше можно и внедрить, а распространенные на сегодня 24-х битные BMP — самая благодатная почва.

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

Внедрение может осуществляться так:

  • Берём сообщение и предварительно подготавливаем его: шифруем и пакуем. Этим достигается сразу две цели — повышение КПД и увеличение стойкости системы (см. далее). В начало для удобства можно записать сигнатуру метода, что не секретно, зато просто.
  • Берём контейнер и внедряем подготовленное сообщение в младшие его — контейнера -биты любым удобным для нас способом. Самое простое:
    • раскладываем упакованное сообщение в битовую последовательность;
    • заменяем избыточные биты (НЗБ) контейнера битами сообщения. Просто и со вкусом.

А вот тут-то собака обычно и закапывается… Надежность такого внедрения прямо пропорциональна соответствию характера распределения НЗБ в контейнере и сообщении. А распределения эти в подавляющем большинстве случаев совпадать-то и не будут. А еще в некоторых случаях это будет визуально заметно на картинке, построенной из одних только младших битов контейнера. Вот простейший пример, послуживший поводом к написанию статьи — берём исходную картинку:

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

Конечно, для большинства наблюдателей достаточно и того, что «на глаз не видно», но… слабые места своей защиты надо знать.

4. Как с этим бороться

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

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

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

Есть еще одно интересное решение — подбор картинки под сообщение: из множества имеющихся картинок подобрать такую, которая исказится менее всего при внедрении указанного сообщения.

5. Резюме, оно же вывод

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

Прячем данные в данных

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

Следует принимать во внимание, что при известных обстоятельствах наличие зашифрованных сообщений может вызвать интерес посторонних лиц. Если провайдер специально следит за шифрованными сообщениями, он может без труда найти и перехватить шифровки, ведь в этом случае передаваемые данные легко определить просто по внешнему виду. На Экране 1 приведен пример сообщения, зашифрованного с помощью популярной программы шифрования электронной почты Pretty Good Privacy (PGP). Заинтересованное постороннее лицо (например, провайдер) легко может найти это сообщение именно потому, что оно явно не содержит осмысленных данных. Кроме того, символы в этом сообщении встречаются случайным образом, не составляют последовательностей и не соответствуют частотным характеристикам, свойственным нормальному текстовому сообщению (для английского языка — часто встречающиеся буквы e, t, o, a и незначительное количество букв q, w, z).

Экран 1. Пример содержимого зашифрованного текстового файла.

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

Методы стеганографии

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

  • можно спрятать файл «на видном месте». Достаточно назвать его каким-нибудь осмысленным именем, скажем system_save.exe, и сохранить в каталоге C:winntsystem32;
  • можно воспользоваться скрытыми каналами. Программы, вроде Loki и некоторые средства для осуществления атак типа «отказ в обслуживании», Distributed Denial of Service (DDoS), используют для коммуникации протокол ICMP (Internet Control Message Protocol). Вы можете использовать ICMP для сокрытия информации;
  • можно использовать цифровые водяные знаки — это один из наиболее распространенных видов приложений стеганографии. Исторически водяные знаки воспроизводят изображения, логотипы или текст на бумаге, что позволяет идентифицировать источник документа. Такой же принцип используется для цифровых водяных знаков. Скажем, художник, создавая галерею цифровых изображений в Internet, может пометить свои работы встроенной сигнатурой. Если кто-либо попытается присвоить изображение себе, автор может открыть свою подпись и подтвердить права на изображение;
  • можно прятать данные в изображениях и аудиофайлах, размещенных в Internet или передаваемых по электронной почте. Этот способ стеганографии часто используют вкупе с обычным шифрованием для обеспечения большей приватности. Не в меру любопытным придется сперва отыскать файлы с зашифрованной информацией (непростая задача), а уже потом пытаться сломать код.

Процесс стеганографии

Общий процесс стеганографии можно выразить с помощью формулы:

Где cover_medium представляет собой базовый файл, в котором скрыты секретные данные hidden_data, зашифрованные ключом stego_key. В результате получается носитель данных stego_medium, который относится к тому же типу, что и исходный файл cover_medium. При этом файл cover_medium (следовательно, и stego_medium) представляет собой ничем не примечательные стандартные файлы изображения или аудиозапись. Я возьму в качестве примера файлы изображения, так что вместо терминов cover_medium и stego_medium буду использовать, соответственно, cover_image и stego_image.

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

В 8-разрядном изображении каждой точке соответствует 8-разрядное описание цвета из палитры в 256 цветов. 24-разрядное представление изображения дает куда более разнообразную палитру — может использоваться более 16 млн цветов. В 24-разрядном изображении для хранения каждого пиксела тратится три байта, описывающих яркость трех базовых цветов — красного, зеленого, синего (Red, Green, Blue, RGB).

Формат HTML для описания цвета страниц в Internet использует 24-разрядное представление цветов. Для описания цвета используется представленное шестью шестнадцатеричными цифрами значение RGB. Так, представление оранжевого цвета, имеющего 100% красного, 50% зеленого и 0% голубого, будет выглядеть следующим образом.

Для 100% красного:

Затем 50% зеленого:

Наконец, 0% голубого:

Что вместе образует представление #FF7F00 для оранжевого цвета в коде HTML. Символ решетки указывает на шестнадцатеричное значение.

Размер файла изображения напрямую зависит от числа пикселов и точности представления цвета. Так, 8-разрядное цветное изображение размером 640 * 480 пикселов будет занимать 307 Кбайт (640 * 480 * 1 байт), а 24-разрядное изображение размером 1024 * 768 займет уже 2,36 Мбайт (1024 * 768 * 3 байт).

Как мы видим, цветные изображения весьма велики. К счастью, существует несколько способов сжатия, позволяющих снизить требования к хранению и передаче цветных изображений. Форматы BMP и GIF используют алгоритмы сжатия без потерь, обеспечивающие точное восстановление исходного изображения. Существуют также алгоритмы сжатия с искажением информации, примером может служить формат JPG. В этом случае восстановленное изображение получается почти такое же, как и исходное, но все же имеет некоторые отличия. Хотя для стеганографии можно пользоваться обоими типами алгоритмов, инструменты стеганографии для JPG значительно сложнее, чем для BMP и GIF.

Как спрятать данные вручную

Простейшим способом сокрытия данных является замена самого младшего разряда (Least Significant Bit, LSB — наименее значимый разряд). Суть этого метода сводится к тому, что берется двоичное представление секретной информации hidden_data, и в каждом байте исходного изображения cover_image перезаписывается младший разряд LSB. При использовании в качестве cover_image 24-разрядного изображения изменения будут незначительны и невооруженным глазом неразличимы. Для сокрытия девяти разрядов данных, скажем 101101101, потребуется изменить всего 3 пиксела (9 байт) в кодировке RGB:

Меняя младший разряд слева направо сверху вниз, получаем результат (измененные разряды выделены полужирным шрифтом)

Для успешного кодирования девяти разрядов секретных данных потребовалось заменить всего четыре разряда исходного изображения, что составляет приблизительно 50% младших разрядов. Такой же метод можно использовать и для изображений с градациями серого цвета и восьмиразрядных цветных изображений. Правда, в восьмиразрядном цветном изображении искажения будут более заметны.

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

Хотя анализ методов стеганографии позволяет обнаружить скрытые сообщения, объем подлежащей анализу информации делает задачу сверхтрудной. Допустим, есть подозрение на наличие данных внутри изображения, размещенного на сайте Internet-аукциона. И что же, загружать из сети и анализировать все сотни или тысячи хранящихся на сайте изображений? Едва ли кто-то станет этим заниматься.

Сокрытие секретных данных с помощью программ

При желании можно найти множество программ стеганографии практически для любой платформы. Вот список некоторых популярных бесплатно распространяемых программ для Windows 2000 и Windows NT:

  • S-Tools 4.0 (можно получить на сайте компании WebAttack.com по адресу: http://www.webattack.com/freeware/ security/fwencrypt.shtml);
  • Hide4PGP 2.0 (можно найти на сайте Heinz Repp по адресу: http://www.heinz-repp.onlinehome.de/index.html);
  • MP3Stego 1.1.15 (можно загрузить с сайта Fabien A.P. Petitcolas по адресу: http://www.cl.cam.ac.uk/

fapp2/ steganography/mp3stego);

  • Stash-It (можно получить на сайте компании Smaller Animals Software по адресу: http://www.smalleranimals.com/stash.htm).
  • Подробнее изучить вопрос о программах стеганографии можно с помощью сравнительной таблицы на сайте компании Johnson & Johnson Technology Consultants (JJTC) по адресу: http://www.jjtc.com/Steganography/ toolmatrix.htm.

    Рассмотрим подробнее, как использовать S-Tools. Эта программа позволяет прятать данные в файлах изображений в форматах .bmp, .gif и в звукозаписях в формате .wav. Программа проста в использовании: достаточно перетащить на окно работающей программы S-Tools файл изображения или звукозаписи (cover_medium), затем перетащить на него файл hidden_data и указать ключ stego_key. Результатом работы программы будет файл stego_medium.

    Для примера я выбрал в качестве носителя файл 5th_wave.gif (cover_image) и перетащил его на окно программы. В примечании в нижней строке сказано, что в файле можно спрятать изображение до 138,547 байт. Я выбрал файл virusdetectioninfo.txt размером 14 Кбайт и перетащил его на изображение. На Экране 2 показано открывшееся диалоговое окно, в котором сообщается, что будет спрятано 6019 байт данных, и предлагается ввести дополнительную фразу — пароль для шифрования скрываемого текста. Я дважды ввел ключевую фразу и подтвердил шифрование с предлагаемым по умолчанию алгоритмом IDEA.

    Экран 2. Прячем текстовый файл в файле изображения.

    На Экране 3 приведено полученное изображение, содержащее мою шифровку. При визуальном сравнении изображения идентичны.

    Экран 3. Сравните изображение, содержащее спрятанные данные (справа), с оригиналом (слева).

    Получатель этого сообщения перетащит файл на окно программы S-Tools, щелкнет по картинке правой кнопкой мыши и выберет пункт Reveal (проявить). Правильная ключевая фраза, введенная в диалоговом окне, позволит прочитать информацию, скрытую в изображении, как показано на Экране 4. Чтобы сохранить расшифрованные данные в файле, достаточно нажать OK.

    Экран 4. Извлечение текстового файла из файла изображения.

    Применение стеганографии в реальной жизни

    Стеганография представляет собой интересный для изучения и применения объект, не слишком распространенный в системном администрировании. Но при этом стеганография не является лишь предметом академических исследований. Стеганография широко применяется, причем не только в мирных целях — так, в некоторых отчетах о расследовании террористических актов 11 сентября 2001 г. указывается, что стеганография использовалась террористами как один из способов передачи сообщений.

    Гарри Кесслер — профессор, руководитель программы Computer Networking в Champlain College, Вермонт. С ним можно связаться по адресу: kumquat@sover.net.

    Другие виды стеганографии

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

    «PRESIDENT’S EMBARGO RULING SHOULD HAVE IMMEDIATE NOTICE. GRAVE SITUATION AFFECTING INTERNATIONAL LAW. STATEMENT FORESHADOWS RUIN OF MANY NEUTRALS. YELLOW JOURNALS UNIFYING NATIONAL EXCITEMENT IMMENSELY.» («Президентское постановление об эмбарго следует немедленно принять к исполнению. Серьезная ситуация затрагивает международное законодательство. В заявлении предсказывается крах многих нейтральных стран. Бульварная пресса раздувает национальные настроения».)

    Первые буквы каждого слова образуют строку PERSHINGSAILSFROMNYJUNEI. Стоит расставить пробелы — и перед нами сообщение PERSHING SAILS FROM NY JUNE I. (Першинг отправляется из Нью-Йорка 1 июня.)

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

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

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

    Некоторые специалисты по стеганографии считают, что применявшиеся в годы Второй мировой войны коды языка Навахо морского корпуса ВМС США (United States Marine Corps Navaho Code Talkers) представляют собой один из видов стеганографии. Сообщения не были зашифрованы, но простой текст представлял собой язык, не понятный японцам.

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

    Поделитесь материалом с коллегами и друзьями

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

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

    Этот пост будет охватывать Стеганографию в Kali Linux – Скрытие данных в изображении.

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

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

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

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

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

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

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

    Стеганография в Kali Linux

    а. Steghide

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

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

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

    Особенности:

    • сжатие встроенных данных
    • шифрование встроенных данных
    • встраивание контрольной суммы для проверки целостности экстрадированных данных
    • поддержка файлов JPEG, BMP, WAV и AU

    б. StegoSuite

    Stegosuite – бесплатный инструмент стеганографии, написанный на Java. С помощью Stegosuite вы можете скрыть информацию в файлах изображений.

    Особенности:

    • Поддержка BMP, GIF и JPG
    • Шифрование AES встроенных данных
    • Автоматическое предотвращение однородных областей (только встраивание данных в шумные области)
    • Встраивание текстовых сообщений и нескольких файлов любого типа
    • Легко использовать

    Скрытие данных в изображении с помощью steghide

    Установка Steghide

    Установка в Kali Linux проста, так как steghide уже доступен в репозитории Kali Linux.

    Выполните следующую команду, и все готово:

    Скрыть текстовый файл в изображении

    Я создал папку steguide в корневой домашней папке и разместил файл picture.jpg и secret.txt там же.

    picture.jpg – это файл, в котором я собираюсь скрыть файл secret.txt.

    Я собираюсь показать здесь команды по всему этому безобразию.

    Чтобы скрыть текстовый файл в картинке в Kali Linux с помощью steghide, используйте следующую команду:

    Извлечение текстового файла из изображения

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

    Принимающий должен использовать steghide следующим образом:

    Если поставленная кодовая фраза верна, содержимое исходного файла secret.txt будет извлечено из файла picture.jpg и сохранено в текущем каталоге.

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

    После проверки убеждаемся,что все в порядке.

    Просмотр информации о встроенных данных

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

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

    Если вы ответите «yes», вы должны предоставить кодовую фразу.

    Затем Steghide попытается извлечь внедренные данные с помощью этой фразы и – если это удастся – выведет некоторую информацию об этом.

    Скрытие данных на изображении с помощью Stegosuite

    Установка stegosuite

    Установка в Kali Linux очень проста, так как stegosuite уже доступен в репозитории Kali Linux.

    Выполните следующую команду, и все будет установлено:

    Вставить текстовый файл в изображение с помощью Stegosuite

    Вам нужно запустить его из меню «Application» (или просто выполнить поиск). Откройте File > Open и откройте изображение, которое хотите использовать.

    Щелкните правой кнопкой мыши раздел файла и выберите файл и выберите файл secret.txt.

    Введите ключевую фразу и нажмите «embed».

    Несколько секунд, и он создаст новый файл picture_embed.jpg.

    Извлечение текстового файла из изображения с использованием Stegosuite

    Если вы хотите извлечь текстовый файл или данные из изображения, просто откройте изображение, введите парольную фразу и нажмите «extract».

    Стеганализ и обнаружение

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

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

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

    Различия, предполагающие, что носитель один и тот же, составляют пэйлоад.

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

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

    Стеганография мимо файлов: прячем данные прямо в секторах

    Небольшое предисловие

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

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

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

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

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

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

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

    Теперь перейдем к частностям.

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

    Следующий вопрос — в том, как нам отличить «правильные» данные от испорченных. Тут нам поможет контрольная сумма, да не простая, а SHA1. А что? Для git’а она достаточно хороша, значит, и нам подойдет. Решено: снабжаем каждый сохраненный фрагмент информации контрольной суммой, и если после расшифровки она совпала — значит, расшифровка удалась.

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

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

    Для проверки возьмем самый распространенный носитель — флэшку. У меня нашлась старенькая на 1 Гб, что вполне подойдет для экспериментов. Если вам, как и мне, пришла в голову мысль не париться с физическими носителями, а потестировать на файлике — образе диска, то сразу скажу: не выйдет. При форматировании такого «диска» линукс создает файл заново, и все неиспользуемые сектора будут заполнены нулями.

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

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

    1. Быстрое форматирование в формате FAT16 с размером кластера 16 кб. Это то, что предлагает сделать Windows 7 с флэшкой, на которой отсутствует файловая система.
    2. Заполнение флэшки всяким мусором на 50%.
    3. Заполнение флэшки всяким мусором на 100%.
    4. «Долгое» форматирование в формате FAT16 (с перезаписью всего).

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

    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 килобайт секретных данных прекрасно влезло в неиспользуемое пространство.

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

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

    Если вы когда-то разбивали жесткий диск на разделы, то могли обратить внимание, что далеко не всегда получается отвести все свободное пространство на диске. Первый раздел всегда начинается с некоторым отступом (обычно это 1 мегабайт, или 2048 секторов). За последним разделом тоже, бывает, остается небольшой «хвост» из неиспользуемых секторов. Да и между разделами иногда остаются промежутки, хотя и редко.

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

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

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

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

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

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

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

    Для сборки потребуется Qt версии 5.0 и выше и OpenSSL. Если что-то не собирается — возможно, придется подправить файл steganodisk.pro.

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

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

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

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

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

    Так какие же способы спрятать информацию есть в нашем распоряжении…

    Способ 1 — Банальный

    Самый простой способ — это переименовать файл. К примеру у вас есть картинка, которую надо спрятать. Вы просто переименовываете расширение файла и картинка больше не определяется системой как картинка. Но, понятное дело, что это защита от дурака. Если вы, к примеру, переименуете файл JPG в RAR, то такой RAR архив нельзя будет открыть, WinRar поругается на то, что этот архив битый, что вызовет подозрение и более глубокое изучение данного файла.

    Способ 2 — Банальный, продвинутый

    Ещё один простой способ, но всё же более продвинутый — это склеивание двух разных файлов в один. Простейший пример: добавление RAR архива в конец JPEG изображения. Такое изображение будет без проблем открываться в любой программе для просмотра/редактирования картинок, а также будет открываться и в программе WinRar. Дело в том, что почти все программы для работы с архивами рассчитаны на то, что архив начинается не с начала файла, так как возможно, что архив заключен в самораспаковывающуюся оболочку. Но недостатки данного способа в том, что такое склеивание можно легко заметить. К примеру если картинка имеет размер 200х200 и при этом весит 2 мегабайта, то тут же возникают подозрения. К тому же все форматы (контейнеры) обычно имеют четкую структуру и если вдруг в файле имеется какая то избыточная информация, то это легко обнаружить.

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

    Способ 3 — LSB

    Как уже писалось ранее, данный способ очень прост в реализации, при этом он не нарушает правила контейнера и файл не хранит избыточную информацию. Но данный способ имеет и не мало минусов. Во-первых он применим лишь к малому количеству контейнеров. К примеру его нельзя применить к формату JPG, MP3 или AVI. А ведь как правило файлы именно этих форматов хранятся сотнями на наших компьютерах и именно там удобнее всего прятать информацию. Лично я сразу заподозрил бы не ладное, найдя на компьютере большую библиотеку картинок в формате BMP. Также этот способ выдает себя с потрохами на изображениях с однородной поверхностью. А попробуйте применить данный метод к MP3 файлу. Изменение всего одного бита раз в 2 и даже более байтов, приведет к неминуемой порче аудио данных.

    Для желающих поиграться с этим способом могу предложить плагин для Total Commander’a который позволяет прятать данные в некоторых контейнерах картинок, а также в WAV (при условии, что аудио данные закодированы кодеком PCM).

    Также имеются более продвинутые алгоритмы, к примеру алгоритм Коха-Жао, который прячет данные только в картинках. Его отличие в том, что он кодирует один бит информации в блоках 8х8 пикселей. К сожалению, из-за малого количества информации об этом алгоритме в интернете, не могу рассказать о нем что то ещё.

    Способ 4 — Мета данные

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

    Только недавно на хабре появился пост Прячем текст в MP3 где описывается реализация на PHP хранении своей информации в тэге ID3v1. Но дело в том, что тэг ID3v1 имеет очень жесткие ограничения и много информации там не сохранить. К тому же в любом нормальном медиа-проигрывателе все ваши данные видны как на ладони. Совсем другое дело тэг ID3v2.4 который позволяет хранить данные гораздо больших размеров, а также позволяет сохранять какие либо не стандартные данные. К примеру некоторые программы хранят там настройки громкости и нормализации для каждого отдельного файла. Медиа-плееры обычно не отображают не известные им параметры.
    Раз уж мы говорим об MP3, то стоит упомянуть и про малоизвестный тэг Lyrics3, который был создан для хранения в файле текста песен, а также как расширение тэга ID3v1 (к примеру позволял сохранять более длинное название песни), но выход стандарта тэга ID3v2 так и не дал тэгу Lyrics3 получить широкое распространение. Но как не странно, большое количество MP3 файлов которые сейчас можно найти на просторах интернета, содержат в себе этот тэг (хотя кроме название песни там больше ничего не хранится).

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

    Не многим известно, что файлы формата AVI также имеют поддержку мета-данных, причем хранить там можно много всего. Как и в MP3 и JPEG можно создать какой то свой ключ, который будет просто проигнорирован программами работающими с мета-данными. Могу порекомендовать хорошую программу для просмотра мета-данных AVI файлов: abcAvi Tag Editor

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

    Найди, если сможешь. Учимся профессионально скрывать файлы с помощью стеганографии.

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

    Стеганография — это способ пересылки или хранения информации с учётом сохранения в тайне самого факта такой передачи.

    Зачем она вообще нужна? Допустим, вы хотите передать какой-то важный файл(или скрыть какой-то важный файл), но передавать его(или хранить) в чистом виде довольно таки опасно. Тут нам и приходит на помощь стеганография. Все ваши трояны, эксплоиты, папки с «опасной» информацией мы не просто храним или передаём, а скрываем в каком-то другом файле(например, в картинке), но при этом мы не рушим целостность самого файла и целостность картинки, в которую мы прячем наши данные.

    Инструменты стеганографии

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

    Например, для сокрытия какого-либо файла в картинку могу порекомендовать от себя программу Anubis(нужен JRE) или же DeEgger Embedder(нужна установка .NET). Они работают по принципу LSB, то есть, грубо говоря, ставят один файл в конец другого.

    Программы выше максимально просты в использовании, разберётся любой, работают в режиме GUI.

    Если брать в расчет скрипты терминала, могу порекомендовать steghide.

    Вводим пароль и отправляем нашу склейку. Для расшифровки такой склейки нужно ввести:

    Вводим пароль и вуаля.

    2. Метод наложения одного файла на другой. Например, написать скрытое сообщение белым цветом на белом фоне в каком-либо документе. Но такой метод стеганографии является довольно простым в обнаружении. Так что использовать его довольно опасно. Особенно, когда вы передаёте что-то такое, что может не понравиться силовым структурам.

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

    4. MP3Stego. Эта программа позволит нам прятать разные ресурсы в файлах с расширением .mp3. Суть работы программы состоит в том, что данные шифруются, затем в сердце процесса кодирования mp3 файла (из .wav) подмешиваются в финальный результат. Получается обычный MP3 файл, без искажений, но хранящий в себе закодированное сообщение.

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

    1. С самого начала дешифровки нам нужно воспользоваться консольной утилитой Линукс под названием File. Этот инструмент определяет тип файла, который может отличаться от того, который нам прислали. Например, вам прислали видео файл, мы проверяем его с помощью этого инструмента и видим расширение .txt:

    Если вы нашли какие-то странности. Например, файл с расширением .png, а программа вывела расширение .txt, то в таком файле 100% что-то спрятано.

    2. Для вывода строк файла и нахождения разного рода странностей пользуемся утилитой Strings(выводит строки файла):

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

    3. Большую роль при декодировании спрятанного файла играют мета-данные, которые можно найти при помощи exiftool.

    4. Если в нашем неприметном файле есть исполняемый код, то найти его можно с помощью утилиты Binwalk

    Если мы видим в выведенной информации другой файл, помимо нашего(например zip архив). Мы можем воспользоваться флагом -e. Этот флаг распаковывает спрятанный файл, будь то архив или видео:

    5. В случае, когда нам нужно скрыть или найти информацию в аудио файле, не выходя из консоли Linux, можно воспользоваться утилитой на С++, которая называется Steghide.

    6. Большинство людей, которые хотят скрыть какой-то файл, используют аудио файлы для скрытия. Лучшие инструменты для анализа аудио файлов: Sonic Visualiser, Audacity.

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

    7. Очень полезной программой, сочетающей все «из коробки» является Stegsolve. Это программа с GUI интерфейсом, работающая на Java. Поэтому для ее работы вам придется установить Java себе на компьютер и спокойно работать.

    Для ее использования нужно нажать Analyse в верхнем левом углу и использовать функции File Format и Data Extract, там вы можете найти много интересного в выпадающем окне.

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

    Заключение

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

    Social Engineering — Канал посвященный Социальной инженерии, профайлингу, НЛП, Хакингу, Анонимности и безопасности в сети интернет, OSINT, Пентест, Даркнету и все что с ним связано. Добро пожаловать 😉

    Форсайт — Кибербезопасность, уроки по хакерству и беспощадные вирусы.

    Библиотека хакера — Литература по информационной безопасности и хакингу. Полезные материалы. Сливы курсов и обучений.

    Арсенал хакера — Все необходимое для продвинутого хакера. Хакерские устройства, шпионские гаджеты и другие находки с AliExpress.

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

    Греки, Ленин и стеганография

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

    » К ОМПАНИЯ » Л ЮЦИФЕР» И СПОЛЬЗУЕТ Е ДКИЙ Н АТР, Т ЯЖЕЛЫЕ Г РУЗИЛА, О СТРОГУ Т РЕХЗУБУЮ, О БВЕТШАЛЫЙ В АТНИК».

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

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

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

    К стеганографии также относится написание текстов невидимыми чернилами, проявляющимися при нагревании. Помните дедушку Ленина, который в тюрьме писал статьи в «Искру» молоком между строк книги? Еще «чернильница» у него была из хлеба, и он ее быстро съедал, когда надзиратель подходил к двери камеры. Прямо детективная была история! В качестве чернил также могли использоваться соки, уксус и даже моча (а запах!). По мере совершенствования техники обнаружения тайнописи появились и специальные химические соединения. Но это было до компьютеров.

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

    Посмотрим, как реализуется идея стеганографии с помощью компьютера.

    Информация:

    Программа: S-Tools (Steganography Tools) .

    Статус: freeware (бесплатная программа)

    Операционная система: Windows 95

    Автор: Andrew Brown

    Размер: 270 кб

    Программа: JSTEG

    Статус: freeware (бесплатная программа)

    Операционная система: DOS

    Автор: Derek Upham

    Размер: 472 кб

    Игрушка с сильной криптографией

    Рисунок 1.

    Сначала поговорим о приложении S-tools (Steganography Tools). Оно прячет информацию в графических файлах форматов BMP и GIF, а также в звуковых файлах формата WAV. Внешне работа с программой выглядит так. После распаковки архива запускаем файл s-tools.exe, затем Windows Explorer (Проводник). Последний понадобится, так как S-tools использует технологию drag and drop, соответственно окна не должны полностью перекрываться. Перетаскиваем мышью файл в окно программы S-tools, он отображается в окне либо как есть (для картинки), либо в виде линии, изображающей уровни сигнала (для звука). На рисунке в качестве примера взят любимый звук Microsoft (Copyright Brian Eno) [рис.1]. В правом нижнем углу окна S-tools появится информация о размере данных, которые можно спрятать в этом файле. Перетаскиваем в окно с картинкой либо уровнем сигнала любой файл, предназначенный для скрытия, размером не более указанного. После проверки размера данных программа запросит пароль, набрав который можно будет восстановить информацию. Затем начнется скрытие, время которого зависит от размера данных (наблюдать за процессом можно в окне Action). Когда все будет готово, появится окно Hidden data [рис.2]. Сохранить результат можно, щелкнув в окне правой кнопкой мыши и выбрав пункт «Save as. «, введя имя файла и нажав ОК. Для восстановления послания необходимо перетащить картинку либо звук в окно S-tools, щелкнуть на изображении правой кнопкой и выбрать пункт «Reveal. «. Вас пропросят ввести пароль, после чего если спрятанные данные есть, то начнется их восстановление, за процессом которого можно наблюдать в окне Action, либо если данных нет, то ничего и не произойдет, не ждите.

    Рисунок 2.

    Очень хочется прокомментировать результаты экспериментов с графикой и звуком. При использовании 24-битной графики результат смотрится весьма эффектно: в картинку размером 640х480 я затолкал около 110 кб информации — и видимых изменений не произошло! Работа с форматом GIF меня не вполне удовлетворила. Хотя при существенно меньших размерах файла в картинку помещается столько же информации, сколько и в предыдущем случае, 32 цвета смотрятся настолько убого, что еще неизвестно, что вызовет большее подозрение противника — передача красивого и большого изображения или маленького и страшного, тем более, что применение режима True Color давно не экзотика, а повседневность. Кстати, в связи с этим возникла мысль: а не являются ли спамеры, отправляющие в группы новостей alt.binaries.] множество мелких картинок очень низкого качества, секретными агентами, обменивающимися информацией?

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

    Но не тут то было. На помощь приходит комбинирование стеганографии с криптографией. S-tools работает следующим образом: скрываемые данные сначала сжимаются (степень сжатия можно программно регулировать из меню File/Properties), затем шифруются по алгоритму (IDEA, DES или MDC) со 128 битным ключом, полученным из введенного пароля, после чего распределяются по графическому или звуковому файлу в последовательности, определяемой генератором псевдослучайных чисел, начальное значение которого также связано с тем же паролем. (Ух! Ничего себе игрушечка, аж дух захватывает!)

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

    Откуда есть пошла скрытопись

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

    Пусть имеется число 180, в двоичном коде оно выглядит так: 10110100. Давайте спрячем его в последовательности из восьми байт, приведенной в первой колонке таблицы. Для этого заменим в двоичном представлении чисел последовательности (вторая колонка) младшие биты ( выделены красным ) битами нашего числа. Получим третью колонку таблицы, десятичное представление чисел которой запишем в четвертой колонке. [таб.1]

    Таблица 1.
    Исходные значения (десятичные)Двоичное представлениеПоследовательность после заменыДесятичные значения после замены
    135100001111000011 1135
    121011110010111100 0120
    120011110000111100 1121
    107011010110110101 1107
    143100011111000111 0142
    98011000100110001 199
    103011001110110011 0102
    102011001100110011 0102

    Как видно из полученного результата, изменение значений последовательности не превышает единицы. Если взять 24- битное кодирование цветов (для хранения каждого элемента используется три байта), то объем информации, который можно «запрятать» в картинку: (640х480х3)/8 = 115200 байт. Правда, объем самого изображения в формате BMP велик (921600 байт), что, по мнению автора программы, само по себе может привлечь внимание противника. Но, очевидно, сжимать изображение каким-либо методом, вносящим потери, нельзя, так как информация будет безвозвратно утеряна — возможно лишь запаковать его архиватором. Такая же схема применяется и для звука. Для изображений формата GIF (число цветов в которых принципиально не может превышать 256) программа предлагает либо преобразовать его в 24-битное, либо уменьшить число цветов до 32. В последнем случае «размазывание» данных будет сделано по трем младшим битам каждого байта, но, как я уже говорил, качество 32-цветной картинки явно неудовлетворительное.

    Вышеперечисленные недостатки не способствуют широкому применению этой программы, которая годится лишь для игры или для секретных спамеров. Кстати, хотите поиграть в шпионов? Зайдите на мою страницу www.uc.ru/

    shelter/ и попробуйте прочесть послание, спрятанное в находящихся там картинках.

    JPEG + STEG = JSTEG

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

    Вот между этими стадиями и происходит вставка наших секретных данных. Образец программы для DOS, называемой JSTEG и реализующей этот алгоритм, можно достать по указанному выше адресу. В архиве находятся два исполнимых файла cjpeg.exe и djpeg.exe. Первый позволяет создать файл в формате JPG и вставить в него секретную информацию, второй — распаковать файл и извлечь данные. В качестве исходного файла используется формат PPM (многие программы умеют сохранять в нем изображения — например, Lview — www.lview.com). Простейшая командная строка для запуска:

    Здесь file.txt — секретная информация, подлежащая запрятыванию — файл может быть и не текстовым, img.ppm — исходная картинка, img.jpg — результат.

    Для распаковки используется следующее «заклинание»:

    Здесь file.txt — файл, куда будет помещена секретная информация, вытащенная из картинки, img.jpg — картинка с секретом, img.ppm — распакованное изображение (его можно выбросить, если картинка вам не понравилась).

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

    Если нельзя, но очень надо.

    В заключение вопрос: а надо ли нам все это и насколько серьезно применение таких методов скрытия информации? Да, штука забавная, «размазать» по картинке несколько десятков килобайт данных, да чтобы их можно было восстановить, да чтобы картинка не портилась — это интересно, причем в чем-то она перекликается с идеей цифровой подписи для документов или водяного знака для изображений (digital watermark). Однако же идея цифровых водяных знаков проработана гораздо лучше, они не исчезают даже при сканировании изображений (чего никак нельзя сказать про стеганографическую информацию) Практическое применение? С одной стороны, такая штука вроде как и не нужна. После появления программы PGP вести секретную переписку можно легко и непринужденно, не прибегая к экзотическому упрятыванию информации. К тому же нетрудно подсчитать, что полезных данных в приходящем мусоре (коим может считаться картинка-контейнер) содержится лишь 12%.

    Однако, Указом президента Российской Федерации # 334 от 3 апреля 1995 г. запрещено применение криптографии в любом виде без лицензии ФАПСИ, то есть запрещается использовать даже ZIP с паролем, не говоря уже о более сильных средствах. Подробнее о юридических аспектах криптографии, а также о проблемах защиты личной информации в Сети и не только можно прочитать здесь: www.geocities.com/SiliconValley/Vista/6001/legal.htm.

    Так что посмотрите, поразвлекайтесь, заходите в гости на www.uc.ru/

    shelter/, посмотрите картинки, попробуйте прочитать послания, спрятанные в них, а потом выбросьте это из головы.

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

    Идем на официальный сайт и скачиваем приложение нажав Download. Можно сделать небольшое пожертвование и поддержать проект. Запускаем приложение.

    Жмем Hide. Чтобы мы хотели скрыть? Логины Даркнета, номера биткоин-кошельков, Pgp-ключи и т. д. Рекомендую, хранить все логины и пароли в KeePass, а саму базу данных KeePass скрыть, замаскировав ее под картинку, фото и т. д.

    В левом верхнем углу, нужно заполнить три пароля. При желании второй и третий можно отключить, сняв галочки с Enable (B) и (C).

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

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

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

    Интересная опция — добавить приманку (Add Decoy!), по сути: еще один контейнер и пароль, которые вы могли бы раскрыть, если кто-то заметил скрытые данные в файле, таким образом сохранив «второе дно» в тайне.

    Жмете Hide Data! И сохраняете файл. Чтобы раскрыть информацию, в главном меню выберите Unhide!, добавьте ваш контейнер, введите пароли и выберите папку, где сохранить файлы. Жмем Unhide!

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

    Интересно: Вы можете использовать OpenPuff для создания и чтения стегометок, своеобразных «водяных знаков», только для цифровой информации, чтобы защитить свои изображения авторскими правами, в случае, если ваши авторские фото, кто-то будет использовать без вашего согласия. Засудите его!

    Чтобы выставить метки, выберите в главном меню SetMark.

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

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

    Читать еще:  «Ноль без границ» МТС: Как подключить роуминг?
    Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector