Sueurs froides

Hier, j'étais très très inquiète pour mes ressources informatiques pendant quelques heures – les joies de les gérer soi-même au lieu de sous-traiter au Cloude. En voici l'histoire et son dénouement heureux (pour une fois).

Un observateur attentif de mes machines aura remarqué que beaucoup d'entre elles fonctionnent avec FreeBSD. Et en fait même la totalité de celles que j'utilise régulièrement depuis des années.

FreeBSD a la bonne idée de fournir par défaut un système nommé periodic, qui lance à intervalles régulier des scripts et envoie par e-mail l'éventuelle sortie de ces scripts.

C'est ainsi que tous les jours je reçois un rapport, qui ne contient généralement rien d'intéressant (ce qui est une bonne chose), mais que je lis quand même soigneusement, au cas où.

Une des raisons pour lesquelles j'aime beaucoup cet e-mail est qu'il quitte le serveur qui l'a généré juste après sa génération, de sorte que des éventuels indices d'un piratage (qui auraient subsisté jusqu'à la génération du rapport) ne puissent plus être effacés ou maquillés (à moins de pirater en plus le serveur mail, ou la machine où je les lis, rien n'est infaillible mais ça aide à rendre l'attaque trop chère pour mes ennemis).

Hier, j'ai eu la malheureuse idée de dépiler mes e-mails à une heure déraisonnablement tardive, mais j'ai quand même lu soigneusement le rapport de la veille (mercredi, donc).

Quelle ne fut pas ma surprise de trouver, au milieu des banalités habituelles, les lignes suivantes :

rebma login failures:
Jun 22 20:07:05 rebma sshd[1023]: error: PAM: authentication error for root from ███.███.███.███
Jun 22 20:07:08 rebma sshd[1023]: error: PAM: authentication error for root from ███.███.███.███

En réalité, ce n'est pas tout à fait ça que j'ai vu, il y avait une vraie adresse IP numérique à la place de ███.███.███.███, mais je préfère ne pas la publier.

Que quelqu'un cherche à se connecter sur le compte root de mon serveur dédié Rebma ne m'étonne pas plus que ça, ma première réaction a plutôt été l'étonnement de ne pas en voir d'habitude.

Cependant, je me suis rapidement rendue compte que l'adresse IP numérique (que j'ai censuré ici) me disait quelque chose. Après vérification, il s'agit bien d'une machine que je contrôle.

Ou du moins, que je croyais contrôler, parce que je suis certaine de ne pas avoir essayé de me connecter où que ce soit mercredi soir vers 22h (le log de Rebma est en UTC).

Par acquis de conscience, j'ai quand même vérifié, des fois qu'un Alzheimer ou un coup à la Medivh me guette, et les logs sont formels, je ne me suis connectée nulle part mercredi soir.

Donc pour résumer, quelqu'un qui n'est pas moi a essayé de se connecter par SSH au compte root de Rebma, depuis une machine que devrais être la seule à contrôler, et sur laquelle il y a un .ssh/config qui décrit le compte root de Rebma et la clef (chiffrée) pour s'y connecter. Je vois difficilement plus clair comme symptôme qu'on s'est fait trouer.

Et évidemment, ça ne peut pas arriver un jour où on est en forme et où on a du temps. Il faut que ça arrive à 1h du matin, alors qu'on est ivre de fatigue depuis au moins 22h, et que le moral n'est pas vraiment à son maximum.

J'ai quand même fait le tour des processus et des logs locaux, sans rien trouver d'anormal. J'ai remonté quelques jours dans le passé, toujours rien.

Donc non seulement je me suis fait trouer, mais en plus par un ennemi qui nettoie bien. Sans la tentative de connexion sur Rebma, je n'aurais rien remarqué.

Alors je me sous avouée vaincue, et je suis partie au lit, après avoir un peu hésité à éteindre la machine, mais ce sera plus facile de la passer au napalm réinstaller si elle est allumée, et ce que l'Ennemi en fait pendant ce temps ne doit pas être tellement grave si c'est si bien caché.

Aller au lit, c'est une chose, mais ensuite, comment dormir juste après s'être pris un truc comme ça sur la figure ?

Quand j'en ai eu marre de gaspiller du temps à vainement essayer de dormir, je me suis relevée pour inspecter les logs plus en profondeur.

