La protección de integridad del sistema ( SIP , [1] a veces denominada rootless [2] [3] ) es una característica de seguridad del sistema operativo macOS de Apple introducida en OS X El Capitan (2015) (OS X 10.11). Comprende una serie de mecanismos que son aplicados por el núcleo . Una pieza central es la protección de los archivos y directorios propiedad del sistema contra modificaciones por parte de procesos sin un "derecho" específico, incluso cuando son ejecutados por el usuario root o un usuario con privilegios root ( sudo ).
Apple afirma que el usuario root puede suponer un riesgo importante para la seguridad del sistema, especialmente en un sistema con una única cuenta de usuario en la que ese usuario también es el administrador. SIP está habilitado de forma predeterminada, pero se puede deshabilitar. [4] [5]
Justificación
Apple afirma que la protección de la integridad del sistema es un paso necesario para garantizar un alto nivel de seguridad. En una de las sesiones de desarrolladores de la WWDC , el ingeniero de Apple Pierre-Olivier Martel describió el acceso root sin restricciones como una de las debilidades restantes del sistema, diciendo que "[cualquier] pieza de malware está a una contraseña o vulnerabilidad de tomar el control total del dispositivo". Afirmó que la mayoría de las instalaciones de macOS tienen solo una cuenta de usuario que necesariamente lleva consigo credenciales administrativas, lo que significa que la mayoría de los usuarios pueden otorgar acceso root a cualquier programa que lo solicite. Siempre que se le solicite a un usuario de un sistema de este tipo e ingrese la contraseña de su cuenta, que Martel dice que a menudo es débil o inexistente, la seguridad de todo el sistema se ve potencialmente comprometida. [4] Restringir el poder de root no es algo sin precedentes en macOS. Por ejemplo, las versiones de macOS anteriores a Mac OS X Leopard imponen el nivel 1 de securelevel , una característica de seguridad que se origina en BSD y sus derivados en los que se basa parcialmente macOS. [6]
Funciones

