monsitj - Fotolia
Une passerelle pour renforcer la sécurité des API
Les passerelles API sécurisent les API en limitant le débit, en assurant une protection contre les attaques DDoS, etc. Découvrez-en plus sur ces avantages, ainsi que sur les meilleures pratiques en matière de sécurité des passerelles API.
Les API sont un vecteur d’attaque lucratif pour les cybercriminels et les hackers malveillants. En fait, le fournisseur de sécurité API, Salt Security, a découvert que 4 845 attaquants d’API ont opéré en décembre 2022 – une augmentation de 400 % par rapport à six mois auparavant. Pour réduire le risque d’une violation de sécurité basée sur une API, le déploiement, la configuration et la sécurité d’une passerelle API doivent faire partie intégrante de toute stratégie de sécurité.
L’importance des APIs
Les API stipulent comment les applications logicielles interagissent entre elles et sont largement utilisées dans les microservices. Uber, Amazon, Spotify et la plupart des autres grandes entreprises s’appuient sur une architecture de microservices où des microservices autonomes gèrent un élément spécifique d’une activité métier. Cette approche simplifie considérablement le développement, le déploiement et la maintenance de produits et services complexes.
Les API permettent aux équipes de développement de concevoir des produits qui interagissent avec un service sans nécessiter une connaissance approfondie de son fonctionnement. Par exemple, l’API publique de Google Maps permet à quiconque d’accéder à plus de 20 pétaoctets de données via une simple requête API. Alors qu’une demande pour trouver l’emplacement d’un restaurant peut sembler simple, la valider, collecter des réponses complexes de plusieurs services (localisation sur la carte, photos, avis, directions, horaires d’ouverture, etc.) et les combiner en une seule réponse est extrêmement complexe. C’est pourquoi les API d’entreprise sont déployées avec des passerelles API, des intergiciels qui permettent l’accès à des services et des données disparates, via un seul appel API, et renvoient une seule réponse unifiée.
Capacités des passerelles API
Une passerelle API est une couche logicielle qui agit comme l’unique interface entre les demandes des clients gérées par plusieurs systèmes en arrière-plan. Elle envoie les demandes aux services appropriés en utilisant le routage des demandes, la composition et la traduction de protocoles, puis elle renvoie les données demandées.
Les passerelles API fournissent également d’importantes fonctions d’administration et de service, ainsi que des fonctionnalités de sécurité. Elles améliorent les performances, la disponibilité et l’évolutivité, tout en simplifiant la manière dont les différents services se connectent et partagent des données. Les passerelles API ajoutent également une couche supplémentaire de protection, car elles empêchent le contact direct entre les clients et les services en arrière-plan.
Les principaux avantages administratifs et de service fournis par une passerelle API sont les suivants :
- Routage. La passerelle API achemine les demandes entrantes en fonction de facteurs tels que le chemin de la demande, les en-têtes et les paramètres de la requête. Selon le type de client et d’appareil, la passerelle peut acheminer la demande vers des API spécifiques à l’appareil. Le routage est également utile lors des déploiements « bleu/vert » et « canary » pour éviter les temps d’arrêt lors de la mise à jour des services.
- Équilibrage de charge. Une passerelle API peut répartir efficacement les demandes sur plusieurs instances d’un service back-end (on parle de load balancing) afin d’améliorer l’évolutivité et la disponibilité et de garantir aux utilisateurs un service cohérent et fiable.
- Mise en cache. Une passerelle peut mettre en cache les données fréquemment demandées afin d’améliorer les performances des API, de sorte que les temps de réponse soient plus rapides et que les services back-end reçoivent moins de demandes répétées.
- Traduction de protocoles. Une passerelle API peut traduire les protocoles pour simplifier les communications entre les clients et les services back-end. Par exemple, si une demande nécessite une réponse en JSON, la passerelle convertit automatiquement la réponse d’un service qui utilise XML. Elle peut également adapter le contenu d’une réponse en fonction du type d’appareil ou d’utilisateur à l’origine de la demande.
Les fonctionnalités spécifiques à la sécurité d’une passerelle API sont notamment :
- Application de la politique de sécurité. Parce qu’elles donnent accès à des données et à des ressources sensibles, les APIs sont la cible de tous les types d’attaquants. Les passerelles API, qui gèrent l’ensemble du trafic API, constituent un excellent point de contrôle à partir duquel il est possible d’appliquer des politiques et des règles liées à l’authentification, l’autorisation et le contrôle d’accès protégeant les services sous-jacents.
- Protection contre les attaques DDoS. Le contrôle du nombre d’appels à l’API dans un laps de temps donné garantit que la capacité de traitement du back-end n’est jamais dépassée, même si un attaquant tente d’inonder les microservices de trafic. Le fait de disposer d’une visibilité complète sur chaque demande permet également à la passerelle API de détecter les attaques par force brute. En outre, elle peut servir de coupe-circuit pour interrompre les connexions si les demandes risquent d’échouer en raison de problèmes liés aux services connexes.
- Supervision. Comme toutes les demandes passent par la passerelle API, celle-ci peut collecter des données pour fournir des analyses et des informations sur le trafic des API et l’utilisation des services, afin de faciliter la sécurité, la détection des erreurs et la maintenance.
Pratiques de référence
Pour garantir la sécurité de votre passerelle API, du trafic API et des services réseau, il est important de mettre en œuvre les bonnes pratiques suivantes, qui permettent à votre passerelle de gérer toute tentative de perturbation ou d’attaque de l’un de ses composants :
- Authentification centralisée. Les API permettent d’accéder à des données sensibles et restreintes, c’est pourquoi une authentification forte est essentielle. La centralisation de l’authentification au niveau de la passerelle élimine le risque que chaque microservice tente de mettre en œuvre de manière sécurisée une tâche complexe. Elle facilite également l’écriture, la lecture et la maintenance du code. Il est encore mieux d’utiliser un serveur d’authentification centralisé pour gérer les processus d’authentification et d’émission de jetons.
- Chiffrement du trafic. La mise en œuvre de HTTPS pour l’ensemble du trafic API est préférable au niveau de la passerelle API et non au niveau des microservices individuels. Cela garantit la cohérence et évite la nécessité d’une configuration répétitive sur plusieurs systèmes, évitant ainsi les erreurs potentielles.
- Validation des requêtes aux APIs. La validation des requêtes aux API avant que la passerelle ne les transmette aux services back-end permet d’arrêter les demandes erronées et d’atténuer le risque d’attaques par injection. Normaliser les réponses d’erreur réduit aussi le risque d’exposer des informations sensibles dans ces messages.
- Limitation du débit. En contrôlant le nombre de requêtes aux APIs, une passerelle peut empêcher les requêtes malveillantes comme légitimes de submerger les services. Cela permet d’éviter que les attaques DDoS ne rendent les services indisponibles et de limiter les défaillances en cascade dans un système surchargé.
- Surveillance et analyse. Les passerelles API peuvent générer des journaux d’exécution et d’accès, puis les envoyer à un système de gestion des informations et des événements de sécurité (SIEM) pour une analyse plus approfondie ainsi que la détection de menaces et de problèmes potentiels. La visibilité et les mesures que la passerelle peut fournir sur l’utilisation des API aident à résoudre les problèmes d’accès et de demande des clients, tout comme elles aident à repérer si des API obsolètes sont toujours utilisées.
Une sécurité supplémentaire associée aux passerelles API peut contribuer à mieux protéger les API. Par exemple, les passerelles gagnent à être placées derrière un pare-feu d’application web (WAF). Un WAF peut limiter l’accès et bloquer les requêtes provenant d’adresses IP malveillantes connues et filtrer les requêtes mal formées ou suspectes afin de se protéger contre les exploits web courants, tels que les attaques par injection SQL.
Pour réduire la contagion en cas d’attaque et restaurer ou déboguer plus facilement un microservice, déployez toujours des passerelles API distinctes et dédiées pour chaque cas d’utilisation, comme l’accès interne et les appareils IoT. Cela réduit la surface d’attaque possible et facilite la configuration de règles et de politiques dédiées à chaque type de service particulier.