Видеоролик о технологиях ИСП РАН
BinSide: статический анализатор бинарного кода
BinSide – платформа обнаружения дефектов в программе методами статического анализа исполняемого кода. Необходима, когда нет доступа к исходному коду (например, при анализе закрытых библиотек).
Особенности и преимущества
BinSide – платформа для анализа исполняемого кода, разрабатываемая на основе фреймворка BinNavi. Исполняемый файл анализируется в представлении IDA PRO или Ghidra. BinSide ищет дефекты, клоны кода, автоматизирует работу аналитика, уточняет поверхность атаки и оптимизирует динамическое тестирование.
Возможности ядра BinSide:
- Лёгкая расширяемость:
- детекторы ошибок реализованы в виде подключаемых модулей;
- используется представление REIL из 17 инструкций без побочных эффектов (каждая ассемблерная инструкция транслируется в набор из REIL-инструкций);
- анализ может быть уточнён аналитиком вручную.
- Поддержка анализа бинарных файлов и библиотек для архитектур x86-64, ARM и MIPS, в том числе драйверов.
- Поиск дефектов следующих типов:
- CWE-121 (Stack-based Buffer Overflow);
- CWE-122 (Heap-based Buffer Overflow);
- CWE-134 (Format String Vulnerability);
- CWE-415 (Double Free);
- CWE-416 (Use-After-Free);
- CWE-77 (Command Injection);
- CWE-190 (Integer Overflow).
- Выполнение следующих задач:
- анализ потока данных и управления: восстановление значений и указателей, распространение помеченных данных, определение возможных состояний кучи, определение вычислимых ребёр графа потока управления;
- межпроцедурный поиск дефектов: поиск дефектов выполняется на основе результатов внутрипроцедурного анализа потока данных и управления, результатов динамического анализа и ручной разметки кода аналитиком. Это особенно полезно при анализе комплексного ПО и встраиваемых систем;
- анализ всех путей, независимо от покрытия кода.
- Взаимодействие с технологиями ИСП РАН:
- интеграция со Svacer (при наличии исходного кода);
- с инструментом LibraryIdentifier (для поиска клонов кода, например, для идентификации библиотек, с кодом которых был скомпонован исполняемый файл);
- с инструментом фаззинг-тестирования Crusher.
- Анализ операционных систем:
- определение заимствования кода в ПО из ОС с открытым исходным кодом;
- установление зависимостей между компонентами ОС и внутри компонентов;
- статический анализ исходного и бинарного кода ОС;
- определение защит исполняемого кода в компонентах ОС;
- определение покрытия кода в компонентах ОС unit-тестами.
Для кого предназначен BinSide?
- Компании, которые нуждаются в тщательной проверке стороннего ПО, в том числе при отсутствии доступа к исходному коду.
- Разработчики, которым требуется повысить качество работы инструментов динамического анализа за счёт дополнительных данных, полученных с помощью статического анализа.
- Специалисты по обратной инженерии.
- Компании, отвечающие за аудит или сертификацию ПО.
Схема работы
Разработчик/участник
Перейти к списку всех технологий