Stagefright es el nombre dado a un grupo de errores de software que afectan a las versiones desde 2.2 "Froyo" hasta 5.1.1 "Lollipop" [1] del sistema operativo Android, exponiendo aproximadamente 950 millones de dispositivos (el 95% de todos los dispositivos Android) en ese momento. [1] El nombre se toma de la biblioteca afectada, que entre otras cosas, se utiliza para descomprimir mensajes MMS . [2] La explotación del error permite a un atacante realizar operaciones arbitrarias en el dispositivo de la víctima a través de la ejecución remota de código y la escalada de privilegios . [3] Los investigadores de seguridad demuestran los errores con una prueba de concepto que envía mensajes MMS especialmente diseñados al dispositivo de la víctima y, en la mayoría de los casos, no requiere acciones del usuario final al recibir el mensaje para tener éxito: el usuario no tiene que hacer nada para "aceptar" los exploits que utilizan el error; sucede en segundo plano. Un número de teléfono es la única información necesaria para llevar a cabo el ataque. [4] [5] [6] [1]
El vector de ataque subyacente explota ciertas vulnerabilidades de desbordamiento de enteros en el componente principal de Android llamado libstagefright , [7] [8] [9] que es una biblioteca de software compleja implementada principalmente en C++ como parte del Proyecto de código abierto de Android (AOSP) y utilizada como un motor de backend para reproducir varios formatos multimedia como archivos MP4 . [1] [10]
Los errores descubiertos han sido provistos con múltiples identificadores de vulnerabilidades y exposiciones comunes (CVE) , CVE - 2015-1538, CVE-2015-1539, CVE-2015-3824, CVE-2015-3826, CVE-2015-3827, CVE-2015-3828, CVE-2015-3829 y CVE-2015-3864 (el último ha sido asignado por separado de los otros), que se conocen colectivamente como el error Stagefright. [11] [12] [13]
Para explotar la vulnerabilidad no se necesita específicamente un mensaje MMS [14] (que fue solo un ejemplo del uso de la vulnerabilidad para RCE), pero cualquier otro procesamiento de los medios específicamente diseñados por el componente vulnerable es suficiente, eso se puede hacer a través de la mayoría de las aplicaciones que tienen que lidiar con archivos multimedia pero no usan códecs de medios de software puro (que es lento y no es energéticamente eficiente) incluidos en su propio paquete (lo que aumenta el tamaño de una aplicación e impone costos adicionales injustificados a su desarrollador), como reproductores/galerías de medios, navegadores web (pueden causar un compromiso automático ) y administradores de archivos que muestran miniaturas (se pueden usar para lograr persistencia).
El error Stagefright fue descubierto por Joshua Drake de la firma de seguridad Zimperium , y fue anunciado públicamente por primera vez el 27 de julio de 2015. Antes del anuncio, Drake informó del error a Google en abril de 2015, que incorporó una corrección de errores relacionada en sus repositorios de código fuente internos dos días después del informe. [4] [5] [6] [1] En julio de 2015, Evgeny Legerov, un investigador de seguridad con sede en Moscú, anunció que había encontrado al menos dos vulnerabilidades de día cero de desbordamiento de pila similares en la biblioteca Stagefright, afirmando al mismo tiempo que la biblioteca ya había sido explotada durante un tiempo. Legerov también confirmó que las vulnerabilidades que descubrió se vuelven inexplotables al aplicar los parches que Drake envió a Google. [3] [15]
La divulgación pública completa del error Stagefright, presentada por Drake, tuvo lugar el 5 de agosto de 2015 en la conferencia de seguridad informática Black Hat USA [16] , y el 7 de agosto de 2015 en la convención de hackers DEF CON 23 [17] . [1] Tras la divulgación, el 5 de agosto de 2015, Zimperium publicó el código fuente de un exploit de prueba de concepto, parches reales para la biblioteca Stagefright (aunque los parches ya estaban disponibles públicamente desde principios de mayo de 2015 en el AOSP y otros repositorios de código abierto [18] [19] ), y una aplicación de Android llamada "detector Stagefright" que prueba si un dispositivo Android es vulnerable al error Stagefright. [12] [20]
El 13 de agosto de 2015, Exodus Intelligence publicó otra vulnerabilidad de Stagefright, CVE - 2015-3864. [13] Esta vulnerabilidad no fue mitigada por las correcciones existentes de vulnerabilidades ya conocidas. El equipo de CyanogenMod publicó un aviso de que se habían incorporado parches para CVE-2015-3864 en el código fuente de CyanogenMod 12.1 el 13 de agosto de 2015. [21]
El 1 de octubre de 2015, Zimperium publicó detalles de otras vulnerabilidades, también conocidas como Stagefright 2.0. Esta vulnerabilidad afecta a archivos MP3 y MP4 especialmente diseñados que ejecutan su carga útil cuando se reproducen utilizando el servidor multimedia de Android. La vulnerabilidad ha recibido el identificador CVE - 2015-6602 y se encontró en una biblioteca principal de Android llamada libutils; un componente de Android que ha existido desde que Android se lanzó por primera vez. Android 1.5 a 5.1 son vulnerables a este nuevo ataque y se estima que mil millones de dispositivos están afectados. [22]
Si bien Google mantiene el código base y el firmware principal de Android , las actualizaciones para varios dispositivos Android son responsabilidad de los operadores inalámbricos y los fabricantes de equipos originales (OEM). Como resultado, la propagación de parches a los dispositivos reales a menudo introduce largas demoras debido a una gran fragmentación entre los fabricantes, las variantes de dispositivos, las versiones de Android y varias personalizaciones de Android realizadas por los fabricantes; [23] [24] además, muchos dispositivos más antiguos o de menor costo pueden nunca recibir el firmware parcheado. [25] Muchos de los dispositivos sin mantenimiento necesitarían ser rooteados, lo que viola los términos de muchos contratos inalámbricos. Por lo tanto, la naturaleza del error Stagefright resalta las dificultades técnicas y organizativas asociadas con la propagación de parches de Android. [5] [26]
En un intento por abordar los retrasos y problemas asociados con la propagación de parches de Android, el 1 de agosto de 2015 Zimperium formó la Zimperium Handset Alliance (ZHA) como una asociación de diferentes partes interesadas en intercambiar información y recibir actualizaciones oportunas sobre los problemas relacionados con la seguridad de Android. Los miembros de la ZHA también recibieron el código fuente del exploit Stagefright de prueba de concepto de Zimperium antes de que se lanzara públicamente. A partir del 6 de agosto de 2015 [actualizar], 25 de los mayores fabricantes de equipos originales y operadores inalámbricos de dispositivos Android se han unido a la ZHA. [12] [18] [27]
Existen ciertas mitigaciones del error Stagefright para dispositivos que ejecutan versiones de Android sin parches, incluyendo la desactivación de la recuperación automática de mensajes MMS y el bloqueo de la recepción de mensajes de texto de remitentes desconocidos. Sin embargo, estas dos mitigaciones no son compatibles con todas las aplicaciones MMS (la aplicación Google Hangouts , por ejemplo, solo admite la primera), [3] [5] y no cubren todos los vectores de ataque factibles que hacen posible la explotación del error Stagefright por otros medios, como abrir o descargar un archivo multimedia malicioso utilizando el navegador web del dispositivo . [7] [28]
En un principio se pensó que una mayor mitigación podría venir de la función de aleatorización del diseño del espacio de direcciones (ASLR) que se introdujo en Android 4.0 "Ice Cream Sandwich" , totalmente habilitada en Android 4.1 "Jelly Bean" ; [7] [29] La versión de Android 5.1 "Lollipop" incluye parches contra el error Stagefright. [11] [30] Desafortunadamente, resultados posteriores y exploits como Metaphor que evitan ASLR se descubrieron en 2016.
A partir de Android 10, los códecs de software se trasladaron a un entorno aislado que mitiga eficazmente esta amenaza para los dispositivos capaces de ejecutar esta versión del sistema operativo. [7] [31]
{{cite web}}
: |author=
tiene nombre genérico ( ayuda )Mantenimiento de CS1: varios nombres: lista de autores ( enlace )