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

Sergio De Los Santos    8 julio, 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *