Fabricantes de atencion! ¿Está buscando un proyecto desafiante que no solo haga afilar sus engranajes sino que lo ayude a mantenerse seguro mientras viaja? Bienvenido al tutorial de construir tu propia cámara de seguridad.

El ímpetu para este proyecto se originó en los eventos que tuvieron lugar en el Defcon 26 , donde el personal de seguridad del hotel inspeccionó las salas de los asistentes sin identificarse adecuadamente.

Brecha excesiva. Violación de sus derechos. Violación de su privacidad. Estos son siempre buenos motivadores. Toda la historia está bien cubierta aquí .

Por lo tanto, nuestro objetivo es construir una cámara de seguridad activada por movimiento que podamos usar para monitorear nuestras propias habitaciones de hotel, hogares u otros lugares. Vamos a empezar.

Escogiendo el hardware

Si bien existe un hardware ya hecho que satisfaría mis necesidades, como demostró una búsqueda rápida en la web, necesitaría evaluar la postura de seguridad de cada uno de estos productos. Mientras que yo mismo puedo construir una seguridad satisfactoria en el hardware.

Una selección de cámaras espías portátiles disponibles en el mercado.

La construcción de un dispositivo de este tipo debería ser posible con software de código abierto y componentes comerciales. Esto debería ser fácil, ¿verdad?

Después de una rápida búsqueda en mi compartimiento de piezas de repuesto, encontré un Rasberry Pi de primera generación .

Rasberry Pi Classic

Después de una cuidadosa consideración, elegí que el video capturado y las fotos se guardaran localmente. Este dispositivo se implementará en la red más hostil de la historia, después de todo. Podría conectarlo a la red del hotel, o intentarlo y proporcionarle conectividad celular mediante el uso de algo como un módem celular global nova.

Decidí no hacerlo: mejor empezar poco a poco y limitar el alcance del proyecto. Siempre puedo agregar esta funcionalidad más tarde, y el uso de un módem celular no es una garantía de que el tráfico de la red no se alterará ni interceptará.

Después de algunas investigaciones, confirmé que la última versión de Rasbian (el sistema operativo oficial Rasberry Pi) todavía es compatible con el Rasberry Pi original. La excavación adicional produjo 16 gb y 32 gb de tarjetas SD. Ambos serían adecuados para la tarea. Comencé realizando una instalación nueva del sistema operativo Rasbian para confirmar que todo está bien con este Rasberry Pi. Han pasado algunos años y había olvidado exactamente por qué había sido desuso.

Descargué la última versión de Rasbian aquí .

Software y herramientas

Luego extraje el archivo 2018-06-27-raspbian-stretch.img del archivo raspbian-2018-06-29 / 2018-06-27-raspbian-stretch.zip, y utilicé Etcher  para copiarlo en dicha tarjeta SD.

Etcher es un programa que facilita la escritura de imágenes en tarjetas SD.

Después de insertar la tarjeta SD en el RPI y de conectarle un teclado y un monitor, jugué un rato con ella. Una vez que estuve satisfecho de que, aparte de ser un poco viejo, todo funcionaba, agregué algunos disipadores de calor, ya que es una actualización barata. Preveo el dispositivo funcionando durante varios días seguidos.

Un kit de disipador de calor simple disponible para el Rasberry Pi.

También aproveché la oportunidad para verificar el modelo exacto de Rasberry Pi que tenía. Esto se logró con el comando: cat / proc / device-tree / model

El resultado fue: Rasberry Pi Model b rev. 2

También desenterré una webcam USB barata que ya tenía. El plan era usar eso para reciclar el hardware antiguo y evitar costos adicionales. (Más adelante, por qué esto no fue una buena idea para este proyecto en particular). La cámara web que tenía pateando era un Logitech LZ241DV. Investigué la compatibilidad en https://elinux.org/RPi_USB_Webcams . No mostró mucha promesa.

Una búsqueda rápida de cntrl + F en la página donde se enumeran las cámaras web compatibles con Rasberry Pi y se escribe el modelo de la cámara Logitech. Cero hits.

Elegir un sistema operativo

Durante mi investigación para este proyecto, rápidamente se hizo evidente que el sistema operativo más adecuado para este proyecto no es, de hecho, Rasbian, sino motioneyeOS .

motionEyeOS es, según su wiki de github, una distribución de Linux que convierte una computadora de una sola placa en un sistema de videovigilancia.

MotioneyeOS no solo se adapta específicamente a nuestra tarea, sino que tiene una versión compilada específica de Rasberry Pi. Me descargué las versiones apropiadas para el hardware que tengo en la mano .

Instalé motioneyeOS en una tarjeta SD diferente, conecté la cámara USB, conecté un cable de red y la conecté a una red de prueba que tengo en el laboratorio.

Para conectarse al motioneyeOS Rasberry Pi, puede usar un navegador en cualquier máquina en la misma red y simplemente escribir la dirección IP del motioneyeOS Rasberry Pi en el navegador. Luego, será recibido con una interfaz de administración basada en web.

Diagrama simple que muestra la topología del motioneyeOS Rasberry Pi en relación con la máquina utilizada para configurarlo a través de la interfaz web.

Una vez que se arrancó Rasberry Pi por completo, ejecuté un rápido escaneo de Nmap de la red en una máquina que también reside en la misma red: nmap -sP 192.168.3.0/24

Ejemplo del comando nmap en bash para determinar la dirección IP de motioneyeOS

Es mejor realizar este escaneo de nmap antes y después de encender el Rasberry Pi. La nueva dirección mostrada por nmap será la instancia de motioneyeOS.

NB: ¡Esta dirección IP puede cambiar entre reinicios!

La interfaz basada en web para motioneyeOS, que muestra el video distorsionado de la cámara USB

Si conecta un monitor a la Raspberry Pi con motioneyeOS, también mostrará su IP cuando se le solicite. Como podemos ver, la cámara web USB no quiere reproducir el video correctamente. Investigué en la web durante un tiempo e intenté enrutar la cámara web USB a través de un concentrador con alimentación. (Esta fue una de las posibles soluciones que encontré en línea). Todo fue en vano.

En este punto, de ser exhaustivo, también descargado la Frambuesa Pi 3 imagen para motioneyeOS.

Lo coloqué en una tarjeta micro SD de 32 gb, retiré temporalmente mi proyecto de emulación de juegos retro y probé la cámara web USB en una Raspberry Pi 3 actual y conocida. Lo bueno de esto es que la restauración de ese proyecto solo requerirá el intercambio de mi tarjeta micro SD original.)

Mismos resultados

Así que la cámara web no va a funcionar sin algún problema serio. Después de pensarlo un poco más, elegí comprar la cámara específica de la Raspberry Pi. Si voy a tener que comprar una cámara de algún tipo, lo mejor es hacer una específica para la Rasberry Pi en primer lugar.

Me decidí por la Raspberry Pi Camera Module V2-8 Megapixel, 1080p. Hay versiones con poca luz de estas cámaras, pero quiero una mayor calidad de imagen.

Solución de problemas

Y aquí es donde se ensucia. El módulo que vino en el correo era defectuoso desde el principio o lo descargué con electricidad estática desde el principio.

Pasé horas reinstalando Rasbian en el Rasberry Pi original, desconectando y volviendo a conectar el conector de cinta en ambos extremos. Desconecté el módulo de la cámara de la mini placa hija y lo volví a colocar. Reinstalado motioneyeOS, desconectando y volviendo a conectar la cinta nuevamente. Repitió todo el proceso con Rasberry Pi 3, tanto en Rasbian como en motioneyeOS.

Esto confirmó que el módulo de la cámara estaba muerto al llegar (DOA). Nada de lo que hice dio éxito. Lo mejor que pude lograr fue la confirmación de la línea de comandos de que la cámara estaba presente. La interfaz web de motioneyeOS siempre se quejaba de que la cámara no se podía inicializar.

Decidí pedir un módulo de cámara diferente. Me decidí por el Keyestudio Camera Module 5MP REV 1.3 para Raspberry Pi. Es específico de Rasberry Pi, pero es una marca diferente a mi primer intento.

Esto resolvió todos los problemas, y me encontré con éxito en el primer intento de arranque del clásico Rasberry Pi con MotioneyeOS.

Captura de video exitosa!

Para tener acceso a todas las funciones y configuraciones de motioneyeOS, debe iniciar sesión como «admin».

El nombre de usuario y la contraseña deben cambiarse a algo que no sea el predeterminado cuando lo implemente en su habitación de hotel.

También deshabilité el servidor FTP, el servidor Samba y el servidor SSH. Quiero reducir la superficie de ataque para este dispositivo tanto como sea posible. Puedo recuperar el material de archivo deseado directamente desde la tarjeta micro SD o volver a habilitar SSH después.

Si DHCP está habilitado y el cable de red está desconectado, la máquina iniciará un bucle mientras intenta renovar una dirección IP.

En la configuración avanzada, también puede habilitar la notificación de movimiento. Aquí es donde usted permitiría que las acciones se llevaran a cabo si se detectara una moción. Aquí también es donde se configuraría el módem celular nova mencionado anteriormente.

El producto final

Así que ahí lo tienen. Después de algunos esfuerzos, tenemos una cámara de seguridad activada por movimiento, construida con componentes comerciales y software de código abierto.

[IMAGEN]

¿Qué lecciones aprendimos?

  • No asuma que el hardware que tiene está funcionando. Se fue en la pila de chatarra por una razón. Por ejemplo, no pude reciclar la cámara web USB.
  • Las tarjetas de memoria micro SD son pequeñas y se extravían fácilmente. (¡Perdí uno durante este experimento!)
  • Las tarjetas SD pueden fallar. Usé el formateador de tarjetas de memoria SD de https://www.sdcard.org para confirmarlo.
  • Incluso el nuevo hardware puede ser defectuoso. Tenía una cámara Rasberry Pi defectuosa. Falló justo fuera de la caja. Esto me obligó a hacer mucho trabajo de detective y probar todo el hardware.
  • Esto terminó siendo un poco más caro que un producto comercial comercial. Sin embargo, fue una gran experiencia de aprendizaje.

¿Qué queda por hacer?

Necesito crear un buen estuche para mi cámara de seguridad Frankenstein, porque la electricidad estática es una preocupación definitiva aquí. La electrónica expuesta no es algo bueno. Además, el personal de seguridad, si realmente visita su habitación, puede estar alarmado al ver una gran cantidad de componentes y cables sobre un escritorio.

Hay varios artículos en la web que describen cómo construir e implementar motioneyeOS en un Rasberry Pi. Siempre encuentro que nunca te dan la historia completa. Los fallos, tanto en las configuraciones de hardware como de software, son una oportunidad para aprender.