Comment analyser une machine linux compromise

Tarek MOHAMED
Tarek MOHAMEDFree Hour ساعة حرة

investigation sur linux

Comment analyser une
machine linux compromise
Tarek MOHAMED CHFI, CEH, ESCP
http://www.linkedin.com/in/tarekmed

tarekmed.rachdi@gmail.com

[Tapez le résumé du document ici. Il s’agit généralement d’une courte synthèse du document. Tapez
le résumé du document ici. Il s’agit généralement d’une courte synthèse du document.]
Analyse d'un système linux suite
à une intrusion
L’inspection d’une machine Linux, suite à une attaque (directe où indirect), suite à la
détection d’un événement de sécurité suspect où suite à la détection d’un comportement
virale, doit suivre une certaine logique fondamentale qui nous permettra de comprendre le
scénario et préciser les vulnérabilités qui affectent notre système.
L’entité chargée de la mission d’investigation doit suivre les étapes suivantes :
1) Date et temps système : L’intervenant doit extraire la date et le temps système et les
synchronisés avec son horloge pour définir les écarts entre toutes les entités en
relation avec la machine en question.
Date et le temps système date de la machine compromise

Horloge de l’analyste

NB : il ya un avance de 59 seconde de la machine compromise par rapport à l’horloge de
l’intervenant.
2) Connexions réseaux:
a) Analyse interne : Il est très important de voir les connexions réseaux courantes (Port
TCP, UDP ouvert), pour détecter les connexions suspectes, pour cela la commande
«netstat» est disponible sur toutes les distributions Linux et qui nous permet
d’afficher les connexions réseau ouvertes, les tables de routage, les statistiques des
interfaces, les connexions masquées, les messages netlink et les membres multicast.
Afin de visualiser plus de détails sur les connexions réseaux courantes vous pouvez
utiliser les options de la commande « netstat» par exemple la commande « netstat –a»
vous permet de visualiser les connexions et des ports en écoute sur la machine.
Pour lister les noms des programmes qui ouvert les ports, nous allons exécuter la
commande « netstat –nap».
Une attaque peut modifier la table de routage pour rediriger les flux sortants de la
machine, afin de surpasser à travers les règles du pare-feu. Et pour afficher la table de
routage interne utilisez la commande «netstat –rn» ou à l’aide de la commande
« route –c ».
b) Analyse externe : Dans la plupart des incidents, les programmes malveillants (rootkits
, malwares, virus,..) infectent les machines linux en modifiant leurs binaires, en
particulier le binaire de « netstat » pour cacher les ports ouvertes et les connexions
réseaux camouflés par les programmes malveillants. Pour cela, on va utiliser le
l'analyseur réseau (sniffer) wireshark (www.wireshark.org) et le scanneur des ports
Nmap ( http://nmap.org).
-Wirshark : Connecter la machine de l’investigateur et la machine infectée sur le
même HUB ou SWITCH (brancher la machine d’investigation sur un port mirroring
pour pouvoir écouter et capter tous les trafics réseau). Ensuite, lancer wirshark et faites
un filtre sur l’adresse IP de la machine infectée.
Nmap : Lancer un scan avec l’outil nmap depuis l’extérieur sur la machine victime
infecté pour lister tous les ports ouverts.
3) Les programmes responsables sur l’ouverture des ports (TCP, UDP) et les
fichiers : Après l’identification des ports et les connexions distantes suspectes, il faut
vérifier les exécutables qui ouvet les fichiers et les ports TCP et UDP, pour cela,
utiliser l’outil « lsof » (LiSt Open File) et appliquer les filtres adéquats en utilisant les
options de la commande « losf » suivantes :
 lsof -i : afficher seulement les résultats en relation avec les services internet
TCP et UDP.
 lsof –i tcp : afficher seulement les résultats en relation avec les services
internet TCP.
 lsof –i udp : afficher seulement les résultats en relation avec les services
internet UDP.
 losf –i tcp :22 : Pour afficher seulement les résultats en relation avec les
services internet TCP sur le port 22.
 lsof -i @192.168.1.46 : (Pour afficher seulement les résultats en relation avec
les services internet avec l’adresse IP 192.168.1.46.

4) les processus actifs : Habituellement les programmes malveillants (malwares, virus,
rootkits,…) lancent des processus suspects. Donc il est très important de savoir les
processus en exécutions, et pour cela il suffit d’utiliser la commande « ps -aux ».

