Les tests de site vous permettent de trouver les vulnérabilités et les bogues qui peuvent être exploités par les attaquants. Si vous êtes administrateur de site, nous vous recommandons d'ajouter les tests de pénétration à votre liste d'outils et de rechercher régulièrement les vulnérabilités afin de vous assurer que vos sites sont entièrement sécurisés. Les problèmes découverts vous aideront à corriger les faiblesses.
Les tests de sécurité impliquent un grand nombre d'outils et de tâches différents. Dans cet article, nous allons aborder les aspects fondamentaux de la recherche de vulnérabilités dans un site web. Grâce à ces instructions, vous serez en mesure d'assurer la sécurité de vos ressources.
Les tests de pénétration et la recherche de vulnérabilités sur un site web impliquent plusieurs actions. Il ne suffit pas de lancer un outil et de tester le site, vous avez besoin de la bonne approche pour vous aider à recueillir autant d'informations que possible sur la sécurité de votre système.
Les principales étapes sont les suivantes
Voyons maintenant ce qu'il faut faire à chacune de ces étapes et quels sont les outils à utiliser pour ce faire. Il est préférable de ne pas installer tous ces programmes séparément, mais d'utiliser un environnement prêt à l'emploi pour les tests de pénétration - Kali Linux. Il s'agit d'une distribution Linux spécialement préparée qui contient déjà tous les programmes nécessaires. Vous ne devez donc rien installer. Vous pouvez faire fonctionner le système à partir d'une clé USB ou installer Kali Linux sur votre disque dur.
Pour savoir quelles informations d'autres personnes peuvent trouver sur votre système, vous devez utiliser plusieurs outils :
nmap
est l'un des outils d'analyse de réseau les plus populaires. Vous pouvez l'utiliser pour voir quels services sont exécutés sur le serveur d'un site web, quels ports ils utilisent, leurs versions de port et même la version du système d'exploitation. Pour voir les ports ouverts sur votre machine, exécutez cette commande dans le terminal Kali Linux :
$ nmap -sS 192.168.91.249
192.168.91.249
est l'adresse IP de la ressource. Cette commande affiche les ports ouverts et les noms des services. Vous pouvez obtenir des informations plus détaillées, par exemple, vous pouvez rassembler beaucoup d'informations sur le système déjà à ce stade. Par exemple, vous pouvez voir ici que la machine exécute un serveur SSH, un serveur web, des services de partage de fichiers Samba et un serveur proxy sur le port 3128. Tous ces éléments sont potentiellement vulnérables.
Le scanner Nmap vous permet d'aller plus loin, avec un balayage plus intensif. Pour ce faire, utilisez l'option -A :
$ nmap -A 192.168.91.62
Vous obtiendrez alors beaucoup plus d'informations, telles que les versions de service, l'heure du système, le système de gestion du contenu et même la version du système d'exploitation. De plus, si de simples vulnérabilités telles qu'un mot de passe FTP faible sont trouvées, vous en serez également informé. Pour en savoir plus sur l'utilisation de Nmap, consultez un autre article. Vous devez également utiliser d'autres sources d'information disponibles. Il est important de savoir quelles informations vous concernant sont disponibles sur le réseau et si un attaquant peut obtenir des informations auxquelles il ne devrait pas avoir accès.
Voici quelques services :
Le fuzzing est souvent utilisé pour le scan. L'idée derrière le phasage est d'envoyer une grande quantité de données aléatoires sur votre site pour essayer de trouver des vulnérabilités. Les différents outils que nous examinerons ci-dessous simuleront des attaques pour tester la vulnérabilité d'une application.
Fuzzer des applications peut permettre d'identifier des vulnérabilités, mais pour obtenir les meilleurs résultats, il convient de comprendre le fonctionnement de ces applications et la nature du bogue. Si vous avez accès au code source du projet, vous pouvez utiliser le fuzzing et l'analyse manuelle en parallèle pour trouver les problèmes avec une plus grande précision. Les attaques par fuzzing sont très bruyantes car elles nécessitent la transmission d'un grand nombre de données. Un système de protection contre les intrusions les remarquera, vous devez donc être prudent. Examinons maintenant les outils qui peuvent être utilisés.
WPScan est un projet open source écrit en Ruby spécifiquement pour scanner WordPress. Il est très facile à utiliser et peut être utile pour les sites qui utilisent beaucoup de plugins ou qui ne sont pas mis à jour. L'utilitaire n'a pas besoin de code source et effectue des analyses à distance.
Nikto est un scanner de vulnérabilité pour les sites web. Il fonctionne beaucoup plus longtemps que WPSan, mais il est conçu pour plus que WordPress. Il inclut de nombreux plugins et exécute de nombreuses requêtes pendant l'analyse. Par exemple, le logiciel peut trouver un fichier qui produira des informations phpinfo. Mais Nikto génère beaucoup de faux positifs, il faut donc analyser attentivement les résultats.
Burp Suite est un programme très puissant pour trouver des vulnérabilités dans un site web ou des applications web. Cet outil fonctionne uniquement via un navigateur web. Il vous permet de vérifier tous les formulaires présents sur le site web, de vérifier la soumission de différents en-têtes, de voir les réponses et les requêtes du navigateur, d'effectuer un balayage actif des URL, de réaliser une analyse statique du code javascript et de rechercher les vulnérabilités XSS sur le site web. C'est un excellent outil, mais il peut sembler compliqué.
SQLMap est un programme qui permet de trouver les vulnérabilités SQL d'un site web. Vous pouvez trouver tous les endroits possibles où des injections SQL peuvent être effectuées. Par exemple, si vous supposez qu'il peut y avoir une injection SQL dans le paramètre id, utilisez la commande suivante
$ sqlmap -u http://example.com/?id=1 -p id
Le programme testera différents types de bases de données, ce qui vous permettra de ne spécifier que la bonne :
$ sqlmap --dbms=MySQL -u http://example.com/?id=1 -p id
Ces commandes vous permettent de tester des champs, de spécifier différents paramètres tels que des bases de données, des tables ou des mots de passe.
L'exploitation complète la recherche de vulnérabilités sur un site et permet d'exploiter ces vulnérabilités pour accéder à un système ou à des données. En général, si vous avez réussi à trouver des failles dans votre sécurité et à les combler, vous n'avez rien d'autre à faire. Mais il faut parfois prouver que le problème est vraiment grave.
Il est recommandé de ne pas utiliser l'exploitation des vulnérabilités sur les systèmes de production, car cela peut entraîner des problèmes. Il est préférable de créer une machine virtuelle et d'y installer tout ce dont vous avez besoin. Voici quelques outils que vous pouvez utiliser :
Metasploit est un environnement complet de test de pénétration qui contient de nombreux exploits prêts à l'emploi. Vous pouvez trouver des exploits pour les plugins installés ou les services découverts lors de la première étape. Nous verrons plus en détail comment utiliser Metasploit dans un prochain article.
Il s'agit de l'étape finale de la recherche de vulnérabilités. Sur la base de tout ce qui a été trouvé, vous devez tirer des conclusions et combler toutes les failles. Lorsque vous disposez de toutes les données relatives aux vulnérabilités, vous devez les classer par ordre de priorité et les corriger. Établissez des priorités et corrigez tout ce que vous avez trouvé. Si vous avez pu trouver ces vulnérabilités, alors n'importe qui d'autre peut les trouver.
Dans cet article, nous avons donné un cours accéléré sur la détection des vulnérabilités des sites web et examiné les principaux logiciels de détection des vulnérabilités des sites web que vous pouvez utiliser pour vous assurer que vos ressources ou votre infrastructure sont aussi sûres que possible. Nombre de ces outils sont des standards industriels. Vous pouvez maintenant réfléchir à votre stratégie de test et essayer d'éliminer toutes les vulnérabilités.
Apply the discount by inserting the promo code in the special field at checkout: