RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2018, том 30, выпуск 6, страницы 25–38 (Mi tisp375)

Эта публикация цитируется в 5 статьях

Combining dynamic symbolic execution, code static analysis and fuzzing

[Комбинирование динамического символьного исполнения, статического анализа кода и фаззинга]

A. Yu. Gerasimova, S. S. Sargsyanb, S. F. Kurmangaleeva, J. A. Hakobyanb, S. A. Asryanb, M. K. Ermakova

a Ivannikov Institute for System Programming
b Yerevan State University, System Programming Laboratory

Аннотация: В этой статье описывается новый подход для динамического анализа программ. Он совмещает динамическое символьное исполнение программ и статический анализ кода программ с фаззингом для повышения эффективности каждого из методов. В процессе фаззинга восстанавливаются вызовы по вычисляемым адресам и расширенный граф вызовов передается модулю статического анализа. Это позволяет улучшить вычисление путей исполнения программы в процессе статического анализа. Открытые новые пути исполнения в программе передаются модулю динамического символьного исполнения для генерации новых наборов внешних данных программы с целью исполнения и анализа программы по открытым путям исполнения. Новые наборы входных данных передаются модулю фаззинга для увеличения покрытия программы с их использованием в качестве затравки. Предложенный подход может быть использован в рамках классического алгоритма работы фаззинга с целью достижения высокого покрытия кода программы тестовыми наборами. Также предложенный метод может использоваться для направленного анализа путей и фрагментов кода программы. В этом случает фаззер формирует набор адресов и передает их модулю статического анализа. Статический анализ формирует набор путей, которые приводят к исполнению инструкций по этим адресам от точки входа в программу. Далее модуль динамического символьного исполнения используется для построения наборов входных данных для прохождения по этим путям. Результаты экспериментов показывают высокую эффективность обнаружения программных ошибок при применении предложенного метода.

Ключевые слова: фаззинг, направленный фаззинг, статический анализ, обнаружение путей исполнения, динамическое символьное исполнение.

Язык публикации: английский

DOI: 10.15514/ISPRAS-2018-30(6)-2



Реферативные базы данных:


© МИАН, 2024