Dans l’exemple ci-dessus le processus ayant le PID=1199 est exécuté par le utilisateur
root.
Pour faire un filtre sur un processus vous pouvez utiliser la commande « ps –e | grep
nom_process » par exemple pour vérifier le processus ssh ; « ps –e|grep ssh ».
5) Tâches planifiées et services de démarrage :
D’une part, la plupart des incidents liées aux systèmes linux, l’attaquant infecte le
système en mettant des tâches planifiés ou des services au démarrage qui exécutent
certaines commandes ou lancent quelques processus pour ouvrir une porte dérobée
sur la machine victime.
Vérification des tâches planifiées : il suffit de taper « crontab –l » mais probablement
l’exécutable crontab peut être compromis donc il vaut mieux observer manuellement
le fichier /etc/crontab.
Vérification des services de démarrage : il vaut mieux vérifier sur quel niveau les
services démarrages (/etc/init.d/ et /etc/rc.local et /etc/xinit.d) sont chargés avec la
commande runlevel et selon ce niveau on visualise le contenue du dossier
correspondant (rc0.d/, rc1.d/, rc2.d/,rc3.d/, rc4.d/, rc5.d/, rc6.d/) et n’oubliez pas
d’analyse du fichier rc.sysinit.
D’autre part, l’évolution des attaques sophistiquées en particulier le rootkit kernel qui
s’installe au niveau du noyau, et pour identifier les modules suspectes chargés au
niveau du noyau, il suffit d’utiliser la commande « lsmod » qui affiche le nom du
module, leur taille et utilisateurs.
6) Les utilisateurs et leur historique :
L’identification des utilisateurs connectés sur la machine, les comptes utilisateurs et
l’historique des login pour détecter les utilisateurs suspects et voir les commandes qui
ont été exécuté par chaque utilisateur.
 La commande « last » pour lister toutes les connexions et déconnexions des
utilisateurs dans notre système qui ont journalisé dans « /var/log/wtmp »,
 La commande « Lastb » se comporte comme last, mais il journalise toutes les
tentatives des connexions infructueuses dans « /var/log/btmp».
 On peut aussi utiliser la commande « last » avec leurs options par exemple
« last -d» pour afficher seulement les connexions distantes ; le nom d'hôte
ainsi son adresse IP.

 La commande « w » pour afficher les utilisateurs qui ont actuellement
connectés sur la machine sont journalisés sous le log «/var/run/utmp»

 N’oubliez pas de vérifier la création de nouveaux comptes non autorisés, les
comptes sans mots de passe, les changements d’UID sur les comptes déjà
existant, pour cela afficher la contenu de fichier « /etc/passwd ».
 La commande « history » pour voir toutes commandes exécutées par chaque
utilisateur.
7) Intégrité des fichiers binaires :
Une attaque peut modifier les binaires usuels (netstat, ls, ps, su, telnet, ifconfig, find,
...) pour cacher leur identité en cas de l’utilisation des ces binaires au cours de la
mission d’investigation. Donc, il faut vérifier l’intégrité de ces programmes. Et pour la
vérification de l’intégrité des binaires ;
 Démarrer sur une distribution linux bootable (par exemple knoppix
http://knoppix.net) .Utiliser l’outil « md5sum » de la distribution bootable pour
calculer les signatures des binaires de la machine victime, les signatures de la
distribution bootable et comparer les deux résultats, si deux signatures d’un
même binaires différents alors la machine est certainement compromise par un
rootkit.
 Ttapez les commandes avec des options réellement inexistants tel que « -/ » ('
netstat -/ ', ' ps -/ ', ' ls-/’,..) , ces essais ne devraient retourner que des erreurs ;
dans le cas contraire, la machine est certainement compromise par un rootkit.
8) Recherche des fichiers cachés :
Généralement un intrus ou un malware dépose souvent dans un répertoire utilisateur,
des répertoires cachés avec des noms inhabituels (deux points suivis d’un espace, trois
points, deux points suivis d’un control G) ou bien des fichiers dont le nom paraîtrait
normal à première vue (".XX" ou ".mail").
Pour chercher ces dossiers cachés on va utiliser la commande suivante :
find / -name ".. " -print ou find / -name ".*" -print.
9) Recherche des fichiers setuid et setgid :
Recherchez les fichiers setuid et setgid (en particulier les fichiers setuid) dans toute
l’arborescence. Tout processus exécutant un fichier ayant setuid peut exécuter ces
tâches avec des permissions de super utilisateur root. En effet, la plupart des intrus
laissent des exécutables setuid pour pouvoir l’utiliser ultérieurement.
Vous pouvez utiliser les commandes suivantes afin de rechercher les fichiers setuid et
setgid :
find / -user root -perm -4000 -print
find / -group root -perm -2000 -print

Recomendados

Alphorm.com Formation Analyse de Malware 1/2 : Le guide complet por
Alphorm.com Formation Analyse de Malware 1/2 : Le guide completAlphorm.com Formation Analyse de Malware 1/2 : Le guide complet
Alphorm.com Formation Analyse de Malware 1/2 : Le guide completAlphorm
13.7K vistas192 diapositivas
Principes fondamentaux de la sécurité du réseau. por
Principes fondamentaux de la sécurité du réseau.Principes fondamentaux de la sécurité du réseau.
Principes fondamentaux de la sécurité du réseau.DjibyMbaye1
299 vistas37 diapositivas
Cours linux complet por
Cours linux completCours linux complet
Cours linux completaubin82
22.7K vistas255 diapositivas
présentation de soutenance PFE por
présentation de soutenance PFEprésentation de soutenance PFE
présentation de soutenance PFEKarim Labidi
2.4K vistas28 diapositivas
Snort implementation por
Snort implementationSnort implementation
Snort implementationRokitta Apollonia
4.1K vistas13 diapositivas
Présentation sécurité informatique naceur chafroud de cynapsys por
Présentation sécurité informatique naceur chafroud de cynapsysPrésentation sécurité informatique naceur chafroud de cynapsys
Présentation sécurité informatique naceur chafroud de cynapsysJihen KOCHBATI
1.2K vistas16 diapositivas

Más contenido relacionado

La actualidad más candente

Mise en place d’un système de détection por
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détectionManassé Achim kpaya
7.5K vistas47 diapositivas
Premiers pas avec snort por
Premiers pas avec snortPremiers pas avec snort
Premiers pas avec snortFathi Ben Nasr
696 vistas9 diapositivas
ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C... por
ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C...ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C...
ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C...Tidiane Sylla
14.9K vistas58 diapositivas
Gestion des vulnérabilités dans l'IoT por
Gestion des vulnérabilités dans l'IoTGestion des vulnérabilités dans l'IoT
Gestion des vulnérabilités dans l'IoTMaxime ALAY-EDDINE
560 vistas49 diapositivas
Comprendre la securite web por
Comprendre la securite webComprendre la securite web
Comprendre la securite webChristophe Villeneuve
1.3K vistas50 diapositivas
Alphorm.com Formation Forensic sur Android por
Alphorm.com Formation Forensic sur AndroidAlphorm.com Formation Forensic sur Android
Alphorm.com Formation Forensic sur AndroidAlphorm
11.2K vistas136 diapositivas

La actualidad más candente(20)

ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C... por Tidiane Sylla
ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C...ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C...
ETUDE ET MISE EN PLACE D’UNE SOLUTION DE GESTION DE LA SECURITE DU RESEAU : C...
Tidiane Sylla14.9K vistas
Alphorm.com Formation Forensic sur Android por Alphorm
Alphorm.com Formation Forensic sur AndroidAlphorm.com Formation Forensic sur Android
Alphorm.com Formation Forensic sur Android
Alphorm11.2K vistas
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys... por Alaaeddine Tlich
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Alaaeddine Tlich18.1K vistas
Webinar EEIE #09 : Investigations sur Twitter por Groupe EEIE
Webinar EEIE #09 : Investigations sur TwitterWebinar EEIE #09 : Investigations sur Twitter
Webinar EEIE #09 : Investigations sur Twitter
Groupe EEIE2.4K vistas
Installation de snort avec pulled pork por SamiMessaoudi4
Installation de snort avec pulled porkInstallation de snort avec pulled pork
Installation de snort avec pulled pork
SamiMessaoudi4196 vistas
Alphorm.com Formation Hacking et Sécurité , avancé por Alphorm
Alphorm.com Formation Hacking et Sécurité , avancéAlphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancé
Alphorm109K vistas
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys... por Alphorm
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
Alphorm8.8K vistas
Afficher des Données Issues de Plusieurs Tables : SQL Oracle por webreaker
Afficher des Données Issues de Plusieurs Tables : SQL OracleAfficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
webreaker2.8K vistas
Bus de médiation de services: modèle de corrélation d’événements à base de rè... por Hamid Barakat
Bus de médiation de services: modèle de corrélation d’événements à base de rè...Bus de médiation de services: modèle de corrélation d’événements à base de rè...
Bus de médiation de services: modèle de corrélation d’événements à base de rè...
Hamid Barakat1.1K vistas
Réalisation d'un compilateur de mini langage - Khawarizmi por Bachir Benyammi
Réalisation d'un compilateur  de mini langage - KhawarizmiRéalisation d'un compilateur  de mini langage - Khawarizmi
Réalisation d'un compilateur de mini langage - Khawarizmi
Bachir Benyammi6K vistas
Alphorm.com Formation Hacking et Sécurité, l'essentiel por Alphorm
Alphorm.com Formation Hacking et Sécurité, l'essentielAlphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm.com Formation Hacking et Sécurité, l'essentiel
Alphorm240K vistas
Sécurité Réseau à Base d'un Firewall Matériel (fortigate) por Sakka Mustapha
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sakka Mustapha15.4K vistas

