Seccomp
# Seccomp

Secure Computing mode, abreviado en seccomp, es una facilidad del kernel Linux que permite limitar las llamadas al sistema que un proceso puede realizar.

## Motivación

Puede ser dañino permitir a un proceso realizar cualquier llamada al sistema. Por ejemplo, si un proceso es comprometido, es habitual que el atacante ejecute código que lance llamadas al sistema que el proceso no lanzaría en una ejecución normal. Por tanto reducir las llamadas al sistema que proceso puede realizar es útil.

## Modos de funcionamiento

Inicialmente seccomp se propuso como una forma para que un proceso se ejecute de forma que solo se pueden realizar las llamadas al sistema exit, sigreturn y sobre ficheros ya abiertos realizar read y write. Cualquier otra llamada al sistema realizada por el proceso daría como resultado un SIGKILL. Esta forma de operar, llamada el modo restringido, provee un fuerte aislamiento pero es poco útil por ser demasiado limitante. Por eso posteriormente se introdujo el modo filtro de seccomp que introduce flexibilidad permitiendo a los procesos definir la política de filtrado de llamadas del sistema que utiliza y añadir un nuevo programa de filtrado al kernel para aplicarselo. El filtrado de las llamadas se expresa con un lenguaje extensión del clásico Berkeley Packet Filter (BPF), usado en filtros de socket, en el que los datos sobre los que se opera están relacionados con las llamadas al sistema que se están realizando: Número de llamada del sistema y argumentos de la llamada al sistema. Por eso a este modo de funcionamiento también se le llama seccomp-BPF.

