Если ты думаешь, что в фотках с котиками не может скрываться ничего постороннего, — спешу тебя разочаровать (или, наоборот, порадовать!). Сейчас я покажу, как внедрить в картинку, архив или песню любую постороннюю информацию, да так, чтобы ее никто там не заметил. Интересно? Погнали!
О принципах стеганографии мы уже не раз писали — смотри, к примеру, статью «
Для просмотра ссылки необходимо нажать
Вход или Регистрация
». Однако в ней перечислены далеко не все утилиты и прицел сделан на Windows. Сегодня мы рассмотрим восемь альтернативных утилит, в основном — кросс‑платформенные.CLOAKIFY
- Платформа: любая
- Где скачивать:
Для просмотра ссылки необходимо нажать Вход или Регистрация
Для просмотра ссылки необходимо нажать
Вход или Регистрация
У программы есть огромный плюс — она умеет маскировать что угодно не просто в картинках, а еще и в видео, музыке и даже программах, хоть и с последними получается плохо — выходной файл сильно раздувается.
Работает Cloakify на Python 2.7, который уже морально и физически устарел, а использование Base64 для скрытия информации от невооруженного глаза приводит к сильному увеличению размера, не давая никакого заметного преимущества.
Для примера давай обычный текстовый документ внедрим в картинку формата JPEG. Мой исходный файл называется save.txt и лежит в одной директории с самой программой. Внедрение файла крайне простое и выглядит примерно так.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Пропускаем функцию добавления шумов. Для нас они погоды не сделают, но, если ты хочешь дополнительно замаскировать информацию, могут помочь.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Как ты уже мог догадаться, этот софт для сокрытия действительно секретной информации применять стремно. Но есть и плюсы, вроде простоты работы и того, что выходных форматов чуть более чем куча.
STEGHIDE
- Платформа: любая
- Где скачивать:
Для просмотра ссылки необходимо нажать Вход или Регистрация
Steghide умеет не просто упаковывать данные в картинку или трек, а еще и шифровать секретную нагрузку.
Но есть и минус: не все фотографии и аудиофайлы подойдут для внедрения в них секретной нагрузки. Если файл слишком маленький — внедрить в него ничего нельзя.
Давай попробуем объединить картинку cats.jpgи секретный файлик save.txt.
Открываем терминал и пишем:
steghide embed -cf cats.jpg -ef save.txt
- --embedfile [-ef] — файл, который мы будем встраивать;
- --coverfile [-cf] — файл‑обложка, в который внедряется секретная инфа;
- --compress [-z] — сжимать данные перед упаковкой;
- --encryption [-e] — шифровать внедряемые данные.
steghide extract -sf cats.jpg
Ключ --stegofile [-sf] позволяет выбрать файл со скрытой информацией, а --passphrase [-p]указывает пароль.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Из‑за применения сжатия разница размеров до и после внедрения минимальна.
Мне понравилась возможность ставить пароли и сжимать данные. Однозначно хорошая штука, которую можно использовать в любительских целях. К тому же можно создать цепочку из объектов, которые будут спрятаны друг в друге. А минус только в том, что не всякое изображение подходит для этой манипуляции, но мы же живем в XXI веке, и найти новую фотку вообще не вопрос, правда?
SPECTROLOGY
- Платформа: любая
- Где скачивать:
Для просмотра ссылки необходимо нажать Вход или Регистрация
Перед первым запуском нужно поставить модуль pillow.
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
Сразу бросается в глаза второй огромный минус — крайне медленная работа. Хоть он и с лихвой перекрывается плюсами в виде необычного алгоритма работы и переносимости (написана на Python).
Давай запакуем изображение BMP в файл WAV. Делается это так:
python spectrology.py your_filename.bmp -o music.wav
- --output [-o] — флаг, отвечающий за название выходного аудиофайла;
- --botton [-b] задает нижний частотный диапазон;
- --pixels [-p] позволяет установить количество пикселей в секунду;
- --sampling [-s] ставит частоту дискретизации.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
В целом работает медленно и из коробки даже не запускается — приходится недостающие модули ставить вручную. Не производит впечатления хорошо проработанного инструмента, хотя задумка, безусловно, классная.
IMAGESPYER G2
- Платформа: Windows
- Где скачивать: где получится
ImageSpyer прячет секретные файлы только в картинки и даже разрешает ставить пароль, чтобы зашифровать данные перед внедрением. Программа поддерживает около 30 алгоритмов шифрования внедряемой информации и 25 хеш‑функций для подписи, чтобы убедиться, что встроенный в картинку файл не побился при передаче.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Большой плюс — наличие графического интерфейса с понятными пояснениями и множеством настроек. Выходных форматов всего два: BMP и TIFF.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Посмотрим, насколько сильно увеличился объем фотографии.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Как видишь, из маленького котика размером 59,6 Кбайт мы сделали толстого кота на целых 1530 Кбайт. Результат неплохой, да и работает ImageSpyer быстро, так что смело рекомендуем к использованию.
REDJPEG
- Платформа: Windows
- Где скачивать: где получится
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Для просмотра ссылки необходимо нажать
Вход или Регистрация
А что у нас по объему после запаковки текста в картинку?
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Впечатления исключительно позитивные. Программа позволяет хорошо спрятать и зашифровать любую нужную информацию. Подходит для постоянного использования.
OPENSTEGO
- Платформа: любая
- Где скачивать:
Для просмотра ссылки необходимо нажать Вход или Регистрация
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Как и ImageSpyer, OpenStego значительно раздувает размеры файла, хоть и не настолько сильно. Поддерживается также всего один способ упаковки, но это легко поправить плагинами. Выходные файлы могут быть только в формате PNG, но это нельзя назвать совсем уж большим минусом, тем более что на вход можно подавать почти любой формат.
Есть и интересная функция, которой я не нашел у конкурентов, — Digital Watermarking. Она позволяет тайком пометить фотографию, чтобы легко найти вора. Для этого программа внедряет в картинку незаметный идентификатор, который в дальнейшем можно будет достать и проверить, кто взял картинку без спроса.
Программа не требует установки, а запускается батником.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Файл на выходе получился куда толще, чем был, — размер увеличился почти на 800 Кбайт.
По сравнению с ImageSpyer OpenStego все же более богат фичами, что мне понравилось.
SILENTEYE
- Платформа: любая
- Где скачивать:
Для просмотра ссылки необходимо нажать Вход или Регистрация
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Из очевидных преимуществ отмечу ввод маскируемого текста прямо в окне программы вместо загрузки текстовых файлов из стороннего редактора. Серьезно, фича простая, а никто до этого не додумался. Форматы выходных файлов картинок — BMP, JPEG, PNG, GIF, TIFF, звука — только WAV.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Можно настроить качество выходного изображения — оно определяет, сколько потерь будет при кодировании в JPEG.
Для шифрования внедренных данных применяется AES, но настроек куда больше, чем у OpenStego.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
При проверке увеличения объема пришлось использовать другую картинку в качестве исходной, но видно, что объем почти не изменился, то есть программа работает эффективно.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Размер файла с картинкой увеличился всего на 13,5 Кбайт — очень хороший результат!
Утилита может спокойно заменить старичка OpenStego. Работает она чуть медленнее конкурентов, но зачастую это некритично. Тоже рекомендую.
IMAGEJS
- Платформа: Linux
- Где скачивать:
Для просмотра ссылки необходимо нажать Вход или Регистрация
ImageJS позволяет создать картинки, которые одновременно представляют собой настоящие JS-скрипты. Это нужно, чтобы упростить проведение более опасных XSS-атак, в которых иногда требуется подгрузить скрипт именно с атакованного домена. Вот тут на помощь приходит возможность загрузить туда аватарку, которая одновременно содержит JavaScript payload для дальнейшей атаки. Программа поддерживает внедрение в форматы BMP, GIF, WEBP, PNG и PDF.
Для сборки нужны пакеты build-esential и cmake. Дальше все просто:
$ git clone
Для просмотра ссылки необходимо нажать
Вход или Регистрация
$ cd imagejs
$ mkdir build
$ cd build
$ cmake ..
$ make
Давай создадим script.js со следующим кодом, а потом упакуем его в image.gif:
alert("Hello, Xakep!");
./imagejs gif script.js -i image.gif
На выходе будет файл с двойным расширением, но это не беда.
Сейчас мы проверим все в деле! Создавай HTML-страничку со следующим кодом и сохраняй ее рядом с нашей заряженной картинкой.
<html>
<title>Knock, Knock, Neo</title>
<head>
<img src="script.js.gif" alt="Matrix">
<script src="script.js.gif"></script>
</head>
</html>
Сохраняем и открываем. Должно получиться как на скриншоте.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Размер картинки почти не меняется, что нам очень на руку.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Программа шикарна, хоть и применима только в очень специфичных целях.
ВЫВОДЫ
Заменить кросс‑платформенный и богатый фичами OpenStego сложно, но при желании можно. SilentEye будет неплохим выбором, но и утилитки Александра Мясникова тоже рекомендую попробовать, если у тебя Windows. Если же ты фанат консоли или мастеришь какую‑то автоматизированную систему, то тебе может пригодиться один из вариантов, написанных на Pyhton.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
В таблице я свел воедино информацию об упомянутых программах и протестировал стеганографирование в картинки текстового файла размером 1,07 Кбайт.