Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Investigation numérique Microsoft Windows et GNU/Linux
  3. Les concepts fondamentaux de GNU/Linux
Extrait - Investigation numérique Microsoft Windows et GNU/Linux Le guide complet pour l'analyste en investigation numérique
Extraits du livre
Investigation numérique Microsoft Windows et GNU/Linux Le guide complet pour l'analyste en investigation numérique
2 avis
Revenir à la page d'achat du livre

Les concepts fondamentaux de GNU/Linux

Introduction

Ce chapitre est dédié aux concepts fondamentaux propres à l’environnement GNU/Linux. Les notions abordées seront illustrées au travers de la famille Debian, mais pourront s’appliquer également aux autres distributions. Nous considérons ces notions nécessaires à la compréhension des études de cas qui seront détaillées dans le chapitre GNU/Linux : études de cas.

Les concepts présentés ne sont qu’une partie de l’étendue des connaissances existantes pour ce système, mais apportent, selon nous, les bases indispensables pour utiliser au mieux les outils et exploiter correctement les résultats obtenus. Nous ferons référence à de nombreux ouvrages pour compléter ou préciser certaines notions.

Historique

Le système d’exploitation GNU (GNU’s Not Unix) a débuté en 1983 lorsque Richard Stallman décida de développer un système d’exploitation compatible UNIX. Sept années plus tard, le projet GNU/Hurd proposait un ensemble de programmes et de bibliothèques et s’appuyait sur le micro-noyau GNU/Mach. Bien que ce micro-noyau semblait prometteur, c’est finalement vers le noyau Linux, développé par Linus Torvald, que Richard Stallman s’orienta. GNU/Linux était né et avec lui des myriades de déclinaisons à venir.

Notons que le noyau Hurd a fait son chemin, certes plus modeste, avec la Debian GNU/Hurd. Le système d’exploitation macOS s’appuie sur Mach pour son noyau monolithique Xnu.

Nous avons limité nos concepts aux distributions GNU/Linux, ce qui exclut par exemple Chrome OS ou Android. Chrome OS s’appuie sur Linux complété d’un environnement d’exécution basé sur le navigateur Chrome de Google. Android, quant à lui, s’appuie également sur Linux et emprunte quelques outils à GNU, mais cela reste à la marge. Les développeurs d’Android ont développé leurs propres outils (par exemple Bionic remplace la GNU C Library).

Ci-dessous les principales familles GNU/Linux :

  • Debian, probablement l’une...

Présentation de GNU/Linux

1. Noyau

Linux est un noyau dit monolithique c’est-à-dire qu’il fonctionne comme une seule entité et est donc présent sous la forme d’un seul exécutable. Principal composant du système d’exploitation, il sert d’interface entre le matériel et les processus utilisateur. Ses fonctions sont les suivantes :

  • gestion de la mémoire ;

  • gestion des processus ;

  • pilotes de périphériques ;

  • système de fichiers ;

  • réseau ;

  • gestion des interruptions et ordonnancement ;

  • mécanisme de sécurité.

Ci-dessous les fichiers correspondant au noyau présents dans le répertoire /boot :

  • initrd-xxx.img (initial RAM disk) : il s’agit d’une image disque temporaire correspondant à un système de fichiers minimal utilisée lors du processus de démarrage.

  • System.map-xxx : contient une correspondance entre les adresses mémoire et les symboles du noyau. Les symboles sont utilisés pour représenter des fonctions et variables. Il s’agit du fichier le plus intéressant dans le cadre de l’investigation numérique notamment, car les profils Volatility s’appuient dessus.

  • Vmlinuz-xxx : version compressée du noyau. Il est chargé par le chargeur d’amorçage (GRUB) dans la mémoire et est accompagné par le fichier initramfs qui contient les outils et pilotes nécessaires pour monter le système de fichiers racine.

2. Processus

Cette partie étant commune à Microsoft Windows, pour éviter toute redondance, nous ne détaillerons que certaines particularités et invitons le lecteur à compléter avec le chapitre Les concepts fondamentaux de Microsoft Windows.

