Published on

Стеганография

Authors

Стеганография — это наука и практика скрытия факта передачи информации, а не самой информации (это уже криптография).

The same image viewed by white, blue, green, and red lights reveals different hidden numbers.

Определение

Если криптография — это когда вы передаете записку в сейфе, который все видят, но не могут открыть (или на непонятном языке, который все слышат, но не понимают), то стеганография — это когда вы пишете невидимыми чернилами на обратной стороне обычной открытки. Современная цель — не обязательно достичь абсолютной невидимости, но гарантировать, что стего-контейнер статистически неотличим от легитимного шума и не привлекает целевого внимания.

Как это работает на практике (Техники)

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

1. В изображениях (самый популярный метод)

  • Базовый метод: Замена младших значащих битов (LSB - Least Significant Bit).
  • Как работает: Цвет каждого пикселя кодируется числами (например, в RGB). Изменение самого младшего бита меняет цвет на столь незначительную величину, что человеческий глаз этого не заметит.
  • Пример: Вы хотите спрятать букву 'A' (код 65 в ASCII, что 01000001 в двоичной системе) в 8 пикселях. Вы заменяете младший бит каждого пикселя на один бит из сообщения.
  • Наивная LSB-замена — уязвимый и легко обнаруживаемый метод при статистическом анализе (анализ гистограмм, тесты Хи-квадрат). Современные адаптивные методы (например, синдромное кодирование, распространение на несколько битовых плоскостей) активно борются с аномалиями. Базовый LSB используется лишь для Proof-of-Concept или против некомпетентного противника.

1) Анализ гистограмм

  • Что это: Графическое представление распределения значений (например, цветов пикселей в изображении).
  • Цель в стеганоанализе: Обнаружить статистические аномалии, которые возникают после внедрения данных.
  • Как работает:
    • У "чистого" изображения гистограмма плавная и непрерывная.
    • Наивный LSB-метод создает характерные "ступеньки" или парные значения в гистограмме, потому что при замене младшего бита пары значений (0 и 1, 2 и 3 и т.д.) становятся практически одинаково вероятными. Это легко заметить визуально на графике.

2) Тест Хи-квадрат (χ²)

Chi-squared distribution, showing χ2 on the first axis and p-value (right tail probability) on the second axis.

1. Что такое k (Degrees of Freedom — Степени свободы)

Простыми словами: k — это параметр, который показывает "сложность" или "размерность" нашего анализа.

В контексте стеганоанализа (проверки LSB):

  • Представьте, что мы анализируем гистограмму изображения.
  • Мы смотрим на пары значений (0 и 1, 2 и 3, 4 и 5 и т.д.), которые могли выровняться из-за LSB-замены.
  • k — это количество таких пар, которые мы проверяем.
  • Чем больше k, тем больше данных мы анализируем.

На графике: Каждая линия (k=1, k=2 и т.д.) — это отдельное распределение Хи-квадрат для разного количества степеней свободы. Видно, что с ростом k кривая "уплощается" и сдвигается вправо. (нужно смотреть "со стороны нуля" (слева направо))

2. Что такое p-value (Вероятность / Уровень значимости)

Простыми словами: p-value — это вероятность, что наблюдаемый нами результат (выравнивание пар в гистограмме) произошел случайно.

В контексте стеганоанализа:

  • Высокий p-value (близкий к 1): Велика вероятность, что гистограмма выглядит так просто по воле случая. Вывод: Стеганографии, скорее всего, НЕТ.
  • Низкий p-value (близкий к 0): Крайне маловероятно, что такое идеальное выравнивание пар произошло случайно. Вывод: Файл, скорее всего, содержит скрытые данные, внедренные методом LSB.

На графике: p-value показан на вертикальной оси как "right tail probability" (вероятность правого хвоста). Когда наше вычисленное значение Χ² попадает далеко в правый "хвост" распределения (заштрихованная область), p-value становится очень маленьким. (p-value определяется по горизонтальной оси (X²) справа налево, а не по вертикальной)


Проще говоря:

  • Анализ гистограмм — это "посмотреть на график и увидеть подозрительные узоры".
  • Тест Хи-квадрат — это "посчитать и получить цифру, доказывающую, что файл подозрительный".

