Bloquer les attaques de l'API
La prolifération des terminaux mobiles, des réseaux IoT et des systèmes en nuage a également modifié les architectures d'applications et leurs interfaces de programmation d'applications (API). Les API mal protégées et les données personnelles sont désormais menacées par un grand nombre d'attaques automatisées.
Comme les interfaces de programmation d'applications (API) permettent de communiquer très facilement entre les différentes architectures, leur utilisation a explosé ces derniers temps. Ainsi, la communication par API représente aujourd'hui plus de 80 % de l'ensemble du trafic Internet. Parallèlement, elles peuvent également être à l'origine d'une multitude de problèmes de sécurité.
La plupart des attaques sont dues à des problèmes d'authentification, des robots, des failles de sécurité ou des dénis de service (DoS). Environ un quart des entreprises exploitent encore des applications critiques basées sur des API sans aucune stratégie de sécurité capable de prévenir efficacement les attaques de pirates.
Il n'est donc pas étonnant que les attaques au niveau de l'API soient de plus en plus populaires. Notamment parce qu'elle est plus anonyme et que les API ne sont généralement pas aussi bien protégées que les sites web ou les applications mobiles comparables. Dans le pire des cas, ce ne sont pas seulement les données qui sont potentiellement menacées, mais aussi toute l'infrastructure. En exploitant une API vulnérable, les pirates peuvent accéder à l'ensemble d'un réseau en une seule attaque.
Si l'on parvient ensuite à étendre les autorisations, d'autres types d'attaques peuvent avoir lieu et les logiciels malveillants peuvent se propager dans tout le réseau. Certaines attaques, souvent à plusieurs niveaux, peuvent potentiellement conduire à la compromission des données les plus sensibles d'une entreprise, qu'il s'agisse de données personnelles (PII) ou de propriété intellectuelle (IP).
Attaques typiques de pirates sur les API Web : Les API sont principalement vulnérables aux types d'attaques suivants. Aucune d'entre elles n'est nouvelle. En raison de l'absence de mesures, elles sont malheureusement souvent très efficaces.
Attaques par injection : Une attaque par injection se produit lorsqu'un pirate informatique parvient à insérer des codes ou des commandes malveillants dans un programme. En général, là où les entrées habituelles de l'utilisateur (nom d'utilisateur ou mot de passe) sont attendues. Limiter les dommages en validant et en nettoyant toutes les données contenues dans les requêtes API et en limitant les données de réponse afin d'éviter toute fuite involontaire de données sensibles.
Cross-Site Scripting (XSS) : Il s'agit d'un type d'attaque par injection qui se produit lorsqu'une vulnérabilité permet à un pirate d'insérer un script malveillant (souvent JavaScript) dans le code d'une application web ou d'un site web. Limiter les dégâts en validant les entrées et en utilisant les fonctions d'échappement et de filtrage des caractères.
les attaques par déni de service distribué (DDoS) : Les attaques de ce type ont pour effet de rendre un réseau, un système ou un site web indisponible pour les utilisateurs. Cela se produit par exemple lorsqu'un site web est submergé par plus de trafic qu'il ne peut en gérer. Les points d'accès API sont justement des cibles DDoS extrêmement attrayantes pour les pirates. Limitation des dommages grâce aux limites de débit et de charge utile.
les attaques de l'homme du milieu (MitM) : Ces attaques se produisent lorsqu'un attaquant intercepte le trafic de données entre deux systèmes communicants. Dans le cas des API, les attaques MitM peuvent se produire entre le client (app) et l'API ou entre l'API et le point final. Limiter les dommages en chiffrant le trafic de données pendant la transmission.
Le bourrage de crâne : Les pirates utilisent des informations d'identification volées aux points d'extrémité d'authentification de l'API pour obtenir un accès non autorisé. Limiter les dommages en utilisant des flux de renseignements pour identifier le bourrage d'identité et mettre en œuvre des limitations de taux et contrôler les attaques par force brute.
Respect des pratiques de sécurité : Outre ces activités de réduction des risques, il est important que les entreprises prennent quelques autres mesures de base et appliquent des contrôles de sécurité éprouvés lorsqu'elles ont l'intention de partager publiquement leurs API. Pour cela, les entreprises doivent accorder une plus grande importance à la sécurité informatique. En effet, les entreprises ont beaucoup à perdre avec des API non sécurisées.
Pour ce faire, les API doivent être inventoriées et gérées. Qu'une organisation dispose d'une douzaine ou de centaines d'API disponibles publiquement, elle doit d'abord les connaître afin de les sécuriser et de les gérer. Pour cela, des scans du périmètre devraient être effectués. La gestion pourrait ensuite se faire en collaboration avec des équipes DevOps.
Des solutions d'authentification et d'autorisation solides devraient toujours être utilisées. Une authentification incorrecte se produit lorsque les API ne forcent pas l'authentification. Comme les API ouvrent un point d'entrée dans les bases de données d'une entreprise, il est particulièrement important que l'organisation contrôle strictement l'accès à celles-ci.
activités de réduction des risques : Les entreprises devraient toujours s'orienter vers le principe du moindre privilège. Ce principe de sécurité fondamental veut que les sujets (utilisateurs, processus, programmes, systèmes, appareils) ne se voient accorder que l'accès minimal nécessaire à l'exécution d'une fonction donnée. Ce principe devrait s'appliquer de la même manière aux API.
Un autre point est le cryptage du trafic de données avec TLS. Certaines entreprises choisissent de ne pas crypter les données de charge utile des API qui ne sont pas considérées comme sensibles (par exemple les données des services météorologiques). Mais si les API échangent couramment des données sensibles, le cryptage TLS doit être envisagé.
Les données qui ne doivent pas être partagées doivent être supprimées. Étant donné que les API sont essentiellement des outils de développement, elles contiennent souvent des clés, des mots de passe et d'autres informations. Celles-ci ne doivent pas être mises à la disposition du public. Cette étape est parfois négligée à la légère. Pour cela, des outils d'analyse devraient être intégrés dans les processus DevSecOps afin d'éviter la divulgation accidentelle d'informations secrètes.
Certaines API révèlent beaucoup trop d'informations. Par exemple, la quantité de données tierces renvoyées par l'API ou les informations qui en disent trop sur le point final de l'API. Par conséquent, les API ne devraient renvoyer que la quantité d'informations nécessaire à l'accomplissement de leur fonction.
Cet article spécialisé est paru dans l'édition imprimée de SicherheitsForum 3-2022.
Vous souhaitez lire les articles de ce numéro ? Alors fermez tout de suite ici un abonnement.