BLOG

Protéger les entreprises signifie protéger les API

Miniature de Lori MacVittie
Lori MacVittie
Publié le 4 novembre 2019

Les API créent de la valeur grâce à leur capacité d’abstraction au niveau de la couche applicative. Par exemple, l’utilisation d’une API pour abstraire l’accès aux systèmes et données internes offre un moyen de simplifier et d’automatiser l’accès aux systèmes informatiques existants. Les API sont également le moyen par lequel l’intégration dans les écosystèmes – et avec les partenaires – est réalisée. Les API sont également aujourd’hui le principal moyen d’automatisation et d’orchestration, ce qui en fait l’une des technologies clés d’un parcours de transformation numérique réussi. Ainsi, les API sont devenues stratégiques pour les entreprises en tant que source d’innovation, d’exécution efficace et de monétisation.

Monétisation 

Dans une économie numérique, tout ce qui peut générer des revenus sera éventuellement monétisé. C'est particulièrement vrai pour les API, et les recherches indiquent que l'économie des API est forte.

  • Plus d’une entreprise sur dix (11 %) génère plus de la moitié de ses revenus à partir d’API et d’implémentations liées aux API. ( Valeur commerciale des API
  • Pas moins de 59 % des entreprises génèrent entre 26 % et 50 % des revenus de leur organisation grâce aux API. ( Valeur commerciale des API )

Intégration

Les API ont supplanté les ESB et les portails Web comme principal moyen d’intégration interentreprises. Le recours aux API en tant que composant stratégique de la réussite des entreprises dans l’économie numérique est bien documenté.

    o Plus de 60 % conviennent que l’intégration des API est essentielle à leur stratégie commerciale. ( État de l'intégration des API 2018 )

    o Plus de 50 % de toutes les collaborations B2B se dérouleront via l’intégration d’API. ( État de l'intégration des API 2018 )

    o 51 % citent le « partenariat avec des organisations externes » comme l'un des principaux facteurs de leur décision de développer des API.
        ( État de l'API 2019

La dépendance des architectures commerciales et d’applications modernes telles que les microservices sur les API en fait une cible particulièrement attrayante pour les attaquants qui comprennent l’intérêt d’obtenir l’accès (ou le contrôle) de ces points de terminaison. Ce risque nécessite d’accorder une plus grande attention à la couche API, notamment pour sécuriser l’accès aux fonctions métier qu’elles représentent.

L'authentification n'est pas facultative

La sécurité des API commence par l’accès. Et cela signifie authentification. Les API ouvertes ne doivent pas être une description d’un modèle d’accès API. C'est un attribut qui signifie que l'API est bien documentée et suit une norme. L’invocation des API doit toujours nécessiter une authentification et, idéalement, une autorisation.

Il existe plusieurs options disponibles et avant de choisir, vous devez vous renseigner sur les capacités et les limites de chacune d'entre elles.

  • BIEN: HTTP basique
    L'authentification HTTP de base est la valeur par défaut. C'est le moyen le plus simple et le plus courant d'appliquer l'authentification du trafic basé sur HTTP, comme la plupart des API actuelles. L’inconvénient de l’authentification de base est qu’elle nécessite des informations d’identification et, comme nous le savons tous, les informations d’identification sont souvent partagées entre plusieurs applications. Les identifiants volés (ou exposés) sont de plus en plus utilisés par les attaquants pour obtenir l’accès aux systèmes. La force des mots de passe et l’endroit et la manière dont ils sont stockés jouent également un rôle dans la sécurité globale de cette méthode. C'est mieux que rien.
  • MIEUX: Clés API
    Les clés API sont un cran au-dessus de l'authentification de base HTTP car elles sont émises (et, on suppose, suivies) par l'émetteur. Les clés API sont distribuées et utilisées à diverses fins au-delà de la sécurité, notamment le comptage et la facturation. Ils sont généralement statiques, ce qui signifie qu’ils pourraient potentiellement être extraits et utilisés par un tiers pour se faire passer pour un utilisateur légitime. Le partage des clés constitue également un véritable problème. Tout comme les identifiants, les clés peuvent être partagées par les collègues et la famille. Et plus ils se propagent, plus ils risquent d’être récupérés et utilisés par quelqu’un avec des intentions malveillantes.
  • MEILLEUR: Jetons expirés
    L’utilisation de jetons est devenue plus courante à mesure que le nombre d’API a augmenté. Les deux favoris aujourd’hui sont les jetons OAuth (utilisés exclusivement pour les API) et JWT (JSON Web Tokens). L’utilisation de JSON comme format standard pour l’échange de revendications sur l’accès aux ressources basées sur HTTP et son applicabilité en dehors des API a conduit JWT à devenir l’un des mécanismes les plus répandus d’authentification et d’autorisation aujourd’hui. Il dispose même d'une RFC (7519) . Tout comme son cousin XML, SAML, une assertion JSON est émise qui décrit la portée d'accès et le rôle de l'utilisateur authentifié. Il est hautement portable et, surtout, il est doté d'une date/heure d'expiration afin qu'il ne puisse pas être facilement utilisé pour usurper l'identité d'un utilisateur authentifié. L’inconvénient est que les jetons nécessitent plus de travail pour être intégrés et ne sont pas toujours pris en charge nativement. Cela peut conduire à des erreurs de mise en œuvre qui introduisent involontairement un risque d’exploitation.

La sécurité des API peut être implémentée directement dans une application ou, mieux, dans une passerelle API. Une passerelle API peut protéger davantage les API avec des fonctionnalités telles que la limitation du débit (pour empêcher les attaques par déni de service accidentelles ou intentionnelles) et l'autorisation. L'autorisation restreint l'accès aux API en autorisant l'accès à des appels d'API spécifiques uniquement à des clients spécifiés, généralement identifiés par des jetons ou des clés API. Une passerelle API peut également limiter les méthodes HTTP utilisées et enregistrer les tentatives d'abus d'autres méthodes afin que vous soyez au courant des tentatives d'attaques.

Notre dépendance aux applications signifie que les API sur lesquelles elles s’appuient doivent également être protégées. Si vous n’avez pas encore commencé avec les bases, il est temps de vous y mettre. Si vous souhaitez protéger votre entreprise, vous aurez besoin d’API sécurisées.