Skip to the content.

Зависимости и установка Sydr-fuzz

Минимальные системные требования

Рекомендуемые системные требования

Зависимости

Перед установкой инструмента установите следующие зависимости.

$ sudo apt install gcc-multilib binutils lsb-release gdb lcov

Для корректной работы лицензионного USB ключа требуется установить последнюю версию Sentinel HASP/LDK Run-time Environment (перед установкой желательно вынуть USB ключ, и вставить его назад по завершении установки):

$ tar xf aksusbd*.tar.gz
$ cd aksusbd*
$ sudo ./dinst

Для работы лицензионного ключа на Astra Linux требуется разрешить трассировку ptrace: Пуск -> Панель управления -> Безопасность -> Политика безопасности -> Настройка безопасности -> Системные параметры -> Снять галочку с “Блокировать трассировку ptrace для всех пользователей”.

Установка

Для установки достаточно распаковать zip-архив.

$ unzip sydr.zip

Использование sydr-fuzz

Рекомендуется воспользоваться нашим докером sydr/ubuntu20.04-sydr-fuzz. Докер можно выкачать с помощью команды:

$ docker pull sydr/ubuntu20.04-sydr-fuzz

DockerFile можно найти тут. Затем запускать гибридный фаззинг внутри него. Дальнейшая документация основывается на использовании нашего докера. Далее перечислены зависимости, которые нужно установить, если запуск производится на другой системе.

Зависимости libFuzzer

Sydr-fuzz можно запускать просто на системе (требуется LLVM 13+). Однако настоятельно рекомендуем установить Docker для сборки и запуска фаззинга целей в изолированном окружении.

Для корректного ранжирования входных данных, подающихся от libFuzzer к Sydr, требуется сборка LLVM, содержащая добавленный нами коммит. Данные изменения добавляют печать входных данных от Sydr, которые увеличивают покрытие кода с точки зрения фаззера. Эта функциональность присутствует с релиза LLVM 13.0.0. Более ранние версии LLVM также поддерживаются, но ранжирование не будет эффективным.

Зависимости AFL++

Фаззер AFL++ и все необходимые утилиты уже установлены в нашем докере sydr/ubuntu20.04-sydr-fuzz. При запуске на другой системе потребуется скачать и установить AFL++ (можно из репозитория). AFL++ активно разрабатывается, поэтому желательно использовать наиболее новую версию. Для запуска Sydr-fuzz с AFL++ также необходимы утилиты минимизации корпуса afl-cmin и построения битовой карты afl-showmap. Вместе с фаззером afl-fuzz они должны находиться в одной директории, путь до которой либо есть в $PATH, либо указан в конфигурационном файле.

Зависимости Atheris

Библиотека фаззинга Atheris и все необходимые утилиты уже установлены в нашем докере sydr/ubuntu20.04-sydr-fuzz. При запуске на другой системе потребуется скачать и установить Atheris (можно из репозитория). Для работы sydr-fuzz с Atheris также необходима библиотека сбора покрытия Coverage.

Зависимости Jazzer

Фаззер Jazzer и все необходимые утилиты уже установлены в нашем докере sydr/ubuntu20.04-sydr-fuzz. При запуске на другой системе потребуется скачать и установить Jazzer (можно из репозитория). Для сбора покрытия понадобится библиотека Jacoco.

Зависимости Jazzer.js

Фаззер Jazzer.js и все необходимые утилиты уже установлены в нашем докере sydr/ubuntu20.04-sydr-fuzz. При запуске на другой системе потребуется скачать и установить Jazzer.js (можно из репозитория).

Зависимости Sharpfuzz

Фаззер Sharpfuzz и все необходимые утилиты уже установлены в нашем докере sydr/ubuntu20.04-sydr-fuzz. При запуске на другой системе потребуется скачать Sharpfuzz (можно из репозитория), AFL++ (можно из репозитория), для сборки и запуска C# програм понадобится скачать .NET SDK (можно с сайта). Для сбора покрытия в форматах html, clover, coveralls, xml, opencover, cobertura, text понадобится инструмент minicover (скачать можно по гайдам из репозитория). Для сбора покрытия в форматах html (с помощью genhtml) или lcov понадобится инструмент AltCover (скачать можно по гайдам из репозитория).