Sobre la capacidad de ingeniería inversa de la API privada de Instagram

1

Encontré estas publicaciones de blog donde un hombre pudo extraer la clave de firma privada de Instagram de la aplicación de Android: enlace

Que luego podría usarse con el propósito de explotar la API privada de Instagram, así: enlace

Algunas preguntas personales surgieron de esto:

  1. ¿Hay algo más que los ingenieros de seguridad de Instagram podrían haber hecho para evitar que esto suceda? Supongo que son ingenieros de software con gran talento, pero tener un usuario en posesión de una aplicación, en este caso en forma de android .apk , ¿hace que sea siempre más fácil / siempre posible que las personas descubran claves secretas?
  2. ¿Son las aplicaciones web inherentemente más seguras que las aplicaciones móviles? Digamos que la aplicación web de Instagram es idéntica a su aplicación móvil. ¿Sería posible que alguien extraiga las claves secretas de la aplicación web, o esto es mucho más difícil, si no imposible, porque el usuario nunca estará en posesión del código fuente completo de la aplicación web?
pregunta metersk 22.11.2015 - 23:23
fuente

1 respuesta

1
  1. Sí, una vez que liberas una aplicación, no tienes control sobre lo que las personas hacen con ella. Puede ofuscar o preprocesar el código para que sea más difícil descubrir las cosas, pero, por definición, debe ser ejecutable y accesible para el procesador subyacente. Con suficiente tiempo y esfuerzo, alguien siempre puede descubrir cualquier cosa que esté incrustada en la aplicación. Esto se aplica a cualquier tipo de aplicación: aplicación móvil, aplicación de escritorio, aplicación de consola. Si todo lo demás falla, un atacante realmente determinado podría emular el procesador y desechar lo que sucede.

  2. No, pero los métodos de ataque cambian. Tomando el ejemplo de Instagram, si tiene una aplicación web, las comunicaciones pueden enviarse a través de un canal cifrado, pero es posible que no puedan controlar la fuente de las comunicaciones. Sería difícil distinguir entre la aplicación legítima y la de un tercero. Para algunas empresas, esto es importante (por ejemplo, si muestran anuncios en su aplicación oficial). Por otro lado, con una aplicación móvil, sería posible proporcionar, por ejemplo, verificación de certificado, donde el servidor y el cliente se verifican mutuamente. En este caso, sería posible eliminar un certificado comprometido en el lado del servidor, aunque esto podría interrumpir a los usuarios que no han actualizado sus aplicaciones.

    En el primer caso, los ataques se concentrarían en identificar llamadas válidas al sistema backend y luego intentar abusar de eso. En el segundo caso, los ataques inicialmente intentarían extraer el certificado, pero en ese proceso probablemente encontrarían las llamadas.

respondido por el Matthew 23.11.2015 - 10:32
fuente

Lea otras preguntas en las etiquetas