Sistemas operativos, CPUs ocultos en el interior de tu Android

Cuando hablamos de smartphones generalmente asumimos, que en nuestro caso se trata de Android como principal sistema operativo. Pero lo que muchas veces se nos pasa por alto es que no se trata del único sistema que se encuentra en el móvil.

La electrónica y construcción de nuestro smartphone es un proceso sumamente complejo en la que intervienen multitud de aspectos. A pesar de ello solemos imaginarnos que todo se reduce básicamente a un solo sistema operativo con sus aplicaciones corriendo sobre él y movido por un hardware concreto.

Sin embargo, sin el conocimiento de la mayoría de usuarios, casi todos los equipos tienen múltiples sistemas operativos funcionando al mismo tiempo. Y lo preocupante es que estos además de que no suelen ser libres, contienen errores que pueden poner en riesgo nuestros datos.

Un vistazo a…
Samsung GALAXY S22, S22+ y S22 Ultra en MÉXICO: primeras impresiones

Modems y la segunda CPU

Cuando el smartphone está encendido y se envía un mensaje de texto o se recibe una llamada el sistema operativo se encarga que interprete ciertos protocolos y transmita paquetes de información al operador correspondiente.

Los móviles de hoy en día soportan multitud de complejos protocolos tales como los GSM, 3G, HSDPA, LTE… todos ellos requieren de una cantidad significativa de capacidad de procesamiento para funcionar. Esta potencia sin embargo no está proporcionada solo por la clásica CPU que también dota de energía al resto del equipo.

Si lo enfocamos desde un punto de vista de la eficiencia del sistema, veremos que hay muchos computadores que trabajan con núcleos y CPUs en paralelo. Y aquí es donde entran las CPUs secundarias que se encuentran en el interior de las tarjetas SIM o de los modems de nuestro Android.

Estas CPUs son los llamados procesadores de banda base (baseband processors). Básicamente chips encargados de gestionar las funciones de radio (todas aquellos que requieren una antena). No hablamos necesariamente del Wi-Fi o Bluetooth, pero sí de las comunicaciones de datos. Estos procesadores de banda base utilizan su propia memoria RAM y firmware. Y los nombres de sus fabricantes nos son algo conocidos; Qualcomm, Mediatek e Infineon.

La razón para crear un procesador de banda base separado del procesador principal se basa principalmente en tres razones.

Rendimiento

La radio controla las funciones de señal modulada, codificación y variación de la frecuencia. Estas dependen en gran medida del tiempo y requieren un sistema operativo en tiempo-real como en seguida veremos. Estos algoritmos de procesamiento de la señal digital son muy variables pero también muy específicos. Por lo que una CPU low-cost que no requiera altos requisitos y/o una gran batería ofrecerá una baja latencia y un rendimiento suficientemente elevado, ideal para esta tarea.

Legal

Algunas autoridades como por ejemplo la Federal Communications Commission (FCC) requieren que la parte del software que se comunica con la red esté certificada. Separando la CPU y el sistema del modem en distintos componentes permite obtener esta certificación sin tener que hacerlo con todo el procesador principal.

Seguridad

Utilizar una CPU distinta de la principal para encargarse de la radio permite la independencia de esta de los cambios que puedan existir en las distintas versiones de Android. Lo que se traduce en una mayor seguridad y estabilidad.

Los hay de muchos tipos, pero estos procesadores de banda de base suelen ser principalmente ARM, no los potentes Cortex-A15 sino una gama especialmente diseñada para ofrecer un alto rendimieto en sistemas integrados. La serie Cortex-R es la idónea para estas CPU secundarias y ya se ofrece en cientos de millones de productos, básicamente en casi todos los dispositivos móviles de hoy en día. ARM sabe que cada componente requiere ciertas especificaciones y tiene muy en cuenta a los Cortex-R tanto para sus planes de desarrollo como de soporte continuo.

Sistemas operativos propietarios

Las CPU de estos chips necesitan una serie de software concreto para realizar sus diversas funciones. Este software constituye un sistema operativo completo diseñado para trabajar en estas condiciones de recursos mínimos. Ocupan solo unos cientos de kilobytes y manejan cantidades muy pequeñas de memoria, son los llamados Real Time Operating Systems (RTOS).

