07 junio 2010

Seguridad antirootkits y antivirus en iPhoneOS for fun

¡Hola!, antes de nada me gustaría agradecer a SbD el permitirme escribir este artículo, es todo un placer por mi parte.

Sin más, vamos a tratar la seguridad en los iPhone, iPod Touch, iPad y futuros iGadgets en los que esté funcionando iPhoneOS a los que se les haya aplicado Jailbreak. Por un lado, hacer Jailbreak hace más inseguro al dispositivo (instalación de software no oficial, servicio SSH escuchando ...), pero por otro lado nos permite tener control total sobre él.

Primero vamos a implantar seguridad básica, y luego vamos a pasar al artículo en sí.

Implantar seguridad básica significa cambiar la contraseña por defecto de root para evitar intrusiones típicas (virus rastreando en busca de dispositivos configurados por defecto para entrar por SSH e instalarse).

Abrir Mobile Terminal (disponible en Cydia) para poder acceder a la terminal de comandos, y ejecutar las sentencias:
su
(password alpine por defecto)
passwd
(y la cambiáis por la que queráis)

Esto es lo normal, lo básico. Pero, ¿y si queremos más? Un dispositivo con Jailbreak es, al fin y al cabo, una máquina Unix-like a la cual podemos instalar (vía Cydia) los comandos típicos. Si a esto le sumamos que tenemos un compilador de C (además de algunos lenguajes interpretados), no sería mala idea portar aplicaciones y adaptarlas, e incluso programar nuevas aplicaciones por nuestra cuenta.

Pues este es el cuerpo de artículo, explicar y compartir algunas aplicaciones (dos portadas, una nueva) para iPhoneOS orientadas a protección antirootkits y antimalware. He metido todas en un pack, al final del artículo tenéis la descarga y el modo de instalación (muy sencillo, y desde terminal).
Antes de empezar, decir que para que funcionen adecuadamente necesitaremos usar estas aplicaciones con privilegios de root.


Una aplicación de la que creo que no hace falta hablar mucho aquí. Permite descubrir procesos y puertos TCP/UDP ocultos por rootkits / LKMs o cualquier otra técnica de ocultación.
Al estar escrita en C sólo ha habido que modificar los comandos del sistema que usa, y una función. Encaja muy bien en el sistema, es una herramienta bastante portable. El código fuente está incluido en la descarga, ya que ha sido modificado para poder adaptarlo.

Requiere descargar los siguientes paquetes de Cydia -> adv-cmds, sed, grep, network-cmds y Gawk. (Es posible que para encontrarlos tengáis que quitar el filtro de paquetes, ponedlo como Developers).

El uso es muy sencillo, para buscar procesos ocultos:

./unhide sys

Para buscar puertos:

./unhide-tcp






- Chkrootkit

Una herramienta que busca de forma local rootkits conocidos, strings sospechosas, comportamientos extraños del sistema (interfaz en modo promiscuo por ejemplo), etc ... Escrita también en C, en este caso el código no se incluye ya que no se ha modificado el original.

Requiere descargar los mismos paquetes que para Unhide (mirar arriba).

El README es muy bueno, y vienen los diferentes modos de uso. El más normal es arrancar el shell script que automatiza un análisis completo.

./chkrootkit

Esto nos analizará todo el sistema de ficheros.

 


Es una gran herramienta pero no está orientada a iPhoneOS, sino en general a sistemas Unix-like.

Ese era el problema, que no conocía ninguna herramienta orientada a iPhoneOS (a sus virus, a sus problemas de seguridad). Así que a raiz del artículo, he escrito un programa bastante sencillo que pretende ser algo así como un Antivirus diseñado para iPhoneOS. Las soluciones antivirus para este sistema son por ahora inexistentes, o poco conocidas (de forma oficial, en la AppStore no hay ninguna).

- iNovirs (Antivirus para iPhoneOS)

Programa muy sencillo que busca (en cuanto a su base de datos) archivos de virus en el sistema e intenta borrarlos. Está programado en C, y el código está licenciado bajo GNU/GPLv3. La base de datos es texto ASCII, y por lo tanto es personalizable por el usuario. Por defecto detecta y elimina el gusano ikee (variantes A, B, C y D). El código fuente se incluye en la descarga. No requiere ningún comando externo (usa el rm de forma opcional).

No es un software antivirus como tal, ya que no se van a proporcionar actualizaciones. Es una herramienta de ayuda antivirus, y la idea es que sea el propio usuario el que modifique y mantenga la base de datos (si le interesa estar seguro, o ante una infección). La herramienta está hecha just for fun.
He escrito un README en inglés con toda la información sobre cómo mantener la base de datos, los diferentes modos de funcionamiento del programa ... etc.

Tiene tres modos de funcionamiento: scan, normal y aggresive.

./inovirs scan (Busca virus, pero no borra nada).

./inovirs normal (Busca virus, en caso de encontrarlo y que el fichero NO sea delicado lo borra).

./inovirs aggresive (Busca y elimina todos los ficheros de virus encontrados, puede dañar algún componente del sistema).

iNovirs detecta si el fichero es delicado o no en función de lo que ponga en la base de datos (cada campo tiene -> nombre de virus:dirección del fichero del virus:acción a realizar).

Aquí está la ayuda:


Escaneamos en busca de virus (modo scan) y no encuentra nada.


Simulamos que estamos infectados y volvemos a ejecutar (modo scan). Vemos que encuentra el virus y nos avisa, pero no desinfecta.


Volvemos a lanzarlo para desinfectar (modo normal), lo que nos eliminará el virus del sistema.


Estos tres programas están metidos en un paquete .tar, subido al repositorio de software. Para obtenerlos vamos a abrir la terminal, y vamos a descargar el paquete con Wget (disponible en Cydia).

wget http://sbdtools.googlecode.com/files/iphone-norootk.tar

Una vez descargado sólo hay que descomprimir.

tar -xvf iphone-norootk.tar

Tendréis la carpeta iphone-norootk a la que podéis moveros, y dentro estarán las tres herramientas en sus carpetas correspondientes.


Hasta aquí el artículo. Escrito por Alberto Ortega Llamas

3 comments :

vierito5 dijo...

Hola Alberto!

Muy chulo :) Has probado con el rkhunter? Sería el otro típico que faltaría. La verdad no soy muy fan de chkrootkit/rkhunter porque o jamás he sido infectado o jamás me han sacado algo que no sea un falso positivo y desde luego lo primero seguro que no es porque a todo el mundo se la hacen de una manera u otra >.<

El iNovirs no lo conocía.

Por cierto, para los que tengan el jailbreak puesto, no cuesta nada tener el SSH siempre apagado y en el menu de acceso rápido de SBSettings tener el botoncito de activación.

a0rtega dijo...

@vierito5
De hecho, fuí a portar rkhunter primero, pero para el iPhone me gustó más chkrootkit por portabilidad y rendimiento.
iNovirs lo he escrito para este artículo ;-)

dudu dijo...

Hola, es curioso que esta semana he estado leyendo sobre otros programas de seguridad también para iOS.Como el sniffer pirni pro ,que permite arp spoofing y otro que,creo que era de aqui, de como navegar anonimamente mediante VPN + TOR.

Por no hablar de Metasploit+SET que esta pegando fuerte ,también para a Iphone.

Muy curioso,a ver si se prueba después del rootedCON.

Saludos.