Инструмент динамического символьного выполнения Sydr
Sydr – инструмент автоматической генерации тестов для сложных программных систем с целью увеличения покрытия кода и обнаружения ошибок. Cтроит математическую модель программы, позволяя фаззеру открывать новые пути выполнения, которые сложно обнаружить классическими методами генетических мутаций. Разработанные методы развивают технологию символьного выполнения, представленную в созданных ранее в ИСП РАН инструментах Avalanche и Anxiety. В отличие от аналогичных открытых инструментов, Sydr проверяет результаты своей работы на корректность и определяет, действительно ли сгенерированные входные данные приводят к инвертированию целевых переходов.
Sydr – это:
- Инвертирование на конкретном пути выполнения всех условных переходов, которые зависят от входных данных. Реализована возможность параллельного инвертирования.
- Интеграция с ИСП Fuzzer для инвертирования, что решает проблемы при прохождении переходов, зависящих от сравнения с константами.
- Решение задач обратной разработки. Помощь аналитику в достижении интересующей его точки в программе. Получение трассы инструкций, которые зависят от входных данных.
- Поддержка различных источников внешних данных программы (файлы, сетевые сокеты, переменные окружения, стандартный поток ввода, аргументы командной строки).
- Предикаты безопасности. Генерация входных данных, приводящих к проявлению дефекта (деление на ноль, разыменование нулевого указателя, доступ за границы буфера, целочисленное переполнение).
- Символьное выполнение многопоточных программ.
- Инвертирование косвенных переходов (switch statement). Разработан алгоритм определения таблиц и переходов по вычисляемым адресам.
- Слайсинг формул. Удаление избыточных формул из предиката пути, которые не влияют на инвертируемый условный переход. Решает проблему недостаточной помеченности, а также ускоряет обработку запросов SMT-решателем.
Схема работы Sydr

Публикации
- Vishnyakov A., Fedotov A., Kuts D., Novikov A., Parygina D., Kobrin E., Logunova V., Belecky P., Kurmangaleev Sh. Sydr: Cutting Edge Dynamic Symbolic Execution. 2020 Ivannikov ISPRAS Open Conference (ISPRAS), IEEE, 2020. Скачать презентацию
Разработчик/участник
Перейти к списку всех технологий