side-area-logo

Sécurité des applications web.

La majorité des applications web ou web services traitent des données personnelles et données business particulièrement sensibles. Mots-de-passe, coordonnées bancaires, adresses, emails, numéro de téléphone etc… transites via les applications web et s’exposent à des risques de cyberattaques qui peuvent avoir de lourdes conséquences pour votre société. Découvrez quelles sont les vulnérabilités les plus courantes et comment mettre en place des mesures de sécurité adaptées.

Pourquoi renforcer la sécurité des applications web ?

Exposées au public, B2C ou B2B, les applications web ont naturellement un terrain d’attaques plus étendue. Même en étant hébergées sur un serveur web sécurisé et exécutées sur un système d’exploitation fiable et sûr, des failles de vulnérabilités peuvent persister faute d’erreur de programmation ou de configuration du serveur de l’hébergeur. Ainsi, d’après un rapport sur la sécurité des applications web par Positive Technologies, 100% des applications analysées sont vulnérables dont 85% peuvent toucher des données utilisateurs.

Types de vulnérabilités des applications web :

 

Authentification

C’est le type attaque le plus direct et le plus évident. En effet, de nombreux problèmes peuvent surgir d’une authentification mal implémentée.

L’attaque la plus commune contre les systèmes d’authentification est l’attaque par la force brute qui vise à bombarder la page d’authentification via des outils spécifiques par des valeurs d’identifiants et mots-de-passe jusqu’à accéder à l’application. Ce type d’attaque est d’autant plus facilité si un message d’erreur de l’échec de l’authentification communique l’origine de l’erreur. En effet, l’usage de l’alerte « l’utilisateur n’existe pas » permet ainsi à l’attaquant de ne plus essayer de saisir des mots de passe pour cet utilisateur qui ne figure pas dans la base de données. De la même manière, l’usage de l’expression « Mot de passe incorrect » permet à l’attaquant de se focaliser sur cet utilisateur.

Il existe également d’autres variantes d’attaques par force brute telles que le « password spraying » qui consiste à tester un ensemble limité de mot-de-passes sur différents comptes. Par cette méthode, l’attaquant tente une série de mot-de-passes couramment utilisés sur un grand nombre de comptes, partant du principe qu’il est fort probable qu’un utilisateur utilise l’un de ces mots-de-passe. Malheureusement, c’est souvent le cas.

Pour sécuriser les tentatives d’intrusion par authentification, plusieurs solutions existent :

  • Sécuriser le système d’authentification en limitant le nombre de connexions non valides par utilisateur et en augmentant le délai entre chaque tentative de connexion.
  • Accepter des mots-de-passe de minimum 8 caractères afin d’augmenter les possibilités de combinaisons et utiliser un système d’authentification multi-facteurs (à minima 2), afin de vérifier que le processus de login est bien réalisé par un humain et non un bot. Un test Captcha, une question, un code de confirmation sms etc.
  • Mieux encore, utiliser un système d’authentification sans mot-de-passe à double facteur, qui assure un niveau de sécurité des plus élevés, grâce à des algorithmes cryptographiques les plus robustes. Découvrez notre solution d’authentification sans mot-de-passe, résistante contre les attaques de types Brute Force, Man in the Middle, Phishing, Keyloggers et même en cas de piratage de vos propres serveurs !

 

Contrôle des droits d’accès

Les utilisateurs d’une application, clients, partenaires ou collaborateurs, sont censés être dignes de confiance, mais se reposer sur cette confiance serait un très gros risque pour société. En effet, les utilisateurs de votre application peuvent à un moment donné devenir « malveillants » pour les raisons suivantes :

  • Ils peuvent vouloir accéder aux données d’un autre utilisateurs pour diverses raisons.
  • Ils peuvent vouloir accéder à des fonctionnalités qui sont réservées à un autre catégorie d’utilisateurs. Par exemple, pour accéder à des fonctionnalités payantes, gratuitement.
  • Ils peuvent vouloir éviter une procédure, en utilisant une fonctionnalité qui ne devrait pas être accessible.

La gestion de ces droits d’accès est ainsi essentielle pour la sécurité de vos applications web. En effet, de nombreux attaquants peuvent profiter d’un défaut de conception ou d’une erreur de configuration, pour élever leur privilège et accéder à des fonctionnalités, ressources ou données sensibles, qui ne devrait pas lui être accessibles. Ces vulnérabilités pourraient ainsi causé beaucoup de torts à l’image de votre société et directement à votre business, s’ils arrivaient à voler des données confidentielles, exécuter des commandes, déployer des virus etc.

Pour vérifier le niveau de sécurité de vos droits d’accès, Arcan Security, effectue des tests d’intrusion de vos applications web.

Injection

Les attaques par injonction sont les plus fréquentes car elles sont  facilités par le fonctionnement même d’une application web qui requièrent des sources externes pour fonctionner : paramètres, variables d’environnement, web services, données utilisateurs etc. Si ces données ne sont pas préalablement vérifiées, filtrées ou assainies, vous ouvrez la porte à de nombreuses vulnérabilités. On parle alors d’injection. Les plus connues sont les injections du langage de requête structuré (SQL) qui est une méthode d’injection de code permettant de modifier ou récupérer des données dans les bases de données SQL. Ainsi, en insérant des instructions SQL, l’attaquant est capable d’exécuter des commandes pour voler ou détruire des données sensibles mais aussi prendre contrôle de l’application et du serveur, dans le cas de faille sérieuse. Par ailleurs, d’autres types d’injection peuvent également s’effectuer au niveau des commandes de systèmes, des traitement de fichier, d’analyse de données etc.

Ces attaques sont les plus à craindre car elles sont les plus fréquentes. Pour prévenir ce risque, utilisez des librairies et frameworks conçues et de les tenir régulièrement à jour.

Failles XSS (Cross Site Scripting)

Une faille XSS (Cross Site Scripting) est une vulnérabilité fréquente des applications web, qui peuvent permettre à un attaquant d’injecter un contenu malveillant dans votre application via le code JavaScript. Supposons que votre back-office soit très robuste et sécurisé, les attaquants se tourneront sur le FrontOffice pour lancer l’offensive.

Cela lui permettra notamment de voler une session, contrôler les comptes, modifier l’interface de votre application, téléverser des logiciels malicieux etc.

Ce type d’attaque est très inquiétant car les failles XSS sont simples à exploiter et sont facilement détectables via des outils qui permettent de le faire automatiquement.

Pour se protéger, et limiter les failles XSS, il est recommandé d’utiliser des frameworks existants et conformes plutôt que de créer son propre framework.

 

Faille d’un service tiers :

Ce type d’attaque ne concerne que les applications qui font appel aux services tiers (web services, API), comme c’est généralement le cas. Les failles proviennent ainsi des composants externes, qui sont également exposées à toutes les attaques citées précédemment : injection, CSS, authentification, configuration etc.

Généralement, ces web services sont eux-mêmes sécurisés, surtout en matière de système de paiements électroniques car ils sont soumis à des standards en matière de sécurité. Néanmoins, un problème de configuration de ces systèmes d’interconnexion tiers peuvent compromettre la sécurité de votre application web.

Pour renforcer votre sécurité, il sera alors nécessaire d’être attentif aux dernières mises à jour des services tiers, pour bénéficier des dernières corrections en matière de sécurité.

Composant tiers

Tout comme il est important de choisir des webservices et APIs sécurisés, les composants tiers sont également à ne pas négliger. En effet, les composants tiers sont les failles préférées des attaquants car la majorité des applications web en contiennent. En effet, utiliser des librairies ou framework est une pratique courante chez les développeurs puisqu’elle permet un gain de temps considérable sur le développement des web applications. Néanmoins, ces composants sont également exposés aux attaques, et pour couronner le tout : on remarque que plus il est populaire, plus il est l’objet d’attaques.

Pour contrer ses attaques, il est ainsi préférable de privilégier le développement maison et ainsi limiter l’utilisation de ces composants tiers. Si toutefois, cela n’est pas possible, il faudra se montrer très attentif aux dernières mises à jour en listant tous les composants utilisés par votre application web et en réalisant une veille technologique assidue.

Les problèmes de configuration :

Une erreur de configuration de votre application web peut aussi bien mettre en danger votre société. En effet, les attaquants peuvent exploiter un défaut de paramétrage de librairies, frameworks, serveurs, BDD, réseau, services tiers, code, programmation, stockage… pour prendre contrôle de vos systèmes, et ce grâce à des outils pointus leur permettant d’automatiser la tâche.

De nombreux sites WordPress en ont subis les conséquences, suite à des configurations souvent laisser par défaut, alors que les paramètres de sécurité sont faibles.

Pour éviter les erreurs de configuration, … ?

Logs :

Si les logs servent principalement pour identifier les raisons et/ou origine d’une panne informatique, ils sont également très utiles pour veiller à la sécurité d’une application web et ainsi reconnaître rapidement les menaces en cas d’attaque.

En effet, les logs permettront de stocker un historique des évènements notamment tentatives d’intrusion, erreurs de contrôle d’accès etc. Il est ainsi primordial de les mettre en place et les accompagner par des emails de notification en cas d’évènements suspects pour prévenir les attaques.

Audits, tests d’intrusion et diagnostic express

Vous l’aurez compris, de nombreuses failles peuvent exposer votre application web, et société à de sérieux problèmes.  Pour s’assurer de la bonne sécurité de votre application web, il est recommandé d’effectuer des tests d’intrusion périodiquement. Ces tests consistent à évaluer la sécurité de votre application web en inspectant toutes les failles potentielles.

Pour ce faire, je me mets dans la peau d’un attaquant  et teste toutes les méthodes d’attaques possibles. Plusieurs méthodes existent : des tests d’intrusion en boite noire, des tests en boite gris ou des tests en boite blance. (à expliquer). A la fin du test, un rapport complet vous ai envoyé détaillant la méthodologie employée, les failles identifiées (classifiées par niveau de criticité : faible, important, critique) et mes recommandations pour les corriger. Ce rapport est accompagné d’une présentation en visio ou en présentiel, nous permettant d’échanger sur les problèmatiques et résultats du test de sécurité de votre application web.

Ces tests d’intrusion convient à toutes les applications web et toutes les entreprises : des starts-up aux grandes entreprises.  Pour plus d’informations, n’hésitez pas à me contacter pour échanger sur vos enjeux de sécurité.

Nous contacter

pour une meilleure sécurité