• XSS.stack #1 – первый литературный журнал от юзеров форума

Fuzzing Фаззинг инструменты

weaver

31 c0 bb ea 1b e6 77 66 b8 88 13 50 ff d3
Забанен
Регистрация
19.12.2018
Сообщения
3 301
Решения
11
Реакции
4 622
Депозит
0.0001
Пожалуйста, обратите внимание, что пользователь заблокирован
В этой теме выкладываем ссылки на фаззинг инструменты с кратким описанием их.


3355

Рисунок ( зависимости и использование ). Года создания и использования различных фаззинг инструментов, стрелочками указано ответвление разработки нового фаззера, так же указаны три категории инструментов по типу тестирования White\Black\Grey box.


AFL-UTILS

Фаззер AFL (American fuzzy lop) все набирает популярность и сообщество вокруг себя, что закономерно приводит к появлению расширений и улучшений для него от сторонних разработчиков.

Afl-utils — это коллекция инструментов для помощи при фаззинге для american fuzzy lop (afl). Он включает в себя инструменты для решения двух больших задач:

• автоматический сбор, верификацию, повторение и анализ падений (afl_collect, afl_vcrash);
• простое управление параллельными (multi-core) задачами при фаззинге (afl_multicore, afl_multikill). Функции инструментов:
• afl_collect — собирает все краши в централизованном месте для последующего их анализа, а также позволяет запускать для анализа пользовательские GDB-скрипты, например exploitable-скрипт для проверки эксплуатации падения и его классификации;
• afl_multicore — запускает параллельно несколько сессий фаззинга в фоне;
• afl_multikill — завершает все afl-fuzz сессии, принадлежащие afl_multicore сессии;
• afl_vcrash — проверяет, что краши от afl-fuzz приводят к падению целевого исполняемого файла.

URL: https://github.com/rc0r/afl-utils
OS: Linux







AFL FUZZING CODE COVERAGE

Afl-cov — это вспомогательный Python-скрипт для фаззера Михала Залевски AFL (American fuzzy lop). Для своей работы afl-cov использует тест-кейс файлы от AFL для генерации gcov результата покрытия кода целевого исполняемого файла. Покрытие кода интерпретируется от одного тест-кейса к следующему для того, чтобы определить, какие новые функции или ветки кода были затронуты AFL на каждой итерации. В дальнейшем afl-cov позволяет задать строчки кода или функции в файлах покрытия, и потом сделать соответствие тест-кейсам, которые их затронули. Это позволяет пользователю обнаружить, какой AFL тест-кейс первым затронул ту или иную функцию. В дополнение к этому afl-cov предоставляет zero coverage отчет о функциях и участках кода, которые никогда не были выполнены в процессе фаззинга AFL.

Ну и как ты, наверное, понимаешь, это в конечном счете помогает улучшить/увеличить покрытие кода в процессе фаззинга, где не справился сам AFL.

Из зависимостей скрипта:

• afl-fuzz;
• Python;
• gcov, lcov, genhtml.

URL: https://github.com/mrash/afl-cov
OS: Linux
 
honggfuzz

Honggfuzz — это фаззер общего назначения с простым консольным интерфейсом. В качестве мутатора использует так называемую технику bit flipping — может мутировать как по битам, так и по байтам, а также их количеству. Помимо этого, можно использовать сторонний мутатор, для этого есть специальный параметр (-с).

Получая на вход набор тестовых файлов, данный инструмент модифицирует их, подает на вход анализируемой программе и с помощью ptrace() API/POSIX signal interface обнаруживает и логирует ее падения.

Особенности:
  • простая установка, отсутствие сложных конфигурационных файлов — honggfuzz можно запускать прямо из командной строки;
  • быстрота — ты можешь запустить несколько экземпляров honggfuzz для более эффективного фаззинга;
  • мощный анализатор — honggfuzz будет использовать наиболее мощный анализатор состояния процесса под данной ОС.

Несколько примеров найденных им уязвимостей:
  • FreeType 2 project: CVE-2010-2497, CVE-2010-2498, CVE-2010-2499, CVE-2010-2500, CVE-2010-2519, CVE-2010-2520, CVE-2010-2527;
  • множественные уязвимости в библиотеке libtiff;
  • множественные уязвимости в библиотеке librsvg;
  • множественные уязвимости в библиотеке poppler;
  • множественные эксплуатабельные уязвимости в IDA Pro.
