¡Pwned! El sistema de seguridad para el hogar que puede ser pirateado usando su dirección de correo electrónico – Naked Security

Un investigador con vulnerabilidad y empresa del equipo rojo Rapid7 descubrió recientemente dos fallas de seguridad riesgosas en un producto de seguridad digital para el hogar.

El primer error, que se informó en mayo de 2021 y se denominó CVE-2021-39276, significa que un atacante que conoce la dirección de correo electrónico que usó para registrar su producto identificaría efectivamente su correo electrónico, ya que la contraseña se puede usar para emitir comandos al sistema, incluido el apagado del despertador completo.

El producto afectado proviene de la empresa. Negocio de seguridad de la fortaleza, que vende dos configuraciones de seguridad para el hogar de marca, el nivel de entrada Sistema de seguridad WLAN S03que comienza en $ 130 y es más caro Sistema de seguridad WiFi S6 Titan 3G / 4G, desde $ 250.

El intrépido investigador Arvind Vishwakarma adquirió un sistema de arranque S03 que incluye un panel de control, mando a distancia, sensor de puerta o ventana, detector de movimiento y una sirena interior.

(La compañía también vende etiquetas y sensores adicionales, sirenas para exteriores, que se cree que son más ruidosas, y detectores de movimiento «inmunes a las mascotas» que creemos que son menos sensibles que los normales).

Desafortunadamente, Vishwakarma no necesitó mucho para comprometer el sistema y descubrir cómo controlarlo tanto local como remotamente sin autorización.

Índice de contenido

CALM declarado

Al igual que muchos productos modernos de Internet de las cosas (IoT), los productos de Fortress Security utilizan servidores basados ​​en la nube en Internet con fines de control y monitoreo y también acceden a Fortress Cloud. Interfaz de programación.

Y como la mayoría de las API web modernas, Fortress utiliza un estilo de programación conocido como REST, abreviatura de Transferencia de estatus representativo, enviando datos a la API a través de HTTP POST Comandos y recuperados con GET Comandos que utilizan una serie de URL estáticas y bien definidas que actúan programáticamente como «llamadas a funciones» basadas en la web.

En el pasado, las API web a menudo integraban los datos que querían enviar y recibir en la propia URL, junto con los datos necesarios, incluidas las contraseñas o los tokens de autenticación, que se adjuntaban al final como parámetros:

GET /functions/status?id=username&password=W3XXgh889&req=activate&value=1 HTTP/1.1Host: example.com

Pero crear una URL única cada vez es tedioso para los servidores y tiende a perder datos confidenciales en los archivos de registro, ya que los historiales de acceso a las URL a menudo se almacenan para solucionar problemas u otros fines y, por lo tanto, los datos específicos de la consulta no deben codificarse.

(Los firewalls cuidadosos y los servidores web conscientes de la seguridad hacen todo lo posible para eliminar la información confidencial de las URL antes de registrarla, pero es mejor no tener ningún dato confidencial en la URL).

API RESTful, como se les llama comúnmente, utilizan una lista coherente de URL para activar ciertas funciones y, por lo general, empaquetan sus parámetros cargados y descargados en el resto de la solicitud HTTP para mantener las URL libres de datos potencialmente confidenciales.

Por ejemplo, si usa Sophos Intelix (¡cuentas gratuitas disponibles!) Para realizar búsquedas en vivo de amenazas, primero debe autenticarse con su nombre de usuario y contraseña, que le proporciona una contraseña de sesión llamada. obtener access_token que funciona durante los próximos 60 minutos.

Solo hay una URL de autenticación RESTful, y su nombre de usuario y contraseña (Intelix solo acepta solicitudes HTTPS para garantizar que los datos se intercambien de forma segura) se envían en la solicitud de la siguiente manera:

POST https://api.labs.sophos.com/oauth2/token HTTP/1.1Host: api.labs.sophos.comAuthorization: [REDACTED - username and password supplied here]Content-Type: application/x-www-form-urlencoded,Connection: closegrant_type=client_credentials

La API de Fortress funciona de manera similar, pero Vishwakarma descubrió rápidamente que no necesitaba pasar por una fase de autenticación previa.

En cambio, podría enviar una solicitud como esta:

