Автореферат_Нечтаx - Сибирский государственный

реклама
На правах рукописи
Нечта Иван Васильевич
РАЗРАБОТКА МЕТОДОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ
ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ,
БАЗИРУЮЩИХСЯ НА ИДЕЯХ СТЕГАНОГРАФИИ
Специальность 05.13.17 – Теоретические основы информатики
АВТОРЕФЕРАТ
диссертации на соискание ученой степени
кандидат технических наук
Новосибирск-2012
Работа
выполнена
бюджетном
в
Федеральном
учреждении
«Сибирский
высшего
государственный
государственном
образовательном
профессионального
университет
образования
телекоммуникаций
и информатики» (ФГОБУ ВПО «СибГУТИ»)
Научный руководитель:
доктор технических наук
Фионов Андрей Николаевич
Официальные оппоненты: доктор технических наук
Шувалов Вячеслав Петрович
кандидат физико-математических наук
Монарёв Виктор Александрович
Ведущая организация:
ФГБОУ ВПО «Новосибирский государственный
технический университет»
Защита состоится ______ в ____ часов на заседании диссертационного совета
Д
219.005.02
при
ФГОБУ
ВПО
«СибГУТИ»
по
адресу:
630102,
г. Новосибирск, ул. Кирова, 86.
С
диссертацией
можно
ознакомиться
в
библиотеке
ФГОБУ
ВПО
«СибГУТИ».
Автореферат разослан «___»_______________2012 г.
Ученый секретарь
Диссертационного совета
к.т.н., доцент
Резван И.И.
2
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность исследования Разработка теоретических основ систем
защиты информации является одной из центральных проблем теоретической
информатики. Среди задач, решаемых в рамках систем защиты, особое место
занимает задача специального кодирования информации в виде данных,
предназначенных для скрытой передачи информации, называемая задачей
стеганографии. Построение стеганографических методов привлекает
внимание многих специалистов, занятых разработкой новых технологий
(например, технологий анализа и фильтрации передаваемой информации
в сети), направленных на обеспечение высокой надежности информационных
систем. В целом задача стеганографии, т.е. встраивания данных для скрытой
передачи, и противоположная ей задача стегоанализа, т.е. обнаружение
скрытой информации, являются одними из базовых проблем в теории
надежности и безопасности информационных технологий. В отличие
от криптографии, ограничивающей доступ к информации, содержащейся
в передаваемом сообщении с помощью некоторого секретного ключа, задача
стеганографии состоит в том, чтобы скрыть сам факт передачи какого-либо
сообщения от третьих лиц. Обычно, такая задача решается путем внедрения
передаваемого секретного сообщения в безобидный на вид объект данных,
так называемый контейнер. Сам контейнер подбирается таким образом,
чтобы факты его существования или передачи не вызывали никакого
подозрения. Основными характеристиками методов стеганографии следует
считать объем внедряемого сообщения и устойчивость к анализу
(обнаружению факта наличия внедрения).
В современном мире, в связи с бурным развитием компьютерной
техники, большой объем информации передается в цифровом виде.
Как следствие, одним из активно развивающихся направлений стеганографии
является цифровая стеганография. В этом направлении в качестве контейнера
используется цифровой объект – компьютерный файл. Современные методы
встраивания позволяют внедрять скрытую информацию в файлы аудио,
видео, текста, исполняемых программ и т.д.
В настоящее время существует большое количество стеганографических
программных пакетов как коммерческих, так и бесплатных, с графическим
интерфейсом и в виде консольных приложений.
Цифровая стеганография получила широкое применение в сфере
защиты авторских прав. В объект авторского права может быть внедрена
специальная метка – отпечаток пальца (fingerprint), которая идентифицирует
законного получателя. Например, в каждую продаваемую копию программы
может быть внедрена метка, идентифицирующая лицензионного покупателя.
В случае обнаружения пиратской копии программы при помощи встроенной
метки без труда может быть отслежен пользователь, нарушивший
лицензионное соглашение. Еще одной встраиваемой меткой может быть
цифровой водяной знак (watermark), идентифицирующий автора.
3
Предположим, в фотографию внедряется специальная метка, содержащая
паспортные данные автора. Затем обнаруживается постороннее лицо
выдающее эту фотографию как свою собственную. В ходе судебного
разбирательства с помощью извлеченного водяного знака может быть
установлен истинный автор фотографии.
Существует также обратная стеганографии задача – стегоанализ.
Задача стегоанализа состоит в обнаружении факта передачи секретного
сообщения. Можно сказать, что стеганография и стегоанализ – два
параллельно развивающихся направления науки. Так, для существующего
метода стеганографии может быть разработан метод стегоанализа, который,
как правило, накладывает ограничения на исходную схему встраивания
информации в контейнер. Например, уменьшается допустимый объем
передаваемой информации.
Стегоанализ получил широкое применение в сфере обеспечения
информационной
безопасности
и,
в
частности,
для
борьбы
с незаконной передачей информации. Например, в некоторых отечественных
и иностранных компаниях служба безопасности проверяет исходящую
электронную почту сотрудников для пресечения утечки закрытой
коммерческой информации. Принимая во внимание широкую доступность
и разнообразие программных продуктов, позволяющих встраивать скрытую
информацию в обычные «невинные» письма, становится очевидной
актуальность совершенствования методов стегоанализа. Учитывая большой
объем передаваемых данных, перспективными следует считать методы
компьютерного анализа, работающие без участия человека.
Стегоанализ также может быть применен злоумышленником.
Например, для случаев с цифровыми отпечатками пальцев в программе,
атакующий может выявить факт существования специальных меток
в программе и попытаться их исказить или удалить. В таком случае развитие
методов стегоанализа необходимо для установления потенциальных
возможностей злоумышленника и, соответственно, для корректировки схем
внедрения скрытой информации.
В настоящее время проводится множество конференций, по проблемам
информационной безопасности. С каждым годом растет число публикаций,
посвященных методам стеганографии и стегоанализа. В этом направлении
науки работают многие российские и зарубежные ученые: В.Г. Грибунин,
И.Н. Оков, Б.Я. Рябко, И.В. Туринцев, А.Н. Фионов, Р. Бергмар (R. Bergmar),
К. Качин (C. Cachin), М. Чапман (M. Chapman), Ж. Чень (J. Chen),
Д. Фридрич (J. Fridrich), и др. Однако вопросам текстовой стеганографии
посвящено сравнительно мало работ. Автором диссертации был проведен
анализ основных отечественных и зарубежных источников за более чем 10
последних лет. Список этих источников отражен в тексте диссертации.
Основные работы, с которыми производилось сопоставление результатов
диссертации, принадлежат специалистам, таким как Ж. Чень (J. Chen),
Л. Хуанг (L. Huang), Ж. Ю (Z. Yu).
4
Цель работы - обеспечение надежности и безопасности использования
информационных технологий, базирующееся на методах стеганографии.
Объектом исследований в предлагаемой работе являются методы
и алгоритмы стеганографии текстовых данных и программ (как особого вида
текста).
Состояние проблемы
Существует два основных подхода
к встраиванию информации в текстовый контейнер. Первый подход
предполагает использование семантических особенностей языка. Например,
метод, реализованный в программе Tyrannosaurus lex, работает следующим
образом. В тексте производится поиск слов, которые имеют некоторый набор
синонимов. Затем, в соответствии со скрываемым сообщением,
осуществляется замена найденных слов на соответствующие им синонимы.
Подобный подход обеспечивает высокую степень устойчивости к анализу,
так как получающийся текст практически не отличается от исходного
ни по смысловому содержанию, ни по синтаксической конструкции
предложений.
Второй подход заключается в генерации искусственного текста.
Для получения стеготекста используются контекстно-свободные грамматики.
Нетерминальные символы могут быть раскрыты по заданным правилам
несколькими возможными способами. В зависимости от входного сообщения
выбирается правило раскрытия. Получившийся стеготекст не содержит
грамматических и орфографических ошибок. На сегодняшний день самыми
популярными программами, генерирующими искусственный текст, являются
Nicetext, Texto и Markov-Chain-Based. Эти программы имеют высокое
соотношение размера входного сообщения к размеру генерируемого текста,
и получающийся текст максимально похож на естественный. Стоит отметить,
что получившийся искусственный текст, как правило, является
бессмысленным.
Методы внедрения, основанные на семантических особенностях текста,
являются трудно обнаружимыми. Замена одного слова на соответствующий
ему синоним не нарушает синтаксическую структуру предложения
и не искажает смысловое содержание. Несмотря на указанную особенность,
такой метод внедрения также не лишен недостатков. При замене некоторых
слов возможно нарушение стиля языка. Например, во фразе “what time is it?”
слово time может быть заменено на синоним duration, но это будет
некорректно для английского языка. Также использование некоторых слов
в качестве синонимов может нарушать авторский стиль написания текста.
На этих фактах базируются многое методы анализа.
Устойчивость методов, генерирующих стеготекст, подобный
естественному, обеспечивается заданными правилами грамматики.
Отсутствие грамматических и орфографических ошибок в предложениях
делает
затруднительным
поиск
отличий
искусственного
текста
5
от естественного. Анализ осмысленности текста можно производить только
с участием человека, что не всегда возможно из-за огромного объема
анализируемой информации. Наиболее эффективный метод анализа
использует прогнозирование для выявления искусственной природы текста,
порожденного программой Nicetext. Сначала производится анализ слов
первой половины текста, и составляется прогноз каждого последующего
слова из второй части текста. Если в подавляющем большинстве случаев
прогноз оказывается успешным, то это означает, что мы имеем дело
с естественным текстом. Частые ошибки при прогнозировании могут
свидетельствовать о наличии искусственного текста. Для программ Texto
и Markov-Chain-Based используются методы, учитывающие корреляцию слов
между предложениями. Так, считается, что предложения, содержащие слова,
встречающиеся только в технических текстах, не могут стоять рядом
с предложениями, содержащими слова, встречающиеся только в текстах
художественной литературы.
Подобно текстовым контейнерам, современные методы стеганографии
позволяют встраивать информацию в исполняемые файлы. Основным
требованием, предъявляемым к таким методам, является сохранение
алгоритма работы программы. Один из подходов задействует некоторую
незначительную избыточность в программных файлах, которая позволяет
внедрять водяной знак. Подобный подход используется в программах Stilo
и Diablo, чтобы скрыть данные непосредственно в исполняемых файлах.
Общая особенность этих методов состоит в нахождении некоторого набора
эквивалентных способов генерации исполняемого файла и сокрытие данных
через выбор одного из них. Методы генерации кода зависят от компилятора
и, в частности, от его методов выбора типа команды, планирования
инструкций, размещения текста программы, выделения регистров
и расстановки адресов функций в таблицах импорта. Следует обратить
внимание на то, что некоторые модификации кода могут быть применены
к уже готовому исполняемому файлу, в то время как другие – только
во время компиляции и, поэтому, требуется специально разработанный
компилятор.
Другой подход предлагает внедрять секретное сообщение
в неиспользуемые места исполняемого файла. Неиспользованные области
обычно заполняются нулевыми байтами, но они также могут быть заменены
на секретное сообщение. Доказать, что область программы является
неиспользуемой, можно только при наличии исходных кодов. В отличие
от предыдущего подхода, преимущество данного заключается в отсутствии
воздействия на работу программы. Более того, внедрение секретного
сообщения может быть осуществлено в готовый исполняемый файл.
Для проведения эффективного стегоанализа вышеописанных подходов,
существующие методы предполагают работу с исходными кодами
программ1. Это требует дизассемблирования исполняемого файла,
1
исходные коды на языке ассемблера.
6
что
является
достаточно
трудоемкой
задачей,
проходящей
в полуавтоматическом режиме (с участием человека). В настоящей работе
предлагается эффективный метод стегоанализа, лишенный указанного
недостатка.
Задачи исследования Для достижения указанных целей с учетом
изложенного состояния проблемы в рамках диссертационной работы
решаются следующие задачи:
1. Построение
стегоанализа
текстовых
данных,
порожденных
с использованием контекстно-свободных грамматик.
2. Построение
стегоанализа
текстовых
данных,
полученных
с использованием метода замены синонимов.
3. Построение стегоанализа исполняемых файлов.
4. Разработка схемы внедрения стеганографических меток в тексты
программ.
Методы исследования В процессе проведения исследований были
использованы основные положения и методы теории информации, теории
вероятностей, алгоритмы сжатия данных и эксперименты.
Результаты, выносимые на защиту
1. Построен
стегоанализ
текстовых
данных,
порожденных
с использованием контекстно-свободных грамматик.
2. Построен
стегоанализ
текстовых
данных,
полученных
с использованием метода замены синонимов.
3. Построен стегоанализ исполняемых файлов.
4. Разработана схема внедрения стеганографических меток в тексты
программ на С\С++.
Научная новизна результатов работы
1. Разработан метод стегоанализа искусственного текста, порожденного
для передачи секретных сообщений. Предложенный метод имеет
высокую точность (не менее 99.9%) при малых размерах
анализируемого контейнера (400 байт).
2. Разработан
эффективный
метод
обнаружения
стеготекста,
порожденного с помощью метода замены синонимов для внедрения
скрытых сообщений.
3. Разработан метод стегоанализа исполняемых файлов для выявления
скрытых сообщений, внедренных в неиспользуемые места программы.
Преимущество метода перед известными заключается в высокой
эффективности при малых объемах внедрения (80 байт) и в отсутствии
необходимости производить дизассемблирование кода программы.
7
4. Предложена схема встраивания стеганографических меток в исходные
коды программ на С\С++.
Практическая ценность полученных результатов
1. Для распространенной стегосистемы Texto построен эффективный
метод
выявления
факта
внедрения
скрытой
информации,
превосходящий по эффективности ранее известные схемы.
2. Для широко используемой стегосистемы Tyrannosaurus Lex построен
эффективный метод анализа.
3. Разработана эффективная схема стегоанализа исполняемых файлов.
4. Предложен метод встраивания информации в исполняемые файлы,
использующий
предварительное
кодирование
встраиваемого
сообщения.
5. Построена система встраивания водяных знаков для текстов программ
на C \ C++.
Реализация и внедрение результатов работы Основные результаты
использованы при выполнении следующих проектов и государственных
программ:
 Проект Федеральной целевой программы «Разработка эффективных