В своей работе использует прекрасную библиотеку для дизассемблирования — capstone.

screenshot-honggfuzz-1.png


Автор: Robert Swiecki
URL: https://github.com/google/honggfuzz
Система: Linux / FreeBSD / NetBSD / Android / Windows / Mac OS X
 
Пожалуйста, обратите внимание, что пользователь заблокирован
WTF

what the fuzz
или wtf - это распределенный, настраиваемый, кроссплатформенный фаззер на основе снапшотов, ориентированный на покрытие кода и предназначенный для тестирования целей, как в пользовательском режиме, так и режиме ядра, работающий под ОС Windows и Linux (экспериментальный режим). Выполнение цели может осуществляться в эмуляторе с помощью bochscpu (малая производительность, но более точное отслеживание выполнения кода), или в виртуальной машине Windows с помощью Windows Hypervisor Platform APIs или же в виртуальной машине Linux с KVM APIs (высокая производительность).

wtf.png


Автор: Axel Souchet aka 0vercl0k
URL: https://github.com/0vercl0k/wtf
Система: Windows, Linux (экспериментальный режим)
 
Пожалуйста, обратите внимание, что пользователь заблокирован

DarthShader​


DarthShader - это специализированный фаззер на основе генерации кода и мутации промежуточного представления (IR), который предназначен для тестирования конвейера компиляции шейдеров WebGPU в веб-браузерах.

Присутствует поддержка для шейдерных трансляторов: Chrome (tint), Firefox (naga) и Safari (wgslc).

С начала фаззер использует комбинацию генерации кода и мутацию для создания шейдеров WebGPU (wgsl). Затем эти wgsl-шейдеры обрабатываются транслятором шейдеров (front-end). Эти компоненты транлируются в входной шейдер в нативном представнии для соотвествующего стека GPU используемой операционной системы. Например, в Windows шейдеры WebGPU транслируются в HLSL. После того, как нативное представление было сгенерировано, шейдеры обрабатываются соответствующим графическим стеком (back-end).

В Windows шейдеры HLSL, используются dxcompiler, компилятором шейдеров DirectX12. DarthShader также поддерживает тестирование этого компонента: сначала шейдеры WebGPU транслируются с tint в HLSL. Затем вывод HLSL подаётся в dxcompiler. Этот двухэтапный подход воспроизводит конвейер трансляции шейдеров и следовательно он гарантирует, что сбои в dxcompiler будут доступны из Интернета.

Этим фаззером было обнаружено 39 багов в браузерах, 19 из которых был присвоен CVE идентификатор.

Зависимости
DarthShader использует инструментацию кода как у AFL++.
Для сбоки нужен AFL++ 4.10с (старая версия libAFL)

Авторы: Lukas Bernhard, Nico Schiller, Moritz Schloegel, Nils Bars, Thorsten Holz
Документация: https://arxiv.org/pdf/2409.01824
URL: https://github.com/wgslfuzz/darthshader
Система: Windows, Linux, Android, macOS
 
NYX

Nyx - это фреймворк для фаззинга на основе снапшотов (снимков vm). В основе nyx лежит модифицированная версия QEMU, позволяющая создавать и откатывать снапшоты VM тысячи раз в секунду. Так же в состав nyx входит модифицированная версия KVM, позволяющей осуществлять вложенный фаззинг (nested fuzzing) и осуществлять трассировку с помощью Intel-PT. Кроме того в состав nyx входит такой инструмент, как Spec-Fuzzer, который специально разработан для фаззинга сложных целей. Spec-Fuzzer может фаззить любые приложения, ядра и даже гипервизоры, которые работают внутри KVM. С помощью Nyx можно легко создавать фаззеры практически для любых целей.

Авторы: Sergej Schumilo, Cornelius Aschermann
URL: https://nyx-fuzz.com/
Git: https://github.com/nyx-fuzz/
Система: Linux
Документация: https://github.com/nyx-fuzz/Nyx/tree/main/docs
Исследования лежащие в основе Nyx: https://nyx-fuzz.com/papers/
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх