El segundo sistema operativo secreto que podría hacer que todos los teléfonos móviles sean inseguros

Qualcomm

Cuando hablamos de computadoras (PC, teléfonos inteligentes, automóviles), generalmente asumimos que solo hay un sistema operativo: una sola pieza de software monolítica que administra cada pieza individual de hardware, desde la CPU hasta el controlador USB y la conectividad inalámbrica. Si su sistema falla, casi siempre culpamos al sistema operativo, o quizás a un controlador de software que se vincula al sistema operativo. En casi todos los libros de texto de ciencias de la computación, una computadora consta de solo tres bloques: el hardware, el sistema operativo y luego todo el software (del usuario) que se ejecuta en el sistema operativo. De hecho, sin que el usuario lo sepa, casi todas las computadoras tienen varios sistemas operativos ejecutándose al mismo tiempo, administrando varias partes diferentes de la computadora y, lo que es preocupante, estos sistemas operativos suelen ser propietarios, de código cerrado, plagados de errores y tienen una amplia , acceso de bajo nivel a sus datos.

Tome su teléfono inteligente, por ejemplo. Definitivamente hay un sistema operativo principal, Android, iOS, Windows Phone, pero también hay al menos otros dos sistemas operativos: el sistema operativo de banda base y el sistema operativo de la tarjeta SIM, los cuales se ejecutan en su propio procesador que está separado del SoC. Siempre que su teléfono está encendido, estos sistemas operativos se están ejecutando y administran sus respectivos dominios. Cuando envías un mensaje de texto o recibes una llamada (o haces cualquier cosa inalámbrico), en realidad se pasa al sistema operativo de banda base, que maneja todos los detalles complicados de lidiar con GSM, UMTS, HSPDA, LTE, etc. Cuando necesite algunos datos seguros de la SIM de su teléfono, la tarjeta Java, que tiene acceso exclusivo a los datos cifrados en la SIM, se hace cargo.

Tarjeta SIM, ingeniería inversa, revelando el chip

Una tarjeta SIM de ingeniería inversa. Lo crea o no, hay un pequeño procesador que ejecuta un pequeño sistema operativo.



A primera vista, esta parece una forma bastante sensata de hacer las cosas; después de todo, hay tantos dispositivos de hardware diferentes en una computadora moderna que sería muy difícil para alguien como Google o Apple crear soluciones óptimas para todas las permutaciones . También tiene sentido, desde una perspectiva de eficiencia, tener varias computadoras que funcionan en paralelo; es bueno que el sistema operativo y el procesador de banda base puedan administrar el envío y la recepción de datos celulares, dejando el SoC libre para trabajar en tareas computacionalmente más costosas, como como hacer pequeños sprites de dulces y tocar música desagradablemente alta en el metro. En teoría, este tipo de encapsulación también puede ser más segura; no hay ninguna razón por la que los usuarios deban tener acceso directo a la banda base o la tarjeta SIM, y dicha encapsulación debería evitar que los piratas informáticos / malware accedan también a esas regiones seguras.

En la práctica, sin embargo, estos sistemas operativos a menudo se implementan de una manera muy desordenada e insegura. Para empezar, es importante tener en cuenta que casi todos estos sistemas operativos secundarios son software propietario de código cerrado, desarrollado internamente por el fabricante de hardware (Qualcomm, Broadcom, Realtek, etc.) porque los desarrolladores realmente no tienen una razón legítima Para acceder directamente a estos dispositivos, suele haber muy poca documentación pública sobre cómo funcionan estos sistemas operativos. Además, según Thom Holwerda en OS News, estos sistemas operativos a menudo están desactualizados y llenos de funcionalidad heredada insegura. Todos estos factores se combinan para hacer que estos sistemas operativos secundarios sean muy, muy inseguros.

Nos gustaría darle un ejemplo de un sistema operativo secundario, pero el hecho de que casi no haya documentación pública lo hace muy difícil. El mejor ejemplo que podemos encontrar es el sistema operativo REX de Qualcomm, que impulsó los procesadores de banda base de la empresa desde 1999. Hay indicios de que Qualcomm finalmente dejó de utilizar el sistema operativo REX en 2012, pero es difícil obtener datos definitivos. REX OS es un sistema operativo en tiempo real (RTOS) que se ejecuta en el procesador de banda base de Qualcomm (en este caso, un núcleo ARMv5). El procesador de banda base (y por lo tanto REX OS) tiene acceso directo al hardware del teléfono (parlantes, micrófonos) y también aparentemente la capacidad de escribir en la misma memoria que el SoC (o procesador de aplicaciones). REX OS se basa en una base de código muy antigua y grande de los años 90 e implementa muchos estándares de los 80 (incluido el conjunto de comandos de módem de acceso telefónico de Hayes). Solo conocemos esta información, por cierto, porque un sistema operativo REX de ingeniería inversa hacker (PDF).

Un sitio de celda Sprint en San Francisco: Backhaul (derecha), energía de respaldo (medio), hardware de la estación base (izquierda)

Un sitio de celda Sprint en San Francisco: Backhaul (derecha), energía de respaldo (medio), hardware de la estación base (izquierda). Su teléfono trata todo lo que envía la estación base como ley. Dios nos ayude si alguien descubre cómo hackear una estación base o configura la suya propia.

Como probablemente pueda adivinar, una gran base de código de fuente cerrada que implementa estándares antiguos es una De Verdad mala idea. Holwerda dice que REX OS ejecuta automáticamente cualquier comando que recibe por aire desde la estación base del operador, y sí, en caso de que se lo pregunte, hay comandos que realizan una variedad de actos atroces, como activar la respuesta automática. , ejecutando código arbitrario, o simplemente bloqueando su dispositivo. No hace falta decir que, en teoría, podría configurar su propia estación base (por ejemplo, con radio definida por software) y causan muchos estragos. Cuando escuchas que un iPhone ha sido liberado debido a un exploit de banda base, significa que los piratas informáticos han encontrado un error en el sistema operativo o procesador de banda base que les da acceso elevado al resto del dispositivo.

Este es solo un ejemplo de un sistema operativo secundario. Como mencioné anteriormente, su SIM también tiene un pequeño procesador que ejecuta un pequeño kernel que puede ejecutar software Java. (Los La tarjeta SIM y su sistema operativo fueron pirateados recientemente, dicho sea de paso.) Si su computadora tiene algún tipo de área de almacenamiento segura, como TrustZone de ARM, probablemente también haya otro sistema operativo y procesador separados allí. El tamaño minúsculo de los débiles núcleos ARM y la falta de documentación significa que es muy difícil saber cuántos sistemas operativos discretos se están ejecutando en su computadora al mismo tiempo. En el estilo clásico anterior a Internet, seguridad a través de la oscuridad, no sabremos qué tan seguros son estos sistemas operativos hasta que sean pirateados (públicamente). Si la NSA quisiera implementar un truco a gran escala que le da acceso a las llamadas telefónicas de todos, la banda base sería el lugar para hacerlo.

La única solución real a este problema es alejarse del hardware y software de código cerrado. Hay indicios de que algunos procesadores de banda base se están moviendo hacia soluciones abiertas, como OKL4, pero nuevamente, es muy difícil obtener datos definitivos, porque las empresas comerciales como Qualcomm no tienen la costumbre de transmitir el funcionamiento interno de sus chips. Por el momento, tenga en cuenta que la mayoría de sus dispositivos ejecutan varios sistemas operativos, algunos de los cuales probablemente sean muy inseguros y no hay nada que pueda hacer al respecto.

Copyright © Todos Los Derechos Reservados | 2007es.com