Qu'est-ce que la sécurité des API ? (API security)
La sécurité des API englobe les stratégies, les procédures et les solutions employées pour défendre les API contre les menaces, les vulnérabilités et les intrusions non autorisées.
Une interface de programmation d'application, ou API, est un type de logiciel qui permet la communication entre différents logiciels et services.
Il existe quatre architectures API principales :
REST est une architecture uniforme et sans état dans laquelle le client et le serveur fonctionnent indépendamment et interagissent via HTTP.
SOAP est plus complexe et consomme plus de bande passante que REST, fonctionnant exclusivement avec le format de données XML.
Le protocole RPC , ou Remote Procedure Call, permet d'exécuter des procédures sur un serveur distant au sein d'un système distribué.
GraphQL est une infrastructure fortement typée et basée sur des schémas avec son langage de requête unique, permettant aux clients d'obtenir des données spécifiques dans une seule requête.
Les API sont soumises à un large éventail de menaces. Certaines viennent de l'extérieur, comme les intrusions non autorisées de pirates informatiques, mais d'autres viennent de l'intérieur et peuvent perturber les systèmes ou laisser l'API ouverte aux attaques. La sécurité des API fait référence aux stratégies, aux ensembles d'outils et aux procédures conçus pour assurer la sécurité des API.
La sécurité des API se concentre sur trois secteurs de sécurité importants :
sécurité des applications
sécurité de l'information
sécurité du réseau
La sécurité des API peut également contribuer à résoudre des problèmes tels que le contrôle d'accès, la sécurité basée sur l'identité, la validation du contenu, la limitation du débit, la limitation des requêtes, la surveillance et l'analyse, ainsi que la protection des données. Étant donné que les API servent de points d'entrée pour les applications ou les réseaux, la sécurité des API est primordiale pour protéger les organisations contre les menaces potentielles.
API security can also help address issues such as access control, identity-based security, content validation, rate limiting, request throttling, monitoring and analytics, and data protection. Given that APIs serve as entry points for applications or networks, API security is paramount to shield organizations from potential threats.
Pourquoi la sécurité des API est-elle importante ?
Les API sont désormais fondamentales dans le développement de logiciels modernes. La plupart des organisations utilisent des API pour échanger des données et interagir avec des composants logiciels internes ou externes.
Cependant, les API sont vulnérables aux cyberattaques et sont souvent la cible de pirates informatiques qui cherchent à exploiter leurs vulnérabilités à des fins malveillantes. Les API endommagées ou exposées figurent parmi les principales causes de violations de données importantes.
Assurer la sécurité d'une API signifie préserver la confidentialité de ses données et garantir que seuls les utilisateurs autorisés peuvent y accéder. Cela implique de préserver l'intégrité des données pendant et après la transmission. Cette prise de conscience accrue a amplifié l'attention portée à la sécurité des API.
Risques de sécurité des API : le top 10 de l'OWASP
Le Top 10 de l'OWASP est une liste de risques de sécurité organisée pour aider les développeurs à concevoir des applications en tenant compte de la sécurité. Voyons comment ces points se rapportent aux API :
Autorisation au niveau des objets défaillante : les API peuvent se connecter aux identifiants des objets de contrôle et, sans sécurité adéquate, l'API peut révéler ces identifiants, les laissant ainsi exposés aux attaques. Par exemple, en 2018, le service postal des États-Unis (USPS) a connu une vulnérabilité en raison de contrôles d'accès et d'autorisation faibles, compromettant les données critiques de plus de 60 millions d'utilisateurs.
Authentification défectueuse : sans mécanismes d’authentification robustes, les attaquants peuvent accéder aux API et les utiliser à des fins malveillantes. En juin 2021, une API exposée sans authentification appropriée a été exploitée, compromettant les données personnelles d’environ 1,3 million de personnes. Une simple authentification par jeton ou par clé aurait pu contrecarrer cette attaque.
Autorisation au niveau des propriétés d'objets défectueuse : les développeurs renvoient parfois des données superflues, en supposant que les API ne seront accessibles qu'aux utilisateurs authentifiés. Cependant, les attaquants peuvent exploiter ces données excédentaires. HealthEngine a souffert de cette vulnérabilité dans son API de feedback, divulguant les informations personnelles de plus de 59 000 patients.
Consommation illimitée de ressources : chaque fois qu'une demande d'API est effectuée, une certaine quantité de ressources est utilisée, notamment la bande passante du réseau, la mémoire et le calcul. Cela présente une vulnérabilité interne, car des demandes illimitées peuvent surcharger une API, augmenter les coûts opérationnels ou même provoquer un refus de service pour les utilisateurs légitimes.
Autorisation au niveau des fonctions rompue : de nombreux systèmes ont des politiques de contrôle d'accès complexes. Si les autorisations au niveau des fonctions ne sont pas mises en œuvre, les attaquants peuvent accéder à des fonctions non autorisées. Un cas récent en septembre 2022 a vu un attaquant infiltrer l'infrastructure informatique d'Uber en raison de cette vulnérabilité.
Accès illimité aux flux commerciaux sensibles : un accès excessif aux flux commerciaux critiques peut perturber les opérations. En 2011, CITI a subi une violation de données affectant 350 000 titulaires de cartes nord-américaines en raison d'une attaque qui a manipulé ses flux commerciaux.
Falsification de requête côté serveur (SSRF) : les vulnérabilités SSRF se produisent lorsqu'une API récupère des données à partir d'une URL définie par l'utilisateur non validée, ce qui permet potentiellement aux attaquants de contourner les mesures de sécurité. Les piles technologiques modernes, telles que Docker et Kubernetes, sont particulièrement vulnérables.
Mauvaise configuration de sécurité : les configurations d'API non sécurisées peuvent conduire à diverses attaques qui exposent les données et permettent un accès non autorisé. Ces vulnérabilités proviennent d'une multitude de facteurs, tels que des correctifs manquants, des systèmes obsolètes ou des détails d'erreur exposés.
Gestion d'inventaire inappropriée : les API exposant souvent plus de points de terminaison que les applications Web traditionnelles, il est essentiel de conserver une documentation précise. Une mauvaise gestion d'inventaire peut résulter d'un stockage non sécurisé, d'un cryptage faible ou de contrôles d'accès inadéquats.
Consommation non sécurisée des API : la consommation des API dépend souvent de la confiance que les développeurs accordent aux réponses des tiers. De nombreux développeurs pensent que les API tierces, en particulier celles proposées par des entreprises réputées, sont intrinsèquement sécurisées. Cette confiance mal placée peut entraîner des vulnérabilités. Au lieu de cibler directement vos API, les attaquants peuvent exploiter ces intégrations tierces. Des incidents, comme les attaques SSRF, peuvent se manifester en raison d'une validation et d'une désinfection inadéquates des réponses. Par exemple, en janvier 2021, Parler a été confronté à des problèmes de sécurité en permettant aux API tierces d'accéder aux données sans authentification. Les attaquants ont deviné des URL contenant des informations sensibles et ont accédé aux données sans authentification.
Conseil pro
En comprenant ces risques et en mettant en œuvre des mesures de sécurité appropriées, les organisations peuvent atténuer considérablement les menaces potentielles associées aux API. Consultez le Top 10 de la sécurité des API de l'OWASP pour obtenir une analyse détaillée de chaque risque.
Sécurité des API pour SOAP, REST et GraphQL
Chacune des trois principales architectures d’API (SOAP, REST et GraphQL) a ses propres implications en matière de sécurité.
API Architecture
Security Implications
Sécurité de l'API SOAP
SOAP est un protocole de messagerie simplifié basé sur XML, conçu pour l'échange de données structurées dans des réseaux informatiques décentralisés. Il est adaptable à différents protocoles tels que HTTP et SMTP. Les couches de sécurité de SOAP intègrent à la fois la sécurité de la couche de transport (comme HTTPS) pour crypter les données en transit et la sécurité au niveau des messages, y compris les signatures numériques XML, pour maintenir l'intégrité des messages. En suivant les spécifications Web Services (WS), qui offrent des directives standardisées, SOAP fournit des fonctionnalités de sécurité robustes telles que WS-ReliableMessaging pour une meilleure gestion des erreurs.
Sécurité de l'API REST
Les API REST utilisent JSON pour la représentation des données et s'appuient sur HTTP/s pour les transferts de données, ce qui simplifie le processus de développement. Étant donné que REST ne dispose pas de mécanismes de sécurité inhérents, sa sécurité dépend de la conception de l'API. La mise en œuvre de mesures de sécurité dans la transmission des données, le déploiement et les interactions avec les clients est essentielle. En règle générale, les API REST s'appuient sur des protocoles tels que HTTPS et utilisent l'authentification basée sur des jetons pour améliorer la sécurité.
Sécurité de l'API GraphQL
GraphQL, un langage API open source, fonctionne à la fois comme langage de requête et comme environnement d'exécution de requêtes. Son schéma strictement typé garantit la cohérence des données. Cependant, sa flexibilité peut être une arme à double tranchant : des requêtes complexes et non filtrées peuvent égarer les serveurs et potentiellement exécuter des requêtes malveillantes. L'adoption de pratiques de sécurité telles que la limitation, la définition de limites de profondeur de requête et la mise en œuvre de délais d'expiration de requête peuvent atténuer ces vulnérabilités.
Conseil pro
Votre entreprise développe-t-elle des applications avec GenAI ? Comme tout autre service multi-locataire, les applications intégrant GenAI peuvent souffrir de vulnérabilités API traditionnelles. Découvrez comment déployer des modèles d'IA génératifs dans le cadre de vos applications cloud multi-locataires en toute sécurité .
Normes de sécurité des API
La clé pour assurer la sécurité de vos API est de respecter de meilleures normes de sécurité des API. Vous pouvez commencer par respecter les points suivants :
Découverte et inventaire des API
Pour protéger une API, vous devez d'abord être conscient de son existence. La découverte et l'inventaire automatisés continus à l'aide de scanners sont essentiels pour détecter tous les points de terminaison d'API et comprendre leurs paramètres et types de données.
Identifier les risques et les vulnérabilités des API
Les API chiffrées sont moins sujettes aux violations. L'utilisation de signatures garantit que seuls les utilisateurs autorisés peuvent accéder aux données et les modifier. Des méthodes telles que les protocoles de chiffrement TLS protègent efficacement les données des API.
Mettre en œuvre une authentification et une autorisation fortes
L'authentification vérifie l'utilisateur, généralement à l'aide de clés API ou d'une authentification d'accès de base, tandis que l'autorisation garantit que les utilisateurs accèdent uniquement aux données autorisées, souvent via le contrôle d'accès basé sur les rôles (RBAC). Ces deux éléments sont essentiels pour une sécurité API robuste.
Utiliser des limites de débit et des limitations
Les attaques DoS et DDoS représentent de graves menaces pour vos opérations, et les API en sont un vecteur courant. En appliquant des quotas et des limites de débit, vous pouvez contrecarrer ces menaces et d'autres risques, tels que le vol d'identifiants.
Utiliser une passerelle API
Les API gérées réduisent les vulnérabilités. Étant donné que les passerelles API servent de médiateurs intermédiaires pour les clients et les services back-end, elles peuvent authentifier le trafic et améliorer la sécurité de votre API.
Comme nous l'avons vu, la sécurité des API commence par la découverte et l'inventaire des API. Les solutions existantes pour la sécurité des API reposent principalement sur des agents et des scanners réseau. Cependant, ces derniers ne permettent pas une visibilité complète et sont également complexes à déployer. Avec le Wiz Dynamic Scanner , Wiz a apporté une approche nouvelle et moderne de la sécurité des API.
Avec son analyse sans agent pour tous les principaux fournisseurs de cloud, Wiz Dynamic Scanner analyse toutes les couches cloud de votre déploiement, permettant de détecter tous les composants à risque et les chemins d'attaque qui pourraient être présents dans votre environnement cloud.
Cette approche vous offre une visibilité complète pour identifier toutes vos API exposées à Internet, ainsi que leur contexte associé afin que vous puissiez avoir une compréhension complète de ce qui est exposé et quel pourrait être le rayon d'explosion si elles étaient exploitées.
Pour obtenir une compréhension plus claire et voir comment il se comporte dans votre environnement, planifiez une démonstration avec Wiz pour voir par vous-même comment il fonctionne et toutes les fonctionnalités qu'il offre.
Une approche contextuelle et sans agent de la sécurité des API
Découvrez comment, avec Wiz, les clients peuvent désormais simplement répondre à la question de savoir où j'ai exposé les API dans mon environnement avec tout le contexte associé à l'environnement d'exécution.
Data risk management involves detecting, assessing, and remediating critical risks associated with data. We're talking about risks like exposure, misconfigurations, leakage, and a general lack of visibility.
Cloud governance best practices are guidelines and strategies designed to effectively manage and optimize cloud resources, ensure security, and align cloud operations with business objectives. In this post, we'll the discuss the essential best practices that every organization should consider.
Data detection and response (DDR) is a cybersecurity solution that uses real-time data monitoring, analysis, and automated response to protect sensitive data from sophisticated attacks that traditional security measures might miss, such as insider threats, advanced persistent threats (APTs), and supply chain attacks.