OneFuzz собирает два типа телеметрии, как правило, через AppInsights.
Для целей этого документа "OneFuzz экземпляр" — это пользовательская установка OneFuzz в Azure Subscription пользователя.Пользователь владеет и управляет всеми ресурсами, используемыми для OneFuzz, включая узлы поиска уязвимостей. OneFuzz поддерживает как "управляемые" узлы, где OneFuzz управляет жизненным циклом узлов поиска уязвимостей через Azure VM Scale Sets, так и "неразрешённые" узлы, где пользователи предоставляют вычислительные ресурсы по своему усмотрению (будь то локальное оборудование, облачные сервисы третьих сторон и т. д.).## Как собирается телеметрия
Все телеметрия собирается из двух мест: агентов, работающих внутри узлов поиска уязвимостей, и сервисного API, работающего в экземпляре Azure Functions.1. Библиотека на языке Rust onefuzz::telemetry
предоставляет подробный набор типов для телеметрии, а также функцию
can_share_with_microsoft
, которая определяет, следует ли отправлять конкретное поле телеметрии
в центральный экземпляр телеметрии Microsoft.
Удалите ONEFUZZ_TELEMETRY
в настройках приложения экземпляра Azure Functions в экземпляре OneFuzz, созданном во время развертывания.
Пользователям напоминают, как отключить телеметрию во время каждого развертывания OneFuzz в Azure.## Данные, отправляемые в Microsoft
Следующее описывает информацию, отправляемую в Microsoft, если телеметрия включена.
Следующие типы данных используются в нескольких местах:* Instance ID - Уникально сгенерированный GUID, используемый для идентификации экземпляра OneFuzz.
Task ID - Уникально сгенерированный GUID, используемый для идентификации задачи фазинга.
Job ID - Уникально сгенерированный GUID, используемый для идентификации задания.
Machine ID - GUID, используемый для идентификации машины, выполняющей задачу. При выполнении в Azure это является уникальным идентификатором VM. При выполнении фазинга вне Azure это случайно сгенерированный GUID, созданный один раз на узле.
Scaleset ID - Уникально сгенерированный GUID, используемый для идентификации набора виртуальных машин.
Task Type - Тип выполняемой задачи. Примеры включают generic_crash_report
или coverage
. Для полного списка см. перечисление TaskType.
OS - Значение перечисления, описывающее используемую ОС (в настоящее время только Windows или Linux).
Version - Строковое значение, сгенерированное на этапе компиляции, которое указывает номер версии OneFuzz на основе CURRENT_RELEASE и ревизии git sha-1 (См. пример).
Role - Значение перечисления, описывающее роль используемого программного обеспечения OneFuzz. Примеры включают Agent
или Proxy
. Для полного списка см. перечисление Role.### Данные, записываемые агентами
ID задачи
ID задания
ID машины
Тип задачи
Основные характеристики — A u64, представляющий количество 'характеристик' в SanCov карты покрытия для исполняемого файла libFuzzer.
Покрытие — A u64, представляющий количество 'характеристик' в SanCov карты покрытия для исполняемого файла libFuzzer, которые были использованы во время фузинга.
Скорость — A float64, рассчитанная как (Покрытие / Основные характеристики)
.
Количество — Число выполнений, выполненных фузинговой задачей.
Выполнения в секунду — Скорость выполнений в секунду.
ID рабочего — Для фузеров, которые запускают несколько копий одновременно на одной ВМ, это различает телеметрию между каждым экземпляром на ВМ.
ID запуска — Случайно сгенерированный GUID, используемый для уникальной идентификации выполнения фузинговой цели. Для фузеров, которые перезапускаются, таких как libfuzzer, это используется для уникальной идентификации телеметрии для каждого запуска фузера.
Виртуальная память — Количество виртуальной памяти, используемой фузинговой задачей.
Физическая память — Количество физической памяти, используемой фузинговой задачей.
Использование ЦП — Количество ЦП, используемого фузинговой задачей.
Найдено падение — Флаг, указывающий на то, что было найдено падение.* ОтчетоПаденияСоздан - Флаг, указывающий на то, что найденное падение было воспроизводимым и создан отчет.
УникальныйОтчетоПаденияСоздан - Флаг, указывающий на то, что найденное падение было воспроизводимым и уникальным в наборе существующих отчетов.
НазваниеИнструмента - Строка, идентифицирующая используемый инструмент для общих задач. Для специализированных инструментов, это будет записывать название специализированного инструмента. Примеры: В шаблоне radamsa, это {tools_dir}/radamsa
для задачи generic_generator
и cdb.exe
для задачи generic_analysis
. Следующие параметры являются специфичными для AFL:* Mode - Строка, представляющая режим задачи AFL. Это уникально для парсинга статистики AFL и указывает на "target_mode", в котором работает AFL. Примеры включают, но не ограничиваются: "default", "qemu" и "persistent".
CoveragePaths - У64, представляющий paths_total в статистике AFL.
CoveragePathsFavored - У64, представляющий paths_favored в статистике AFL.
CoveragePathsFound - У64, представляющий paths_found в статистике AFL.
CoveragePathsImported - У64, представляющий paths_imported в статистике AFL.
Coverage - Float64, представляющий bitmap_cvg в статистике AFL.
Каждый раз, когда состояние задачи изменяется, записывается следующая информация:
Каждый раз, когда состояние задачи изменяется, записывается следующая информация на уровне сервиса:
Каждый раз, когда состояние масштабируемого набора изменяется, записывается следующая информация:* ID масштабируемого набора
ОС
SKU ВМ - Размер ВМ Azure
Размер: Количество ВМ в масштабируемом наборе. Для полного списка см. перечисление ScalesetState.
Премиумные экземпляры: Логическое значение, указывающее, используются ли премиумные экземпляры в масштабируемом наборе.Каждый раз, когда состояние пула изменяется, записывается следующая информация:
ID пула — Уникально сгенерированный GUID, используемый для уникальной идентификации масштабируемого набора ВМ.
ОС
Состояние: Текущее состояние пула. Для полного списка см. перечисление PoolState.
Управляемый: Логическое значение, указывающее, управляются ли ВМ в пуле OneFuzz.
Каждый раз, когда состояние узла фаззинга изменяется, записывается следующая информация:
Каждый раз, когда состояние задачи на узле изменяется, записывается следующая информация:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )