Ingeniería inversa La API móvil de Kayak

El sitio de metabúsqueda de viajes Kayak aparentemente solía tener una API pública que ya no está disponible. No podemos decir que estamos de luto por la pérdida de la interfaz que nunca supimos. Si eres alguien que ha automatizado sus búsquedas de la escapada de vacaciones perfecta, todavía hay esperanza. Pero de todos modos te gustará este. [Shubhro Saha] descubrió cómo acceder a la API utilizada por la aplicación móvil Kayak. Nos gusta que detalla cómo oler el tráfico entre una aplicación e Internet y comprender lo que se encuentra.

Su herramienta opcional es el paquete Mitthproxy Python. No hemos oído hablar de él, pero hemos oído hablar de Wireshark y [Shabhro] Parece que Mitmproxy es mejor para esta aplicación. Como sugiere el nombre, lo configura en su computadora y usa la IP de esa caja como la conexión proxy para su teléfono. Después de usar la aplicación por un tiempo, hay suficientes datos para comenzar a deconstruir lo que sucede entre la aplicación y el servidor remoto con el que se está comunicando. Podríamos divertirnos mucho con esto, como ver qué tipo de información envían a casa estos programas gratuitos o buscar fallas de seguridad en sus propias creaciones.

[Thanks Juan via Twitter]

  • hal h dice:

    Por lo que puedo decir, MTIMProxy está un poco más enfocado que Wireshark. Wireshark es el sistema de monitoreo "respira todo". A veces esto es bueno (como depurar su aplicación UDP habitual). Pero MTIMProxy busca (desde su sitio web) apuntar solo a sesiones HTTP. Esto permite que ocurra tal rastro y encuentre algunas cosas interesantes como [Shabhro] hizo.

    No me sorprendería si Kayak impulsara un pequeño cambio pronto para cambiar las comunicaciones a HTTPS. Algo sorprendido de que no hicieran eso al principio.

    • hal h dice:

      Bueno, leí rápidamente ese artículo. Parece que ya tienen habilitado HTTPS. Pero el autor de alguna manera puede instalar un nuevo certificado que engaña a la aplicación del cliente para que piense que es segura. Entonces, ¿hay algún caso en un programa para hacer un certificado sobre la conexión y solo comunicar si es el certificado del servidor? Supongo que la mayoría de los programadores no verifican el certificado y solo usan el HTTPS.

      Ah, y es MITM, no MTIM (estúpido cerebro matutino).

      • rj dice:

        No es una gran idea nueva (y vea 'fijación de SSL'):

        http://nickfishman.com/post/50557873036/reverse-engineering-native-apps-by-intercepting-network

        • hal h dice:

          ah Me preguntaba cómo podían hacer eso. Esto puede ser importante para la empresa para la que trabajo. A veces hablan sobre el desarrollo innato de apo y es posible que queramos hacer esto. El artículo al que se vinculó tiene una lectura interesante sobre este Pin SSL:
          http://blog.lumberlabs.com/2012/04/por qué-los-desarrolladores-de-aplicaciones-deberían-preocuparse-por.html

    • Pablo dice:

      Parece que no has leído el artículo. Explica cómo instalar un certificado para mitmproxy para permitir que el tráfico HTTPS también se detecte. Algo que wireshark no puede hacer fácilmente (a menos que tenga las credenciales de cliente/servidor, que Saha no tiene en este caso).

  • Jaime M dice:

    mitmproxy proporciona su propio certificado CA, que instala manualmente en su teléfono. Debido a que las bibliotecas del sistema operativo manejan todo el trabajo de proxy y certificado, la aplicación nunca ve que funcione con una conexión falsa. Siempre me he preguntado cómo hacer eso: hay varias API que he estado tratando de descubrir.

  • stefano dice:

    ¡Creo que esta podría ser una buena aplicación para Charles Proxy!

  • fusible dice:

    Un excelente proxy HTTP (s) MITM está en la serie de seguridad Burp

    http://portswigger.net/burp/

Victoria Prieto
Victoria Prieto

Deja una respuesta

Tu dirección de correo electrónico no será publicada.