seccomp (secure computing mode) es una característica del kernel de Linux que permite a un proceso definir un conjunto estricto de llamadas al sistema (syscalls) permitidas. Opera filtrando syscalls a nivel del kernel, interceptando y evaluando cada intento de llamada contra una política predefinida. Si una syscall no está explícitamente permitida por la política, el kernel puede terminar el proceso, enviar una señal o devolver un error. Esto se logra mediante el uso de filtros BPF (Berkeley Packet Filter) que se cargan en el kernel, proporcionando un mecanismo flexible y de alto rendimiento para el filtrado de syscalls.
En el mundo real, seccomp es fundamental para la seguridad de entornos de contenedores y sandboxing. Docker y Kubernetes lo utilizan ampliamente para aplicar políticas de seguridad a los contenedores, restringiendo las syscalls que los procesos dentro de un contenedor pueden ejecutar, incluso si el contenedor tiene privilegios elevados. Por ejemplo, la mayoría de los runtimes de contenedores aplican un perfil seccomp por defecto que bloquea syscalls peligrosas como `reboot`, `mount` o `kexec_load`. Otros proyectos como Chromium (para sandboxing de pestañas) y OpenSSH (para restringir procesos de cliente/servidor) también emplean seccomp para minimizar la superficie de ataque de sus componentes.
Para un Arquitecto de Sistemas, seccomp es una herramienta crítica para implementar el principio de mínimo privilegio y fortalecer la seguridad de las aplicaciones. Su importancia radica en la capacidad de reducir drásticamente la superficie de ataque de un proceso, incluso si este es comprometido, al limitar lo que un atacante puede hacer. Sin embargo, su implementación requiere un análisis cuidadoso: una política seccomp demasiado restrictiva puede causar fallos inesperados en la aplicación, mientras que una política demasiado permisiva anula su propósito. Los arquitectos deben considerar el trade-off entre seguridad y complejidad de configuración, a menudo optando por perfiles predefinidos bien probados o invirtiendo en herramientas que generen perfiles seccomp automáticamente basados en el comportamiento de la aplicación, para asegurar un equilibrio óptimo sin introducir regresiones funcionales.