02 febrero 2012

Seguridad en IOS, herramientas para desensamblar Objective-C

Auditar una aplicación móvil requiere que se revisen y contemplen todos los aspectos de su seguridad: la aplicación nativa, como se comunica y el servicio remoto en caso de que exista.

Para desensamblar las aplicaciones de iPhone/iPad, primero hay que descifrarlas tal y como ya vimos en los posts anteriores (I, II y III) para posteriormente usar una herramienta que haga este trabajo.

En esta entrada, voy a enumerar las aplicaciones más populares en esta tarea:

Originalmente se desarrolló para trabajar con Objective-C en binarios Match-O, pero sin considerarse iPhoneOS. Pese a que se puede utilizar para este propósito y se ha actualizado para darle soporte, es recomendable usar el fork class-dump-z de kennytm. Requiere ejecutarse en un MacOS 10.6.x

El tercer fork del original class-dump, está desarrollado en C+ y es multiplataforma. Se desarrolló considerando las peculiaridades de IOS. Por desgracia su última versión 0.2a solo funciona en Mac. Para iphone @trufae ha colgado una versión en su repositorio: http://cydia.radare.org/
Ya se ha visto en uso, aunque solo para obtener información de un binario. La realidad es que otool es una aplicación muy completa que también sirve para hacer desensamblados básicos.

radare2http://radare.org/y/
¿Quién no ha oído hablar ya de radare? no solo desensambla el binario, también hace las funciones de debugger, editor, etc. Es multiplataforma y se puede instalar en el propio iphone de forma sencilla usando su propio repositorio: http://cydia.radare.org/

Tal vez sea la más popular ya que su uso está muy extendido y es muy común en entornos windows, linux y mac. Se puede descargar gratuitamente la versión 6.2 con limitaciones y la 5.0 completamente gratuita.

Fueron realmente útiles en la versión 5.x, antes de que IDA Pro soportase Objective-C en la versión 6.2.

Al igual que los anteriores, los scripts de kennytm para IDA tuvieron gran importancia en las versiones 5.x

Otx  es una utilidad para sistemas mac, que se basa en otool para desensamblar el binario, añadiendo nuevas características al procesado resultante, además se puede usar tanto por línea de comandos como mediante su interfaz gráfica.


Esta herramienta es un port de code-dump para PPC, que a su vez es otro fork de class-dump y que finalmente ha sido integrado en este. Requiere de un mac y xcode para compilarlo.

1 comments :

Rodolfo dijo...

Muy buen trabajo con la saga iOS! Está genial :)