Estas aquiForos / Foros de Seguridad / Seguridad de portátiles / Cómo convertir tu webcam en un sistema de videovigilancia (II): Linux

Cómo convertir tu webcam en un sistema de videovigilancia (II): Linux


Porjsa_- Publicado el16 Marzo 2009

Este texto va a tratar de un método (por llamarlo de alguna manera) de seguridad que he montado en un ratillo a modo de experimento.

La idea parte de la historia que circuló de un hombre que recuperó el ordenador de un robo gracias a que se conectó a su portátil remotamente e hizo una foto del ladrón. Lo que hacen estas instrucciones es una foto al entrar al pc y después la envían por correo.

Pasemos ahora a la receta:

  • Portátil con Debian y webcam integrada (driver uvc).
  • uvccapture: programa en modo texto que permite hacer fotos con la webcam.
  • mpack: programa que permite enviar adjuntos al correo electrónico desde consola.
  • exim4: el agente de transferencia de correo (MTA) que viene por defecto en Debian...

Lo primero es configurar exim4 para que permita enviar correo usando ips dinámicas (lo típico que tenemos todos). Para ello me serví de este tutorial:

http://www.esdebian.org/articulos/24027/como-enviar-correos-...

Ojo al poner smtp.gmail.com::587. Hay que poner :: en lugar de sólo :. Un servidor perdió un buen rato en esta tontería. Yo usé una cuenta de gmail, pero valdría con cualquier servidor que proporcione los datos de smtp y pop3.

Vale, ahora vamos al script en cuestión. Es tan simple como esto:

#!/bin/sh
/usr/bin/uvccapture -m -o"/home/miusuario/camaraInicio/salida.jpg"
sleep 300
/usr/bin/mpack -s "intruso detectado" /home/miusuario/camaraInicio/salida.jpg direcciondestino@servidor.com

 

Un par de notas. El -m es opcional; en mi caso lo necesitaba para que la cámara funcionara. El fichero salida tiene permisos globales de escritura y lectura. El sleep 300 da al intruso 5 minutos para que sea capaz de conectar a Internet.

Una vez hecho esto ya estaría el sistema montado. El problema es que si alguien nos roba el portátil no va a saber el usuario y la contraseña. Solución: he creado un usuario limitado en Gnome que permite hacer cosas básicas (lo usa mi madre ocasionalmente). En la pantalla de inicio de Gnome aparece como mensaje de bienvenida el nombre del usuario y la contraseña. Y nada más arrancar este usuario se lanza el script anterior (lo he puesto en "sesiones"). Los permisos globales de salida.jpg son necesarios para que se pueda actualizar la foto desde este usuario.

El sistema es bastante rústico, por decirlo finamente, pero ilustra bastante bien lo fácil que es cacharrear con Linux. De hecho, creo que he tardado más en escribir este texto que en el experimento.

Espero que os haya gustado, y os dejo un par de ideas por si queréis jugar algo más:

  • Se puede consultar con wget la ip externa asociada al portátil y hacer que se envíe en el correo. Usando esta ip se puede iniciar una sesión VNC y tener control remoto al mismo.
  • Se puede usar un gestor de correo para que al recibir un correo el portátil con un formato que hayamos definido, el ordenador nos cree una sesión VNC y nos envíe los datos necesarios por correo de vuelta. Esto permite tener una sesión VNC que habilitamos o deshabilitamos a voluntad.

 

Relacionada:

 

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).

Que script tan interesante!!

Se me ha ocurrido una pequeña mejora. En vez de hacer que el script se ejecute al iniciar una sesión concreta, podrías hacer que se ejecutara para cualquier usuario si lo añades al directorio /etc/X11/Xsession.d

Cualquier shellscript que se encuentre allí será ejecutado al iniciar gdm/kdm/xdm/startx.

Tan sólo encender el ordenador... FLASH!! te pillé xD

Por cierto, ¿es realmente necesario esperar 5 min para que se establezca la conexión a internet?

Creo que algunos servidores de correo guardan los mensajes que no pueden enviar y siguen reintentado el envío cada cierto tiempo de forma automática. Por lo menos postfix lo hace así. No sé si será el caso de exim4.

Hace un tiempo al coche de mi novia le empezaron a pasar cosas raras cuando lo aparcaba delante de mi casa asi que busque en los repos de ubuntu y encontre el motion. Este es un sistema de detección de movimiento que te permite empezar a capturar video o a hacer fotos cuando un numero X de pixels de la pantalla cambian. Es muy facil de configurar... solo tienes que buscar el motion.conf y ver las opciones que tiene.

...Para los curiosos, no pillé al ladrón/vándalo pero ... y lo bien que lo pasé! Además de impresionar a mi novia montando un sistema de videovigilancia en media hora! jeje

Si te gusto motion, prueba kmotion y ya la dejas a cuadros jejeje y con un poco de mañana hasta mensajes en el movil con google calendar en mi web tengo un manualillo de como montar kmotion:

http://idasdepella.com/?p=438

Si alguien conoce mas sistemas vamos a darle caña para que los ladrones no se meneen jeje.

Como comentario, lo que hay que hacer primeramente es que el arranque por defecto arranque un usuario sin contraseña y sin nada, por que si no lo primero que va a hacer el ladrón es formatear. Lo segundo, mejor que esperar, una vez es poner un while y un ping a un servidor conocido que devuelva el ping, o una consulta dns a un opendns o algo así. Otra duda que estuve planteandome el otro día es si el driver de la camara permite manejar el led (lucecita) de la camara. YA que lo suyo es que no se encendiera. ¿alguien sabe eso?

Otra cosa chula sería ponerlo en el cron en vez de al inicio, lo mismo con algunas fotos podemos hasta chantajear al ladrón. :D

Un saludo

Lo he probado con éxito en una cámara quickcam logitech. El sistema detectaba el movimiento en la sala y automáticamente empezaba a grabar un vídeo o bien realizaba diversas fotografias. Finalmente el experimento se ha consolidado y lo he añadido al programa de monitorizacion de la red como control de paso en el CPD.

Pensar que se puede realizar la tarea de fotografiar al intruso y también ejecutar algún keyloger el cual nos proporcione mas información sobre este individuo.

Si a esto le sumamos geo-localización por ip...

Pero todo esto contando que no les de por formatear el equipo claro :)

¡anda!

Si eso sale en el criptonomicón ...

Si alguna vez robo un portatil creo que no me molestaria en arrancar la particion de linux (seguro que no lleva solo linux), apostaria 9 a 1 a que tiene contraseña, y aun asi seguiria sin tener la clave de root...

Para un portatil no mucho, pero para un movil si que lo veo una idea mas que interesante, de hecho no me extrañaria nada que ya existiera una implementacion similar.

Groucho, la broma ha terminado.

Habrás escuchado el dicho "acceso local = acceso total". En el 99% de los casos te encontrarás que el disco no está cifrado. Por lo tanto podrás arrancar el sistema en modo mantenimiento y tener privilegios de root sin saber la clave.

No es un problema de seguridad, ya que si tienes el equipo en tus manos, excepto en el caso de discos cifrados, no hay contraseñas que valgan. No tiene sentido evitar el acceso al sistema porque siempre podrías sacar el disco y ponerlo en otra máquina para acceder a todo el contenido.

Y por si un usuario de windows está pensando que es más seguro porque no permite eso, le diría que eso en realidad es una limitación más que tiene windows, porque si lees el disco con otro sistema que no sea windows te encontrarás con que puedes acceder a todo el contenido, incluso si tenía clave. Esto es sólo otra muestra de la idea de seguridad que tiene la gente de Microsoft: suponer que los usuarios no tendrán jamás control sobre el software porque carecen de los conocimientos y herramientas necesarios.

Hola.

Otra historia de ladrones, linux y webcams.

http://vueltaabruselas.blogspot.com/2008/05/y-al-final-entraron-robar.html

No has probado "motion"?

Es un sistema muy completo de vigilancia, que monitorea todas las cámaras que quieras, ya sean usb, por capturadoras de video (incluso las de varias entradas), o cámaras IP. Puede detectar cambios en la imagen y grabar en el formato que le pidas (divx por ejemplo).

Una función interesante es que puede tener un almacenamiento previo. O sea, que se le puede decir que desde que detecte un movimiento se vuelva atrás 5 segundos y genere un video desde ahí. También se le puede decir que deje un jpg con una imagen estática del momento en que detectó el movimiento. Esto sirve para visualizar rápidamente si nos interesa ver el video.

Al grabar en divx se puede tener muchas horas de video con poco consumo de disco. Y también puede disparar eventos cuando detecta movimientos así que puede enviar mails, encender alarmas, luces o lo que seamos capaces de hacer.

Una cosa interesante que estaba en desarrollo hace tiempo (no se si la habrán terminado) es la posibilidad de manejar cámaras con motor, para que sigan el objeto en movimiento. La idea era que en la configuración se le ponía cuál era el comando para subir, bajar, izquierda y derecha de la cámara. En esos comandos se podría poner cualqueir shell script que hiciera el pedido como lo soporte la cámara (por ejemplo http).

El problema que tiene es que no tiene interfaz gráfica, aunque provee todas las herramientas necesarias para hacerla.

Otro programa interesante para sistemas de vigilancia es zoneminder. Ese sí tiene interfaz gráfica (via web) pero en su tiempo no me gustó mucho. No se como estará ahora.

Patrocinadores

Kriptópolis alojado en
Zilos-Veloxia Network

Tu mejor defensa:
Bufet Almeida