методов кодирования, передачи, защиты и хранения информации,
основанных
на
теоретико-информационном
подходе».
Государственный контракт № 02.740.11.0396.
 Проект РФФИ 09-07-00005-а «Разработка эффективных методов
стеганографии и стегоанализа» (руководитель – Рябко Б. Я.).
 Гранты для выполнения научных исследований аспирантами,
магистрантами и молодыми преподавателями ФГОБУ ВПО
«СибГУТИ», 2009 и 2010 гг.
Результаты работы внедрены:
 в учебный процесс на кафедре ПМиК в программах курсов «Защита
информации» (бакалавриат) и «Современные проблемы информатики»
(магистратура) по направлению подготовки 230100 «Информатика
и вычислительная техника»;
 в ПО системы безопасности и обнаружения вторжений в сети СО РАН
на базе Института вычислительных технологий СО РАН.
Апробация работы
Основные результаты данной работы докладывались и обсуждались
на следующих российских и международных конференциях:
 Российская
научно-техническая
конференция
«Информатика
и проблемы телекоммуникаций» (ФГОБУ ВПО «СибГУТИ»,
Новосибирск, 26-28 апреля, 2009).
8
 XLVII Международная научно студенческая конференция «Студент
и научно-технический прогресс» (Новосибирск, НГУ, 11-15 апреля,
2009).
 XII International Symposium on Problems of Redundancy (St.-Petersburg,
26-30 May, 2009).
 XLVIII Международная научно студенческая конференция «Студент
