Este artículo debe actualizarse . Mayo de 2012 ) ( |
Autor (es) original (es) | Andrea Arcangeli |
---|---|
Versión inicial | 8 de marzo de 2005 |
Escrito en | C |
Sistema operativo | Linux |
Tipo | Sandboxing |
Licencia | Licencia pública general GNU |
Sitio web | código |
seccomp (abreviatura de modo de computación segura ) es una instalación de seguridad informática en el kernel de Linux . Seccomp permite a un proceso para hacer una transición de un solo sentido en un estado "seguro" donde no pueda realizar ningún llamadas al sistema , excepto exit()
, sigreturn()
, read()
y write()
que ya abiertos descriptores de fichero . Si intenta cualquier otra llamada al sistema, el kernel terminará el proceso con SIGKILL o SIGSYS . [1] [2] En este sentido, no virtualiza los recursos del sistema sino que aísla el proceso de ellos por completo.
El modo seccomp se habilita a través de la PR_SET_SECCOMP
argumento, o (desde el kernel de Linux 3.17 [3] ) a través de la llamada al sistema. [4] El modo seccomp solía habilitarse escribiendo en un archivo /proc/self/seccomp
, pero este método se eliminó a favor de prctl()
. [5] En algunas versiones del kernel, seccomp deshabilita la instrucción RDTSC
x86 , que devuelve el número de ciclos de procesador transcurridos desde el encendido, que se utiliza para la sincronización de alta precisión. [6]
seccomp-bpf es una extensión de seccomp [7] que permite el filtrado de llamadas al sistema usando una política configurable implementada usando las reglas de Berkeley Packet Filter . Lo utilizan OpenSSH y vsftpd , así como los navegadores web Google Chrome / Chromium en Chrome OS y Linux. [8] (En este sentido, seccomp-bpf logra una funcionalidad similar, pero con más flexibilidad y mayor rendimiento, a la antigua traza del sistema, que parece que ya no es compatible con Linux ).
Algunos consideran que seccomp es comparable a OpenBSD pledge (2) y FreeBSD capsicum (4).
Historia [ editar ]
seccomp fue ideado por primera vez por Andrea Arcangeli en enero de 2005 para su uso en la computación de red pública y originalmente se pensó como un medio para ejecutar de forma segura programas de computación que no son 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. [9]
Software que usa seccomp o seccomp-bpf [ editar ]
- Android usa un filtro seccomp-bpf en el cigoto desde Android 8.0 Oreo. [10]
- systemd 's sandboxing opciones basadas en Seccomp. [11]
- QEMU , el Quick Emulator, el componente central de la virtualización moderna junto con KVM usa seccomp en el parámetro
--sandbox
[12] - Docker : software que permite ejecutar aplicaciones dentro de contenedores aislados. Docker puede asociar un perfil seccomp con el contenedor mediante el
--security-opt
parámetro. - CPUShare de Arcangeli fue el único usuario conocido de seccomp durante un tiempo. [13] Escribiendo en febrero de 2009, Linus Torvalds expresa dudas sobre si seccomp es realmente utilizado por alguien. [14] Sin embargo, un ingeniero de Google respondió que Google está explorando el uso de seccomp para proteger su navegador web Chrome . [15] [16]
- Firejail es un programa de recinto de seguridad 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 aplicaciones de recinto de seguridad de Linux y Wine . [17]
- A partir de la versión 20 de Chrome, seccomp-bpf se utiliza para la zona de pruebas de Adobe Flash Player . [18]
- A partir de la versión 23 de Chrome, seccomp-bpf se utiliza para los renderizadores en la zona de pruebas. [19]
- Snap especifica la forma de la zona de pruebas de su aplicación utilizando "interfaces" que snapd se traduce en seccomp, AppArmor y otras construcciones de seguridad [20]
- vsftpd usa seccomp-bpf sandboxing a partir de la versión 3.0.0. [21]
- OpenSSH admite seccomp-bpf desde la versión 6.0. [22]
- Mbox usa ptrace junto con seccomp-bpf para crear una caja de arena segura con menos gastos generales que ptrace solo. [23]
- LXD, un " hipervisor " de Ubuntu para contenedores [24] [25]
- Firefox y Firefox OS , que utilizan seccomp-bpf [26] [27]
- Tor admite seccomp desde 0.2.5.1-alpha [28]
- Lepton, una herramienta de compresión JPEG desarrollada por Dropbox utiliza seccomp [29]
- Kafel es un lenguaje de configuración, que convierte las políticas legibles en seccompb-bpf bytecode [30]
- Subgraph OS utiliza seccomp-bpf [31] [32]
- Flatpak utiliza Seccomp para aislamiento de proceso [33]
- Bubblewrap es una aplicación de caja de arena liviana desarrollada a partir de Flatpak [34]
- minijail [35] utiliza seccomp para el aislamiento de procesos [36]
Referencias [ editar ]
- ↑ Corbet, Jonathan (2 de septiembre de 2015). "Una descripción general de seccomp" . lwn . Consultado el 5 de octubre de 2017 .
- ^ "Documentación / prctl / seccomp_filter.txt" . Consultado el 5 de octubre de 2017 .
- ^ "Linux kernel 3.17, sección 11. Seguridad" . kernelnewbies.org . 2013-10-05 . 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 . 2014-06-25 . Consultado el 22 de agosto de 2014 .
- ^ {{cite capsicum capsicum_ (unix) web | url = http://lkml.indiana.edu/hypermail/linux/kernel/0706.1/2525.html | title = [PATCH 1 of 2] mover seccomp de / proc a prctl | fecha-acceso = 2013-08-02 | último = Arcangeli | primero = Andrea | fecha = 2007-06-14}}
- ↑ Tinnes, Julien (28 de mayo de 2009). "Contador de marca de tiempo desactivando 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 de seccomp" . lwn . Consultado el 2 de agosto de 2013 .
- ↑ Tinnes, Julien (19 de noviembre de 2012). "Un campo de juego más seguro para los renderizadores de Linux y Chrome OS" . El blog de Chromium . Consultado el 2 de agosto de 2013 .
- ^ "[PATCH] seccomp: soporte informático seguro" . Historia del kernel de Linux . Repositorios de 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 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 el 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 .
- ^ "Firejail" . Firejail . Consultado el 26 de noviembre de 2016 .
- ↑ Evans, Chris (4 de julio de 2012). "Chrome 20 en Linux y Flash sandboxing" . Consultado el 2 de agosto de 2013 .
- ↑ Tinnes, Julien (6 de septiembre de 2012). "Presentamos la zona de pruebas de Linux de próxima generación de Chrome" . blog cr0 . Consultado el 2 de agosto de 2013 .
- ^ "Política de seguridad de Snap" . Archivado desde el original el 4 de febrero de 2017 . Consultado el 3 de febrero de 2017 .
- ↑ Evans, Chris (9 de abril de 2012). "¡El sandboxing del filtro vsftpd-3.0.0 y seccomp ya está aquí!" . Consultado el 2 de agosto de 2013 .
- ^ "Notas de la versión de Openssh 6.0" . Consultado el 14 de octubre de 2013 .
- ^ "MBOX" . Consultado el 20 de mayo de 2014 .
- ^ "LXD un" hipervisor "para contenedores (basado en liblxc)" . 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). "Caja de arena de Firefox Seccomp" . Mozilla Bugzilla . Consultado el 13 de enero de 2015 .
- ↑ Destuynder, Guillaume (13 de septiembre de 2012). "Caja de arena de Firefox Seccomp" . Wiki de Mozilla . Consultado el 13 de enero de 2015 .
- ^ "Tor ChangeLog" .
- ^ "Compresión de imagen Lepton: ahorro del 22% sin pérdida de imágenes a 15 MB / s" . Blog de tecnología de Dropbox . Consultado el 15 de julio de 2016 .
- ^ "Kafel: un idioma y una biblioteca para especificar políticas de filtrado de llamadas al sistema" .
- ^ "Subgraph OS" . Subgrafo . Consultado el 18 de diciembre de 2016 .
- ^ "LoganCIJ16: futuro del sistema operativo" . YouTube . Consultado el 18 de diciembre de 2016 .
- ^ "El modelo de seguridad flatpak - parte 1: los conceptos básicos" . Consultado el 21 de enero de 2017 .
- ^ "plástico de burbujas" . Consultado el 14 de abril de 2018 .
- ^ https://www.chromium.org/chromium-os/developer-guide/chromium-os-sandboxing
- ^ "Minijail [LWN.net]" . lwn.net . Consultado el 11 de abril de 2017 .
Enlaces externos [ editar ]
- Sitio web oficial [ enlace muerto ]
- Sandbox de Google Chromium , LWN.net , agosto de 2009, por Jake Edge
- seccomp-nurse , un marco de espacio aislado basado en seccomp
- Documentation / 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