3) Синдромное кодирование (Syndrome Coding)

  • Суть: Это не метод внедрения данных, а метод согласования. Позволяет встраивать сообщение без изменения части битов носителя.

Левый столбец: Синдромы (S)

Это все возможные синдромы (3-битные контрольные суммы), которые могут быть вычислены из 7-битного блока.

Правый столбец: "Coset Leaders" (e)

Это векторы ошибок минимального веса (с минимальным количеством единиц), соответствующие каждому синдрому.

Обратите внимание: Каждый вектор e содержит только одну единицу - это минимальное возможное изменение!

Таблица показывает минимальное воздействие для получения нужного "отпечатка пальца" (синдрома).


Как это работает в стеганографии (кратко):

ШАГ 1: Подготовка

  • У нас есть cover-блок (7 бит из изображения): C
  • У нас есть сообщение (3 бита), которое мы хотим спрятать: M

ШАГ 2: Вычисление синдрома cover-блока

  • Вычисляем синдром от cover-блока: S_cover = H × C (где H — проверочная матрица)
  • В таблице это соответствует нахождению синдрома S_cover

ШАГ 3: Сравнение синдромов

  • Если S_cover = M → Уже совпало! Ничего не меняем. Используем e0 = (0,0,0,0,0,0,0)
  • Если S_cover ≠ M → Нужно найти вектор ошибки e, чтобы изменить синдром

ШАГ 4: Поиск вектора ошибки

  • Ищем в таблице синдром S, равный нашему целевому сообщению M
  • Берем соответствующий coset leader e

ШАГ 5: Встраивание

  • Модифицируем cover-блок: C_stego = C + e
  • Теперь синдром нового блока: S_stego = H × (C + e) = H×C + H×e = S_cover + S = M
  • Преимущество: Резко снижает количество модификаций носителя. В идеале изменяется всего 1 бит на блок, что делает атаки, основанные на статистике LSB-замены, практически бесполезными.

Распространение на несколько битовых плоскостей

  • Суть: Отказ от наивного подхода, где данные прячутся только в 1-м младшем бите (LSB). Вместо этого сообщение "размазывается" по нескольким младшим битовым плоскостям.
  • Как работает:
    1. Пиксельное изображение можно представить как "стопку" битовых плоскостей: от старшей (самой значимой) до младшей (наименее значимой).
    2. Наивный LSB использует только самую нижнюю плоскость.
    3. Современные методы (например, HOLMES) встраивают данные одновременно в 1-ю, 2-ю и иногда 3-ю битовые плоскости, адаптируя глубину внедрения под текстуру изображения.
    4. В сложных текстурах (шум, трава) можно менять и более старшие биты, так как глаз этого не заметит. В гладких областях (небо) — только младшие.
  • Преимущество: Резко повышает пропускную способность и, что важнее, устойчивость к стеганоанализу. Статистические аномалии, возникающие при замене только 1-го LSB, смазываются и становятся неотличимы от естественного шума изображения.

Битовые плоскости (Bit Planes)

Основное понятие

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

Простой пример: Для 16-битного представления данных существует 16 битовых плоскостей:

  • Первая битовая плоскость содержит набор самых старших битов (MSB)
  • Шестнадцатая содержит самые младшие биты (LSB)

The 8 bit-planes of a gray-scale image (the one on left). There are eight because the original image uses eight bits per pixel.

Значимость битовых плоскостей

Можно заметить, что:

  • Первая битовая плоскость даёт самое грубое, но наиболее критичное приближение значений среды
  • Чем выше номер битовой плоскости, тем меньше её вклад в конечный результат

Таким образом, добавление каждой последующей битовой плоскости даёт лучшее приближение к исходному значению.

Математический вклад битовых плоскостей

Если бит в n-й битовой плоскости в m-битном наборе данных установлен в 1, он вносит значение 2^(m−n), в противном случае он не вносит ничего. Поэтому битовые плоскости могут вносить половину значения от предыдущей битовой плоскости.

На примере 8-битного значения 10110101 (181 в десятичной системе):