и научно-технический прогресс» (Новосибирск, НГУ, 10-14 апреля,
2010).
 Международная научно-практическая конференция «Информационная
безопасность 2010» (Таганрог, 22-25 июня, 2010).
 XLIX Международная научно студенческая конференция «Студент
и научно-технический прогресс» (Новосибирск, НГУ, 16-21 апреля,
2011).
 Российская
научно-техническая
конференция
«Информатика
и проблемы телекоммуникаций» (ФГОБУ ВПО «СибГУТИ»,
Новосибирск, 21-22 апреля, 2011).
 Applied Methods of Statistical Analysis. Simulations and Statistical
Inference (NSTU, September 20 - 22, 2011).
Публикации По теме диссертации опубликовано 16 работ, в числе
которых 7 статей в журналах и сборниках, из которых 6 входят в список
ВАК.
Личный вклад В работах, выполненных в соавторстве, вклад автора
состоит в построении и реализации предлагаемых схем и алгоритмов, а также
в проведении необходимых экспериментальных исследований.
Структура и объем работы Диссертация содержит 128 страниц
текста и состоит из введения, четырех глав, заключения, списка литературы
и приложения. Работа содержит 23 таблицы и 49 рисунков. Список
литературы включает в себя 64 источника.
КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении обосновывается актуальность темы, формулируются
основные цели и задачи исследования, представлены основные положения,
выносимые на защиту. Вводятся основные понятия стеганографии,
производится краткий обзор существующих методов встраивания
информации в текстовые и исполняемые файлы.
В первой главе был представлен подробный обзор существующих
методов стеганографии и стегоанализа текстовых данных. Также предложен
новый метод стегоанализа текстовых файлов, базирующийся на сжатии.
Приводится описание разработанной схемы анализа. Осуществляется выбор
9
оптимальных параметров работы алгоритма и производится сравнение
разработанного метода с современными аналогами.
Предложенный метод стегоанализа, основанный на подходе Рябко
2
Б.Я ., который заключается в том, что для выявления факта наличия
стеготекста используется сжатие обычным архиватором. Основная идея
подхода состоит в том, что внедряемое сообщение нарушает статистическую
структуру контейнера, повышая его энтропию. Следовательно, заполненный
контейнер будет «сжиматься» хуже, чем незаполненный. В отличие
от предыдущих известных аналогов, данный метод обладает рядом
преимуществ:
 метод имеет самую высокую точность из ранее известных аналогов;
 анализ занимает сравнительно мало времени (порядка 0,1-0,5 с.
на современных персональных компьютерах);
 необходим меньший объем входных данных по сравнению
