Archivo por meses: septiembre 2015

Keylogger

Un keylogger (término inglés creado a partir de las palabras key (tecla) y logger (registrador)) es un sistema que almacena las pulsaciones del teclado para su posterior tratamiento.

El registro de las teclas pulsadas puede realizarse tanto mediante un software específico como utilizando un equipo físico. La utilización de este sistema permite capturar cualquier información introducida desde un equipo antes de que se aplique ningún tipo de securización (sesiones SSL, cifrado IPsec, etc.) para su transmisión por lo que el atacante puede obtener cualquier tipo de información privada (contraseñas, claves de acceso a datos bancarios, etc.). Así la instalación de un sistema keylogger suele ser un paso previo a un ataque más rentable al conseguir información privilegiada a la que no se tenía acceso.

Tipos de keylogger

Veamos los diferentes tipos de keyloggers:

Keylogger hardware

Keylogger en conector PS2

Keylogger físico en conector PS2. Fuente imagen: Wikipedia

Se tratan de dispositivos físicos que capturan la información tecleada y la almacenan. Así pues se necesita acceso físico al equipo que se desea espiar. Aunque el funcionamiento básico sea el mismo (interceptar la información antes de que llegue al ordenador) podríamos encontrarnos tres tipos diferentes en función de su instalación:

  1. Adaptadores: se trata de pequeños sistemas que se conectan en el cable que une el teclado con el equipo. Se trata de la forma más sencilla y rápida de instalar un keylogger si bien una revisión física detectaría el equipo.
  2. Internos: son pequeños circuitos pensados para ser montados dentro del teclado. Requieren una mayor pericia y tiempo ya que implican desmontar el teclado, instalar el keylogger y volver a montar el teclado. Sólo pueden ser detectados si se detectan desperfectos o se abre el teclado.
  3. Teclado completo: el engaño consiste en sustituir el teclado del ordenador por uno previamente preparado. Esta acción implica una información previa sobre la marca y modelo del teclado (que podría conseguirse, por ejemplo, en una visita previa o mediante ingeniería social) si bien hace que el keylogger sea virtualmente ilocalizable.

Keylogger software

Ejemplo de captura de un keylogger

Ejemplo de registro de un keylogger. Fuente imagen: Wikimedia

Los keylogger por software son los más comunes y utilizados ya que no requieren la presencia física y pueden ser instalados y gestionados a distancia. En este caso el programa espera que la información de las pulsaciones sea recogida por el ordenador para almacenarla. En este caso podemos encontrar dos vías para obtener la información del teclado:

  1. Sustituir el driver: En este caso el programa sustituye el controlador del teclado que incluye el sistema operativo de tal forma que toda pulsación es gestionada por el keylogger para posteriormente entregarla a las aplicaciones legitimas pasando desapercibido.
  2. Utilizando opciones del sistema operativo: Estos programas, los más sencillos de escribir, utilizan las diferentes funciones del sistema operativo para activarse en el momento que se realiza cualquier pulsación y realizar una copia.

Protección frente a keyloggers

Los keylogger son, probablemente, una de las amenazas más difíciles de detectar y lidiar mientras que son de las más peligrosas por la información que pueden obtener y las implicaciones que pueden alcanzarse. Veamos pues algunas formas de detección y protecciones frente a la amenaza.

Seguridad física

Los keylogger físicos implican un acceso físico a los equipos a vigilar por lo que una política de seguridad física correcta evitaría su uso. El control de acceso es efectivo en este punto. La revisión periódica de los conectores permitiría detectar la mayoría de los keyloggers.

Sistemas antispyware

Los fabricantes de software antivirus y antimalware disponen de una serie de firmas de los keyloggers conocidos por lo que podrían detectar su aparición en los ordenadores. Este sistema sólo es útil si utilizan un programa conocido.

Teclados virtuales

Ejemplo de teclado virtual

Ejemplo de teclado virtual. Fuente imagen: Wikimedia

Una estrategia de la banca online para evitar que sus usuarios sean víctimas de fraude por tener un keylogger instalado en sus equipos ha consistido en la creación de teclados virtuales donde deben marcar sus claves con clicks de ratón. Así se evitan las pulsaciones del teclado y con ello dar información al keylogger. Algunos keylooger han evolucionado para realizar capturas de pantalla cuando detectan que se accede a algún servicio bancario para contrarrestar esta defensa si bien eso no siempre es efectivo (acceso a la web desde accesos directos, favoritos/marcadores, etc.).

Comportamiento lento

Si el keylogger es un programa mal hecho es posible detectar su existencia por un aumento en el tiempo de reacción al pulsar teclas. Aunque el keylogger está pensado para pasar desapercibido debe registrar cada pulsación por lo que la pulsación continua y repetida de múltiples tecla puede ocasionar su saturación y una mayor lentitud en la respuesta de un programa legítimo, lo cual puede llevar a pensar en la existencia de un keylogger. Se trata de una estrategia ya poco útil debido a la mejora de los programas y a la potencia de cálculo de los ordenadores.

Detección de tráfico saliente

La información almacenada por el keylogger debe ser revisada por lo que generalmente es enviada fuera de la red para que el atacante pueda analizarla. Una política restrictiva de acceso a servidores de correo o FTP externos puede evitar que la información salga al exterior. Si se dispone de un IDS o IPS es posible detectar conexiones extrañas hacia el exterior y actuar en consecuencia. El hecho de forzar a los usuarios a utilizar un proxy de navegación también dificultará el envío de la información almacenada.

La posibilidad de que haya un keylogger instalado es un ejemplo claro de porqué no hay que descuidar la seguridad desde el punto de vista de un atacante, intencionado o no, interno.

