Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Verificación de firma de Android

Tengo un montón de dudas para ser eliminado en el caso de la verificación de la firma de Android y su vulnerabilidad.

Una vez que generamos apk para una aplicación, podemos descomprimir el apk y editar archivos de recursos usando apktool. Cuando volvemos a empaquetar el apk editado de nuevo pierde su firma. Puedo renunciar al apk sin firmar usando el jarsigner con mi propia clave privada que usé mientras generaba el apk. He encontrado una aplicación llamada zipsigner en playstore que se puede utilizar para firmar este tipo de apk sin firmar.

  • ¿Qué es Dalvik y dalvik-cache?
  • Cómo configurar la sombra de una vista en Android?
  • ¿Terminar cualquier actividad anterior en la pila de la actividad actual?
  • No puede abrir el archivo de rastreo
  • ¿Por qué Android utiliza Java?
  • ¿Cuánto de la API de Java 6 es implementado por Android?
  • Así que cuando este zipsigner firma el apk sin firmar, si el apk está firmado con mi misma clave privada o con una clave diferente? Porque mi carpeta META-INF todavía contiene los archivos XXX.SF y XXX.RSA que contiene la información de mi clave privada. Si es con mi misma clave privada, entonces el nuevo apk será una actualización para mi aplicación o si es una clave diferente, tendré dos aplicaciones diferentes con el mismo nombre.

    De las situaciones antedichas hay posibilidades que el malware se podría incluir en mi apk mientras que reenvasa. Parece que hay una laguna en el mecanismo de verificación de la firma de Android, donde el resumen del mensaje de los archivos dentro de la carpeta META-INF no está incluido en el MANIFEST.MF, así como en el archivo XXX.SF. Esto crea la posibilidad para que cualquier persona incluya códigos del malware dentro de estas carpetas, reempaque el apk y renuncie con la aplicación del zipsigner.

    Yo estaba buscando una solución donde puedo evitar que los archivos se agregan a la carpeta META-INF y he encontrado uno de los siguientes blog. Pero soy incapaz de conseguir el punto de la solución. Esto parece más de un tema de investigación por lo que no hay mucha información disponible en Internet. ¿Puede alguien tratar de averiguar la solución especificada en el blog. El enlace del blog se especifica debajo de la pregunta.

    Android signature verification vulnerability and exploitation

  • Android ndk: Problema para la llamada del método Java desde c ++ con jni
  • ImageView que es un tamaño fijo, independientemente del tamaño de la imagen
  • Sugar ORM simplemente no creará tablas
  • Cambiar fuente del editor de Android Studio por Mac?
  • Desempeño de Android: Archivo plano vs SQLite
  • Agregue el producto a la experimental Android gradle plugin library
  • 2 Solutions collect form web for “Verificación de firma de Android”

    1. La clave privada nunca es parte de un APK distribuido, a menos que haya malinterpretado su pregunta. Alguien que firme en su nombre no es posible a menos que su propio sistema sea hackeado.

    2. El enlace compartido (blog.trustlook.com) habla de que Android saltea la comprobación de archivos con extensiones .sf (y archivos con extensiones relacionadas). Así que un malware podría cubrirse en un archivo con una de estas extensiones. La solución mencionada allí es un "firmware del sistema" de Android, no es algo que se puede hacer a nivel de aplicación . Esto significa que un OEM (Google mismo, o Samsung / otro) tiene que lanzar un firmware actualizado para arreglar esto. Compruebe las últimas actualizaciones, podría haber sido arreglado ya.

    3. En mi opinión, incluso si un usuario sideloads APK, esto es más de una molestia que un verdadero ataque / amenaza . Consulte el documento Blackhat a continuación para obtener más información: Su-Private-Key-wp.pdf

    También debe leer esto para posibles formas de prueba de falsificación APK – https://www.airpair.com/android/posts/adding-tampering-detection-to-your-android-app

    Lectura de las otras respuestas enlace sombrero negro: cuestiones APK

    1. Si mantiene su clave privada a salvo, sólo podrá firmar APK, y sólo podrá publicarlos en una tienda determinada.
    2. La información adicional en el directorio META-INF no está marcada y validada. Esto permite agregar datos adicionales al archivo jar, que podría ser utilizado para introducir información en el APK. Pero esto no sería utilizado por su archivo APK, y no causaría daño reputacional.
    3. Hay una debilidad en el algoritmo de prueba, lo que significa que la validez de un certificado no se comprueba en el dispositivo si se firma automáticamente.

    Contrabando de datos

    No comprobar el archivo META-INF es un efecto secundario de cómo funciona el criptocódigo. Con el fin de proteger las cosas que usted necesita para crear un mensaje que describe exclusivamente el mensaje. Se trata de un hash de los datos protegidos. Desafortunadamente, el certificado, no se puede incluir en esto, ya que se agrega después de que se calcula el hash. Por lo general, hay lugares que se pueden agregar sin romper la firma. Para Windows y .exes, informe de Microsoft aquí: MS13-98 . En este caso, algunos instaladores utilizaron los datos no seleccionados para elegir dónde descargar archivos. Esto los hacía vulnerables.

    Dentro de un certificado X509, hay campos no seleccionados. (Atributos no autenticados). Lo que hace que cualquier solución basada en X509 sea capaz de contrabandear datos. Su protección, es la copia local que subió no tiene los valores de contrabando.

    Si no confía en los datos no autenticados en el directorio de seguridad, entonces no se puede hacer vulnerable a que se cambie. Así que la mejor opción es no hacerlo.

    Problema de auto-firma

    Auto-firma hace que algunas comprobaciones se pierda. Esto permite a un atacante crear un paquete actualizable, que pretende ser suyo. Esta es una cuestión de derechos de autor, en lugar de un problema de seguridad, ya que es visiblemente el binario manipulado (no pasa el cheque auto-firmado).

    ¿Hay alguna forma de reempaquetar el apk y firmar la aplicación con la misma clave privada?

    • La clave privada no está disponible en el APK, por lo que no se puede utilizar para volver a firmar los datos.
    • Los archivos en el APK (fuera de META-INF) no se pueden modificar sin cambiar su hash.

    Cada vez que se descomprime el apk pierde su información de firma?

    Descomprimir el APK no rompe su firma, y ​​puede re-empacar. Puede quitar elementos del APK sin romper la firma. Sin embargo, no es posible cambiar los recursos y el código sin romper la firma.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.