с другими методами;
 для проведения анализа не требуется словарей синонимов
или правил грамматики языка, занимающих большой объем памяти.
Рассмотрим основную идею предлагаемого метода на следующем
примере. Пусть существуют контейнеры 𝑨 и 𝑩. Один из них содержит
стеготекст. Размеры контейнеров до и после сжатия архиватором приведены
в (табл. 1).
Таблица 1. Размеры контейнеров до сжатия
После
Контейнер До сжатия
сжатия
500
300
𝑨
500
320
𝑩
Возьмем контейнер 𝑪, содержащий стеготекст. Допишем 𝑪 в конец
контейнеров 𝑨 и 𝑩, сожмем и сравним получившиеся длины файлов после
сжатия. Исходя из полученных размеров до и после сжатия (табл. 2), можно
утверждать, что контейнер 𝑪 является статистически зависимым
относительно контейнера 𝑩, что обеспечивает хорошее «сжатие».
И наоборот, является независимым относительно 𝑨, то есть «сжатие» будет
хуже. Следовательно, стеготекстом является контейнер 𝑩. На этом принципе
строится стегоатака на широко известное программное средство Texto.
2
Ryabko B. Compression-based methods for nonparametric density estimation,
on-line prediction, regression and classification for time series // IEEE Information
Theory Workshop, Porto, Portugal, 5–9 May, 2008.
10
Таблица 2. Размер сообщения после сжатия
После
Контейнер До сжатия
сжатия
50
45
𝑪
50
20
𝑪
Теперь перейдем к формальному описанию метода. Анализируемый
контейнер должен иметь размер в 400 байт (лишнее следует удалить).
Допишем в специально подобранные тексты (полученные с помощью
программ Nicetext и Texto) размером 𝑵 и 𝑻 соответственно, содержимое
анализируемого контейнера. Обозначим получившиеся размеры текстов
𝑵𝑿 и 𝑻𝑿 соответственно. Далее производится сжатие имеющихся текстов
с помощью архиватора Bzip2. Затем производится расчет статистических
характеристик по следующим формулам: (индекс 𝒃𝒛𝒊𝒑𝟐 означает размер
после сжатия)
𝑵𝒃𝒛𝒊𝒑𝟐
𝑵𝑿𝒃𝒛𝒊𝒑𝟐
𝑻𝒃𝒛𝒊𝒑𝟐
𝑻𝑿𝒃𝒛𝒊𝒑𝟐
𝜶= (
−
𝜷= (
−
) ∗ 𝟏𝟎𝟎%
) ∗ 𝟏𝟎𝟎%
𝑵
𝑵𝑿
𝑻
𝑻𝑿
Определение факта наличия или отсутствия стеготекста в контейнере
осуществляется исходя из полученных характеристик 𝒂 и 𝜷. Эмпирическим
путем в ходе ряда экспериментов было установлено, что для естественного
текста должно выполняться хотя бы одно из следующих условий:
 𝜶 > 0.9
 𝜷<1
