+
Действующая цена700 499 руб.
Товаров:
На сумму:

Электронная библиотека диссертаций

Доставка любой диссертации в формате PDF и WORD за 499 руб. на e-mail - 20 мин. 800 000 наименований диссертаций и авторефератов. Все авторефераты диссертаций - БЕСПЛАТНО

Расширенный поиск

Восстановление форматов сетевых сообщений и файлов по бинарным трассам программ

  • Автор:

    Гетьман, Александр Игоревич

  • Шифр специальности:

    05.13.11

  • Научная степень:

    Кандидатская

  • Год защиты:

    2013

  • Место защиты:

    Москва

  • Количество страниц:

    127 с. : ил.

  • Стоимость:

    700 р.

    499 руб.

до окончания действия скидки
00
00
00
00
+
Наш сайт выгодно отличается тем что при покупке, кроме PDF версии Вы в подарок получаете работу преобразованную в WORD - документ и это предоставляет качественно другие возможности при работе с документом
Страницы оглавления работы

Оглавление
Введение
1. Постановка задачи
1.1. Описание контекста задачи
1.2. Определение формата данных
2. Обзор работ
2.1 Анализ сетевого трафика
2.2 Статический анализ кода
2.3 Динамический анализ кода
2.4 Анализ входящих и исходящих данных
2.5 Восстановление автомата протокола
2.6 Представление результатов анализа
2.7 Выводы
3. Метод восстановления формата данных
3.1 Определения терминов
3.2 Анализ помеченных данных
3.3 Алгоритм восстановления границ полей
3.4 Анализ циклов
3.5 Алгоритм поиска развёрнутых циклов по графу потока управления
3.5.1 Анализ алгоритма оптимизации
3.5.2 Алгоритм поиска шаблонов на графе потока управления
3.6 Алгоритмы восстановления семантики
3.6.1 Поиск полей длины
3.6.2 Поиск полей разделителей
3.6.3 Поиск полей указателей
3.6.4 Поиск ключевых полей
3.6.5 Поиск флаговых полей
3.6.6 Поиск связанных полей
3.6.7 Поиск шаблонов на графе зависимостей
3.7 Восстановление группировки полей в виде последовательностей и записей
3.8 Использование спецификаций функций для уточнения восстановленного формата
3.9 Восстановление формата данных, вводимых по частям
3.9.1 Уточнение понятия сообщение
3.9.2 Особенности анализа файлов
3.9.3 Виртуальный буфер
3.10 Анализ шифрованного трафика
3.11 Выделение сессий обмена
4. Метод обобщения и уточнения восстанавливаемого формата данных
4.1 Обобщение восстановленного формата
4.2 Объединение нескольких форматов
4.2.1 Описание базового алгоритма Нидлмана-Вунша
4.2.2 Описание доработанного алгоритма Нидлмана-Вунша
4.2.3 Построение обобщающего дерева
5. Реализация разработанной системы восстановления форматов
5.1 Описание системы восстановления формата данных
5.2 Проверка реализованной системы
5.2.1 Проверка методов восстановления формата
5.2.2 Проверка алгоритма обобщения формата
5.2.3 Проверка системы объединения форматов
Заключение
Список литературы
Приложение 1. Описание промежуточного представления формата сообщения
Введение
В настоящее время основным способом распространения программ является их представление в виде исполняемого (бинарного) кода. Исходные тексты программ на языках высокого уровня, как правило, не доступны. Активные исследования и разработки в области анализа бинарного кода проводятся как в ведущих научных центрах, так и в коммерческих организациях. В результатах таких исследований заинтересованы многие компании, решающие задачи сертификации ПО, обратной инженерии, обеспечения информационной безопасности, рефакторинга, синтеза программ по их спецификациям и др.
Анализ бинарного кода, в первую очередь, связан с выделением и анализом реализованных в программах алгоритмов с целью их понимания и формального описания. Реализация алгоритма, согласно определению Вирта, представляет собой совокупность кода и данных, обрабатываемых этим кодом. Поэтому полноценное восстановление алгоритмов невозможно без восстановления форматов и структур данных, обрабатываемых этим алгоритмом. Данные на вход программе могут поступать из нескольких основных источников. Одним из таких источников является непосредственный ввод данных пользователем с клавиатуры. Однако в современных программных системах большая часть данных поступает в программу по сети в виде сетевых пакетов либо считывается с локальных дисков, где информация хранится в виде файлов.
Таким образом, полноценное понимание и описание работы таких систем невозможно без знания форматов сетевых пакетов и файлов. Однако знание форматов, используемых для хранения и передачи данных важно не только при решении задачи формального описания алгоритма. Эта информация также требуется для обеспечения сетевой безопасности, эффективного управлении сетевыми потоками, а также в задачах тестирования ПО.
Для снижения количества уязвимостей в программах используются различные системы автоматизированного тестирования. Одним из распространённых методов тестирования является фаззинг. Этот метод заключается в том, что программа многократно запускается на автоматически генерируемых входных данных. В процессе работы отслеживается поведение программы и фиксируются случаи нарушения списка некоторых формальных требований. В качестве примеров таких требований можно

совмещаются. Все вершины дерева помечаются как «принимаемые», так как подпоследовательность сессии считается «принимаемой» последовательностью. Это дерево используется, как отправная точка для построения автомата состояний протокола. Построение осуществляется с помощью поиска минимального детерминированного конечного автомата (ДКА), совместимого с деревом. Для этого применяется последовательное слияние вершин с одинаковыми метками. Так как изначально все метки одинаковы («принимаемые»), требуется предварительно использовать вспомогательный алгоритм разметки, который присвоит вершинам разные метки. Работа алгоритма разметки сводится к идентификации состояний, которые соответствуют одинаковым условиям в программе (в этих состояниях программа может обрабатывать одинаковые сообщения). Идентификация таких состояний реализуется путём поиска простых шаблонов среди последовательностей типов сообщений в форме регулярных выражений:
. * г(ах ..cij)*, где г, а/ е А- типы сообщений
Такие паттерны называются предпосылками. Приведённый пример означает, что для правильной обработки сообщения типа ш, приложение должно получить сообщение г и произвольное число сообщений из множества А. Предпосылки вычисляются следующим образом: предполагается, что существует некоторое инициализирующее сообщение г (их может быть несколько), которое должно предшествовать всем другим сообщениям протокола. Оно ищется, как пересечение предшествующих множеств всех сообщений. Затем, для каждого типа сообщений т вычисляется множество А — оно состоит из всех типов сообщений, которые были получены между последним появлением г и сообщением т, хотя бы в одной сессии.
После вычисления всех предпосылок каждая вершина в дереве помечается множеством сообщений, которые допускаются в этом состоянии. Сообщение т допускается в состоянии ц, если цепочка сообщений ведущая в ц, точно соответствует «предпосылке» т.
Описанный подход не применим, в случае если существует несколько путей в текущее состояние (возможно несколько вариантов инициализирующих сообщений). Для устранения этой проблемы базовый паттерн был обобщён:
■*(Г -гк)(а I I я,)*, где г,гк , а1а) е А - типы сообщений Дополнительно автоматически определяются терминирующие сессию сообщения -это сообщения, которые во всех сессиях наблюдались только в конце, следующие за ними состояния - конечные (их метка пуста, так как сессия закончена, и сообщения не принимаются). После применения этого алгоритма для построения минимального ДКА используется алгоритм, описанный в [53]. Результат его работы - обобщённый автомат

Рекомендуемые диссертации данного раздела

Время генерации: 0.135, запросов: 967