Pourquoi les Tests Automatisés Pour les Applications Sont Insuffisants

Partager sur linkedin
Partager sur facebook
Partager sur twitter

Table Des Matières

Avec le nombre croissant d’applications fournies aux consommateurs, la perspective d’effectuer des tests d’intrusion sur chaque application avec un budget limité devient de plus en plus impossible pour la plupart des organisations. Cela dit, les cyber risques liés aux applications ne seront jamais suffisamment atténués en s’appuyant uniquement sur des analyses automatisées en raison de la nature personnalisée des applications modernes. Cela peut mener votre équipe à prendre des décisions difficiles lorsqu’il s’agit d’établir une stratégie rentable pour la sécurité de leurs applications.

Cet article passe en revue les principaux défis liés aux tests de sécurité pour les applications, les diverses lacunes des analyses automatisées ainsi que les solutions potentielles pour les organisations disposant de ressources limitées pour sécuriser leurs applications mobiles ou Web contre les cyberattaques.

Quelle approche est la plus adaptée à vos besoins?

Tous les professionnels de l’industrie affirment que les applications ne peuvent être suffisamment sécurisées en s’appuyant uniquement sur des analyses automatisées. L’utilisation des analyses automatisées n’est pas un problème en soi, mais plutôt le contexte dans lequel elles sont souvent utilisées. Il peut constituer un excellent point de départ pour ceux qui ne disposent pas d’un budget suffisant pour effectuer des tests d’intrusion fréquents pour toutes leurs applications, mais il ne doit pas être votre seul recours. En général, trois approches principales sont utilisées pour tester la sécurité d’une application, et elles varient en termes de profondeur, de précision et de coût. Ces techniques doivent être utilisées à une fréquence différente en raison des différents résultats qu’elles produisent et doivent être combinées pour une stratégie de gestion des risques en béton.

  1. Scans automatisés
  2. Scans automatisés avec une validation manuelle
  3. Test d’intrusion (balayage automatisé avec validation manuelle, combiné à un test manuel)

Pour déterminer l’option qui convient à chacune de vos applications, il est courant d’adopter une approche basée sur le risque pour prioriser les applications. Cette approche basée sur le risque est utilisée pour déterminer le type d’évaluation dont chaque application a besoin  en fonction d’une variété de facteurs, tels que : la sensibilité des données traitées, les modifications récemment apportées à l’application, le nombre d’intégrations tierces, la date de la dernière évaluation approfondie, etc. En fonction de ces facteurs, vos intervenants peuvent décider d’opter pour une analyse entièrement automatisée ou un test manuel approfondi.

Bien qu’une approche basée sur le risque soit un moyen efficace de déterminer le type d’évaluation à utiliser pour une application, elle mène souvent à la conclusion que l’analyse automatisée seule est acceptable pour certaines applications, alors qu’en fait, c’est rarement le cas. La grande majorité des applications nécessite toujours un test d’intrusion manuel sur une base régulière, bien que sa fréquence puisse être ajustée en fonction d’une série de facteurs mentionnés précédemment.

Le point suivant passe en revue certaines des raisons pour lesquelles les analyses automatisées ne devraient pas être votre seul recours pour tester votre application.

Se fier aux scanners vous expose aux cyberattaques

Même si les analyses automatisées jouent un rôle important dans une stratégie de cybersécurité efficace, elles ne doivent pas être votre seule option pour évaluer la cybersécurité de votre application. La raison en est simple : la plupart des applications contiennent trop d’éléments propriétaires et une logique applicative développée sur mesure. Il est donc impossible pour un scanner automatisé de contextualiser ces vulnérabilités avec précision. Les validations effectuées par un scanner ne peuvent  identifier de manière précise et systématique les vulnérabilités les plus critiques présentes dans les applications modernes, telles que les contournements d’authentification ou les failles de contrôle d’accès. Ces vulnérabilités peuvent avoir des répercussions graves lorsqu’elles sont exploitées par des pirates et nécessitent des tests manuels pour être identifiées, car elles sont souvent liées aux propriétés et actions uniques de votre application.

