AutoSwagger - L'outil gratuit qui trouve les failles d'API que les hackers adorent
Et dire qu’en 2025, certains d’entre vous laissent encore traîner des API sans authentification avec des données sensibles dedans. Ça vous dirait pas de sécuriser un peu tout ça ?
Alors ça tombe bien car je viens de découvrir AutoSwagger, un outil gratuit développé par l’équipe d’Intruder qui scanne automatiquement les domaines à la recherche de documentation API exposée (du genre OpenAPI ou Swagger). Ensuite il parse tout ça pour générer une liste d’endpoints à tester et évidemment, il trouve des trucs de malade.
L’équipe d’Intruder a par exemple découvert des vulnérabilités assez dingues pendant leurs tests comme cette faille qui permettait à n’importe qui d’énumérer les infos des utilisateurs Active Directory sans authentification, un peu comme la CVE-2025-0589 trouvée récemment dans Octopus Deploy. Ils ont aussi déniché un endpoint ‘config’ qui exposait carrément les credentials et les clés API pour des datastores Microsoft Partner Program, avec en bonus les identifiants d’une base Redis contenant des données personnelles de partenaires. Sans oublier des enregistrements Salesforce avec des infos personnelles chez une grosse multinationale tech.
Et tout ça dans de grandes entreprises avec des équipes de sécurité bien matures. Selon le rapport Verizon 2025 sur les brèches de données, l’exploitation des vulnérabilités a augmenté de 34% en un an, et les droits et autorisations mal configurés restent parmi les failles les plus critiques.
Pour réussir ses analyses, AutoSwagger utilise trois méthodes pour découvrir les specs API. D’abord, si vous lui donnez une URL qui finit en .json, .yaml ou .yml, il va parser directement le fichier OpenAPI. Ensuite, il cherche les interfaces Swagger UI connues (comme /swagger-ui.html) et extrait les specs depuis le HTML ou le JavaScript. Et si ça ne marche toujours pas, il tente sa chance avec une liste d’endpoints par défaut comme /swagger.json ou /openapi.json.
Une fois qu’il a trouvé la documentation, AutoSwagger envoie des requêtes à chaque endpoint avec des paramètres valides tirés de la doc. Si au lieu de recevoir une erreur 401 ou 403 (non autorisé), il obtient une réponse valide, bingo ! Il a trouvé un endpoint non protégé.
Mais ce n’est pas tout. L’outil intègre Presidio pour identifier automatiquement les données personnelles comme les numéros de téléphone, les emails, les adresses et les noms. Il utilise aussi des regex pour détecter les tokens exposés, les clés API et autres artefacts de debug qui traînent. En gros, il fait tout le boulot qu’un pentester ferait manuellement, mais en quelques minutes.
Pour utiliser AutoSwagger, c’est super simple. Vous clonez le repo GitHub, vous installez les dépendances Python, et c’est parti :
git clone git@github.com:intruder-io/autoswagger.git
pip install -r requirements.txt
python3 autoswagger.py https://api.example.com -v
L’outil propose plein d’options intéressantes. Avec -risk
, vous pouvez inclure les méthodes non-GET (POST, PUT, PATCH, DELETE) dans les tests. Le flag -all
affiche tous les codes HTTP dans les résultats (pas seulement les 401/403). Et si vous voulez être vraiment méchant, -b
ou --brute
active le brute-forcing des valeurs de paramètres pour contourner certaines validations.
Vous pouvez aussi contrôler le débit avec -rate
(30 requêtes par seconde par défaut) et obtenir les résultats en JSON avec -json
. Le mode -product
est particulièrement utile car il ne montre que les endpoints qui contiennent des données personnelles ou des secrets.
La plupart des failles découvertes sont encore super communes, même chez les gros et elles peuvent être exploitées avec très peu de compétences techniques. N’importe qui peut par exemple lancer AutoSwagger et potentiellement trouver des données sensibles.
Les experts en sécurité recommandent évidemment de ne jamais exposer la documentation de vos API sauf si c’est absolument nécessaire pour le business. C’est du bon sens, mais apparemment, beaucoup l’oublient car exposer votre doc Swagger, c’est comme donner le plan de votre maison à des cambrioleurs.
L’équipe d’Intruder précise que cette première version d’AutoSwagger n’est pas encore complète car il y a certains types de spécifications que l’outil ne gère pas encore. Mais c’est open source, donc n’hésitez pas à contribuer et ajouter vos propres regex de détection selon vos besoins.
Et pour ceux qui veulent tester leurs propres API, car c’est ça l’objectif de cet outil, voici quelques conseils. D’abord, utilisez toujours l’outil en mode verbose (-v
) pour voir exactement ce qui se passe. Les logs sont stockés dans ~/.autoswagger/logs
. Ensuite, commencez par des tests sans risque (GET uniquement) avant de passer aux méthodes plus dangereuses. Et surtout, testez uniquement vos propres API ou celles pour lesquelles vous avez une autorisation explicite, sinon vous irez en prison car c’est illégal.
Les résultats peuvent ensuite être interprétés assez facilement. Les endpoints qui retournent un code 200 sont ceux qui méritent votre attention, surtout s’ils sont marqués comme contenant des données personnelles ou des secrets. AutoSwagger fait une bonne partie du travail, mais une vérification manuelle reste indispensable. Utilisez alors curl, Postman ou Burp Suite pour confirmer vos découvertes.
L’outil affiche aussi des statistiques intéressantes avec -stats
. Vous pouvez voir combien d’hôtes ont des specs valides, lesquels exposent des données personnelles, le nombre total de requêtes envoyées, le RPS moyen, et le pourcentage d’endpoints qui répondent avec des codes 2xx ou 4xx.
Au final, AutoSwagger est un super outil pour les équipes de sécurité qui veulent tester leurs API mais c’est aussi, je trouve, un rappel brutal que les bases de la sécurité API sont encore mal appliquées. Donc si vous développez des API, prenez le temps de vérifier que chaque endpoint nécessite une authentification appropriée. Et si possible, ne documentez publiquement que ce qui est absolument nécessaire !
D’ailleurs, grand merci à Lorenper qui m’a fait découvrir cet outil !