Les systèmes Linux s’appuient sur le format ELF (Executable and Linkable Format) (figure 1) pour représenter les exécutables, les fichiers objets, les librairies partagées et les core dumps. Les indications Elf64_* font référence aux différentes structures composant ce format et sont consultables ici : http://ftp.rpm.org/api/4.4.2.2/structElf64__Ehdr.html.

IMAGES/03IN01.png

Figure 1 : structure d’un fichier ELF

L’exécutable, une fois lancé, devient un processus avec...

Artefacts

Lors d’une conférence en 2018 intitulée Linux Rapid Compromise Assessment, Craig H. Rowland présente « The Big Five » (https://www.sandflysecurity.com/blog/compromised-linux-cheat-sheet/). Il s’agit des cinq domaines sur lesquels l’analyste doit cibler son analyse.

  • processus ;

  • répertoires

  • fichiers ;

  • utilisateurs ;

  • journaux d’événements.

Nous allons nous appuyer sur ce découpage pour lequel nous ajoutons Système qui va inclure les artefacts résultant de mécanismes internes.

1. Système

a. Données temporelles

Le monde est divisé en vingt-quatre zones tournant autour de l’UTC. Il s’agit donc de la référence de base. La commande suivante indique dans quelle zone se trouve le poste.

Ls -l /etc/localtime  
lrwxrwxrwx 1 root root 39 Oct 27 07:35 /etc/localtime -> 
/usr/share/zoneinfo/America/Los_Angeles 

Pour compléter cela, une base de données des timezones est disponible ici : https://www.iana.org/time-zones. Elle propose des données précises sur le lieu choisi :

# Zone  NAME        STDOFF  RULES   FORMAT  [UNTIL]  
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 20:00u  
            -8:00   US  P%sT    1946  
            -8:00   CA  P%sT    1967  
            -8:00   US  P%sT 

b. Version du système

Le fichier /usr/lib/os-release renseigne sur la distribution et la version du système en cours.

more /usr/lib/os-release 

PRETTY_NAME="Ubuntu 22.04 LTS"  
NAME="Ubuntu"  
VERSION_ID="22.04"  
VERSION="22,04 LTS (Jammy Jellyfish)"  
VERSION_CODENAME=jammy  
ID=ubuntu  
ID_LIKE=debian  
HOME_URL="https://www.ubuntu.com/"  
SUPPORT_URL="https://help.ubuntu.com/"  
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"  
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/...

Références

[1] FAIRBANKS, Kevin D. An analysis of Ext4 for digital forensics. Digital investigation, 2012, vol. 9, p. S118-S130.

[2] GÖBEL, Thomas et BAIER, Harald. Anti-forensic capacity and detection rating of hidden data in the ext4 filesystem. In : Advances in Digital Forensics XIV: 14th IFIP WG 11.9 International Conference, New Delhi, India, January 3-5, 2018, Revised Selected Papers 14. Springer International Publishing, 2018. p. 87-110.

[3] LI, Andrew. Zettabyte File System Autopsy: Digital Crime Scene Investigation for Zettabyte File System. 2009.

[4] CIFUENTES, Jonathan et CANO, Jeimy. Analysis and implementation of anti-forensics techniques on ZFS. IEEE Latin America Transactions, 2012, vol. 10, no 3, p. 1757-1766.

[5] WANI, Mohamad Ahtisham, BHAT, Wasim Ahmad, et DEHGHANTANHA, Ali. An analysis of anti-forensic capabilities of B-tree file system (Btrfs). Australian Journal of Forensic Sciences, 2020, vol. 52, no 4, p. 371-386.

[6] HILGERT, Jan-Niclas, LAMBERTZ, Martin, et YANG, Shujian. Forensic analysis of multiple device BTRFS configurations using The Sleuth Kit. Digital Investigation, 2018, vol. 26, p. S21-S29.

[7] HALCROW, Michael Austin. eCryptfs: An enterprise-class encrypted filesystem for linux. In : Proceedings of the 2005 Linux Symposium. 2005. p. 201-218.

[8] NIKKEL, Bruce. Practical Linux Forensics: A Guide for Digital Investigators. no starch Press, 2021.

[9] FINDLAY, Ben. A review of thumbnail images artefacts in the Linux...