1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/microsoft-onefuzz

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
tasks.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 23.04.2025 15:56 cb328e0

Понимание задач

Задача — это единица работы, выполняющаяся на узле (обычно, Azure VM Scalesets) и состоит из нескольких компонентов, включая:

  1. Приложение под тестирование
  2. Контейнеры для использования в определенных контекстах
    1. Все задачи должны иметь контейнер setup, который содержит приложение под тестирование и опционально файл setup.sh или setup.ps1 для настройки VM перед фузингом
    2. Контейнеры входных данных
    3. Контейнеры выходных данных
  3. Опционально управляемая очередь хранения Azure новых входных данных для обработки (используется для охвата, отчета о сбоях и т.д.)

Текущие доступные типы задач:* libfuzzer_fuzz: фузинг с целевым объектом libFuzzer

  • libfuzzer_crash_report: выполнение целевого объекта с входными данными, вызывающими сбой, с попыткой сгенерировать информационный отчет для каждого обнаруженного сбоя

  • libfuzzer_merge: объединение новых входных данных с корпусом входных данных с использованием минимизации корпуса

  • coverage: запись двоичного блока и строки исходного кода

  • generic_analysis: выполнение пользовательского анализа для каждого входного данных, вызывающих сбой

  • generic_supervisor: фузинг с использованием пользовательских супервизоров (например, AFL)

  • generic_merge: объединение новых входных данных с корпусом входных данных с использованием пользовательского супервизора (например, afl-merge)

  • generic_generator: использование генератора для создания входных данных и вызова приложения под тестирование итеративно для их обработки

  • generic_crash_report: использование встроенных средств отладки (debugapi или ptrace-базированных) для повторного выполнения входных данных, вызывающих сбой, с попыткой сгенерировать информационный отчет для каждого обнаруженного сбоя

  • dotnet_coverage: то же самое, что coverage, но для dotnetКаждый тип задачи имеет уникальное множество доступных параметров конфигурации, включая:

  • target_exe: приложение для тестирования

  • target_env: Переменные окружения, указанные пользователем для целевого приложения

  • target_options: Командные параметры, указанные пользователем для целевого приложения для тестирования

  • target_workers: Количество рабочих процессов, запускаемых на данном виртуальном машине (в настоящее время используется только для задач тестирования libfuzzer)

  • target_options_merge: Включить объединение аргументов супервизора и целевого приложения в задачах объединения на основе супервизора

  • analyzer_exe: Указанный пользователем анализатор (см. Пользовательские задачи анализа)

  • analyzer_env: Переменные окружения, указанные пользователем для анализатора

  • analyzer_options: Командные параметры, указанные пользователем для анализатора

  • generator_exe: Указанный пользователем генератор (например, radamsa.exe). Генератор должен существовать в контейнере generator, указанном в задаче

  • generator_env: Переменные окружения, указанные пользователем для генератора

  • generator_options: Командные параметры, указанные пользователем для генератора

  • supervisor_exe: Указанный пользователем супервизор (например, afl)

  • supervisor_env: Переменные окружения, указанные пользователем для супервизора

  • supervisor_options: Командные параметры, указанные пользователем для супервизора* supervisor_input_marker: Маркер для указания пути к файлу для супервизора (Пример: для AFL и AFL++, это должно быть '@@')

  • stats_file: Путь к файлу статистики фуззера

  • stats_format: Формат файла статистики фуззера

  • input_queue_from_container: Имя контейнера для мониторинга новых изменений.

  • rename_output: Переименовать сгенерированные входные данные в sha256 входных данных (используется во время задач генерации)

  • wait_for_files: Для задач супервизора (например, AFL), не запускать супервизор до тех пор, пока входные файлы не будут доступны в контейнере inputs. См. определения задач для деталей реализации типов задач, доступных.## Переменные окружения

  • ONEFUZZ_TARGET_SETUP_PATH: Переменная окружения, заданная до запуска целоспецифических скриптов настройки, которая определяет путь к контейнеру настройки.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/microsoft-onefuzz.git
git@api.gitlife.ru:oschina-mirror/microsoft-onefuzz.git
oschina-mirror
microsoft-onefuzz
microsoft-onefuzz
main