Что такое стенография в информатике
Использование стенографии в мире цифровых объектов – примеры и угрозы
Мы все знаем, что означает выражение «читать между строк». Однако, прежде чем мы начали общаться друг с другом с помощью различных технологий, некоторые рассматривали это заявление буквально и, например, писали секретные сообщения невидимыми чернилами между строк, казалось бы, обычного письма.
Техника, в которой автор сообщения, скрывает секретную информацию в чём-то, что выглядит невинно, это стеганография. Она так же стара, как и само письмо. В отличие от криптографии, которая изменяет сообщение так, чтобы его невозможно было прочитать, не имея ключа расшифровывания, целью стеганографии является сокрытие от чужих глаз глазами самого факта существования сообщения.
Как работает цифровая стеганография
Секретная информация может быть скрыта практически в каждом цифровом объекте: текстовом документе, лицензионном ключе и даже расширении файла. Например, редакторы веб-сайта Genius.com, посвященного анализу рэп-песен, использовали два типа апострофов в своих онлайн-текстах, которые в сочетании создали фразу «с поличным» в азбуке Морзе. Таким образом, они защитили свой уникальный контент от копирования.
Одним из наиболее удобных «контейнеров» для стеганографии являются мультимедийные файлы (изображения, звуковые и визуальные файлы и т.д.). Обычно они настолько велики сами по себе, что такое дополнение явно не меняет их размера.
Секретная информация может быть сохранена в метаданных файла или непосредственно в контенте. Давайте возьмем изображение в качестве примера: с точки зрения компьютера, это набор из сотен тысяч пикселей. У каждого из них есть «описание» – информация о цвете.
Для формата RGB, который используется в преобладающем количестве цветных изображений, это описание занимает до 24 бит памяти. Если секретная информация помещается в 1-3 бита в описании нескольких или даже всех пикселей, изменения во всем изображении будут невидимы. Учитывая огромное количество пикселей на изображениях, можно сделать вывод, что они могут содержать довольно много данных.
В большинстве случаев информация скрывается в пикселях, которые затем извлекаются с помощью специальных инструментов. С этой целью современные стеганографы иногда пишут специальные сценарии или добавляют необходимые функции в программы, предназначенные для других целей. Иногда они также используют готовый код, который можно легко найти в Интернете.
Как используется цифровая стеганография
Стеганография может использоваться во многих компьютерных технологиях. Вы можете скрыть текст в картинке, фильме или музыкальной дорожке для развлечения или, как в приведенном выше примере, для защиты файла от нелегального копирования.
Ещё один хороший пример – скрытые водяные знаки. Однако, первое, что приходит в голову о секретной информации – как физической, так и цифровой – это секретная переписка и шпионаж.
Дар небес для кибершпионов
Эксперты отметили рост интереса киберпреступников к стеганографии. Они заметили как минимум три шпионские кампании, в которых данные о жертвах отправлялись на контрольные серверы в виде фотографий и видео.
С точки зрения систем безопасности и сотрудников, задачей которых является мониторинг отправленного трафика, загруженные из интернета мультимедийные файлы не вызывают подозрений. И на это рассчитывали киберпреступники.
Шпионские мемы
Другая интересная шпионская программа получала команды в изображениях. Вредоносная программа общалась со своими создателями очень неочевидно: через мемы, опубликованные в Twitter.
Добравшись до компьютера жертвы, вредоносная программа открывала соответствующий твит и читала инструкцию из «смешной картинки».
Среди команд были, среди прочего:
Код, который использует изображение
Мультимедийные файлы могут скрывать не только текст, но и вредоносный код. Использование стеганографии не делает изображение, фильм или музыкальный файл вредоносной программой, но такой ресурс можно использовать, чтобы скрыть вредоносную нагрузку во время антивирусного сканирования.
Например, в январе злоумышленники распространяли забавный баннер через рекламные сети. В нём не было настоящей рекламы, но был маленький белый прямоугольник. Внутри был скрипт, который должен был запускаться в браузере. Благодаря таким решениям компании могут, например, собирать статистику, связанную с отображением рекламы.
Сценарий киберпреступника распознает цвет пикселей на изображении и регистрирует их как набор букв и цифр. Это кажется довольно бесполезным, тем более что кроме белой фигуры больше ничего не видно. Тем не менее, программа распознала, что пиксели были не белыми, а почти белыми, а недостающее «почти» было заменено на вредоносный код.
Код из баннера направлял пользователя на сайт злоумышленников. Там троян ждал жертву в виде обновления Adobe Flash Player, что приводило к ещё одному «сюрпризу»: рекламное ПО.
Обнаружение стеганографии – очень сложная задача
Как отметил Саймон Уайзман на конференции RSA 2018, качественную стеганографию чрезвычайно трудно обнаружить. Как избавиться от неё. Есть способы встроить сообщения в изображения настолько глубоко, что они остаются в них даже после печати и сканирования, изменения размера и даже после редактирования.
Как мы уже упоминали, информация (содержащая код) извлекается из изображений и фильмов с помощью специального инструмента. Другими словами, мультимедийные файлы ничего не крадут на вашем компьютере и не загружают на него. Таким образом, вы можете защитить свое устройство от элементов вредоносных программ, которые скрывают текст или вредоносный код в мультимедийных файлах и извлекают их из них:
Что такое стенография в информатике
Некоторые ошибочно считают, что стеганография является заменителем криптографии. Это не замена, а дополнение, которое защищает информацию. Информация, скрытая с помощью стенографии имеет меньше шансов на выявление факта передачи содержимого сообщения. А шифровка сообщения обеспечивает дополнительную защиту.
Стеганография оказывает неоценимую услугу в том случае, когда не только надо передать засекреченную информацию, но и сделать это так, чтобы об этой передаче никто не знал.
Существует два способа кодирования сообщений – шифрование и стенография. Как же можно спрятать передаваемую информацию? Существует только один ответ: только в информации еще большего размера. Принцип работы стенографии заключается в том, чтобы разбросать секретный текст в основном массиве сообщения, которое может быть даже отлично по смыслу. При этом извлечь его будет возможно, только зная принцип, по которому была произведена разбивка и рассеивание.
Существуют два главных принципа, на которых базируется компьютерная стенография:
-при оцифровке звука или изображения файлы могут быть слегка изменены, но при этом их функциональность сохраняется;
-человек не способен отличить мельчайшие изменения в изображении или звуке.
Например, кто-то вам отправил закодированное сообщение. Вы открываете свои ноутбуки, планшеты или электронные книги и видите текст письма с неким изображением. Но если пропустить его через фильтр, который выделит каждый бит в коде яркости и преобразит его в то самое тайное послание.
Итак, стенографическая система (или, как ее еще называют, стегосистема) это объединение методов и средств, с помощью которых производится создание тайного канала для пересылки информации. При ее создании не стоит забывать о том, что:
-противник прекрасно осведомлен о существовании стеганографической системы. Единственное, что остается для него тайной – это ключ к расшифровке, который дает возможность установить факт нахождения шифровки в тексте, а также раскодировать ее.
-нужно создать все условия для того, чтобы противник не имел возможности в распознавании и расшифровке тайных посланий.
Для создания стегосистемы возможно использовать любой вид информации (видео или фотоизображение, текст и так далее). Компьютерная стеганографии различает два тифа файлов: файл-контейнер, который служит для сокрытия непосредственно файла-сообщения. Иными словами письмо-секрет монтируется в письмо-контейнер.
Код в картинке, или Что такое стеганография?
Рассказываем об одном из самых креативных способов спрятать информацию.
Сейчас «читает между строк» говорят про человека, который умеет понимать намеки и скрытые смыслы. Между тем когда-то в буквальном смысле между строк действительно передавали тайные сообщения, написанные невидимыми чернилами.
Прием, когда автор послания прячет секретную информацию внутри чего-то на первый взгляд совершенно невинного, называется стеганография и применяется с незапамятных времен. В отличие от криптографии, которая делает сообщение нечитаемым без знания ключа для расшифровки, задача стеганографии в том, чтобы посторонние просто не догадались о существовании этого сообщения. Как и многие другие методы работы с информацией, сегодня стеганография используется и в цифровых технологиях.
Как работает цифровая стеганография?
Спрятать секретное послание можно практически в любой цифровой объект — текстовый документ, лицензионный ключ, расширение файла. Например, редакторы сайта Genius.com, посвященного разбору треков рэп-исполнителей, использовали два вида апострофов в текстах таким образом, чтобы вместе они составляли словосочетание red handed («с поличным») на азбуке Морзе. Таким образом они защищали от копирования уникальный контент ресурса.
Однако один из самых удобных «контейнеров» — медиафайлы (картинки, аудио, видео и так далее). Они обычно достаточно большие сами по себе, а значит, и «довесок» может быть не таким маленьким, как в случае, скажем, с документом Word.
Секретную информацию можно записать в метаданные файла или же прямиком в основное содержимое. Возьмем, например, картинку. С точки зрения компьютера она представляет собой набор из сотен тысяч точек-пикселей. У каждого пикселя есть «описание» — информация о его цвете.
Для формата RGB, который используется в большинстве цветных картинок, это описание занимает в памяти 24 бита. Если в описании некоторых или даже всех точек 1–3 бита будет занято секретной информацией, на картинке в целом изменения будут неразличимы. А за счет огромного числа пикселей всего в изображение вписать можно довольно много данных.
Слева просто картинка без скрытого сообщения, а в изображении справа спрятаны первые 10 глав «Лолиты» Набокова
В большинстве случаев прячут информацию в пиксели и извлекают ее оттуда при помощи специальных утилит. Иногда для этой цели пишут собственные скрипты или добавляют нужную функциональность в программы другого назначения. А иногда пользуются готовыми кодами, которых в сети немало.
Как используют цифровую стеганографию?
Применений стеганографии в компьютерных технологиях немало. Прятать текст в картинку, видео или музыкальный трек можно и развлечения ради, и, скажем, для защиты файла от нелегального копирования — как в приведенном выше примере с апострофами в текстах песен.
Да, скрытые водяные знаки — это тоже вполне себе пример стеганографии. Однако первое, что приходит в голову, когда речь заходит о тайных посланиях как в физической, так и в цифровой форме, — это разнообразная тайная переписка и шпионаж.
Стеганография — находка для кибершпиона
Всплеск интереса злоумышленников к стеганографии наши эксперты заметили полтора года назад. Тогда в их поле зрения попали по меньшей мере три шпионских кампании, в которых данные жертв отправлялись на командные серверы под видом фото и видео.
С точки зрения систем безопасности и сотрудников, следящих за исходящим трафиком, ничего подозрительного в том, что в Сеть загружают медиафайлы, не было. На это и рассчитывали преступники.
Самые тонкие мемы
Еще одна любопытная шпионская программа, наоборот, получала команды через картинки. Злоумышленники общались со зловредом при помощи сообщений, в которых серьезную информацию ищут в последнюю очередь, — твитов с мемами.
Очутившись на компьютере жертвы, зловред открывал опубликованный злоумышленниками пост и выуживал из смешной картинки инструкцию для дальнейших действий. Среди команд, к примеру, были такие:
Код в картинке
Вслед за шпионами к стеганографии стали чаще прибегать и другие киберпреступники: ведь в медиафайле можно спрятать не просто текст, а кусок вредоносного кода. Это не превращает картинку, музыку или видео в полноценного зловреда, однако позволяет скрыть от антивируса полезную нагрузку.
Так, в январе злоумышленники распространяли через рекламные сети занятный баннер. Собственно рекламы на нем не было, он выглядел как небольшой белый прямоугольник. Зато он содержал скрипт, который выполнялся в браузере. Да, в рекламный слот можно загружать скрипты, например, чтобы компании могли собирать статистику о просмотре объявления.
Баннер со скрытым кодом. Источник: блог компании Confiant
В случае киберпреступников скрипт распознавал цвет пикселей на картинке и записывал его в виде набора букв и цифр. Казалось бы, довольно бессмысленная задача: помните, там был просто белый прямоугольник? Однако в глазах программы пиксели были почти белыми, и это «почти» она преобразовывала во вредоносный код, который тут же и исполняла.
Извлеченный из картинки код перенаправлял пользователя на сайт злоумышленников. Там жертву уже ждал троян, притворяющийся обновлением Adobe Flash Player, который затем скачивал другие гадости, в частности рекламное ПО.
Обнаружить стеганографию очень трудно
Как отметил на форуме RSA Conference 2018 эксперт Саймон Уайзмен (Simon Wiseman), качественную стеганографию распознать крайне сложно. Избавиться от нее тоже не так-то просто: есть методы, позволяющие вшить сообщение в картинку настолько глубоко, что оно сохранится даже после того, как ее напечатают и снова отсканируют, уменьшат, увеличат или еще как-то отредактируют.
Однако, как мы уже упоминали, информацию — в том числе код — из изображений и видео извлекают при помощи специальной программы. То есть сами по себе медиафайлы ничего с вашего компьютера не украдут и на него не загрузят. Так что вы можете обезопасить свое устройство, защитив его от компонентов зловреда, которые прячут текст в медиафайлы и извлекают его из них:
Стеганография. Методы сокрытия сообщения в контейнере изображения
В настоящее время, темой номер один в компаниях стала кибербезопасность. Принимаются стратегические и инфраструктурные меры по обеспечению безопасности при работе с данными. В связи с этим, невозможно обойти стороной такую важную тему в кибербезопасности, как криптография и стеганография.
Криптография – это совокупность методов для шифрования передаваемого сообщения. Однако, существует метод скрытия самого факта наличия, скрытого в отправляемом сообщении. Этим занимается стеганография.
Существует множество секретных средств связи, которые можно отнести к методам стенографии, от достаточно древних (невидимые чернила, особое расположение знаков в письме, узелки на нитках, надписи на боковой стороне колоды карт или внутри варёного яйца, тайные каналы передачи) до современных, используемых в, так называемой, компьютерной стеганографии (метод наименьшее значащего бита, метод Куттера-Джордана-Боссена, алгоритм Брайндокса или Коха и так далее). В этой статье мы рассмотрим метод наименьшее значащего бита или Least Significant Bit method (LSB).
Для понимания происходящего, нам понадобится ввести некоторые определения.
Контейнер в стеганографии – это не секретные данные, используемые для сокрытия сообщения. Например, изображения, аудиофайлы, видеофайлы, текстовые документы и прочие мультимедиа файлы.
Сообщение – это секретная информация, скрываемая внутри контейнера.
Ключ – информация (как правило, секретная), необходимая для получения способа сокрытия и извлечения сообщения из контейнера. Ключ известен только санкционированному пользователю системы, без ключа получение сообщения невозможно.
Пустой контейнер – контейнер, не содержащий записанной в него информации. Соответственно, стего контейнер (или заполненный контейнер) – это контейнер, внутри которого содержится сообщение.
Стегосистема – это совокупность средств и методов, осуществляющих внедрение сообщения внутрь контейнера, а также извлечение этого сообщения из контейнера.
Данный алгоритм заменяет наименее значимый бит в нескольких байтах файла-носителя, чтобы скрыть последовательность байтов, содержащих скрытые данные. Для человека подобные изменения визуально неотличимы, что позволяет передавать скрытые сообщения в безобидном, на первый взгляд, изображении.
Теперь, когда у нас есть базовое понимание принципов организации стегосистемы и работы алгоритма LSB, рассмотрим один из способов распознавания факта передачи информации в изображении. Основным инструментом будет Python, библиотеки numpy, matplotlib, pillow и openCV.
Для начала, импортируем необходимые библиотеки.
Прочитаем тестовое изображение, скопируем его и сформируем изображение той же размерности, что исходное.
Далее приступим к написанию основной распознающей функции.
Исходный код, написанный на языке python можно найти в открытом доступе [на GitHub](https://www.github.com/ekertn7/stego «Checking a stego container in an image»).
Происходит побитовая проверка каждого пикселя изображения в разделенных каналах (R, G, B). Проверка выполняется по наименьшему значащему биту. В случае, если он равен единице, осуществляется закраска пикселя изображения черным цветом. Таким образом, на каждом канале изображения формируется шум, в случае наличия скрытого сообщения в контейнере изображения, зашифрованные участки будут визуально выделяться в одном или нескольких каналах. На изображении появятся неравномерные области наложения шума.
Наглядно работа алгоритма видна на представленных примерах изображений — в первом случае изображение не содержит стего контейнер и виден лишь наложенный шум, во втором же случае, проявляются отличительные признаки стего контейнера – неравномерные области наложения шума в каждом из трех каналов.
Первый случай, стего контейнер отсутствует:
Кодирование текстовой информации
Вы будете перенаправлены на Автор24
Чаще всего кодированию подвергаются тексты, написанные на естественных языках (русском, немецком и др.).
Основные способы кодирования текстовой информации
Существует несколько основных способов кодирования текстовой информации:
Процесс чтения текста представляет собой процесс, обратный его написанию, в результате которого письменный текст преобразуется в устную речь. Чтение – это ничто иное, как декодирование письменного текста.
А сейчас обратите внимание на то, что существует много способов кодирования одного и того же текста на одном и том же языке.
Поскольку мы русские, то и текст привыкли записывать с помощью алфавита своего родного языка. Однако тот же самый текст можно записать, используя латинские буквы. Иногда это приходится делать, когда мы отправляем SMS по мобильному телефону, клавиатура которого не содержит русских букв, или же электронное письмо на русском языке за границу, если у адресата нет русифицированного программного обеспечения. Например, фразу «Здравствуй, дорогой Саша!» можно записать как: «Zdravstvui, dorogoi Sasha!».
Стенография
Готовые работы на аналогичную тему
На рисунке представлен пример стенографии, в которой написано следущее: «Говорить умеют все люди на свете. Даже у самых примитивных племен есть речь. Язык — это нечто всеобщее и самое человеческое, что есть на свете»:
Стенография позволяет не только вести синхронную запись устной речи, но и рационализировать технику письма.
Приведёнными примерами мы проиллюстрировали важное правило: для кодирования одной и той же информации можно использовать разные способы, при этом их выбор будет зависеть от цели кодирования, условий и имеющихся средств.
Если нам нужно записать текст в темпе речи, сделаем это с помощью стенографии; если нужно передать текст за границу, воспользуемся латинским алфавитом; если необходимо представить текст в виде, понятном для грамотного русского человека, запишем его по всем правилам грамматики русского языка.
Также немаловажен выбор способа кодирования информации, который, в свою очередь, может быть связан с предполагаемым способом её обработки.
Заметим, что приведенные выше записи одного и того же числа используют разные языки: первая — естественный русский язык, вторая — формальный язык математики, не имеющий национальной принадлежности. Переход от представления на естественном языке к представлению на формальном языке можно также рассматривать как кодирование.
Криптография
В некоторых случаях возникает потребность засекречивания текста сообщения или документа, для того чтобы его не смогли прочитать те, кому не положено. Это называется защитой от несанкционированного доступа. В таком случае секретный текст шифруется. В давние времена шифрование называлось тайнописью.
Шифрование представляет собой процесс превращения открытого текста в зашифрованный, а дешифрование — процесс обратного преобразования, при котором восстанавливается исходный текст. Шифрование — это тоже кодирование, но с засекреченным методом, известным только источнику и адресату. Методами шифрования занимается наука криптография.
Криптография — это наука о методах и принципах передачи и приема зашифрованной с помощью специальных ключей информации. Ключ — секретная информация, используемая криптографическим алгоритмом при шифровании/расшифровке сообщений.
Числовое кодирование текстовой информации
В каждом национальном языке имеется свой алфавит, который состоит из определенного набора букв, следующих друг за другом, а значит и имеющих свой порядковый номер.
Каждой букве сопоставляется целое положительное число, которое называют кодом символа. Именно этот код и будет хранить память компьютера, а при выводе на экран или бумагу преобразовывать в соответствующий ему символ. Помимо кодов самих символов в памяти компьютера хранится и информация о том, какие именно данные закодированы в конкретной области памяти. Это необходимо для различия представленной информации в памяти компьютера (числа и символы).
Используя соответствия букв алфавита с их числовыми кодами, можно сформировать специальные таблицы кодирования. Иначе можно сказать, что символы конкретного алфавита имеют свои числовые коды в соответствии с определенной таблицей кодирования.
Однако, как известно, алфавитов в мире большое множество (английский, русский, китайский и др.). Соответственно возникает вопрос, каким образом можно закодировать все используемые на компьютере алфавиты.
Чтобы ответить на данный вопрос, нам придется заглянуть назад в прошлое.
Как мы знаем национальных алфавитов огромное количество, поэтому и расширенные таблицы ASCII-кодов представлены множеством вариантов. Так для русского языка существует также несколько вариантов, наиболее распространенные Windows-$1251$ и Koi8-r. Большое количество вариантов кодировочных таблиц создает определенные трудности. К примеру, мы отправляем письмо, представленное в одной кодировке, а получатель при этом пытается прочесть его в другой. В результате на экране у него появляется непонятная абракадабра, что говорит о том, что получателю для прочтения письма требуется применить иную кодировочную таблицу.
Следующая проблема возникает тогда, когда в тексте используют несколько языков (например, русский, английский и немецкий). Нельзя же использовать обе таблицы сразу.