Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
restler-fuzzer — RESTler est le premier outil de fuzzing d'API REST stateful pour tester automatiquement les services cloud via leurs API REST et trouver des bugs de sécurité et de fiabilité dans ces services. | Kitploit
Outils/GitHubGitHub/microsoft/restler-fuzzer
Scanners de VulnérabilitésTests de Sécurité des APISécurité WebFuzzingSécurité Cloud
GitHubmicrosoft/restler-fuzzer

restler-fuzzer

RESTler est le premier outil de fuzzing d'API REST stateful pour tester automatiquement les services cloud via leurs API REST et trouver des bugs de sécurité et de fiabilité dans ces services.

Voir le dépôt
2.9k331il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RESTler

Qu'est-ce que RESTler ?

RESTler est le premier outil de fuzzing d'API REST stateful pour tester automatiquement les services cloud via leurs API REST et trouver des bugs de sécurité et de fiabilité dans ces services. Pour un service cloud donné avec une spécification OpenAPI (anciennement Swagger), RESTler analyse l'intégralité de sa spécification, puis génère et exécute des tests qui sollicitent le service via son API REST.

RESTler déduit intelligemment les dépendances producteur-consommateur entre les types de requêtes à partir de la définition OpenAPI. Pendant les tests, il vérifie des classes spécifiques de bugs et apprend dynamiquement comment le service se comporte à partir des réponses précédentes du service. Cette intelligence permet à RESTler d'explorer des états de service plus profonds accessibles uniquement via des séquences de requêtes spécifiques et de trouver plus de bugs.

RESTler est décrit dans ces articles de recherche évalués par des pairs :

  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)

Si vous utilisez RESTler dans vos recherches, veuillez citer l'article ICSE'2019 (par défaut) (BibTeX).

RESTler inclut plusieurs stratégies de génération de tests. Afin d'obtenir une vue comparative complète concernant (i) l'efficacité (c'est-à-dire la rapidité avec laquelle RESTler trouve des crashs) et (ii) l'efficience (c'est-à-dire le nombre de crashs que RESTler peut trouver dans un laps de temps donné), nous recommandons de comparer tous les fuzzing_mode(s) documentés car chacun offre un compromis différent entre la largeur et la profondeur de l'exploration de l'espace d'états. Nous recommandons également d'exécuter le mode test avant tout fuzzing, comme décrit ci-dessous, pour découvrir et corriger les problèmes de configuration (par exemple, ajouter les valeurs de paramètres prérequis nécessaires au dictionnaire) avant le fuzzing.

RESTler a été créé chez Microsoft Research et est toujours en développement actif.

Pour un aperçu et une démonstration sur la façon de commencer, consultez Webinaire - Fuzzing pour améliorer la sécurité et la fiabilité des services cloud.

RESTler architecture

Build Status

Build Status

Configuration de RESTler

RESTler a été conçu pour fonctionner sur des machines 64 bits sous Windows ou Linux. Le support expérimental pour macOS est également activé.

Instructions de compilation

Docker

À la racine de ce dépôt, exécutez

root@kitploit:~
docker build -t restler .

Le conteneur docker résultant aura RESTler disponible dans le répertoire /RESTler/restler avec le binaire principal Restler.

Vous pouvez ensuite utiliser cette image docker comme base pour ajouter l'application testée afin d'exécuter le fuzzing dans des conteneurs docker isolés.

Local

Prérequis : Installez Python 3.12.8 et .NET 8.0, pour votre système d'exploitation approprié.

Créez un répertoire où vous souhaitez placer les binaires RESTler :

mkdir restler_bin

Placez-vous à la racine du dépôt et exécutez le script Python suivant :

python ./build-restler.py --dest_dir <full path to restler_bin above>

Remarque : si vous obtenez l'erreur nuget NU1403 lors de la compilation, une solution rapide consiste à vider votre cache avec cette commande

dotnet nuget locals all --clear

Utilisation de RESTler

RESTler s'exécute en 4 modes principaux (dans l'ordre) :

  1. Compile : à partir d'une définition OpenAPI JSON ou YAML (et éventuellement d'exemples), générez une grammaire RESTler. Voir Compilation.
  2. Test : exécute rapidement tous les points de terminaison+méthodes d'une grammaire RESTler compilée pour déboguer la configuration de test et calculer quelles parties de la définition OpenAPI sont couvertes. Ce mode est également appelé smoketest. Voir Tests. Pour utiliser des paramètres personnalisés du moteur de test, voir Paramètres du moteur de test.
  3. Fuzz-lean : exécute une fois chaque point de terminaison+méthode dans une grammaire RESTler compilée avec un ensemble par défaut de vérificateurs pour voir si des bugs peuvent être trouvés rapidement. Voir Fuzzing.
  4. Fuzz : chasse aux bugs - explore une grammaire de fuzzing RESTler en mode de recherche intelligente en largeur (mode de recherche plus profond) pour trouver plus de bugs. Attention : Ce type de fuzzing est plus agressif et peut créer des interruptions de service dans le service testé si celui-ci est mal implémenté (par exemple, le fuzzing peut créer des fuites de ressources, une dégradation des performances, des corruptions backend, etc.). Voir Fuzzing.

