Blog

Série Coders Conquer Security OWASP Top 10 API - Absence de contrôle d'accès au niveau des fonctions

October 7, 2020
Matias Madou, Ph.D.

Cette série d'articles se concentrera sur certaines des pires vulnérabilités liées aux interfaces de programmation d'applications (API). Elles sont si graves qu'elles figurent sur la liste des principales vulnérabilités API de l'Open Web Application Security Project (OWASP). Compte tenu de l'importance des API pour les infrastructures informatiques modernes, il s'agit de problèmes critiques que vous devez absolument éviter dans vos applications et programmes.

La vulnérabilité liée à l'absence de contrôle d'accès au niveau des fonctions permet aux utilisateurs d'exécuter des fonctions qui devraient être restreintes, ou d'accéder à des ressources qui devraient être protégées. Normalement, les fonctions et les ressources sont directement protégées dans le code ou par des paramètres de configuration, mais ce n'est pas toujours facile à réaliser correctement. La mise en œuvre de contrôles appropriés peut s'avérer difficile car les applications modernes contiennent souvent de nombreux types de rôles et de groupes, ainsi qu'une hiérarchie d'utilisateurs complexe.

Mais d'abord, pourquoi ne pas vous lancer et participer à notre défi ludique pour évaluer votre maîtrise de cette catégorie de bugs complexe ?

Examinons cela plus en détail :

Les API sont particulièrement vulnérables à ce défaut car elles sont hautement structurées. Les attaquants qui comprennent le code peuvent deviner comment implémenter des commandes qui devraient leur être restreintes. C'est l'une des principales raisons pour lesquelles la vulnérabilité de contrôle d'accès au niveau des fonctions/ressources figure dans le top 10 de l'OWASP.

Comment les attaquants peuvent-ils exploiter la vulnérabilité de contrôle d'accès au niveau des fonctions ?

Les attaquants qui soupçonnent que des fonctions ou des ressources ne sont pas correctement protégées doivent d'abord obtenir l'accès au système qu'ils souhaitent attaquer. Pour exploiter cette vulnérabilité, ils doivent avoir la permission d'envoyer des appels API légitimes vers le point de terminaison. Il existe peut-être une fonction d'accès invité de bas niveau ou un moyen de se connecter anonymement dans le cadre des fonctionnalités de l'application. Une fois cet accès établi, ils peuvent commencer à modifier les commandes dans leurs appels API légitimes. Par exemple, ils pourraient remplacer GET par PUT, ou changer la chaîne USERS dans l'URL par ADMINS. Encore une fois, comme les API sont structurées, il est facile de deviner quelles commandes pourraient être autorisées et où les placer dans la chaîne.

L'OWASP donne un exemple de cette vulnérabilité avec un processus d'inscription configuré pour permettre aux nouveaux utilisateurs de rejoindre un site web. Il utiliserait probablement un appel API GET, comme ceci :

GET /api/invites/{invite_guid}

L'utilisateur malveillant recevrait un JSON contenant des détails sur l'invitation, y compris le rôle et l'e-mail de l'utilisateur. Il pourrait alors remplacer GET par POST et élever son invitation d'utilisateur à administrateur en utilisant l'appel API suivant :

POST /api/invites/new
{"email":"shadyguy@targetedsystem.com","role":"admin"}

Seuls les administrateurs devraient pouvoir envoyer des commandes POST, mais si elles ne sont pas correctement sécurisées, l'API les acceptera comme légitimes et exécutera tout ce que l'attaquant souhaite. Dans ce cas, l'utilisateur malveillant serait invité à rejoindre le système en tant que nouvel administrateur. Après cela, il pourrait voir et faire tout ce qu'un administrateur légitime peut faire, ce qui ne serait pas une bonne chose.

Éliminer la vulnérabilité de contrôle d'accès au niveau des fonctions

La prévention de cette vulnérabilité API est particulièrement importante car il n'est pas difficile pour un attaquant de trouver des fonctions non protégées au sein d'une API structurée. Tant qu'il peut obtenir un certain niveau d'accès à une API, il peut commencer à cartographier la structure du code et créer des appels qui seront finalement exécutés.

Par conséquent, toutes les fonctions métier doivent être protégées à l'aide d'une méthode d'autorisation basée sur les rôles. La plupart des frameworks proposent des routines centralisées pour y parvenir. Si le framework que vous avez choisi ne le fait pas, ou si la routine intégrée est difficile à mettre en œuvre, il existe de nombreux modules externes conçus spécifiquement pour une utilisation facile. Quelle que soit la méthode choisie, assurez-vous d'implémenter l'autorisation côté serveur. N'essayez jamais de sécuriser les fonctions côté client.

Lorsque vous créez des autorisations au niveau des fonctions et des ressources, gardez à l'esprit que les utilisateurs ne doivent recevoir que les permissions nécessaires à leurs tâches, rien de plus. Comme toujours lors du codage d'API ou autre, appliquez le principe du moindre privilège. Cela sécurisera votre environnement et évitera de nombreux problèmes de cybersécurité à l'avenir.

Consultez les pages du blog Secure Code Warrior pour plus d'informations sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients contre les ravages d'autres failles de sécurité. Vous pouvez également essayer une démo de la plateforme de formation Secure Code Warrior pour garder toutes vos compétences en cybersécurité aiguisées et à jour.

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.