Источник: https://github.com/AnaktaCTF/CTF/blob/main — steganography/audio_steganography.md

Определение стеганографии

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

Зачем прятать данные в аудиофайлах

Звуковые файлы являются удобной средой для стеганографии благодаря своей сложности и вариативности. Прятать информацию в аудиофайлах можно для:

  • Защиты авторских прав (внедрение скрытых водяных знаков)
  • Безопасной передачи данных в ограниченной среде
  • Обхода цензуры и слежки

Актуальность

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

Принципы стеганографии в звуке

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

  • Изменение амплитуды звуковой волны (незначительные изменения, которые незаметны на слух)
  • Манипуляция частотным спектром (встраивание информации в определённые частоты)
  • Изменение фазовых характеристик звукового сигнала
  • Добавление скрытых метаданных (например, скрытые ID3-теги в MP3-файлах)

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

Методы стеганографии в звуковых файлах

LSB (Least Significant Bit) – Замена наименее значащих бит

Суть метода заключается в следующем: Допустим, имеется 8-битное изображение в градациях серого. 00h (00000000b) обозначает чёрный цвет, FFh (11111111b) — белый. Всего имеется 256 градаций (2^8). Также предположим, что сообщение состоит из 1 байта — например, 01101011b. При использовании 2 младших бит в описаниях пикселей, нам потребуется 4 пикселя. Допустим, они чёрного цвета. Тогда пиксели, содержащие скрытое сообщение, будут выглядеть следующим образом: 00000001 00000010 00000010 00000011. Тогда цвет пикселей изменится: первого — на 1/255, второго и третьего — на 2/255 и четвёртого — на 3/255. Такие градации, мало того, что незаметны для человека, могут вообще не отобразиться при использовании низкокачественных устройств вывода.

Формально этот метод можно описать так:
[
X' = (X & 0b11111110) | M
]
где:

  • (X) – оригинальный байт аудиоданных,
  • (M) – бит сообщения (0 или 1),
  • (X') – изменённый байт.

Пример кода для встраивания данных в WAV-файл:

from scipy.io import wavfile
import numpy as np

def encode_lsb(wav_in, message, wav_out):
    rate, data = wavfile.read(wav_in)
    message += '\0'  # Конец сообщения
    bits = ''.join(format(ord(c), '08b') for c in message)
    data_flat = data.flatten()
    for i in range(len(bits)):
        data_flat[i] = (data_flat[i] & ~1) | int(bits[i])
    data = data_flat.reshape(data.shape)
    wavfile.write(wav_out, rate, data)

Этот метод особенно эффективен для несжатых аудиоформатов (например, WAV), но плохо переносит сжатие (MP3), так как сжатие разрушает внедрённые данные.

Echo Hiding – Использование эхо-сигнала

Метод Echo Hiding использует особенности восприятия эхо человеческим слухом. Малые задержки эхо незаметны для уха, но могут быть использованы для кодирования информации.

Замедление и разворот

Иногда, для получения скрытого сообщения из аудиофайла, достаточно послушать файл задом наперед или замедлить его. Для примера взята задача WAV - Noise analysis.

WAV (Waveform Audio File Format) — это формат файла-контейнера для хранения оцифрованного аудиопотока, основанный на RIFF. Обычно используется для хранения несжатого звука в импульсно-кодовой модуляции (PCM), но также поддерживает различные алгоритмы кодирования. WAV-файлы могут содержать метаданные и редактироваться в большинстве аудиоредакторов.

Для работы с файлом .wav можно использовать программу для работы со звуком goldwave.

Звуковая дорожка файла из вызова выглядит так:

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

Поствавляем полученную последовательность и задача решена!

Phase Coding – Изменение фазового спектра

Фазовая стеганография изменяет фазу аудиосигнала, заменяя её на определённые значения, соответствующие закодированным данным.

Процесс кодирования:

  1. Применение дискретного преобразования Фурье (DFT) для извлечения фазовой информации.
  2. Внедрение скрытого сообщения путём изменения фазовых значений.
  3. Обратное преобразование Фурье (IDFT) для восстановления аудиосигнала.

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

Для примера взята задача WAV - Spectral analysis.

Для спектрального анализа можно использовать различные инструменты, например инструмент Sonic visualizer или сайт для декодирования dcode. В решении примера буду использовать 2 вариант.

Загружаем файл и получаем изображение с флагом:

Задача решена.

Spread Spectrum – Рассеивание сигнала

Этот метод распределяет скрытые данные по всему спектру аудиофайла, что делает их менее заметными для анализа. Используется метод прямой последовательности:
[
Y(n) = X(n) + kM(n)S(n)
]
где:

  • (X(n)) – исходный сигнал,
  • (M(n)) – скрытая информация,
  • (S(n)) – псевдослучайная последовательность,
  • (k) – коэффициент усиления.

MP3 стеганография – Встраивание данных в сжатый формат

MP3Stego использует особенности сжатия MP3 для внедрения информации. Основной принцип основан на изменении коэффициентов дискретного косинусного преобразования (DCT) перед квантованием.

Формула модификации DCT-коэффициентов:
[
C' = C + M \cdot \Delta
]
где:

  • (C) – исходный коэффициент DCT,
  • (C') – изменённый коэффициент,
  • (M) – бит скрытого сообщения,
  • (\Delta) – квантовый шаг.

Этот метод позволяет передавать скрытые сообщения даже в сжатых MP3-файлах, сохраняя при этом высокое качество звука.

Программные инструменты для стеганографии

Существует несколько популярных инструментов для аудиостеганографии:

  • OpenPuff – поддерживает стеганографию в WAV-файлах
  • DeepSound – позволяет скрывать файлы в аудиофайлах и извлекать их
  • Steghide – поддерживает работу с аудиоформатами, но лучше подходит для изображений
  • MATLAB и Python – используются для создания собственных алгоритмов

Обнаружение скрытых данных

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

  • Анализ спектрограмм (можно использовать Audacity или MATLAB)
  • Использование статистического анализа (например, анализ распределения фазовых характеристик)
  • Программы для детекции стеганографии (например, StegExpose)

Применение стеганографии в аудио

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

  • Защита авторских прав – внедрение скрытых водяных знаков в аудиозаписи
  • Передача скрытых сообщений – использование аудиофайлов как контейнеров
  • Киберпреступность – скрытая передача информации в преступных целях

Заключение

Аудиостеганография остаётся мощным инструментом для сокрытия информации.