Les tests automatisés apportent un faux sentiment de sécurité aux les organisations qui s’y fient à 100%, car ils créent l’illusion que leur application a été sécurisée avec succès, alors que de nombreuses vulnérabilités critiques ont été manquées. Comme le montrent les exemples ci-dessous, les tests automatisés, même avec une validation manuelle, peuvent exposer les organisations à des cyberattaques. Les résultats surlignés en vert représentent des vulnérabilités qui n’auraient pas été prises en compte si l’organisation s’était fiée uniquement aux analyses automatisées, ce qui l’aurait laissée ouverte à divers scénarios d’attaque.

Scénario de test n°1 : Application principale offerte au public

Niveau de Risque

Vulnérabilité

Méthodologie

Critique Contournement de l’autorisation par une clé contrôlée par l’utilisateur Test d’Intrusion
Élevé Faible contrôle d’accès – Page accessible sans authentification Test d’Intrusion
Élevé Server-side Request Forgery Scanner Automatisé
Élevé Cryptage non appliqué Scanner Automatisé
Modéré Contrôle d’accès faible – Navigation forcée Test d’Intrusion
Modéré Expiration insuffisante de la session Test d’Intrusion
Modéré Contrôle de sécurité côté client sans application côté serveur Test d’Intrusion
Modéré Attribut HTTP-only manquant dans le cookie de session Scanner Automatisé
Modéré Composants logiciels vulnérables Scanner Automatisé
Faible Divulgation d’addresses IP privées des noms d’hôtes Scanner Automatisé
Faible Divulgation d’informations – <Édité> Endpoints Scanner Automatisé

Dans cette application, une analyse automatisée aurait manqué 5 vulnérabilités importantes qui auraient pu permettre à un attaquant d’accéder aux données sensibles des clients et, dans certains cas, d’augmenter ses privilèges pour accéder à des fonctions administratives.

Scénario de test n°1 : Application E-commerce

Niveau de Risque

Vulnérabilité

Méthodologie

Critique Cryptage non appliqué Scanner Automatisé
Critique Escalade des privilèges par la manipulation de l’authentification Test d’Intrusion
Critique Un changement de mot de passe non vérifié entraîne une escalade des privilèges Test d’Intrusion
Critique Contournement de l’autorisation par une clé contrôlée par l’utilisateur Test d’Intrusion
Modéré Attribut sécurisé manquant dans le Cookie de session Test d’Intrusion

Dans cette application, un scanner aurait manqué les différentes façons dont un utilisateur pouvait accéder aux données et aux autorisations d’un autre utilisateur, laissant l’entreprise exposée à un incident potentiel.

Découvrez pourquoi 1,000+ organisations font confiance aux tests d'intrusion manuels de Vumetric.

Quelle que soit la complexité de votre application, nos experts sont reconnus pour identifier et vous aider à corriger les vulnérabilités applicatives les plus complexes pouvant conduire à une cyberattaque désastreuse.

Quand prioriser les tests manuels

Ces deux études de cas démontrent que, même si les analyses automatisées peuvent aider à identifier diverses vulnérabilités qui doivent être corrigées, elles sont loin d’être suffisantes pour sécuriser avec succès une application critique. Sans tests manuels, cette organisation aurait laissé de nombreuses vulnérabilités exploitables non corrigées, l’exposant ainsi à des cyberattaques potentiellement dommageables. Plutôt que de vous demander « Lesquelles de mes applications doivent être testées manuellement ? », vous devriez vous demander « À quelle fréquence chaque application a-t-elle besoin d’un test d’intrusion manuel ? ».

