Перейти к содержимому

Поиск стеганографии

Эвристический детектор LSB-стеганографии в PNG, BMP и JPEG: chi-square тест по парам цветов плюс визуальная карта младших битов.

Проверяет картинку на признаки стеганографии — скрытых данных, спрятанных в младших битах пикселей (LSB). Это самый распространённый класс стего: payload (текст, файл, ключ) поверх изображения замещает по биту в RGB-канале каждого пикселя, визуально картинка не меняется, но статистическое распределение младших битов перестаёт быть случайным. Инструмент применяет chi-square тест Вестфельда—Пфитцманна (1999) — тот же метод используется в академических детекторах StegExpose, StegDetect, Stegano. Для каждого канала R/G/B считает гистограмму значений, объединяет пары (2k, 2k+1), сравнивает наблюдаемые частоты с ожидаемыми (среднее пары) и считает p-value chi-square распределения. Высокое p-value (>0.5) — подозрение на стего: пары «слишком равномерны». Помимо чисел, рисуется LSB-карта: чёрно-белое изображение, где каждый пиксель — это младший бит соответствующего канала исходника. На чистом фото LSB-карта выглядит как равномерный шум; на стего-картинке часто видны структуры payload’а невооружённым глазом — текст, геометрия, регулярные паттерны. Ограничения честно сообщаются: JPEG обычно разрушает LSB при пересохранении (DCT-квантизация затирает младшие биты), поэтому тест надёжен в основном на PNG и BMP, а на JPEG срабатывает только если файл был стего-обработан ровно один раз и не сохранялся повторно. Положительный результат — повод проверить файл специализированными инструментами форензики; отрицательный — не гарантия отсутствия стего более сложными методами (DCT-стего, F5, OutGuess). Без вендоров, чистый JavaScript. Обработка идёт в браузере, файл никуда не передаётся.