← Retour aux formations

Cybersécurité & Protection

Collecte et analyse des informations liées à un dysfonctionnement du kernel Linux

Avancé
Cybersécurité & Protection

À propos de cette formation

Le noyau Linux génère de nombreux messages permettant d'identifier l'origine d'un bug ou d'un dysfonctionnement. Cette formation de 2 jours enseigne aux développeurs Linux/Unix comment localiser ces sources d'information (procfs, sysfs, debugfs, pstore), interpréter les messages d'erreur kernel (Oops, panic, tainted) et exploiter les outils de débogage spécialisés (gdb, crash, ftrace, kdump) pour analyser et résoudre les problèmes noyau.

Objectifs de la formation

  • check_circleIdentifier les différentes sources d'information relatives au fonctionnement du noyau Linux
  • check_circleCollecter de manière exhaustive les données liées à un dysfonctionnement du kernel
  • check_circleAnalyser les informations recueillies pour en déduire l'origine du problème

Programme détaillé

Module 1 — Systèmes de fichiers virtuels et debug

  • Système de fichiers virtuel procfs et exposition des informations noyau
  • Système de fichiers virtuel sysfs et interaction avec les pilotes
  • Collecte d'informations de débogage avec debugfs
  • Persistance des données de crash avec pstore
  • Détection de corruption mémoire avec heap/alloc
  • Travaux pratiques : récupération d'un core dump et utilisation de gdb

Module 2 — Erreurs kernel et dialogue avec le noyau

  • Traçage des appels avec cktrace
  • Messages Warn, état Kernel tainted et liste des flags associés
  • Analyse des messages d'erreur critiques : Oops, panic, bug
  • Debug info, kdump et kexec pour la capture de l'état mémoire
  • Exploitation du fichier System.map pour la résolution d'adresses

Module 3 — Configurer son kernel pour améliorer le debug

  • Mise en place d'une console série et spécificités sous Xen
  • kgdb via port série, crash/kdump et traçage avec ftrace
  • Paramètres kernel utiles : panic=oops, vga=, earlyprintk=, ignore_loglevel, initcall_debug, log_buf_len
  • Travaux pratiques : configuration de spin lock et mutex, utilisation de locks printk

Module 4 — Les outils de débogage du kernel

  • Identification des adresses mémoire avec addr2line
  • gdb : utilisation comme outil polyvalent de débogage kernel
  • crash : outil d'analyse dédié aux dumps noyau
  • printk et macros pr_* : définir et formater les messages de débogage
  • dev_*printk : extraction du device et de son driver associé
  • Travaux pratiques : utilisation des outils, mise en place d'une netconsole, débogage avec qemu

Module 5 — Analyser les informations recueillies

  • Méthodologie d'analyse des rapports de bugs kernel
  • Travaux pratiques : analyse de rapports de bugs réels

Prérequis

Bonnes connaissances de Linux/Unix et de la programmation C.