Echoes Corsac.net - Echoes camshot
samedi 30 septembre 2006 (2 posts)
Alors voilà. Le récit des deux derniers jours, passés entre des 0 et des 1.

Le récit d'une lose comment on en voit peu, je pense. Si vous êtes passé ici dans les dernières 48h (et même peut être avant), vous avez du vous en rendre compte. Tous les posts, effacés, un à un. Sans exception.

Avant hier soir, table rase.
Vide.
Ø

Plus rien.
J'ai flippé, sur le coup. J'ai pas arrêté ensuite, pendant les dernières 48h. Qu'est ce qu'il s'était passé ? Qui avait fait ça ? Comment c'était arrivé ? Comment récuperer les données. Est ce que je pouvais, même ?

Tout mercredi soir, après la découverte, en recherchant les différents backups qu'éventuellement je pouvais avoir, je me demandais ce qu'il s'était passé. J'avais le cœur serré, l'estomac noué. Est ce que c'était une attaque, un piratage quelconque ? L'œuvre de quelqu'un de malintentionné ? Une erreur de disque, de système de fichier, enfin whatever ? Impossible de trouver ce qu'il s'était passé, la nuit avançait, je trouvais pas. Je cherchais mes backups. Vieux. Janvier 2006, 9 mois de posts perdus ? Je regarde dans la base, les posts sont effacés, effectivement, mais les données sont encore là. Illisibles par mysql, mais encore là, marquées effacées, incompréhensibles. Et toujours pas de trace de comment.

Et puis, en cherchant dans les logs de mysql, je vois des requêtes d'effacement, une à une, sur plusieurs jours, tous les posts, les uns après les autres. C'est clairement pas un problème disque, ils ont été effacés parfaitement correctement, comme si moi je les avais effacés. Ou comme si quelqu'un d'autre les avait effacés, étant donné que je suis encore à peu près certain que c'est pas moi qui l'ait fait.

Et puis, en recherchant dans mes logs apache aux heures correspondantes, la réponse apparait.
Cinglante.

C'est google. Googlebot, plus exactement. Un robot oui, parfaitement. Méthodiquement, comme il a été programmé, il inspecte les pages, et suit les liens. Il a réussi à trouver un chemin jusqu'à mon interface d'administration, non protegé par un login/pass, en passant pas par le vhost www.corsac.net. Un chemin qu'a priori personne n'aurait suivi, mais googlebot, lui, n'est pas une personne. Il a juste suivi, exaustivement, tous les liens qu'il a pu trouver. Une fois dans l'interface d'administration, il est tombé sur la page avec tous les posts, et à côté de chacun le lien "Effacer".

Et il a suivi tous ces liens, un à un, petit à petit. Et il a effacé tous mes posts. Juste en faisant son job, sans se poser de question, sans intention de nuire (don't do evil). Froidement.

C'est d'autant plus rageant que c'est ma faute (j'aurais jamais du laisser l'accès ouvert jusque là), mais que c'était impossible à empecher sans savoir que c'était accessible par là.

Je m'en suis bouffé les doigts, mercredi soir, ça me désperait. Que ce soit de ma faute et en même temps la faute de personne, que je sois en faute mais que ce n'ait même pas été moi qui ait cliqué sur "Effacer". Une boule au ventre qui ne m'a pas quitté de la nuit.

Et le lendemain, petit à petit, essayer d'analyser le format .MYD des bases de données mysql, pour retrouver comment parser les champs, et reconstituer la base, en ayant perdu les champs id et tri, sur lequel je me base pour l'organiser. Deux jours de bataille, la tête dans l'hexa, à lire dans le binaire, à coder du C de crade. J'oserais pas poster ici le parser que j'ai codé pour lire le .MYD et recuperer les posts, mais c'est du bien crade, y'a pas de doute. Et ensuite, éditer à la main le binaire pour l'arranger, parce que, comble du comble, certains posts se sont retrouvés au milieu de certains autres, il manquait des champs au début, à la fin, bref ça foutait en l'air mon programme. Éditer à la main les dates aussi, pour transformer Aout en Août (parce que Aout c'est pas compris par strptime()), à transformer Decembre en Décembre, Fevrier en Février, et Ao&uirct en Août, donc à nouveau changer la taille des champs, un à un.

Tout ça pour, au final, reconstituer un fichier SQL et réinserer toutes les données dedans. Pour un peu moins de décalage, je suis reparti du backup de janvier dernier, mais au final j'ai reconstitué l'intégralité de la base (à quelques posts près, je pense). Les id ont été décalés, donc les commentaires éventuels ne correspondent plus, mais bon, depuis janvier y'a pas eu beaucoup de posts avec commentaires donc c'est pas très très grave. Je réarrangerai si/quand j'aurai le courage.

Plus de peur que de mal, au final, sur cette affaire, mais, vraiment, on le dira jamais assez, -faites- des backups. Tout le temps, régulierement. Parce que perdre d'un coup plus de 4 ans de blog, vraiment, ça m'a fait mal au cœur. Ça m'arrive régulierement de perdre des mails, quelques années, paf. Ou des logs. C'est pas encore trop grave, ça fait vraiment chier pour les mails, surtout que là il commence à y en avoir des vraiment importants, mais bon, on s'y fait, on prend l'habitude. Mais là, ces 4 années, c'est des choses que moi j'ai écrites, c'est des choses que j'ai été, que j'ai pensé. Et j'avoue que l'idée de repartir de zéro, de faire table rase du passé, non, vraiment, j'acceptais pas. Pas si c'était pas de mon plein gré. Je suis pas spécialement fier de tous les posts, y'en a quelques uns dans le lot que j'aime bien, mais pas beaucoup. Mais il n'empèche, c'est moi, ça a été moi, et j'y tiens, finalement.

Un grand merci à Gniarf, pour le temps qu'il a passé à repécher mes données et à rattraper les erreurs d'un autre, un grand merci à #debian-devel-fr et #linuxfr pour les conseils judicieux en matière de code.

On a beau ne pas s'attacher aux choses materielles, y'a des fois, quand même, ça passe pas.

Bon, maintenant il s'agit d'aller acheter un disque dur et de faire des vrais backups, un peu.

Corsac@00:58:04 (Echoes)

Images
Stats
  • 1526 posts
  • 7980 jours
  • 0.19 posts/jour
  • IRC
  • Last.fm
Stuff
Tech
Weblogs
Desktop