Protección de la integridad de la biblioteca compartida de Android

2

¿Hay alguna manera de "proteger" de alguna manera una biblioteca compartida nativa (.so) para la plataforma de Android contra el cambio binario? P.ej. alguien podría sobrescribir una instrucción JMP con un NOP después de aplicar ingeniería inversa a la aplicación y distribuir esa biblioteca a dispositivos arraigados.

¿Hay algo que alguien pueda hacer?

Lo que estoy buscando aquí son ideas sobre cómo implementar una serie de controles (por ejemplo, cifrado, suma de verificación, etc.). Por supuesto, ya que la plataforma no parece que ofrezca soporte para esto (corríjame si me equivoco) tendría que ser todo del lado del cliente. Por lo tanto, todo es un poco inútil, pero al menos dificultará un poco la ingeniería inversa.

    
pregunta AnroidSec 10.03.2013 - 05:07
fuente

2 respuestas

2

No. No hay manera de hacer esto de manera segura, de una manera que resista los ataques dedicados graves: el propietario del teléfono podrá modificar la copia de la biblioteca que está almacenada en su teléfono. Una vez enraizado, es su teléfono, después de todo.

Básicamente estás pidiendo un software que sea resistente a la ingeniería inversa. Tenemos una amplia experiencia (basada en la protección de copia, la gestión de derechos digitales y otros esquemas) que muestra que si bien puede hacer que la ingeniería inversa sea un poco más difícil, no puede evitarlo.

¿Por qué desea evitar que el propietario del teléfono modifique su propio código? Tal vez hay otras soluciones a su problema.

    
respondido por el D.W. 10.03.2013 - 07:16
fuente
1

Si alguien tiene acceso de root al dispositivo Android, no solo pueden instalar versiones alternativas de bibliotecas, sino también versiones alternativas de su sistema de protección de integridad.

(No, a menos que se convierta en algo común para aprovechar los TPM (que no existen en las plataformas ARM en este momento) o TrustZone (que está presente en casi todos los teléfonos móviles pero que rara vez se utiliza), y Android se convierte en un sistema cerrado como iOS y Windows RT.)

Si le preocupa que los usuarios instalen sin querer complementos de terceros que reemplazen a las bibliotecas del sistema, la única defensa real es la educación del usuario. No obstante, puede instalar su propio complemento que requiere permisos de raíz que comprueba la integridad del kernel y de las bibliotecas de las que depende. Esto no es de ninguna manera una protección real. Es una forma de antivirus: protege solo contra ataques conocidos, no contra implementaciones desconocidas de la amenaza.

    
respondido por el Gilles 10.03.2013 - 22:08
fuente

Lea otras preguntas en las etiquetas