Menú principal

domingo, 22 de julio de 2012

Hack de in-App Purchase de iOS se extiende a Mac OS X, Apple libera API Privada para los desarrolladores y una POC (Prueba de Concepto) del ataque de Alexey Borodin.

Apple está respondiendo al problema de seguridad que ha permitido que algunos usuarios realizaran compras en las aplicaciones de iOS de manera gratuita. Estas compras se realizan por el conocido sistema que Apple proporciona a los desarrolladores a través de una API, para realizar ventas en sus aplicaciones, denominado In-App Purchases - de ahora en adelante IAPs -, y así maximizar sus oportunidades de negocio, junto con iAd” la plataforma de publicidad.

Es curioso que, a principios de este año, Apple comenzó a rechazar aplicaciones que utilizasen el identificador UDID, para aumentar la privacidad del usuario, ya que identifica a los dispositivos de manera unívoca. Sin embargo, parece que ellos si que lo utilizan y han liberado ese API privada para que los programadores puedan defenderse de estos hackeos, en un primer paso de reforzar la seguridad del sistema de ventas IAPs. Los programadores podrán averiguar qué dispositivos están  hackeando el sistema de ventas.

El hackeo del sistema lo realizó el hacker ruso Alexey Borodin, hace menos de una semana, y se calcula que ya se han podido realizar más de 30.000 transacciones virtuales de manera ilegal, a través de la web que montó el hacker, todavía online, y que es In-AppStore.com. Ahora miso, el sistema ha sido extendido también al sistema IAP de la Mac App Store, con lo que no solo afecta a los desarrolladores iOS, sino también a los desarrolladores Mac OS X.

Prueba de Concepto del Sistema de Alexey Borodin

La primera noticia de esto fue publicada en el blog ruso I-ekb.ru. El hackeo conocido como In-App Proxy, que el propio autor explicó, consiste en cuatro sencillos pasos:

  • Desconectarse o cerrar sesión de la cuenta asociada a App Store en el terminal, accediendo a General >Store”, seleccionando la cuenta y cerrando sesión.
  • Instalación de dos certificados que se encuentran disponibles a través de In-AppStore.com, seleccionando la opción Getting Started. En dicha web viene documentado todo el proceso, y están alojados los dos certificados que hay que instalar respetando el orden:
- Primero (CA Certificate): http://91.224.160.136/certs/cacert.pem
- Segundo (In-AppStore.com certificate): http://91.224.160.136/certs/itcert.pem
Para la instalación de los certificados, basta con cargar la web In-AppStore.com, seleccionarlos e instalarlos, tal y como se aprecia en las siguiente captura:

Figura 1: Instalación de certificados de In-AppStore

A continuación se muestran las capturas de la instalación del primer certificado (CA certificate):


Figura 2: Instalación del primer certificado (CA certificate)

Y a continuación se muestran las capturas de la instalación del segundo certificado, en este caso el certificado de In-AppStore.com:


Figura 3: Instalación del segundo certificado

  • El tercer paso consiste en realizar una compra, y cuando salga el mensaje de confirmación Esta seguro de que desea realizar esta compra hay que seleccionar la opción Cancelar.
  • El cuarto y último paso es cambiar los DNS de la configuración de la red Wi-Fi. A continuación se muestra una captura en donde se aprecia el cambio:

Figura 4: Cambio de los DNS de la red Wi-Fi a la que se está conectado.

Y listo. Ya se puede realizar la compra IAP dentro de una aplicación. Como prueba de concepto he escogido este juego al que personalmente estoy un poco enganchado, para obtener unas moneditas de oro extra, y aumentar los niveles de la varita mágica de mi clérigo. A continuación se muestra una captura del sistema de ventas IAP del juego:

Figura 5: Aspecto del sistema IAP del juego "Heroes vs Monsters - H vs M"

Se selecciona la compra deseada, en nuestro ejemplo se ha elegido el pack más pequeño de monedas, es decir el de 3.000, y acto seguido aparecerá un mensaje como el siguiente, en lugar del habitual mensaje de Apple:

Figura 6: Mensaje de compra de "In-App Proxy"

Se acepta la compra, y se va a la sección Store o la tienda del juego, en donde se puede comprobar como ahora se poseen las 3.000 ansiadas moneditas de oro.

Figura 7: Comprobando que se han adquirido las 3.000 moneditas de oro

Varias cosas a tener en cuenta con este sistema de hacking:
  • La primera es que el sistema solo funciona a través de la conexión Wi-Fi.
  • Otro factor a tener en cuenta, es que In-App Proxy sólo sirve para realizar compras gratuitas de el sistema de ventas IAPs, pero no en la App Store. De hecho si se intenta realizar alguna compra, aparece la siguiente imagen:


Figura 8: Intentando realizar una compra en App Store.
Por tanto, después de realizar nuestras "compras" (ya que son ilegales) en IAPs, habría que cambiar los DNSs de nuevo para poder acceder correctamente a la App Store.
  • Otro aspecto a tener en cuenta es que todo el sistema In-App Proxy es una versión beta, y no funciona en todos los casos, dependiendo de markets, apps, países, etc. Y se puede ver que hay una sección en la web del desarrollador, en donde se pueden ver mensajes de fallos del sistema, reportados por usuarios. Además Apple provee de un sistema a los desarrolladores, para comprobar los recibos en las ventas IAPs, tal como se puede ver aquí. Característica que deberían utilizar todos los desarrolladores.
  • Por último cabe decir que no es necesario realizar el jailbreak a nuestro dispositivo.

Reacción de Apple

Al parecer Apple ha hecho un comunicado al respecto, alegando lo siguiente: La seguridad de la App Store es increíblemente importante para nosotros y para la comunidad de desarrolladores, declaró la representante de Apple Natalie Harrison a The Loop. "Tomamos todos los informes de actividades fraudulentas muy en serio, y estamos investigando”.

Para finalizar el artículo, decir que el propio autor ha declarado que no ha almacenado datos de los usuarios, pero que el hecho de que se envíen datos del terminal, debería ser suficiente para que la gente no lo intente. Así que aquellos que deseen intentarlo deben tener en cuenta que se envían datos de vuestros dispositivos…y que Apple se toma en serio el fraude. Nosotros hemos comprado las monedas de forma legítima a posteriori, para hacer esta POC.

También ha declarado que aquellos desarrolladores que utilicen el sistema de recibos mencionado anteriormente, tampoco están seguros, y que tan sólo aquellos que hayan desplegado sus propios servidores para comprobar las compras IAPs, podrán evitar el hackeo.

No hay comentarios:

Publicar un comentario en la entrada

Artículos relacionados

Otras historias relacionadas

Entradas populares