Tenemos entonces al final una CPU ARM, algo de memoria y unos cuantos procesadores de la señal digital embutidos en un chip dentro de cada modem, que a su vez está dentro de cada smartphone. Estos se encargan de controlar el software del GPS, GLONASS, de la radio, de la USIM y de todas las especificaciones 3GPP.

Este software se maneja a través de unos sistemas operativos de tiempo real que son bastante desconocidos. Los fabricantes que hay detrás no tienen intención de publicar una documentación detallada y al alcance de cualquiera, por lo que ha resultado bastante difícil dilucidar algo concreto acerca de estos sistemas privativos. Intentaremos en la medida de lo posible arrojar un poco más de luz acerca de un par de ellos.

Nucleus

El primer RTOS del que hablaremos es Nucleus, un conjunto de herramientas creado por la Embedded Systems Division of Mentor Graphics compatible con varias plataformas. Nucleus es un software integrado en más de 3000 millones de dispositivos (año 2010), una cantidad enorme pero lógica si pensamos la cantidad de dispositivos móviles que hay en circulación.

Desarrollar para este sistema se hace a través de Windows o Linux y las aplicaciones se compilan para ser utilizadas en todo tipo de dispositivos, no solo móviles, también electrónica de consumo y dispositivos como auriculares o micrófonos. Es compatible con procesadores ARM Cortex-M3/M4 y puede llegar a ocupar tan solo 13KB.

Nucleus se utiliza para acceder a los sensores que controlan el Bluetooth, el USB Host, OTG, la trasferencia multimedia MTP y hasta el sistema de archivos FAT o el CD-ROM. PCI, PCI-X y hasta 60 drivers y protocolos distintos como son los TCP/IP o el wifi IEEE 802.11. Un RTOS con una amplia compatibilidad que encontramos en lugares muy dispares.

Vulnerabilidades en la seguridad

Como seguramente estan de acuerdo, un código cerrado que encima implanta estándares antiguos no es una muy buena idea. Sistemas y kernels como REX OS muchos veces funcionan de manera semi-automática, generando una respuesta predefinida y ejecutando un código concreto que no podemos manipular desde Android. Todas estas acciones se generan sin nuestro consentimiento ni conocimiento, pues forman parte de la microelectrónica del dispositivo.

Por la propia seguridad del sistema, los fabricantes ocultan las partes del código para que los programadores interesados no fisgoneen. Esta curiosidad es precisamente la que lleva a estos hackers a encontrar exploits en los RTOS y que permiten acceder luego a partes del smartphone más elevadas y en principio prohibidas.

En la práctica, estos sistemas operativos contienen una cantidad muy variable de errores. Y al ser sistemas privativos, son los propios ingenieros de la marca los que tienen el trabajo de solucionar todos los bugs. Como encima nadie tiene acceso legal a los dispositivos, normalmente hay pocas razones para mostrar documentación pública sobre como el sistema funciona.

Qualcomm, el mayor fabricante de todos los nombrados, no parece por la labor de compartir sus avances. El modo de proceder se remonta a la época de los ochenta, cuando el compartir la información era algo común y la vía de acceder al código fuente era hackeándolo, lo que programadores como Guillaume Delugre han hecho con REX OS.

Delugre pudo comprobar lo que hace unos años el investigador en seguridad Ralf-Philipp Weinmann publicó en su libro “Baseband apocalypse”. Si hay bugs y vulnerabilidades, hay problemas de seguridad y puertas traseras. Y los RTOS secundarios de los chips de Qualcomm o Infineon actualmente presentan una gran probabilidad de ser explotados por código malicioso externo por aquellos con conocimiento suficiente.

Un poco de luz en el interior de nuestro Android

El interior de nuestro smartphone estará seguro mientras se quede en su sitio. Pero tenemos unos procesadores de banda de base masivamente utilizados y muy poco conocidos. Con toda la conmoción que ha habido con las escuchas procedentes de organizaciones gubernamentales no deberíamos sorprendernos si el tema de la seguridad de estos chips preocupa hasta a la industria aeroespacial.

Esperamos que a medida que este software vaya convirtiéndose en algo más complejo no aumenten ni el número de bugs ni su oscurantismo. Necesitamos seguridad en nuestros dispositivos, y al menos la sensación de ella se consigue con una información públicas y clara.

Fuente | Android Authority | ARM | Extremetech

Ver todos los comentarios en https://www.xataka.com.mx

VER 0 Comentario

Portada de Xataka México