5 tips para expertos en pruebas de penetración en iOS

Share this…

Algunas recomendaciones para especialistas en pruebas de penetración que buscan fallas de seguridad en aplicaciones para sistema operativo iOS.

A medida que nuestros teléfonos desempeñan un papel de mayor relevancia en nuestra vida cotidiana, el lanzamiento de aplicaciones seguras se ha convertido en una necesidad para proteger al usuario. Como resultado, la labor de los especialistas en pruebas de penetración ha ganado importancia al identificar comportamientos no deseados, como permitir filtraciones de datos, producir errores en otras aplicaciones instaladas en el dispositivo, generar costos inesperados o denegar otros servicios al usuario del dispositivo.

A continuación se enlistan algunos lineamientos en el análisis e implementación de pruebas de penetración:

  • Piense como el programador

A medida de lo posible, intente comprender a las personas detrás del código que está sometiendo a pruebas de penetración. Determine con qué lenguaje de programación trabajan o cuál fue su lenguaje de codificación principal. La experiencia de los programadores se refleja en la arquitectura de su código y, en consecuencia, en la naturaleza de sus errores. Conocer estas cosas puede guiarte en la dirección correcta cuando se trata de realizar pruebas de penetración.

Por ejemplo, los programadores que trabajan con Java suelen replicar patrones de diseño, abstrayendo la funcionalidad una y otra vez. Por el contrario, los desarrollos móviles realizados por programadores web tendrán la mayor funcionalidad posible depositada en las aplicaciones web, y dependerán en gran medida del uso de WebKit.

  • Consiga el código fuente

Aunque no es donde generalmente se encuentra un atacante, obtener el código fuente lo ayudará a detectar la mayoría de los errores en el menor tiempo posible. Las pruebas de penetración generalmente implican recursos limitados en términos de tiempo y dinero, por lo que es una buena idea sacarles el máximo provecho. Su objetivo no debe ser replicar un escenario de ataque real, sino encontrar tantas vulnerabilidades como sea posible para hacer que el producto sea más seguro.

Objective C funciona muy bien con la ingeniería inversa y permite obtener una amplia visión de los mecanismos internos de una aplicación, incluso sin iniciar desde el código fuente. Lo mejor es ahorrar tiempo y dedicar sus esfuerzos a encontrar defectos de seguridad.

  • Tenga en cuenta los puntos débiles del lenguaje de programación

Aunque Objective-C y Cocoa evitan algunos errores frecuentes de seguridad, el uso de API peligrosas, como strcpy y strcat, o mecanismos mal implementados, como el swizzling de categorías o métodos, puede provocar comportamientos inesperados que conducen a graves errores de seguridad. Por esa razón, asegúrese de investigar cómo estas técnicas podrían afectan la aplicación.

  • Identifique posible reutilización de códigos vulnerables

Muchos programadores han adquirido la mala costumbre de consultar foros de programación en línea y copiar códigos sin realmente probar cómo funcionan, especialmente cuando se trata de funciones auxiliares de bajo nivel, conectividad de red y encriptación. Otros integran bibliotecas y desarrollos de terceros en el código base sin verificar si tienen fallas de seguridad. Esto puede dar como resultado que se encuentre el mismo código vulnerable en múltiples aplicaciones.

  • Use dos equipos de prueba

Tener un dispositivo con el sistema operativo de fábrica lo ayudará a evaluar cómo se comporta la aplicación a nivel de usuario, con todos los mecanismos de seguridad habilitados y sin problemas para registrar las notificaciones automáticas. Por el contrario, puede usar el dispositivo con jailbreak para analizar el sistema de archivos con más detalle y el funcionamiento del sistema operativo.

El Instituto Internacional de Seguridad Cibernética espera que estas recomendaciones le ayuden a entender mejor el ambiente bajo el que se implementan las pruebas de penetración.