Con una sola clave filtrada, la confianza del sistema puede convertirse en un arma en manos ajenas.

La firma digital debe confirmar que una aplicación de Android fue publicada por el desarrollador legítimo, pero un nuevo trabajo de investigación muestra cómo la filtración de una sola clave convierte ese mecanismo de confianza en un punto débil de toda la cadena de suministro.
Los autores del estudio «Un estudio longitudinal sobre la protección de las claves de firma de aplicaciones Android» analizaron repositorios públicos en GitHub y encontraron 56 510 archivos de almacenes de claves relacionados con la firma de aplicaciones Android. En 46 619 casos dichos archivos estaban junto a contraseñas en texto plano. Tras eliminar duplicados, los especialistas contaron 5 673 almacenes comprometidos y 6 602 claves de firma.
El problema es peligroso debido a la propia lógica de Android. El sistema permite actualizar una aplicación solo con un paquete firmado por el mismo desarrollador. Si un atacante obtiene la clave privada y la contraseña, puede compilar una actualización falsa con la «firma correcta». Para el dispositivo, ese paquete parece una nueva versión legítima.
La verificación mostró que 26 certificados comprometidos están vinculados a 278 aplicaciones reales. Entre ellas hay 26 programas de tiendas públicas y 252 aplicaciones preinstaladas de siete fabricantes de dispositivos. La muestra incluía aplicaciones de Baidu, Ctrip, Kwai, Xiaomi y otros desarrolladores. La audiencia combinada de las aplicaciones afectadas supera los 10 000 millones de usuarios.
Un riesgo separado está relacionado con las aplicaciones preinstaladas y del sistema. Tales programas a veces obtienen permisos ampliados sin solicitar autorización adicional al usuario. Si una actualización falsa reemplaza dicha aplicación, el código malicioso podría obtener acceso a datos sensibles o interrumpir el funcionamiento del dispositivo. Los autores también indicaron el riesgo de una negación de servicio persistente debido a un conflicto de permisos privilegiados.
La posibilidad práctica de ataque se comprobó con el ejemplo del teclado de Baidu. Los especialistas recompilaron la aplicación, insertaron código DEX adicional y firmaron el paquete con la clave filtrada. Después de instalar la versión falsa, la entrada desde el teclado se guardaba en un archivo y se transmitía a una aplicación auxiliar. La demostración muestra no una campaña masiva, sino la aplicabilidad real del problema encontrado.
La filtración afecta no solo a los teléfonos inteligentes. Una de las claves encontradas se vinculó con Baidu CarLife, plataforma para unidades principales de automóviles instalada en más de 1 100 modelos de coches. En tal escenario, una aplicación falsa en el teléfono puede interferir con la interfaz del automóvil o espiar el comportamiento del usuario.
Los autores informaron de los hallazgos a las partes afectadas y cumplieron el plazo de divulgación. Para el momento de la publicación, parte de los repositorios ya se habían cerrado, pero la eliminación completa del problema avanzó de manera desigual, y solo un desarrollador externo completó la rotación de claves.
Para reducir el riesgo, se recomienda a los desarrolladores no almacenar contraseñas de claves en archivos del proyecto, usar contraseñas distintas para el almacén y la clave de firma, proteger el acceso con autenticación multifactor y, cuando sea posible, delegar la firma a servicios gestionados. A los fabricantes de dispositivos se les recomienda asimismo no firmar componentes del sistema con claves públicas de AOSP y no incorporar aplicaciones de terceros en la imagen del sistema operativo con privilegios innecesarios.