Está en la página 1de 32

KeyLoggers

Bruno Lpez Lagares

Mster en Informtica

Seguridad en Sistemas de Informacin 2008


1. ndice

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

1
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].

2
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.

3
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.

4
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
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

6
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.

7
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.

8
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.

9
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 Posicin del dato en la memoria hardware del keylogger (formato hex).


2 Pulsacin de tecla registrada y guardada.
3 Incidencia - pulsacin o liberacin de tecla.
4 Scan code de pulsacin de tecla en el bus PS/2 (formato hex).
5 ltima posicin grabada durante el registro en la memoria (formato hex).
6 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 Free edition Pro edition


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 -

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] https://caixagestion.caixagalicia.es/2091/01TEVIm.htm

[CODI06] Cormac, Herley; Florencio, Dinei - 2006


How to Login from an Internet Caf Without Worrying about Keyloggers

[GHAC08] http://es.ghacks.net/2007/07/07/como-defenderse-contra-keyloggers-en-
ordenadores-publicos/

[INVI08] http://invisiblehack.mforos.com/1139500/6197741-tutorial-keylogger/

[KASP08] http://www.kaspersky.net.ar/amenazas.keyloggers.htm#detect

[KEEL08] http://www.keelog.com/es/diy.html

[LOGI08] http://www.logisteam.org/store/catalog/index.php/

[LOGI08b] http://www.logixoft.com/

[PICO04] Picouto, Fernando; Matas, Abel Mariano; Ramos, Antonio ngel 2004
Hacking Prctico

[SECU08] http://www.securityfocus.com/infocus/1829

[SPYC08] http://spycop.com/keyloggerremoval.htm

[VERI08] http://www.verisign.com/verisign-inc/news-and-events/news-archive/us-
news-2005/page_036258.html

[VIRA08] http://virusattack.blogspot.com/2007/08/qu-es-un-keylogger-leccin-9.html

[VIRL08] http://www.viruslist.com/sp/analysis?pubid=207270912#what

[WEBO08] http://isp.webopedia.com/TERM/K/keylogger.html

[WIKI08a] http://es.wikipedia.org/wiki/Keylogger

[WIKI08b] http://en.wikipedia.org/wiki/Keylogger

[WIKI08c] http://en.wikipedia.org/wiki/Hardware_keylogger

31

También podría gustarte