Pull to refresh

Comments 38

Было бы неплохо, если бы автор к теоретическому описанию давно известных способов добавил практические реализации, софтварные решения (>3) и прочие кошерные вещи.
В принципе, идея поста была просто ознакомить читателя с возможными вариантами.
Кстати, скажите, реализацию какого из пунктов вам хотелось бы видеть? Возможно позже распишу примеры реализации интересующих народ способов стеганографии.
В идеале — по всем бы привести пример. Тем паче, что первые два решаются скриптами в шелле.
>> А попробуйте применить данный метод к MP3 файлу. Изменение всего одного бита раз в 2 и даже более байтов, приведет к неминуемой порче аудио данных.
Если тупо брать любой байт и менять младшие биты — логично, что все испортится. А если покопаться в формате и менять с умом, то lsb и в случае с mp3 прекрасно работает. И приведенная Вами в пример mp3Stego это подтверждает. А вообще как-то всё очень поверхностно расписано. И как минимум еще одна задача стеганографии — незаметная передача информации (помимо хранения).
Возможно вы правы в том плане, что требуется более глубокое изучение формата… только вот мне кажется тогда это уже будет не совсем LSB. Могу только сказать, что в своё время писал эксперементальную программу, где байты менялись очень аккуратно, игнорируя заголовки и CRC, но всё это привело к порче аудио данных.
>> это уже будет не совсем LSB
Уже не совсем это как «чуть-чуть беременна». Если меняются младшие малозначащие биты — это и есть LSB, и неважно, что для их замены надо сначала разобрать Хаффмана или ДКП.
UFO just landed and posted this here
Ещё можно хранить текст в Gif файлах. Делается это так:
1. Пишем в графическом редакторе текст каким-нибудь цветом (например, красный).
2. В таблице цветов Gif файла меняем красный цвет на цвет фона этого текста.
3. Сохраняем полученную картинку.
В итоге получаем Gif картинку без видимого текста, который можно прочитать только изменив определенный цвет в таблице цветов на любой другой :)
Хм, интересная и очень простая идея. В принципе применима не только к GIF, но к любым изображением с индексированной таблицей цветов.
Для WAV, AVI, EXE (и многих подобных chunked-форматов) есть гораздо более секретный способ: хранить свои данные между чанками. Там во всех заголовках указаны смещения к полезным данным. Данные можно отодвинуть, а после заголовка положить что надо.
Наличие такие данных между описанными в формате файла кадрами очень легко проверить, что существенно увеличивает вероятность обнаружения вложения. Любые методы, основанные на измененном размере контейнера, как правило не являются стойкими к обнаружению. Именно поэтому LSB хорош — размер файлов не меняется.
Все это конечно хорошо, но стеганография подразумевает, что доказать наличие скрытого контента должно быть невозможно, если нет соответствующего ключа. Все остальное — детские игрушки.

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

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

Но с другой стороны, вы правы — стеганография в широком смысле подразумевает любые способы прятать информацию. На сколько они надежны — это уже другой вопрос
Насчет MP3 файлов: где-то год назад сделал программку для записи данных в заголовки блоков на которые делятся такие файлы. Там есть неиспользуемые зарезервированные биты, правда объем записанной информации получается совсем маленький…
Я бы мог описать хороший алгоритм внедрения в mp3 с использованием lsb данных (не служебной информации), но не позволяет размер комментариев. А для полноценной статьи не позволяет карма =)
>>переименуете файл JPG в RAR, то такой RAR архив нельзя будет открыть, WinRar поругается на то, что этот архив битый
Зачем переименовывать в то, что можно открыть? Переименовывать нужно в какой-нибудь системный файл, с правдоподобным именем и запихивать в нутро ОС, куда-нибудь в самые потроха.
Вроде, можно юзать PNG: низвестные программе блоки должны просто игнорироваться. А пересобрать PNG-файл с добавкой пары своих блоков не так и сложно.
Спрятать еще можно в *.mkv, вроде больше подходит, нежели *.avi :)
В ctf'ах такие задания очень популярны, и порой придумывают такое, что… В общем, способов гораздо больше :)
В тему — http://lifehacker.com/#!5771142/embed-a-truecrypt-volume-in-a-playable-video-file
Вкратце, запихиваем том TrueCrypt в абсолютно рабочий mp4 файле. Учитывая размеры BDRemux'ов и невозможность определить реальный бит-рейт просто посмотрев фильм на небольшом экране, этот способ весьма неплох.
а скрытый раздел в томе turecrypt не достаточно?
писал диплом наподобие 5 го способа.
только внедрял wav (цифровая подпись) в wav.
если не ошибаюсь автор stereoMP3 аналогичный метод использовал (метод эхо-эффекта) могу конечно ошибаться но такого результата помоему только этим методом добиться можно. давненько писал то :).
Я когда в своё время баловал со всякими взломами форумов и прочими мелкими пакостями, дампы с паролями прятал при помощи стеганографии в порно картинках =) Т.е. как и у любого подростка у меня были глубоко в файловой системе в скрытой папке куча порно картинок, ни кто бы не догадался что в них скрываются дампы информации по пользователям.
Программа для действий называлась Steganos Security Suite, если кому интересно.
Чуть ниже я объяснил почему не написал про ntfs потоки
К примеру у вас есть картинка, которую надо спрятать. Вы просто переименовываете расширение файла и картинка больше не определяется системой как картинка.


Не совсем так. Многие программы в linux-системах для определения типа файла используют magic bytes вместо расширения. Например, mplayer.
> картинка больше не определяется системой как картинка.
Смотря какой системой…

Честно говоря, ожидал от статьи куда большего, а тут даже альтернативные потоки ntfs (как выше уже напомнил Philosoft) не упомянуты.
К примеру какое-нибудь зло в духе «хранение информации особой уличной фрагментацией файлов на винчестере» (не особо претендует на реальность) :)

Про ntfs потоки, я специально ничего не писал, так как считаю это плохим способом скрытия информации. Вопервых эти потоки не такие уж и скрытые, а вовторых они являются лишь особенностью файловой системы NTFS и стоит файл скопировать, к примеру, на флешку с FAT, как вся информация теряется.
Для видео есть замечательный плагин для VirtualDub — StegoVideo.
Вобщем-то все способы кроме последнего к заголовку топика не имеют отношения.
UFO just landed and posted this here
К примеру его нельзя применить к формату JPG, MP3 или AVI
Что? EXIF секцию жпега можно растянуть до бесконечности, от mp3 файла можно оставить только заголовок (id3 + 4 байта заголовок mp3) — все остальное заполнить тем же RAR архивом, или вообще записать информацию в ID3-тэг. В AVI можно сделать нерабочую звуковую дорожку.
На сколько хватит воображения — к стольким форматам можно дописать дополнительную информацию.
Есть очень мало форматов, в которые совсем ничего нельзя дописать так, что оно будет правильно восприниматься.
UFO just landed and posted this here
Данный проект имеет открытый код, можно свободно скачать исходники и доработать их.
UFO just landed and posted this here
Вообще правильно «не складывать яйца в одну корзину», и секретное хранить не в одном файле а распределенно по N-му количеству файлов. Тогда например коллекция mp3 может тихо в себя вмещать несколько мегабайт скрытой информации в id3 тэгах. Главное при этом знать правило по которому эта информация может быть из этой коллекции получена. Например:

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

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

таким образом в многогигабатной коллекции медиабарахла можно абсолютно незаметно спрятать несколько сот мегабайт секретов.
Sign up to leave a comment.

Articles