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.
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.