Skip to content

Commit

Permalink
Documentation refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
apach301 committed Jan 25, 2024
1 parent 1a17cdb commit 4d1e10d
Show file tree
Hide file tree
Showing 8 changed files with 3,397 additions and 3,328 deletions.
1 change: 1 addition & 0 deletions _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ <h2 class="project-tagline">{{ page.description | default: site.description }}</
<a href="https://github.com/ispras/oss-sydr-fuzz" class="btn">OSS-Sydr-Fuzz</a>
<a href="https://github.com/ispras/oss-sydr-fuzz/blob/master/TROPHIES.md" class="btn">Trophies</a>
<a href="/fuzzbench" class="btn">FuzzBench</a>
<a href="/docs" class="btn">Documentation</a>
</header>

<main id="content" class="main-content" role="main">
Expand Down
483 changes: 483 additions & 0 deletions docs/config/index.md

Large diffs are not rendered by default.

3,350 changes: 24 additions & 3,326 deletions docs/index.md

Large diffs are not rendered by default.

104 changes: 104 additions & 0 deletions docs/install/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Зависимости и установка Sydr-fuzz

* TOC
{:toc}

# Минимальные системные требования

- Операционная система: Ubuntu 18.04/20.04/22.04, Astra 1.7, ALT Workstation 10.0 и
аналоги - 64-bit.
- Процессор (CPU): Intel Core i3 или аналогичный AMD.
- Оперативная память (RAM): 4 ГБ.

# Рекомендуемые системные требования

- Операционная система: Ubuntu 18.04/20.04/22.04 - 64-bit.
- Процессор (CPU): Intel Core i7 (Desktop) или аналогичный AMD.
- Оперативная память (RAM): 32 ГБ и больше.

# Зависимости

Перед установкой инструмента установите следующие зависимости.

$ sudo apt install gcc-multilib binutils lsb-release gdb lcov

Для корректной работы лицензионного USB ключа требуется установить последнюю
версию
[Sentinel HASP/LDK Run-time Environment](https://supportportal.thalesgroup.com/csm?id=kb_search&u_related_product_names=50303b92db852e00d298728dae96199d&query=kbcat_drivers_%26_runtime_packages&_runtime_packages&spa=1&u_all_related_operating_systems=66689e154fe293409a523c728110c74c)
(перед установкой желательно вынуть USB ключ, и вставить его назад по завершении
установки):

$ tar xf aksusbd*.tar.gz
$ cd aksusbd*
$ sudo ./dinst

Для работы лицензионного ключа на Astra Linux требуется разрешить трассировку
ptrace: Пуск -> Панель управления -> Безопасность -> Политика безопасности ->
Настройка безопасности -> Системные параметры -> Снять галочку с "Блокировать
трассировку ptrace для всех пользователей".

# Установка

Для установки достаточно распаковать zip-архив.

$ unzip sydr.zip

# Использование sydr-fuzz

Рекомендуется воспользоваться нашим докером `sydr/ubuntu20.04-sydr-fuzz`.
Докер можно выкачать с помощью команды:

$ docker pull sydr/ubuntu20.04-sydr-fuzz

`DockerFile` можно найти [тут](https://github.com/ispras/oss-sydr-fuzz/blob/master/docker/ubuntu20.04-sydr-fuzz/Dockerfile).
Затем запускать гибридный фаззинг внутри него. Дальнейшая документация
основывается на использовании нашего докера. Далее перечислены зависимости,
которые нужно установить, если запуск производится на другой системе.

## Зависимости libFuzzer

Sydr-fuzz можно запускать просто на системе (требуется LLVM 13+). Однако
настоятельно рекомендуем установить
[Docker](https://docs.docker.com/engine/install/) для сборки и запуска фаззинга
целей в изолированном окружении.

Для корректного ранжирования входных данных, подающихся от libFuzzer к Sydr,
требуется сборка LLVM, содержащая добавленный нами
[коммит](https://github.com/llvm/llvm-project/commit/827ccc93b8f378c36a356a3025db65bbd1f031e8#diff-0bc43509353a4f382ac6e3d2847f195de7a51d44c74a7baa4f0f33da17451cc6).
Данные изменения добавляют печать входных данных от Sydr, которые увеличивают
покрытие кода с точки зрения фаззера. Эта функциональность присутствует с релиза
[LLVM 13.0.0](https://github.com/llvm/llvm-project/releases/tag/llvmorg-13.0.0).
Более ранние версии LLVM также поддерживаются, но ранжирование не будет
эффективным.

## Зависимости AFL++

Фаззер AFL++ и все необходимые утилиты уже установлены в нашем докере
`sydr/ubuntu20.04-sydr-fuzz`. При запуске на другой системе потребуется
скачать и установить AFL++ (можно из [репозитория](https://github.com/AFLplusplus/AFLplusplus)).
AFL++ активно разрабатывается, поэтому желательно использовать наиболее новую версию.
Для запуска Sydr-fuzz с AFL++ также необходимы утилиты минимизации корпуса `afl-cmin`
и построения битовой карты `afl-showmap`. Вместе с фаззером afl-fuzz они должны находиться
в одной директории, путь до которой либо есть в `$PATH`, либо указан в конфигурационном файле.

## Зависимости Atheris

Библиотека фаззинга Atheris и все необходимые утилиты уже установлены в нашем докере
`sydr/ubuntu20.04-sydr-fuzz`. При запуске на другой системе потребуется скачать
и установить Atheris (можно из [репозитория](https://github.com/google/atheris)).
Для работы sydr-fuzz с Atheris также необходима библиотека сбора покрытия
[Coverage](https://coverage.readthedocs.io/en/latest/install.html).

## Зависимости Jazzer

Фаззер Jazzer и все необходимые утилиты уже установлены в нашем докере
`sydr/ubuntu20.04-sydr-fuzz`. При запуске на другой системе потребуется скачать
и установить Jazzer (можно из [репозитория](https://github.com/CodeIntelligenceTesting/jazzer)).
Для сбора покрытия понадобится библиотека [Jacoco](https://github.com/jacoco/jacoco).

## Зависимости Jazzer.js

Фаззер Jazzer.js и все необходимые утилиты уже установлены в нашем докере
`sydr/ubuntu20.04-sydr-fuzz`. При запуске на другой системе потребуется скачать
и установить Jazzer.js (можно из [репозитория](https://github.com/CodeIntelligenceTesting/jazzer.js)).

Loading

0 comments on commit 4d1e10d

Please sign in to comment.