Стегоанализ

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

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

Метод стегоанализа

Нарушитель (аналитик) стремится взломать стеганографическую систему, то есть обнаружить факт передачи сообщения, извлечь сообщение и либо модифицировать сообщение, либо запретить пересылку сообщения[1]. Обычно аналитики проводят несколько этапов взлома системы[1]:

  1. Обнаружение факта наличия скрытого сообщения, самый сложный этап[2];
  2. Извлечение сообщения;
  3. Модификация сообщения;
  4. Запрет на выполнение пересылки сообщения.

При этом система считается взломанной, если аналитику удалось доказать хотя бы наличие скрытого сообщения[1].

В ходе первых двух этапов аналитики обычно могут проводить такие мероприятия[2]:

  1. Субъективная атака;
  2. Сортировка стего по внешним признакам;
  3. Определение использованных алгоритмов встраивания сообщений;
  4. Выделение сообщений с известным алгоритмом встраивания;
  5. Проверка достаточности объёма материала для анализа;
  6. Проверка возможности анализа по частным случаям;
  7. Анализ материалов и разработка методов вскрытия системы.

Нарушители

Выделяют несколько видов нарушителей[2]:

  1. Пассивный нарушитель, способный только обнаружить факт пересылки сообщения и, возможно, извлечь сообщение.
  2. Активный нарушитель, способный кроме обнаружения и извлечения также разрушать и удалять сообщение.
  3. Злоумышленный нарушитель, способный, дополнительно к обнаружению, извлечению, разрушению и удалению, создавать ложные стего.

Классификация атак на стегосистемы

Некоторые атаки на стеганосистемы аналогичны криптографическим атакам[1]:

  • Атака на основании известного заполненного контейнера;
  • Атака на основании известного встроенного сообщения;
  • Атака на основании выбранного встроенного сообщения. Используется в случае, когда аналитик может выбрать сообщение и анализировать отправленные заполненные контейнеры.
  • Адаптивная атака на основании выбранного встроенного сообщения. Частный случай атаки на основе выбранного скрытого сообщения, когда аналитик имеет возможность выбирать сообщения, исходя из результатов анализа предыдущих контейнеров.
  • Атака на основании выбранного заполненного контейнера;

Но существуют и атаки, не имеющие прямых аналогов в криптографии[3]:

  • Атака на основании известного пустого контейнера. В данном случае аналитик имеет возможность сравнить пустой и заполненный контейнеры.
  • Атака на основании выбранного пустого контейнера;
  • Атака на основании известной математической модели контейнера или его части;

Классификация атак на системы цифровых водяных знаков

Существуют и специфичные атаки на системы цифровых водяных знаков[2]:

  • Атаки против встроенного сообщения, направленные на удаление или приведение в негодность ЦВЗ. Такие методы атак не пытаются выделить водяной знак.
  • Атаки против стегодетектора, затрудняющие или делающие невозможной правильную работу детектора. Такие атаки оставляют ЦВЗ без изменений.
  • Атаки против протокола использования ЦВЗ — создание ложных ЦВЗ или стегосообщений, инверсия существующего водяного знака, добавление нескольких водяных знаков.
  • Атаки против ЦВЗ, направленные на извлечение водяного знака из сообщения. Для этих атак желательно оставить контейнер без искажений.

Некоторые атаки

На классические стегосистемы

Бритьё головы

Атака на основании известного заполненного контейнера против древней системы передачи сообщений на коже головы раба. На голову раба наносили татуировку-сообщение и ждали, пока волосы снова отрастут. Затем отправляли раба получателю сообщению. Атака системы примитивна — побрить раба снова и прочитать сообщение[4].

Проявление

Атака на основании известного заполненного контейнера против системы передачи сообщения письмом, написанным симпатическими чернилами. Во время Второй мировой войны аналитики водили смоченными проявителями щётками по письму и читали проявленные сообщения. Также использовалось просвечивание ультрафиолетовым или инфракрасным излучением[4].

На цифровые стегосистемы

Субъективная атака

Атака на основании известного заполненного контейнера. Алгоритм прост: аналитик исследует контейнер без помощи специальных средств, пытаясь «на глаз» определить, содержит ли тот стего. То есть, если контейнер является изображением, то смотрит на него, если аудиозапись, то слушает. Несмотря на то, что подобная атака эффективна только против почти не защищённых стеганографических систем, атака широко распространена на начальном этапе вскрытия системы[2].

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

Атака на основании известного заполненного методом LSB контейнера. Андреас Фитцман и Андреас Вестфелд заметили[5], что если встраиваемое сообщение имеет равномерное распределение и частоты [math]\displaystyle{ n_i }[/math] появления цвета [math]\displaystyle{ i }[/math] до встраивания были связаны соотношением [math]\displaystyle{ n_{2i} \gt n_{2i+1} }[/math], то частоты [math]\displaystyle{ n^{*}_i }[/math] после встраивания связаны с частотами до встраивания таким соотношением:

[math]\displaystyle{ \left| n_{2i} - n_{2i+1} \right| \gt \left| n^{*}_{2i} - n^{*}_{2i+1} \right| }[/math]

То есть внедрение равномерно сообщения уменьшает разницу между частотами распределения соседних цветов, имеющих различие в наименьшем бите. Также замечено, что в процессе внедрения методом LSB сумма распределения частот соседних пар остается неизменной. На этих фактах строится метод анализа с помощью критерия Хи-квадрат:

  1. Ожидаемое распределение получается по формуле: [math]\displaystyle{ n_i = \frac{n^{*}_{2i} - n^{*}_{2i+1}}{2} }[/math]
  2. Величина Хи-квадрат для сравнения ожидаемого распределения и распределения исследуемой последовательности: [math]\displaystyle{ \chi^2 = \sum^{\nu}_{i=1} \frac{y_i-y^{*}_i}{y^{2}_i} }[/math], где [math]\displaystyle{ \nu }[/math] — количество столбцов гистограммы минус 1
  3. Вероятность [math]\displaystyle{ p }[/math], что два распределения окажутся одинаковыми и что в контейнере есть скрытое сообщение, равна [math]\displaystyle{ \int\limits_{0}^{\chi^2} \frac{t^{\nu-2} e^{-t/2}}{2^{\nu/2} \Gamma(\nu/2)}\, dt }[/math], где [math]\displaystyle{ \Gamma }[/math] — гамма-функция.

Обычно проводят серию измерений вероятности для фрагментов изображения, чтобы по скачку вероятности также измерить и длину предполагаемого сообщения.

В случае, когда контейнер не является изображением с индексацией цветов, а является JPEG-изображением, вместо индексов цвета для анализа используют коэффициенты дискретного косинусного преобразования)[5].

RS-анализ изображений

Атака на основании известного заполненного контейнера на систему встраивания стего в изображение методом LSB. Regular-Singular анализ предложен в 2001 году коллективом исследователей из Бингемтонского университета[5].

Метод основывается на разделении изображения на связанные группы [math]\displaystyle{ G }[/math] по [math]\displaystyle{ n }[/math] пикселей. Для каждой группы определяется значение функции регулярности или гладкости [math]\displaystyle{ f(G) }[/math]. Чаще всего функция регулярности — сумма перепадов соседних пикселей в группе[5].

Вводится функция флиппинга — функция [math]\displaystyle{ F }[/math] такая, что [math]\displaystyle{ F(F(x))=x }[/math]. При данном анализе используют три функции флиппинга[5]:

  • [math]\displaystyle{ F_1 }[/math] — инверсия младшего бита цвета в изображении
  • [math]\displaystyle{ F_0 }[/math] — оставление без изменений
  • [math]\displaystyle{ F_{-1} }[/math] — инверсия младшего бита цвета в изображении с переносом в старший бит (то есть [math]\displaystyle{ 255 \longleftrightarrow 0 }[/math], [math]\displaystyle{ 1 \longleftrightarrow 2 }[/math] и т. д.).

Внутри группы можно применять различные функции флиппинга для разных пикселей, поэтому записывают маску [math]\displaystyle{ M }[/math] — [math]\displaystyle{ n }[/math]-мерный вектор в пространстве [math]\displaystyle{ \{-1, 0, 1\} }[/math], указывающий, какому пикселю в группе соответствует какой флиппинг: [math]\displaystyle{ F(G) = \left( F_{M(1)}(x_1), ..., F_{M(n)}(x_n)\right) }[/math][5]

Все полученные группы [math]\displaystyle{ G }[/math] делят на три вида[5]:

  • Регулярные, для которых [math]\displaystyle{ F(G) }[/math] увеличивает значение гладкости
  • Сингулярные, для которых [math]\displaystyle{ F(G) }[/math] уменьшает значение гладкости
  • Неиспользуемые, для которых [math]\displaystyle{ F(G) }[/math] не меняет значение гладкости

