GrapheneOS: ¿Que es esta alternativa a Android y qué cambios presenta su versión 2024011300?
![GrapheneOS](https://blog.desdelinux.net/wp-content/uploads/2024/01/GrapheneOS.jpg)
GrapheneOS es una bifurcación del proyecto AndroidHardening
Hace pocos días se dio a conocer la liberación de la nueva versión de GrapheneOS 2024011300, versión en la cual se ha reescrito la implementación de reinicio automático, se ha integrado un nuevo visor de registros, se ha actualizado el kernel, se han implementado mejoras y más.
Para quiénes desconocen de GrapheneOS, deben saber que esta es una bifurcación del código base AOSP (Android Open Source Project), la cual se ha extendido y modificado para mejorar la seguridad y garantizar la privacidad de los usuarios. GrapheneOS solía llamarse AndroidHardening y se separó del proyecto CopperheadOS debido a conflictos entre sus fundadores.
Entre las principales características y enfoques de GrapheneOS, se destaca:
- Aislamiento y control de acceso: Se implementan tecnologías experimentales para fortalecer el aislamiento de aplicaciones y el control de acceso granular. Esto incluye la utilización de una implementación propia de malloc, una versión modificada de libc con protección contra corrupción de memoria y una división más rígida del espacio de direcciones del proceso.
- Compilación AOT y No JIT: Android Runtime utiliza solo compilación AOT (antes de tiempo) en lugar de JIT (just-in-time).
- Kernel de Linux protegido: El kernel de Linux incluye numerosos mecanismos de protección adicionales, como etiquetas canary para bloquear desbordamientos de búfer. SELinux y seccomp-bpf se utilizan para mejorar el aislamiento de las aplicaciones.
- Control de permisos específicos: Se permite el acceso a operaciones de red, sensores, libreta de direcciones y dispositivos periféricos solo a aplicaciones seleccionadas. La lectura desde el portapapeles está permitida solo para aplicaciones con foco de entrada.
- Privacidad de identificadores: Por defecto, se prohíbe obtener información sobre IMEI, dirección MAC, número de serie de la tarjeta SIM y otros identificadores de hardware.
- Seguridad: Se implementan medidas adicionales para aislar procesos relacionados con Wi-Fi y Bluetooth y evitar fugas de actividad inalámbrica.
- Cifrado avanzado: Utiliza verificación criptográfica de componentes de carga y cifrado avanzado a nivel del sistema de archivos ext4 y f2fs (los datos se cifran usando AES-256-XTS y los nombres de los archivos son AES-256-CTS usando HKDF-SHA512 para generar una clave separada para cada file ), en lugar de un dispositivo de bloque
- Sin Google:Básicamente, no incluye aplicaciones y servicios de Google, pero permite instalar los servicios de Google Play en un entorno aislado.
- Desarrollo de aplicaciones propias: El proyecto desarrolla varias aplicaciones propias centradas en la seguridad y la privacidad, como un navegador basado en Chromium (Vanadium), un visor de PDF seguro, un firewall, una aplicación Auditor para verificación de dispositivos y detección de intrusos, una aplicación de cámara centrada en la privacidad y un sistema de respaldo cifrado llamado Seedvault.
¿Qué novedades presenta la nueva versión de GrapheneOS 2024011300?
En esta nueva versión que se presenta de GrapheneOS 2024011300, uno de sus cambios más importantes es el rediseño completo de la implementación del mecanismo de reinicio automático, ya que ahora, este mecanismo utiliza un temporizador en el proceso de inicio en lugar de en el proceso system_server, lo que ha mejorado la seguridad y eliminado la posibilidad de reiniciar un dispositivo que nunca ha sido desbloqueado. Además, se ha reducido el tiempo de reinicio automático de 72 a 18 horas.
Se menciona que la idea principal del reinicio automático es restablecer las particiones activadas (descifradas) con datos del usuario a su estado original sin descifrar después de un cierto período de inactividad. Los datos del perfil del usuario se cifran después de reiniciar el dispositivo y se descifran solo después de que el usuario ingrese la contraseña de inicio de sesión. Si el usuario no ha desbloqueado la sesión activada durante más de 18 horas, el dispositivo se reiniciará automáticamente. El tiempo de espera para el reinicio automático se puede modificar en Configuración > Seguridad > Reinicio automático.
Los desarrolladores de GrapheneOS citan que a justificación de esta función se basa en vulnerabilidades recientemente descubiertas en teléfonos inteligentes Google Pixel y Samsung Galaxy. Estas vulnerabilidades permiten que empresas de análisis forense espíen a los usuarios y extraigan datos mientras el dispositivo está en estado activado, es decir, cuando la sesión está activa y los datos están descifrados. La introducción del reinicio automático ayuda a mitigar este riesgo al reiniciar el dispositivo después de un período de inactividad prolongado, evitando así el análisis no autorizado de las claves que puedan permanecer en la memoria si el dispositivo cae en manos equivocadas.
Otro de los cambios que se destaca de la nueva versión es la actualización del kernel de Linux en los dispositivos Pixel y que la compatibilidad con sysrq está deshabilitada. Para los dispositivos Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet y Pixel Fold, se ha actualizado a la última versión de GKI (Generic Kernel Image), que es la 5.10.206. Mientras que para los dispositivos Pixel 8 y Pixel 8 Pro, la actualización del kernel es a la versión 5.15.145. Además, se han preparado compilaciones con el kernel 6.1.69. Estas actualizaciones pueden incluir mejoras de seguridad, correcciones de errores y nuevas características proporcionadas por las últimas versiones del kernel de Linux.
Además de ello, también se destaca que se ha agregado un visor de registros (Configuración > Sistema > Ver registros), que permite evaluar problemas emergentes y simplificar la preparación de informes de errores, asi como tambien que se ha rediseñado la interfaz para enviar informes de fallos.
En adevtool se ha introducido el soporte para Pixel Camera Service, con lo cual ahora se permite usar el modo nocturno en aplicaciones en teléfonos inteligentes Pixel 6+. Por otra parte, adevtool ha dejado de admitir dispositivos que no son compatibles con Android 14.
De los demás cambios que se destacan:
- Se agregó una salida de notificación cuando se activa el detector de corrupción de memoria en malloc.
- El navegador Vanadium se ha actualizado al código base Chromium 120
- GmsCompatConfig: actualización a la versión 92
- mostrar notificación después de que hardened_malloc detecta daños en la memoria mediante una verificación directa (no cubre los daños en la memoria detectados a través del espacio de direcciones protegido de la memoria)
Finalmente, cabe mencionar que para los interesados en poder conocer más al respecto, pueden consultar los detalles en el siguiente enlace.