Aletheia – это инструмент стеганализа для обнаружения скрытых сообщений в изображениях.
Сначала вам нужно клонировать репозиторий GIT:
# git clone https://github.com/daniellerch/aletheia.git
Внутри каталога Aletheia вы найдете файл требований для установки зависимостей Python с pip:
# sudo pip install -r requirements.txt
Aletheia использует Octave, поэтому вам нужно установить его и некоторые зависимости.
Вы найдете зависимости в файле octave-requirements.txt.
В дистрибутивах Linux на базе Debian вы можете установить зависимости с помощью следующих команд, представленных ниже.
Для других дистрибутивов вы можете найти соответствующие.
# sudo apt-get install octave octave-image
После этого вы можете выполнить Aletheia с:
# ./aletheia.py # ./aletheia.py <command> COMMANDS: Attacks to LSB replacement: - spa: Sample Pairs Analysis. - rs: RS attack. Feature extractors: - srm: Full Spatial Rich Models. - srmq1: Spatial Rich Models with fixed quantization q=1c. Embedding simulators: - hugo-sim: Embedding using HUGO simulator. - wow-sim: Embedding using WOW simulator. - s-uniward-sim: Embedding using S-UNIWARD simulator. - hill-sim: Embedding using HILL simulator. Model training: - esvm: Ensemble of Support Vector Machines. - e4s: Ensemble Classifiers for Steganalysis.
Статистические атаки на замену LSB
Стационарные методы замены LSB, то есть методы, которые скрывают информацию, заменяющую младший бит каждого пикселя, являются ошибочными.
Aletheia реализует две атаки на эти методы: анализ пробных пар (SPA) и атаку RS.
Чтобы выполнить атаку SPA на включенное изображение с данными замены LSB, используйте следующую команду:
# ./aletheia.py spa sample_images/lena_lsbr.png Hiden data found in channel R 0.0930809062336 Hiden data found in channel G 0.0923858529528 Hiden data found in channel B 0.115466382367
Команда, используемая для выполнения атаки RS, аналогична:
# ./aletheia.py rs sample_images/lena_lsbr.png Hiden data found in channel R 0.215602586771 Hiden data found in channel G 0.210351910548 Hiden data found in channel B 0.217878287806
В обоих случаях результаты дают оценку скорости внедрения.
Атаки на основе машинного обучения
Большинство современных методов в стеганографии используют какое-то соответствие LSB.
Эти методы трудно обнаружить, и их недостаточно для простых статистических атак. Нам нужно использовать машинное обучение.
Для использования машинного обучения нам необходимо подготовить учебный набор данных, используемый для обучения нашего классификатора.
В этом примере мы будем использовать базу данных изображений в оттенках серого, называемую Bossbase.
# wget http://dde.binghamton.edu/download/ImageDB/BOSSbase_1.01.zip unzip BOSSbase_1.01.zip
Мы собираемся построить детектор для алгоритма HILL с полезной нагрузкой 0,40.
Поэтому нам нужно подготовить набор изображений с данными, скрытыми с помощью этого алгоритма.
Следующая команда включает информацию во все загруженные изображения:
# ./aletheia.py hill-sim bossbase 0.40 bossbase_hill040
Со всеми подготовленными изображениями нам нужно извлечь функции, которые могут быть обработаны алгоритмом машинного обучения.
Aletheia предоставляет различные экстракторы, в этом случае мы будем использовать хорошо известные Rich Models.
Следующие команды сохраняют функции в двух файлах, в файле для обложки и в одном файле для изображений stego.
# ./aletheia.py srm bossbase bossbase.fea # ./aletheia.py srm bossbase_hill040 bossbase_hill040.fea
Теперь мы можем обучить классификатор.
Aletheia предоставляет различные классификаторы, в этом случае мы будем использовать Ensemble классификаторы:
# ./aletheia.py e4s bossbase.fea bossbase_hill040.fea hill040.model Validation score: 73.0
В результате мы получаем оценку с использованием набора валидации (небольшое подмножество, не используемое во время обучения).
Результатом является файл «hill040.model», поэтому мы можем использовать его для будущих классификаций.
# ./aletheia.py e4s-predict hill040.model srm my_test_image.png Stego, probability: 0.81