Vérifier les vulnérabilités de mon site web

Fermé
lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023 - Modifié le 26 janv. 2023 à 17:11
bg62 Messages postés 23644 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 26 septembre 2024 - 2 févr. 2023 à 18:45

Bonjour,

J'ai récemment hébergé mon premier site web, qui n'est pas très complexe pour l'instant car il permet uniquement l'accès à des listes de répertoires. Par exemple, j'ai un URL qui permet d'accéder à une liste et un autre qui permet aussi d'accéder à une liste mais avec authentification basique. Cela représente deux Virtualhost dans la configuration Apache.

Bref, je m’intéresse principalement à sa sécurité avant de le faire évoluer.

Je viens vers vous pour pouvoir discuter des observations faites et des problèmes de sécurité auxquels je me questionne. De plus, les outils que j'utilise pourront peut-être donner des idées de recherche à certain ...

Tout d'abord, j'utilise un pare-feu Iptables avec lequel, pour l'instant, je ferme toutes les entrées hormis mes adresses IP.

Ensuite, j'ai installé Rapidscan sur une machine ayant accès à mon serveur, et je l'ai lancé.

  • La première vulnérabilité observée étant que je n'avais pas de WAF, j'ai donc mis en place le WAF utilisé par Apache nommé ModSecurity. Bien évidemment pas n'importe comment, j'ai adapté les règles car beaucoup de faux-positifs sont présents. L'outil qui permet cette vérification s'appelle Wafw00f. L'idée est d'envoyer des requêtes avec différentes syntaxes de type injection,XSS, etc. afin de détecter un blocage. Pour mon cas, cela fonctionne 1 fois sur 3, c'est-à-dire que le WAF n'est pas toujours détecté. Mon WAF ne détecte donc pas toutes les "attaques" envoyées par l'outil et ce qui est dommage c'est que l'on a pas connaissance des requêtes envoyées ...
  • Ensuite, plusieurs outils de brute force DNS du type Fierce, AMass, ils ont détectés certains noms de domaines, mais j'avoue ne pas trop comprendre les résultats. Il est donné un nom de domaine sous OVH, mais je n'arrive pas à comprendre le lien avec le mien (qui est sous OVH également). On me donne également une IP en /16 du type 192.168.0.0, sachant que mon IP du serveur est du type 192.168.1.0/24. Je ne comprends vraiment pas le truc :/
  • J'ai eu une vulnérabilité concernant le XSS, il me dit que je n'ai pas l'en-tête de protection XSS. Je l'ai donc ajouté sur Apache. A savoir qu'il le détecte bien sur un URL lambda par contre lorsque je donne un URL avec authentification, il ne le trouve pas donc me redonne la vulnérabilité, je pense que c'est normal ? Outil utilisé : WhatWeb
  • Avec Nmap, je détecte les ports basiques, 80,443,ssh, ce qui est normal
  • Avec DirB, outil qui va permettre de chercher les répertoires ou fichiers ouverts, j'ai eu un seul résultat. Le répertoire hxxps://monserveur/javascript/query/query est ouvert et je ne sais pas d'où il sort. J'ai un peu cherché à comprendre, mais je n'arrive pas à savoir si c'est dangereux ou non et sinon comment le supprimer, s'il le faut ...
  • Pour finir, j'ai été averti que mon serveur utilise la renégociation TLS. Cependant je me suis renseigné et ce protocole est utilisé uniquement pour les versions TLS avec les vulnérabilités patchées : "la renégociation n'est accordée qu'aux clients qui supportent la nouvelle extension du protocole" Source : https://httpd.apache.org/docs/current/mod/mod_ssl.html#ssloptions. Pour moi, je peux donc laisser comme ceci. Outil : SSLyze

A savoir que pour l'authentification, j'utilise mod_authn_dbd qui va permettre l'utilisation des identifiants en hash MD5 et des requêtes préparées. De plus, chaque Virutalhost compose les filtres supplémentaires "require ip" selon la volonté.

EDIT : une dernière vulnérabilité étant la version d'Apache, trop ancienne, cependant il suffit de vérifier les correctifs appliqués dans le paquet debian. Debian vérifie les CVE et applique les correctifs directement sur le paquet de la version "stable" sans modifier la version.

A voir également:

2 réponses

lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023
Modifié le 27 janv. 2023 à 11:46

J'ajoute quelque chose à mes problèmes : mon WAF n'a pas l'air de fonctionner lorsque je tente des tests d'injections du type :

https://yourdomain.com/?id=3 or 'a'='a'

mais encore :

http://yourdomain.com/test.html?a=alert%281%29%3B

Ce sont des attaques très basiques qui doivent normalement fonctionner par défaut. J'ai remarqué que cela fonctionnait avec l'autre Virtualhost qui n'a pas de demande d'authentification.

Cela concerne donc uniquement mon Virtualhost qui possède une authentification. C'est vraiment étrange, car dans les logs du WAF j'ai bien la tentative de connexion avec des injections, mais rien n'est déclenché.

Sur le serveur sans authentification, dans les logs, il me donne la requête (pour le cas d'une attaque XSS) :

GET /?a=%3Cscript%3Ealert(1);%3C/script%3E HTTP/1.1

 Pour l'autre, j'obtiens ceci :

GET /?a=%3Cscript%3Ealert(1);%3C/script%3E HTTP/1.1

Il n'y a donc aucune différence.

Si j'analyse les autres informations, je ne vois rien d'intéressant mise à part le fait que l'en-tête XSS n'est pas détectée du coup du serveur avec authentification. Pourtant, dans ma configuration et pour ce VirtualHost, j'ai bien la ligne :

Header set X-XSS-Protection "1; mode=block"

En vérifiant sur l'interface Web, effectivement avec F12 je ne vois pas l'en-tête, par contre, si je me connecte, je la vois.

Il y a quelque chose que je ne comprend pas, j'ai l'impression que l'authentification est comme une "sur-couche" placée avant le WAF et autres modules. J'ai donc une coquille quelque part ...

Quelqu'un arrive à comprendre le problème ?

0
lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023
27 janv. 2023 à 15:39

Je me permets de répondre à mon propre message encore une fois, car je ne peux pas éditer.

En fait, je me dis que vu que l'authentification basique n'est pas vraiment une page mais juste un module d'entrée, c'est peut-être pour cela que le WAF ne traite pas le cas. Mais cela pose quand même un problème, malgré le fait que j'utilise les requêtes préparées, je ne peux donc pas protéger mon formulaire "basique" des injections avec le WAF. Cela me semble étonnant, faut-il ajouter des règles supplémentaires ?

0
bg62 Messages postés 23644 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 26 septembre 2024 2 382
Modifié le 30 janv. 2023 à 19:42

tu peux aussi plus simplement chercher du côté des "spécialistes", genre :
www.acunetix.com
ou autres du genre :
"
    Netsparker
    Acunetix
    Intrus
    Détection de vulnérabilité de réseau SolarWinds
    AppTrana
    OpenVAS
    Communauté Nexpose
    Personne
    Tripwire IP360
    Wireshark
    Aircrack
    Nessus Professionnel
    Communauté Retina CS
    Analyseur de sécurité de base Microsoft
    Inspecteur de logiciels personnels Secunia
"
etc ...

*** Penser également que l'on peut résoudre énormément de problème via un ou des .htaccess bien conçus ... :)


0

Bonjour, je note les outils merci.

Que ce soit des fichiers .htaccess ou directement dans la configuration du serveur, c'est la même chose n'est-ce pas ?

J'ai préféré la deuxième méthode, pour avoir tout au même endroit.

0
bg62 Messages postés 23644 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 26 septembre 2024 2 382 > Lynow
2 févr. 2023 à 18:45

" tout au même endroit" .... quoi de mieux alors qu'un fichier .htaccess ?

0