Qu’est-ce que l’OWASP ?

quest-ce-que-lowasp
quest-ce-que-lowasp

Qu’est-ce que l’OWASP ?

334 lecteurs
Sommaire de l'article

Qu’est-ce que l’OWASP ?

L’Open Web Application Security Project tient à jour une liste des problèmes de sécurité les plus urgents pour les applications web.

Qu’est-ce que c’est ? L’OWASP ?

L’Open Web Application Security Project (OWASP ) est une organisation internationale à but non lucratif qui se consacre à la sécurité des applications Web. L’une des principales valeurs de l’OWASP est que toutes ses ressources sont librement disponibles et accessibles via son site Web, ce qui permet à chacun d’améliorer la sécurité des applications Web. Le matériel qu’ils fournissent comprend des documents, des outils, des vidéos et des forums. Leur projet le plus connu est sans doute leur OWASP Top 10.

OWASP Top 10 ?

Le Top 10 de l’OWASP est un rapport fréquemment mis à jour qui met en évidence les risques de sécurité associés aux applications Web et se concentre sur les 10 principaux risques de sécurité critiques. Ce rapport a été créé par un groupe composé d’experts en sécurité du monde entier. L’OWASP déclare que le Top 10 est un « document de sensibilisation » et suggère à toutes les entreprises d’intégrer le rapport dans leurs processus de sécurité afin de minimiser ou de réduire les risques de sécurité.

Voici les menaces de sécurité qui ont été identifiées dans le rapport OWASP Top 10 2017 :

1. Attaques par injection SQL

Les attaques par injection SQL se produisent lorsque des informations non fiables sont transmises à un interprète par la saisie sur un formulaire ou une autre soumission de données à une application de site Web. Par exemple, les attaquants pourraient saisir des codes de base de données SQL dans un formulaire Web qui nécessite un nom d’utilisateur en texte brut. Si la saisie du formulaire n’est pas sécurisée, le code SQL sera exécuté. C’est ce qu’on appelle une attaque par injection SQL.

Les attaques par injection peuvent être contrecarrées en validant et/ou en nettoyant les informations soumises par les utilisateurs. (La validation consiste à supprimer les données suspectes, tandis que l’aseptisation consiste à supprimer les éléments suspects des données). En outre, l’administrateur de la base de données peut mettre en place des contrôles pour limiter la quantité de données qu’une attaque par injection pourrait révéler.

2. Authentification frauduleuse

Les failles de sécurité qui existent dans les systèmes d’authentification (connexion) pourraient permettre aux pirates d’accéder aux comptes des utilisateurs, et même de compromettre l’ensemble du système en utilisant le compte administrateur. Par exemple, un pirate pourrait prendre la liste des milliers de combinaisons de mots de passe et de noms d’utilisateur découvertes lors d’une violation de données, puis utiliser un programme pour tester ces combinaisons sur un compte afin de voir si l’une d’entre elles fonctionne.

Voir Aussi  Définition Malware

Parmi les moyens de limiter les failles de sécurité dans l’authentification, citons l’exigence d’une authentification à deux facteurs (2FA) et la limitation ou le retardement des tentatives de connexion multiples en utilisant la restriction de taux.

3. Le risque d’exposition aux informations sensibles

Si les applications web ne parviennent pas à protéger les informations sensibles, comme les informations financières ou les mots de passe, les pirates sont en mesure d’accéder aux données, puis de les vendre à des fins malveillantes. Une méthode populaire pour voler des informations sensibles consiste à utiliser une attaque de type « man-in-the-middle ».

Le risque de fuite de données est réduit par le cryptage de toutes les données sensibles et la désactivation de la mise en cache* des informations sensibles. En outre, les développeurs d’applications web doivent veiller à ne pas stocker les données sensibles pendant trop longtemps.

*La mise en cache est l’acte de sauvegarder temporairement des données afin de permettre leur réutilisation. Par exemple, les navigateurs Web stockent généralement les pages Web dans des caches de sorte que si un utilisateur visite ces pages dans un laps de temps déterminé, le navigateur n’a pas à les télécharger depuis Internet.

4. Entités XML externes (XEE)

Il s’agit d’une attaque contre une application sur le web qui traite une entrée XML*. L’entrée peut faire référence à une entité externe qui tente d’exploiter une faille dans l’analyseur syntaxique. Dans ce cas, le terme « entité externe » désigne des dispositifs de stockage tels que le disque dur. Un analyseur XML peut être trompé en envoyant des données à une entité externe non fiable qui pourrait transmettre des données sensibles directement à un attaquant.

La meilleure façon d’arrêter les attaques XEE est de faire en sorte que les applications web utilisent un type de données moins compliqué, comme JSON**, ou au minimum de mettre à jour les analyseurs XML et de bloquer les entités externes dans l’application XML.

*Le XML, également connu sous le nom de langage de balisage extensible, est un langage de balisage conçu pour être lisible par les machines et par les humains. En raison de sa complexité ainsi que de ses faiblesses en matière de sécurité, il est éliminé dans une variété d’applications basées sur le Web.

**JavaScript Object Notes (JSON) est une notation de base lisible par l’homme qui est couramment utilisée pour envoyer des données via Internet. Bien qu’il ait été initialement créé pour être utilisé avec JavaScript, JSON est un format neutre et peut être lu par une variété de langages de programmation.

5. Le contrôle d’accès interrompu

Le contrôle d’accès est le système qui régule l’accès aux données ou aux fonctions. Les problèmes de contrôle d’accès peuvent permettre aux utilisateurs de contourner les autorisations et d’exercer des fonctions en tant qu’utilisateurs privilégiés, comme les administrateurs. Par exemple, l’application d’un site Web peut permettre à un utilisateur de modifier le compte d’utilisateur auquel il est inscrit en changeant simplement une partie d’une URL sans autre vérification.

Voir Aussi  Définition Peer-to-peer

Le contrôle d’accès peut être protégé en s’assurant qu’une application web utilise des jetons d’autorisation et les soumet à un contrôle strict.

De nombreux fournisseurs de services émettent des jetons d’autorisation lorsque les utilisateurs se connectent. Toute demande d’accès privilégié faite par les utilisateurs nécessitera un jeton d’autorisation. Il s’agit d’une méthode permettant de s’assurer que la personne est bien celle qu’elle prétend être et de ne pas avoir à saisir continuellement les informations de connexion.

6. Mauvaise configuration de la sécurité

La mauvaise configuration de la sécurité est la vulnérabilité la plus fréquente de la liste et est généralement due à des paramètres par défaut ou à l’affichage d’erreurs excessivement explicites. Par exemple, une application peut présenter aux utilisateurs des erreurs excessivement descriptives, qui peuvent indiquer des vulnérabilités au sein de l’application. Ce problème peut être résolu en supprimant toutes les fonctionnalités qui ne sont pas utilisées dans le code, et en veillant à ce que les erreurs soient plus génériques.

7. Scénario intersite

On parle de vulnérabilités de type « cross-site scripting » lorsque les applications web permettent aux utilisateurs d’appliquer un code personnalisé à un parcours ou à un site web qui est visible par d’autres utilisateurs. Cette vulnérabilité peut être exploitée afin d’exécuter un code JavaScript malveillant dans le navigateur Web d’une victime. Par exemple, un attaquant peut envoyer à la victime un courriel qui semble provenir d’une banque de confiance, mais qui contient une adresse vers le site Web de la banque. Ce lien peut contenir un code JavaScript malveillant qui s’affiche au milieu de l’URL. Si le site web de la banque n’est pas correctement sécurisé contre le cross-site scripting, ce code malveillant peut être exécuté par le navigateur web de la victime après qu’elle ait cliqué sur le lien.

Les stratégies pour réduire le cross-site scripting consistent à éviter les requêtes HTTP non fiables, ainsi qu’à vérifier et/ou à nettoyer le contenu créé par les utilisateurs. Les cadres de développement web modernes comme ReactJS et Ruby on Rails offrent également une protection intégrée contre les scripts intersites.

8. Désérialisation incertaine

Cette menace vise la multitude d’applications web qui sérialisent et désérialisent fréquemment des données. La sérialisation est le processus qui consiste à extraire des objets du code de l’application, puis à les transformer en un format adapté à divers usages, comme le stockage des données sur disque ou leur diffusion en continu. La sérialisation est un peu comme l’emballage des meubles dans des cartons avant un déménagement, puis la désérialisation est le processus d’emballage des cartons et de remise en place des meubles après le déménagement. Une désérialisation non sécurisée revient à demander à l’entreprise de déménagement de modifier le contenu des cartons avant de les emballer.

Voir Aussi  A la découverte de l’industrie des casinos amérindiens

Une attaque par désérialisation non sécurisée résulte de la désérialisation de données provenant de sources non fiables, et peut causer de graves dommages, comme des attaques DDoS ou des attaques par exécution de code à distance. Bien que certaines mesures puissent être prises pour identifier les attaquants, comme la surveillance de la désérialisation et la mise en œuvre de contrôles de type, la seule méthode de défense contre les attaques non sécurisées consiste à arrêter le processus de désérialisation des données provenant de sources non fiables.

9. Composants utilisés pour exploiter des faiblesses connues

De nombreux développeurs web utilisent aujourd’hui des composants tels que des frameworks et des bibliothèques dans leurs applications pour le web. Ces composants aident les développeurs à éviter le travail inutile et offrent les fonctions essentielles. Les exemples les plus populaires sont les frameworks frontaux, comme React, et les petites bibliothèques qui permettent de partager des icônes ou des tests A/B. Certains attaquants recherchent des faiblesses dans ces composants qu’ils exploitent ensuite pour planifier des attaques. Certains des composants les plus connus se retrouvent sur des centaines de milliers de sites. L’attaquant qui trouve un problème de sécurité dans l’un d’eux pourrait rendre des centaines de milliers de sites web vulnérables à une attaque.

Les fabricants de composants fournissent souvent des mises à jour et des correctifs de sécurité pour corriger les vulnérabilités connues. Cependant, les développeurs d’applications Web ne disposent pas toujours des versions ou des correctifs les plus récents pour les composants exécutés sur leurs applications. Pour éviter d’exécuter des composants présentant des faiblesses connues, les développeurs doivent supprimer de leurs applications tous les composants inutiles et s’assurer qu’ils reçoivent les composants d’une source fiable et qu’ils sont à jour.

10. Enregistrement et surveillance insuffisants

De nombreuses applications web ne font pas assez d’efforts pour détecter les violations de données. Le délai habituel de détection d’une violation est d’environ 200 jours après que la violation ait eu lieu. Cela laisse amplement le temps aux attaquants de faire des dégâts avant une réponse. L’OWASP suggère aux développeurs web de mettre en place une surveillance, un enregistrement et une réponse aux incidents afin de s’assurer qu’ils sont au courant de toutes les attaques qui se produisent sur leurs sites web.

4.6/5 - (14 votes)
Marine
Marine

Passionnée par l'entreprenariat depuis plus de 10 ans, je suis à la tête d'une société française visant à favoriser la communication des entreprises. Également attiré par la finance, je partage mes conseils et expériences au travers mes articles de blog.

Retour en haut