Если ни одно из приведенных условий не выполняется, то это означает
наличие стеготекста в контейнере.
По результатам проведенных экспериментов было установлено,
что предложенный метод стегоанализа имеет высокую эффективность.
Для текстовых контейнеров размером 400 байт, полученных с помощью
программы Texto, точность работы метода (отношение числа правильных
срабатываний метода на различных контейнерах к общему числу
контейнеров) составляет не менее 99.9%. На рис. 1 представлено сравнение
эффективности работы предлагаемого метода с современными аналогами
(Chen Z.и др. 2008 (1)3 и Chen Z. и др. 2008 (2)4).
3
Chen Z., Huang L., Yu Z., Zhao X., Zheng X. Effective Linguistic
Steganography Detection // IEEE 8th International Conference on Computer and
Information Technology Workshops. 2008. P. 224-229.
4
Chen Z., Huang L., Yu Z., Li L., Yang W. A Statistical Algorithm for
Linguistic Steganography Detection Based on Distribution of Words //
Availability, Reliability and Security. 2008. P. 558 - 563.
11
120
Точность обнаржения, %
100
80
Chen Z. и др.
2008 (1)
60
Новый
метод
40
Chen Z. и др.
2008 (2)
20
0
200
400
1000
2000
3000
4000
5000
Размер контейнера, байт
Рис. 1. Сравнительные графики эффективности работы методов стегоанализа
контейнеров, полученных с помощью программы Texto.
Таким образом, на сегодняшний день, разработанный метод
превосходит по эффективности другие современные аналоги.
Во
второй
главе
рассматриваются
методы,
основанные
на семантических особенностях языка, для внедрения скрытых сообщений
в текстовые данные. За основу берется метод, реализованный в программе
Tyrannosaurus Lex5, использующий для встраивания сообщений замену слов
на синонимы. В данной главе предлагается новый метод обнаружения
внедрения информации в текстовые контейнеры, базирующийся
на статистических свойствах внедряемого сообщения. Описывается схема
проведения анализа контейнеров и производится сравнение разработанного
метода с существующими аналогами.
Известно, что перед внедрением сообщение будет предварительно
зашифровано. Следовательно, внедряемая последовательность будет
выглядеть как случайная. В ходе исследований было установлено,
что последовательность, извлеченная из пустого контейнера, отличается
от случайной. Таким образом, проверяя на случайность извлекаемое
из подозрительного контейнера сообщение, мы можем обнаруживать
наличие факта внедрения скрытой информации.
В данной работе предлагается использовать статистический тест
хи-квадрат для проверки извлеченного сообщения на случайность.
Winstein K. Tyrannosaurus lex 1999. [Электронный ресурс]. – Режим
доступа: http://alumni.imsa.edu/~keithw/tlex/, свободный. 2009.
5
12
Извлекаемая последовательность разбивается на элементы по 𝑳 бит. Затем
проверяется случайность распределения этих элементов. В ходе
многочисленных экспериментов было установлено, что при 𝑳 = 4 бит
стегоанализ проходит наиболее эффективно. В целях повышения
эффективности работы метода было предложено модифицировать тест
хи-квадрат путем использования квантиля, дающего оптимальные
результаты стегоанализа. Можно сказать, что квантиль представляет собой
границу, отделяющую значения хи-квадрат случайных последовательностей
от неслучайных последовательностей и эту границу мы будет подбирать
эмпирически. В диссертационной работе для проверки случайности входного
сообщения предлагается дополнительно использовать «тест со смещением»,
представленный на рис. 2.
Тест состоит из пяти шагов. На первом шаге извлечённое сообщение
(начиная с первого бита) разбивается на элементы размером 4 бита
и проверяется случайность распределения этих элементов. На каждом
последующем шаге происходит отбрасывание одного левого бита
сообщения. Затем производится аналогичное разбиение на элементы
и проверка на случайность. Если на одном из пяти шагов сообщение
признается неслучайным, то считается, что контейнер был пустым.
Рис. 2. Схема работы теста со смещением
Для проверки эффективности работы предлагаемого метода
был проведен эксперимент. Ниже приведены результаты сравнения
разработанного метода с известными аналогами (Taskirian C. и др. 20066,
Yu. Z. и др. 20097, Chen Z. и др. 20118).
6
Taskiran C., Topkara U., Topkara M., Delp E. Attacks on Lexical Natural
Language Steganography Systems // Proceedings of the SPIE International
Conference on Security, Steganography, and Watermarking of Multimedia
Contents VI. San Jose. 2006.
7
Yu Z., Huang L., Chan Z., Li L., Zhao X., Zhu Y. Steganalysis of SynonymSubstitution Based Natural Language Watermarking // International Journal of
Multimedia and Ubiquitous Engineering. V. 4, №. 2, April 2009.
8
Chen Z., Huang L., Yang W. Detection of substitution-based linguistic
steganography by relative frequency analysis // Digital investigation 2011. V. 8(1),
Elsevier. P. 68-77.
13
Таблица 3. Результаты сравнения метода с известными аналогами
Метод
Род ошибки
Chen Z.
и др. 2011
Yu. Z.
и др. 2009
Taskirian C.
и др. 2006
Новый
метод
I рода9
2.3 %
7.8 %
61.4 %
2.3 %
II рода10
0.5 %
8.9 %
15.1 %
1.9 %
Объем входных
данных, бит
100-150
64
1-4
4000
Из представленных результатов видно, что предложенный метод
не уступает по точности работы современным аналогам. Несмотря на то,
что реализованный алгоритм требует сравнительно больший объем данных,
его реализация значительно более проста, чем у приведенных аналогов.
В третьей главе рассматривается идея применения статистического
анализа к исполняемым программам. Можно утверждать, что подход,
примененный ранее для анализа текстовых данных, можно также применять
к коду программы. Подход предполагает использовать архиватор
для выявления случайности сообщения. Известно, что зашифрованное
сообщение
выглядит
как
псевдослучайная
последовательность.
А это означает, что при сжатии архиватором такой последовательности
ее размер более уменьшаться не может. Программа, наоборот, имеет часто
повторяющиеся наборы двоичных инструкций. Архиватор такие повторения
обнаружит, следовательно, это даст уменьшение размера при сжатии.
На этой особенности и основан предлагаемый метод стегоанализа. Стоит
отметить, что для выявления случайности сообщения можно использовать
не только архиваторы, но и любой другой код, применяющийся при сжатии
данных. В настоящей работе предлагается использовать код Хаффмана.
Экспериментально получены данные о высокой вероятности обнаружения
внедренного сообщения.
В работе за основу берется метод внедрения сообщений в исполняемые
файлы формата Portable Executable. Идея исходного метода встраивания
информации состоит в следующем. Исполняемая программа состоит
из секций, при этом размер каждой секции должен быть кратен 4 Кбайт.
Обычно, не хватающий объем секции заполняют нулевыми байтами (байтами
9
Ошибка I рода – случай, когда пустой контейнер признается заполненным.
Ошибка II рода – случай, когда заполненный контейнер признается пустым.
10
14
выравнивания). Рассматриваемый метод внедрения11 использует замену
байтов выравнивания на секретное сообщение.
В данной главе предлагается метод стегоанализа исполняемых файлов.
Основная идея состоит в том, что самый последний участок секции кода
(будем называть его окном), будет подвергаться анализу на случайность.
Как было описано ранее, случайность содержимого окна может означать
наличие факта внедрения. В ходе экспериментов было установлено, что при
размере окна 𝑾 = 80 байт метод анализа работает наиболее эффективно.
Если размер закодированного окна превосходит 56 байт – контейнер
считается заполненным, иначе – пустым.
Ниже приведены результаты работы предлагаемого метода
при различных размерах внедрения. Анализу были подвергнуты 1000
заполненных контейнеров.
Таблица 4. Результаты стегоанализа исполняемых файлов
40
Успешно
обнаружено
46.6%
Размер внедрения, байт
50
60
70
64.2%
83.8%
99.1%
80
99.9%
Из (табл. 4) видно, что уже при внедрении 70 байт метод стегоанализа
работает достаточно эффективно. На пустых контейнерах метод работает
без ошибок. Основными достоинствами данного метода является высокая
точность обнаружения и отсутствие необходимости дизассемблировать
программный код.
Исходя из особенностей разработанной схемы стегоанализа, в данной
главе также даются рекомендации, направленные на повышение
устойчивости к анализу рассмотренного метода внедрения сообщения.
Так как анализ выявляет отсутствие избыточности окна, то является
целесообразным предварительно кодировать внедряемое сообщение,
увеличивая, таким образом, избыточность.
В
работе
предлагается
использовать
код
Хаффмана
для предварительного кодирования. В диссертации рассматриваются
различные способы получения оценок вероятностей необходимых
для построения кода. В ходе экспериментов было установлено, что на этапе
кодирования сообщения для построения дерева Хаффмана следует
использовать одно из следующих распределений вероятностей:
 распределение вероятностей первых 80 байт секции кода;
 распределение вероятностей последних 80 байт секции кода (без учета
байтов выравнивания);
 особое распределение вероятностей, показанное на рис. 3.
11
Shin D., Kim Y., Byun K., Lee S. Data Hiding in Windows Executable Files //
Australian Digital Forensics Conference. 2008. P. 51.
15
Рис. 3. Особое распределение вероятностей байт кода программы
Подробное обоснование причин выбора указанных распределений описано
в диссертационной работе.
Как показывают многочисленные эксперименты, применение
вышеуказанных распределений на этапе кодирования сообщения, делает
метод внедрения устойчивым к разработанному стегоанализу.
В четвертой главе описываются системы защиты авторских прав,
базирующихся на методах стеганографии. Предлагается метод встраивания
стеганографических меток в тексты программ. Приводятся результаты
экспериментального определения объема внедряемой информации
в исходные код программ на C\C++.
Поскольку мы говорим о водяных знаках в программах, то следует
отметить, что внедряемые данные в программные файлы имеют свою
собственную специфику, например, внедрение не может быть сделано прямой
модификацией файлов, потому что любая такая модификация, с высокой долей
вероятности, уничтожит алгоритм работы программы. Внедрение должно быть
сделано таким путем, который гарантирует правильное функционирование
программы.
В настоящей работе предлагается метод внедрения водяных знаков
в исходные тексты программ. В нашем алгоритме нанесения водяных знаков,
было применено лексикографическое упорядочивание операции присваивания
и локальных переменных. Рассмотрим пример работы нашей программы. Пусть
дана следующая функция:
int f (int x)
{
int a, b;
a = x + 1;
b = x – 1;
return a + 2 * b;
}
Согласно нашему подходу мы можем внедрять два бита водяного знака
в эту функцию путем выбора порядка объявления локальных переменных:
0→ int a, b;
1→ int b, a;
и порядка следования «независимых» операторов присваивания:
16
0→ a = x + 1;
1→ b = x – 1;
b = x – 1;
a = x + 1;
Здесь «независимость» операторов присваивания подразумевает независимость
результатов выполнения операторов от их порядка.
Так, исходная функция, в которой объявления переменных и инструкции
упорядочивают лексикографически, соответствует водяному знаку “00”. Чтобы
внедрять водяной знак “11”, мы перезаписываем функцию в виде:
int f (int x)
{
int b, a;
b = x - 1;
a = x + 1;
return a + 2 * b;
}
Когда мы говорим об эффективности внедрения, мы учитываем число
битов, которые могут быть внедрены в исходные файлы. Исходя
из особенностей описываемого метода, емкость определяется двумя вещами:
сколько переменных объявлены в каждой функции и сколько мы групп
независимых инструкций мы можем найти. Однако существуют ограничения,
уменьшающие объем внедряемой информации. Например, допускается
перестановка переменных, объявленных только в начале блока.
Это согласуется с общепринятой практикой программирования на C++:
прежде чем использовать переменные, их необходимо объявить. Хотя
некоторые переменные могут быть объявлены по ходу выполнения
программы, их позиции в исходном тексте не следует менять, потому что это
нарушит область и видимость и может вести к различного рода ошибкам.
Также запрещается переставлять кажущиеся независимыми инструкции, если
они содержат любую косвенную ссылку (указатель, массив). Проследить
содержимое указателей по их имени, чтобы гарантировать независимость
инструкций, не представляется возможным. Например, операции:
*p = 5;
*q = 4;
могут быть зависимы, когда указатели p и q ссылаются на одну
и ту же область памяти. Как показывают эксперименты, эти ограничения
очень сильно уменьшают объем внедряемой информации. Другие
ограничения подробно рассмотрены в диссертационной работе.
Для практической проверки внедрения информации, были
использованы программы на C\C++. Ниже приводятся результаты
проведенного эксперимента для некоторых проектов (табл. 5).
17
Таблица 5. Результаты внедрения водяного знака в тексты программ
Имя
HView v113b
SymTorrent 1.3
DosBox
Putty 1.5.1
Vim
OpenVideoHub
Число файлов
10
2007
107
227
395
405
Размер файлов
58 Кб
679 Кб
2066 Кб
3650 Кб
3980 Кб
6853 Кб
Длина водяного знака
27 бит
40 бит
127 бит
1018 бит
207 бит
2205 бит
Следует отметить, что часть проектов была малопригодна для встраивания,
позволяя внедрить всего от 0 до 10 битов. Анализ причин такого низкого
объема внедрения показывает, что, в дополнение к выше описанным
ограничениям, разработанный метод плохо согласуется с широко
распространенной
объектно-ориентированной
технологией
программирования. Почти любая операция применяет методы класса,
и трудно определить, безопасно ли изменить порядок операций из-за
возможных побочных эффектов к свойствам класса.
В заключении приводятся выводы по диссертационной работе.
В приложении даются исходные коды программ, реализующих
разработанные алгоритмы.
ОСНОВНЫЕ ЗАКЛЮЧЕНИЯ И ВЫВОДЫ
В рамках диссертационной работы были разработаны методы
обеспечения безопасности использования информационных технологий.
Предложенные алгоритмы, базирующиеся на методах стеганографии, могут
быть использованы, например, для анализа и фильтрации передаваемого
трафика в сети, с целью пресечения утечки коммерческой информации
предприятия. Первый разработанный метод стегоанализа базируется на
выявлении
статистической
зависимости
свойств
заполненного
и анализируемого контейнеров. Зависимость может быть выявлена обычным
архиватором. На сегодняшний день данная схема стегоанализа является
наиболее эффективной по сравнению с существующими аналогами. Второй
метод обнаружения скрытой информации основан на статистической
особенности встраиваемого сообщения, которое выглядит как случайная
последовательность. Проверяя извлеченное из подозрительного контейнера
сообщение на случайность, разработанный метод стегоанализа позволяет
обнаруживать наличие внедрения с высокой точностью. Третий
разработанный метод стегоанализа, также использует сжатие для выявления
факта передачи секретного сообщения в исполняемых файлах. Предложенная
схема обладает высокой эффективностью работы и, в отличие от имеющихся
аналогов, не требует дизассемблировать программу. В работе даются
рекомендации
повышающие
устойчивость
метода
внедрения
18
к разработанному стегоанализу. Четвертый разработанный метод,
использующий внедрение стеганографических меток в исходные тексты
программ, может быть использован для построения систем защиты авторских
прав.
ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ
1. Нечта И.В. Эффективные методы включения Скрытой информации
в тексты программ. // Российская научно-техническая конференция
«Информатика и проблемы телекоммуникаций». Новосибирск, ФГОБУ
ВПО «СибГУТИ», 26-28 апреля, 2009. С. 22.
2. Нечта И.В. Стеганография в файлах формата Portable Executable //
Вестник СибГУТИ. 2009. №1. С. 85–89.
3. Нечта И.В. Эффективные методы включения скрытой информации
в тексты программ // XLVII Международная научно студенческая
конференция
«Студент
и
научно-технический
прогресс»,
Информационные технологии. Новосибирск, 10-15 апреля, 2009. С.58.
4. I.Nechta, B.Ryabko, A.Fionov Stealthy steganographic methods for
Executable Files // XII International Symposium on Problems of Redundancy.
St.-Petersburg, 26-30 May, 2009. P.191–195.
5. B.Ryabko, A.Fionov, K.Eltisheva, I.Nechta, Y.Soldatova, M.Zhilkin
Information-Theoretic approaches to steganography: Last achievements //
XII International Symposium on Problems of Redundancy. St.-Petersburg,
26-30 May, 2009. P. 196–199.
6. Нечта И.В. Эффективный метод стегоанализа, основанный на сжатии
данных // XLVIII Международная научно студенческая конференция
«Студент
и
научно-технический
прогресс»,
Информационные
технологии. Новосибирск, 10-14 апреля, 2010. С. 76.
7. Нечта И.В. Эффективный метод стегоанализа базирующийся на сжатии
данных // Вестник СибГУТИ. 2010. №1. С. 50–55.
8. Нечта И.В. Фионов А.Н. Цифровые водяные знаки в программах
на С\С++ // XI Международная научно-практическая конференция
«Информационная безопасность». Том III. Таганрог, 22-25 июня, 2010.
С. 108–113.
9. Нечта И.В. Фионов А.Н. Цифровые водяные знаки в программах
на С\С++ // Известия ЮФУ. Технические науки. 2010. № 11. С. 175–182.
10.Нечта И.В. Эффективный метод стегоанализа, базирующийся на коде
Хаффмана. // Вестник СибГУТИ. 2010. №4. С. 47–54.
11.Нечта И.В. Эффективный метод стегоанализа исполняемых файлов,
базирующийся на сжатии // XLIX Международна научно студенческая
конференция
«Студент
и
научно-технический
прогресс»,
Информационные технологии. Новосибирск, 16-21 апреля, 2011. С. 53.
19
12.Нечта И.В. Эффективный метод стегоанализа, базирующийся на коде
Хаффмана.
//
Российская
научно-техническая
конференция
«Информатика и проблемы телекоммуникаций». Новосибирск, ФГОБУ
ВПО «СибГУТИ», 21-22 апреля, 2011. С. 360.
13.Нечта И.В. Метод внедрения скрытых сообщений в исполняемые файлы
// Вестник СибГУТИ. 2011. №2. С. 3–10.
14.Nechta I. Fionov A. Applying stat methods to text steganography // Applied
Methods of Statistical Analysis. Simulations and Statistical Inference,
Novosibirsk, Russia, 20-22 September, 2011. P. 278–284.
15.Нечта И.В. Метод стегоанализа текстовых данных, основанный
на использовании статистического анализа // Вестник СибГУТИ. 2011.
№3. С. 27–34.
16.Нечта И.В. Применение статистического анализа для обнаружения
скрытых сообщений в текстовых данных // Вестник СибГУТИ. 2012.
№ 1 C. 29 – 36.
20
Нечта Иван Васильевич
РАЗРАБОТКА МЕТОДОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ
ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ,
БАЗИРУЮЩИХСЯ НА ИДЕЯХ СТЕГАНОГРАФИИ
Автореферат
Подписано в печать «__»________2012г.
Формат бумаги 60х84/16, отпечатано на ризографе, шрифт №10,
изд. л. 1,6, заказ № ___, тираж 100. ФГОБУ ВПО «СибГУТИ»
630102, Новосибирск, ул. Кирова, 86
Скачать