Outil ou script permettant la surveillance de serveurs

Tylon -  
 Tylon -

Bonjour,

Je ne sais pas si je suis au bon endroit pour ce sujet et je m'en excuse si ce n'est pas le cas.

Je suis en train de recherche un outil/logiciel qui me permette de surveiller plusieurs serveurs web à distance. En fait, je souhaite pouvoir assurer la disponibilité de ces serveurs, c'est-à-dire vérifier si celui-ci est UP, s'il n'a pas de problème. Ensuite, je souhaite également vérifier son intégrité, est-ce qu'il est victime de défacement, ransomware, etc.

Je viens vers vous pour savoir si des personnes connaissent des outils pouvant faire ceci ?

Si non, je développerai moi-même via Python cet outil. Le cas échéant, avez-vous des pistes/idées sur les "scans" ou "requêtes" que je devrais utiliser ?

Par exemple, pour vérifier la disponibilité il me suffirait d'envoyer une requête HTTP et regarder le code retour, 200 ? Cependant, dans ce cas, je ne sais pas si le site est victime de défacement ou non. Comment vérifier cela ?

A voir également:

1 réponse

avion-f16 Messages postés 19254 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 

Bonjour,

Pour la disponibilité du site Web, c'est assez simple à traduire en langage technique, on peut notamment vérifier le statut HTTP (code 200) ou rechercher une chaine spécifique dans le contenu.

Si tu recherches quelque-chose dans le style "page de disponibilité", j'aime bien Uptime Kuma : https://github.com/louislam/uptime-kuma

Il existe d'autres solutions (Cabot, Upptime, ...), je t'invite à voir ces listes :
https://github.com/ivbeg/awesome-status-pages#opensource
https://github.com/adriannovegil/awesome-observability
https://github.com/crazy-canux/awesome-monitoring

Note: Les listes "awesome" sont des listes regroupant des noms de logiciels/projets par "sujet" (souvent informatiques), souvent hébergées via GitHub (comme ça, tout le monde peut y contribuer).

Sinon il existe des solutions plutôt "tableau de bord administrateur" comme Grafana + Prometheus, Nagios, Zabbix, ...


Pour savoir si le serveur est compromis, c'est un peu plus compliqué, il n'y a pas un indicateur "on / off". Le monitoring doit aussi être exécuté depuis l'intérieur du serveur (via un "agent") pour avoir accès à suffisamment d'informations. Avant de rechercher un outil qui automatise le motoring, il faut d'abord définir ce que tu attends qu'il fasse comme vérifications.

0
Tylon
 

Merci pour les sources ! Je vais regarder tout cela, bien que pour ce qui est de la disponibilité, je pense développer mon propre outil. (car cela reste assez basique)

J'ajouterai une fonction permettant de vérifier également le temps de réponse des pages, pour vérifier le bon fonctionnement et potentiellement détecter une attaque type DDOS.

Pour reprendre sur l'intégrité, l'idée est de pouvoir vérifier que les serveurs ne sont pas compromis/modifiés/etc. seulement avec un accès au frontend, il n'y a aucun accès au côté serveur.

Pour cela, j'ai donc listé plusieurs possibilités de vérifications :

  • Vérifier la présence de défacement :
    • Créer un hash instantané des différentes pages pour ensuite les comparer après chaque analyses : lors d'un changement, vérifier les changements effectués (nouveaux liens ? fichiers ? -> vérifier avec des outils type URLSCAN, VirusTotal, etc.)
    • Créer un hash instantané du code source également pour faire les mêmes vérification
    • Comparer avec template de défacement, exemple d'outil qui fait ceci : https://github.com/CERT-hr/Web-Defacement-Detection-Tool
  • Ajout d'une nouvelle page :
    • Même chose analyse pour chaque nouvelle page ajoutée, comparer avec des templates de Ransomware ?
  • Attaque type XSS :
    • Analyser les fichiers sur les serveurs web à la recherche de signatures types Ransomware (exemple) connues, en corrélation avec VirusTotal ou autre API ...

Je pense avoir fait le tour des principales vérifications ?

Note  : bien évidemment, je suis conscient que cela ne permet pas d'assurer pleinement la surveillance des attaques, notamment lors d'injections directes sur la base de donnée, ou autre code en backend. (Cette vérification sera effectuée par un autre système en local)

1