De We Live Security: Cómo auditar aplicaciones Android con PidCat y evitar errores de desarrollo (28/06/2016)

Cómo auditar aplicaciones Android con PidCat y evitar errores de desarrollo

Por Diego Perez publicado 28 Jun 2016 – 11:33AM

apps-android-623x337

En el desafiante proceso de desarrollo de software no solo tenemos que preocuparnos por el correcto funcionamiento del mismo, sino también por el nivel de seguridad a implementar en el código fuente. Dado que los smartphones son utilizados para una gran cantidad de actividades en línea, es importante auditar las aplicaciones antes de ponerlas en producción, ya que si se descuida este paso se estaría exponiendo a los usuarios a algún tipo de ataque.

Los elementos a revisar pueden tener que ver con validaciones o cifrado de información sensible como contraseñas del usuario, dependiendo de la aplicación que se esté desarrollando. No es lo mismo la versión móvil de una red social que una app para transacciones bancarias, por ejemplo.

En esta oportunidad, entonces, te mostraremos cómo auditar las acciones que realiza una aplicación. PidCat es un script en Python que nos brinda la posibilidad de observar en tiempo real los registros de los procesos de una manera más colorida y ordenada.

Los elementos necesarios para la auditoría

Para la siguiente demostración utilizaremos un sistema operativo Linux, un emulador de Android y una aplicación con bajo nivel en lo que respecta a seguridad. Previamente debemos tener configurados en el archivo “.bashrc” los directorios (paths) de adb (Android Debug Bridge) y Android tools, que se encuentran integrados en el paquete de instalación de Android Studio. Es importante verificar estas configuraciones, ya que de lo contrario PidCat no funcionará.

Para realizar ingeniería inversa sobre la aplicación haremos uso de Apktool, que nos permitirá   extraer información y también el archivo AndroidManifest, como puedes ver en la siguiente captura:

1_

Este archivo nos proporciona la configuración básica de la aplicación. Dentro podremos buscar la etiqueta “android.debuggable”, la cual nos indica si, dependiendo de su configuración, la aplicación es depurable o no. En la siguiente imagen observamos que dicha configuración se encuentra activada; este es un error grave, ya que se podría estar exponiendo información sensible de cualquier índole. Así, gracias a los registros o logs del sistema podremos extraer mucha información.

2_

Una vez configurado el emulador de forma adecuada, lo iniciamos e instalamos la aplicación, abriendo una consola y usando el comando adb install Insecurebankv2.apk. Después de unos minutos observaremos que la aplicación vulnerable logró instalarse correctamente. En las siguientes capturas, observaremos que el aplicativo proporciona un formulario en donde solicita un usuario y una contraseña:

3_-768x641

Para capturar los registros del sistema normalmente utilizaríamos el comando adb logcat, pero a veces puede ser más que desafiante tener que lidiar con una enorme cantidad de sucesos al momento de analizar o encontrar errores. Para ello, PidCat nos proporciona una vista más agradable y estructurada de los registros capturados.

Luego de haber descargado PidCat procedemos a ingresar al directorio en el que se encuentre el script, en donde le especificaremos qué aplicación queremos auditar. En caso de no conocer concretamente el nombre del aplicativo, utilizaremos el comando adb shell pm list packages –f <packageName>.

En la siguiente imagen podemos ver cómo esta poderosa herramienta comienza a registrar cada acción que se ejecuta. Por medio de etiquetas y colores, categoriza cada uno de los sucesos, con lo cual nos da la posibilidad de que nuestra labor sea más confortable y podamos ahorrar tiempo al analizar y encontrar bugs.

4_-768x508

Contraseñas expuestas

A continuación, observaremos cómo PidCat logró capturar una grave falla, gracias a la cual se puede ver claramen­­­te un usuario y su correspondiente contraseña en texto plano. Estaríamos ante un error o vulnerabilidad de la que algún cibercriminal o usuario mal intencionado podría sacar provecho.

5_

Existen muchos otros tipos de herramientas o aplicaciones que nos pueden ayudar a encontrar o incluso solucionar algún error de seguridad en el desarrollo de software. PidCat es una buena y eficiente opción al momento de auditar qué es lo que sucede mientras algún aplicativo se encuentra en estado de ejecución.

Es importante tomar conciencia de estas cuestiones porque, de omitirse, no solo se estaría poniendo en riesgo a los usuarios que utilizan estas aplicaciones sino también al negocio de la o las compañías que formen parte del proyecto.

Existen diferentes cuestiones al momento de preguntarnos por dónde comenzar a preocuparnos, o dónde podríamos tener un mal diseño o implementación en el código fuente del software. Por ejemplo, de qué forma viajan los datos a través de la red, los permisos que cada usuario tiene y la autenticación, de qué forma se validan los datos, la cantidad de intentos que tiene una persona al momento de ingresar al sistema, entre otros. Pero cómo abordar estos temas será tarea para otro post.

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en Android, Aplicaciones, Seguridad, Sin categoría. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *