Ya hemos hablado en SbD sobre diferentes medidas de seguridad y programas para securizar los dispositivos Iphone e Ipod Touch. Sin embargo, nunca podemos estar tranquilos y exentos de recibir algún tipo de ataque. El malware evoluciona con nosotros y nos persigue para adaptarse a las diferentes plataformas y por supuesto iPhone es un objetivo muy jugoso, tanto por “odio/resentimiento” de algunos a la marca de la manzana mordida, como por el volumen de dispositivos existentes alrededor del Mundo.
Incluso, para analizar y auditar de actividad “rara” el iPhone, podemos contar con herramientas de gran calidad como Unhide, cuyo port y adaptación ante malware conocido para Iphone, ya analizó nuestro compañero Alberto en SbD.
Sin embargo, no estamos libres de que algún otro tipo de ataque, ya sean externos (como los que se dieron a través del interfaz 3G contra el servicio SSH con password por defecto en algunos operadores); o incluso internos debido a que un usuario instale algún programa de dudosa reputación/origen que termine efectuando acciones maliciosas por su cuenta, que hagan uso de la conexión 3G para enviar/pedir datos a Internet, se salte las restricciones de roaming, etc,…
Así pues he estado indagando entre diferentes aplicaciones software que ayuden a prevenir la fuga de información o posible compromiso del dispositivo a nivel de conexión de red. Los firewalls analizados son los siguientes:
- Firewall IP (Descargable de Cydia. Coste: $2.99): Gracias a esta solución podemos definir, de una forma muy gradual, políticas para cada aplicación de tráfico SALIENTE del Iphone. Es decir, si queremos permitir únicamente conexiones a determinadas IPs por parte de una aplicación, podemos definir una política específica basado en listas blancas/negras y partir de modelos de seguridad positiva o negativa. Fundamentalmente, se puede decidir que ninguna aplicación pueda acceder a Internet y, según se vaya haciendo uso de las aplicaciones, Firewall IP nos preguntará si queremos permitirlo y en qué condiciones. Además, aquellas aplicaciones que son ejecutadas por el Springboard (es decir el propio entorno gráfico) o que corren en background, tengan una política por defecto pre-definida: No dejo salir nada o dejo salir todo y voy acotando. El otro enfoque sería permitir todo por defecto y bloquear acceso a Internet a algunas aplicaciones nada más. Así pues permite afinar mucho lo que queremos permitir y qué denegar, e incluso a través de qué interfaz; podemos indicar que sólo se permita acceso a internet si sólo es a través del adaptador de red wireless, pero no a través de 3G o GPRS.
- Privacy Opt-out (Descargable de Cydia. Gratuito): Este sencillo add-on añade a la carpeta preferencias un serie de checks que permiten evitar que determinadas librerías envíen estadísticas de datos de usuario anónimamente a los creadores de ciertas aplicaciones. Incluso Jay Freeman –@Saurik– (autor de Cydia) y la gente de Bigboss, contactaron con los autores de esas librerías (Flurry, Medialets, Mobclix o Pinch Media) para que colaborasen en el desarrollo de esta herramienta que permitiese desactivar su uso según la decisión del usuario. Atención! Al haberlo instalado en IOS 4.1, noto mi iphone 3G más lento aún que de costumbre. Creo que está recomendado sólo para Iphone 3.X
Me ha llamado mucho la atención no haber encontrado referencias de firewalls libres o comerciales que protejan tanto ante conexiones salientes enviadas por el iphone, como entrantes desde una red local o desde Internet en búsqueda de puertos abiertos. Cierto es que en el caso de España, en el operador Movistar, la IP 3G obtenida no siempre es accesible desde Internet, sino que pertenece a un direccionamiento privado, pero aun así, no estaría de más el poder prohibir las conexiones entrantes de alguna manera.
Así pues lo único que se me ocurre para ello es seguir una serie de buenas prácticas y consejos:
- Si hemos instalado el servidor OpenSSH, podremos hacer que por defecto arranque deshabilitado, y así tenerlo que activar/desactivar cuando nos haga falta realmente. De esta manera evitamos que si en algún momento futuro, alguien desarrolle el mismo tipo de script para buscar IPs con servidores SSH y prueben root/alpine como credenciales, como sucedió en otros operadores. Si queremos que el servidor SSH arranque al reiniciar el dispositivo, recomiendo seguir las guías de securización de SSH (1 y 2) que ofrecimos en SbD (acceso con certificados, cambio de clave de usuarios root y mobile, cambio de puerto por defecto, prohibición de login como root, etc,…). Otra opción es deshabilitar el arranque por defecto del servicio. Para ello conectaremos vía SSH y ejecutaremos en consola, como root: launchctl unload -w /Library/LaunchDaemons/com.openssh.sshd.plist
- Cada vez que instalemos software nuevo o al menos, realizar un escaneo de puertos desde fuera a través del interfaz wireless, con cierta frecuencia. Un escaneo completo podría hacerse de forma sencilla, de la siguiente manera: nmap -sT -sU -p 0-65535
- Mediante SBSettings añadir cuantos toggles sean necesarios para poder arrancar o parar los servicios de conectividad de red según los necesitemos… y recordad que Only paranoid survive!
Fuente: Publicado por Lorenzo Martínez en Securty By Default