Project

General

Profile

Actions

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