Un keylogger, también conocido como keystroke logging, puede ser un software o dispositivo que se encarga de registrar y almacenar todas las pulsaciones del teclado que un usuario realiza en una computadora o dispositivo móvil a medida que escribe. La información obtenida por un keylogger puede ser almacenada en un archivo de texto o en la memoria de la computadora, para luego ser enviada hacia el servidor de un atacante de diferentes maneras.
Si bien existen programas de este tipo para usos legítimos, cuando son utilizados con fines maliciosos y/o sin el consentimiento del usuario son considerados un tipo de malware dentro de la categoría spyware. En estos casos, a partir del uso de un keylogger para espiar las conversaciones, el atacante usará el programa para robar información sensible, como credenciales para el acceso a la banca en línea o a otras cuentas, conversaciones de chat, mensajes de correos, entre otro tipo de información personal que el usuario haya ingresado utilizando el dispositivo comprometido.
En el resto del artículo exploramos los siguientes puntos:
- Qué puede hacer un keylogger
- ¿Quiénes se aprovechan de este malware?
- Tipos de keylogger
- ¿Keylogger siempre es sinónimo de malware?
- Recomendaciones de seguridad
Qué puede hacer un keylogger
Los keyloggers han ido variando a lo largo del tiempo, sumando a su a funcionalidad básica de las pulsaciones de teclado la capacidad de controlar la cámara del equipo de la víctima, realizar capturas de pantalla, obtener la información del clipboard o portapapeles (utilidad que permite almacenar temporalmente en la memoria RAM pasajes de texto cuando utilizamos las funciones de copiar y pegar), ganar persistencia en el equipo, entre otras opciones. Algunos keyloggers también cuentan con la capacidad de grabar las llamadas de voz y controlar el micrófono del dispositivo.
A continuación, se puede ver un ejemplo de un keylogger de software guardando la información en un archivo de texto.
¿Quiénes se aprovechan de este malware?
Los keyloggers son comúnmente utilizados por los cibercriminales para obtener credenciales de cuentas validas, como las del correo electrónico, la de la cuenta bancaria, o los datos de la tarjeta de crédito, para luego realizar otro tipo de ataques o acciones fraudulentas.
Un usuario puede verse afectado por un keylogger de distintas maneras. Algunas de las más comunes son a través de correos de phishing que incluyen un adjunto que contiene la amenaza, mediante la descarga un software en algún sitio web de dudosa reputación al que le fue embebido el keylogger, puede estar presente en un sitio web comprometido (javascsript) o en un dispositivo USB, entre otras.
A su vez, se han detectado a distintos malwares, como Emotet, Trickbot o Zbot (Zeus), así como otros troyanos bancarios que apuntan principalmente a América Latina, como Mekotio, por nombrar alguno, o incluso amenazas más sofisticadas operadas por grupos de APT, que incluyen dentro de su arsenal malicioso el uso de keyloggers. Es decir que no utilizan el keylogger como su función principal, sino como un complemento más para aumentar sus probabilidades de éxito.
A continuación, se puede ver en el siguiente gráfico, a modo de ejemplo, la cantidad de detecciones de distintas muestras de la botnet Zbot por los productos de ESET, que como dijimos cuenta con esta funcionalidad de keylogger.
Tipos de keylogger
Existen dos tipos de keyloggers, uno a nivel de software y otro de hardware. Un keylogger de software es un programa que se instala en un dispositivo para, tal como mencionamos anteriormente, monitorear la actividad realizada en el dispositivo de la víctima. A su vez, los keyloggers de software pueden ser subcategorizados en algunas de las siguientes categorías:
- Kernel: este tipo de keyloggers residen a nivel del kernel de la computadora, escondidos dentro del sistema operativo, haciéndolos más difícil de ser detectados; en especial cuando hablamos de aplicaciones que funcionan a nivel usuario en la computadora.
- API: son aquellos que utilizan funciones de las API de Windows para registrar toda la actividad realizada sobre el teclado.
- Javascript: En este tipo de keyloggers se inyecta código javascript sobre una página web, por ejemplo, mediante un tipo de ataque conocido como Cross-Site Scripting (XSS), y puede estar a la escucha de eventos, ya sea mediante la función addEventListener() o también utilizando “document.onkeypress”, entre otros.
- Inyección en Memoria: estos modifican las tablas de memoria que están vinculadas con las llamadas a funciones del sistema y los navegadores de Internet. Al hacer este “arreglo” o inyección directa sobre la memoria, el programa podría evadir el control de cuentas de usuario de Windows (Windows UAC).
Por otro lado, los keylogger basados en hardware no dependen de ningún software instalado sobre el sistema operativo para ejecutarse, ya que están a nivel hardware en la máquina, algunas subcategorías de estos pueden ser:
- Keylogger firmware: la BIOS de la computadora puede ser modificada para registrar los eventos mientras son procesados. El software para cargar en la BIOS debe ser creado especialmente para el hardware sobre el cual va a ejecutarse.
- Keyboard hardware: es un dispositivo que se conecta entre el teclado y algún puerto de entrada en la computadora para registrar los eventos.
- Wireless keyboard sniffers: obtiene y guarda los paquetes que son enviados entre el teclado y el receptor. Es posible que la información de los paquetes vaya cifrada por motivos de seguridad.
Keyloggers overlay: en este caso se pone un teclado falso sobre el original para que al momento de presionar una tecla, la misma sea capturada tanto por el teclado original como por el falso. Como vemos en este artículo, estos son comunes en ataques a cajeros automáticos.
¿Keylogger siempre es sinónimo de malware?
Si bien es cierto que la actividad que realiza un keylogger es maliciosa y atenta contra la privacidad de los individuos, existen usos legítimos que son permitidos en algunos países (debido a la falta de una ley que los prohíba). Por ejemplo, para monitorear la exposición de nuestros hijos en Internet o una empresa para realizar un seguimiento de sus empleados.
Lo cierto es que, si no se tiene el consentimiento de la persona, esto puede terminar siendo una violación a la privacidad que, dependiendo de las leyes que se apliquen en cada país, podría derivar en un serio problema legal.
Recomendaciones de seguridad
Un keylogger se caracteriza, entre tantas cosas, por ocultarse de manera efectiva dentro del dispositivo de la víctima, lo cual puede dificultar su detección. Incluso pueden reinstalarse en caso ser eliminados. Pero esto no significa que no puedan detectarse y eliminarse de manera definitiva. Por ende, a continuación enumeramos algunas recomendaciones para estar protegidos contra este tipo de malware:
- Utilizar y mantener actualizada una solución de antivirus.
- Utilizar algún gestor de contraseñas seguras como KeePass o ESET Smart Security Premium para versiones hogareñas, evitando escribir la contraseña en los sitios a los que se quiere ingresar.
- Implementar el doble factor de autenticación.
- Solo instalar programas provenientes de fuentes confiables.
- Bloquear la máquina cuando no se esté usando para evitar que otra persona quiera instalar un keylogger en el mismo.