Comment vérifier si un filtre seccomp est appliqué sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à vérifier si un filtre seccomp (Secure Computing Mode) est appliqué sous Linux. Seccomp est une fonctionnalité de sécurité qui restreint les appels système qu'un processus peut effectuer.

Vous allez explorer trois méthodes pour vérifier l'état de seccomp : examiner le fichier /proc/self/status pour vérifier l'état seccomp du processus, inspecter les messages du noyau à l'aide de la commande dmesg pour les événements liés à seccomp, et vérifier le répertoire /sys/kernel/security pour obtenir des informations de configuration sur seccomp. Ces étapes vous fourniront des compétences pratiques pour comprendre et vérifier l'application de seccomp dans un environnement Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/ls -.-> lab-558751{{"Comment vérifier si un filtre seccomp est appliqué sous Linux"}} linux/cat -.-> lab-558751{{"Comment vérifier si un filtre seccomp est appliqué sous Linux"}} linux/cd -.-> lab-558751{{"Comment vérifier si un filtre seccomp est appliqué sous Linux"}} linux/grep -.-> lab-558751{{"Comment vérifier si un filtre seccomp est appliqué sous Linux"}} end

Vérifier l'état de seccomp avec cat /proc/self/status

Dans cette étape, nous allons explorer comment vérifier l'état de seccomp (Secure Computing) d'un processus sous Linux. Seccomp est une fonctionnalité de sécurité qui permet à un processus de restreindre les appels système qu'il peut effectuer. Cela peut aider à atténuer l'impact des vulnérabilités de sécurité.

Nous pouvons vérifier l'état de seccomp du processus actuel en examinant le fichier /proc/self/status. Ce fichier contient diverses informations d'état sur le processus.

Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous pouvez le faire en cliquant sur l'icône Xfce Terminal sur le côté gauche du bureau.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

cat /proc/self/status

Cette commande affichera le contenu du fichier /proc/self/status. Faites défiler la sortie et recherchez une ligne commençant par Seccomp:.

Vous devriez voir une sortie similaire à celle-ci :

Name:   zsh
Umask:  0002
State:  R (running)
Tgid:   ...
Ngid:   0
Pid:    ...
PPid:   ...
TracerPid:      0
Uid:    ...
Gid:    ...
FDSize: 64
Groups: ...
NStgid: ...
NSpid:  ...
NSpgid: ...
NSsid:  ...
VmPeak: ... kB
VmSize: ... kB
VmLck:  0 kB
VmPin:  0 kB
VmHWM:  ... kB
VmRSS:  ... kB
RssAnon:        ... kB
RssFile:        ... kB
RssShmem:       ... kB
VmData: ... kB
VmStk:  ... kB
VmExe:  ... kB
VmLib:  ... kB
VmPTE:  ... kB
VmSwap: 0 kB
HugetlbPages:   0 kB
CoreDumpFilter: 00000000
Threads:        1
SigQ:   .../...
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
voluntary_ctxt_switches:        ...
nonvoluntary_ctxt_switches:     ...
Seccomp:        0

La ligne Seccomp: indique l'état de seccomp. La valeur 0 signifie que seccomp n'est pas activé pour ce processus. D'autres valeurs possibles indiquent différents modes de seccomp.

Comprendre la sortie de /proc/self/status est une compétence fondamentale pour inspecter les informations sur les processus sous Linux.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier seccomp avec dmesg

Dans cette étape, nous allons apprendre à vérifier les messages du noyau liés à seccomp (Secure Computing) en utilisant la commande dmesg. dmesg est une commande qui affiche les messages du tampon circulaire du noyau. Ces messages contiennent des informations sur le matériel, les pilotes de périphériques et d'autres événements au niveau du noyau, y compris les événements liés à la sécurité tels que les actions de seccomp.

Lorsque seccomp est actif et bloque un appel système, le noyau enregistre souvent un message dans le tampon circulaire. Nous pouvons utiliser dmesg pour afficher ces messages et filtrer ceux liés à seccomp.

Ouvrez votre terminal s'il n'est pas déjà ouvert.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

dmesg | grep seccomp

Décortiquons cette commande :

  • dmesg : Cette commande affiche les messages du noyau.
  • | : C'est un tuyau (pipe). Il prend la sortie de la commande de gauche (dmesg) et l'envoie en entrée à la commande de droite (grep).
  • grep seccomp : Cette commande recherche les lignes contenant le mot "seccomp" dans l'entrée qu'elle reçoit.

La sortie de cette commande montrera tous les messages du noyau qui incluent le terme "seccomp". Dans un environnement typique où seccomp est utilisé par certains processus système ou conteneurs, vous pourriez voir une sortie similaire à celle-ci :

[ ... ] audit: type=1326 audit(...): auid=... uid=... gid=... ses=... subj=unconfined seccomp=0 pid=... comm="..." exe="..." sig=0 arch=c000003e syscall=... compat=0 ip=... code=0x...
[ ... ] audit: type=1326 audit(...): auid=... uid=... gid=... ses=... subj=unconfined seccomp=2 pid=... comm="..." exe="..." sig=0 arch=c000003e syscall=... compat=0 ip=... code=0x...

Ces messages indiquent que le système d'audit du noyau enregistre les événements liés à seccomp. Le champ seccomp= dans le message d'audit montre le mode seccomp du processus au moment de l'événement.

Si vous ne voyez aucune sortie, cela peut signifier qu'aucun événement lié à seccomp n'a été enregistré récemment dans cet environnement spécifique. Cela est également normal et dépend de l'activité du système.

L'utilisation de dmesg avec grep est un moyen puissant de filtrer les messages du noyau et de diagnostiquer des problèmes ou d'observer des événements de sécurité.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter seccomp dans /sys/kernel/security

Dans cette étape finale, nous allons explorer le répertoire /sys/kernel/security, qui offre une interface vers divers modules de sécurité du noyau, y compris seccomp (Secure Computing). Ce répertoire nous permet d'inspecter et parfois de configurer des aspects liés à la sécurité du noyau.

Ouvrez votre terminal s'il n'est pas déjà ouvert.

Tout d'abord, naviguons jusqu'au répertoire /sys/kernel/security. Nous pouvons utiliser la commande cd pour cela :

cd /sys/kernel/security

Maintenant que nous sommes dans le répertoire /sys/kernel/security, listons son contenu en utilisant la commande ls :

ls

Vous devriez voir une liste de répertoires et de fichiers liés à différents modules de sécurité. Recherchez un répertoire ou un fichier lié à seccomp. La sortie pourrait ressembler à ceci (le contenu exact peut varier en fonction du système) :

apparmor  cap  device_cgroup  lockdown  lsm  selinux  seccomp  smack  tomoyo

Vous devriez voir un répertoire nommé seccomp. Ce répertoire contient des fichiers qui fournissent des informations sur la configuration et l'état de seccomp au niveau du noyau.

Naviguons dans le répertoire seccomp :

cd seccomp

Maintenant, listons le contenu du répertoire seccomp :

ls

Vous pourriez voir des fichiers tels que policy ou d'autres fichiers en fonction de la version et de la configuration du noyau. Ces fichiers peuvent fournir des informations plus détaillées sur les politiques seccomp chargées ou disponibles sur le système.

Par exemple, vous pouvez essayer d'afficher le contenu d'un fichier comme policy s'il existe (le nom du fichier pourrait être différent) :

cat policy

La sortie de cat policy dépendra de si une politique seccomp est active à l'échelle du système ou si ce fichier fournit d'autres informations. Dans de nombreuses configurations standard, ce fichier peut ne pas contenir directement de détails de politique lisibles par l'homme, mais sa présence indique que seccomp est un module de sécurité reconnu.

Explorer le système de fichiers /sys, en particulier le chemin /sys/kernel/security, est un moyen clé de comprendre les fonctionnalités de sécurité activées et configurées dans votre noyau Linux.

Vous avez maintenant appris trois façons différentes de vérifier l'état de seccomp et les informations associées dans un environnement Linux.

Cliquez sur Continuer pour terminer le lab.

Résumé

Dans ce lab, nous avons appris à vérifier si un filtre seccomp (Secure Computing) est appliqué sous Linux. Nous avons exploré trois méthodes : vérifier le fichier /proc/self/status pour voir le statut Seccomp: d'un processus, vérifier les messages liés à seccomp dans le journal du noyau en utilisant dmesg, et inspecter l'état de seccomp via le système de fichiers /sys/kernel/security.

Ces étapes ont fourni des moyens pratiques de déterminer l'état de seccomp des processus et de comprendre comment seccomp est signalé par le noyau Linux, ce qui est crucial pour l'analyse de sécurité et la résolution de problèmes.