BusKill: un cable USB contra los "tirones" de portátil

Imagina que estás en una cafetería con tu portátil, en la página de tu banco o en otro servicio importante, y de repente alguien coge tu portátil y sale corriendo... ¿qué pasaría si ese alguien se aprovechara de que estabas autenticado para realizar cualquier acción rápidamente?

Quizás no te diera tiempo a llamar al banco para que congelaran tus cuentas, o avisar a tu empresa para forzar un logout, etc.

Pues leyendo encontré una solución bastante original para bloquear, apagar o "autodestruir" el ordenador cuando está físicamente separado de uno mismo: BusKill.

Se trata de un cable USB conectado al equipo y alguna parte del cuerpo (la muñeca por ejemplo, que os veo venir) y que al tirar y desconectarse realice esa acción inmediata que nos salve el culo. Esto se puede mejorar aún más utilizando un conector magnético. Por ejemplo, los siguientes elementos son suficientes para construir este cable USB de "interrupción":
Sin embargo, en 2020, hay muchos portátiles que ya no tienen puertos USB-A. Si solo tienes un USB-C, puedes volverlo híbrido agregando esto:
O irte a un USB-C completo con:
En cuanto al software basta con agregar un nuevo archivo de reglas de udev a /etc/udev/rules.d/. Por ejemplo, con una regla sencilla que activará xscreensaver para bloquear la pantalla cada vez que se extraiga la unidad USB:
cat << EOF | sudo tee /etc/udev/rules.d/busKill.rules
ACTION=="remove", SUBSYSTEM=="usb", RUN+="DISPLAY=:0 xscreensaver-command -lock"
EOF
sudo udevadm control --reload

Pero esa regla puede ser demasiado genérica. Si quieres que se bloquee la pantalla con una marca específica de unidad USB, primero debemos depurar un poco:
udevadm monitor --environment --udev

Con ese comando deberíamos ver un montón de propiedades sobre la unidad, como el fabricante, modelo, sistema de archivos uuid, etc. Por ejemplo, supongamos que vemos la siguiente línea que indica que la propiedad ID_MODEL de la unidad USB es Micromax_A74.
$ udevadm monitor --environment --udev
...
ACTION=remove
...
ID_MODEL="Micromax_A74"
...
SUBSYSTEM=usb
...

Entonces podemos actualizar la regla de la siguiente manera:
cat << EOF | sudo tee /etc/udev/rules.d/busKill.rules
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_MODEL}=="Micromax_A74", RUN+="DISPLAY=:0 xscreensaver-command -lock"
EOF
sudo udevadm control --reload

Y, por supuesto, dependiendo del riesgo, podemos cambiar los comandos a ejecutar, por ejemplo apagando la máquina:
cat << EOF | sudo tee /etc/udev/rules.d/busKill.rules
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_MODEL}=="Micromax_A74", RUN+="shutdown -h now"
EOF
sudo udevadm control --reload

A continuación podemos ver un vídeo con una pequeña PoC:


Interesante ¿verdad? Hacemos todo lo posible para aumentar la seguridad cuando utilizamos nuestro portátil en público, como usar un buen proveedor de VPN, 2FA y autocompletar las passwords para que no nos vean escribirlas. Pero, ¿y si nos roban el equipo después de que nos hayamos autenticado? Pues ala.. ya tenemos BusKill ;)

Fuente: https://tech.michaelaltfield.net/2020/01/02/buskill-laptop-kill-cord-dead-man-switch/

Comentarios