¿Por qué es importante la detección de jailbreak? — Caso de aplicaciones COVID | de Wojciech ReguÅ‚a | seguridad

Hace algún tiempo me quedé atrapado en los Estados Unidos a causa del COVID-19. Después de regresar a Polonia con el “vuelo de evacuación”, tuve que someterme a una cuarentena obligatoria de 14 días. Todos los días la policía polaca me visitaba y verificaba si estaba sentado en casa y no salía. Como todos esperábamos, fue un gran gasto para la Policía, ya que tenían que visitar todos los días a cada persona en cuarentena. Mis amigos me dijeron que puedo instalar una aplicación oficial del gobierno que informa mi ubicación todos los días. Después de la instalación, el usuario debe completar una tarea cotidiana que incluye enviar una selfie desde casa. Debajo del capó, la aplicación también informa la ubicación del usuario. Empecé a considerar si la aplicación está debidamente protegida contra los ataques de suplantación de identidad GPS.

Hay muchas aplicaciones/tecas que permiten cambiar sus coordenadas GPS en iOS. Sin embargo, la detección de estos no es simple. Hay algunos enfoques, como informar constantemente la ubicación del usuario o analizar la velocidad del usuario. La aplicación de cuarentena que instalé no admitía tales mecanismos (de hecho, vi un método de falsificación de GPS en el código, pero probablemente solo era un simulacro). Entonces, le hice jailbreak a mi iPhone, descargué el tweak AkLocationX y abrí la aplicación de cuarentena. Después de un registro exitoso, falsifiqué mi ubicación de la siguiente manera:

Abrí la aplicación y resultó que estaba en algún lugar del Océano Pacífico Norte.

Como puede ver, engañar a esta aplicación fue bastante simple, y un script-kiddie puede evitar la cuarentena. Eso puede influir en la salud social. En la siguiente sección, le mostraré una mejora que puede ayudar a detectar este tipo de comportamientos sospechosos.

Como Wikipedia dice:

Jailbreaking es la escalada de privilegios de un dispositivo Apple con el fin de eliminar las restricciones de software impuestas por Apple en los sistemas operativos iOS, iPadOS, tvOS y watchOS. Esto normalmente se hace mediante el uso de una serie de parches del núcleo. Jailbreaking permite el acceso a la raíz en el sistema operativo móvil de Apple, lo que permite la instalación de software que no está disponible a través de la App Store oficial de Apple.

Para engañar a la aplicación de cuarentena, primero tenía que tener un dispositivo con jailbreak. Era necesario instalar el ajuste de suplantación de identidad GPS. Entonces, la idea es detectar ese jailbreak y responder adecuadamente. Para las aplicaciones de cuarentena, ¿tal vez sea una buena solución no confiar en la localización GPS en dispositivos con jailbreak y enviar a la policía para verificar la ubicación del usuario?

Aquí, debo decir que estoy totalmente en contra de bloquear aplicaciones en dispositivos donde se detecta el jailbreak. Los usuarios deben tener la opción de usar un dispositivo con jailbreak o jailbreak. Sin embargo, también entiendo el hecho de que los dispositivos con jailbreak tienden a ser menos seguros. Jailbreak generalmente significa permanecer en una versión obsoleta de iOS con vulnerabilidades conocidas, a veces matando o modificando demonios de seguridad importantes. Recuerdo los tiempos en que el servidor SSH estaba vinculado a todas las interfaces con las credenciales de root:alpine. Entonces, si se hubiera conectado a un WiFi público sin aislamiento del dispositivo, cualquier persona habría podido tomar el control de su dispositivo y ejecutar cualquier comando como root.

Tenemos que llegar a un compromiso. Las aplicaciones de alto riesgo tienen que responder de alguna manera cuando se ejecutan en el entorno modificado. En mi opinión, la buena solución es realizar las comprobaciones de jailbreak, iniciar sesión, informar al usuario que su dispositivo tiene jailbreak y que acepta el riesgo de usar dicho dispositivo.

La detección de jailbreak se realiza en el dispositivo que puede ser controlado completamente por el usuario. ¡Significa que el atacante siempre ganará! Si el atacante tiene permisos de root y puede modificar todo en el dispositivo, también puede escribir un mecanismo anti-anti-jailbreak. Se puede hacer modificando la aplicación, creando un ajuste especialejecutando un guion frida o incluso crear un extensión del núcleo.

Siempre debe tratar la detección de jailbreak como otra capa de seguridad. Es muy importante entender que implementar un La detección de jailbreak no puede ser su única defensa. Las aplicaciones siempre tienen que estar codificadas de forma segura, sin importar si el dispositivo tiene jailbreak o no.

En esta investigación, también busqué rápidamente otras aplicaciones de cuarentena. Si bien no tenía acceso a las versiones activadas, solo realicé un análisis estático y semidinámico rápido para ver si las aplicaciones detectan fugas. Resultó que solo 1 de 5 aplicaciones que analicé rápidamente tenía tal «protección».

La aplicación de cuarentena polaca en iOS era fácilmente eludible, lo que podría haber tenido una influencia en la salud pública. La aplicación no tenía protección de suplantación de GPS ni mecanismos de detección de jailbreak. Cuando la detección de jailbreak no suele ser importante y necesaria, hay algunos tipos de aplicaciones que deberían implementarse. Incluso una simple capa de seguridad puede evitar que los «script kiddies» pasen por alto las características cruciales. Por otro lado, debemos recordar que el atacante experimentado siempre ganará cuando se realicen las comprobaciones en el dispositivo. No haga suposiciones falsas y siempre asegúrese de que su aplicación esté codificada de forma segura.

Si desea implementar un mecanismo de detección de jailbreak en su aplicación, eche un vistazo a nuestra biblioteca gratuita y de código abierto: iOS Security Suite. Puedes encontrarlo en Github: https://github.com/securing/IOSSecuritySuite

Fuente del artículo

Deja un comentario