Далее подсчитывают количество [math]\displaystyle{ R_M }[/math] регулярных групп, количество [math]\displaystyle{ S_M }[/math] сингулярных групп для маски M и аналогичные величины [math]\displaystyle{ R_{-M} }[/math], [math]\displaystyle{ S_{-M} }[/math] для инвертированной маски {-M}. Статистическая гипотеза исследователей, подтверждённая исследованием выборки из реальных фотографий, состоит в том, что инвертирование маски почти не меняет количества регулярных и сингулярных групп для пустого контейнера[5]:

[math]\displaystyle{ R_M \cong R_{-M} }[/math], [math]\displaystyle{ S_M \cong S_{-M} }[/math]

В то же время исследователи заметили, что внесение случайных искажений в данное соотношение нарушает данное соотношение так, что случайные искажения уменьшают разницу между [math]\displaystyle{ R_{M} }[/math] и [math]\displaystyle{ S_{M} }[/math] с увеличением длины внедряемого сообщения. На этом факте строится метод RS-анализа[5]:

  1. Строят диаграмму: по оси абсцисс откладывают долю инвертированных бит, по оси ординат откладывают доли сингулярных и регулярных групп из всех
  2. На диаграмме получают несколько линий, предполагая длину сообщения [math]\displaystyle{ p }[/math] и долю изменения младших бит при записи сообщения 50 %:
    1. Прямые [math]\displaystyle{ R_{-M} }[/math] и [math]\displaystyle{ S_{-M} }[/math] строят по двум точкам: при неизменённом изображении (то есть в точке с абсциссой [math]\displaystyle{ p/2 }[/math]) и при изображении с инвертированными младшими битами (то есть в точке с абсциссой [math]\displaystyle{ 1-p/2 }[/math])
    2. Параболы [math]\displaystyle{ R_{M} }[/math] и [math]\displaystyle{ S_{M} }[/math] строят по трём точкам: в точке с абсциссой [math]\displaystyle{ p/2 }[/math], в точке с абсциссой [math]\displaystyle{ 1-p/2 }[/math] и в точке с абсциссой 50 % (записав в младшие биты случайные значения)
  3. Приняв абсциссу [math]\displaystyle{ p/2 }[/math] за 0 и абсциссу [math]\displaystyle{ 1-p/2 }[/math] за 1, определяют абсциссу [math]\displaystyle{ x }[/math] точки пересечения кривых [math]\displaystyle{ R_{M} }[/math] и [math]\displaystyle{ S_{M} }[/math] и считают предполагаемую длину сообщения: [math]\displaystyle{ p = \frac{x}{x-1/2} }[/math]

Метод машинного обучения для анализа изображений

Метод придуман Сьюви Лью и Хани Фаридом в 2002 году в ответ на усовершенствование алгоритмов встраивания сообщений. Они предложили использовать известный в машинном обучении метод опорных векторов. В качестве вектора признаков в методе используется вектор, вычисляемый на основе статистических закономерностей распределения групп пикселей изображения: математическое ожидание, дисперсия, среднеквадратичное отклонение и т. д.[5]

Атака с помощью алгоритмов сжатия для анализа аудиофайлов

Замечено[6], что файлы, содержащие скрытые сообщения, могут быть сжаты с помощью алгоритмов сжатия хуже, чем не содержащие сообщений. На этом замечании основана группа атак с помощью методов сжатия. Одной из этих атак является метод анализа аудиофайлов формата WAVE.

Алгоритм[6] анализа в предположении, что известны файл (пустой контейнер), алгоритм внедрения стегосообщения и алгоритм сжатия данных:

  1. Аналитик применяет к файлу алгоритм внедрения сообщения с неким заранее выбранным коэффициентом заполнения, получая заполненный контейнер.
  2. Затем аналитик сжимает оба файла и получает коэффициенты сжатия пустого контейнера [math]\displaystyle{ \gamma }[/math] и заполненного контейнера [math]\displaystyle{ \tilde{\gamma} }[/math].
  3. Наконец, стегоаналитик вычисляет модуль разности коэффициентов сжатия [math]\displaystyle{ \Delta = \left| \gamma - \tilde{\gamma}\right| }[/math] и сравнивает с заранее выбранным пороговым значением [math]\displaystyle{ \delta }[/math]. Если [math]\displaystyle{ \Delta \lt \delta }[/math], то можно сделать вывод, что файл содержит стегосообщение.

