Project

General

Profile

Getting started » History » Version 7

Egor Zheliba, 03/03/2025 08:21 PM

1 1 Egor Zheliba
h1. Getting started
2
3 7 Egor Zheliba
Для запуска фаззинга необходимо установить Docker и иметь не менее 10 ГБ свободного места на диске.
4
В процессе сборки будут созданы как минимум три Docker-образа:
5
* *gcr.io/oss-fuzz-base/base-runner* (примерный размер ~1.36 ГБ)
6
* *gcr.io/oss-fuzz-base/base-builder* (примерный размер ~1.72 ГБ)
7
* *gcr.io/oss-fuzz/ProjectName* (размер зависит от тестируемого объекта, обычно не менее 3 ГБ; для Spike это ~5.5 ГБ)
8
9
Убедитесь, что ваш диск располагает достаточным количеством свободного пространства (не менее 10 ГБ), чтобы сборка прошла без ошибок.
10
11 6 Egor Zheliba
12 2 Egor Zheliba
1. Установка Docker
13 1 Egor Zheliba
14 2 Egor Zheliba
Скачайте Docker и выполните начальную настройку. Подробная "инструкция":https://docs.docker.com/engine/install/
15 1 Egor Zheliba
16 2 Egor Zheliba
Для Linux (Ubuntu/Debian) пример установки:
17
<pre>
18 1 Egor Zheliba
sudo apt update
19
sudo apt install -y docker.io
20
sudo systemctl enable docker --now
21 2 Egor Zheliba
sudo usermod -aG docker your_username
22
</pre>
23
После добавления пользователя в группу docker необходимо перелогиниться.
24 1 Egor Zheliba
25 2 Egor Zheliba
2. Базовые команды Docker
26 1 Egor Zheliba
27 4 Egor Zheliba
Показывает список локально доступных образов.
28 2 Egor Zheliba
<pre>
29 1 Egor Zheliba
docker images
30 2 Egor Zheliba
</pre>
31 1 Egor Zheliba
32 4 Egor Zheliba
Выводит список контейнеров (включая остановленные).
33 2 Egor Zheliba
<pre>
34
docker ps -a
35 1 Egor Zheliba
</pre>
36 2 Egor Zheliba
37 4 Egor Zheliba
Удаляет образ, указываемый по идентификатору.
38 2 Egor Zheliba
<pre>
39 1 Egor Zheliba
docker image rmi IMAGE_ID
40 2 Egor Zheliba
</pre>
41
42 4 Egor Zheliba
Удаляет контейнер с заданным идентификатором.
43 2 Egor Zheliba
<pre>
44
docker rm CONTAINER_ID
45
</pre>
46 4 Egor Zheliba
47 1 Egor Zheliba
48 2 Egor Zheliba
3. Очистка неиспользуемых ресурсов
49 1 Egor Zheliba
50 2 Egor Zheliba
Можно задать алиас для быстрой очистки всех остановленных контейнеров, «висящих» образов и неиспользуемых томов:
51 1 Egor Zheliba
52 2 Egor Zheliba
<pre>
53
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 {}'
54
</pre>
55 1 Egor Zheliba
56 2 Egor Zheliba
4. Необходимые образы
57 1 Egor Zheliba
58 2 Egor Zheliba
Для запуска фаззера FuzzRV используются два образа:
59
* *gcr.io/oss-fuzz/project_name* — образ, содержащий собранный проект.
60
* *gcr.io/oss-fuzz-base/base-runner* — базовый образ для запуска процесса фаззинга. Этот образ можно не пересобирать и не удалять при повторном использовании.
61 1 Egor Zheliba
62 2 Egor Zheliba
5. Следующие шаги
63 1 Egor Zheliba
64 2 Egor Zheliba
Готовые сценарии запуска фаззинга:
65
* [[Fuzzing Spike]]
66 5 Egor Zheliba
* [[Fuzzing cva6]]
67 3 Egor Zheliba
* [[Fuzzing ibex64]] - Todo