Et cette fois, j'ai regardé les logs de Rebma, des fois que d'autres indices y soient restés. Mais sur Rebma, aucune trace de ces tentatives de connexion.

Évidemment, je me dis tout de suite que Rebma aussi s'est fait trouer. Il va falloir une plus grosse bouteille de napalm.

Mais avant de céder à la panique, j'ai quand même trouvé étonnant qu'un ennemi capable de trouer deux machines et de tout nettoyer derrière se fasse avoir par un pauv' script periodic qui est activé par défaut. Surtout avec sept heures entre les tentatives ratées de connexion et l'envoi du rapport, largement plus de temps qu'il n'en faut pour nettoyer, ou au moins retarder periodic.

Je ne sais pas trop ce qui m'a pris, mais du coup j'ai regardé le script periodic, pour voir où exactement aurait dû être ces informations si bien nettoyées.

J'y trouve find ${LOG} -name 'auth.log.*' -mtime -2 et $LOG/auth.log, avec LOG qui a gardé sa valeur par défaut, /var/log. Alors que ça fait des années que mes logs sont rangés dans /var/log/${host}/${year}/${month}/. Cela dit il reste bien un /var/log/auth.log d'avant cette "nouvelle" organisation des logs.

J'y trouve aussi un egrep -ia "^$yesterday…, avec yesterday=`date -v-1d "+%b %e "`. Donc avec le jour et le mois, mais pas l'année.

Et effectivement, il y a bien des tentatives de connexion dans /var/log/auth.log, datant du 22 juin… 2011.

Autant j'ai les idées très claires sur ce que j'ai fait dans la soirée du 22 juin 2016, autant les détails de la soirée du 22 juin 2011 m'échappent un peu.

Donc finalement, ce n'est pas un indice de compromission d'un de mes systèmes. On peut garder le napalm en stock pour le prochain barbecue récalcitrant.

J'ai pu me recoucher avec plus de sérénité.

Mais ça veut quand même dire que ça fait cinq ans que dans chaque rapport du 23 et 24 juin il y a ces mêmes lignes, et ce n'est que maintenant que je le remarque. Tu parles de lire soigneusement les rapports…

Au moins ça relance la question des logs distants inaltérables, et du monitoring (genre un SMS à chaque connexion root).

Commentaires

1. Le samedi 25 juin 2016 à 11:52, par _FrnchFrgg_ :

En fait c'est un hacker très doué qui t'a piraté... C'est toi depuis le passé. Bon normalement dans les histoires c'est le toi du futur qui invente la machine à remonter le temps, sinon c'est un peu plus dur pour l'effet de surprise. Mais tu as le droit d'innover, hein.

2. Le samedi 25 juin 2016 à 11:58, par _FrnchFrgg_ :

À noter que j'utilise "hacker" pour "brillant informaticien" et pas "cracker" comme "pirate" même si tout le monde confond les deux. Et aussi je garde tout au masculin (indéterminé en fait) parce que je déteste les écritures du style informaticien-ne-s chevroné-e-s qui me paraissent tellement dérisoires par rapport aux vrais problèmes.

3. Le samedi 25 juin 2016 à 11:59, par _FrnchFrgg_ :

Ou docteure ahhhrg comme c'est moche. (et j'arrête le multipost maintenant).

Poster un commentaire

Mise en forme historique : pour mettre en valeur un mot ou un groupe de mot, tapez une étoile de part et d'autre, sans mettre d'espace entre l'étoile et le mot, comme ceci : *mise en valeur*. Pour insérer un lien, mettez le entre crochets, comme ceci : [http://instinctive.eu/].

Mise en forme markdown : voir le guide détaillé, en résumé c'est le Markdown traditionnel, sans HTML ni titres, mais avec les tables PHP-Markdown-Extra.

Attention : les balises HTML entrées dans les commentaires seront affichées telles quelles, et non pas interprétées.

Autour de cette page

 

Autour de cet article

  • Publié le 24 juin 2016 à 19h48
  • État de la bête : soulagée d'un gros stress
  • 3 commentaire(s)
  • Tag : BSD
  • Tag : Geek

Derniers commentaires

Tags

Archives

Site-level navigation and features

 

Instinctive.eu

Contact

Sections

Validation

Copyright © 2008-2024 Natacha Kerensikova

Butterfly images are copyright © 2008 Shoofly