La Protección de integridad del sistema (SIP) es una política de seguridad general con el objetivo de evitar que terceros modifiquen los archivos y procesos del sistema. Para lograr esto, tiene los siguientes conceptos:
- Protección del sistema de archivos
- Protección de extensión de kernel
- Protección de tiempo de ejecución
Protección del sistema de archivos
SIP evita que otras partes además de Apple agreguen, eliminen o modifiquen directorios y archivos almacenados en ciertos directorios:
/bin
/sbin
/usr
/System
Apple ha indicado que los siguientes directorios están disponibles para que los desarrolladores accedan:
/usr/local
/Applications
/Library
~/Library
Todos los directorios en /usr
excepto /usr/local
están protegidos por SIP.
Es posible agregar, eliminar o cambiar archivos y directorios protegidos por SIP a través de un paquete de instalación firmado por la propia autoridad de certificación de Apple. Esto permite a Apple realizar cambios en las partes del sistema operativo con protección SIP sin necesidad de cambiar las protecciones SIP existentes.
La autoridad de certificación en cuestión está reservada por Apple para su propio uso; Los paquetes de instalador firmados por ID de desarrollador no pueden alterar archivos o directorios protegidos por SIP.
Para definir qué directorios están protegidos, Apple ha definido actualmente dos archivos de configuración en el sistema de archivos. El principal se encuentra en la ubicación a continuación:
/System/Library/Sandbox/rootless.conf
donde rootless.conf
enumera todas las aplicaciones y el nivel superior de directorios que SIP está protegiendo.
Aplicaciones
SIP está protegiendo las aplicaciones principales que OS X instala en Aplicaciones y Utilidades de aplicaciones. Esto significa que ya no será posible eliminar las aplicaciones que OS X instala, incluso desde la línea de comandos cuando se usan los privilegios de root.
Directorios
SIP también está protegiendo una serie de directorios y enlaces simbólicos fuera de /Applications
y el nivel superior de esos directorios también se enumeran en rootless.conf
.
Además de las protecciones, Apple también ha definido algunas excepciones a la protección de SIP en el archivo rootless.conf, y esas excepciones están marcadas con asteriscos. Estas exenciones de la protección de SIP significan que es posible agregar, eliminar o cambiar archivos y directorios dentro de esas ubicaciones.
Entre esas excepciones están las siguientes:
/System/Library/User Template
- donde OS X almacena los directorios de plantillas que usa al crear carpetas de inicio para nuevas cuentas.
/usr/libexec/cups
- donde OS X almacena la información de configuración de la impresora
Apple considera que este archivo es suyo y que los cambios de terceros serán reemplazados por Apple.
Para ver qué archivos han sido protegidos por SIP, use el ls
comando con el guión O mayúscula en la Terminal:
ls -O
Los archivos protegidos con SIP se etiquetarán como restringidos .
Una idea importante que debe saber es que, incluso si un enlace simbólico está protegido por SIP, eso no significa necesariamente que el directorio al que están vinculados esté protegido por SIP. En el nivel raíz de una unidad de arranque de OS X El Capitan, hay varios enlaces simbólicos protegidos con SIP que apuntan a directorios almacenados dentro del directorio de nivel raíz llamado private
.
Sin embargo, cuando private
se examinan los contenidos del directorio, los directorios a los que apuntan esos enlaces simbólicos no están protegidos por SIP y tanto ellos como sus contenidos pueden moverse, editarse o cambiarse mediante procesos usando privilegios de root.
Además de la lista de excepciones SIP que Apple ha establecido rootless.conf
, hay una segunda lista de excepciones SIP. Esta lista incluye varios directorios y nombres de aplicaciones para productos de terceros. De manera similar rootless.conf
, esta lista de exclusión corresponde a los cambios de Apple y de cualquier tercero que Apple sobrescriba.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Protección de tiempo de ejecución
Las protecciones de SIP no se limitan a proteger el sistema de los cambios del sistema de archivos. También hay llamadas al sistema que ahora están restringidas en su funcionalidad.
- task_for_pid () / processor_set_tasks () falla con EPERM
- Los puertos especiales de Mach se reinician en exec (2)
- las variables de entorno dyld se ignoran
- Sondas DTrace no disponibles
Sin embargo, SIP no bloquea la inspección por parte del desarrollador de sus propias aplicaciones mientras se están desarrollando. Las herramientas de Xcode continuarán permitiendo que las aplicaciones sean inspeccionadas y depuradas durante el proceso de desarrollo.
Para obtener más detalles sobre esto, recomiendo echar un vistazo a la documentación del desarrollador de Apple para SIP .
Protección de extensión de kernel
SIP bloquea la instalación de extensiones de kernel sin firmar. Para instalar una extensión de kernel en OS X El Capitan con SIP habilitado, una extensión de kernel debe:
- Firmar con una ID de desarrollador para firmar el certificado Kexts
- Instalar en / Biblioteca / Extensiones
Si instala una extensión de kernel sin firmar, primero será necesario deshabilitar SIP.
Para obtener más información sobre la administración de SIP, consulte el siguiente enlace:
Protección de integridad del sistema: agregar otra capa al modelo de seguridad de Apple
sudo
y la solicitud de contraseña han funcionado como normal / anteriormente / esperado. Entonces, probablemente la respuesta sea "la mayoría de las veces no lo notarás; cuando lo hagas, lo notarás mucho".