Труды института системного программирования РАН
RUS  ENG    ЖУРНАЛЫ   ПЕРСОНАЛИИ   ОРГАНИЗАЦИИ   КОНФЕРЕНЦИИ   СЕМИНАРЫ   ВИДЕОТЕКА   ПАКЕТ AMSBIB  
Общая информация
Последний выпуск
Архив

Поиск публикаций
Поиск ссылок

RSS
Последний выпуск
Текущие выпуски
Архивные выпуски
Что такое RSS



Труды ИСП РАН:
Год:
Том:
Выпуск:
Страница:
Найти






Персональный вход:
Логин:
Пароль:
Запомнить пароль
Войти
Забыли пароль?
Регистрация


Труды института системного программирования РАН, 2021, том 33, выпуск 6, страницы 51–66
DOI: https://doi.org/10.15514/ISPRAS-2021-33(6)-4
(Mi tisp645)
 

Использование идентификации потоков выполнения при решении задач полносистемного анализа бинарного кода

И. А. Васильевa, П. М. Довгалюкb, М. А. Климушенковаa

a Институт системного программирования им. В.П. Иванникова РАН
b Новгородский государственный университет имени Ярослава Мудрого
Аннотация: При полносистемном анализе бинарного кода зачастую применяется динамический бинарный анализ, при котором предоставляемый аналитику объем данных представлен потоком выполняемых инструкций и содержимым оперативной памяти и регистров. Для обработки таких данных требуется глубокое понимание особенностей исследуемой системы, при этом трудозатраты на выполнение анализа и требования к технической осведомленности пользователя становятся очень велики. Для упрощения процесса анализа необходимо привести входные данные к более дружелюбному для пользователя виду, т.е. предоставить высокоуровневую информацию об исследуемом программном обеспечении. Такой высокоуровневой информацией является информация о потоке выполнения программы. Для восстановления потока выполнения программы важно иметь представление о вызываемых ею процедурах. Получить такое представление можно с помощью стека вызова функций для конкретного потока. Построение стека вызовов без информации о выполняемых потоках невозможно, т.к. каждому потоку однозначно соответствует один стек и vice versa. Помимо этого, само наличие информации о потоках повышает уровень знаний о системе, позволяет более тонко профилировать объект исследования и проводить узконаправленный анализ, применяя принципы выборочного инструментирования. Виртуальная машина не предоставляет напрямую такой информации, и строить предположения о работе исследуемой системы приходится, основываясь на доступных низкоуровневых данных (поток выполняемых виртуальным процессором инструкций и оперативная память виртуальной машины). Таким образом, существует необходимость в разработке метода для автоматической идентификации потоков в исследуемой системе, опирающегося на имеющемся объеме данных. В данной работе рассматриваются существующие подходы к реализации получения высокоуровневой информации при полносистемном анализе и предлагается метод для восстановления данных о потоках в условиях полносистемной эмуляции с низкой степенью ОС-зависимости. Также приводятся примеры практического использования данного метода при реализации инструментов анализа, а именно: восстановление стека вызовов, обнаружение подозрительных операций возврата и обнаружение обращений к освобожденной памяти в стеке. Приведенное в статье тестирование показывает, что накладываемое описанными алгоритмами замедление позволяет проводить работу с исследуемой системой, а сравнение с эталонными данными подтверждает корректность получаемых алгоритмами результатов.
Ключевые слова: полносистемный анализ, стек вызовов, обнаружение уязвимостей.
Тип публикации: Статья
Образец цитирования: И. А. Васильев, П. М. Довгалюк, М. А. Климушенкова, “Использование идентификации потоков выполнения при решении задач полносистемного анализа бинарного кода”, Труды ИСП РАН, 33:6 (2021), 51–66
Цитирование в формате AMSBIB
\RBibitem{VasDovKli21}
\by И.~А.~Васильев, П.~М.~Довгалюк, М.~А.~Климушенкова
\paper Использование идентификации потоков выполнения при решении задач полносистемного анализа бинарного кода
\jour Труды ИСП РАН
\yr 2021
\vol 33
\issue 6
\pages 51--66
\mathnet{http://mi.mathnet.ru/tisp645}
\crossref{https://doi.org/10.15514/ISPRAS-2021-33(6)-4}
Образцы ссылок на эту страницу:
  • https://www.mathnet.ru/rus/tisp645
  • https://www.mathnet.ru/rus/tisp/v33/i6/p51
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Труды института системного программирования РАН
    Статистика просмотров:
    Страница аннотации:15
    PDF полного текста:13
     
      Обратная связь:
     Пользовательское соглашение  Регистрация посетителей портала  Логотипы © Математический институт им. В. А. Стеклова РАН, 2024