Instalación Sandbox para el kernel de Linux.
seccomp (abreviatura de informática segura [1] ) es una instalación de seguridad informática en el kernel de Linux . seccomp permite que un proceso realice una transición unidireccional a un estado "seguro" en el que no puede realizar ninguna llamada al sistema excepto a , exit()
y a descriptores de archivos ya abiertos . Si intenta realizar otras llamadas al sistema, el kernel simplemente registrará el evento o finalizará el proceso con SIGKILL o SIGSYS . [2] [3] En este sentido, no virtualiza los recursos del sistema sino que aísla el proceso de ellos por completo.sigreturn()
read()
write()
El modo seccomp se habilita a través de la prctl(2)
llamada al sistema usando el PR_SET_SECCOMP
argumento, o (desde el kernel de Linux 3.17 [4] ) a través de la seccomp(2)
llamada al sistema. [5] El modo seccomp solía habilitarse escribiendo en un archivo, /proc/self/seccomp
pero este método se eliminó en favor de prctl()
. [6] En algunas versiones del kernel, seccomp desactiva la instrucción RDTSC
x86 , que devuelve el número de ciclos del procesador transcurridos desde el encendido, que se utiliza para una sincronización de alta precisión. [7]
seccomp-bpf es una extensión de seccomp [8] que permite filtrar llamadas al sistema usando una política configurable implementada usando reglas de filtro de paquetes de Berkeley . Lo utilizan OpenSSH [9] y vsftpd , así como los navegadores web Google Chrome/Chromium en ChromeOS y Linux. [10] (En este sentido, seccomp-bpf logra una funcionalidad similar, pero con más flexibilidad y mayor rendimiento, a la del sistema anterior , que parece que ya no es compatible con Linux ).
Algunos consideran que seccomp es comparable al compromiso de OpenBSD (2) y al capsicum de FreeBSD (4) [ cita necesaria ] .
Historia
seccomp fue ideado por primera vez por Andrea Arcangeli en enero de 2005 para su uso en computación grid pública y originalmente estaba pensado como un medio para ejecutar de forma segura programas vinculados a computación que no eran de confianza . Se fusionó con la línea principal del kernel de Linux en la versión 2.6.12 del kernel, que se lanzó el 8 de marzo de 2005. [11]
Software que utiliza seccomp o seccomp-bpf
- Android utiliza un filtro seccomp-bpf en el cigoto desde Android 8.0 Oreo. [12]
- Las opciones de espacio aislado de systemd se basan en seccomp. [13]
- QEMU , el emulador rápido, el componente central de la virtualización moderna junto con KVM utiliza seccomp en el parámetro
--sandbox
[14] - Docker : software que permite que las aplicaciones se ejecuten dentro de contenedores aislados. Docker puede asociar un perfil seccomp con el contenedor usando el
--security-opt
parámetro. - CPUShare de Arcangeli fue el único usuario conocido de seccomp durante un tiempo. [15] En un escrito de febrero de 2009, Linus Torvalds expresa sus dudas sobre si alguien utiliza realmente seccomp. [16] Sin embargo, un ingeniero de Google respondió que Google está explorando el uso de seccomp para proteger su navegador web Chrome . [17] [18]
- Firejail es un programa sandbox de Linux de código abierto que utiliza espacios de nombres de Linux , Seccomp y otras características de seguridad a nivel de kernel para proteger aplicaciones Linux y Wine . [19]
- A partir de la versión 20 de Chrome, seccomp-bpf se utiliza para proteger Adobe Flash Player . [20]
- A partir de la versión 23 de Chrome, seccomp-bpf se utiliza para proteger los renderizadores. [21]
- Snap especifica la forma del entorno limitado de su aplicación utilizando "interfaces" que snapd se traduce en seccomp, AppArmor y otras construcciones de seguridad [22]
- vsftpd utiliza el entorno limitado de seccomp-bpf a partir de la versión 3.0.0. [23]
- OpenSSH admite seccomp-bpf desde la versión 6.0. [9]
- Mbox usa ptrace junto con seccomp-bpf para crear un entorno limitado seguro con menos gastos generales que ptrace solo. [24]
- LXD, un " hipervisor " de Ubuntu para contenedores [25] [26]
- Firefox y Firefox OS , que utilizan seccomp-bpf [27] [28]
- Tor soporta seccomp desde 0.2.5.1-alpha [29]
- Lepton, una herramienta de compresión JPEG desarrollada por Dropbox utiliza seccomp [30]
- Kafel es un lenguaje de configuración que convierte políticas legibles en código de bytes seccompb-bpf [31]
- El sistema operativo Subgraph utiliza seccomp-bpf [32] [33]
- Flatpak usa seccomp para el aislamiento de procesos [34]
- Bubblewrap es una aplicación sandbox liviana desarrollada a partir de Flatpak [35]
- minijail [36] usa seccomp para aislamiento de procesos [37]
- SydBox usa seccomp-bpf [38] para mejorar el tiempo de ejecución y la seguridad del sandboxing de ptrace utilizado para construir paquetes de sandbox en la distribución Exherbo Linux.
- File, un programa Unix para determinar tipos de archivos, utiliza seccomp para restringir su entorno de ejecución [39]
- Zathura , un visor de documentos minimalista, utiliza el filtro seccomp para implementar diferentes modos de espacio aislado [40]
- Tracker , una aplicación de indexación y vista previa para el entorno de escritorio GNOME, utiliza seccomp para evitar la explotación automática de vulnerabilidades de análisis en archivos multimedia [41]
Referencias
- ^
seccomp(2)
: "La llamada al sistema seccomp() opera en el estado de Computación segura (seccomp)" - Manual del programador de Linux - Llamadas al sistema - ^ Corbet, Jonathan (2 de septiembre de 2015). "Una descripción general de segundo". lwn . Consultado el 5 de octubre de 2017 .
- ^ "Documentación/prctl/seccomp_filter.txt" . Consultado el 5 de octubre de 2017 .
- ^ "Núcleo de Linux 3.17, Sección 11. Seguridad". kernelnewbies.org . 05/10/2013 . Consultado el 31 de marzo de 2015 .
- ^ "seccomp: agregue" seccomp "syscall". kernel/git/torvalds/linux.git: árbol de fuentes del kernel de Linux . kernel.org . 25 de junio de 2014 . Consultado el 22 de agosto de 2014 .
- ^ Arcángeli, Andrea (14 de junio de 2007). "[PARCHE 1 de 2] mueve seccomp de /proc a prctl" . Consultado el 2 de agosto de 2013 .
- ^ Tinnes, Julien (28 de mayo de 2009). "Contador de marca de tiempo que desactiva rarezas en el kernel de Linux". blog cr0 . Consultado el 2 de agosto de 2013 .
- ^ Corbet, Jonathan (11 de enero de 2012). "Otro nuevo enfoque más para seccomp". lwn . Consultado el 2 de agosto de 2013 .
- ^ ab "Notas de la versión de Openssh 6.0" . Consultado el 14 de octubre de 2013 .
- ^ Tinnes, Julien (19 de noviembre de 2012). "Un campo de juego más seguro para sus renderizadores de Linux y Chrome OS". El blog de cromo . Consultado el 2 de agosto de 2013 .
- ^ "[PATCH] seccomp: soporte informático seguro". Historia del kernel de Linux . Repositorios git de Kernel.org. 2005-03-08. Archivado desde el original el 15 de abril de 2013 . Consultado el 2 de agosto de 2013 .
- ^ "Filtro Seccomp en Android O". Blog de desarrolladores de Android .
- ^ "systemd.exec: configuración del entorno de ejecución". freedesktop.org . Consultado el 14 de octubre de 2017 .
- ^ Otubo, Eduardo (15 de septiembre de 2017). "Solicitud de extracción de nuevo modelo de QEMU Sandboxing". Archivo de lista de correo de qemu-devel .
- ^ van de Ven, Arjan (28 de febrero de 2009). "Re: [estable] [PATCH 2/2] x86-64: seccomp: arreglar el agujero de llamada al sistema 32/64". Lista de correo del kernel de Linux . Consultado el 2 de agosto de 2013 .
- ^ Torvalds, Linus (28 de febrero de 2009). "Re: [PATCH 2/2] x86-64: seccomp: arreglar el agujero de llamada al sistema 32/64". Lista de correo del kernel de Linux . Consultado el 2 de agosto de 2013 .
- ^ Gutschke, Markus (6 de mayo de 2009). "Re: [PATCH 2/2] x86-64: seccomp: arreglar agujero de llamada al sistema 32/64" . Consultado el 2 de agosto de 2013 .
- ^ Gutschke, Markus (6 de mayo de 2009). "Re: [PATCH 2/2] x86-64: seccomp: arreglar el agujero de llamada al sistema 32/64". Lista de correo del kernel de Linux . Consultado el 2 de agosto de 2013 .
- ^ "Cárcel de incendios". Cárcel de fuego . Consultado el 26 de noviembre de 2016 .
- ^ Evans, Chris (4 de julio de 2012). "Chrome 20 en Linux y zona de pruebas de Flash" . Consultado el 2 de agosto de 2013 .
- ^ Tinnes, Julien (6 de septiembre de 2012). "Presentación del entorno limitado de Linux de próxima generación de Chrome". blog cr0 . Consultado el 2 de agosto de 2013 .
- ^ "Política de seguridad rápida". Archivado desde el original el 4 de febrero de 2017 . Consultado el 3 de febrero de 2017 .
- ^ Evans, Chris (9 de abril de 2012). "¡Vsftpd-3.0.0 y el entorno limitado de filtros seccomp ya están aquí!" . Consultado el 2 de agosto de 2013 .
- ^ "MBOX" . Consultado el 20 de mayo de 2014 .
- ^ "LXD un" hipervisor "para contenedores (basado en liblxc)". 4 de noviembre de 2014 . Consultado el 8 de noviembre de 2014 .
- ^ "Hacia dónde vamos con LXD" . Consultado el 8 de noviembre de 2014 .
- ^ Destuynder, Guillaume (13 de septiembre de 2012). "Zona de pruebas de Firefox Seccomp". Mozilla Bugzilla . Consultado el 13 de enero de 2015 .
- ^ Destuynder, Guillaume (13 de septiembre de 2012). "Zona de pruebas de Firefox Seccomp". Wiki de Mozilla . Consultado el 13 de enero de 2015 .
- ^ "Registro de cambios de Tor".
- ^ "Compresión de imágenes Lepton: ahorro del 22% sin pérdidas a partir de imágenes a 15 MB/s". Blog de tecnología de Dropbox . Consultado el 15 de julio de 2016 .
- ^ "Kafel: un lenguaje y una biblioteca para especificar políticas de filtrado de llamadas al sistema".
- ^ "Subgrafo SO". Subgrafo . Consultado el 18 de diciembre de 2016 .
- ^ "LoganCIJ16: el futuro del sistema operativo". YouTube . Archivado desde el original el 21 de diciembre de 2021 . Consultado el 18 de diciembre de 2016 .
- ^ "El modelo de seguridad Flatpak - parte 1: conceptos básicos" . Consultado el 21 de enero de 2017 .
- ^ "papel de burbujas" . Consultado el 14 de abril de 2018 .
- ^ "Chromium OS Sandboxing: los proyectos de Chromium".
- ^ "Minicárcel [LWN.net]". lwn.net . Consultado el 11 de abril de 2017 .
- ^ "núcleo/traza/use_seccomp". dev.exherbo.org . Consultado el 31 de mayo de 2021 .
- ^ "Sandboxing de aplicaciones de archivos". GitHub .
- ^ "Implementación de Zathura seccomp".
- ^ "Implementación de seccomp del rastreador de Gnome".
enlaces externos
- Sitio web oficial (Archivado)
- Sandbox Chromium de Google, LWN.net , agosto de 2009, por Jake Edge
- seccomp-nurse, un marco de pruebas basado en seccomp
- Documentación/prctl/seccomp_filter.txt, parte de la documentación del kernel de Linux
- Seguridad en profundidad para software Linux: prevención y mitigación de errores de seguridad