19 junio 2013


En la actualidad, es cada vez más frecuente la instalación de cámaras de vídeo tanto en recintos privados como en la vía pública, con la finalidad de garantizar la seguridad de una instalación, la seguridad de las personas o el correcto desempeño de cualquier tarea en diversos ámbitos. 

De hecho, los sistemas de videovigilancia se publicitan como la solución para la seguridad debido en mayor medida a su gran facilidad de uso, ya que solo es necesario un dispositivo capaz de conectarse a la red para poder ver por ejemplo el tráfico en la m-30, nuestro negocio o incluso a nuestros hijos jugando en casa.

Sin embargo, ¿nos hemos planteado si estos sistemas son realmente fiables? ¿quién nos asegura que sólo estamos mirando nosotros? estas y otras cuestiones son las que hemos tratado de responder en el siguiente estudio: Cámaras IP de Videovigilancia: Seguridad y Protección, o Inseguridad y Exposición

Somos un grupo de estudiantes del 
 Máster Universitario en Seguridad de las TIC  que ofrece la UEM realizando el Proyecto Fin de Máster a cargo de Alejandro Ramos como Director de Proyecto, en el que elaboramos un análisis del estado actual en los sistemas de video.

Recopilación de información, modelos y cámaras.


Para comenzar la investigación se construyó un inventario de las principales marcas y modelos de cámaras y nos centramos en tres líneas de investigación básica: Firmware, Web, ActiveX-Applet.
Se intentó buscar los antecedentes de las vulnerabilidades para estas líneas de investigación y creamos una metodologías a aplicar para cada una de ellas.
Por otro lado se estudió de manera casi individual las cámaras, a través de la información que los propios fabricantes facilitan en sus páginas web, tales como manuales de usuario o datasheet.

Por último se comprobó la existencia en la web de las cámaras relacionadas con la investigación para ver el grado de productos expuestos y vulnerables en la red.

La siguiente imagen muestra una recopilación de simples búsquedas sobre algunas de las cámaras elegidas:

Búsquedas en Shodan



Desarrollo de Metodologías

Metodología firmware

En esta parte se analiza el firmware de las cámaras IP. Para ello, hay que obtener el firmware de las cámaras,  que generalmente se encuentra en la página web del fabricante y suele estar compuesto por:
1.Firmware header , 2.Bootloader, 3.Kernel, 4. Filesystem
Se utiliza la herramienta binwalk para identificar y separar las partes que lo componen.
Se intenta buscar algún archivo oculto, información sobre la versión Linux, o sobre el Kernel. Gracias a comandos como “strings” se pueden buscar cadenas que puedan ser útiles. Por último se trata de extraer y montar el filesystem, con comandos como “mount”, para ver cómo está compuesto y ver si presenta alguna vulnerabilidad o nos puede ayudar con otras.


Metodología Web

Estas cámaras suelen usar un servicio web con HTTP sobre TCP en el puerto 80 para proveer a sus usuarios. Adicionalmente suelen usan protocolos como TELNET, FTP, RTSP, SMTP para los mismos fines u otros como pueden ser la gestión y configuración del dispositivo, un servidor ftp o de correo, transmitir audio o vídeo, etc y que también se deben chequear.

Para identificar y localizar las vulnerabilidades se ha utilizado metodología
OWASP, adaptándola a este tipo de dispositivos para tratar de adecuar las pruebas lo máximo posible.

Metodología ActiveX-Applet

Todas estas cámaras utilizan siempre algún componente cliente (ActiveX o Applet) para mostrar y reproducir las imágenes.
En estos componentes se pueden detectar vulnerabilidades de todo tipo: corrupción de memoria, acceso a información sensible, modificación, escritura o eliminación de ficheros, accesos sin credenciales…
Para ello, durante la fase de análisis, se han buscado vulnerabilidades similares a éstas mediante pruebas manuales o por medio de diversas aplicaciones.  En un artículo previo de SBD se explica de manera detallada cómo hacerlo.

Detección y recopilación de vulnerabilidades

Se han detectado un total de 14 vulnerabilidades en 7 modelos distintos de cámaras IP de los 9 totales analizados, la siguiente tabla muestra un resumen de las mismas:    

Resumen de Vulnerabilidades Encontradas
Resumen de Vulnerabilidades Encontradas
Para más información, las vulnerabilidades fueron reportadas en fulldisclosure en este enlace.
A continuación, se va a dar un repaso a las más importantes de todas las encontradas, para mostrar la peligrosidad de las vulnerabilidades.

CVE-2013-3542, GrandStream GXV Series. TELNET backdoor.
Se ha encontrado una puerta trasera en el protocolo TELNET, que permite acceder remotamente a estos dispositivos con credenciales de superadministrador para gestionar o configurar la cámara mediante línea de comandos. Únicamente hay que conectar con el dispositivo mediante TELNET e introducir la cadena mágica "!#/" como usuario y contraseña.
Esto implica que, usando esta vulnerabilidad, se pueda acceder a todos los modelos citados en el reporte y hacernos con el control de estas cámaras.