La protección de la integridad del sistema comprende los siguientes mecanismos:
- Protección de contenidos y permisos del sistema de archivos y directorios del sistema;
- Protección de procesos contra inyección de código , conexión en tiempo de ejecución (como depuración ) y DTrace ;
- Protección contra extensiones de kernel sin firmar ("kexts").
La protección de integridad del sistema protege los archivos y directorios del sistema que están marcados para protección. Esto sucede ya sea agregando un atributo de archivo extendido a un archivo o directorio, agregando el archivo o directorio a /System/Library/Sandbox/rootless.confo ambos. Entre los directorios protegidos están: /System, /bin, /sbin, /usr(pero no /usr/local). [8] Los enlaces simbólicos desde /etc, /tmpy /vara /private/etc, /private/tmpy /private/vartambién están protegidos, aunque los directorios de destino no están protegidos en sí mismos. La mayoría de las aplicaciones Apple preinstaladas en /Applicationstambién están protegidas. [1] El núcleo , XNU , evita que los procesos sin derechos específicos modifiquen los permisos y el contenido de los archivos y directorios marcados y también evita la inyección de código, la conexión en tiempo de ejecución y DTrace con respecto a los ejecutables protegidos . [9]
Desde OS X Yosemite , las extensiones del núcleo, como los controladores , deben estar firmadas con un código de autorización de Apple. Los desarrolladores deben solicitar a Apple un ID de desarrollador con dicha autorización. [10] El núcleo se niega a arrancar si hay extensiones no firmadas, mostrando al usuario un signo de prohibición en su lugar. Este mecanismo, llamado "firma de kext", se integró en la Protección de la integridad del sistema. [4] [11]
La protección de integridad del sistema también desinfectará ciertas variables ambientales al llamar a programas del sistema cuando SIP esté en vigencia. Por ejemplo, SIP desinfectará LD_LIBRARY_PATH y DYLD_LIBRARY_PATH antes de llamar a un programa del sistema como /bin/bash para evitar inyecciones de código en el proceso Bash. [12]
Configuración
Los directorios protegidos por SIP por defecto incluyen: [13]
/System/sbin/bin/usr/Applications
/usrestá protegido con la excepción del /usr/localsubdirectorio. /Applicationsestá protegido para aplicaciones que están preinstaladas con macOS, como Calendario, Fotos, Safari, Terminal, Consola, App Store y Notas. [13]
La protección de integridad del sistema solo se puede desactivar (total o parcialmente) desde fuera de la partición del sistema . Para ello, Apple proporciona la csrutil utilidad de línea de comandos que se puede ejecutar desde una ventana de Terminal dentro del sistema de recuperación o un disco de instalación de macOS de arranque, que agrega un argumento de arranque a la NVRAM del dispositivo . Esto aplica la configuración a todas las instalaciones de El Capitan o macOS Sierra en el dispositivo. [4] Tras la instalación de macOS, el instalador mueve cualquier componente desconocido dentro de los directorios del sistema marcados a /Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/. [1] [4] Al evitar el acceso de escritura a los directorios del sistema, los permisos de archivos y directorios del sistema se mantienen automáticamente durante las actualizaciones de software de Apple. Como resultado, la reparación de permisos no está disponible en la Utilidad de Discos [14] y la diskutiloperación correspondiente.
Recepción
La recepción de System Integrity Protection ha sido mixta. Macworld expresó la preocupación de que Apple podría quitarle el control total a los usuarios y desarrolladores en futuras versiones y mover la política de seguridad de macOS lentamente hacia la del sistema operativo móvil de Apple iOS , con lo cual la instalación de muchas utilidades y modificaciones requiere jailbreaking . [2] [15] Algunas aplicaciones y controladores no funcionarán en toda su extensión o no se podrán operar en absoluto a menos que la función esté deshabilitada, ya sea temporal o permanentemente. Ars Technica sugirió que esto podría afectar a los desarrolladores más pequeños de manera desproporcionada, ya que los más grandes pueden trabajar con Apple directamente. Sin embargo, también remarcaron que la gran mayoría de los usuarios, incluidos los usuarios avanzados , no tendrán una razón para desactivar la función, diciendo que "casi no hay desventajas" en ella. [1]
Véase también
Referencias
- ^ abcd Cunningham, Andrew; Hutchinson, Lee (29 de septiembre de 2015). «OS X 10.11 El Capitan: The Ars Technica Review—System Integrity Protection». Ars Technica . Consultado el 29 de septiembre de 2015 .
- ^ ab Cunningham, Andrew (17 de junio de 2015). "Primer vistazo: OS X El Capitan trae un poco de Snow Leopard a Yosemite". Ars Technica . Consultado el 18 de junio de 2015 .
- ^ Slivka, Eric (12 de junio de 2015). "OS X El Capitan abre la puerta a la compatibilidad con TRIM en SSD de terceros para mejorar el rendimiento". MacRumors . Consultado el 18 de junio de 2015 .
- ^ abcde Martel, Pierre-Olivier (junio de 2015). «Security and Your Apps» (PDF) . Apple Developer . pp. 8–54. Archivado (PDF) desde el original el 23 de abril de 2016. Consultado el 30 de septiembre de 2016 .
- ^ "Configuración de la protección de la integridad del sistema". Biblioteca para desarrolladores de Mac . Apple . 16 de septiembre de 2015. Archivado desde el original el 17 de agosto de 2016 . Consultado el 30 de septiembre de 2016 .
- ^ Garfinkel, Simon; Spafford, Gene ; Schwartz, Alan (2003). Seguridad práctica en UNIX e Internet . O'Reilly Media . Págs. 118-119. ISBN. 9780596003234.
- ^ "Acerca de las pantallas que ves cuando tu Mac se inicia". Soporte técnico de Apple . 13 de agosto de 2015. Archivado desde el original el 21 de abril de 2016 . Consultado el 30 de septiembre de 2016 .
- ^ "Acerca de la protección de integridad del sistema en tu Mac". Soporte técnico de Apple . 30 de mayo de 2016. Archivado desde el original el 20 de marzo de 2016 . Consultado el 30 de septiembre de 2016 .
- ^ "Novedades de OS X: OS X El Capitan v10.11". Biblioteca para desarrolladores de Mac . Apple. Archivado desde el original el 4 de marzo de 2016 . Consultado el 30 de septiembre de 2016 .
Ya no se permiten la inyección de código ni los archivos adjuntos en tiempo de ejecución a los binarios del sistema.
- ^ "Extensiones del kernel". Biblioteca para desarrolladores de Mac . Apple. 16 de septiembre de 2015. Archivado desde el original el 17 de agosto de 2016. Consultado el 29 de septiembre de 2016 .
- ^ "Recorte en Yosemite". Cindori . Consultado el 18 de junio de 2015 .
- ^ Walton, Jeffrey (28 de marzo de 2020). «Parche para Nettle 3.5.1 y OS X 10.12». nettle-bugs (Lista de correo). Archivado desde el original el 14 de julio de 2020. Consultado el 13 de julio de 2020 .
- ^ ab "Cómo comprobar si la protección de integridad del sistema (SIP) está habilitada en Mac". OS X Daily. 1 de agosto de 2018. Consultado el 6 de marzo de 2021 .
- ^ "OS X El Capitan Developer Beta 2 Release Notes". Biblioteca para desarrolladores de Mac . Apple. 22 de junio de 2015. En la sección Notas y problemas conocidos. Archivado desde el original el 26 de junio de 2015. Consultado el 29 de junio de 2015 .
- ^ Fleishman, Glenn (15 de julio de 2015). "Private I: El sistema de protección de la integridad del El Capitán cambiará las funciones de las empresas de servicios públicos". Macworld . Consultado el 22 de julio de 2015 .
Enlaces externos
- Guía de protección de la integridad del sistema en la biblioteca para desarrolladores de Mac de Apple