5 consejos para pentesters en iOS

A medida que nuestros teléfonos ocupan un rol cada vez más imprescindible en nuestras vidas, liberar aplicaciones seguras se vuelve una necesidad para proteger a los usuarios finales.

Así, el rol del pentester cobra relevancia para identificar comportamientos indeseados tales como permitir fugas de datos, ocasionar fallos en otras apps instaladas en el terminal, causar gastos imprevistos o denegar un determinado servicio a quien utiliza el equipo.

1 – Ponte en los zapatos del programador

En la medida de lo posible, intenta conocer quiénes están detrás del desarrollo del código que estás auditando. Averigua cuál es el lenguaje en el que suelen trabajar la mayor parte del tiempo o aquel en el que fueron iniciados. La experiencia del programador suele transparentarse en la arquitectura de su código y, consecuentemente, la naturaleza de sus errores. Conocer al respecto puede indicarte en qué dirección investigar.

2 – Consigue el código fuente

Aunque no representa la posición en la que generalmente se encuentra un atacante, obtener el código fuente te ayudará a identificar la mayor cantidad de fallos en el menor tiempo posible. Los tests de penetración usualmente manejan recursos limitados de tiempo y dinero, por lo que es conveniente sacarles el mayor provecho posible. Tu meta no debiese ser imitar un escenario real de ataque, sino encontrar la mayor cantidad de vulnerabilidades para lograr que la aplicación final sea más segura.

3 – Ten en mente los puntos débiles del lenguaje

Aunque Objetive-C y Cocoa previenen algunos errores frecuentes de seguridad en C y C++, la utilización de API peligrosas como strcpy y strcat, o la mala implementación de mecanismos como las categorías o el method swizzling pueden causar comportamientos inesperados que deriven en serias fallas de seguridad. Por eso, asegúrate de investigar cómo estas técnicas impactan en la aplicación.

4 – Identifica posible reutilización de código vulnerable

Muchos programadores han desarrollado la mala costumbre de consultar foros de programación en línea y copiar código sin analizar realmente su funcionamiento, especialmente cuando se trata de funciones auxiliares de bajo nivel, conexiones de red o cifrado. Otros incorporan al código base librerías y desarrollos de terceros sin verificar si presentan fallos de seguridad. Esto puede llevar a encontrar el mismo código vulnerable a través de múltiples aplicaciones.

5 – Consigue dos equipos para testear: uno con jailbreak y otro de fábrica

Tener un dispositivo con el SO de fábrica te ayudará a evaluar cómo se comporta la aplicación en un entorno real de usuario final, con todos los mecanismos de seguridad habilitados y sin problemas para registrar notificaciones push. Por otra parte, podrás utilizar al dispositivo con jailbreak para analizar más detalladamente el sistema de archivos y la operatoria del sistema operativo.

FUENTE: WELIVESECURITY.COM