SFU est de retour après un hack et 1 mois d'absence
Un hack et ça repart
Si vous avez essayé de consulter une page de SciFi-Universe depuis le 2 juin 2023, vous avez dû constater que quelque chose n'allait pas. En effet, notre serveur a été victime d'une attaque par Ransomware et nous avons mis une vingtaine de jours pour tout reconstruire de zéro. Désormais le problème est derrière nous mais ça n'a pas été facile tous les jours.
Voici le récit détaillé de ce qui s'est passé et de comment nous sommes revenus sur la toile.
2 juin 2023 : date de l'attaque
Ca aurait pu être un vendredi comme les autres, un début de mois tranquille, mais aux alentours de 16h, je constate que le site ne répond plus. Ça arrive parfois et comme avec tout programme informatique, le premier réflexe quand ça ne va plus c'est de rebooter. Mais 30mn plus tard, le site ne répond toujours pas et je commence à m'inquiéter. Ce n'est que le soir vers 22h que j'ai pu me connecter à la machine et constater que tout était crypté.
Un fichier texte visible dans quasi chaque dossier du disque dur indiquait qu'on étaient victimes d'un ransomware, avec l'ironie du hackeur qui explique que l'argent ce n'est que du papier et que payer va nous faciliter la vie. C'est la première fois que je suis face à ce genre de situation, j'essaie de voir ce que je peux faire et quelle est l'ampleur des dégâts, mais plus rien ne marche sur le serveur à part le minimum. Pas moyen de lancer un navigateur, impossible de se connecter par FTP et encore plus difficile de relancer le site. De toute façon, la base de données est cryptée, tous les fichiers du site sont cryptés. bref, c'est la cata.
Malgré l'heure tardive, j'avertis le reste de l'équipe sur Discord en leur disant que ça risque de durer. Heureusement, Elfyr est connectée et connaît quelqu'un qui bosse dans la Cyber sécurité. S'en suivent alors de longues minutes passées au téléphone à tenter d'expliquer la situation à base de photos d'écran depuis mon mobile. Je prête mes doigts à mon conseiller pour taper des commandes obscures afin de voir ce qui se passe sur le serveur. On comprend alors que le hackeur est probablement connecté en même temps que nous et risque de tout péter s'il voit qu'on tente de lui refuser l'accès à son gagne-pain. Du coup, on fait comme dans les films, on éteint la machine pour éviter d'empirer les choses. Il est alors 1h du matin et la nuit sera difficile.
Les jours suivants
La suite est un long chemin semé d'embûches et de doutes. Je fais un tour d'horizon de mes sources pour remettre en route le site. Autant du côté du code tout va bien, je peux assez vite publier une nouvelle version, mais le premier problème qui se pose est la base de données. Heureusement, j'avais une sauvegarde du 17 mai (environ 2 semaines avant) et elle fonctionne. Je peux relancer le site avec cette base, on aura perdu tout ce qui aura été rentré depuis, mais ça aurait vraiment pu être pire. Non, ce qui pose le plus de problème ce sont les mégas, non les gigas d'images uploadées depuis des années pour illustrer nos fiches et nos articles. Car je n'ai rien, aucune sauvegarde. Enfin si, peut-être, mais une sauvegarde sur un DVD qui doit dater d'il y a plusieurs années (et que je n'ai d'ailleurs pas retrouvé)..Pour résumer, samedi je sais que le site pourra revenir en ligne, mais dans un état encore très incertain et dégradé. Et payer le hacker n'est pas une option.
La quête du graal
Malgré les difficultés, je ne baisse pas les bras. J'ai 2 enfants et SFU est un peu comme mon troisième. Disparaître n'est pas une option. Du coup je commence ma quête pour la recherche d'un nouveau serveur. Je vous passe un peu les détails mais j'en ai essayé 3 avant de trouver la bonne configuration qui tienne la route. Sur le premier, je ne pouvais pas installer la base de données qui était trop volumineuse. Sur le deuxième, le site tournait pendant 30 secondes avant de mettre en PLS la machine. Du coup, j'ai pris quelque chose de plus costaud pour le troisième et c'est grâce à celui-là que vous pouvez à nouveau nous lire.
Au passage, j'ai pu constater que la base de données contenait près de 120 Go de logs inutiles et qui devaient probablement ralentir le site depuis un moment. Une fois supprimés, l'installation s'est mieux passée. J'ai dû aussi (ré)apprendre à installer un serveur et à gérer les droits afin que tout fonctionne normalement.Ce n'était possible que le soir après 20h30 ce qui m'a fait passer pas mal de nuits courtes. Pendant ce temps, je réfléchissais au problème des images qui allait bientôt redevenir prioritaire. Comment faire pour les récupérer ?
Se faire hacker ou comment devenir bien parano
Effectivement, j'avais toujours en tête d'aller voir de plus près si les images étaient récupérables sur le serveur hacké, mais comment l'allumer sans que le hacker ne s'en empare et efface tout ? Comment s'y connecter ? Et si c'était depuis mon ordinateur personnel que le hackeur s'était introduit sur SFU ? Et si j'étais déjà "infecté" et que le hackeur cryptait ma machine ? Est-ce que mon antivirus aurait pu le laisser passer ? Aaaaaahhhh ! La parano monte vite dans ces cas-là et on n'a plus confiance en rien.
J'ai donc vérifié un par un tous les points d'entrée de mon PC puis du serveur. Sur mon PC, un de mes premiers réflexes a été de le déconnecter d'internet et de le scanner entièrement. J'ai ensuite changé d'antivirus et j'ai remis ça. Ça a pris 1 journée et 1 nuit complète ! Une fois sûr que tout allait bien, j'ai vérifié les paramètres du pare-feu de ma freebox pour découvrir qu'il fallait activer une option pour interdire de voir mon IP interne de l'extérieur. J'ai aussi fixé les IP de chaque appareil connecté au réseau (et j'en ai bien une quarantaine) afin d'identifier les nouvelles connexions intruses (qui sont en IP dynamique). Je me suis fait une frayeur quand j'ai constaté qu'un ordinateur inconnu s'était connecté à mon wifi (le hackeur serait-il un voisin qui n'a pas aimé que je taille mes haies un dimanche matin?). En demandant à mon fils s'il connaissait cet ordi qui se serait connecté l'après-midi où il était là, il s'est avéré que c'était l'ordinateur de son copain qui était maître de jeu à leur jdr. Ouf, fausse alerte.
Une fois que j'ai sécurisé (comme j'ai pu) mon réseau et mon ordinateur, j'ai pu le rebrancher sur la toile. Je me suis mis alors à isoler le serveur éteint grâce à l'aide de mon hébergeur. Il dispose d'un pare-feu configurable en ligne et j'ai pu tout interdire sauf l'accès depuis mon IP personnelle. J'ai pu alors le rallumer et m'y connecter pour voir l'ampleur des dégâts.
Le temps de la reconstruction
Une des premières choses que j'ai faite a été de noter le message du hackeur, c'est le moment de constituer des preuves pour la police, car oui, en parallèle un service de cyber sécurité de la région m'accompagne pour les démarches, le dépôt de plainte et tout. J'ai donc plus de détails sur l'attaque, ainsi que l'heure exacte à laquelle les fichiers ont été déposés et cryptés.
Je navigue ensuite dans les fichiers pour constater l'ampleur du cryptage. A première vue, il a tout verrouillé.Je vais quand même voir le dossier des images, je vois le message du cryptage et me dit que c'est mort. Je vais quand même voir les sous-dossiers et là, je constate que dans le premier les images sont clean. Mon cœur bat la chamade, est-ce possible qu'il ait oublié ce précieux dossier ? Je vais voir le second, intact, le troisième idem, RAS dans le quatrième, etc.Un dossier a été complètement crypté mais c'est celui des illustrations génériques des univers. Ça doit représenter 50 images à tout casser et j'ai peut-être des sauvegardes. Je me suis donc empressé de tout isoler et de vérifier un par un tous les dossiers pour m'assurer qu'il n'y avait pas d'infection. Ce serait dommage de copier un cheval de troie sur mon ordi. Franchement, c'était inespéré et je ne comprends toujours pas comment c'est possible.Peut-être que j'avais configuré ce dossier d'une manière suffisamment bizarre pour que le script du hackeur ne s'y intéresse pas ? En tout cas, c'est une bonne nouvelle. Maintenant, le problème va être de savoir comment rapatrier ces images sachant que plus rien ne fonctionne sur la machine ?
Et là j'ai repensé au pote d'Elfyr qui me faisait tout faire en ligne de commandes. Cette partie fonctionne encore alors je me renseigne pour savoir comment télécharger Google Chrome en ligne de commande : ça fonctionne. Je lance l'installation façon Mr Robot, en commande powershell et j'ai de nouveau accès à internet ! J'installe alors 7zip pour faire des lots d'images pour chaque dossier. Puis me vient une idée (enfin un souvenir du pote d'Elfyr), je pourrais transférer ces images via un genre de Dropbox. J'ai un navigateur, je peux les envoyer dessus et les récupérer ailleurs. Je me suis donc inscrit à celui qui proposait le plus d'espace (Infomaniak) pour transférer en 3 fois mes 20Go d'images, non pas sur ma machine mais sur le serveur de test que j'avais configuré pour faire tourner SFU. J'ai pu alors tester toutes les archives avec son antivirus et vérifier que tout était bon. J'ai ensuite récupéré ces images à la maison.
Tout semble proche de la résolution du problème et du retour de SFU en ligne, mais non. Il reste encore au moins 10 jours avant le retour. Qu'est ce qui s'est passé ?
Le déménagement de l'enfer
Vous aimez bien déménager ? Non ? Déménager un site c'est comme en physique, c'est long, pas très intéressant et on peut casser plein de choses. Recopier les fichiers assemblés de différentes sauvegardes ne suffit pas. Une fois le code source, la base de données et les images réunies sur le serveur, il a fallu tout faire fonctionner de nouveau ensemble. Pour cela j'ai dû acheter un nouveau nom de domaine (pour tester en situation réelle) et me prendre la tête à tout reconfigurer tout en ajoutant plus de sécurité (il ne faudrait pas se faire hacker de nouveau). Au bout de 3 jours (enfin soirs), j'ai réussi à voir une première page s'afficher.
Mais j'ai vite compris que le site était trop gourmand en ressources et qu'il faudrait l'optimiser pour qu'il tourne correctement. L'ancien serveur était plus puissant et j'en avais pris un autre pas très cher pour tester. Le premier succès d'affichage d'une page me laissait penser que le site pourrait tourner sur ce serveur bien plus petit, le hack nous permettant de faire des économies ? La motivation n'a fait qu'un bon et j'ai commencé à revoir une par une les pages du site pour essayer de comprendre ce qui les rendaient lentes. J'ai d'abord optimisé des pages simples, puis des pages de plus en plus complexes en testant à chaque fois sur le serveur pour constater qu'il tenait de plus en plus de temps avant de tomber.
J'ai donc décidé de faire pointer le nom de domaine sur ce nouveau serveur pour commencer à contrer les effets ravageurs du temps. Car oui, pendant tout ce temps d'indisponibilité, les visiteurs et les moteurs de recherche tombaient sur des messages d'erreur, et plus on attend, plus il sera difficile de revenir à nos positions SEO d'avant, et plus les visiteurs vont se lasser de voir ces messages d'erreur et vont partir ailleurs. Ça n'a guère fonctionné, le site restant majoritairement indisponible sauf pour quelques pages, de temps en temps. J'ai passé un week-end quasi complet à retravailler le code pour grappiller des millisecondes de temps d'exécution pour n'avoir que des résultats très mitigés. Cependant, j'avais désormais une sorte de sauvegarde géante avec le site, sa BDD et ses images qui tourne sans erreur mais très lentement.
J'ai donc décidé de changer de serveur pour en prendre un plus performant et tester. Mon hébergeur propose une garantie 30 jours satisfait ou remboursé. Je dois tester et faire le changement avant de m'engager sur 1 an pour un serveur qui ne va pas.
La taille compte après tout ! (Godzilla nous avait prévenu)
Me voilà donc à réinstaller mon la énième fois le site sur un autre serveur (le 3ème et le bon). Je commence à bien connaître à la fois les offres disponibles et la procédure pour installer mon site. J'en profite pour faire ça bien et tout gérer depuis les interfaces en ligne (avant j'avais installé quelques composants manuellement ne sachant pas comment faire autrement). C'est pour être sûr que les problèmes ne viennent pas d'une mauvaise configuration de ma part. Je m'applique, relis les tutos pas à pas de l'hébergeur, crée un FTP, transfère mes fichiers et le domaine de test, règle les pare-feu, les droits, tout. Je lance le gestionnaire de tâches pour voir la consommation du processeur et de la mémoire et je teste le site...1, 2, 3 secondes. Ça marche !
On est jeudi 22 juin au soir. Je suis rentré du travail, j'ai lancé les installations pendant que je mangeais et couchais les enfants, ça a duré environ 2h (ce qui est assez court au final) et j'avais un site qui tournait bien. Pas de problèmes de vitesse, c'est même mieux qu'avant grâce aux diverses optimisations et allègements réalisés auparavant. Je lance un crawler pour ne pas vérifier à la main toutes les pages. Il y en a qui font des erreurs mais ça ne gêne pas le reste du site. Les problèmes sont vite corrigés et le site fuse.Je tente alors de me connecter à notre administration en ligne pour gérer les articles, mais ça ne fonctionne pas. Je tatonne un peu mais après quelques minutes, j'arrive à la faire tourner. Le site semble prêt à repartir. Vu que c'est bien mieux que sur l'autre serveur, je décide alors de rediriger le domaine sur celui-ci afin de ne plus être indisponible tout le temps.
Aujourd'hui, le staff et moi pouvons à nouveau créer des articles et des contenus pour vous et cet article en est la preuve. Cette grosse mésaventure aura été une belle épreuve. Nous avons perdu quelques articles au passage mais le site revient plus fort qu'avant, un site plus rapide et plus sécurisé. J'ai appris pas mal de choses dont l'importance des sauvegardes. J'ai compris aussi que ma motivation pour que SciFi-Universe existe était toujours aussi grande. Je vais me remettre à écrire des articles alors que je faisais surtout du travail de complétion de l'encyclopédie séries TV.
J'espère qu'il reste encore une ou deux personnes pour lire ce long périple, et j'espère que ça pourra servir à quelqu'un de voir comment on a pu se relever après un hack. N'hésitez pas à parler de SFU autour de vous car nous allons avoir besoin d'un petit coup de pouce pour rétablir notre notoriété et pour montrer aux gens que le site existe encore.
Merci à vous, fidèles lecteurs et longue vie à la science-fiction.
Publié le vendredi 23 juin 2023 à 15h10
Commentaires sur l'article
Les commentaires des membres sont désactivés temporairement car nous sommes en train d'optimiser cette fonctionnalité qui ralentit l'ensemble du site. Ils sont remplacés par les commentaires facebook. Merci de votre compréhension.