Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tutoriel:que_faire_en_cas_de_serveur_compromis [Le 12/12/2007, 13:01] – SunWukong | tutoriel:que_faire_en_cas_de_serveur_compromis [Le 11/09/2022, 12:18] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| ---- | ---- | ||
| - | ====== Que faire en cas de soupçons d'un serveur compromis ? ====== | ||
| - | Récemment, j'ai fait la triste expérience d' | ||
| - | Durant ces instants | + | |
| + | ====== Que faire en cas de soupçons d'un serveur compromis ? ====== | ||
| + | |||
| + | |||
| + | Récemment, j' | ||
| Rentrons dans le vif du sujet. | Rentrons dans le vif du sujet. | ||
| Ligne 14: | Ligne 16: | ||
| ===== Bloquer tous les accès instantanément ===== | ===== Bloquer tous les accès instantanément ===== | ||
| - | La première chose à faire, c'est d' | + | La première chose à faire, c'est d' |
| + | |||
| + | ==== Prévoyez un accès de secours ==== | ||
| + | |||
| + | === Si vous avez accès au serveur etsi celui ci peut être redémarré. === | ||
| + | Munissez vous d'un [[: | ||
| + | Il vous faudra donc booter sur le [[: | ||
| + | |||
| + | === Si vous n'avez pas accès au serveur, si vous ne pouvez pas le redémarrer. === | ||
| + | Seul le compte **root** sera autorisé a se reconnecter, | ||
| + | |||
| + | <note warning> | ||
| + | La connection en tant que **root** est fortement déconseillée, | ||
| + | </ | ||
| + | |||
| + | S'il s'agit d'une connexion [[:SSH]], vérifiez que **root** soit autorisé a se connecter. La variable suivante du fichier **/ | ||
| + | < | ||
| + | PermitRootLogin yes | ||
| + | </ | ||
| + | |||
| + | Initialisez le mot de passe **root** | ||
| + | < | ||
| + | sudo passwd root | ||
| + | </ | ||
| + | |||
| + | Dè que vous aurez de nouveau autorisé les connexions utilisateurs, | ||
| + | < | ||
| + | sudo passwd -l root | ||
| + | </ | ||
| + | |||
| + | ==== Bloquez toutes les connexions ==== | ||
| - | Pour ce faire, vous entrez la commande suivante : | + | Pour bloquer toute connection locale ou distante, entrez la commande suivante : |
| < | < | ||
| sudo touch / | sudo touch / | ||
| </ | </ | ||
| - | A partir de ce moment, toutes les connexions locales | + | À partir de ce moment, toutes les connexions locales |
| - | **ATTENTION !!! Veillez à ne pas sortir de la session en cours, sinon vous ne pourrez plus vous reconnecter sur la machine.** | + | <note important> |
| - | Ne le faite que si vous êtes certain de la qualité de votre connexion ! | + | Si vous êtes déconnecté d'une session [[:SSH]], voyez le résultat : |
| - | Si votre ADSL n'est pas très stable ou si votre connexion | + | < |
| + | user@serveur: | ||
| + | [sudo] password for user: | ||
| + | user@serveur: | ||
| + | déconnexion | ||
| + | Connection to serveur.lan closed. | ||
| + | user@client: | ||
| + | Ubuntu 12.04 LTS | ||
| + | Connection closed by serveur.lan | ||
| + | user@client: | ||
| + | </ | ||
| + | |||
| + | Quand vous le jugerez opportun, vous autoriserez de nouveau les connexions en supprimant le fichier **nologin**: | ||
| + | < | ||
| + | sudo rm / | ||
| + | </ | ||
| + | |||
| + | Blocage alternatif pour connexion entrante etsortant ( moins dangereuse ) avec le firewall intégré [[ufw]] : | ||
| + | < | ||
| + | sudo ufw disable | ||
| + | sudo ufw default deny incoming | ||
| + | sudo ufw default deny outgoing | ||
| + | sudo ufw enable | ||
| + | sudo ufw status verbose | ||
| + | </ | ||
| ===== Examen des logs d' | ===== Examen des logs d' | ||
| - | La première source d' | + | La première source d' |
| Si c'est le cas, toutes les actions sont logguées dans le fichier ''/ | Si c'est le cas, toutes les actions sont logguées dans le fichier ''/ | ||
| Ligne 40: | Ligne 96: | ||
| ===== Examen des historiques des utilisateurs ===== | ===== Examen des historiques des utilisateurs ===== | ||
| - | Ensuite, vous pouvez examiner les commandes introduites par les utilisateurs dans l' | + | Ensuite, vous pouvez examiner les commandes introduites par les utilisateurs dans l' |
| - | Ces historiques sont beaucoup moins précis que les logs d' | + | Ces historiques sont beaucoup moins précis que les logs d' |
| - | Les historiques se trouvent dans les répertoires des utilisateurs (''/ | + | Les historiques se trouvent dans les répertoires des utilisateurs (''/ |
| - | ===== Bloquer un utilisateur | + | ===== Bloquer un utilisateur |
| - | Si vous avez vu quelque chose de suspect par rapport à un utilisateur, | + | Si vous avez vu quelque chose de suspect par rapport à un utilisateur, |
| - | Pour ce faire, il vous suffit | + | Pour ce faire, il vous suffit de remplacer le shell par défaut de l' |
| - | + | ||
| - | Par exemple, avant : | + | |
| < | < | ||
| - | ostaquet: | + | sudo chsh -s /bin/false user |
| </ | </ | ||
| - | + | Ensuite, vous supprimez tous les processus attachés à cetutilisateur (par exemple, pour l' | |
| - | Après | + | |
| < | < | ||
| - | ostaquet: | + | sudo killall -u jf |
| </ | </ | ||
| - | Ensuite, vous supprimez tous les processus attachés à cet utilisateur (par exemple, pour l' | + | Vous pouvez, |
| - | < | + | |
| - | sudo killall -u ostaquet | + | |
| - | </ | + | |
| - | + | ||
| - | Vous pouvez, | + | |
| < | < | ||
| sudo rm / | sudo rm / | ||
| </ | </ | ||
| - | Concernant les mots de passe, qui sont souvent une faille de sécurité, il est intéressant de les changer régulièrement (tous les 3 mois par exemple ou mieux, tous les mois) et d' | + | Concernant les mots de passe, qui sont souvent une faille de sécurité, il est intéressant de les changer régulièrement (tous les 3 mois par exemple ou mieux, tous les mois) etd' |
| Vous trouverez des informations pour la génération des mots de passe sur [[: | Vous trouverez des informations pour la génération des mots de passe sur [[: | ||
| Ligne 80: | Ligne 128: | ||
| ===== Arrêt de tous les services ===== | ===== Arrêt de tous les services ===== | ||
| - | Ensuite, il est intéressant d' | + | Ensuite, il est intéressant d' |
| < | < | ||
| Ligne 86: | Ligne 134: | ||
| </ | </ | ||
| - | Pensez également à arrêter le '' | + | Pensez également à arrêter le '' |
| Sans oublier les services // | Sans oublier les services // | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== Scan des ports ouverts sur la machine ===== | ===== Scan des ports ouverts sur la machine ===== | ||
| - | A partir d'une autre machine | + | À partir d'une autre machine |
| - | L' | + | L' |
| < | < | ||
| - | sudo apt-get install | + | sudo apt-getinstall |
| </ | </ | ||
| - | Ensuite, vous l' | + | Ensuite, vous l' |
| < | < | ||
| Ligne 106: | Ligne 158: | ||
| </ | </ | ||
| - | Le résultat indique quels sont les ports ouverts sur la machine. Ne paniquez pas tout de suite si vous avez des ports ouverts; il s'agit peut être d'un service que vous avez oublié d' | + | Le résultat indique quels sont les ports ouverts sur la machine. Ne paniquez pas tout de suite si vous avez des ports ouverts |
| + | |||
| + | Si vous n'avez aucun port ouvert, c'est un bon signe. S'il reste des services ouverts, arrêtez-les etrelancez le scan. | ||
| + | |||
| + | Si vous ne trouvez rien cela ne veut pas dire que vous n'avez pas été compromis… car il est possible que vous ayez des connexions inversées ! C'est à dire des connexions créées dans le sens inverse : le pirate a ouvert les ports sur sa propre machine etvotre machine s'y connecte. Il y a deux façons de voir les connexions : '' | ||
| - | Si vous n'avez aucun port ouvert, c'est un bon signe. Si il reste des services ouverts, arrêtez-les et relancez le scan. | ||
| - | Si vous ne trouvez rien cela ne veut pas dire que vous n'avez pas ete compromis...car il est possible que vous ayez des reverse connection...c' | ||
| ===== Vérification des rootkits ===== | ===== Vérification des rootkits ===== | ||
| - | Après cela, il est intéressant de vérifier | + | Après cela, il est intéressant de vérifier |
| - | Il existe deux applications permettant d' | + | Il existe deux applications permettant d' |
| < | < | ||
| - | sudo apt-get install | + | sudo apt-getinstall |
| </ | </ | ||
| Ligne 126: | Ligne 180: | ||
| < | < | ||
| sudo chkrootkit | sudo chkrootkit | ||
| + | </ | ||
| + | |||
| + | et | ||
| + | |||
| + | < | ||
| + | sudo rkhunter --propupdate | ||
| sudo rkhunter --checkall | sudo rkhunter --checkall | ||
| </ | </ | ||
| - | Si rien ne vous semble suspect, redémarrez la machine | + | la commande **sudo rkhunter --propupdate** sert a la mise a jour des hash de fichiers pour limiter les faux positifs |
| - | Si quelque chose est détecté comme suspect, l' | + | |
| + | Rkhunter affiche ensuite les test effectués etaffiche les fichiers annalysés : | ||
| + | < | ||
| + | sudo rkhunter --checkall | ||
| + | [sudo] password for user: | ||
| + | [ Rootkit Hunter version 1.3.8 ] | ||
| + | |||
| + | Checking system commands... | ||
| + | |||
| + | Performing ' | ||
| + | Checking ' | ||
| + | |||
| + | Performing ' | ||
| + | Checking for preloading variables | ||
| + | Checking for preloaded libraries | ||
| + | Checking LD_LIBRARY_PATH variable | ||
| + | |||
| + | Performing file properties checks | ||
| + | Checking for prerequisites | ||
| + | / | ||
| + | / | ||
| + | ............... | ||
| + | </ | ||
| + | Un exemple d' | ||
| + | < | ||
| + | / | ||
| + | </ | ||
| + | Suite des tests | ||
| + | < | ||
| + | Checking for rootkits... | ||
| + | |||
| + | Performing check of known rootkit files and directories | ||
| + | 55808 Trojan - Variant A [ Not found ] | ||
| + | ADM Worm [ Not found ] | ||
| + | ............... | ||
| + | |||
| + | Performing additional rootkit checks | ||
| + | Suckit Rookit additional checks | ||
| + | Checking for possible rootkit files and directories | ||
| + | Checking for possible rootkit strings | ||
| + | |||
| + | Performing malware checks | ||
| + | Checking running processes for suspicious files [ None found ] | ||
| + | Checking for login backdoors | ||
| + | Checking for suspicious directories | ||
| + | Checking for sniffer log files [ None found ] | ||
| + | Checking for Apache backdoor | ||
| + | |||
| + | Performing Linux specific checks | ||
| + | Checking loaded kernel modules | ||
| + | Checking kernel module names [ OK ] | ||
| + | ............... | ||
| + | </ | ||
| + | Encore des tests | ||
| + | < | ||
| + | Checking the network... | ||
| + | |||
| + | Performing checks on the network ports | ||
| + | Checking for backdoor ports [ None found ] | ||
| + | Checking for hidden ports [ Skipped ] | ||
| + | |||
| + | Performing checks on the network interfaces | ||
| + | Checking for promiscuous interfaces | ||
| + | |||
| + | Checking the local host... | ||
| + | |||
| + | Performing system boot checks | ||
| + | Checking for local host name [ Found ] | ||
| + | Checking for system startup files [ Found ] | ||
| + | Checking system startup files for malware | ||
| + | |||
| + | Performing group and account checks | ||
| + | Checking for passwd file [ Found ] | ||
| + | Checking for root equivalent (UID 0) accounts | ||
| + | Checking for passwordless accounts | ||
| + | Checking for passwd file changes | ||
| + | Checking for group file changes | ||
| + | Checking root account shell history files [ OK ] | ||
| + | |||
| + | Performing system configuration file checks | ||
| + | Checking for SSH configuration file [ Found ] | ||
| + | Checking if SSH root access is allowed | ||
| + | Checking if SSH protocol v1 is allowed | ||
| + | Checking for running syslog daemon | ||
| + | Checking for syslog configuration file [ Found ] | ||
| + | Checking if syslog remote logging is allowed | ||
| + | |||
| + | Performing filesystem checks | ||
| + | Checking /dev for suspicious file types [ None found ] | ||
| + | </ | ||
| + | L' | ||
| + | < | ||
| + | Checking for hidden files and directories | ||
| + | </ | ||
| + | Puis vient le récapitulatif. | ||
| + | < | ||
| + | System checks summary | ||
| + | ===================== | ||
| + | |||
| + | File properties checks... | ||
| + | Files checked: 135 | ||
| + | Suspect files: 1 | ||
| + | |||
| + | Rootkit checks... | ||
| + | Rootkits checked : 248 | ||
| + | Possible rootkits: 0 | ||
| + | |||
| + | Applications checks... | ||
| + | All checks skipped | ||
| + | |||
| + | The system checks took: 2 minutes and 1 second | ||
| + | |||
| + | All results have been written to the log file (/ | ||
| + | |||
| + | One or more warnings have been found while checking the system. | ||
| + | Please check the log file (/ | ||
| + | </ | ||
| + | |||
| + | Vous retrouvez un fichier suspect dans les propriétés de fichiers, en fait 1 faux positif identifié.\\ | ||
| + | Après avoir consulté le fichier de log, | ||
| + | |||
| + | Si quelque chose est détecté comme suspect, l' | ||
| + | FIXME A quoi ça ressemble quelque chose de suspect ? | ||
| - | Pour savoir quel est exactement l'application | + | Pour déterminer quelle |
| < | < | ||
| Ligne 138: | Ligne 320: | ||
| </ | </ | ||
| - | Après, à vous de voir si c'est vraiment une intrusion ou si c'est un service qui tourne en arrière plan... | + | Après, à vous de voir si c'est vraiment une intrusion ou si c'est un service qui tourne en arrière-plan… |
| - | ===== Vérification des virus et vers ===== | + | ===== Vérification des virus etvers |
| - | La dernière vérification indispensable à faire est le scan complet du disque dur avec un antivirus (**à jour !!!**). | + | La dernière vérification indispensable à faire est le scan completdu |
| Sur la page wiki traitant de la [[: | Sur la page wiki traitant de la [[: | ||
| - | ===== Après tout... ===== | ||
| - | Une fois la batterie de tests effectuées, | ||
| - | Si tout va bien, il n'y a **normalement** rien d' | + | ===== Après |
| - | Je ne prétends pas répondre à tous les problèmes | + | Une fois la batterie |
| - | ---- | + | Si tout va bien, il n'y a **a priori** rien d' |
| - | // Contributeur | + | Je ne prétends pas répondre à tous les problèmes de sécurité dans ce court document, cependant, les intrusions fréquentes sont effectuées par des [[https://fr.wikipedia.org/ |
| + | ---- | ||
| + | // Contributeurs : [[utilisateurs: | ||
