Ce que tu vas faire
Quand un serveur est piraté, les personnes qui interviennent s’appellent des spécialistes de la réponse à incident (en anglais, incident responders). Leur travail consiste surtout à lire des journaux (les logs) : les lignes qu’une machine écrit sur ce qu’elle a fait, et à quel moment. Tu vas regarder les journaux et les fichiers copiés depuis un serveur attaqué la nuit dernière. Tu vas voir ce qu’il y a et sa taille. Tu ne vas pas résoudre l’affaire : c’est la tâche du lab.
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de cette leçon. Ce lab est une machine Ubuntu entière, rien que pour toi. Elle met donc un peu plus de temps à démarrer qu’un conteneur. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de la machine, l’une après l’autre. Si l’un d’eux dit que la machine démarre encore, attends quelques secondes et appuie de nouveau. Pour les voir agir, ou pour taper tes propres commandes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.
1. Regarde ce que tu as
Les preuves sont dans le dossier case, dans ton dossier personnel. Il a été copié depuis le serveur attaqué, avec la même organisation. find case -type f liste tous ses fichiers : il y en a huit. Parmi eux, le journal SSH, le journal du serveur web, le fichier des comptes, deux crontabs (les listes de tâches lancées à heure fixe) et deux fichiers de clés.
find case -type fAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
2. Combien y en a-t-il ?
wc -l compte les lignes. Le journal SSH, auth.log, en a 1366 et le access.log du serveur web en a 552. Personne ne lit autant de lignes une par une. Un spécialiste les fouille avec des recherches, et le README du lab explique comment.
wc -l case/var/log/auth.log case/var/log/nginx/access.logAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
3. Lis quelques lignes du journal SSH
Chaque ligne donne une heure, le nom de la machine, le programme qui a écrit, et ce qui s’est passé. Ces cinq lignes sont des tentatives de connexion SSH qui ont échoué. Chaque essai est écrit deux fois, d’abord comme ligne Invalid user, puis comme ligne Failed password, avec l’adresse d’où il vient et le nom d’utilisateur essayé.
head -n 5 case/var/log/auth.logAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
4. Compte les mots de passe refusés
grep affiche les lignes qui contiennent certains mots, et avec -c il les compte au lieu de les afficher. Il y a 333 mots de passe refusés dans la journée. À toi de trouver, dans le lab, lesquels comptent : un nombre seul ne dit pas qui est entré.
grep -c "Failed password" case/var/log/auth.logAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Maintenant, fais le lab
Astuce
Tu as vu les preuves et comment les fouiller. Trouver l’attaquant, c’est la tâche de ce lab. Ouvre README.md dans ton dossier personnel avec cat README.md dans le terminal. Il explique quoi trouver et comment l’écrire dans answers.txt, et ne donne aucune réponse.
Pour les enseignants
Astuce
Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter forment la leçon, et le lab est la copie de chaque élève. Ici, c’est un lab de machine virtuelle : chaque élève a sa propre machine Ubuntu avec le même dossier d’enquête, et un bouton Exécuter tape dans son terminal et montre ce qui s’est affiché. Le lab a une vérification qui note les réponses écrites et nomme la première qui est fausse. Copie la leçon dans ton propre module et modifie-la, ou crée-en une depuis zéro avec le menu Lab de l’éditeur de leçons.