Hace poco un compañero comentaba en un post la comercialización por internet de USB’s infectados con malware. La realidad es que no paran de surgir nuevas posibilidades de infecciones virus, troyanos, etc.

Dentro de todo este maremágnum de software malicioso, me voy a centrar en los keyloggers, ya que parece que está bastante de moda el uso de los mismos.

Como podemos comprobar ya no sólo son los troyanos los que capturan pulsaciones de teclado con el fin de robar credenciales y cometer fraude posteriormente con los mismos, como es el caso del Mebroot. Troyano que vemos que evoluciona constantemente variando de manera que resulta cada vez más difícil la detección del mismo.

Existe también multitud de Spyware (programas espía) que monitorizan toda la actividad que tenemos en nuestro ordenador, y por supuesto, también capturan las pulsaciones dando varias posibilidades, crear archivos de logs con las pulsaciones, enviarlas a un servidor ftp, enviarlas a una cuenta de correo, etc.

Lo cierto es que hemos analizado una gran cantidad de keylogers que incluyen este tipo de programas espía, los que aparecen en este link y otros tantos más.

Utilizando tanto aplicaciones del mercado, como aplicaciones propias hemos visto que la técnica que más predomina en este tipo de malware son los hooks SetWindowsHookEx. En RING 3 (espacio de usuario) en torno al 80% de las aplicaciones analizadas utiliza ésta técnica SetWindowsHookEx. En RING 0 (espacio del kernel) normalmente acceden a los datos del dispositivo de teclado correspondiente (USB, PS/2). Parece obvio que el porcentaje de keyloggers en RING 0 sea bastante menor pues la programación a este nivel es mucho más compleja.

Es evidente que debemos protegernos de este tipo de malware, para ello tenemos varias opciones:

  • Programas Antivirus. Normalmente detectan este tipo de malware o bien por firmas o por técnicas heurísticas. Algunos de los programas de monitorización aseguran en sus web que son indetectables con este tipo de programas.

  • Programas Anti-Keyloggers o Antiespía. La mayoría son similares a los antivirus, es decir necesitamos firmas, y por tanto tener actualizado el programa para detectar los últimos keyloggers.
  • Programas especializados en la detección de rootkits. Programas que no suelen utilizar firmas, sino que basan su análisis en las estructuras internas del sistema operativo (procesos, drivers, IDT, SDT, etc.) para detectar modificaciones sospechosas, por ejemplo GMER, Rootkit Unhooker, etc.


Lo cierto es que en nuestras pruebas hemos podido constatar que aunque la eficacia de detección en cualquiera de los tipos de programas anteriormente mencionados es alta, no llega a ser del 100%, cosa que es lógica dada la constante evolución del malware.

No debemos olvidar que, a pesar que tengamos actualizados nuestros antivirus, anti-spyware y usemos varias herramientas de detección, la mejor forma de evitar este tipo de infecciones es usar el sentido común.


Raúl García
S21sec e-crime