Démarrage rapide

Pour une introduction rapide avec des exemples simples, consultez ce Tutoriel.

Pour essayer rapidement RESTler sur votre API, voir Démarrage rapide.

Bugs trouvés par RESTler

Il existe actuellement deux catégories de bugs trouvés par RESTler.

  • Code d'erreur : actuellement, chaque fois qu'une réponse avec le code d'état 500 ("Erreur interne du serveur") est reçue, un bug est signalé.
  • Vérificateurs : chaque vérificateur tente de déclencher des bugs spécifiques en exécutant des requêtes supplémentaires ciblées ou des séquences de requêtes à certains moments pendant le fuzzing, déterminés par le contexte. Certains vérificateurs tentent de trouver des 500 supplémentaires, tandis que d'autres vérificateurs tentent de trouver des bugs logiques spécifiques tels que des fuites de ressources ou des violations de hiérarchie. Pour une description complète des vérificateurs, voir Vérificateurs.

Lorsqu'un bug est trouvé, RESTler rapporte les bugs triés dans des buckets de bugs et fournit un journal de rejeu qui peut être utilisé pour reproduire le bug (voir Rejeu).

Sujets avancés

Pour des conseils sur l'utilisation efficace de RESTler, veuillez consulter Bonnes pratiques et Amélioration de la couverture API.

Voir aussi ces Questions fréquemment posées.

Si vous êtes intéressé par l'utilisation de RESTler à grande échelle dans le cadre de votre pipeline CI/CD, découvrez le service auto-hébergé de test de fuzzing d'API REST.

Questions

Si vous avez une demande/suggestion/question, veuillez soumettre un problème. Voir Contributing.md pour les instructions.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous obligent à accepter un Contrat de Licence de Contributeur (CLA) déclarant que vous avez le droit, et que vous accordez effectivement, les droits d'utiliser votre contribution. Pour plus de détails, visitez https://cla.microsoft.com.

Lorsque vous soumettez une pull request, un CLA-bot déterminera automatiquement si vous devez fournir un CLA et décorera la PR de manière appropriée (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n'aurez besoin de le faire qu'une seule fois pour tous les dépôts utilisant notre CLA.

Ce projet a adopté le Code de conduite open source de Microsoft. Pour plus d'informations, consultez la FAQ du Code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.

Pour plus d'informations, voir Contributing.md.

Marques déposées

Ce projet peut contenir des marques déposées ou des logos pour des projets, produits ou services. L'utilisation autorisée des marques ou logos de Microsoft est soumise et doit suivre les directives sur les marques et la marque de Microsoft. L'utilisation de marques ou logos de Microsoft dans des versions modifiées de ce projet ne doit pas créer de confusion ni impliquer un parrainage de Microsoft. Toute utilisation de marques ou logos tiers est soumise aux politiques de ces tiers.

Collecte de données

Le logiciel peut collecter des informations vous concernant et concernant votre utilisation du logiciel et les envoyer à Microsoft. Microsoft peut utiliser ces informations pour fournir des services et améliorer nos produits et services. Vous pouvez désactiver la télémétrie comme décrit dans le dépôt. Il existe également certaines fonctionnalités du logiciel qui peuvent vous permettre, ainsi qu'à Microsoft, de collecter des données auprès des utilisateurs de vos applications. Si vous utilisez ces fonctionnalités, vous devez respecter la loi applicable, notamment en fournissant des avis appropriés aux utilisateurs de vos applications ainsi qu'une copie de la déclaration de confidentialité de Microsoft. Notre déclaration de confidentialité se trouve à l'adresse https://go.microsoft.com/fwlink/?LinkID=824704. Vous pouvez en savoir plus sur la collecte et l'utilisation des données dans la documentation d'aide et notre déclaration de confidentialité. Votre utilisation du logiciel constitue votre consentement à ces pratiques.

Pour plus d'informations, voir Telemetry.md.

Signaler des problèmes de sécurité

Les problèmes de sécurité et les bugs doivent être signalés en privé, par courriel, au Microsoft Security Response Center (MSRC) à [email protected]. Vous devriez recevoir une réponse sous 24 heures. Si pour une raison quelconque ce n'est pas le cas, veuillez envoyer un courriel de suivi pour nous assurer que nous avons reçu votre message original. Des informations supplémentaires, y compris la clé MSRC PGP, se trouvent dans le Security TechCenter.

Pour plus de détails, voir Security.md.

Confidentialité et cookies

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

Télécharger l’outil