Comment appliquer une démarche zero-trust aux API
Toutes les organisations n’ont pas une stratégie de sécurité API en place. Utiliser le sans confiance dans la sécurité des API est une manière de protéger les API et de réduire leurs chances d’être attaquées.
Les API constituent une composante essentielle de toutes les interactions technologiques, permettant non seulement des connexions entre les applications modernes, mais aussi un conduit pour travailler avec l’infrastructure existante.
Toutefois, ce tissu de connexion est une cible de choix pour les attaques. Le fournisseur de réseau de distribution de contenu Akamai a signalé une augmentation de 167 % des attaques contre les applications web du secteur du gaming entre le premier trimestre 2021 et la même période en 2022, et Gartner a prédit que les API deviendront le principal vecteur d’attaque des applications web en 2023.
Une manière d’atténuer le risque et la portée d’attaques sur les API est de mettre en œuvre une approche sans confiance, ou zero-trust (confiance zéro), pour les sécuriser. Un cadre de confiance zéro suppose par défaut que les utilisateurs et les appareils ne sont pas dignes de confiance. L’authentification et l’autorisation continues vérifient si un appareil ou un utilisateur reste digne de confiance. Même dans ce cas, seul un accès minimal est fourni pendant une durée limitée.
Voici quatre façons d’utiliser la confiance zéro pour maintenir la sécurité des API.
1. Inventorier les API
La confiance zéro nécessite une compréhension de la surface d’attaque existante. Ainsi, la première étape pour sécuriser les API consiste à découvrir et inventorier toutes les API en usage, à les évaluer pour leur utilisation continue et les risques et vulnérabilités potentiels, et à remédier à tout problème trouvé, si nécessaire.
Les outils de découverte d’API aident à trouver et évaluer toutes les API au sein de l’infrastructure informatique, que l’API soit orientée vers le public, interne ou connectée à des applications patrimoniales. Ces outils peuvent également découvrir des API fonctionnelles connectées à des applications décommissionnées.
Après les phases de découverte et d’inventaire, déterminez si les API données doivent rester en usage, à quel point elles sont sécurisées et comment les sécuriser à l’avenir. De là, remédiez aux API vulnérables ou décommissionnez celles qui ne sont plus nécessaires.
2. Évaluer le contrôle d’accès
Avec un inventaire en place, documentez et gérez les données auxquelles les API ont accès. Utilisez des outils tels que les logiciels de gestion de bases de données en mode cloud pour obtenir des informations sur les données actuellement accessibles aux APIs. Réattribuez ou renforcez les droits d’accès aux données des API selon les besoins via les mécanismes de contrôle d’accès dans la base de données.
Créez et appliquez des politiques de confiance zéro pour les API. Par exemple, utilisez des politiques de sécurité des données pour contrôler l’accès aux données. Dans une politique, définissez quels utilisateurs et rôles peuvent accéder à différents types de données, quand ils peuvent y accéder et où ils peuvent y accéder. Utilisez ces informations pour garantir que seules les API actives et sécurisées ont accès aux données auxquelles elles sont autorisées à accéder au sein d’une infrastructure.
De plus, déterminez si les données accessibles par les API décommissionnées devraient être davantage examinées ou détruites pour réduire le risque.
3. Authentification et autorisation
L’authentification et l’autorisation sont des principes importants pour la mise en œuvre de la confiance zéro. Examinez comment les utilisateurs et les appareils peuvent interagir avec les API. Considérez chaque API comme une ressource, et exigez que les utilisateurs et les appareils s’authentifient et s’autorisent avant de permettre l’accès.
L’accès aux API devrait utiliser des politiques d’accès granulaires basées sur le principe du moindre privilège. Pour authentifier le trafic API, mettez en œuvre des normes telles que OpenID et OAuth 2.0. Les méthodes d’authentification supplémentaires à envisager incluent les clés API, l’authentification HTTP et les jetons web JSON. La meilleure méthode d’authentification API varie en fonction des spécificités des API et de leurs usages. Par exemple, les clés API sont souvent utilisées pour des requêtes API plus simples et ne sont pas aussi sécurisées que OAuth ou les jetons web JSON.
4. Limitation du débit
Mettez en place une limitation de débit d’API pour aider à prévenir les attaques d’API, comme les attaques DDoS. Les attaquants utilisent les attaques en déni de service distribué pour inonder les services d’API avec un excès d’appels. Les attaques DDoS plus sophistiquées utilisent des bots pour déployer des appels d’API plus gourmands en CPU ou en mémoire afin de dégrader les services.
En outre, la limitation du débit contre les attaques en force brute restreint le nombre d’appels API par minute ou par heure, en utilisant une limite supérieure définie. Tout ce qui dépasse cette limite est automatiquement rejeté. Une limitation de taux plus sophistiquée restreint les appels API en fonction du jour, de l’heure, de la géolocalisation ou de la fréquence d’utilisation.
Pour une protection supplémentaire de l’API, mettez en œuvre des pratiques de sécurité d’API supplémentaires, telles que le chiffrement des requêtes et des réponses, l’enregistrement des API dans un registre d’API et la mise en réserve des clés d’API.