Sécurité des API : les meilleures pratiques pour sécuriser les données et l'infrastructure
Les API (ou interfaces de programmation d'applications) sont un moyen pour les développeurs d'appeler des informations provenant de sources externes afin de les importer dans les applications qu'ils créent. Elles simplifient le processus de codage, tout en donnant accès à une multitude de données et de ressources auparavant inaccessibles, d'où leur importance pour les développeurs d'applications. Les API sont également une véritable aubaine pour les fournisseurs de services.
Elles leur offrent de nouvelles sources de revenus en leur permettant de mettre des données et services de valeur à la disposition des développeurs. Enfin, les API profitent aux utilisateurs finaux et aux clients, toujours à la recherche d'applications innovantes, riches en fonctionnalités et interactives.
Comprendre les risques potentiels liés aux API
Les API devenant une composante fondamentale du développement d'applications modernes, la surface d'attaque ne cesse de s'étendre. Le cabinet Gartner estime que, d'ici 2022, l'utilisation frauduleuse des API constituera « le vecteur d'attaque le plus fréquent et entraînera des violations de données au niveau des applications Web d'entreprise ».
L'inconvénient des API Web publiques est qu'elles présentent des risques. De par leur conception, elles permettent à des personnes extérieures d'accéder aux données. Derrière chaque API se cache un endpoint, à savoir le serveur (et ses bases de données) qui répond aux requêtes.
Les endpoints sont similaires aux serveurs Web connectés à Internet et comportent les mêmes risques. La différence est que de nombreux sites Web emploient généralement une certaine forme de contrôle des accès, ce qui est beaucoup moins le cas des API.
Lire aussi : La stratégie "green coding" d'AXA passe par les API
Dans le pire des scénarios, ce ne sont pas seulement les données qui courent un danger, mais aussi l'infrastructure. Les API vulnérables sont le point de départ idéal à diverses attaques de détournement de réseau. Une attaque efficace (le plus souvent multiniveau) peut potentiellement compromettre des données sensibles, qu'il s'agisse d'informations d'identification personnelles ou d'éléments de propriété intellectuelle.
Attaques courantes contre les API Web
Les attaques les plus courantes, et les mesures associées d'atténuation des risques, sont les suivantes :
Les meilleures pratiques pour assurer la sécurité des API
En plus des mesures d'atténuation des risques décrites ci-avant, l'adoption de certaines pratiques de sécurité élémentaires, et l'application de contrôles de sécurité bien établis, sont primordiales si les entreprises envisagent de partager leurs API publiquement. Les principes suivants doivent notamment être observés :
· Privilégier la sécurité. La sécurité des API ne doit pas passer au second plan. Il s'agit d'une priorité à intégrer dans les API lors de leur développement.
· Tenir à jour un inventaire des API et les gérer. L'entreprise doit procéder à des analyses du périmètre pour identifier et inventorier ses API, puis les gérer en collaboration avec les équipes DevOps.
· Utiliser une authentification et une autorisation fortes. Un système d'authentification et d'autorisation inefficace ou inexistant constitue un problème majeur. Le processus d'authentification peut être compromis si les API n'imposent pas l'authentification (comme c'est souvent le cas des API privées, qui sont exclusivement réservées à un usage interne) ou qu'un facteur d'authentification (quelque chose que le client « connaît », « possède » ou « est ») est facilement piratable.
Sachant que les API fournissent un point d'entrée aux bases de données de l'entreprise, il est essentiel que celle-ci en contrôle strictement l'accès. Si cela est possible, il convient de recourir à des solutions basées sur des mécanismes d'authentification et d'autorisation solides et éprouvés tels qu'OAuth 2.0 et OpenID Connect.
· Appliquer le principe de moindre privilège. Un sujet (utilisateur, processus, programme, système, appareil) ne doit pas se voir accorder des droits d'accès supérieurs à ceux nécessaires pour remplir une fonction donnée.
· Chiffrer le trafic à l'aide de TLS. Le chiffrement TLS est indispensable aux entreprises possédant des API qui échangent régulièrement des données sensibles (identifiants de connexion, informations de carte de crédit, numéros de sécurité sociale, renseignements médicaux ou bancaires, etc.).
· Supprimer les informations non destinées à être partagées. Les API sont des composants qui s'adressent essentiellement aux développeurs. C'est pourquoi elles renferment souvent des clés, mots de passe et autres informations qu'il faut supprimer avant la mise à disposition publique. Or, cette étape est parfois négligée. Les entreprises doivent intégrer des outils d'analyse dans une composante fondamentale afin de limiter l'exposition accidentelle d'informations confidentielles.
· Ne pas exposer plus de données que nécessaire. Les API ne doivent pas renvoyer plus d'informations que nécessaire pour remplir leur fonction. Il est également important d'appliquer des contrôles d'accès aux données au niveau de l'API, de surveiller les données et d'obfusquer les informations confidentielles contenues dans la réponse.
· Valider les données en entrée. Les données en entrée ne doivent jamais être transmises des API aux endpoints sans une validation préalable.
· Limiter le trafic. La définition d'un seuil au-delà duquel les requêtes seront rejetées (par exemple, 10 000 requêtes par jour et par compte) peut empêcher les attaques par déni de service.
· Utiliser un pare-feu d'application Web capable de comprendre les charges utiles des API.
Les API s'imposent rapidement comme la méthode privilégiée de création d'applications modernes, en particulier pour les appareils mobiles et l'Internet des objets (IoT). Toutefois, face à l'évolution constante des méthodes de développement d'applications et aux pressions de l'innovation, certaines entreprises n'ont pas pleinement saisi les risques potentiels liés à la mise à disposition publique de leurs API.
La bonne nouvelle est que la plupart d'entre elles ont déjà instauré des mesures pour combattre des attaques bien connues telles que le Cross-Site Scripting, l'injection et le déni de service distribué. En cas de doute sur la façon de s'y prendre, il suffit de commencer par le haut de la liste et de descendre. Indépendamment du nombre d'API qu'elle décide de partager publiquement, l'entreprise ne doit jamais perdre de vue la mise en place en amont de règles de sécurité solides et leur gestion proactive au fil du temps.
Arnaud Lemaire, Expert en cybersécurité - F5.
Sur le même thème
Voir tous les articles Cybersécurité