Los firmwares de Apple dejarán de ser gigantes: ingenieros crean un sistema capaz de analizar decenas de miles de archivos IPSW

Los firmwares de Apple dejarán de ser gigantes: ingenieros crean un sistema capaz de analizar decenas de miles de archivos IPSW

Fin al almacenaje de equipos pesados

image

Investigadores presentaron una herramienta para el análisis de firmwares Apple (IPSW), que permite ahorrar espacio y acelerar el trabajo con imágenes del sistema. El motivo para el desarrollo fue el aumento del tamaño de los archivos IPSW: por ejemplo, las imágenes del iPhone 12 Pro Max y del MacBook Air M1 alcanzan decenas de gigabytes. Almacenar cada versión completa resultó ineficiente, por eso los ingenieros crearon un sistema que extrae solo los datos necesarios.

La solución realiza la indexación automática de una colección de IPSW sin conservar las imágenes, estructura los metadatos en una base y proporciona una interfaz web para búsqueda y filtrado. También se implementó una API, lo que facilita la integración en canalizaciones analíticas.

En una primera etapa se presta atención a los archivos ejecutables. Cada binario se indexa extrayendo los permisos de aplicación para el acceso a recursos del sistema. Al mismo tiempo se registran los marcos (frameworks) utilizados, lo que permite construir un mapa de dependencias. Todos los datos se almacenan en una base relacional, lo que acelera el acceso desde el nombre del binario a sus permisos y bibliotecas.

Existen también herramientas alternativas, por ejemplo el servicio de Jonathan Levin newosxbook.com, el proyecto entdb en GitHub o ipsw de @blacktop. No obstante, la nueva solución destaca por el autoalojamiento completo, lo que es importante para preservar la privacidad.

Los autores describieron en detalle cómo se almacenan los permisos en binarios del formato Mach-O. En particular, la estructura CS_SuperBlob contiene firmas y permisos, y los datos relevantes se encuentran en los bloques con el valor magic CSMAGIC_EMBEDDED_ENTITLEMENTS. En su interior hay un Plist binario donde se enumeran las claves de acceso, por ejemplo com.apple.private.security.disk-device-access o com.apple.private.kernel.system-override.

La parte técnica está implementada en Rust; para la interacción con la base se usa sea_orm, para el enrutamiento HTTP — axum, y para la documentación de la API — utoipa. La interfaz está desarrollada en ReactJS. La base de datos soporta SQLite y PostgreSQL, y en el futuro podría añadirse compatibilidad con MySQL.

Para descargar y montar las imágenes se emplea la utilidad ipsw, que permite trabajar con el firmware como con un sistema de archivos. Ese enfoque es útil al investigar la estructura o verificar cambios.

Los autores señalan que, según sus datos recopilados a través de la API ipsw.me, al momento del lanzamiento de iOS 26.0 había más de 3875 firmwares para iPhone, 6375 para iPad, 1500 para Mac y 20 para Apple Vision Pro (VisionOS). Para evitar que la base crezca de forma lineal, los desarrolladores optimizaron el esquema de almacenamiento, definiendo relaciones muchos a muchos y evitando la duplicación de datos.

La herramienta permite buscar todos los archivos binarios que usan un permiso concreto, rastrear dependencias, comparar versiones de IPSW o analizar las diferencias entre iOS, macOS, tvOS y watchOS. La API facilita la automatización: se pueden indexar periódicamente nuevas imágenes y detectar cambios de forma inmediata.

La parte visual ya está disponible: se publicaron ejemplos de la interfaz y de la arquitectura de la solución.

Vista preliminar de la interfaz web propuesta

Los planes futuros incluyen la generación automática de cabeceras públicas y privadas al publicar nuevas versiones de iOS y macOS. Esto permitirá construir un catálogo completo de clases, métodos y atributos, incluidos los API internos de Apple.

Tu privacidad está muriendo lentamente, pero nosotros podemos salvarla

¡Únete a nosotros!