Compte tenu de l’évolution constante des cybermenaces, il est essentiel que toutes les applications soient testées manuellement par des spécialistes expérimentés et certifiés au moins une fois par an, ce qui vous permettra de rester au fait des derniers outils et techniques de piratage utilisés pour contourner les mesures de sécurité de votre application. C’est pour cette raison que de nombreux standards, telles que la norme PCI-DSS, exigent un pentest annuel pour rester conforme.

Par ailleurs, il est impératif que vos applications soient testées manuellement lorsque de nouvelles fonctionnalités sont introduites ou que des changements majeurs sont apportés à l’infrastructure, car de nouvelles vulnérabilités peuvent avoir été introduites et vous rendre vulnérable à un incident potentiel.

Quand utiliser les scanners automatisés

Si votre application a récemment fait l’objet d’un test d’intrusion manuel, on peut raisonnablement croire que votre application est suffisament sécurisée. Cependant, les technologies et les « frameworks » sur lesquels vos applications sont construites sont constamment confrontés à de nouvelles vulnérabilités, parfois critiques. Votre entreprise ne peut peut-être pas se permettre de réaliser des tests d’intrusions manuels à tous les mois pour identifier systématiquement ces nouvelles failles de sécurité, mais il est néanmoins essentiel que votre équipe corrige ces vulnérabilités sur une base régulière. C’est à ce moment que les analyses automatisées de vulnérabilités deviennent particulièrement utiles.

Les analyses automatiques sont bien adaptées pour identifier certains types de vulnérabilités applicatives figurant dans le top 10 de l’OWASP, notamment les scripts intersites, l’injection SQL et la falsification de requêtes côté serveur. Les analyses automatisées sont également efficaces pour identifier certaines erreurs de configurations, notamment une implémentation incorrecte de TLS ou l’absence d’en-têtes HTTP et d’attributs de cookies recommandés pour la sécurité. Les validations de ses scanners se font à l’aide de grandes bases de données de vulnérabilités associées à chacune de vos technologies, permettant de déceler toutes les vulnérabilités liés à la version du logiciel que vous avez actuellement d’installée. Ils peuvent être effectués de manière récurrente et ne nécessitent pas une expertise très spécialisée, ce qui en fait une solution rentable pour maintenir la sécurité de votre application jusqu’à ce que votre prochain test d’intrusion complet puisse être effectué.

Scanners automatisés avec validations manuelles

Le principal défaut des scanners réside dans la grande quantité de faux positifs qu’ils génèrent. Cela peut conduire à une utilisation inefficace de vos ressources puisque votre équipe peut passer du temps à corriger des vulnérabilités qui ne représentent que peu ou pas de risque pour votre entreprise. Une validation manuelle des analyses automatisées effectuée par un professionnel certifié vous permet d’ajuster les niveaux de risques attribué à chacune des vulnérabilités selon votre contexte et de prioriser vos prochaines étapes, ce qui vous aidera à économiser des ressources à long terme. Il est toutefois important de noter que la validation manuelle n’améliore pas la profondeur de l’analyse, ce qui ne les rend pas aussi fiables que les tests manuels pour sécuriser les applications critiques.

Un test d’intrusion, aussi connu sous le nom de « Pentest », est une tentative de piratage simulée qui identifie les possibilités pour les vrais attaquants de percer vos défenses. Cet exercice s’appuie généralement sur les outils utilisés par les pirates informatiques ainsi que diverses méthodologies professionnelles pour reproduire les étapes que les pirates modernes prendraient pour s’introduire dans vos systèmes informatiques.

