Failles du web

Tags :
  • MON
  • 2022-2023
  • temps 1
  • failles web
  • sécurité informatique
Auteurs :
  • Thibault Adelain

Failles Web

Dans ce MON, nous allons essayer de comprendre différentes vulnérabilités qui peuvent toucher un site web. Le but ici n'est pas d'être exhaustif en listant toutes les failles possibles, mais seulement de nous intéresser aux failles récurrentes. Celles-ci, lorsqu'elles sont prises en compte, permettent d'éviter la plupart des attaques web (nous ne verrons pas les failles réseaux, systèmes... Ces failles sont néanmoins très exploitées, et donc les connaître est aussi nécessaire pour déployer son site web).

Toutes les techniques présentées ici ont pour but de mieux comprendre les failles exploitées par les hackers, et ainsi de vous prémunir contre les attaques. Vous ne devez en aucun cas les essayer sur un site qui n'est pas le vôtre !

Typologie des attaques

Différentes attaques sont exploitées par les hackers. Les principales à noter sont :

En fait, beaucoup d'attaques sont un mix de ses méthodes. Nous allons en voir quelques-une classiques et essayer de s'en prémunir.

Méthodologie du hacker

Collecte d'informations

Avant tout, un hacker part à la collecte d'informations. Les hackers ne sont pas bêtes, ils savent bien que s'ils testent des failles à la chaîne, cela va leur prendre un temps fou, des ressources incroyable, et ils risquent de se faire repérer rapidement.

Ils vont alors d'abord chercher à récolter un maximum d'informations sur le site visé, et souvent de manière tout à fait normale. En fait, le hacker va être attentif aux choses auxquelles les utilisateurs normaux ne vont pas prêter attention. Parmi les questions d'analyse d'un site web, on peut citer :

  1. Le site est-il statique ou dynamique ? Aujourd'hui, les sites statiques se font de plus en plus rares, mais il faut avoir en tête qu'un site statique est difficelement attaquable (attaque web).
  2. Analayse de l'URL : y-a-il des variables passées dans l'URL ? (ex : forum.php?id=234&user=codej)
  3. Y-a-t-il des formulaires ? Qui dit formulaire, dit envoie de données de l'utilisateur vers le serveur. Dans certains cas, cela peut mener à une vulnérabilité.
  4. Y-a-t-il des cookies ? Un cookie est une chaîne de charactères envoyée au client depuis le serveur. Le client enregistre le cookie et à chaque connexion à l'URL (ou au domaine), le cookie est retransmis de l'utilisateur vers le serveur. On peut par exemple avoir des cookies de sessions, qui servent à l'identification des utilisateurs. Chaque utilisateur a son cookie de session, et lorsque le serveur reçoit un cookie de session, il sait précisément à qui il appartient et le serveur accorde l'accès au compte.
  5. Y-a-t-il une base de donnée ?
  6. Quel est le serveur utilisé et quelle est sa version ? On le dira jamais assez, mais il faut faire les mises à jour. Nombre de vulnérabilités sont résolues à chaque mise à jour d'un OS / logiciel. Si un hacker tombe sur un serveur utilisant une version antérieur d'un OS ou logiciel, il pourra exploiter des failles publiées sans problème (il existe même des logiciels testant pour vous les failles released...).

Vous pourrez retrouver des détails sur le livre : Sécurité informatique ethical hacking : apprendre l'attaque pour mieux se défendre [2].

Collecte d'informations : dans la pratique

Les outils que l'ont va voir peuvent servir à l'analyse et à l'attaque d'un site web, selon les scripts utilisés.

Tout d'abord, les hackers vont vouloir contrôler toutes les informations qui transitent entre leur machine et le site web. Grâce à un logiciel comme Burp Suite, vous pouvez utiliser ce logiciel comme proxy entre votre navigateur et le site web. Ainsi, vous pouvez modifier les requêtes que vous envoyez (en-têtes, cookies...), cartographier un site web... Les possiblités sont grandes, et vous pouvez grâce à cet outil recueillir des informations beaucoup plus rapidement qu'en les recherchant vous-mêmes.

Ensuite, vous pouvez essayer de cartographier en détail un site grâce à wfuzz. C'est un fuzzer, un fusil orienté web. Il prend en entrée un dictionnaire et va envoyer un grand nombre de requêtes au serveur. Vous pouvez par exemple passer en clés du dictionnaire les URL classiques d'un site web (/login, /auth...), et voir la réponse http du serveur (200, 301, 404...). Ce logiciel sert aussi à faire des attaque par brut force.

Et il existe pleins d'autres outils !

Attaque

Après la collecte d'informations vient l'attaque. En fonction des données collectées, les angles d'attaques sont à adapter. Il est possible de :

Cette liste d'attaques n'a pas pour but d'être exhaustive, mais nous pouvons en déduire de précieux conseils pour sécuriser nos sites web contre quantité d'attaques.

Sécuriser son site

Finalement comment sécuriser son site web :

Quelques conseils essentiels pour sécuriser son site au niveau réseau / système :

Conclusion : filtrer tout ce qui vient du client et avoir une bonne configuration serveur.

Sources

[1] : ANSSI : recommendations pour la mise en place d'un site web : maîtriser les standards de sécurité côté navigateur : https://www.ssi.gouv.fr/uploads/2013/05/anssi-guide-recommandations_mise_en_oeuvre_site_web_maitriser_standards_securite_cote_navigateur-v2.0.pdf

[2] : Sécurité informatique ethical hacking : apprendre l'attaque pour mieux se défendre (6e édition). ISBN : 10-2409033660

[3] : Le site de la CNIL : https://www.cnil.fr/