fbpx

Protección de datos en múltiples capas y SSV

¿Qué es SSV?

macOS Big Sur presenta el concepto de volumen de sistema firmado (SSV). El SSV agrega validación criptográfica del volumen del sistema. En macOS
Big Sur, el kernel rechaza cualquier dato en el SSV que no tenga una firma criptográfica de Apple. Esta protección ayuda a evitar que cualquier cosa, ya sea malintencionada o involuntaria, altere cualquier código que forma parte de macOS.

 

Volumen del sistema firmado

En macOS Catalina, Apple introdujo el volumen de solo lectura , que es un volumen aislado y dedicado para el contenido del sistema. Ahora, macOS Big Sur agrega fuertes protecciones criptográficas para almacenar el contenido del sistema en un volumen del sistema firmado (SSV). SSV cuenta con un mecanismo de kernel que verifica la integridad del contenido del sistema en tiempo de ejecución y rechaza cualquier dato (código y no código) que no tenga una firma criptográfica válida de Apple.

SSV ayuda a evitar la manipulación de cualquier software de Apple que forme parte del sistema operativo. Además, hace que la Actualización de software de macOS sea más confiable y mucho más segura. SSV utiliza instantáneas APFS, por lo que si no se puede realizar una actualización, la versión anterior del sistema se puede restaurar sin reinstalar.

Hashes y sellos

Desde su introducción, APFS ha proporcionado integridad de metadatos del sistema de archivos a través de sumas de comprobación no criptográficas en el disco. SSV refuerza el mecanismo de integridad al cambiar a hash criptográficos y extenderlo para abarcar cada byte de datos de archivo. Los datos del disco se codifican criptográficamente en la ruta de lectura y el hash se compara con un valor esperado en los metadatos del sistema de archivos. En caso de discrepancia, el sistema asume que los datos han sido manipulados y no los devolverá al software solicitante.

Cada hash SSV SHA-256 se almacena en el árbol de metadatos del sistema de archivos principal, que a su vez tiene un hash. Además, cada nodo del árbol verifica de forma recursiva la integridad de los valores hash de sus hijos, de forma similar a un árbol Merkle. Por lo tanto, el valor hash del nodo raíz, llamado sello, abarca cada byte de datos en el SSV, lo que significa que la firma criptográfica cubre todo el volumen del sistema. Durante la instalación y actualización de macOS, este sello se verifica en el dispositivo para garantizar que coincida con la firma de Apple. El sello también se verifica en cada arranque. Específicamente, antes de que se cargue el kernel, el cargador de arranque (parte de la cadena de arranque seguro en los sistemas Mac con el chip de seguridad Apple T2) verifica el sello. Si la verificación falla, el proceso de arranque se detendrá y le pedirá a la persona que reinstale macOS.

Qué extensión del kernel y otros desarrolladores necesitan saber

El volumen del sistema firmado es transparente para la mayoría de los desarrolladores. Los desarrolladores de kernel que deben interactuar con el volumen raíz pueden hacerlo a través de un nuevo modo de protección de integridad del sistema disponible en la csrutilherramienta de línea de comandos. Cuando habilita este modo, permite el etiquetado de instantáneas personalizadas utilizando apfs_systemsnapshot, que luego puede iniciar.

Apple pronto dará a conocer detalles sobre el nuevo formato SSV en disco. Si su aplicación maneja la copia de seguridad de datos o la búsqueda forense, deberá realizar un trabajo adicional para comprenderla y validarla.

Además, es aún más importante que las instancias de arranque de macOS se creen a través de la replicación de volumen de ASR o con el instalador de macOS. Copiar contenido en un nuevo volumen APFS manualmente o usar herramientas como rsyncno conserva el sello y los metadatos SSV criptográficos requeridos y, por lo tanto, ya no generará un macOS de arranque.

Protección de datos en macOS

Data Protection ofrece claves de cifrado por archivo para todos los Apple Silicon Macs. Esto significa que los desarrolladores pueden optar por proporcionar una protección aún más sólida para los datos de los clientes en macOS bloqueando criptográficamente los archivos cuando los datos no se utilizan o cuando el dispositivo en sí está bloqueado.

Los metadatos de cada archivo ahora definen una clase de protección de datos para el archivo. Estas clases dictan cuándo se puede abrir, leer o manipular un archivo. Por ejemplo, la clase Protección completa garantiza que solo se puede acceder al archivo cuando el sistema está desbloqueado. La clase de protección de datos se puede configurar y cambiar fácilmente mediante el uso de clases como Data en Swift y NSData en Objective-C. Los desarrolladores de iOS y iPadOS que ya estén familiarizados con estas clases podrán usar un código similar en macOS.