26 января 2011 г.

Гистограммный стегоанализ


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

Рассмотрим метод обнаружения последовательного встраивания в LSB на примере изображения формата BMP.

Бытует мнение, что Указатели в LSB изображений являются случайными. На самом деле это не так! Хотя человеческий глаз и не заметит изменений изображения при изменении последнего бита, статистические параметры изображения будут изменены. Перед сокрытием данные обычно архивируются (для уменьшения объема) или шифруются (для обеспечения дополнительной стойкости сообщения при попадании в чужие руки). Это делает биты данных очень близкими к случайным. Последовательное встраивание такой информации заменит LSB изображения случайными битами. И это можно обнаружить!

Для примера возьмем одну цветовую компоненту полноцветного изображения BMP и на ней покажем процесс отыскания встраивания. Яркость цветовой компоненты может принимать значения от 0 до 255. В двоичной системе исчисления - от 0000 0000 до 1111 1111.  

Рассмотрим пары:

0000 0000<->0000 0001
0000 0010<->0000 0011; 
... 
1111 1100<->1111 1101; 
1111 1110<->1111 1111.
Данные числа различаются между собою только в LSB (выделены жирным). Таких пар для цветовой компоненты BMP изображения: 256/2=128

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

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

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

  1. Т.е. если я правильно понимаю - это атака с известным контейнером и здесь действительно достаточно чётко видны различия в статистике. Однако какие критерии применять, в случае если контейнер неизвестен? Если взять гистограмму для "заряженного" изображения, то она будет выглядеть достаточно похоже с гистограммой исходного изображения и определить "на глазок" есть ли стеговставка на мой взгляд - невозможно.

    ОтветитьУдалить
  2. Описанный гистограммный метод и метод с известным контейнером - это разные методы. Последовательное встраивание сделает из любой гистограммы подобную той, что обозначена красным цветом. Различить какая это гистограмма может помочь статистический критерий Хи-квадрат (Пирсона).

    ОтветитьУдалить
  3. Метод не сработает, если при встраивании подчищать за собой статистические следы. Например, для каждого измененного бита с 0 на 1 менять в неиспользуемых окрестностях бит с 1 на 0.

    ОтветитьУдалить
    Ответы
    1. Тогда можно составить гистограмму по отдельным блоками данных, и там опять будет это закономерность.

      Удалить