POST https://fortress.[REDACTED].com/api? HTTP/1.1Host: fortress.[REDACTED].com/api?Content-Type: application/jsonConnection: close{ cmd=GETINFO [...], user_name="XXXXXX" }

Aunque solo un. entregado user_name En la solicitud, recibió una respuesta que era una cadena JSON etiquetada. contenido IMEI, un acrónimo comúnmente utilizado en relación con los teléfonos móviles, que es la abreviatura de identidad internacional para dispositivos móviles.

Todos los teléfonos, ya sea con una tarjeta SIM insertada o no, tienen un IMEI que el fabricante graba en el dispositivo (marque el número de teléfono mágico *#06# para ver el tuyo) y los operadores lo utilizan para rastrear tu dispositivo físico en la red y poner en la lista negra los teléfonos robados.

IMEI considerado dañino

Dado que el IMEI (pronunciado Ojo-yo, rima con culpable) es exclusivo de su dispositivo, le recomendamos encarecidamente que no se lo proporcione a terceros.

Definitivamente no debe usar su IMEI como un nombre de usuario o identificador público, y las aplicaciones móviles en mercados en línea seleccionados como Google Play y Apple App Store no pueden recopilarlos, ya que las aplicaciones que capturan IMEI se consideran maliciosas de manera predeterminada.

Aunque el nivel de entrada S03 Home Security no requiere una tarjeta SIM y solo funciona a través de una red WiFi, Fortress todavía parece identificar de forma única cada dispositivo con un código numérico que apunta a un IMEI.

(Sospechamos que esto es así para que el S03 pueda compartir el código fuente con el producto S6 Titan más caro, que tiene una ranura para tarjeta SIM y, por lo tanto, su propio IMEI integrado).

Desafortunadamente, este IMEI no solo se usa como un nombre de usuario, lo que en sí mismo sería imprudente, sino como una contraseña completa que se puede usar como un token de autenticación permanente para futuras solicitudes a la API web de Fortress.

En otras palabras, simplemente conociendo tu fortaleza user_name, Vishwakarma podría obtener el IMEI de su dispositivo y luego, simplemente conociendo su IMEI, emitir comandos autenticados a su dispositivo, por ejemplo, como este:

POST https://fortress.[REDACTED].com/api? HTTP/1.1Host: fortress.[REDACTED].com/api?Content-Type: application/jsonConnection: close{ cmd=ACTIVATE [...], imei="KNOWNVALUE", op=0, user_name="XXXXXX" }

En el comando anterior, el elemento de datos op parece representar operando, el nombre comúnmente dado a los datos suministrados a una función de computadora o instrucción de código de máquina. (En una línea de código ensamblador como ADD RAX,42, Los valores RAX y 42 son los operandos.)

Y el valor cero pasado como operando al comando ACTIVAR, como se muestra arriba, hace exactamente lo que esperas: ¡apaga la alarma!

Por supuesto, para averiguarlo KNOWNVALUE el IMEI / contraseña de su cuenta, un atacante primero debe ingresar los valores de XXXXXX.

Desafortunadamente, como descubrió Vishwakarma XXXXXX es simplemente su dirección de correo electrónico, más específicamente la dirección de correo electrónico que utilizó cuando configuró el sistema.

En resumen: Adivina tu dirección de correo electrónico ==> obtén el código de autenticación permanente ==> desactiva la alarma de forma remota a tu antojo.

Seguidores derrotados también

Vishwakarma también analizó la seguridad de los llaveros (los botones del control remoto, como el botón para abrir la puerta del garaje o desbloquear el automóvil) que venían con el sistema.

Vishwakarma usó una configuración original pero cada vez más asequible conocida como SDR, abreviatura de Radio definida por software, un sistema de transmisor y receptor reprogramable que se puede personalizar para operar en una variedad de frecuencias diferentes y emular todo tipo de radios diferentes.

Necesitará una configuración SDR de alta gama para manejar dispositivos de muy alta frecuencia como Wi-Fi (a 5GHz y 2.4GHz), pero un dongle de hardware que cuesta menos de $ 50 tiene suficiente potencia para «escuchar» transmisiones a 433 Megahercio. la banda de frecuencia comúnmente utilizada por dispositivos de control remoto como llaveros.

En teoría, un SDR configurado correctamente puede registrar de manera confiable y sencilla la señal de radio exacta que envía un llavero al bloquear o desbloquear el sistema de seguridad de su automóvil, garaje o hogar.

El mismo SDR podría luego reproducir una transmisión idéntica.

Con eso en mente, un SDR funciona como un bloque de cera o una barra de jabón con una llave de la vieja escuela, por lo que un atacante (o un investigador privado en una novela de detectives) podría echar un vistazo a la llave de la puerta hoy y luego volcar una copia propia para que la usen mañana.

Sin embargo, un llavero digital tiene una gran ventaja sobre una llave convencional, a saber, que puede «cambiar de forma» entre cada pulsación de un botón.

Al usar un algoritmo criptográfico para variar los datos reales que transmite cada vez, al igual que los códigos 2FA en constante cambio generados por las aplicaciones de seguridad de teléfonos celulares, un llavero bien diseñado debería ser resistente a ese llamado. ser Repetir ataque.

Este tipo de recálculo de código dinámico, que generalmente se basa en un secreto digital que se comparte de forma segura entre el llavero y la unidad de control cuando se configura el llavero, significa que un código de radio grabado hoy será inútil mañana o incluso en dos minutos. .

Desafortunadamente, como probablemente ya habrá adivinado, Vishwakarma descubrió que las etiquetas Fortress S03 no generaban códigos únicos cada vez que se pulsaban, sino que simplemente reutilizaban el mismo código una y otra vez, una vulnerabilidad que ahora es CVE-2021-39277. se llama .

En resumen: Desplácese cerca de la casa ==> Grabe la transmisión de «alarma desactivada» del llavero una vez ==> Desactive la alarma más tarde a voluntad.

¿Qué tengo que hacer?

Según Rapid7, Fortress decidió no responder a estos errores, cerró el informe en mayo de 2021 y no se opuso a la divulgación de errores propuesta por la compañía a fines de agosto de 2021.

Parece que la compañía no está planeando ninguna actualización de firmware, ya sea para sus unidades de control o llaveros, y por lo tanto, estos puntos débiles no se están reparando, al menos en los sistemas que ya se han vendido.

Entonces, si tiene uno de estos sistemas, o un sistema de apariencia similar de una marca diferente que sospecha que puede ser del mismo OEM, hay dos soluciones que puede usar:

  • Utilice una dirección de correo electrónico que probablemente un atacante no conozca o no pueda adivinar. Por ejemplo, los servicios de correo web como Outlook y Gmail le permiten tener varios alias de correo electrónico para su cuenta principal simplemente agregando texto, como: +ABCDEFG al final de su nombre de correo electrónico habitual. Por ejemplo, si tu. usar [email protected] como su dirección de correo electrónico normal, luego los mensajes a [email protected] deben entregarse en el mismo buzón aunque las dos direcciones no coincidan. Tenga en cuenta que este es un ejemplo de Seguridad a través de la oscuridad, por lo que esta no es una solución ideal, pero lo hace más difícil para un atacante o un amigo o familiar con malas intenciones.
  • Evite usar los controles remotos del llavero. Esto significa que siempre debe tener su computadora portátil o teléfono móvil a mano o tiene que hacer todo directamente desde el panel de control, pero si nunca configura sus llaveros para que funcionen con su propia unidad de control, no pueden divulgar ningún secreto que un atacante podría revelar en una repetición posterior. Los ataques podrían usar.

Llame a todos los programadores

Nuevamente, como parece que decimos tan a menudo cuando hablamos de seguridad de IoT, si usted es un programador, no tomes atajos que sabe que los perseguirá tanto a usted como a sus clientes.

Como hemos mencionado muchas veces, los identificadores de dispositivos son como direcciones MAC, UUID e IMEI. no son adecuados como secretos criptográficos o contraseñasasí que no los use para este propósito.

Y el material criptográfico que transmite o muestra sin cifrar, ya sea un código 2FA de una aplicación de autenticación, un vector de inicialización para un archivo cifrado o una ráfaga de radio de un llavero, nunca debe usarse de nuevo.

Incluso hay un término de jerga en criptografía para este tipo de datos: está disponible como. conocido no ce, corto para Número usado una vez, y esa palabra significa exactamente lo que dice.