Los smartphones con el sistema operativo Android, tienen un punto débil desde donde se puede acceder al sistema para extraer los datos. Programas como Cellebrite, una suite de herramientas forenses para la extracción de datos, usa el puerto USB para «colarse» en el sistema operativo usando diferentes exploits disponibles. Aunque usemos la opción de «solo carga USB«, realmente el sistema operativo sigue teniendo los datos del USB activados para ciertos dispositivos. Si quieres conocer cómo se usa este punto débil para extraer datos, y cómo puedes mitigarlo, a continuación tenéis todos los detalles.
En la cuenta oficial de X de GrapheneOS, el popular sistema operativo basado en Android y orientado a la privacidad, han explicado el funcionamiento de la opción «solo carga» de los smartphones con una versión de Android «normal», y te anticipamos que no es todo lo seguro que debería ser. Además de la cuenta de X de GrapheneOS, la documentación oficial del proyecto detalla estas medidas de seguridad. Asimismo, la guía de protección avanzada de Android 16 de Google lo confirma.
El modo «solo carga» sigue permitiendo intercambio de datos
Cuando usamos un sistema operativo Android estándar, y lo configuramos en modo «solo carga», significa que el dispositivo tiene MTP habilitado pero con la transferencia de archivos desactivada. Por ejemplo, si intentamos conectar nuestro móvil al PC para transferir archivos, veremos que no es posible, y tendremos que desbloquear el móvil, seleccionar «Transferencia de archivos» y proceder a realizar la copia. En el modo «solo carga», realmente el sistema operativo Android sí tiene datos USB, y una gran cantidad de controladores USB disponibles para conectar ratones, teclados, unidades externas u otros accesorios USB.
En un sistema operativo orientado a la privacidad como GrapheneOS, cuando configuramos el modo «solo carga», significa que realmente los datos USB están desactivados a nivel de hardware, y los controladores USB del kernel de Android están desactivados. Los programas como Cellebrite, usan vulnerabilidades en los USB del kernel de Linux para extraer datos de los dispositivos Android que permiten intercambiar datos a través del USB, aunque tambiénn suelen explotar errores en el firmware del móvil en otros modos de arranque, la mayoría de ataques son al USB. Cellebrite tiene su propia herramienta que finge ser un periférico USB específico, para posteriormente atacar los controladores USB y explotar vulnerabilidades, para así hacerse con el control del sistema y poder extraer los datos.

Aunque el sistema operativo Android 16 ha añadido un modo de protección avanzada de Android, el cual se puede usar para activar nuevas funciones de seguridad como el bloqueo de nuevas conexiones USB a nivel de kernel mientras el dispositivo está bloqueado, GrapheneOS lo que hace es tambié bloquear a nivel de hardware las nuevas conexiones USB, y deshabilita por completo los datos USB. La función estándar de Android que es «solo carga», realmente no bloquea nuevas conexiones USB, solamente no permite usar periféricos USB, además, la depuración USB puede estar activada aún.
| Característica | Android estándar | Android 16 (Protección avanzada) | GrapheneOS |
|---|---|---|---|
| Bloqueo de datos con dispositivo bloqueado | No | Sí (a nivel de kernel, solo carga tras bloquear) | Sí (a nivel de hardware y kernel, desactivación total de datos) |
| Desactivación de controladores USB | No | No | Sí |
| Modos de seguridad configurables | No | No (solo activación de protección avanzada) | Sí (5 modos, incluyendo desactivación completa) |
Lo que hace el sistema operativo GrapheneOS es bloquear las nuevas conexiones USB mientras está bloqueado por defecto, pero lo hace tanto a nivel de software (en el kernel), como también en el hardware. Además, también se podría configurar para desactivar completamente el puerto USB si así lo queremos, tanto para USB-PD como funciones de carga. En este sistema operativo orientado a la privacidad y seguridad, tenemos un total de cinco modos:

