Битовая плоскостьЗначениеВкладСовокупный итог
1-я11 × 2⁷ = 128128
2-я00 × 2⁶ = 0128
3-я11 × 2⁵ = 32160
4-я11 × 2⁴ = 16176
5-я00 × 2³ = 0176
6-я11 × 2² = 4180
7-я00 × 2¹ = 0180
8-я11 × 2⁰ = 1181

Техническое замечание

Термин "bit plane" иногда используется как синоним "bitmap", однако технически:

  • Первый относится к местоположению данных в памяти
  • Второй — к самим данным

Анализ шума в битовых плоскостях

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

Метод расчёта: Сравнивать каждый пиксель (X, Y) с тремя соседними пикселями:

  • (X − 1, Y)
  • (X, Y − 1)
  • (X − 1, Y − 1)

Если пиксель совпадает по крайней мере с двумя из трёх соседних пикселей, он не считается шумом.

Критерий: Зашумлённая битовая плоскость будет иметь от 49% до 51% пикселей, которые являются шумом.


Применения битовых плоскостей

1) Медиа-форматы файлов

На примере PCM-звука:

  • Первый бит в сэмпле обозначает знак функции (определяет половину всего диапазона амплитуд)
  • Последний бит определяет точное значение

Важный принцип:

  • Замена более значимых битов приводит к большим искажениям
  • Замена менее значимых битов менее критична

В сжатии медиа с потерями, использующем битовые плоскости, это даёт больше свободы для кодирования менее значимых битовых плоскостей, в то время как более значимые необходимо сохранять максимально точно.

Pulse Code Modulation (PCM)

И́мпульсно-ко́довая модуля́ция (ИКМ, англ. pulse code modulation, PCM) используется для оцифровки аналоговых сигналов. Практически все виды аналоговых данных (видео, аудио (голос, музыка), телеметрия) допускают применение ИКМ.

PCM - это как "оцифровка" звука или любого другого аналогового сигнала для работы в цифровом мире. Без PCM нельзя было бы хранить музыку на компьютере или передавать голос по интернету.

Пример 4-битной (16-уровневой) ИКМ. Показано квантование аналогового сигнала и пачки импульсов, кодирующих отсчёты. Передача в канале производится старшими битами вперёд.

Модуляция

Пример 4-битной (16-уровневой) ИКМ. Показано квантование аналогового сигнала и пачки импульсов, кодирующих отсчёты. Передача в канале производится старшими битами вперёд.

Принцип работы ИКМ

При импульсно-кодовой модуляции аналоговый передаваемый сигнал преобразуется в цифровую форму посредством трёх операций:

  • Дискретизации по времени (измерение аналогового сигнала через равные промежутки времени (получение отсчётов))
  • Квантования по амплитуде (округление каждого отсчёта до ближайшего уровня из конечного набора значений)
  • Кодирования

Преобразование аналогового сигнала в цифровой

Для преобразования аналогового сигнала в цифровой используется аналого-цифровой преобразователь (АЦП). АЦП через равные промежутки времени измеряет амплитуду аналогового сигнала — получает мгновенные значения или отсчёты сигнала, затем преобразует отсчёты в двоичные слова.

Мгновенное измеренное значение (отсчёт) аналогового сигнала квантуется по уровням (округляется от ближайшего целого). Число уровней квантования обычно равно или кратно целой степени числа 2, например:

  • 2³ = 8 уровней
  • 2⁴ = 16 уровней
  • 2⁵ = 32 уровня

Номер уровня кодируется двоичными словами длиной 3, 4, 5 и т.д. бит.

Формирование сигнала для передачи

Затем выходные слова АЦП в параллельном коде подвергаются кодированию при помощи передачи на регистр сдвига, тактируемый вспомогательным генератором сдвига. На выходе регистра сдвига формируются пачки кодированных импульсов в последовательном коде. Затем пачки импульсов передаются в канал связи.

Примечание: Пачка импульсов - периодически повторяющиеся импульсы в течение фиксированного интервала времени.

Частота дискретизации

Частота отсчётов сигнала (или скорость оцифровки, частота дискретизации) для исключения потерь информации в соответствии с теоремой Котельникова должна быть не меньше удвоенной максимальной частоты в спектре аналогового сигнала.

Техническая реализация