Пороговые значения в зависимости от содержания аудиофайла и используемого архиватора определены экспериментально и лежат в интервале от 0,05 % до 0,2 %[6].

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

Атака основана на том же факте, что и атака на аудиофайлы с помощью алгоритмов сжатия. Пусть есть три текста: [math]\displaystyle{ A }[/math], [math]\displaystyle{ B }[/math] и [math]\displaystyle{ C }[/math], причём [math]\displaystyle{ B }[/math] и [math]\displaystyle{ C }[/math] содержат скрытые сообщения. Если записать [math]\displaystyle{ C }[/math] в конец каждого из текстов [math]\displaystyle{ A }[/math] и [math]\displaystyle{ B }[/math], сжать получившиеся тексты архиватором и измерить размеры, которые в полученных архивах занимает текст [math]\displaystyle{ C }[/math], то окажется, что в архиве, полученном из текстов [math]\displaystyle{ B }[/math] и [math]\displaystyle{ C }[/math] [math]\displaystyle{ C }[/math] занимает меньше места. Это можно интерпретировать как признак наличия стегосообщения в контейнере [math]\displaystyle{ C }[/math][7].

Алгоритм:

  1. Стегоаналитик подготавливает исследуемый файл: удаляются все символы, не являющиеся цифрами, буквами, знаками препинания, пробелами и переводами строки, имеющиеся последовательности двух и более символов пробела или перевода строки сокращаются до единичных символов и полученный файл обрезается до некоторого фиксированного размера.
  2. Аналитик записывает полученный текст в конец двух специально подобранных файлов [math]\displaystyle{ N }[/math] и [math]\displaystyle{ T }[/math], получая файлы [math]\displaystyle{ N_X }[/math] и [math]\displaystyle{ T_X }[/math].
  3. Стегоаналитик измеряет коэффициенты сжатия [math]\displaystyle{ \gamma_N }[/math] и [math]\displaystyle{ \gamma_T }[/math] обоих начальных файлов. Также измеряются коэффициенты сжатия [math]\displaystyle{ \gamma_{N_X} }[/math] и [math]\displaystyle{ \gamma_{T_X} }[/math] обоих полученных файлов.
  4. Аналитик рассчитывает две величины: [math]\displaystyle{ \alpha = \gamma_N - \gamma_{N_X} }[/math] и [math]\displaystyle{ \beta = \gamma_T - \gamma_{T_X} }[/math]. Экспериментально установлено, что обычный текст удовлетворяет условию [math]\displaystyle{ \alpha \gt 0,9 }[/math] или [math]\displaystyle{ \beta \lt 1 }[/math]. Если измеренные величины не удовлетворяют этому условию, наличие стеготекста можно считать установленным.

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

Атака основана на тех же фактах, что и прочие атаки на основе алгоритмов сжатия, но использует особенности формата исполняемых файлов PE и конкретного алгоритма внедрения[8] сообщения, для обнаружения которого применяется анализ.[9]

Алгоритм:

  1. Аналитик извлекает секцию кода из контейнера исполняемого файла и удаляет байты выравнивания в конце секции, если они присутствуют. Секция кода выбрана потому, что алгоритм встраивания работает именно с ней.
  2. Стегоаналитик сжимает последние [math]\displaystyle{ W }[/math] байт секции. [math]\displaystyle{ W = 80 }[/math] выбрана экспериментально заранее.
  3. Если длина полученного кода больше некоторого порогового значения [math]\displaystyle{ \delta }[/math], то аналитик может сделать вывод, что стегосообщение присутствует в файле. [math]\displaystyle{ \delta = \frac{56}{80} }[/math] тоже определена экспериментально.

Атаки на видеофайлы

В качестве одного из примеров анализа видеофайлов можно привести статистический анализ, подобный гистограммному анализу изображений. Стегоаналитик в данном случае проверяет статистические свойства сигнала и сравнивает их с ожидаемыми: например, для младших бит сигналов распределение похоже на шумовое. Для сравнения хорошо подходит критерий Хи-квадрат[10].

Для уничтожения сообщения можно использовать различные преобразования[10]:

  • Перекодирование видео с помощью алгоритмов сжатия с потерями;
  • Изменение порядка или удаление кадров видеополедовательности;
  • Геометрические преобразования;

Примечания

Литература