De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

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 prctl(2)llamada al sistema usando el PR_SET_SECCOMPargumento, o (desde el kernel de Linux 3.17 [3] ) a través de la seccomp(2)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-optpará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 ]

  1. Corbet, Jonathan (2 de septiembre de 2015). "Una descripción general de seccomp" . lwn . Consultado el 5 de octubre de 2017 .
  2. ^ "Documentación / prctl / seccomp_filter.txt" . Consultado el 5 de octubre de 2017 .
  3. ^ "Linux kernel 3.17, sección 11. Seguridad" . kernelnewbies.org . 2013-10-05 . Consultado el 31 de marzo de 2015 .
  4. ^ "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 .
  5. ^ {{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}}
  6. 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 .
  7. Corbet, Jonathan (11 de enero de 2012). "Otro nuevo enfoque de seccomp" . lwn . Consultado el 2 de agosto de 2013 .
  8. 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 .
  9. ^ "[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 .
  10. ^ "Filtro Seccomp en Android O" . Blog de desarrolladores de Android .
  11. ^ "systemd.exec - Configuración del entorno de ejecución" . freedesktop.org . Consultado el 14 de octubre de 2017 .
  12. Otubo, Eduardo (15 de septiembre de 2017). "Solicitud de extracción de nuevo modelo de QEMU Sandboxing" . Archivo de lista de correo qemu-devel .
  13. 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 .
  14. 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 .
  15. 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 .
  16. 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 .
  17. ^ "Firejail" . Firejail . Consultado el 26 de noviembre de 2016 .
  18. Evans, Chris (4 de julio de 2012). "Chrome 20 en Linux y Flash sandboxing" . Consultado el 2 de agosto de 2013 .
  19. 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 .
  20. ^ "Política de seguridad de Snap" . Archivado desde el original el 4 de febrero de 2017 . Consultado el 3 de febrero de 2017 .
  21. 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 .
  22. ^ "Notas de la versión de Openssh 6.0" . Consultado el 14 de octubre de 2013 .
  23. ^ "MBOX" . Consultado el 20 de mayo de 2014 .
  24. ^ "LXD un" hipervisor "para contenedores (basado en liblxc)" . Consultado el 8 de noviembre de 2014 .
  25. ^ "Hacia dónde vamos con LXD" . Consultado el 8 de noviembre de 2014 .
  26. Destuynder, Guillaume (13 de septiembre de 2012). "Caja de arena de Firefox Seccomp" . Mozilla Bugzilla . Consultado el 13 de enero de 2015 .
  27. Destuynder, Guillaume (13 de septiembre de 2012). "Caja de arena de Firefox Seccomp" . Wiki de Mozilla . Consultado el 13 de enero de 2015 .
  28. ^ "Tor ChangeLog" .
  29. ^ "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 .
  30. ^ "Kafel: un idioma y una biblioteca para especificar políticas de filtrado de llamadas al sistema" .
  31. ^ "Subgraph OS" . Subgrafo . Consultado el 18 de diciembre de 2016 .
  32. ^ "LoganCIJ16: futuro del sistema operativo" . YouTube . Consultado el 18 de diciembre de 2016 .
  33. ^ "El modelo de seguridad flatpak - parte 1: los conceptos básicos" . Consultado el 21 de enero de 2017 .
  34. ^ "plástico de burbujas" . Consultado el 14 de abril de 2018 .
  35. ^ https://www.chromium.org/chromium-os/developer-guide/chromium-os-sandboxing
  36. ^ "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