BinSide: статический анализатор бинарного кода


Скачать сборник технологий

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).
  • Выполнение следующих задач:
    • анализ потока данных и управления: восстановление значений и указателей, распространение помеченных данных, определение возможных состояний кучи, определение вычислимых ребёр графа потока управления;
    • межпроцедурный поиск дефектов: поиск дефектов выполняется на основе результатов внутрипроцедурного анализа потока данных и управления, результатов динамического анализа и ручной разметки кода аналитиком. Это особенно полезно при анализе комплексного ПО и встраиваемых систем;
    • анализ всех путей, независимо от покрытия кода.
  • Взаимодействие с технологиями ИСП РАН:
    • интеграция со Svacer (при наличии исходного кода);
    • с инструментом LibraryIdentifier (для поиска клонов кода, например, для идентификации библиотек, с кодом которых был скомпонован исполняемый файл);
    • с инструментом фаззинг-тестирования Crusher.
  • Анализ операционных систем:
    • определение заимствования кода в ПО из ОС с открытым исходным кодом;
    • установление зависимостей между компонентами ОС и внутри компонентов;
    • статический анализ исходного и бинарного кода ОС;
    • определение защит исполняемого кода в компонентах ОС;
    • определение покрытия кода в компонентах ОС unit-тестами.

Для кого предназначен BinSide?

  • компании, которые нуждаются в тщательной проверке стороннего ПО, в том числе при отсутствии доступа к исходному коду;
  • разработчики, которым требуется повысить качество работы инструментов динамического анализа за счёт дополнительных данных, полученных с помощью статического анализа;
  • специалисты по обратной инженерии;
  • компании, отвечающие за аудит или сертификацию ПО.

Схема работы

BinSide: статический анализатор бинарного кода

Разработчик/участник

Компиляторные технологии

Перейти к списку всех технологий