Copie d`une image d`une machine compromise
Transcription
Copie d`une image d`une machine compromise
Copie d’une image d’une machine compromise Version du 07/11/2012 Cette procédure décrit les opérations à effectuer, suite à un incident de sécurité, pour copier une image des disques afin de permettre une analyse ultérieure et servir de preuves. Elle suppose que la machine a été arrêtée. Préalablement à l’arrêt de la machine il faut avoir récupéré les informations volatiles que se trouvent en mémoire, cela est décrit dans cet autre document. En ce qui concerne les machines virtuelles, la procédure est différente et décrite dans cet autre document. Préalables Disposer d’une distribution Linux « bootable » sur un support amovible (CD, DVD, clé USB). Chacun utilisera celle qui lui est la plus familière. A défaut on peut suggérer d’utiliser SystemRescueCD. Avec cette distribution, il est très facile de créer une clé USB « bootable » ce qui peut être très utile lorsque la machine ne possède pas de lecteur de CD. Disposer d’un disque d’une capacité suffisante pour stocker l’image. Attention, on a généralement tendance à sous-estimer la taille des disques. Le disque doit être monté dans un boîtier externe ou une station d’accueil qui dispose d’une connexion USB (eSata est aussi possible pour le matériel récent). Ce disque doit être formaté en ext3 (un système de fichier FAT ne permet pas d’avoir des fichiers dont la taille est supérieure à 4Go). Il faut commencer par effacer totalement le disque avant de créer un système de fichier qui fait la totalité du disque. Il est important de ne pas se tromper de disque. Dans la suite il faut remplacer le « X » dans le device par la lettre correspondant au disque. fdisk –l /dev/sdX # pour vérifier que l’on ne va pas écraser le mauvais disque dd if=/dev/zero of=/dev/sdX bs=4k # mise à zéro du disque cfdisk /dev/sdX # création de la table des partitions ; # choisir tout le disque, type=83 (Linux), sauver mkfs.ext3 /dev/sdX1 # formatage de la partition mount /dev/sdX1 <point de montage> # vérification que la partition se monte bien umount /dev/sdX1 # démontage de la partition Il préférable de s’être préparé à un incident et d’avoir sous la main tous ces éléments. Penser que les opérations de préparation du disque prennent du temps, surtout pour un gros disque. Avoir récupéré les informations en mémoire qui pouvaient l’être avant l’arrêt de la machine. Opérations 1. Introduire le support (CD ou clé USB) contenant la distribution Linux. 2. Démarrer la machine et faire les actions nécessaires au niveau du BIOS afin que le système soit chargé à partir de ce support. 3. Lors du prompt au démarrage du système activer les bonnes options. Les points importants sont : a. désactivation si nécessaire du swap (option noswap sur une Knoppix) pour éviter que la distribution n’écrase lors du démarrage la partition de swap existante ; b. s’assurer que la distribution ne monte pas automatiquement les disques, il peut être nécessaire d’activer une option ; c. choix du clavier (généralement les machines ont un clavier français alors que les distributions sont configurés par défaut en clavier US) ; d. lors du prompt au démarrage le clavier a la disposition US, en tenir compte pour saisir des valeurs, en particulier les chiffres doivent être entrés en minuscule. 4. Une fois la distribution complètement démarrée, si ce n’est pas déjà le cas, basculer en mode « root » su 5. Connecter le disque qui va recevoir la copie (celui-ci doit être formaté en ext3). 6. Repérer les devices utilisés pour accéder aux différents disques. Généralement ils sont de la forme /dev /sdX où X est une lettre. Il faut déterminer lesquels sont utilisés pour le disque d’origine et celui de destination. La commande fdisk -l peut être utile. 7. Monter le disque destiné à recevoir la copie, on supposera dans la suite que ce soit /dev/sdb mkdir /mnt/copie fdisk -l /dev/sdb # pourt vérifier que l’on monte le bon disque mount /dev/sdb1 /mnt/copie 8. Vérifier que l'on a bien monté le disque de copie ls -al /mnt/copie ne doit renvoyer que « . » et « .. », et peut-être « lost+found » 9. Créer un répertoire pour la copie, par exemple mkdir /mnt/copie/<serveur> # Il est commode de choisir pour <serveur> le nom ou l’IP 10. Se placer dans le répertoire de la copie cd /mnt/copie/<serveur> 11. Copier toutes les partitions du serveur d'origine. Pour une machine Windows on se contentera généralement de copier l’ensemble du disque et non pas partition par partition (il faut dire que Windows est rarement partitionné), par exemple de la façon suivante dcfldd if=/dev/sda1 of=./sda1.dd bs=8M hash=sha1 hashlog=./sda1.sha1 Cette commande a l’avantage de calculer un haché en même temps que la copie. Si elle n’est pas disponible il faudra utiliser la commande dd dd if=/dev/sda1 of=./sda1.dd bs=8M En cas d’erreur en lecture, il inutile de calculer un haché. Utiliser alors dd avec l’option conv=sync,noerr et en réduisant la taille du bloc. dd if=/dev/sda1 of=./sda1.dd bs=4k conv=sync,noerror SI la commande ddrescue est disponible, plutôt que dd avec l’option conv=sync,noerr, il est possible d’utiliser ddrescue qui tente de récupérer le maximum d’informations sur un disque présentant des défauts (il réessaye plusieurs fois les lectures). Attention sa syntaxe diffère de celle de dd ou dcfldd ddrescue /dev/sda1 ./sda1.dd ./logfile 12. Copier toutes les partitions de tous les disques (sauf, évidemment, celui de réception de la copie) 13. Penser à récupérer le partitionnement des disques copiés fdisk -lu /dev/sda > ./fdisk.sda 14. Recopier le début des disques copiés, il contient notamment le secteur de boot qui a pu être compromis dd if= /dev/sda of=./MBR.sda bs=1M count=1 15. Arrêter le système et conserver précieusement le disque destination des copies. Avant de procéder à une éventuelle analyse, il faut procéder à une copie des informations contenues sur ce disque et on travaillera sur cette copie. 16. Si dans le cadre d’une procédure judiciaire, il faut fournir à la police le disque il faut faire 2 autres copies du disque résultat de la copie. En effet la police demande 2 copies, une pour les scellés et une qui servira à l’analyse. Il faut aussi conserver une copie pour soi.