Este viernes, en el blog de Eleven Paths, se ha publicado un curioso e ingenioso hack para controlar con Latch la conexión o desconexión de cualquier dispositivo USB que sea enchufado al equipo. Entre los dispositivos USB pueden estar los típicos pendrives para almacenamiento de datos, pero también webcams que pudieran ser activadas con algún tipo de software malicioso sin nuestro consentimiento, teclados USB, keyloggers por hardware e incluso dispositivos Teensy 3.0 que puedan utilizarse para ataques como el del famoso USB Rubber Ducky.
Cualquier dispositivo USB que se conecta al sistema generará eventos en el sistema OSX que podrán ser controladas con los estados que un usuario seleccione en la cuenta de Latch que tenga pareada. Lo mejor de todo, es que para hacer este control no es necesario hacerlo a nivel de kernel o con drivers instalados allí, y se puede hacer desde la API en userland que ofrece el sistema a través de instancias de IOUSBInterface e IOUSBDevice que conectan con IOUSBLib del sistema.
Figura 1: Artículo que explica paso a paso cómo controlar los USB en OS X |
Haciendo uso de estas funciones, David Barroso explica cómo hacer un programa que corra como servicio en el sistema operativo y controle en todo momento los dispositivos que se conecten. Después, cuando un evento de conexión aparezca se puede aplicar cualquier regla de seguridad que se quiera definir consultado el estado de un Latch además de los datos que se pueden obtener de OSX, como el vendorID o el productID del dispositivo.
Esas reglas podrían ser deshabilitar, permitir la conexión o simplemente informar de que se ha conectado. Para que puedas personalizar el funcionamiento a tu gusto, en el blog de Eleven Paths tienes el código en Lenguaje C para que lo adaptes a tus necesidades.
Figura 2: Una cuenta de Latch para OSX controlado el USB |
Esas reglas podrían ser deshabilitar, permitir la conexión o simplemente informar de que se ha conectado. Para que puedas personalizar el funcionamiento a tu gusto, en el blog de Eleven Paths tienes el código en Lenguaje C para que lo adaptes a tus necesidades.
No hay comentarios:
Publicar un comentario