De plus, un test tente d’exploiter vos vulnérabilités afin de déterminer leur impact potentiel sur votre entreprise si elles étaient utilisées dans un scénario de piratage réel. Ultimement, ils fournissent une liste de vulnérabilités avec leur niveau de risque respectif, ainsi que des recommandations techniques pour aider votre équipe à appliquer des mesures correctives et à se concentrer sur les vulnérabilités les plus critiques. Ces services permettent à votre organisation de répondre, entre autres, aux questions suivantes:

  • Un pirate informatique peut-il accéder à des informations sensibles ?
  • Un pirate peut-il détourner mes technologies pour commettre des actes malicieux ?
  • Une infection par un logiciel malveillant peut-elle se propager sur notre réseau ?
  • Un pirate peut-il altérer son rôle d’utilisateur dans une application afin d’obtenir des permissions administratives ?

Il existe de nombreux contextes dans lesquels un test d’intrusion doit être effectué. Voici quelques cas d’utilisation courante pour un pentest :

  • Dans le cadre du cycle de développement d’une application. (Pour tester la sécurité d’une nouvelle fonctionnalité/application)
  • Pour se conformer aux exigences de sécurité. (Tiers, PCI, ISO27001, etc.)
  • Pour protéger les données sensibles contre l’exfiltration.
  • Pour prévenir les infections par des logiciels malveillants. (logiciels de rançon, logiciels espions, etc.)
  • Pour prévenir les cyberattaques perturbatrices. (Comme le déni de service)
  • Dans le cadre d’une stratégie de gestion des risques liés à la cybersécurité.

Il est conseillé à toutes les entreprises de procéder à un test d’intrusion au moins une fois par an, ainsi qu’après toute mise à niveau ou modification importante du réseau de l’entreprise. Étant donné la rapidité avec laquelle de nouveaux exploits sont découverts, nous recommandons généralement de procéder à des tests trimestriels.

Diverses mesures sont prises au cours du projet pour prévenir l’impact potentiel de nos tests sur la stabilité de votre environnement technologique et la continuité de vos opérations commerciales. C’est pourquoi un plan de communication sera mis en place dès le début du projet afin de prévenir et d’atténuer tout impact potentiel. Un représentant de votre organisation sera désigné comme point de contact principal pour assurer une communication rapide en cas de situation ayant un impact direct sur la conduite de vos opérations quotidiennes, ou si des vulnérabilités critiques sont identifiées, pour lesquelles des mesures correctives doivent être mises en place rapidement.

Bien que nous utilisons une approche simple de notation des risques à 4 niveaux (critique, élevé, modéré, faible), notre évaluation des risques est  basée sur la norme du Common Vulnerability Scoring System (CVSS). Deux critères principaux sont pris en compte pour évaluer le niveau de risque de chaque vulnérabilité :

  • L’impact potentiel: L’impact potentiel d’une attaque qui exploite la vulnérabilité combiné à son effet sur la disponibilité du système, ainsi que sur la confidentialité et l’intégrité des données.
  • Exploitabilité: L’exploitabilité potentielle d’une vulnérabilité; une vulnérabilité qui est plus facile à exploiter augmente le nombre d’attaquants potentiels et donc la probabilité d’une attaque. Différents facteurs sont pris en compte lors de l’évaluation du potentiel d’exploitation d’une vulnérabilité (par exemple: vecteur d’accès, authentification, complexité opérationnelle, etc.)

Autres Articles du Blogue de Vumetric

test d'intrusion vs bug bounty

Test d’Intrusion vs Bug Bounty

En raison de la récente vague d’incidents liés aux ransomwares, les organisations et les …

Lire l'Article
Comment Protéger WordPress des Pirates

Comment Protéger WordPress des Cyberattaques Courantes

Les sites WordPress sont régulièrement piratés, car il s’agit de loin du logiciel le plus …

Lire l'Article
Comment sécuriser un site Wordpress

Comment Sécuriser Un Site WordPress (Version Débutante)

Selon WordFence, il y a 90,000 attaques par minute sur les sites WordPress. Bien que …

Lire l'Article

Besoin d'Un Pentest Manuel de Votre Web App?

Un spécialiste vous contactera pour:

Besoin d'Un Pentest Manuel de Votre Web App?

ou appelez nous directement au: