Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/microsoft/restler-fuzzer
Сканеры уязвимостейТестирование безопасности APIВеб-безопасностьФаззингБезопасность облачных сред
GitHubmicrosoft/restler-fuzzer

restler-fuzzer

RESTler — это первый инструмент фаззинга REST API с сохранением состояния для автоматического тестирования облачных сервисов через их REST API и поиска ошибок безопасности и надежности в этих сервисах.

Репозиторий
2.9k331177 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

RESTler

Что такое RESTler?

RESTler — это первый инструмент для фаззинга REST API с учётом состояния, предназначенный для автоматического тестирования облачных сервисов через их REST API и поиска уязвимостей и ошибок надёжности в этих сервисах. Для заданного облачного сервиса со спецификацией OpenAPI (ранее Swagger) RESTler анализирует всю его спецификацию, а затем генерирует и выполняет тесты, которые задействуют сервис через его REST API.

RESTler интеллектуально выводит зависимости типа «производитель-потребитель» между типами запросов из определения OpenAPI. Во время тестирования он проверяет определённые классы ошибок и динамически учится поведению сервиса на основе предыдущих ответов сервиса. Этот интеллект позволяет RESTler исследовать более глубокие состояния сервиса, достижимые только через определённые последовательности запросов, и находить больше ошибок.

RESTler описан в следующих рецензируемых исследовательских статьях:

  1. RESTler: Stateful REST API Fuzzing (ICSE'2019)
  2. Checking Security Properties of Cloud Service REST APIs (ICST'2020)
  3. Differential Regression Testing for REST APIs​ (ISSTA'2020)
  4. Intelligent REST API Data Fuzzing​​ (FSE'2020)

Если вы используете RESTler в своих исследованиях, пожалуйста, процитируйте (по умолчанию) статью ICSE'2019 (BibTeX).

RESTler включает несколько стратегий генерации тестов. Чтобы получить всестороннее сравнительное представление относительно (i) эффективности (т.е. как быстро RESTler может находить сбои) и (ii) результативности (т.е. сколько сбоев RESTler может найти за заданный промежуток времени), мы рекомендуем сравнивать все документированные fuzzing_mode(s), потому что каждый из них обеспечивает различный компромисс между широтой и глубиной исследования пространства состояний. Также мы рекомендуем запускать режим test перед любым фаззингом, как описано ниже, чтобы обнаружить и исправить проблемы настройки (например, добавить необходимые значения обязательных параметров в словарь) до начала фаззинга.

RESTler был создан в Microsoft Research и всё ещё находится в активной разработке.

Обзор и демонстрацию начальных шагов см. в Webinar - Fuzzing to Improve the Security and Reliability of Cloud Services.

Архитектура RESTler

Статус сборки

Build Status

Настройка RESTler

RESTler разработан для работы на 64-битных машинах с Windows или Linux. Экспериментальная поддержка macOS также включена.

Инструкции по сборке

Docker

В корне репозитория выполните

docker build -t restler .

В полученном docker-контейнере RESTler будет доступен в директории /RESTler/restler с основным двоичным файлом Restler.

Затем вы можете использовать этот образ docker как основу для добавления тестируемого приложения для выполнения фаззинга внутри изолированных docker-контейнеров.

Локально

Предварительные требования: Установите Python 3.12.8 и .NET 8.0 для вашей операционной системы.

Создайте директорию, в которую вы хотите поместить двоичные файлы RESTler:

mkdir restler_bin

Перейдите в корневую директорию репозитория и выполните следующий скрипт Python:

python ./build-restler.py --dest_dir <полный путь к restler_bin выше>

Примечание: если при сборке возникает ошибка nuget NU1403, быстрым решением может быть очистка кэша с помощью команды

dotnet nuget locals all --clear

Использование RESTler

RESTler работает в 4 основных режимах (по порядку):

  1. Compile: из определения OpenAPI в формате JSON или YAML (и, опционально, примеров) сгенерировать грамматику RESTler. См. Компиляция.
  2. Test: быстро выполнить все конечные точки+методы в скомпилированной грамматике RESTler для отладки тестовой настройки и вычисления охвата частей определения OpenAPI. Этот режим также называется smoketest. См. Тестирование. Для использования пользовательских настроек тестового движка см. Настройки тестового движка.
  3. Fuzz-lean: однократное выполнение каждой конечной точки+метода в скомпилированной грамматике RESTler с набором проверок по умолчанию для быстрого обнаружения ошибок. См. Фаззинг.
  4. Fuzz: охота за ошибками — исследование грамматики фаззинга RESTler в режиме интеллектуального поиска в ширину (более глубокий поиск) для нахождения большего количества ошибок. Предупреждение: Этот тип фаззинга более агрессивен и может вызвать сбои в тестируемом сервисе, если он плохо реализован (например, фаззинг может привести к утечке ресурсов, ухудшению производительности, повреждению бэкенда и т.д.). См. Фаззинг.

Быстрый старт

Для быстрого ознакомления с простыми примерами см. этот Учебник.

Чтобы быстро попробовать RESTler на своем API, см. Быстрый старт.

Ошибки, найденные RESTler

В настоящее время существует две категории ошибок, найденных RESTler.

  • Код ошибки: в настоящий момент любое получение ответа с кодом статуса 500 ("Внутренняя ошибка сервера") сообщается как ошибка.
  • Проверки: каждая проверка пытается вызвать определённые ошибки, выполняя целенаправленные дополнительные запросы или последовательности запросов в определённые моменты фаззинга, определяемые контекстом. Некоторые проверки пытаются найти дополнительные 500, в то время как другие находят специфические логические ошибки, такие как утечки ресурсов или нарушения иерархии. Полное описание проверок см. в Проверки.

Когда ошибка найдена, RESTler сообщает об ошибках, сгруппированных в блоки ошибок, и предоставляет журнал воспроизведения, который можно использовать для воспроизведения ошибки (см. Воспроизведение).

Продвинутые темы

Советы по эффективному использованию RESTler см. в Лучшие практики и Улучшение покрытия API.

См. также Часто задаваемые вопросы.

Если вас интересует использование RESTler в масштабе как части вашего CI/CD конвейера, ознакомьтесь с самостоятельно размещённой службой REST API Fuzz Testing.

Вопросы

Если у вас есть запрос/предложение/вопрос, пожалуйста, создайте issue. Инструкции см. в Contributing.md.

Участие

Скачать инструмент