МЕТОДИКА НАХОЖДЕНИЕ ВЕЛИЧИНЫ НАИБОЛЕЕ ВЫГОДНОГО КОНТЕЙНЕРА В ФОРМАТАХ ИСПОЛНЯЕМЫХ ФАЙЛОВ
Шариков Павел Иванович,
студент Санкт-Петербургского
государственного университета
телекоммуникаций
им. проф. М.А. Бонч-Бруевича,
г. Санкт-Петербург, Россия,
Ключевые слова:
скрытие информации, стеганография в исполняемых файлах, контейнеры, выбор выгодного контейнера, portable executable.
£
О л л С
Рассмотрена такая проблема, как выбор методики нахождения величины наиболее выгодного контейнера в форматах исполняемых файлов. Рассматривается, от чего зависит надежность стегосистемы и ее устойчивость к сте-гоанализу. Выявлены основные критерии выдвигаемые контейнеру в формате исполняемого файла. Проанализированы возможные типы контейнеров, а также способы их использования, трудности при работе с ними. Указаны эффективные возможности использования определенных типов контейнеров и их положительные стороны при вложении информации в них. Описан и аргументирован выбор определенного типа контейнеров. Обращено отдельное внимание способам выбора контейнера. Дано пояснение каждому способу, описаны эффективные возможности использования контейнеров отобранных с помощью каждого из рассматриваемых способов. Указаны основные трудности при использовании того или иного способа отбора контейнера. Сделан выбор, в рамках проблемы в пользу одного из способов и приведена аргументация выбора с эффективной реализацией данного способа. Также, приведено распределение контейнеров по типу организации. Описаны плюсы и минусы использования каждого из типов организации. Приведено предположение о соотношении количества информации вкладываемой в контейнер от выбора типа контейнера. Сделан выбор в пользу одного из типов организации контейнеров. Приведено рассуждение его выгодности и эффективности использования, при вложении информации по сравнению с другими. Представлен график, отображающий еще одну зависимость в файлах цифрового формата. На графике показана зависимость надежности системы от объема встраиваемых данных. При рассмотрении указанного графика сделан вывод и описание для достижения оптимальной зависимости надежности системы от объема встраиваемых данных. Соединив все аспекты выбора контейнера, найдено решение, связанное с выбором наиболее выгодного контейнера и сделан рисунок, который схематично показывает цепочку рассуждений в данной статье. В итоге сделан вывод по работе, собрана вся информация за время исследования и представлена методика для успешного скрытия сообщения в исполняемый файл.
Для начала необходимо обозначить объект для методики. За объект выбирается контейнер, то есть элемент интерфейса программы, который содержит или может содержать в себе другие элементы интерфейса. Контейнер объединяет все эти элементы в одно целое, так называемую группу, и отвечает за отображение этих элементов и предоставления возможности по управлению ими. С помощью стеганографических методов, возможно, передавать секретные сообщения, которые встраиваются в контейнеры, так, что сам факт передачи такого сообщения обнаружить невозможно. Разумеется, при использовании контейнеров для передачи секретных сообщений и просто для вложения информации (скрытия) от посторонних глаз есть свои плюсы и минусы. При встраивании сообщений происходит нарушение естественности контейнера и изменению некоторых его свойств.
Таким образом, надежность стегосистемы и вероятность обнаружения самого факта передачи скрытого сообщения напрямую зависит от выбора контейнера. Известно, что контейнер в программировании - это структура, которая позволяет инкапсулировать в себе типы данных различного типа. Наиболее известными контейнерами являются те, которые построены на основе шаблонов. Хотя существуют и решения в виде библиотек файлов. До стегокодера - контейнер пустой, после - заполненный. Существует два основных типа контейнеров: фиксированный и потоковый. При использовании потоковых контейнеров существенную трудность составляет синхронизация начала скрытого сообщения. Также существуют методы, использующиеся для контейнеров с произвольным доступом. Такие методы предназначены для работы с файлами фиксированной длины (программы, графические, звуковые файлы). В таком случае размер файла и его содержимое известно заранее [1-2].
Теперь отвлечемся и рассмотрим более детально использование контейнеров с произвольным доступом. При заранее известном размере файла и его содержимом, вытекает условие, при котором использование контейнеров фиксированной длины имеет смысл и большую вероятность сокрытия вложения. Данное условие можно сформулировать следующим образом. Контейнер с вложением и контейнер без вложения должны быть не различимы, т.е. абсолютно одинаковы, по объему занимаемой памяти. Так как мы рассматриваем в качестве контейнера некоторую программу (а точнее ее исполняемый код), то утверждение можно задать, исходя из наших потребностей. Контейнер с вложением и контейнер без вложения должны быть абсолютно одинаковы, по объему занимаемой памяти. Важный элемент вложения - у файла не должен меняться размер. Если это программный продукт имеющий интерфейс и визуализационную составляющую, то изменения затронувшие контейнер должны быть незаметны для человека. В идеале даже при использовании программных средств. Также,
в работе программы не должно произойти видимых изменений или изменений функционала программы при ее работе. Целостность и функции программы должны остаться без изменений [3].
Недостаток таких контейнеров в том, что они обладают гораздо меньшими размерами, чем потоковые. Преимуществом данных контейнеров является тот факт, что они могут быть заранее оценены с точки зрения эффективности выбранного стеганографического преобразования. В непрерывном потоке данных наибольшую трудность для получателя составляет сложность определения момента начала скрытого сообщения.
Несмотря на недостаток контейнеров с произвольным доступом, свой выбор останавливаем на них. Это связано с тем, что данные контейнеры встречаются повсеместно. В них проще отследить начало скрытого сообщения, в отличие от потоковых контейнеров. Несколько небольших контейнеров с произвольным доступом имеют большую эффективность и ценность для вложения информации, нежели потоковые контейнеры. Контейнер с произвольным доступом наиболее приемлем.
При использовании контейнеров имеющих фиксированную длину корреспондент заранее знает размер файла и может выбрать скрывающие биты в подходящей псевдослучайной последовательности [4].
Но контейнеры фиксированной длины имеют ограничение по объему, следовательно, скрываемое сообщение может попросту не поместиться в файл-контейнер. С другой стороны, контейнеры фиксированной длины наиболее распространены и доступны, что делает их использование на практике более обоснованным. Проще и удобнее будет рассматривать случайный контейнер. Случайным контейнером может оказаться абсолютно любой исполняемый файл, любого размера. Начиная от файла-запуска какого-либо небольшого приложения, заканчивая полноценными программами и их средами выполнения. Таким образом, мы не будем поставлены в жесткие рамки, и вправе будем выбирать любой интересующий нас контейнер. Проще говоря, при таком подходе подойдет любой контейнер, который выберем мы или в зависимости от ситуации выберут нам.
Также, существуют способы отбора контейнера. Методы суррогатной криптографии, селективной и конструирующей [5].
Суррогатная стеганография
или безальтернативная
Возможности выбора контейнера не существует по каким-либо причинам. Для сокрытия сообщения выбирается любой первый попавшийся контейнер, который может не подходить для скрываемого сообщения. Биты контейнера заменяются битами скрываемого сообщения так, что данное изменение незаметно. Главный недостаток данного метода заключается в том, что имеется возможность скрывать лишь незначительное количество данных.
www.h-es.ru
h&es research
59
Селективная стеганография
При использовании селективной стеганографии генерируется большое количество различных контейнеров, с целью последующего выбора наиболее подходящего контейнера из всех имеющихся для вложения в него конкретного сообщения. Наиболее часто выбор контейнера происходит путем сравнения хеш-функции сообщения и хеш-функции контейнера. Если хеш-функции совпали, то поиск наиболее удобного контейнера для вложения считается законченным и выбирается данный контейнер.
Конструирующая стеганография
Предельный случай. В данном способе отбора контейнера более детальный отбор проходит не контейнер, а скрываемое сообщение. Сообщение подбирается таким образом, чтобы при вложении его в контейнер оно минимально изменяло модель первоначального шума. Однако, чаще всего сама система генерирует контейнер. Шум контейнера моделируется скрываемым сообщением. В качестве примера может послужить какая-либо система, которая в качестве контейнера генерирует фрактал Мандельброта.
В зависимости от ситуации могут использоваться разные способы отбора контейнера. Можно предположить, что высокоэффективным методом будет конструирующая стеганография. В данном методе при использовании процедур, которые кодируют скрываемое сообщение под шум и сохраняют модель первоначального шума, вполне вероятно, обнаружить скрываемое сообщение гораздо сложнее, чем в других методах. Очевидно, что метод селективной стеганографии самый затратный по времени и ресурсам. Для сообщения небольшого объема совершенно не годится. Наконец, метод суррогатной стеганографии. Но у него имеется минус, по сравнению с остальными методами, в том, что он зачастую не позволяет вложить сообщение целиком в контейнер, он имеет преимущество в скорости. Такой контейнер подойдет для небольших вкладываемых сообщений, при которых не будет значительных искажений контейнера.
Исходя из того, что несколько контейнеров с небольшим количеством информации лучше, чем один большой, следует вывод, что способ суррогатной стеганографии наиболее применим. Имеется способ, который основывается на том, что ветвления кода программы можно записывать в различном порядке. При различных порядках записи ветвления кода программы, получается различный занимаемый объем памяти кодом. Таким образом, если при одном из ветвлений кода программа занимает меньшее количество памяти, а ее функционал остается неизменным, можно в освободившиеся биты программы осуществить вложение необходимой нам информации.
Контейнеры можно разделить по типу организации. По типу организации существует два вида контейнеров: систематические и несистематические.
В систематических контейнерах существует возможность указать определенные места стеганограммы, места, где находятся информационные биты самого контейнера и шумовые биты, которые предназначены и используются для скрываемой информации. В несистематических контейнерах такое разделение невозможно, чтобы выделить или узнать скрытую информацию будет необходимо обработать содержимое всей стеганограмы полностью.
Стоит принять во внимание, что при сокрытии информации в контейнере, происходит нарушение структуры или искажение ее статистических свойств искажение. Все это необходимо учитывать, так как от этого зависит уменьшение демаскирующих признаков.
Методы, которые используют специальные свойства форматов представления файлов, следует выделить в отдельную группу:
1. Зарезервированные для расширения поля компьютерных форматов файлов, которые обычно заполняются нулями и не учитываются программой.
2. Специальное форматирование данных (смещение слов, предложений, абзацев или выбор определенных позиций букв).
3. Использование незадействованных мест на магнитных носителях.
4. Удаление идентифицирующих заголовков для файла.
Для большинства современных методов, которые используются для скрытия сообщений в файлах цифрового формата, имеет место зависимость надежности системы от объема встраиваемых данных, представленная на рис. 1.
Надежность скрытая
Рис. 1. Диаграмма оптимальных характеристик контейнера стеговложения
Из рисунка 1 следует, что надежность системы сильно снижается при увеличении объема встраиваемых данных [6].
Таким образом, можно смело озвучивать, что вывод сделанный ранее о том, что несколько небольших контейнеров с малым количеством информации намного надежнее и эффективнее одного-двух больших
по объему контейнеров и с большим количеством информации в них.
Ограничивая степень ухудшения качеств контейнера, которые может воспринять человек, можно добиться при стеганографической обработке контейнера либо высокой устойчивости скрываемых данных к модификации или анализу, либо высокого уровня встраиваемых данных. Одновременно данных параметров достичь не удастся, ни в коем случае. При увеличении одного из показателей непременно будет происходить спад другого.
Имея в наличие многие аспекты выбора контейнера, мы можем прийти к решению проблемы выбора величины наиболее выгодного для скрытия данных в исполняемом файле. Все рассуждение схематично показано на рисунке 2 [7].
Выбор идеального контейнера
I
Потоковый Фиксированный
Типы
Методы
Контейнеры
Способ отбора
Тип организации
Принципы
I
Поток непрерывных данных
I Работа с файлами
фиксированной длины
Выбранный Навязанный Случайный
Суррогратная Селективная | Квнсщуирующан стеганография стеганое рафия стеганография
Систематический Несистематический контейнер контейнер
Цифровые методы Структурные методы
Рис. 2. Схема, иллюстрирующая выбор идеального контейнера
Вывод
В данной статье были приведены различные способы использования стегоконтейнеров. Исходя из разобранных способов, следует выделить следующую методику. Для того чтобы успешно скрыть сообщение в исполняемый файл необходимо:
- Раздробить сообщение на несколько сообщений небольшого размера/длины.
- Выбрать количество случайных контейнеров фиксированной длины равное количеству частей сообщения.
- Контейнеры обязательно должны быть систематическими, чтобы мы легко могли указать шумовые биты, предназначенные для скрываемой информации.
- Произвести в каждом из контейнеров семантическую замену значимых структурных элементов среды.
Таким образом, разделяя сообщение на несколько, мы увеличиваем количество скрываемых данных, тем самым повышая степень устойчивости контейнера.
Такой подход хорошо применим к ООП, где каждый класс это отдельный файл в который можно вложить данные.
Также, стоит учитывать, что огромное количество контейнеров небольшого размера не принесет желаемых результатов, как показано на рис. 1, и, стоит выбирать оптимальное решение, при выборе между скрываемыми данными и степенью устойчивости сигнала-контейнера.
Литература
1. Intel 64 and IA-32 Architectures Software Developer's Manual. Volume 2A: Instruction Set Reference, A-M: Intel Corp. 2008. 764 p.
2. Intel 64 and IA-32 Architectures Software Developer's Manual. Volume 2B: Instruction Set Reference, N-Z: Intel Corp. 2008. 524 p
3. Ingemar J. Cox. Digital Watermarking and Steganog-raphy, Second Edition: Morgan Kaufmann. 2008. 593 p.
4. Красов А.В., Штеренберг С.И., Верещагин А.С. Разработка методов защиты от копирования ПО на основе цифровых водяных знаков внедряемых в исполнимые и библиотечные файлы // Сборник: Актуальные проблемы инфокоммуникаций в науке и образовании. Материалы конференции: сборник научных статей. 2013. С.847-852.
5. Штеренберг С.И., Виткова Л.А., Андрианов В.И. Методы использования пустых секций исполнимого файла для стеговложения саморазвивающегося кода в распределенной системе однозначного отождествления // Системы управления и информационные технологии. 2015. Т. 59. № 1.1. С. 189-194.
6. Штеренберг С.И., Андрианов В.И. Варианты модификации структуры исполнимых файлов формата PE // Перспективы развития информационных технологий. 2013. № 16. С. 134-143.
7. Штеренберг С.И. Анализ современных методов стеганографии применительно к цифровым носителям // Сборник: Актуальные проблемы инфокоммуника-ций в науке и образовании. Материалы конференции: сборник научных статей. 2014. С. 925-932.
Для цитирования:
Шариков П.И. Методика нахождение величины наиболее выгодного контейнера в форматах исполняемых файлов // Наукоемкие технологии в космических исследованиях Земли. 2015. Т. 7. № 5. С. 58-62.
METHODS OF FINDING THE VALUE OF THE MOST PROFITABLE CONTAINER FORMATS OF EXECUTABLE FILES
Sharikov Pavel Ivanovich,
St. Petersburg, Russian, [email protected]
Abstrart
The describes a problem, as the choice of method for finding the value of the most profitable container formats of executable files. We consider, on which depends the reliability stegosystem and its resistance to steganalysis. In the article the basic criteria put forward by the container in the format of the executable file.
The possible types of containers, as well as how to use them, difficulties in dealing with them. Said effective possible use of certain types of containers and their positive aspects of the embedding information in them. It described and argued to select a certain type of containers. Paid special attention to methods for selection of containers. Explanation is given for each method are described efficient possible use of containers selected by each of the methods considered. Make a choice, within the framework of the problem, in favor of a way of reasoning and choice refer to the effective implementation of this method.
Also, given the distribution of containers by type of organization. We describe the pros and cons of using each type of organization. Powered assumption that the ratio of the amount of information deposited in a container on the choice of the type of container. To opt for one of the types of organization containers. Powered argument profitability and efficiency of its use, at an investment information than others. Is a graph showing another relationship in digital format files. The graph shows the reliability of the system from the scope of the embedded data. When considering this schedule concluded and description for optimum reliability of the system depending on the amount of embedded data. Combining all aspects of the selection of the container solution is found associated with the selection of the most profitable container and made a drawing that schematically shows the line of reasoning in this article. As a result of the conclu-
sion of the whole work, all the information collected during the study, and provides a methodology to successfully hide the message in an executable file.
Keywords: information hiding, steganography in executable files, containers, container profitable choice.
References
1. Intel 64 and IA-32 Architectures Software Developer's Manual. Volume 2A: Instruction Set Reference, AM: Intel Corp., 2008. 764 p.
2. Intel 64 and IA-32 Architectures Software Developer's Manual. Volume 2B: Instruction Set Reference, NZ: Intel Corp., 2008. 524 p.
3. IngemarJ. Cox. Digital Watermarking and Steganography, Second Edition: Morgan Kaufmann, 2008. 593 p.
4. Krasov A.V. Shterenberg S.I., Vereshchagin A.I. Development of methods of copy protection software based on digital watermarking implemented in executable and library files. In: Actual problems of info-communications in science and education materials of the conference: a collection of scientific articles. 2013. Pp. 847-852. (In Russian).
5. Shterenberg S.I., Vitkova L.A., Andrianov V.I. Methods of using the empty sections of executable code for stegov-lozheniya self-developing in a distributed system unambiguous identification. Sistemy upravleniya i informatsionnye tekhnologii. 2015. T. 59. No 1.1. Pp. 189-194. (In Russian).
6. Shterenberg S.I. Andrianov V.I. Options for modifying the structure of executable files format PE. Perspektivy razvitiya informatsionnykh tekhnologiy. 2013. No. 16. Pp.134-143. (In Russian).
7. Shterenberg S.I. Analysis of modern methods of steganography applied to digital media. In: Actual problems of info-communications in science and education materials of the conference: a collection of scientific articles. 2014. Pp. 925-932. (In Russian).
Information about authors:
Sharikov P.I., student, Federal State Educational Budget-Financed Institution of Higher Vocational Education The Bonch-Bruevich Saint-Petersburg State University of Telecommunications.
For citation:
Sharikov P.I. Methods of finding the value of the most profitable container formats of executable files. H&ES Research. 2015. Vol. 7. No. 5. Pp. 58-62. (in Russian).