Destacado

Alphorm.com Formation CEHV9 II por
Alphorm.com Formation CEHV9 IIAlphorm.com Formation CEHV9 II
Alphorm.com Formation CEHV9 IIAlphorm
30.2K vistas231 diapositivas
Lavavajillas Siemens SN24D206EU por
Lavavajillas Siemens SN24D206EULavavajillas Siemens SN24D206EU
Lavavajillas Siemens SN24D206EUAlsako Electrodomésticos
708 vistas50 diapositivas
Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ... por
Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ...Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ...
Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ...Elisabeth Burnouf
760 vistas15 diapositivas
Facebook fusion de pages - Terre & Côte Basques por
Facebook fusion de pages  - Terre & Côte BasquesFacebook fusion de pages  - Terre & Côte Basques
Facebook fusion de pages - Terre & Côte BasquesTerre et Côte Basques
616 vistas14 diapositivas
Louis 6c por
Louis 6cLouis 6c
Louis 6crcmuziek8
518 vistas14 diapositivas
Thermylis 2S - Atelier d'incinération de boues à 2 étages por
Thermylis 2S - Atelier d'incinération de boues à 2 étagesThermylis 2S - Atelier d'incinération de boues à 2 étages
Thermylis 2S - Atelier d'incinération de boues à 2 étagesDegrémont
730 vistas9 diapositivas

Destacado(20)

Alphorm.com Formation CEHV9 II por Alphorm
Alphorm.com Formation CEHV9 IIAlphorm.com Formation CEHV9 II
Alphorm.com Formation CEHV9 II
Alphorm30.2K vistas
Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ... por Elisabeth Burnouf
Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ...Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ...
Espace laboratoire De la place Saint-Sauveur à la rue Caponière : diagnostic ...
Elisabeth Burnouf760 vistas
Louis 6c por rcmuziek8
Louis 6cLouis 6c
Louis 6c
rcmuziek8518 vistas
Thermylis 2S - Atelier d'incinération de boues à 2 étages por Degrémont
Thermylis 2S - Atelier d'incinération de boues à 2 étagesThermylis 2S - Atelier d'incinération de boues à 2 étages
Thermylis 2S - Atelier d'incinération de boues à 2 étages
Degrémont730 vistas
Noah en jonas por rcmuziek8
Noah en jonasNoah en jonas
Noah en jonas
rcmuziek8312 vistas
Toolbox Light Entrepreneur 2012 por Steve Bercy
Toolbox Light Entrepreneur 2012Toolbox Light Entrepreneur 2012
Toolbox Light Entrepreneur 2012
Steve Bercy322 vistas
Présentation Groupe de travail "BNDMR" (BNDMR-BaMaRa)_S.Amselem por minhmacabiau
Présentation Groupe de travail "BNDMR" (BNDMR-BaMaRa)_S.AmselemPrésentation Groupe de travail "BNDMR" (BNDMR-BaMaRa)_S.Amselem
Présentation Groupe de travail "BNDMR" (BNDMR-BaMaRa)_S.Amselem
minhmacabiau303 vistas
4. le séquençage des reformes de finances publiques por Jean-Marc Lepain
4. le séquençage des reformes de finances publiques4. le séquençage des reformes de finances publiques
4. le séquençage des reformes de finances publiques
Jean-Marc Lepain1.9K vistas
Présentation de pro-info.be por pro-info.be
Présentation de pro-info.bePrésentation de pro-info.be
Présentation de pro-info.be
pro-info.be391 vistas
Administracion point por admmaar
Administracion pointAdministracion point
Administracion point
admmaar228 vistas
la plateforme d’information mobile et web de la maintenance immobilière por pascalfievet
la plateforme d’information mobile et web de la maintenance immobilièrela plateforme d’information mobile et web de la maintenance immobilière
la plateforme d’information mobile et web de la maintenance immobilière
pascalfievet2.1K vistas
REGLAMENTO ESTUDIANTIL-UPC por lccabezas
REGLAMENTO ESTUDIANTIL-UPCREGLAMENTO ESTUDIANTIL-UPC
REGLAMENTO ESTUDIANTIL-UPC
lccabezas349 vistas
tutorial sobre nectibles por lpgiraldor
tutorial sobre nectiblestutorial sobre nectibles
tutorial sobre nectibles
lpgiraldor311 vistas
Les acteurs du changement destinataire por stratjdc
Les acteurs du changement  destinataireLes acteurs du changement  destinataire
Les acteurs du changement destinataire
stratjdc1.8K vistas
Electrónica analógica por sonsolesbar
Electrónica analógicaElectrónica analógica
Electrónica analógica
sonsolesbar295 vistas