Существуют специализированные интегральные микросхемы, предназначенные для ИКМ, совмещающие АЦП, регистр сдвига, тактовые генераторы и другие устройства.

Демодуляция

На приёмном конце канала связи установлен демодулятор. В демодуляторе пачки импульсов подаются на последовательный вход регистра сдвига. После вдвигания всех битов пачки импульсов в регистр сдвига слово из регистра сдвига в параллельном коде записывается во входной регистр цифро-аналогового преобразователя (ЦАП).

ЦАП преобразует кодированные отсчёты переданного аналогового сигнала снова в аналоговый вид. На выходе ЦАП образуется ступенчатый аналоговый сигнал. Сглаживание ступенек производится фильтром нижних частот (ФНЧ), на выходе которого образуется переданный аналоговый сигнал. Частота среза ФНЧ выбирается меньшей или равной удвоенной частоте отсчётов.

Цифровые коды в ИКМ

Для кодирования отсчётов в ИКМ применяются самые разнообразные двоичные коды:

  • Обычное представление чисел в двоичной системе счисления, причём последовательная передача битов двоичного числа может осуществляться как младшими битами вперёд, так и старшими битами вперёд
  • Разнообразные коды с обнаружением и устранением ошибок в канале передачи, например, код Хэмминга, код Рида—Соломона и др. Простейший из них — избыточный код с передачей бита чётности
  • Коды, устраняющие постоянную составляющую в кодированном импульсном двухуровневом сигнале, например, самосинхронизирующийся манчестерский код

Разновидности ИКМ

Дифференциальная импульсно-кодовая модуляция (ДИКМ, DPCM)

ИКМ в сочетании с дельта-кодированием, при котором сигнал кодируется в виде разности между текущим и предыдущим измеренными значениями. Для звуковых данных такой метод модуляции уменьшает требуемое количество бит на отсчёт примерно на 25%.

Адаптивная ДИКМ (АДИКМ, ADPCM) — разновидность ДИКМ с переменным шагом квантования. Изменение шага позволяет уменьшить требования к полосе пропускания при заданном соотношении сигнала и шума.

LPCM (Linear pulse code modulation)

Линейная импульсно-кодовая модуляция.

Практическое применение

  • В цифровой и IP-телефонии ИКМ применяется для преобразования голосового аудиосигнала в цифровой поток, передаваемый со скоростью 64 кбит/с (основной цифровой канал)
  • ИКМ применяется для преобразования аналогового аудиосигнала в цифровой с целью сохранения сигнала на цифровых устройствах и носителях (цифровая звукозапись). Форматы файлов: WAV, MP3, WMA, OGG, FLAC, APE
  • ИКМ использовалась ранее в протоколах модемной связи ITU V.90 (только входящий к клиенту сигнал) и V.92 (входящий и исходящий сигнал) для обеспечения максимальной скорости соединения в 56 Кбит/с

2) Растровые дисплеи

Некоторые компьютеры отображали графику в формате битовых плоскостей, в частности:

  • PC с видеокартой EGA
  • Amiga
  • Atari ST

Это контрастировало с более распространённым упакованным форматом. Такая организация позволяла выполнять определённые классы операций над изображениями с использованием битовых операций (особенно с помощью чипа blitter), а также создавать эффекты параллакс-скроллинга.

3) Оценка движения в видео

Некоторые алгоритмы оценки движения могут выполняться с использованием битовых плоскостей (например, после применения фильтра для преобразования salient edge features в бинарные значения).

Это может иногда обеспечивать достаточно хорошее приближение для корреляционных операций с минимальными вычислительными затратами. Данный метод основан на наблюдении, что пространственная информация более значима, чем фактические значения.

Техническая деталь: Свёртки могут быть сведены к операциям битового сдвига и подсчёта единиц (popcount), или выполняться в специализированном аппаратном обеспечении.

4) Нейронные сети

Форматы битовых плоскостей могут использоваться для передачи изображений в:

  • Спайковые нейронные сети
  • Нейронные сети/свёрточные нейронные сети с низкой точностью приближений

5) Программы

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

  • Pamarith из пакета Netpbm
  • Convert из ImageMagick

