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

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

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

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

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

Категории

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

restler-fuzzer

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

Репозиторий
2.9k3316 месяцев назадПроверено 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

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

root@kitploit:~
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.

Участие

Этот проект приветствует вклад и предложения. Большинство вкладов требует вашего согласия с Лицензионным соглашением с участником (CLA), подтверждающим, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробности см. на https://cla.microsoft.com.

Когда вы отправляете запрос на включение изменений (pull request), CLA-бот автоматически определит, нужно ли вам предоставить CLA, и соответствующим образом оформит PR (например, добавит метку, комментарий). Просто следуйте инструкциям от бота. Вам потребуется сделать это только один раз для всех репозиториев, использующих наше CLA.

Этот проект принял Microsoft Open Source Code of Conduct. Для получения дополнительной информации см. Вопросы и ответы по Кодексу поведения или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.

Для получения дополнительной информации см. Contributing.md.

Товарные знаки

Этот проект может содержать товарные знаки или логотипы проектов, продуктов или услуг. Авторизованное использование товарных знаков или логотипов Microsoft регулируется и должно соответствовать Руководству по товарным знакам и брендам Microsoft. Использование товарных знаков или логотипов Microsoft в изменённых версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство со стороны Microsoft. Любое использование товарных знаков или логотипов третьих лиц регулируется политиками этих третьих лиц.

Сбор данных

Программное обеспечение может собирать информацию о вас и вашем использовании программного обеспечения и отправлять её в Microsoft. Microsoft может использовать эту информацию для предоставления услуг и улучшения наших продуктов и услуг. Вы можете отключить телеметрию, как описано в репозитории. В программном обеспечении также есть некоторые функции, которые могут позволить вам и Microsoft собирать данные от пользователей ваших приложений. Если вы используете эти функции, вы должны соблюдать применимое законодательство, включая предоставление соответствующих уведомлений пользователям ваших приложений вместе с копией заявления о конфиденциальности Microsoft. Наше заявление о конфиденциальности находится по адресу https://go.microsoft.com/fwlink/?LinkID=824704. Более подробную информацию о сборе и использовании данных можно найти в справочной документации и нашем заявлении о конфиденциальности. Используя программное обеспечение, вы соглашаетесь на эти действия.

Для получения дополнительной информации см. Telemetry.md.

Сообщение о проблемах безопасности

Проблемы безопасности и ошибки следует сообщать конфиденциально, по электронной почте в Microsoft Security Response Center (MSRC) по адресу [email protected]. Вы должны получить ответ в течение 24 часов. Если по какой-то причине этого не произошло, пожалуйста, напишите повторно, чтобы убедиться, что мы получили ваше исходное сообщение. Дополнительная информация, включая ключ MSRC PGP, находится в Security TechCenter.

Для получения дополнительных сведений см. Security.md.

Конфиденциальность и файлы cookie

https://go.microsoft.com/fwlink/?LinkId=521839

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