Similar a Comment analyser une machine linux compromise

Installation Et Configuration De Monkey Spider por
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
1.8K vistas7 diapositivas
Reverse Engineering d'un ransomware por
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareNinaSAMMUT
66 vistas12 diapositivas
TP1 analyse de mémoire.pdf por
TP1 analyse de mémoire.pdfTP1 analyse de mémoire.pdf
TP1 analyse de mémoire.pdffatima117475
6 vistas8 diapositivas
Parinux 2009 por
Parinux 2009Parinux 2009
Parinux 2009FAN Fully Automated Nagios
665 vistas33 diapositivas
Meetup Systemd vs sysvinit por
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinitChristian Charreyre
1.3K vistas24 diapositivas
13 por
1313
13selmanimahmoud
450 vistas43 diapositivas

Similar a Comment analyser une machine linux compromise(20)

Installation Et Configuration De Monkey Spider por Mohamed Ben Bouzid
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
Mohamed Ben Bouzid1.8K vistas
Reverse Engineering d'un ransomware por NinaSAMMUT
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomware
NinaSAMMUT66 vistas
TP1 analyse de mémoire.pdf por fatima117475
TP1 analyse de mémoire.pdfTP1 analyse de mémoire.pdf
TP1 analyse de mémoire.pdf
fatima1174756 vistas
Alphorm.com Formation Analyse de Malware 2/2 : Le guide complet por Alphorm
Alphorm.com Formation Analyse de Malware 2/2 : Le guide completAlphorm.com Formation Analyse de Malware 2/2 : Le guide complet
Alphorm.com Formation Analyse de Malware 2/2 : Le guide complet
Alphorm5.6K vistas
Gestion et surveillance du reseau syslogng por Kiemde Franck
Gestion et surveillance du reseau  syslogngGestion et surveillance du reseau  syslogng
Gestion et surveillance du reseau syslogng
Kiemde Franck812 vistas
Colloque cyber 2010 les botnets por michelcusin
Colloque cyber 2010   les botnetsColloque cyber 2010   les botnets
Colloque cyber 2010 les botnets
michelcusin1.1K vistas
Principes de fonctionnement unix por webreaker
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
webreaker1.3K vistas
Gestion des processus por guebba sara
Gestion des processusGestion des processus
Gestion des processus
guebba sara257 vistas
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio... por Trésor-Dux LEBANDA
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Trésor-Dux LEBANDA136 vistas
supervision réseau (snmp netflow) por medalaa
 supervision réseau (snmp netflow) supervision réseau (snmp netflow)
supervision réseau (snmp netflow)
medalaa3.1K vistas
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl... por ABES
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
Jabes 2015 - Poster SCD Université Nantes : "Une suite d'outils pour l'exempl...
ABES126 vistas
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi por Khalid EDAIG
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiCreation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
Khalid EDAIG795 vistas