2. В аудио и видео

  • Принцип тот же: Внесение незаметных для человеческого слуха/зрения изменений в аудиодорожку (маскировка в критических полосах слуха, модификация фазового спектра) или в кадры видео. Например, добавление тихих эхо-сигналов с определенными задержками, кодирующих информацию.

3. В тексте

  • Методы: Изменение количества пробелов или табуляций (сложно обнаружимо визуально, но тривиально выявляется при анализе исходного кода), использование невидимых Unicode-символов (Zero-Width Joiner, Zero-Width Non-Joiner), синонимизация по алгоритму.
  • Самый примитивный пример из истории: Прокол булавкой определенных букв в тексте, которые складываются в секретное сообщение.

4. В сетевом трафике (Network Steganography)

  • Методы: Скрытие данных в служебных полях заголовков сетевых пакетов (например, в IP-идентификаторе, поле TTL или флагах), в времени задержки между пакетами (временные каналы), или в "пустых" сегментах TCP.
  • Это особенно опасно, потому что обнаружить такой трафик стандартными средствами защиты (межсетевыми экранами, IDS) практически невозможно, особенно внутри зашифрованного канала (HTTPS), который скрывает сам стего-носитель от глубокого анализа пакетов.

Стеганография vs Криптография

ПараметрКриптографияСтеганография
Основная цельСкрыть СОДЕРЖАНИЕ сообщенияСкрыть САМ ФАКТ существования сообщения
Если обнаруженоВрагу известно о существовании секретного сообщения. Его содержание (надеемся) защищено.ПОЛНЫЙ ПРОВАЛ. Сама концепция скрытности уничтожена.
ВниманиеМожет привлекать внимание (шифропереписка сама по себе подозрительна)Избегает внимания (выглядит как обычный трафик)
ЗащитаМатематическая стойкость алгоритмов и длина ключаСтатистическая неотличимость от исходного носителя и устойчивость к стеганоанализу

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

Реальные угрозы и применение

1. Кибершпионаж и APT-атаки

  • Как используется: Вредоносное ПО (malware) крадет данные и передает их наружу, маскируя под обычный трафик. Распространенная схема: данные прячутся в изображение, которое загружается на публичный ресурс (форум, GitHub, облако), а вредоносная программа на скомпрометированной машине его скачивает. Зашифрованное HTTPS-соединение скрывает стего-носитель от проверки.

2. Обход цензуры в тоталитарных режимах

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

3. Сокрытие преступной деятельности

  • Как используется: Преступные сообщества обмениваются инструкциями и данными, пряча их в файлы, выкладываемые на публичные форумы и облачные хранилища. Важное уточнение: использование соцсетей проблематично, так как они часто пережимают изображения, разрушая стего-контейнер.

4. Цифровые водяные знаки (обратная сторона)

  • Это легальное применение: Правообладатели встраивают в свой контент невидимые метки для подтверждения авторства и отслеживания утечек. Это стеганография, где цель — не скрыть факт передачи, а скрыть сам знак до момента проверки.

Обнаружение (Стеганоанализ)

Стеганоанализ — это искусство обнаружения стеганографии.

  • Методы: Статистический анализ файла-носителя на предмет аномалий (анализ гистограммы, тесты Хи-квадрат), энтропийный анализ, поиск следов конкретных инструментов стеганографии, машинное обучение для выявления паттернов.
  • Жесткая правда: Универсального детектора не существует. Обнаружение сложно и часто невозможно без гипотезы о используемом методе. Однако против конкретных, известных методов (как наивный LSB) стеганоанализ может быть высокоэффективен. Пропускная способность каналов невысока, но для передачи ключей, паролей или команд управления ее достаточно.

Итоговый вердикт

Стеганография — это мощный, опасный и часто недооцененный инструмент. В арсенале кибербезопасности она представляет собой постоянную и трудно обнаруживаемую угрозу, потому что атаку, основанную на ней, практически не видно на фоне легитимного трафика. Это не "уязвимость нулевого дня", а фундаментальная техника, ведущая к вечной борьбе методов сокрытия и обнаружения. Для специалиста по ИБ понимание стеганографии — это не опция, а необходимость, особенно при расследовании инцидентов и защите от целевых атак.