El vídeo se divide en dos partes: en la primera, se muestra los usuarios que hay creados en una de estas cámaras mediante la interfaz web, después se conecta con la misma mediante TELNET y se accede usando la puerta trasera. En la segunda, se simula como se accedería remotamente a una cámara de la que se desconocen las credenciales mediante TELNET, para restaurar la configuración de fábrica y finalmente acceder a la cámara usando el interfaz web para confirmar que se ha logrado.

CVE-2013-3541, Airlive WL2600CAM. Relative Path Traversal.
Este tipo de vulnerabilidad permite leer información sensible perteneciente al sistema de ficheros del dispositivo vulnerable.

Debido a este tipo de vulnerabilidad somos capaces de leer cualquier fichero que esté dentro del directorio “/etc/” . Previamente se analizó el firmware para obtener el sistema de ficheros y ver hasta dónde se tenía acceso.

En el vídeo se observa cómo se accede a los ficheros "passwd" y "device.conf" usando las siguientes URLs:
Estos ficheros contienen entre otras cosas, las contraseñas de todos los usuarios del sistema de ficheros, todo el archivo de configuración del sistema, direcciones IPs, DNS por defecto, privilegios de usuarios, modos de lectura/escritura, servicios activos, etc.

En la siguiente imagen se muestra algunas como ejemplo:

Archivo "../etc/device.conf"
Archivo "../etc/device.conf"
CVE-2013-3691, Airlive. Denegación de Servicio (DoS).
Es posible crear una denegación de servicio sobre el servicio web que corre en este tipo de dispositivos. Este DoS será causado lanzando una petición sobre la ruta “/” que contenga una gran número de caracteres.
CVE-2013-3688, TP-LINK. Execute Remote Command bypassing authentication.
Se ha encontrado que es posible la ejecución remota de comandos por HTTP, sin necesidad de estar autenticado.

El vector de ataque que se muestra en el vídeo es:
Mediante este ataque se consigue restaurar la configuración de fábrica de la cámara y obtener el control del dispositivo haciendo uso de las credenciales por defecto.

CVE-2013-3689, Brickcom. Authentication Bypass & Clear Text Storage of Sensitive Information
Esta vulnerabilidad permite descargar todo el archivo de configuración del dispositivo mediante la copia de seguridad o backup, sin tener ninguna credencial ni estar autenticado, permitiendo obtener toda la información sensible del dispositivo.

En el vídeo se muestra cómo se obtendría este archivo, siguiendo la siguiente URL.
En el vídeo y en la siguiente imagen, se puede ver cómo se localizan los usuarios y contraseñas, entre otros datos sensibles, al instante:

Archivo "configfile.dump"
Archivo "configfile.dump"

CVE-2013-3690, Brickcom. Cross Site Request Forgery (CSRF) + Privilege Escalation.
Este  ataque permite manipular los parámetros que usa la interfaz web, pudiendo crear, modificar o eliminar usuarios con credenciales de administrador, reiniciar la cámara o restaurarla a su configuración de fábrica original, etc.

En el vídeo se muestra cómo a través de esta vulnerabilidad, se consigue una escalada de privilegios de un usuario “observador” a uno “administrador”, insertando un vector de ataque en un documento .HTML específicamente creado para ello.

El siguiente vídeo muestra los detalles sobre los últimos 5 CVE's de los que se han hablado:


CVE-2013-3543, Axis.  File Corruption.
La vulnerabilidad afecta a la última versión de “AXIS Media Control“ (6.2.10.11, publicada el 19 de Octubre de 2012), software recomendado por el fabricante para ver imágenes de video en Internet Explorer. Ésta herramienta incluye una serie de métodos ActiveX inseguros dentro de la librería "AxisMediaControlEmb.dll": "StartRecord()", "SaveCurrentImage()" y "StartRecordMedia()".

Con esto, un usuario malintencionado puede explotar esta vulnerabilidad para dejar en un estado inconsistente el sistema de la victima, sobrescribiendo cualquier fichero o generando archivos aleatorios con contenido basura.

A continuación se incluye un video a modo de ejemplo en el que se detalla como explotar la vulnerabilidad mediante el uso de uno de los métodos ActiveX vulnerables:
 


Herramienta de búsqueda de vulnerabilidades

Como complemento al proyecto, hemos generado un script en Python que analiza un total de 9 pruebas de concepto relativas a los protocolos RTSP y HTTP empleados por todas las cámaras.
RTSP es un protocolo de nivel de aplicación no orientado a conexión similar a HTTP. Sin embargo, se diferencian en los siguientes aspectos:
  • RTSP introduce nuevos métodos y tiene un identificador de protocolo diferente.
  • Un servidor RTSP necesita mantener el estado de la conexión.
  • Tanto el servidor como el cliente pueden hacer solicitudes.
  • Los datos son transportados por un protocolo diferente.