Control permisos instalación software

En un entorno empresarial no es habitual que los usuarios necesiten instalar aplicaciones nuevas por lo que una política de empresa que restrinja los permisos de usuario evitaría la instalación de la mayoría de keyloggers software. Si además se dispone de un repositorio de drivers interno es posible revisar que los ordenadores estén utilizando el driver de teclado correcto y certificado evitando así los drivers modificados de forma maliciosa.

Ataque David Hasselhoff

Aunque generalmente una empresa u organización intenta principalmente proteger sus servicios de ataques exteriores nunca hay que dejar de lado la posibilidad de un ataque interno (usuarios malintencionados, errores, etc.). Así los equipos de sistemas aplican políticas de seguridad en el acceso a recursos (navegación a Internet, acceso a carpetas compartidas, instalación de software en los ordenadores, etc.) por lo que es importante concienciar a los usuarios de que es necesario que bloqueen sus equipos cuando se ausenten. De poco sirve limitar el acceso a los datos de nóminas únicamente a los empleados del departamento de recursos humanos si cuando van a tomar un café cualquier persona de la empresa puede sentarse en su ordenador y hacer lo que quiera en su nombre. Aunque se explique a los usuarios la importancia de esta medida de seguridad no suelen tomarlo en serio y éste es el motivo de la aparición del ataque David Hasselhoff.

Se desconoce exactamente por qué el protagonista de esta broma concienciadora es precisamente David pero lo cierto es que se extendió y viralizó por Internet.

El procedimiento es muy sencillo y no requiere de perfil técnico:

  1. La víctima sale del despacho sin bloquear su sesión en el ordenador
  2. El atacante, generalmente el gracioso del departamento, se sienta en su sitio:
Resultado de un ataque David Hasselhoff

Resultado de un ataque David Hasselhoff Fuente imagen: El Lado del Mal

Cuando la víctima vuelve a su puesto se encuentra con un fondo de pantalla perturbador generando situaciones cómicas. Generalmente la aparición de este ataque en un equipo del departamento hace que todo el personal cierre su sesión durante una temporada hasta que la desidia vuelva a aparecer y genere un nueva ataque de David Hasselhoff.

IPS e IDS

Los sistemas de detección de intrusos (IDS, Intrusion Detection System) y los sistemas de protección de intrusos (IPS, Intrsion Prevention System) son una evolución de los sistemas de defensa basados en firewall. Estos sistemas ya no se basan únicamente en las comunicaciones basadas en direcciones IP y puertos sino que revisa el tráfico de red o el comportamiento de los equipos para detectar actividad maliciosa.

Esquema de un IPS

Esquema de un IPS
Fuente imagen: BringCom

La principal característica que diferencia ambos sistemas es el comportamiento una vez detectado un posible comportamiento malicioso: los sistemas de detección, IDS, avisan a los administradores para que pueda analizar y actuar en consecuencia mientras que los de protección, IPS, aplican una serie de políticas que intentan detener las actividades maliciosas. Ambos sistemas pueden utilizarse en las mismas redes y utilizan las mismas técnicas si bien es el matiz de su actuación una vez detectada una amenaza el que los diferencia.

IPS e IDS por objetivo de monitorización

Estos sistemas pueden clasificarse en función del sistema que analizan en cuatro categorías:

  • Los sistemas basados en red (NIPS, Network IPS) analizan el tráfico de una red en busca de intenciones maliciosas.
  • Los sistemas de detección en redes inalámbricas (WIPS, Wireless IPS) realizan la misma función en redes Wi-Fi.
  • Los sistemas basados en servidores (HIPS, Host IPS) monitorizan el comportamiento del propio servidor (uso de memoria, disco duro, conexiones, etc.) para detectar posible software malintencionado.

Sistemas IPS e IDS por sistema de detección

Existen diferentes formas de intentar distinguir un comportamiento anómalo o malicioso por lo que los diferentes desarrolladores de sistemas IDS han abordado el problema de diferentes formas. Aunque las soluciones que podemos encontrar en el mercado suelen incluir varias de estas formas de trabajo, tradicionalmente se han categorizado de la forma siguiente:

  • Detección basada en firmas: Este sistema intenta localizar una cadena de información, previamente conocida, en una comunicación. Así el sistema analiza el tráfico http en busca de cadenas de peticiones que induzcan a un posible ataque de SQL Injection. La principal ventaja de esta estrategia es su alta eficiencia para detectar ataques ya conocidos pero, como contrapartida, es prácticamente inútil para detectar ataques aún no conocidos por el sistema.
  • Detección basada en políticas: Este sistema requiere definir de forma concienzuda el tipo de comunicación (y no sólo puertos y protocolo) entre los servidores o diferentes redes. Se trata de sistemas muy efectivos pero que requieren de un configuración detallada.
  • Detección basada en anomalías: Estos sistemas buscan detectar comportamientos anormales en nuestros sistemas. La principal dificultad es definir qué es normal y qué no. Actualmente se utilizan dos formas para intentar registrar cambios maliciosos:
    • Detección estadística de anormalidades: Los sistemas analizan el comportamiento de nuestra red o servidores durante un tiempo determinado. Con esta información generan un patrón. Cuando el comportamiento difiere demasiado del patrón normal previamente calculado salta las alarmas y generan los avisos o actuaciones pertinentes.
    • Detección no estadística de anormalidades: En estos equipos es un administrador quien define los patrones de comportamiento normal por lo que pueden ser muy granulares y específicos si bien es muy posible que con el tiempo se generen falsos positivos.