Hello,
Pour mon job, il m’est également nécessaire de veiller à l’intégrité de mes machines, comme tout admin qui se respecte.
Pour se faire, quelques règles firewall, un fail2ban avec quelques règles perso (sql injection, accès injustifés à certaines pages, reject de 403, etc…), des vérifs “croné” à coup de lynis/rkhunter et … du monitoring ! A savoir que je délivre des services derrière les ports 21, 25, 443, 587, 993.
Je me suis toujours dit qu’il était intéressant de savoir ce qu’il se passe à nos portes, par le fait, j’ai testé pendant plusieurs mois deux outils (pas en même temps !), à savoir Portsentry et PSAD.
Les deux ne fonctionnent pas de la même façon, mais on un objectif commun : détecter les scans de ports.
Les deux permettent également de mettre en place, sous certaines conditions, des contre mesures (ban IP, taunt, etc…).
Donc comme je l’ai dis, j’ai utilisé ces 2 outils pendant un moment, mais au final, j’en viens à une conclusion évidente : il est difficilement possible de différencier :
- les scans de ports de BOTS (par miliers…)
- Les (clients pour les services que vous proposez, mail, ftp, autre…) mal configurés
- Les scans “humains”, encore que, ceux-ci peuvent sortir du lot, bien qu’avec pas mal de faux positifs
- Les scans effectués par votre propre provider
J’ai tenté de mettre en place pas mal de configurations différentes, d’abord avec Portsentry. Avec lui, j’avais une légion de faux positifs… j’ai tenté pas mal de choses, finalement je ne l’ai pas gardé.
PSAD quant à lui, me permet un filtrage plus fin, limitant les faux positifs, mais limitant aussi grandement la détection de “vrais” scans, sans parler du fait que la kern.log explose, vu que ce dernier s’appuie dessus (activation de la log drop/reject dans kern.log).
Au final, tout se mal pourquoi ? Savoir qui s’est intéressé à votre machine, sans trop de certitude, avec un coup en ressource non négligeable et une quantité importante de faux positifs.
La question que je me pose aujourd’hui est : Est-ce vraiment utile ? A mon sens, il n’existe pas de solution fiable permettant de détecter avec précision une prise d’empreinte d’origine humaine et explicitement malveillante (je parle uniquement ici de scan de ports, pas de tentatives autres comme des paquets mal formés, des requêtes crado dans votre php, etc…). A noter qu’aujourd’hui PSAD tourne encore, pour la seule utilité que j’y trouve : voir une ip revient un peu trop souvent, auquel cas j’enquêterai à son sujet. Mais c’est peut-être sortir la bazooka pour chasser le moustique…
Attention, je pense en revanche que ce genre d’outils peut prendre son sens dans le cas où vous utilisez un poste enduser et que vous ne proposez pas de services. Là, on se fout d’avoir des faux positifs, on peut bannir en masse, ça n’impactera derrière personne que vous. Dans ce cas là et seulement dans ce cas là, on peut considérer que ces outils peuvent être utiles pour des utilisateurs un brin paranos et qui ne sont pas gênés d’avoir un hosts.deny (pour les plus vieux) ou une table iptables remplies jusqu’à l’os. J’irais même jusqu’à utiliser Portspoof (simulation d’activité derrière une liste de ports) couplé à un honey pot.
Bref, que pensez-vous de tout ça ? Avez-vous ce genre de monitoring en prod et si oui, quels outils et quelle satisfaction ?