Cómo comprobar si se aplica un filtro seccomp en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo comprobar si se aplica un filtro seccomp en Linux. Seccomp es una característica de seguridad que restringe las llamadas al sistema que un proceso puede realizar.

Explorarás tres métodos para verificar el estado de seccomp: examinar el archivo /proc/self/status para comprobar el estado de seccomp del proceso, inspeccionar los mensajes del kernel utilizando dmesg para eventos relacionados con seccomp y comprobar el directorio /sys/kernel/security para obtener información de configuración de seccomp. Estos pasos te proporcionarán habilidades prácticas para comprender y verificar la aplicación de seccomp en un entorno Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) 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{{"Cómo comprobar si se aplica un filtro seccomp en Linux"}} linux/cat -.-> lab-558751{{"Cómo comprobar si se aplica un filtro seccomp en Linux"}} linux/cd -.-> lab-558751{{"Cómo comprobar si se aplica un filtro seccomp en Linux"}} linux/grep -.-> lab-558751{{"Cómo comprobar si se aplica un filtro seccomp en Linux"}} end

Comprobar el estado de seccomp con cat /proc/self/status

En este paso, exploraremos cómo comprobar el estado de seccomp de un proceso en Linux. Seccomp (Secure Computing) es una característica de seguridad que permite a un proceso restringir las llamadas al sistema que puede realizar. Esto puede ayudar a mitigar el impacto de las vulnerabilidades de seguridad.

Podemos comprobar el estado de seccomp del proceso actual examinando el archivo /proc/self/status. Este archivo contiene varias informaciones de estado sobre el proceso.

Abre tu terminal si no está abierta. Puedes hacer esto haciendo clic en el icono de Xfce Terminal en el lado izquierdo del escritorio.

Ahora, escribe el siguiente comando y presiona Enter:

cat /proc/self/status

Este comando mostrará el contenido del archivo /proc/self/status. Desplázate por la salida y busca una línea que comience con Seccomp:.

Deberías ver una salida similar a esta:

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 línea Seccomp: indica el estado de seccomp. El valor 0 significa que seccomp no está habilitado para este proceso. Otros valores posibles indican diferentes modos de seccomp.

Comprender la salida de /proc/self/status es una habilidad fundamental para inspeccionar la información de los procesos en Linux.

Haz clic en Continuar para pasar al siguiente paso.

Verificar seccomp en dmesg

En este paso, aprenderemos cómo comprobar los mensajes del kernel relacionados con seccomp utilizando el comando dmesg. dmesg es un comando que muestra los mensajes del buffer circular del kernel. Estos mensajes contienen información sobre el hardware, controladores de dispositivos y otros eventos a nivel de kernel, incluyendo eventos relacionados con la seguridad como las acciones de seccomp.

Cuando seccomp está activo y bloquea una llamada al sistema, el kernel a menudo registra un mensaje en el buffer circular. Podemos usar dmesg para ver estos mensajes y filtrar los relacionados con seccomp.

Abre tu terminal si no está abierta.

Ahora, escribe el siguiente comando y presiona Enter:

dmesg | grep seccomp

Desglosemos este comando:

  • dmesg: Este comando muestra los mensajes del kernel.
  • |: Este es un pipe. Toma la salida del comando de la izquierda (dmesg) y la envía como entrada al comando de la derecha (grep).
  • grep seccomp: Este comando busca líneas que contengan la palabra "seccomp" en la entrada que recibe.

La salida de este comando mostrará cualquier mensaje del kernel que incluya el término "seccomp". En un entorno típico donde seccomp es utilizado por algunos procesos del sistema o contenedores, es posible que veas una salida similar a esta:

[ ... ] 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...

Estos mensajes indican que el sistema de auditoría del kernel está registrando eventos relacionados con seccomp. El campo seccomp= en el mensaje de auditoría muestra el modo de seccomp para el proceso en el momento del evento.

Si no ves ninguna salida, puede significar que no se han registrado recientemente eventos relacionados con seccomp en este entorno específico. Esto también es normal y depende de la actividad del sistema.

Usar dmesg con grep es una forma poderosa de filtrar los mensajes del kernel y diagnosticar problemas u observar eventos de seguridad.

Haz clic en Continuar para pasar al siguiente paso.

Inspeccionar seccomp en /sys/kernel/security

En este último paso, exploraremos el directorio /sys/kernel/security, que proporciona una interfaz a varios módulos de seguridad del kernel, incluyendo seccomp. Este directorio nos permite inspeccionar y, en ocasiones, configurar aspectos relacionados con la seguridad del kernel.

Abre tu terminal si no está abierta.

Primero, naveguemos al directorio /sys/kernel/security. Podemos usar el comando cd para esto:

cd /sys/kernel/security

Ahora que estamos en el directorio /sys/kernel/security, listemos su contenido usando el comando ls:

ls

Deberías ver una lista de directorios y archivos relacionados con diferentes módulos de seguridad. Busca un directorio o archivo relacionado con seccomp. La salida podría verse algo así (el contenido exacto puede variar según el sistema):

apparmor  cap  device_cgroup  lockdown  lsm  selinux  seccomp  smack  tomoyo

Deberías ver un directorio llamado seccomp. Este directorio contiene archivos que proporcionan información sobre la configuración y el estado de seccomp a nivel de kernel.

Naveguemos al directorio seccomp:

cd seccomp

Ahora, listemos el contenido del directorio seccomp:

ls

Podrías ver archivos como policy u otros archivos dependiendo de la versión y configuración del kernel. Estos archivos pueden proporcionar información más detallada sobre las políticas de seccomp que están cargadas o disponibles en el sistema.

Por ejemplo, podrías intentar ver el contenido de un archivo como policy si existe (el nombre del archivo podría ser diferente):

cat policy

La salida de cat policy dependería de si una política de seccomp está activa a nivel de sistema o si este archivo proporciona otra información. En muchas configuraciones estándar, este archivo podría no contener directamente detalles extensos de la política legibles por humanos, pero su presencia indica que seccomp es un módulo de seguridad reconocido.

Explorar el sistema de archivos /sys, particularmente la ruta /sys/kernel/security, es una forma clave de entender las características de seguridad habilitadas y configuradas en tu kernel de Linux.

Ahora has aprendido tres formas diferentes de comprobar el estado de seccomp y la información relacionada en un entorno Linux.

Haz clic en Continuar para completar el laboratorio.

Resumen

En este laboratorio, aprendimos cómo comprobar si se aplica un filtro seccomp en Linux. Exploramos tres métodos: comprobar el archivo /proc/self/status para ver el estado Seccomp: de un proceso, verificar los mensajes relacionados con seccomp en el registro del kernel utilizando dmesg e inspeccionar el estado de seccomp a través del sistema de archivos /sys/kernel/security.

Estos pasos proporcionaron formas prácticas de determinar el estado de seccomp de los procesos y entender cómo el kernel de Linux informa sobre seccomp, lo cual es crucial para el análisis de seguridad y la resolución de problemas.