Les deux familles d'outils de sécurité API

La protection, à l'exécutionPasserelles, pare-feu applicatifs web, limitation de débit, protection contre les bots, gestion des secrets. Réduisent ce qui atteint votre service. Achetés par les équipes plateforme ou sécurité.
La vérification, avant la mise en productionScanners, fuzzers et contrôles comportementaux sur les autorisations et les limites. Vous disent ce que votre service ferait. Achetés, ou pas, par les équipes de développement.

Là où la protection seule ne suffit pas

Une passerelle ne peut pas savoir que l'utilisateur A ne doit pas pouvoir lire la commande de l'utilisateur B. C'est une règle métier, elle vit dans votre code, et chaque requête qui la met en jeu paraît parfaitement légitime sur le réseau. Méthode correcte, jeton valide, chemin bien formé.

L'autorisation au niveau des objets est la faille la plus couramment exploitée dans les API réelles, et c'est précisément la catégorie qu'aucune couche de protection ne peut voir. Elle doit être vérifiée dans le service, avant la mise en production.

Ce que chaque famille couvre réellement

  • Passerelles et pare-feu : schémas d'attaque connus, requêtes malformées, volume. D'une réelle utilité, et aveugles à la logique.

  • Limitation de débit : les abus par le volume. Ne fait rien contre une unique requête malveillante correctement formée.

  • Gestion des secrets : les fuites d'identifiants. Orthogonale à tout le reste ici, et bonne à prendre.

  • Scanners : vulnérabilités des dépendances, classes d'injection, configuration TLS.

  • Vérification comportementale : l'API refuse-t-elle ce qu'elle doit refuser. La moins coûteuse, la plus souvent absente.

Pourquoi cet angle mort persiste

Le contrôle comportemental des autorisations est peu coûteux, très rentable et largement absent, une combinaison étrange qui mérite une explication.

Il tombe entre deux responsables. Cela ressemble à du travail de sécurité, donc les équipes de développement supposent que le processus de sécurité s'en charge. Ce processus, ce sont des scanners et une évaluation annuelle, dont aucun ne connaît vos règles métier, et il suppose donc que les tests s'en chargent. Les deux hypothèses sont raisonnables localement, et l'angle mort survit des années.

Désigner un responsable règle l'essentiel du problème. La personne qui écrit l'endpoint écrit le contrôle d'autorisation, dans la même pull request, comme une partie normale du travail. Cela confie la tâche à la seule personne qui sait qui a le droit de voir la ressource, et cela passe à l'échelle avec le nombre d'endpoints plutôt qu'avec la taille de l'équipe sécurité.

Le contrôle à lancer cette semaine

Créez deux comptes. Faites créer un enregistrement par l'un. Essayez de le lire avec le jeton de l'autre. Si des données reviennent, vous avez la faille API grave la plus courante, et aucune passerelle placée devant votre service ne l'aurait arrêtée.

Automatisez-le ensuite, car ce contrôle doit être répété pour chaque nouvel endpoint et personne n'y pensera.

Terminal

npm install -g @testsprite/testsprite-cli
testsprite setup

Si vous préférez ne rien installer, le tableau de bord fait la même chose. Tout ce que la ligne de commande sait faire par ailleurs se trouve dans le dépôt CLI.

Les plans API générés incluent des catégories d'autorisation et de valeurs limites : ces contrôles accompagnent donc la couverture fonctionnelle au lieu d'attendre un exercice trimestriel. Le fonctionnement détaillé se trouve dans la documentation sur les tests d'API.

Connectez le dépôt depuis le tableau de bord et les exécutions démarrent à partir du déploiement que vous produisez déjà, ou ajoutez plutôt une étape à votre propre workflow.

Ce que TestSprite couvre dans la famille vérification

Les contrôles comportementaux qu'aucune couche de protection ne peut effectuer : accès non authentifié, autorisation au niveau des objets, limites de rôles, identifiants expirés et entrées hors plage. Les plans générés incluent des catégories d'autorisation et de valeurs limites : chaque endpoint en bénéficie donc, y compris celui ajouté la semaine dernière.

Il agit sur le service en cours d'exécution via son interface, à partir de la découverte et de votre spécification. Auto-Authentication maintient les sessions actives pendant toute une exécution, Dynamic Variables transporte les valeurs d'un appel à l'autre, Dependency Chains déduit l'ordre d'exécution et Auto-Cleanup supprime exactement ce que l'exécution a créé.

Le gain, c'est la cadence. Ces contrôles ne sont pas difficiles, ils sont faciles à oublier au quarantième endpoint, et les exécuter à chaque changement est ce qui comble la faille la plus couramment exploitée dans les API réelles. Votre passerelle et votre scanner continuent de faire ce qu'ils font bien.

TestSprite est-il un outil de sécurité API ?

Il appartient à la famille vérification et couvre les autorisations, les limites de rôles et les valeurs limites. Ce n'est ni une passerelle ni un scanner de vulnérabilités.

Faut-il les deux familles ?

Oui. La protection réduit ce qui vous parvient ; la vérification vous dit ce que vous feriez de ce qui passe. Aucune ne remplace l'autre.

Un WAF peut-il détecter une autorisation défaillante ?

Non. La requête est légitime sur tous les aspects qu'un WAF peut inspecter. Seul le service sait qui doit voir cet enregistrement.

Par où commencer avec une petite équipe ?

Des contrôles comportementaux d'autorisation sur chaque endpoint qui prend un identifiant. Le meilleur taux de détection, le coût le plus faible, et cela tourne dans votre pipeline existant.

À quelle fréquence exécuter chacune ?

La protection est toujours active. La vérification a sa place à chaque changement, car de nouveaux endpoints apparaissent en permanence et chacun exige le même contrôle.

En bref

Une passerelle ne peut pas connaître vos règles métier.

Les outils de sécurité API protègent une API en cours d'exécution ou vérifient ce qu'elle ferait. La protection est aveugle à la logique d'autorisation, là où se trouve la faille la plus couramment exploitée. Faites le test des deux comptes, puis automatisez-le.