Qu’est-ce que la limitation de débit API et comment l’implémenter
Tout dans ce monde est construit avec des ressources finies.
Les restaurants, par exemple, contiennent un nombre maximum de places, et lorsque le restaurant est contraint de servir beaucoup plus de personnes que ce nombre, la qualité du service diminue (c’est-à-dire une livraison lente) et la sécurité des clients peut même être mise en danger.
Le même principe est appliqué aux interfaces de programmation d’applications (API), où une « limite de débit » est appliquée pour garantir que l’API peut fournir une qualité de service optimale à ses utilisateurs, tout en garantissant la sécurité des utilisateurs de l’API.
Par exemple, la limitation de débit peut protéger l’API d’une performance lente lorsque trop de bots accèdent à l’API à des fins malveillantes, ou lorsqu’une attaque DDoS affecte actuellement l’API. De plus, lorsque trop d’utilisateurs légitimes accèdent à l’API, une limite de débit peut être utile.
TL;DR
- La limitation de débit des API contrôle l’accès pour éviter la surcharge de l’infrastructure en limitant le nombre de requêtes par période de temps
- Critique pour la sécurité et la performance : Protège contre les bot attacks, les attaques DDoS et l’API abuse qui coûtent aux entreprises jusqu’à 186 milliards de dollars par an
- Méthodes de mise en œuvre : Algorithmes de fenêtre fixe, seau percé, journal glissant et fenêtre glissante
- DataDome bloque automatiquement les mauvais bots tandis que la limitation de débit contrôle le volume de trafic des bons bots et du trafic commercial
- Impact réel : Des organisations comme OffenderWatch ont réduit les requêtes de 80 millions à 2,5 millions par jour, économisant des heures de travail manuel
Résumé :
- Qu’est-ce que la limitation de débit des API ?
- Pourquoi la limitation de débit des API est-elle nécessaire ?
- Comment fonctionne la limitation de débit des API ?
- Différentes méthodes pour la limitation de débit des API.
- Limitation de débit des API avec DataDome.
Qu’est-ce que la limitation de débit des API ?
Le principe de base de la limitation de débit des API est assez simple : si l’accès à l’API est illimité, n’importe qui (ou n’importe quoi) peut utiliser l’API autant qu’il le souhaite à tout moment, empêchant potentiellement d’autres utilisateurs légitimes d’accéder à l’API.
La limitation de débit des API consiste, en un mot, à limiter l’accès des personnes (et des bots) à l’API en fonction des règles/politiques définies par l’opérateur ou le propriétaire de l’API.
Nous pouvons considérer la limitation de débit comme une forme de sécurité et de contrôle de la qualité. C’est pourquoi la limitation de débit est intégrale pour la croissance et l’évolutivité de tout produit API. De nombreux propriétaires d’API accueilleraient favorablement la croissance, mais des pics élevés du nombre d’utilisateurs peuvent entraîner un ralentissement massif des performances de l’API. La limitation de débit peut garantir que l’API est correctement préparée pour gérer ce type de pic.
Les limites de traitement d’une API sont généralement mesurées dans une métrique appelée Transactions Par Seconde (TPS), et la limitation de débit des API consiste essentiellement à imposer une limite au nombre de TPS ou à la quantité de données que les utilisateurs peuvent consommer. Le besoin d’une limitation de débit efficace est devenu critique à mesure que les attaques contre les API augmentent. En 2023, les menaces automatisées générées par les bots représentaient 30 % de toutes les attaques contre les API, avec une augmentation de 28 % des incidents de sécurité liés aux bots par rapport à l’année précédente. Les organisations dont les revenus dépassent 1 milliard de dollars sont 2 à 3 fois plus susceptibles de subir des abus automatisés d’API que les petites entreprises, rendant la limitation de débit essentielle pour la protection des API d’entreprise.
C’est-à-dire que nous limitons soit le nombre de transactions, soit la quantité de données dans chaque transaction.
Pourquoi la limitation de débit des API est-elle nécessaire ?
La limitation de débit des API peut être utilisée comme une mesure de sécurité défensive pour l’API, et également comme une méthode de contrôle de la qualité. En tant que service partagé, l’API doit se protéger contre une utilisation excessive pour encourager une expérience optimale pour quiconque utilise l’API.
La limitation de débit à la fois côté serveur et côté client est extrêmement importante pour maximiser la fiabilité et minimiser la latence, et plus les systèmes/API sont grands, plus la limitation de débit sera cruciale.
Voici quelques avantages clés de la mise en œuvre de la limitation de débit des API :
Protection de l’utilisation des ressources
Toutes les API fonctionnent avec des ressources finies, et la limitation de débit est essentielle pour améliorer la disponibilité du service API pour le plus grand nombre d’utilisateurs possible en évitant les utilisations excessives des ressources. Bien que la famine des ressources puisse être causée par des attaquants via des attaques DDoS, il existe en réalité de nombreux incidents de DoS causés par des erreurs dans le logiciel plutôt que par des attaques extérieures.
Cela est souvent appelé déni de service (DoS) par tir ami, et la mise en œuvre de la limitation de débit est cruciale pour éviter ce problème.
Contrôle du flux de données
C’est particulièrement important dans les API qui traitent et transmettent de grands volumes de données. La limitation de débit peut être mise en œuvre pour contrôler le flux de données, par exemple en fusionnant de nombreux flux de données en un seul service.
Par exemple, nous pouvons distribuer les données plus uniformément entre deux éléments des API en limitant le flux dans chaque élément. Ainsi, nous pouvons empêcher un seul processeur de données API de traiter trop d’éléments tandis que d’autres processeurs sont actuellement inactifs. Cette fonction est particulièrement utile dans les API complexes qui impliquent différents flux de données.
Maximisation de l’efficacité des coûts
La limitation de débit peut être mise en œuvre pour contrôler les coûts, par exemple, pour éviter d’utiliser trop de ressources, ce qui pourrait entraîner des coûts importants. Toute ressource consommée générera toujours un coût, et plus une API reçoit de requêtes, plus elle accumulera de coûts. La limitation de débit peut être extrêmement importante pour garantir la rentabilité de l’API.
Les organisations qui mettent en œuvre une limitation de débit efficace en parallèle avec la protection contre les bots voient des résultats spectaculaires. Josh Bruner, PDG d’OffenderWatch, a partagé : « Nous sommes passés de 80 millions de requêtes par jour à 2,5 millions. J’ai récupéré des heures de ma journée, et nous avons transformé ce qui était gratté gratuitement en un produit payant. » Histoire client d’OffenderWatch
Avant de mettre en œuvre la protection, OffenderWatch passait 2 à 3 heures par jour à gérer les règles manuellement.
« Le simple fait que je passais personnellement beaucoup de temps à examiner les journaux de serveur, à rechercher des modèles et à essayer de comprendre ce qui se passait avait évidemment un coût. Et le temps passé sur ce problème pour le reste de l’équipe de développement a également été éliminé, ce qui représente une économie de coûts massive. »
Contrôle des quotas entre les utilisateurs
Lorsque la capacité du service d’une API est partagée entre de nombreux utilisateurs, la limitation du débit peut (et doit) être appliquée à l’utilisation des utilisateurs individuels pour garantir une utilisation équitable sans perturber l’accès des autres utilisateurs. Nous pouvons le faire en appliquant la limite de débit sur une certaine période de temps (c’est-à-dire par jour) ou en limitant la quantité de ressources lorsque c’est possible. Ces limites d’allocation sont souvent appelées quotas.
Comment fonctionne la limitation du débit des API ?
Une API est une méthode pour demander une fonctionnalité spécifique d’un programme. Bien que les API soient invisibles pour la plupart des utilisateurs, elles sont essentielles pour que l’application fonctionne de manière optimale.
Par exemple, lorsque nous commandons un trajet sur un service de covoiturage, une API est exécutée pour que nous, en tant qu’utilisateur, obtenions un tarif précis pour le trajet. Nous n’interagissons pas directement avec cette API, mais à travers l’interface de l’application de covoiturage, nous faisons une demande à l’API, probablement sans le savoir.
Chaque fois qu’une API répond à une demande, le propriétaire de l’API doit payer pour les ressources. Dans l’exemple ci-dessus, l’intégration de l’API de l’application de covoiturage entraînera le paiement du temps de calcul par le service de calcul des tarifs chaque fois qu’un utilisateur de l’application demande un trajet.
Ainsi, tout service qui offre une API pour les développeurs mettra en œuvre une limite de débit sur le nombre d’appels API qui peuvent être effectués. La limitation peut être effectuée de différentes manières, comme limiter le nombre d’appels API par heure, jour ou utilisateur unique, ou limiter la quantité de données générées par appel, entre autres.
La limitation du débit des API peut également aider à protéger l’API contre les bot attacks malveillantes et les attaques DDoS. Les bots peuvent faire des demandes répétées à une API pour bloquer son service aux utilisateurs légitimes, ralentir ses performances ou complètement arrêter l’API pendant un certain temps comme une forme d’attaque DDoS.
Selon le rapport 2024 sur l’état de la sécurité des API pour les services financiers, 42 % des violations d’API résultent de fraudes, d’abus et de mauvais usages, les bots malveillants représentant une menace significative1. Cependant, seulement 15 % des organisations se sentent confiantes dans la détection et la prévention de la fraude basée sur les API1>, soulignant pourquoi la limitation du débit doit faire partie d’une stratégie de sécurité globale qui inclut la détection des bots et l’analyse comportementale.
Méthodes de limitation du débit
Comme mentionné ci-dessus, il existe plusieurs manières de mettre en œuvre la limitation du débit des API, mais trois méthodes sont les plus courantes :
1. Régulation dynamique du débit
La régulation dynamique du débit est mise en œuvre en configurant un état temporaire dans l’API, permettant à celle-ci d’évaluer correctement toutes les requêtes. Selon certaines règles, un type spécifique de requête sera limité pendant cet état temporaire ; lorsqu’il est limité, un utilisateur peut être fortement ralenti (réduction de la bande passante) ou complètement déconnecté de l’API.
Cette méthode peut être appliquée au niveau de l’API, de l’utilisateur ou de l’application, ce qui en fait une approche polyvalente pour la limitation du débit.
2. Files d’attente de requêtes
Une autre méthode populaire consiste à utiliser des files d’attente de requêtes, qui limitent le nombre de requêtes sur une période donnée. Par exemple, on peut définir la limite à trois requêtes par seconde.
3. Méthodes basées sur des algorithmes
Dans cette approche, on utilise des algorithmes pour mettre en œuvre la limitation du débit des API. Plusieurs sont prêts à l’emploi :
- Fenêtre fixe
Cette méthode définit une valeur fixe comme seuil et utilise un compteur incrémental simple pour compter les requêtes. Si la limite est atteinte pendant la période définie (par exemple, 3 000 par heure), les requêtes supplémentaires sont temporairement bloquées.
- Seau percé
Les requêtes sont placées dans une file d’attente de type FIFO (premier entré, premier sorti), de sorte que le premier utilisateur dans la file sera servi en premier par l’API.
- Journal glissant
Cette méthode utilise un journal horodaté pour suivre les requêtes d’un utilisateur. À chaque nouvelle requête, le nombre total de journaux est calculé. Lorsque la limite est dépassée, les requêtes excédentaires sont rejetées.
- Fenêtre glissante
Combinant les approches de la fenêtre fixe et du journal glissant, cette méthode utilise à la fois un compteur et un journal pour accélérer le processus. Elle requiert peu de données pour évaluer chaque requête, ce qui la rend idéale pour un trafic important.
Comparaison des méthodes de limitation du débit
| Méthode | Meilleur cas d’utilisation | Avantages | Inconvénients |
|---|---|---|---|
| Régulation dynamique du débit | Gestion du trafic en temps réel | Contrôle flexible et granulaire | Peut ralentir les utilisateurs légitimes |
| Files d’attente de requêtes | Modèles de trafic prévisibles | Ordre équitable, logique simple | Peut créer des retards en période de pic |
| Fenêtre fixe | Contrôle de volume simple | Facile à mettre en œuvre | Trafic en rafale aux limites de la fenêtre |
| Seau percé | Flux de trafic fluide | Taux de traitement constant | Implémentation complexe |
| Journal glissant | Calcul précis du débit | Suivi détaillé | Consommation mémoire plus élevée |
| Fenêtre glissante | APIs à fort volume | Calcul rapide et précis | Plus complexe que la fenêtre fixe |
Choisir la bonne méthode dépend des modèles de trafic de votre API, de la capacité de votre infrastructure et de vos exigences en matière de sécurité. Pour une protection complète, combinez la limitation du débit avec la détection de bots alimentée par l’IA, comme la protection API de DataDome, qui identifie et bloque automatiquement le bot traffic malveillant avant qu’il n’atteigne vos règles de limitation du débit.
Questions fréquemment posées sur la limitation du débit des API<
La limitation du débit fixe des limites strictes sur le nombre de requêtes autorisées dans une période donnée, tandis que le throttling ralentit le traitement des requêtes lorsque ces limites sont approchées. La limitation du débit entraîne généralement le blocage des requêtes une fois le seuil atteint, tandis que le throttling réduit progressivement la bande passante ou introduit des délais. Les deux peuvent être utilisés ensemble dans le cadre d’une stratégie complète de protection API.
Choisissez en fonction de vos modèles de trafic et de vos besoins en matière de sécurité :
- Fenêtre fixe : Idéal pour un contrôle de volume simple avec un trafic prévisible
- Fenêtre glissante : Idéal pour les API à fort volume nécessitant de la précision sans coûts de mémoire élevés
- Seau percé : Idéal lorsque vous avez besoin d’un flux de trafic fluide et constant
- Seau à jetons : Permet un trafic en rafale tout en maintenant un contrôle global du débit
Pour les API confrontées à des attaques de bots sophistiquées, combinez la limitation algorithmique du débit avec la détection de bots alimentée par l’IA comme DataDome, qui s’adapte aux menaces évolutives en temps réel.
Non. Bien que la limitation du débit contrôle le volume, elle ne peut pas distinguer entre les utilisateurs légitimes à fort volume et les bots malveillants utilisant des adresses IP distribuées. Selon les recherches de l’industrie, 42 % des violations d’API résultent de fraudes et d’abus, mais seulement 15 % des organisations peuvent détecter efficacement la fraude basée sur les API. Une protection API efficace nécessite une limitation du débit combinée à une analyse comportementale, une détection de bots et une intelligence des menaces
Lorsqu’elle est correctement configurée, la limitation du débit ne devrait pas impacter les utilisateurs légitimes. Définissez des seuils au-dessus des modèles d’utilisation normaux et surveillez les faux positifs. L’approche de DataDome maintient un taux de faux positifs inférieur à 0,01 %, garantissant que le trafic légitime circule librement tout en bloquant les requêtes malveillantes. Des organisations comme Tap Global rapportent zéro plainte de clients concernant des problèmes d’accès après la mise en œuvre.
Les économies varient selon la taille de l’organisation et l’exposition aux menaces, mais l’impact peut être substantiel. OffenderWatch a réduit les requêtes API quotidiennes de 80 millions à 2,5 millions, économisant 2 à 3 heures de travail manuel par jour. Ladders a vu des réductions de coûts d’infrastructure de 15 à 20 %. Plus largement, les API vulnérables coûtent aux entreprises jusqu’à 87 milliards de dollars par an, rendant la protection efficace un investissement crucial.
DataDome offre une limitation du débit flexible intégrée à une protection contre les bots alimentée par l’IA :
- Seuils personnalisables pour les hits/requêtes sur des périodes de temps définies
- Contrôle granulaire au niveau du point de terminaison, de l’utilisateur et de l’application
- Options de réponse multiples : blocage dur ou défi CAPTCHA
- Tableau de bord en temps réel avec analyses et rapports automatisés
- Intégration avec plus de 50 CDN, passerelles API et plateformes d’infrastructure
En savoir plus sur la solution de protection API de DataDome.
Références
Article de DevOps Digest citant le rapport 2024 sur l’état de la sécurité des API : services financiers : https://www.devopsdigest.com/api-security-in-financial-services-navigating-regulatory-and-operational-challenges