|
Метод восстановления протокольных автоматов по бинарному коду
И. В. Шарков Институт системного программирования им. В.П. Иванникова РАН
Аннотация:
Реверс-инжиниринг сетевых протоколов широко применяется в задачах анализа безопасности сетевых программ. Задача реинжиниринга протокола состоит из восстановления форматов данных и менее изученного вопроса – восстановления реализованного в программе протокольного автомата, а краеугольным камнем является отсутствие формально понятия состояния протокола. В настоящее время сложились два основных подхода к восстановлению автоматов сетевых протоколов, базирующиеся на использовании различной исходной информации: на основе анализа записанных сетевых трасс и путем анализа бинарного кода программы, реализующего исследуемый протокол. В статье предлагается метод восстановления протокольных автоматов на основе анализа бинарного кода трасс программ в процессе их выполнения. Первой целью работы является описание математической модели протокольного автомата и метода ее проецирования на бинарный код приложения. Вторая цель – описание концепции понятия состояния протокола и правил, указывающих на выполнение переходов, с использованием некоторых «глобальных» объектов трассы программы. Третья преследует способ уточнения протокола с помощью фаззинга в памяти процесса (in-memory fuzzing) с использованием «плавающей» точки запуска порождающего сервера для контроля состояний и управления переходами. Наконец, в статье очерчена схема разработанного набора инструментов и показаны эксперименты по его использованию с реальным VPN-клиентом, подтверждающие состоятельность подхода.
Ключевые слова:
сетевой протокол, протокольный автомат, состояние, бинарный код, фаззинг
Образец цитирования:
И. В. Шарков, “Метод восстановления протокольных автоматов по бинарному коду”, Труды ИСП РАН, 34:5 (2022), 43–62
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp720 https://www.mathnet.ru/rus/tisp/v34/i5/p43
|
|