Merge branch fuzz into sast, restore imported modules after bad fuzz try install (now it is sast version again after debian 13 clear build)

This commit is contained in:
v.naumkin 2026-05-14 12:01:35 +03:00
commit c08bdc9480
27 changed files with 367 additions and 0 deletions

View file

@ -168,3 +168,64 @@ bash scripts run_sast_sarif.sh
```
Результаты анализа в sast_results (3 утилиты для SAST).
## Запуск фаззинга
Сначала соберите приложение и инициализируйте тестовую базу (init_users).
Далее (для учебных целей фаззинг ограничен по времени - 5 минут):
1. Запуск нативного фаззера (проверка функции аутентификации, ограничение в 1 поток для нормальной работы БД SQLite)
1.1. cd myfuzz
1.2. ./run_fuzz.sh
1.3. ./view_fuzz_coverage.sh
2. Запуск AFL++ в режиме blackbox (фаззинг готового бинарника)
2.1. cd aflfuzz
2.2. ./install.sh
2.3. ./run_fuzz.sh
### Попытка скрестить gccgo и afl провалилась, оставлю для истории
3. Запуск AFL++ при компиляции через gccgo (установите AFL++ как в пункте 2.2. если ещё не сделали этого)
3.1. cd aflfuzz
3.2. ./install_gccgo_for_afl.sh
3.3. ./build_for_afl.sh
3.4. ./run_afl.sh
### Черновики для go-fuzz
На данный момент установка по официальной инструкции https://github.com/dvyukov/go-fuzz/blob/master/README.md не работает по причине golang.org/x/tools@v0.44.0 requires go >= 1.25.0 (running go 1.24.4)
4. Запуск go-fuzz
4.1. cd myfuzz
4.2. ./install_go-fuzz.sh (тут возникают проблемы, поэтому следующие шаги проверить не удалось + оказалось, что первая версия конфликтует с нативным фаззингом из пункта 1)
4.3. ./build_for_go-fuzz.sh
4.4. ./run_go-fuzz.sh
### Последняя попытка (тоже неудачная)
Утилита обещает поддержку 4 фаззеров, оказалось это просто обёртка для генерации тестов в 4 форматах и запуска фаззеров.
Из заявленных фаззеров удалось запустить только нативный (но я это и так сделал в пункте 1), а также сгенерировать тест для go-fuzz (но запустить не удалось, см. пункт 4 выше), для libfuzzer и afl даже тесты не сгенерировались (как я понял, тоже надо самому установить все нужные бинарники).
5. Запуск golang-fuzz
5.1. cd golang-fuzz
5.2. ./install_golang-fuzz.sh
5.3. ./run_golang-fuzz.sh