Getting started¶
Для запуска фаззинга необходимо установить Docker и иметь не менее 10 ГБ свободного места на диске.В процессе сборки будут созданы как минимум три Docker-образа:
- gcr.io/oss-fuzz-base/base-runner (примерный размер ~1.36 ГБ)
- gcr.io/oss-fuzz-base/base-builder (примерный размер ~1.72 ГБ)
- gcr.io/oss-fuzz/project_name (размер зависит от тестируемого объекта, обычно не менее 3 ГБ; для Spike это ~5.5 ГБ)
Убедитесь, что ваш диск располагает достаточным количеством свободного пространства (не менее 10 ГБ), чтобы сборка прошла без ошибок.
1. Установка Docker
Скачайте Docker и выполните начальную настройку. Подробная инструкция
Для Linux (Ubuntu/Debian) пример установки:
sudo apt update sudo apt install -y docker.io sudo systemctl enable docker --now sudo usermod -aG docker $USER
После добавления пользователя в группу docker необходимо перелогиниться.
Также убедитесь, что python3 установлен для вашего пользователя и доступен без использования sudo. Обычно, после установки python3 через пакетный менеджер, команда python3 доступна без дополнительных привилегий.
1.1 Проверка установки Docker и Python3
Проверьте, что текущий пользователь находится в группе docker:
groups $USER
Запустите тестовый контейнер, чтобы убедиться, что Docker работает корректно:
docker run hello-world
Проверьте наличие Python3 в переменной PATH:
which python3
echo $PATH
2. Базовые команды Docker
Показывает список локально доступных образов.
docker images
Выводит список контейнеров (включая остановленные).
docker ps -a
Удаляет образ, указываемый по идентификатору.
docker image rmi IMAGE_ID
Удаляет контейнер с заданным идентификатором.
docker rm CONTAINER_ID
3. Очистка неиспользуемых ресурсов
Можно задать алиас для быстрой очистки всех остановленных контейнеров, «висящих» образов и неиспользуемых томов:
alias docker-cleanup='docker ps -a -q | xargs -I {} docker rm {}; docker images -q -f dangling=true | xargs -I {} docker rmi -f {}; docker volume ls -qf dangling=true | xargs -I {} docker volume rm {}'
4. Необходимые образы
Для запуска фаззера FuzzRV используются два образа:- gcr.io/oss-fuzz/project_name — образ, содержащий собранный проект.
- gcr.io/oss-fuzz-base/base-runner — базовый образ для запуска процесса фаззинга. Этот образ можно не пересобирать и не удалять при повторном использовании.
5. Следующие шаги
Готовые сценарии запуска фаззинга:Updated by Egor Zheliba 1 day ago · 9 revisions