Getting started » History » Version 9
Egor Zheliba, 04/01/2025 10:42 AM
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 | 8 | Egor Zheliba | * *gcr.io/oss-fuzz/project_name* (размер зависит от тестируемого объекта, обычно не менее 3 ГБ; для Spike это ~5.5 ГБ) |
8 | 7 | Egor Zheliba | |
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 | 9 | Egor Zheliba | sudo usermod -aG docker $USER |
22 | 2 | Egor Zheliba | </pre> |
23 | 1 | Egor Zheliba | После добавления пользователя в группу docker необходимо перелогиниться. |
24 | 9 | Egor Zheliba | |
25 | Также убедитесь, что python3 установлен для вашего пользователя и доступен без использования sudo. Обычно, после установки python3 через пакетный менеджер, команда python3 доступна без дополнительных привилегий. |
||
26 | |||
27 | 1.1 Проверка установки Docker и Python3 |
||
28 | |||
29 | Проверьте, что текущий пользователь находится в группе docker: |
||
30 | <pre> |
||
31 | groups $USER |
||
32 | </pre> |
||
33 | |||
34 | Запустите тестовый контейнер, чтобы убедиться, что Docker работает корректно: |
||
35 | <pre> |
||
36 | docker run hello-world |
||
37 | </pre> |
||
38 | |||
39 | Проверьте наличие Python3 в переменной PATH: |
||
40 | <pre> |
||
41 | which python3 |
||
42 | </pre> |
||
43 | |||
44 | <pre> |
||
45 | echo $PATH |
||
46 | </pre> |
||
47 | 1 | Egor Zheliba | |
48 | 2 | Egor Zheliba | 2. Базовые команды Docker |
49 | 1 | Egor Zheliba | |
50 | 4 | Egor Zheliba | Показывает список локально доступных образов. |
51 | 2 | Egor Zheliba | <pre> |
52 | 1 | Egor Zheliba | docker images |
53 | 2 | Egor Zheliba | </pre> |
54 | 1 | Egor Zheliba | |
55 | 4 | Egor Zheliba | Выводит список контейнеров (включая остановленные). |
56 | 2 | Egor Zheliba | <pre> |
57 | docker ps -a |
||
58 | 1 | Egor Zheliba | </pre> |
59 | 2 | Egor Zheliba | |
60 | 4 | Egor Zheliba | Удаляет образ, указываемый по идентификатору. |
61 | 2 | Egor Zheliba | <pre> |
62 | 1 | Egor Zheliba | docker image rmi IMAGE_ID |
63 | 2 | Egor Zheliba | </pre> |
64 | |||
65 | 4 | Egor Zheliba | Удаляет контейнер с заданным идентификатором. |
66 | 2 | Egor Zheliba | <pre> |
67 | docker rm CONTAINER_ID |
||
68 | </pre> |
||
69 | 4 | Egor Zheliba | |
70 | 1 | Egor Zheliba | |
71 | 2 | Egor Zheliba | 3. Очистка неиспользуемых ресурсов |
72 | 1 | Egor Zheliba | |
73 | 2 | Egor Zheliba | Можно задать алиас для быстрой очистки всех остановленных контейнеров, «висящих» образов и неиспользуемых томов: |
74 | 1 | Egor Zheliba | |
75 | 2 | Egor Zheliba | <pre> |
76 | 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 {}' |
||
77 | </pre> |
||
78 | 1 | Egor Zheliba | |
79 | 2 | Egor Zheliba | 4. Необходимые образы |
80 | 1 | Egor Zheliba | |
81 | 2 | Egor Zheliba | Для запуска фаззера FuzzRV используются два образа: |
82 | * *gcr.io/oss-fuzz/project_name* — образ, содержащий собранный проект. |
||
83 | * *gcr.io/oss-fuzz-base/base-runner* — базовый образ для запуска процесса фаззинга. Этот образ можно не пересобирать и не удалять при повторном использовании. |
||
84 | 1 | Egor Zheliba | |
85 | 2 | Egor Zheliba | 5. Следующие шаги |
86 | 1 | Egor Zheliba | |
87 | 2 | Egor Zheliba | Готовые сценарии запуска фаззинга: |
88 | * [[Fuzzing Spike]] |
||
89 | 5 | Egor Zheliba | * [[Fuzzing cva6]] |
90 | 3 | Egor Zheliba | * [[Fuzzing ibex64]] - Todo |