Reverse

Développement Offensif Linux Intermédiaire - 5 jours

Description

L’objectif de cette formation est d’appréhender les fondements du système d’exploitation Linux afin d’implémenter, via les API C bas-niveau, des mécanismes de sécurité offensifs.

Après une première journée de rappel sur les bases du système d’exploitation Linux, les participants apprendront à manipuler les APIs bas niveaux liées aux processus ( création, communication, injection, débogage ). Ils découvriront également le format ELF ainsi que sa représentation en mémoire. Enfin les mécanismes de sécurité ( LSM ), d’isolation ( cgroup, namespaces ), et d’audit du système seront également abordés.

Durant cette formation les participants seront amenés à implémenter un scénario dans lequel un attaquant injectera une librairie dans le service sshd afin d'intercepter puis exfiltrer les mots de passe des utilisateurs, tout en assurant la persistance sur le système en installant une porte-dérobée dans une librairie partagée.

  • 5 jours ( 35 heures )

  • 13h théorie / 22h pratique

Public et prérequis

L'introduction au développement système orienté sécurité sous Linux est une formation de niveau avancé conçue pour les pentesteurs, les développeurs sous Linux et les équipes de sécurité. 

  • Pentesteurs

  • Développeurs Linux

  • Équipes sécurité

De bonnes connaissances en développement C ainsi qu’une bonne culture générale en sécurité sont recommandées.

Contenu

Jour 1

Bases du système d’exploitation Linux : accueil et démarrage des environnements de travail, distributions Linux, shells, système de fichiers, modèle de sécurité, chaîne de compilation, Systemd, D-Bus et PAM.

Jour 2

Format ELF, représentation en mémoire et techniques de hooking.

Jour 3

Processus, threads et injection : création, terminaison, monitoring, API, débogage et injection de processus.

Jour 4

Inter-Process Communication : IPC System V, signaux, sockets.

Jour 5

Mécanismes de sécurité et isolation : LSM (Apparmor & SELinux), Cgroups, Namespaces. Interface noyau / utilisateur.