Skip to content

Instantly share code, notes, and snippets.

@manuelleduc
Last active October 14, 2016 07:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manuelleduc/4a300df36ec9dfd576984ac498513756 to your computer and use it in GitHub Desktop.
Save manuelleduc/4a300df36ec9dfd576984ac498513756 to your computer and use it in GitHub Desktop.
Sujet V&V Fuzzing swagger

Sujet : Fuzzing Swagger

Contexte et motivation

L'avancée des travaux autour des API REST et leur omniprésence dans les architectures web modernes (MVVC, ajax, micro-services architecture...) ont conduit à la définition de meta-models de ce type d'architecture.

Un exemple de meta-model de service REST est swagger. Il propose une language de définition du meta-model en json/yaml et permet de dériver différents programmes à partir de cette définition :

  • template de code server dans différents languages et frameworks.
  • librairie cliente compatible avec l'implémentation du serveur.
  • documentation html interactive.

La limite de cette approche générative est la responsabilité laissé au développeur d'implémenter correctement les services métiers sous-jascents.

Approche par Fuzzing

Afin de tester facilement et rapidement des API REST définies à l'aide de swagger, nous vous proposons de développer un fuzzer afin de valider des priopriétés génériques de l'API développée.

Example de cas de test

  • Détection de la présence d'une erreur 404 quand le chemin requêté ne correspond pas à un chemin définis dans l'API.
  • Validation que le type de donnée retounées par les requêtes GET correspond au type de retour attendu.

Choix techniques

Pas de technologies imposées mais la page TOOLS AND INTEGRATIONS vous donnera une idée générale des écosystèmes dans lesquels des outils existent déjà.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment