El fallo en el proceso de validación de firma de Android, y el foco del miedo

lunes, 8 de julio de 2013

Android.com
La noticia de la semana ha sido el descubrimiento de un fallo en Android que permite eludir la validez del sistema de firma de código. El problema ha trascendido y preocupado especialmente a los usuarios no técnicos, con razón puesto que se trata de un fallo serio. Sin embargo, las razones del miedo generado parecen haber sido otras, puesto que en el anuncio de la vulnerabilidad se ha puesto el foco en ciertas afirmaciones que han "ayudado" a que la vulnerabilidad sea temida por todos pero entendida por pocos.

Los APK de Android están firmados. En teoría esto debería garantizar la integridad del fichero y su procedencia (a quién pertenece el certificado) pero como se permite autofirmar APKs, en realidad la firma solo garantiza que el programa no ha sido alterado después de la firma. En la práctica, sin un sistema de firma más "agresivo", lo cierto es que requerir la firma no ofrece todas las garantías potenciales que ofrece. Lo que ha encontrado una empresa muy reciente de Estados Unidos (Bluebox, fundada el año pasado) es que es posible alterar el contenido de un APK firmado sin que se "rompa" esta firma. El problema no es criptográfico sino que se encuentra en el sistema de validación de firma de Android. No han dado más detalles técnicos.

A partir de aquí, la imaginación se pone en marcha, no sobre el problema en sí (cómo lo han conseguido), sino sobre qué catastrófica situación nos depara. El aspecto más grave, como señala la propia BlueBox, sería alterar un paquete APK firmado por el propio fabricante (que tiene mayores privilegios) y ejecutarlo en el sistema, lo que le otorgaría total acceso al código de un tercero. Una especie de "troyanización perfecta" respetando la integridad del paquete original.

Sin datos técnicos pero sí "estadísticos"

En el anuncio oficial, afirman que avisaron a Google en febrero, pero que no darán datos técnicos hasta la Black Hat de agosto. También hablan de la posibilidad de que el fallo se use para esparcir malware y recurren a los números y periodos grandes, además de porcentajes cercanos a cien para provocar un cóctel perfecto de miedo en el usuario. "El 99% de los Android son vulnerables", "900 millones de dispositivos afectados", "presente desde hace cuatro años". Lo que algunos medios generalistas y usuarios han sintetizado en titulares erróneos es que casi todos los Android "están infectados por un troyano desde hace cuatro años". Este ha sido el efecto de la forma en la que BlueBox, a falta de poder revelar datos técnicos, ha explicado la importancia del fallo (que según ellos mismos, se arregla con dos líneas de código. Samsung ya lo ha hecho en algunos de sus dispositivos).

Porque aunque BlueBox explique el problema de forma correcta y efectivamente se trate de una vulnerabilidad muy relevante, este tipo de información suele ser finalmente malinterpretada. Hablar de número de afectados, porcentajes y fechas, puede eclipsar el resto de la información. Imaginemos que, en el anuncio previo que realiza Microsoft antes de su ciclo de actualizaciones, se hablara de "un grave fallo (o peor aun, "troyano") que afecta al 99% Windows" o "al 85% de los PCs del mundo". Algo cierto, pero de alguna manera irrelevante por implícito, puesto que es lo "habitual" ante cualquier fallo previamente desconocido. Si recurriésemos a las mismas cifras sobre Java, sería aún peor. Cada problema de seguridad en Java (que sí suele ser usado intensamente por atacantes) afecta potencialmente a 3 mil millones de dispositivos, como anuncia la propia Oracle mientras se instala. Si bien las cifras podrían ser ciertas, jugar estas cartas de alguna manera pone el foco en un punto diferente del problema.




Transmitir tranquilidad

Lo que parece más importante es informar sobre que el fallo es sin duda grave y, por lo que se intuye, ha sido un imperdonable descuido de Android en su forma de comprobar las firmas. Sin embargo, es poco probable que esté siendo explotado por atacantes en la actualidad para infectar al usuario medio, por el simple hecho de que no les es necesario recurrir a trucos criptográficos para mantener altos los niveles de infección en Android. ¿Ha sido usado a otro nivel, para realizar espionaje industrial a nivel profesional? No se sabe. Pero para el usuario de "a pie", el atacante dispone de otras técnicas mucho más sencillas que ya le permiten la ejecución de código en el terminal con los permisos adecuados para llevar a cabo sus propósitos.

No hay comentarios:

Publicar un comentario en la entrada