Dans le monde numérique d’aujourd’hui, il est de plus en plus important de veiller à ce que les informations de votre entreprise ne puissent pas être découvertes et détournées par des tiers. C’est pourquoi vous devez sans cesse améliorer votre sécurité en effectuant des tests visant à détecter d’éventuelles vulnérabilités. Nous savons que la sécurité de l’information peut être complexe ; c’est pourquoi, dans cet article, je vais vous expliquer la différence entre l’analyse des vulnérabilités et les tests d’intrusion. J'espère que cela vous permettra de mieux comprendre ces tests et leur importance pour votre entreprise.
Analyse des vulnérabilités
L'analyse de vulnérabilité est entièrement automatisée : il vous suffit d'indiquer les ressources à analyser. Vous indiquez au système ce qu'il doit rechercher, puis tout se déroule automatiquement. En effectuant régulièrement des analyses de vulnérabilité, vous obtenez une bonne vue d'ensemble de votre niveau de maturité, par exemple à chaque mise en production. Si vous effectuez des mises en production chaque semaine, il peut être judicieux d'investir dans un outil d'analyse de vulnérabilité dynamique ou statique.
Lors d’un scan de vulnérabilités, le système recherche activement des failles de configuration ou des vulnérabilités en se basant sur des lacunes ou des erreurs réelles au niveau des logiciels, des serveurs, des clients, des commutateurs, des routeurs, etc. Il s’agit souvent d’un problème fondamental dans le code : soit vous avez commis une erreur sans vous en rendre compte, soit vous avez omis quelque chose, par exemple dans la configuration.
Le principal avantage d’un scan automatisé est qu’il permet de détecter de nombreuses failles faciles à corriger, telles que des authentifications défaillantes, des attaques de type « cross-site scripting » (XSS) ou d’autres types d’injections. C’est un bon début.
On trouve des exemples des vulnérabilités les plus courantes dans les applications web, entre autres, dans le Top 10 de l’OWASP (Open Web Application Security Project) ou dans le Top 25 de SANS.
Tests d'intrusion
Les tests d’intrusion, également appelés « pen tests », constituent un travail manuel. Ils vont bien au-delà de la simple vérification des vulnérabilités existantes. Un test d’intrusion permet de pénétrer plus profondément dans le système pour identifier les interconnexions et acquérir une compréhension plus fine de la logique métier. Lorsque vous comprenez la logique de développement et les ensembles de solutions, vous êtes susceptible de découvrir des failles supplémentaires, car le facteur humain ne peut jamais être ignoré. Nous savons que les erreurs humaines sont inévitables lors de l’installation, du développement et de la gestion des systèmes. Ces informations ne pourraient jamais être détectées par un outil d’analyse automatisé, car celui-ci ne dispose pas de la capacité de réflexion rationnelle propre à l’être humain.
Le contrôle d’accès en est un exemple. Un outil automatisé d’analyse d’applications web ne peut pas déterminer si les données auxquelles il a accès constituent une faille de sécurité ou non ; si un « utilisateur standard » peut accéder à des informations auxquelles seul un administrateur devrait avoir accès, cela signifie que les contrôles d’accès sont défaillants. Un être humain peut le déterminer en analysant les données et ce qui se passe.
Petit récit tiré d’un cas réel :
« Lors d’une de nos précédentes missions, nous avons effectué des tests d’intrusion sur une application web accessible sur Internet et avons découvert plusieurs vulnérabilités, notamment une injection SQL sans authentification. Cette vulnérabilité permettait de lire des données issues de la base de données, telles que les identifiants des utilisateurs et leurs hachages. Après une analyse plus approfondie, il s’est avéré que les hachages avaient été altérés. Une fois que nous avons compris comment, nous avons pu cracker les mots de passe, nous connecter à l’application web, télécharger des fichiers et exécuter du code sur leur serveur web.
Depuis le serveur web, nous avons obtenu un accès complet à l’ensemble du réseau de production, ce qui nous a permis d’accéder aux contrôleurs de domaine. L’un d’entre eux présentait plusieurs vulnérabilités et, bien qu’il ait été remplacé par un nouveau contrôleur de domaine et un nouveau domaine, il était toujours utilisé pour l’ancien domaine. L’ancien et le nouveau domaine entretenaient une relation de confiance bidirectionnelle, ce qui signifie que, que l’on dispose ou non d’un compte dans un domaine, on a accès aux ressources de l’autre. C’est en raison d’une combinaison de mauvaises configurations, d’erreurs flagrantes dans les logiciels, d’un manque de séparation logique entre les systèmes exposés à l’extérieur et les systèmes internes, ainsi que du fait que le client n’avait pas entièrement mis hors service l’ancien domaine, que nous avons pu pénétrer aussi profondément dans le réseau et les systèmes de l’entreprise. »
Si vous vous étiez contenté d’effectuer un scan de vulnérabilités sur l’application sans réaliser de tests d’intrusion, vous auriez, au mieux, détecté une injection SQL, mais pas les autres failles.
Problèmes récurrents que l’on observe dans les entreprises
Un problème courant au sein des entreprises est qu’elles ne considèrent ces tests que comme une étape d’un processus imposé par des exigences telles que la norme PCI-DSS ou le RGPD. Une fois que l’entreprise a éliminé les mentions « rouge » (risque élevé) et « violet » (critique) de son rapport, elle considère que le travail est terminé. L’importance n’est pas accordée à ce que l’on fait des résultats ; l’accent est mis sur le fait de cocher les exigences.
Il est dangereux de se contenter d’effectuer un scan de vulnérabilités ou un test d’intrusion en adoptant une approche de type « case à cocher ». En réalité, dans de nombreux cas, les environnements restent généralement inchangés l’année suivante et les mêmes vulnérabilités ainsi que les mêmes erreurs de configuration persistent. Les mêmes tests sont effectués et révèlent les mêmes vulnérabilités, ce qui signifie que le niveau de maturité n’augmente pas d’un iota. Comme dans l’exemple de l’application web ci-dessus : si l’entreprise s’était contentée d’effectuer les tests sans donner suite aux résultats, cela aurait pu mal tourner.
Une meilleure communication et une meilleure compréhension des tests et des résultats pourraient résoudre ce problème. La sécurité n’est pas facile à comprendre, ce qui rend d’autant plus important de veiller à examiner correctement les rapports et à demander de l’aide pour en clarifier le contenu. Si vous ne comprenez pas la signification des résultats, il est difficile de prendre des mesures.
Le risque de ne pas effectuer d’analyse de vulnérabilité ou de tests d’intrusion
Si vous n’avez pas une vision claire de l’état de la sécurité au sein de vos différents systèmes, vous ne savez pas non plus quelles vulnérabilités existent ni jusqu’où un intrus peut s’introduire dans vos systèmes. Tant que cette image reste floue, vous courez toujours le risque d’être exposé à une atteinte à la sécurité. Cela peut à son tour entraîner des pertes extrêmement coûteuses pour votre entreprise. Non seulement en termes financiers, mais aussi en termes de réputation et d’efforts nécessaires pour réparer les dégâts. Osez-vous vraiment prendre ce risque ?
En résumé
Pour simplifier, vous pouvez considérer l’analyse des vulnérabilités comme la première étape et les tests d’intrusion comme la suivante. L'analyse est le prélude au test d'intrusion, sans l'aspect humain de ce dernier. Elle sert de base et met en évidence les vulnérabilités connues existantes. Une fois ce travail préparatoire effectué, vous devez approfondir votre analyse pour comprendre comment les développeurs et l'administration ont configuré les systèmes, identifier les connexions et vous assurer qu'il n'y a pas de portes dérobées.
Si votre dispositif de sécurité actuel présente des lacunes et que vous ne maîtrisez pas ce que vous exposez sur Internet, vous courez un risque accru que des personnes ayant l’intention de prendre le contrôle de votre infrastructure ou de s’emparer de vos données obtiennent un accès non autorisé. Il est donc essentiel de réaliser des tests de manière continue et d’agir en fonction de leurs résultats. Cessez de considérer cela comme une simple obligation à respecter et commencez à y voir un effort à long terme visant à garantir un système et un environnement plus sûrs.
Comme nous l’avons dit, nous savons qu’il peut être difficile de tout maîtriser en matière de sécurité informatique. C’est pourquoi nous avons organisé un webinaire consacré à la sécurité des applications, au cours duquel nous aborderons des thèmes clés tels que l’intégration de la sécurité dans le processus de développement, les attaques les plus courantes et les cas où il convient d’opter pour l’open source. Inscrivez-vous en cliquant sur l’image.