5 лучших инструментов стеганографии в Linux

Фотография женщины, нервно работающей перед ноутбуком.

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

Этот гид демонстрирует пять лучших инструментов стеганографии, доступных в Linux. Он также показывает, как вы можете скрыть своё первое сообщение, используя эти утилиты.

Содержание

  • Что такое стеганография и почему вы должны её использовать
    1. Steghide
    1. Stegoshare
    1. Wavsteg
    1. Snow
    1. Steganoroute
  • Часто задаваемые вопросы

Что такое стеганография и почему вы должны её использовать

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

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

Окно, показывающее картину, содержащую скрытое сообщение.

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

Терминал, показывающий опции steghide.

Ещё одним преимуществом стеганографических инструментов является то, что их можно получить бесплатно. Большинство разработчиков в настоящее время лицензируют свои утилиты как Бесплатное и Открытое Программное Обеспечение (FOSS). Вам нужен только компьютер и доступ в Интернет, чтобы начать использовать стеганографию.

Полезно знать: FOSS также включает в себя множество программ, помимо стеганографии. Узнайте, как вы можете установить дистрибутив FOSS с Linux-libre.

1. Steghide

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

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

Вы можете установить steghide в Ubuntu и Debian, выполнив следующую команду:

sudo apt install steghide

Выполните эту команду, чтобы создать ваш первый стеганографический файл:

steghide embed -ef ./my-secret-data.txt -cf ./my-plain-image.jpg -sf ./steg-image.jpg

Окно терминала, показывающее steghide в действии.

Плюсы

  • Быстро и легко в использовании
  • Использует контрольные суммы для проверки целостности данных

Минусы

  • Выходной файл заметно больше оригинала
  • Модифицирует небольшие части оригинального фиктивного файла

Совет: если вы предпочитаете большую конфиденциальность, узнайте, как зашифровать файлы с помощью Tomb в Linux.

2. Stegoshare

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

Окно, показывающее основной интерфейс для stegoshare.

Ещё одним ключевым преимуществом stegoshare по сравнению с другими инструментами является его высокая портативность. Вы можете распространять программу другим пользователям независимо от используемой ими операционной системы. Например, вы можете закодировать в Linux и всё равно декодировать это на Windows.

  1. Чтобы использовать stegoshare, сначала установите его зависимости:
sudo apt install wget openjdk-8-jdk openjdk-8-jre

Окно терминала, показывающее процесс установки зависимостей для stegoshare.

  1. Скачайте бинарные файлы stegoshare с сайта разработчика:
wget http://downloads.sourceforge.net/stegoshare/StegoShare.jar
  1. Запустите программу и нажмите “Обзор“.

Окно, показывающее кнопку обзора для stegoshare.

  1. Выберите папку с вашим фиктивным изображением.

Окно, показывающее выбор файла для stegoshare.

  1. Нажмите кнопку «Выбрать» под «Обзор».

Окно, показывающее кнопку выбора в stegoshare.

  1. Выберите файл, который хотите скрыть.

Окно, показывающее выбор данных для stegoshare.

  1. Нажмите кнопку «Скрыть», чтобы закодировать ваши секретные данные в ваш фиктивный файл.

Окно, показывающее кнопку скрыть в stegoshare.

Плюсы

  • Простой и лёгкий в использовании
  • Работает на любой платформе, поддерживающей Java

Минусы

  • Создаёт большие файлы
  • Инструменты анализа изображений могут обнаружить алгоритм stegoshare

Полезно знать: узнайте, как изменить размер и оптимизировать ваше изображение из терминала Linux.

3. Wavsteg

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

Скриншот сравнения между чистым аудиофайлом и файлом, заполненным данными.

Wavsteg считывает целый аудиофайл и ищет его «наименее значимые биты». Это те части файла, которые не удаляют и не модифицируют данные внутри него. Аудиофайл, содержащий секретные данные, не будет заметно отличаться от «чистого» файла.

  1. Установите его зависимости:
sudo apt install python3 python3-pip  
PATH=$PATH:/home/$USER/.local/bin/
  1. Установите программу с помощью pip:
pip install stego-lsb

Окно терминала, показывающее процесс установки для wavsteg.

  1. После установки вы можете начать кодировать данные внутри ваших аудиофайлов с помощью следующей команды:
stegolsb wavsteg -h -i my-plain-music.wav -s my-secret-data.txt -o steg-audio.wav

Окно терминала, показывающее кодирование для wavsteg.

Плюсы

  • Легковесный и простой в использовании
  • Никакой слышимой разницы между другими аудиофайлами

Минусы

  • Работает только с текстовыми файлами
  • Может создавать большие файлы

4. Snow

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

Окно терминала, показывающее мануал для snow.

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

  1. Установите snow с помощью следующей команды:
sudo apt install stegsnow
  1. Используйте следующую команду, чтобы скрыть фразу “MakeTechEasier” внутри файла “hello.txt”.
stegsnow -C -m"MakeTechEasier" -p asecurepassword hello.txt steg-hello.txt

Окно терминала, показывающее snow в действии.

Плюсы

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

Минусы

  • Объем данных может быть крайне ограничен
  • Алгоритм шифрования относительно устарел

Совет: предпочитаете ещё больше приватности? Перейдите на эти безопасные email-сервисы.

5. Steganoroute

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

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

  1. Установите зависимости steganoroute:
sudo apt install git mtr python3 python-scapy
  1. Клонируйте исходный код программы из её репозитория:
git clone https://github.com/stratosphereips/steganoroute.git
  1. Транслируйте свои сообщения steganoroute, выполнив следующую команду:
cd ./steganoroute  
sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP  
sudo python3 ./steganoroute.py -i lo -m "MakeTechEasier" -l

Окно терминала, показывающее, как steganoroute транслирует сообщение.

  1. Проверьте, работает ли программа корректно, используя инструмент анализа mtr:
mtr -t your.local.lan.ip

Когда она запустится, вам также нужно нажать D, чтобы напечатать сообщение.

Окно терминала, показывающее транслируемое сообщение для steganoroute.

Плюсы

  • Не зависит от создания фиктивных файлов
  • Только нужно транслировать, чтобы делиться сообщениями

Минусы

  • Зависит от подделки ICMP пакетов
  • Злоумышленники могут перехватывать пакеты и восстанавливать ваше сообщение

Совет: работа с сетью может показаться пугающей для новичка. Узнайте, как DNS пакеты путешествуют по сети, используя dig.

Часто задаваемые вопросы

Изменит ли стеганография поведение моего файла?

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

Я отправил стеганографическую картину. Почему она потеряла своё сообщение?

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

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

Есть ли какие-либо недостатки в скрытии данных с помощью стеганографии?

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

Почему мой получатель steganoroute не получает мои ICMP пакеты?

Скорее всего, это связано с тем, что ваш сервер steganoroute отправляет свои ICMP пакеты с неправильным интерфейсом. Чтобы исправить это, найдите нужный сетевой интерфейс, используя ip addr.

Затем добавьте параметр -i, за которым следует ваш сетевой интерфейс. Например, следующее запустит steganoroute через мой Ethernet порт: sudo ./steganoroute.py -i enp3s0 -m "MakeTechEasier" -l.