El código, junto con un manual de usuario, están disponibles en el siguiente enlace:

Resultados de la Herramienta
Resultados de la Herramienta

Conclusiones

La finalidad de este estudio es evaluar el estado actual de seguridad de las cámaras de videovigilancia. Para ello, hemos analizado un total de 9 marcas distintas: Airlive, Axis, Brickcom, Grandstream, Samsung, Sony, TP-Link, AV-Tech y Geovision. El resultado ha sido bastante clarificador: 14 vulnerabilidades en 7 de las 9 marcas auditadas.

Todas estas vulnerabilidades comprometen gravemente la seguridad y privacidad de la información además del correcto funcionamiento del servicio.
El 90% de las cámaras encontradas en Internet tienen credenciales por defecto.
Además, hemos reportado todas y cada una de las vulnerabilidades a los fabricantes. Únicamente 2 de los 7 fabricantes (Grandstream y TP-Link) nos han comunicado que han desarrollado un parche tras nuestro reporte, solucionando alguna de las vulnerabilidades detectadas.

En conclusión, podemos afirmar que la gran mayoría de las Cámaras de Videovigilancia IP no están preparadas para conectarse en una red abierta, debido a la gran cantidad de fallos de seguridad que poseen. Esto obviamente choca completamente con su función y nos hace preguntarnos cómo es posible que un dispositivo destinado a la seguridad acabe resultando un foco de exposición.

Autores:
  • Eliezer Varadé Lopez
  • Javier Repiso Sánchez
  • Jonás Ropero Castillo


12 comments :

an0 dijo...

Grande chavales! Muy buenos reportes.

Juan Garrido dijo...

Muy bueno chicos!!
Enhorabuena!

franklyn dijo...

Esto seguro que ayudara a la gente a darse cuenta de los riesgos intrinsecos que se sufren....enhorabuena y buen trabajo!!!

masticover dijo...

Muy buen trabajo.

Sólo un apunte. Revisando el código fuente del archivo test_rtsp_http.py he visto que en la línea 280-281:

s.connect((cam_ip, HTTP_PORT))
write_log("Connected to " + cam_ip + ":" + str(RTSP_PORT) + "\r\n", 0)

Creo que en el write_log debería estar str(HTTP_PORT) ya que el socket se ha conectado previamente al puerto HTTP_PORT. No afecta para nada la funcionalidad del programa, pero sí a la salida por pantalla del mismo.

¡Gran trabajo chicos!



Un saludo.

javi dijo...

Muchas gracias a todos por vuestros comentarios! Estamos muy contentos con el trabajo realizado y por la opinión que teneis de él. Y sobre todo, gracias Alex por publicar nuestro artículo y por todo el apoyo que nos has dado todo este tiempo! Eres un tio muy grande!



masticover, error corregido y subido al repositorio!

SecceS dijo...

En seclists:
http://seclists.org/fulldisclosure/2013/Jun/87
os preguntan si explotasteis sistemas de internet para realizar la investigación. ¿Fue así?

Joaquin dijo...

Hola,
Gran trabajo. Desde el curro no puedo ver todos los videos :) pero echo de menos una tabla-resumen al final, con las cámaras probadas y las vulnerabilidades. Creo que sería útil como overview. Gracias!

Gerard Norton dijo...

Que gran trabajo. Gracias por el aporte...

Car dijo...

14 vulnerabilidades en 7 marcas de las 9 auditadas?, ¿No os parece un tanto % muy elevado?, es increíble. Un familiar tiene un negocio con 3 cámaras de seguridad y hoy mismo mirare la marca de estas e intentare acceder a ellas para después comunicárselo lógicamente y que el tome las decisiones oportunas. La verdad es que este articulo me ha dejado un poco KO ya que se pueden hacer muchas maldades interviniendo y tomando el control de esos dispositivos, saludos y buen articulo.

Abraham Pasamar dijo...

1.- Quizá no he sido claro en la pregunta, quería que se explicase el mecanismo de comunicación ... ¿se les comunicó antes o después del full-disclosure?
2.- El trabajo me ha gustado mucho, ya lo he comentado, pero pienso que es una obligación que tenemos de enseñarles a los alumnos a ser prudentes y a que entiendan que las fronteras son delicadas en esta profesión, que luego pasa lo que pasa...ver post anterior de hacker épico (edición Hache)... que no digan que no se les ha advertido.

Alejandro Ramos dijo...

1.- No entiendo como habiendo leído el mail de full disclosure, donde ponen el timeline de cada vulnerabilidad, incluida la notificación al fabricante (para todos los casos), haces la pregunta. Tal vez me este perdiendo otra vez algo.

2.- Seguro que aprecian tu consejo.

Un saludo!

Clakstein Tau Ceti dijo...

Inseguridad y Exposición.