Comment analyser une machine linux compromise

  • 1. Comment analyser une machine linux compromise Tarek MOHAMED CHFI, CEH, ESCP http://www.linkedin.com/in/tarekmed tarekmed.rachdi@gmail.com [Tapez le résumé du document ici. Il s’agit généralement d’une courte synthèse du document. Tapez le résumé du document ici. Il s’agit généralement d’une courte synthèse du document.]
  • 2. Analyse d'un système linux suite à une intrusion L’inspection d’une machine Linux, suite à une attaque (directe où indirect), suite à la détection d’un événement de sécurité suspect où suite à la détection d’un comportement virale, doit suivre une certaine logique fondamentale qui nous permettra de comprendre le scénario et préciser les vulnérabilités qui affectent notre système. L’entité chargée de la mission d’investigation doit suivre les étapes suivantes : 1) Date et temps système : L’intervenant doit extraire la date et le temps système et les synchronisés avec son horloge pour définir les écarts entre toutes les entités en relation avec la machine en question. Date et le temps système date de la machine compromise Horloge de l’analyste NB : il ya un avance de 59 seconde de la machine compromise par rapport à l’horloge de l’intervenant. 2) Connexions réseaux: a) Analyse interne : Il est très important de voir les connexions réseaux courantes (Port TCP, UDP ouvert), pour détecter les connexions suspectes, pour cela la commande «netstat» est disponible sur toutes les distributions Linux et qui nous permet d’afficher les connexions réseau ouvertes, les tables de routage, les statistiques des interfaces, les connexions masquées, les messages netlink et les membres multicast. Afin de visualiser plus de détails sur les connexions réseaux courantes vous pouvez utiliser les options de la commande « netstat» par exemple la commande « netstat –a» vous permet de visualiser les connexions et des ports en écoute sur la machine.
  • 3. Pour lister les noms des programmes qui ouvert les ports, nous allons exécuter la commande « netstat –nap». Une attaque peut modifier la table de routage pour rediriger les flux sortants de la machine, afin de surpasser à travers les règles du pare-feu. Et pour afficher la table de routage interne utilisez la commande «netstat –rn» ou à l’aide de la commande « route –c ». b) Analyse externe : Dans la plupart des incidents, les programmes malveillants (rootkits , malwares, virus,..) infectent les machines linux en modifiant leurs binaires, en particulier le binaire de « netstat » pour cacher les ports ouvertes et les connexions réseaux camouflés par les programmes malveillants. Pour cela, on va utiliser le l'analyseur réseau (sniffer) wireshark (www.wireshark.org) et le scanneur des ports Nmap ( http://nmap.org). -Wirshark : Connecter la machine de l’investigateur et la machine infectée sur le même HUB ou SWITCH (brancher la machine d’investigation sur un port mirroring pour pouvoir écouter et capter tous les trafics réseau). Ensuite, lancer wirshark et faites un filtre sur l’adresse IP de la machine infectée. Nmap : Lancer un scan avec l’outil nmap depuis l’extérieur sur la machine victime infecté pour lister tous les ports ouverts. 3) Les programmes responsables sur l’ouverture des ports (TCP, UDP) et les fichiers : Après l’identification des ports et les connexions distantes suspectes, il faut vérifier les exécutables qui ouvet les fichiers et les ports TCP et UDP, pour cela, utiliser l’outil « lsof » (LiSt Open File) et appliquer les filtres adéquats en utilisant les options de la commande « losf » suivantes :  lsof -i : afficher seulement les résultats en relation avec les services internet TCP et UDP.  lsof –i tcp : afficher seulement les résultats en relation avec les services internet TCP.  lsof –i udp : afficher seulement les résultats en relation avec les services internet UDP.
  • 4.  losf –i tcp :22 : Pour afficher seulement les résultats en relation avec les services internet TCP sur le port 22.  lsof -i @192.168.1.46 : (Pour afficher seulement les résultats en relation avec les services internet avec l’adresse IP 192.168.1.46. 4) les processus actifs : Habituellement les programmes malveillants (malwares, virus, rootkits,…) lancent des processus suspects. Donc il est très important de savoir les processus en exécutions, et pour cela il suffit d’utiliser la commande « ps -aux ». Dans l’exemple ci-dessus le processus ayant le PID=1199 est exécuté par le utilisateur root. Pour faire un filtre sur un processus vous pouvez utiliser la commande « ps –e | grep nom_process » par exemple pour vérifier le processus ssh ; « ps –e|grep ssh ». 5) Tâches planifiées et services de démarrage : D’une part, la plupart des incidents liées aux systèmes linux, l’attaquant infecte le système en mettant des tâches planifiés ou des services au démarrage qui exécutent certaines commandes ou lancent quelques processus pour ouvrir une porte dérobée sur la machine victime. Vérification des tâches planifiées : il suffit de taper « crontab –l » mais probablement l’exécutable crontab peut être compromis donc il vaut mieux observer manuellement le fichier /etc/crontab. Vérification des services de démarrage : il vaut mieux vérifier sur quel niveau les services démarrages (/etc/init.d/ et /etc/rc.local et /etc/xinit.d) sont chargés avec la commande runlevel et selon ce niveau on visualise le contenue du dossier correspondant (rc0.d/, rc1.d/, rc2.d/,rc3.d/, rc4.d/, rc5.d/, rc6.d/) et n’oubliez pas d’analyse du fichier rc.sysinit. D’autre part, l’évolution des attaques sophistiquées en particulier le rootkit kernel qui s’installe au niveau du noyau, et pour identifier les modules suspectes chargés au niveau du noyau, il suffit d’utiliser la commande « lsmod » qui affiche le nom du module, leur taille et utilisateurs. 6) Les utilisateurs et leur historique : L’identification des utilisateurs connectés sur la machine, les comptes utilisateurs et l’historique des login pour détecter les utilisateurs suspects et voir les commandes qui ont été exécuté par chaque utilisateur.  La commande « last » pour lister toutes les connexions et déconnexions des utilisateurs dans notre système qui ont journalisé dans « /var/log/wtmp »,  La commande « Lastb » se comporte comme last, mais il journalise toutes les tentatives des connexions infructueuses dans « /var/log/btmp».
  • 5.  On peut aussi utiliser la commande « last » avec leurs options par exemple « last -d» pour afficher seulement les connexions distantes ; le nom d'hôte ainsi son adresse IP.  La commande « w » pour afficher les utilisateurs qui ont actuellement connectés sur la machine sont journalisés sous le log «/var/run/utmp»  N’oubliez pas de vérifier la création de nouveaux comptes non autorisés, les comptes sans mots de passe, les changements d’UID sur les comptes déjà existant, pour cela afficher la contenu de fichier « /etc/passwd ».  La commande « history » pour voir toutes commandes exécutées par chaque utilisateur.
  • 6. 7) Intégrité des fichiers binaires : Une attaque peut modifier les binaires usuels (netstat, ls, ps, su, telnet, ifconfig, find, ...) pour cacher leur identité en cas de l’utilisation des ces binaires au cours de la mission d’investigation. Donc, il faut vérifier l’intégrité de ces programmes. Et pour la vérification de l’intégrité des binaires ;  Démarrer sur une distribution linux bootable (par exemple knoppix http://knoppix.net) .Utiliser l’outil « md5sum » de la distribution bootable pour calculer les signatures des binaires de la machine victime, les signatures de la distribution bootable et comparer les deux résultats, si deux signatures d’un même binaires différents alors la machine est certainement compromise par un rootkit.  Ttapez les commandes avec des options réellement inexistants tel que « -/ » (' netstat -/ ', ' ps -/ ', ' ls-/’,..) , ces essais ne devraient retourner que des erreurs ; dans le cas contraire, la machine est certainement compromise par un rootkit. 8) Recherche des fichiers cachés : Généralement un intrus ou un malware dépose souvent dans un répertoire utilisateur, des répertoires cachés avec des noms inhabituels (deux points suivis d’un espace, trois points, deux points suivis d’un control G) ou bien des fichiers dont le nom paraîtrait normal à première vue (".XX" ou ".mail"). Pour chercher ces dossiers cachés on va utiliser la commande suivante : find / -name ".. " -print ou find / -name ".*" -print. 9) Recherche des fichiers setuid et setgid : Recherchez les fichiers setuid et setgid (en particulier les fichiers setuid) dans toute l’arborescence. Tout processus exécutant un fichier ayant setuid peut exécuter ces tâches avec des permissions de super utilisateur root. En effet, la plupart des intrus laissent des exécutables setuid pour pouvoir l’utiliser ultérieurement. Vous pouvez utiliser les commandes suivantes afin de rechercher les fichiers setuid et setgid : find / -user root -perm -4000 -print find / -group root -perm -2000 -print