вторник, 11 сентября 2012 г.

Программы для анализа стеганографии. Визуальная атака


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


2. Визуальная атака: повышение LSBs

Эта простая программа делает прямо противоположное тому, что делает обычно метод LSB. Она  устраняет все 7 старших битов для каждого пикселя, кроме последнего наименее значащего (LSB). Таким образом, все байты изображения принимают значения 0 или 1. Проблема в том, что 0 или 1 для диапазона значений из 256 цветов будет незаметно глазу. Поэтому программа усиливает эти наименее значащие биты. Для нашего случая, значение 0 остается равным 0, а для значения 1 становится максимально возможно значение, то есть 255. Это даст нам в итоговом изображении  яркие цвета, и младшие разряды исходного изображения станут достаточно хорошо заметны  для визуальной проверки. Таким образом, возможно, мы можем заметить некоторые закономерности.

Программа и ее исходные коды расположены здесь. Для работы с ней нужно просто запустить ее и выбрать 24-битный BMP файл. Модифицированное изображение с выделением битов LSB, полученное на базе исходного изображения будет создано в том же каталоге. Его имя будет таким же с добавлением суффикса "_LSB". 
Ниже приведены результаты работы программы с помощью случайных изображений, расположенных на компьютере автора. На рисунке изображена Beat Girl, символ английской ска-группы конца 70-х годов "The Beat". Для проверки работы программного обеспечения будем использовать одину из самых простых программ для стеганографии, InPlainView, без использования XOR шифрования. 





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

Ничего
стеганография
стеганография
Мы видим, что блоки LSBs на этом изображении очень странные. Я думаю, эти большие блоки появились на какой-нибудь шаге JPG-преобразования изображения до того, как изображение попало ко мне, поскольку JPG работает с блоками 8х8 пикселей. 
1 кб случайных данных
стеганография
стеганография
Случайные данные, скрытые в младших разрядах становится очень заметными. Обратите внимание, что первая строка пикселов в файле BMP является последней строки изображения на экране, это особенность формата BMP. Вот почему скрытые младшие разрядов появляются в нижней части изображения.
5 кб случайных данных
стеганография
стеганография
Еще более случайные "скрытые" данные.
Поэма "If" Редьярда Киплинга, 1,5 Kb ASCII текст
стеганография
стеганография
Теперь скрытые данные не являются случайными, это простой текст, и мы видим появляются как артефакты в сгенерированном изображении. Это что-то вроде вертикальных линий, что связано с особенностью ASCII кодировки. В большинство писем (особенно обычных, написанных в нижнем регистре, в котором пишется подавляющее большинство обычного текста) есть много общих битов (в 3 из 8 в случаев используется нижний регистр). 


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



стеганография
Размеры файлов содержащих и не содержащих
скрытую информацию после сжати


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

Я творчески переработал данную методику и предлагаю воспользоваться программой по лицензии GPLv3 для визуальной атаки на стегосистему. Как это сделать можно прочитать в моей статье о программе stect.

P.S. По материалам сайта

2 комментария: