10 principaux risques de sécurité

Les organismes spécialisés dans la sécurisation des données ont identifié les principaux risques qui peuvent affecter des solutions web. Chez Ozytis, nous portons une attention particulière à les sécuriser. Voici les 10 principaux risques de sécurité identifiés par l’OWASP, organisme spécialisé dans la sécurisation des applications web.

1 – Injection

Une attaque par injection consisterait à envoyer des données non fiables par le biais d’une commande ou d’une requête. L’objectif serait de duper l’interpréteur de façon à l’amener à exécuter des actions normalement non autorisées, ou d’accéder à des données protégées. Les injections pourraient, sans s’y limiter, concerner des commandes SQL, NoSQL, shell ou encore LDAP.

2 – Piratage de session

Les fonctions liées à l’authentification et à la gestion des sessions utilisateurs pourraient être mal configurées. Or, de mauvaises pratiques en la matière pourraient permettre à des attaquants d’accéder aux informations confidentielles telles que mots de passe, clés ou jetons de session et, ainsi, d’usurper l’identité des utilisateurs.

10 principaux risques de sécurité

3 – Exposition des données sensibles

Certaines applications Web et API ne protègent pas suffisamment les données sensibles telles que les informations financières, médicales ou à caractère personnel. Or, une fois exposées, ces données peuvent être exploitées dans le cadre de divers délits, comme les fraudes à la carte bancaire ou l’usurpation d’identité. C’est pourquoi elles doivent faire l’objet d’un chiffrement et d’autres protections spécifiques, que ce soit au moment de leur stockage que lors d’un transit entre le serveur et le navigateur.

4 – Attaques XXE

Les documents XML pourraient contenir des références à des entités dites « externes », c’est-à-dire à des ressources externes au document. Des parseurs XML obsolètes ou mal configurés rendraient possible l’interprétation de ces entités et permettent ainsi à un attaquant : d’accéder à n’importe quel fichier local ou distant ; de scanner les ports système ; d’exécuter du code à distance ; de provoquer des dénis de service.

5 – Mauvaise définition des contrôles d’accès

Les profils d’utilisateurs (et les autorisations liées) pourraient être mal définis, ce qui aurait pour conséquence de permettre à n’importe quel utilisateur d’accéder à des fonctionnalités ou données qui ne le concernent pas. Par exemple, en cas de mauvaise configuration des droits d’accès, un simple utilisateur pourrait se voir accorder des privilèges normalement interdits, ou réservés aux administrateurs : accès à d’autres comptes, affichage d’informations confidentielles, modification des données d’autres utilisateurs, modification des droits d’accès, etc.

6 – Configuration inadéquate des fonctionnalités liées à la sécurité

Les causes sont généralement : l’utilisation de paramètres de sécurité par défaut ou personnalisés peu sécurisés (voire inexistants), des comptes de stockage dans le cloud non protégés, des en-têtes HTTP incorrects, ou encore des messages d’erreur trop explicites et qui mettent à jour des informations sensibles. Pour contrer ce problème, il est primordial de configurer correctement l’ensemble des systèmes d’exploitation, frameworks, librairies et applications, mais aussi d’appliquer les mises à jour et correctifs dès leur publication.

7 – Cross-Site Scripting (XSS)

Une attaque XSS pourrait survenir au sein d’applications Web qui n’appliquent aucune validation ou transformation des données saisies par les utilisateurs. Elle permettrait à un individu malveillant d’exécuter des scripts au sein du navigateur de sa victime, afin de pirater ses sessions, de modifier le contenu d’un site ou de rediriger vers des sites malveillants.

8 – Désérialisation non sécurisée

Cette vulnérabilité permettrait à un attaquant d’exécuter du code à distance (conséquence la plus courante), mais pourrait aussi être exploitée pour perpétrer des attaques par rejeu, des injections de code frauduleux ou une élévation des privilèges.

9 – Utilisation de composants comportant des vulnérabilités connues

Les composants (comme les librairies, frameworks et autres modules logiciels), profitent des mêmes privilèges d’exécution que l’application. Une faille qui affecterait l’un d’eux pourrait donc nuire à la sécurité de l’ensemble de l’application ou de l’API et entraîner, par exemple, une perte importante de données, voire une prise de contrôle frauduleuse du serveur.

10 – Journalisation et surveillance insuffisantes

Conserver une trace des erreurs survenues lors de l’exécution de l’application (journalisation) permet des réactions opportunes et efficaces aux incidents. En l’absence de réponses rapides et adéquates, un individu aurait tout le temps de perpétrer d’autres attaques, de maintenir une présence frauduleuse dans le système cible et d’extraire, d’altérer ou de détruire des données.

Cet article est inspiré d’un article original de l’OWASP.

Partagez cet article

Partager sur facebook
Facebook
Partager sur twitter
Twitter
Partager sur linkedin
LinkedIn

« un bon développeur doit pouvoir comprendre le métier du client et se mettre à la place de l’utilisateur de la solution. Mais cela ne suffit pas car il doit en permanence garder à l’esprit que la maintenance de ce code doit être facile car un autre développeur est susceptible de reprendre le code après lui ».

Grégoire Larreur
Gérant Associé – Direction technique

En poursuivant votre navigation, vous acceptez nos cookies destinés à l’affichage d’annonces liées à vos intérêts et à nos statistiques. Pour aller plus loin, découvrez notre politique de cookies ou gérez vos cookies.