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.
- Scans automatisés
- Scans automatisés avec une validation manuelle
- 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.
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.