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

seccomp
Información general
Tipo de programa Aislamiento de procesos
Autor Andrea Arcangeli[1]
Lanzamiento inicial 4 de julio de 2004
Licencia LGPL-2.1
Estado actual En desarrollo
Información técnica
Programado en C
Plataformas admitidas x86, x86_64 , x32, arm, aarch64, mips, mipsel, mips64, mipsel64, mips64n32, mipsel64n32, parisc, parisc64, ppc, ppc64, ppc64le, s390, s390x, riscv64.[2]
Versiones
Última versión estable 2.5.1 (info) ( 20 de octubre de 2020)
Enlaces

Motivación editar

Puede ser dañino permitir a un proceso realizar cualquier llamada al sistema.[3]​ 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.[3]​ Por tanto reducir las llamadas al sistema que proceso puede realizar es útil.[3]

Modos de funcionamiento editar

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().[1]​ Cualquier otra llamada al sistema realizada por el proceso daría como resultado un SIGKILL.[4]​ Esta forma de operar, llamada el modo restringido, provee un fuerte aislamiento pero es poco útil por ser demasiado limitante.[1]​ 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.[1][3]​ 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.[3][5][6]​ Por eso a este modo de funcionamiento también se le llama seccomp-BPF.[6]

Referencias editar

  1. a b c d e Linux Security Modules (LSMs) vs Secure Computing Mode (seccomp). Shaun Ruffell. 18 de marzo de 2020
  2. libseccomp
  3. a b c d e Anatomy of the seccomp. 4 de febrero de 2019
  4. A seccomp overview. Jake Edge. 2 de septiembre de 2015
  5. The Linux Kernel 4.16.0. Seccomp BPF (SECure COMPuting with filters). kernel.org
  6. a b Linux Seccomp Filters. BrookeYang(杨阳). 12 de diciembre de 2019