Ukip: una utilidad que protege tu sistema de inyecciones USB

Google ha publicado una utilidad llamada “ukip” que permite rastrear y bloquear ataques llevados a cabo utilizando dispositivos USB maliciosos que simulan un teclado USB para la sustitución oculta de pulsaciones de teclas ficticias, por ejemplo, durante un ataque, se puede simular una secuencia de pulsaciones de teclas que conducen a la apertura del terminal y la ejecución de comandos arbitrarios.

Esta herramienta es un demonio para bloquear dispositivos de inyección de teclas USB en sistemas Linux. Ukip se ejecuta en forma de un servicio systemd y puede funcionar en modos de monitoreo y prevención de ataques.

En el modo de monitoreo, se lleva a cabo la detección de posibles ataques y el registro de la actividad asociada con los intentos de usar dispositivos USB para otros fines para sustituir la entrada. En modo de protección, cuando se detecta un dispositivo potencialmente malicioso, se desconecta del sistema en el nivel del controlador.

Los ataques de inyección de teclas USB han sido un problema durante mucho tiempo debido a la disponibilidad y el precio de las herramientas de inyección de teclas. Esos ataques envían pulsaciones de teclas inmensamente rápidas, en un abrir y cerrar de ojos humano, mientras que son efectivamente invisibles para la víctima.

Inicialmente propuesto para facilitar las tareas del administrador del sistema, los atacantes aprendieron cómo usar esta tecnología para su propósito y comprometer los sistemas del usuario. Aquí hay un ejemplo de ataque, con una carga útil más o menos benigna:

La herramienta está diseñada para proporcionar una capa adicional de protección para defender a un usuario sentado frente a su máquina desbloqueada al ver que ocurre el ataque. Pueden ver el ataque, ya sea porque las pulsaciones de teclas se retrasan lo suficiente como para eludir la lógica de la herramienta o lo suficientemente rápido como para ser detectadas por ella, es decir, bloquean el dispositivo al desvincular su controlador y registrar la información en syslog.

La actividad maliciosa se determina sobre la base de un análisis de la naturaleza de la entrada y los retrasos entre las pulsaciones de teclas: un ataque generalmente se lleva a cabo en presencia del usuario y para que pase desapercibido, las pulsaciones de teclas simuladas se envían con retrasos mínimos atípicos de la entrada de teclado convencional.

Para cambiar la lógica de detección de ataque, se proponen dos configuraciones KEYSTROKE_WINDOW y ABNORMAL_TYPING (la primera determina el número de clics a analizar y la segunda el intervalo de umbral entre clics).

El ataque se puede lograr usando un dispositivo con un firmware modificado, por ejemplo, para un teclado de simulación puede ser una memoria USB, USB-hub, cámara web o teléfono inteligente (tal es el caso en Kali NetHunter en donde se propuso una utilidad especial para la sustitución de entrada conectada a la puerto USB del teléfono inteligente ejecutando la plataforma Android).

Para complicar los ataques USB, además de ukip, también puede usar el paquete USBGuard, que permite que los dispositivos se conecten puedan entrar en funcionamiento.

Esto es basado en listas, la lista blanca es la que contiene los dispositivos permitidos, mientras que de manera predeterminada se bloquea la capacidad de conectar dispositivos USB extraños durante el bloqueo de pantalla y no permite trabajar con dichos dispositivos después de que el usuario regrese.

¿Cómo instalar ukip en Ubuntu y derivados?

Para quienes estén interesados en poder instalar esta utilidad deben seguir las instrucciones que compartimos a continuación.

Lo primero que debemos hacer es instalar pip y virtualenv, para ello vamos a abrir una terminal y en ella vamos a teclear:

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

sudo apt install python3-pip

sudo pip3 install virtualenv

Hecho esto vamos a obtener el archivo de instalación con el siguiente comando:

git clone https://github.com/google/ukip.git

Entramos al directorio con:

cd ukip

Ahora es necesario que realices algunos ajustes en el archivo setup.sh, en los cuales vas a ajustar el archivo a tu manera de escribir en tu teclado, es decir cuantas teclas pulsas al mismo tiempo, tiempo entre pulsaciones, si lo vas a ejecutar en modo monitor o de protección.

Para ello es importante que leas la información al respecto en el siguiente enlace.

Ya configurado el archivo, basta con ejecutarlo con:

chmod +x setup.sh

./setup.sh

El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.