2 puntos por GN⁺ 2024-07-02 | 1 comentarios | Compartir por WhatsApp

Motivación

  • Durante varios años se ha explorado la posibilidad de acceder a la cama Sleep Number por la red local
  • Se creó un plugin de homebridge para controlar la configuración de la cama mediante HomeKit
  • Sleep Number pidió desactivar el plugin porque la frecuencia de solicitudes a la API había aumentado
  • Se decidió buscar una forma de evitar los servidores mediante acceso por la red local

Requisitos previos

  • Número de modelo del Sleep Number Hub: 360SIQ01D
  • Se necesita un dispositivo UART a TTY y otras herramientas de hardware
  • Se necesita una memoria USB-A

Obtener privilegios de root

  1. Conectar el dispositivo UART al header J16
  2. Conectar una consola al dispositivo UART (baud rate: 115200)
  3. Encender el hub y presionar <SPACE> dentro de 2 segundos para detener la secuencia de arranque automático
  4. Editar las variables de entorno de arranque
    • Hacer una copia de respaldo de las variables de entorno predeterminadas
    • Eliminar run set_bootargs; de la variable bootcmd
    • Agregar lo siguiente a la variable bootargs:
      console=ttymxc0,115200 root=/dev/mmcblk${linux_mmcdev}p1 rootwait rdinit=/bin/bash -- -c "sed -i 's/LMR=`.*`/LMR=let_me_root/' /init; exec /init"
      
  5. En el primer arranque, insertar una memoria USB con el archivo let_me_root
  6. Volver a montar la partición root como rw y agregar el archivo let_me_root
  7. Configurar acceso SSH

Crear un servidor de control y monitoreo en la red local

  • Configurar un servidor HTTP usando Python 2.7.18
  • Escribir un script de servidor HTTP que pueda ejecutar scripts del directorio /bam/scripts
  • Copiar y ejecutar el script en el hub

Agregar script rc.d

  • Agregar un script rc.d a la partición /real.root
  • Copiar el script al hub y moverlo a la ubicación adecuada
  • Agregar los enlaces simbólicos necesarios

Comandos útiles

  • Se pueden usar varios comandos de control de la cama desde el script /bio
  • Comandos de ejemplo:
    • arg=PSNL: obtener el último valor configurado del número de sueño del lado izquierdo de la cama
    • arg=PSNS&arg=L100: establecer el número de sueño del lado izquierdo de la cama en 100

Siguientes pasos

  • Explorar las funciones de control de la cama en el directorio raíz /bam
  • Considerar los problemas de seguridad del hub que se comunica con los servidores de Sleep Number mediante un túnel SSH
  • Escribir una aplicación web sencilla que pueda reemplazar la app SleepIQ

Apéndice: variables de entorno originales de U-Boot del hub

  • baudrate=115200
  • bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
  • Otras variables...

Opinión de GN⁺

  • Esta guía permite el acceso a la cama Sleep Number por la red local y da a los usuarios mayor control
  • Considerando los problemas de seguridad del hub, es recomendable desconectar la conexión a internet externa
  • También existen otros productos de hogar inteligente que ofrecen funciones similares
  • Al adoptar nuevas tecnologías, conviene evaluar cuidadosamente los temas de seguridad y mantenimiento

1 comentarios

 
GN⁺ 2024-07-02
Comentarios en Hacker News
  • Antes usaba una cama sin funciones inteligentes

    • Dos controladores con cable estaban conectados a la bomba
    • No necesitaba internet ni un microcontrolador con Linux
    • Dormía tranquilamente sin preocuparme por hacks
  • Hay interés en el hub que se comunica con los servidores de Sleep Number y a través de un túnel SSH

    • Se preguntan si usa PubkeyAuth o contraseña
    • Imaginan la posibilidad de un secuestro de DNS
    • Citan la famosa frase de Homer Simpson: "la cama sube y baja"
  • Existe un método similar para acceder al Eight Sleep Pod 3

    • Algunos modelos incluyen una tarjeta MicroSD modificable
    • El método usado en TFA podría ser una buena forma de obtener acceso root sin la tarjeta
    • Eight Sleep firma las actualizaciones de firmware, pero también envía la clave privada usada para la firma
  • Pensaban que era una publicación sobre hackear una cama Eight Sleep

    • Se sorprendieron al ver una foto real del "Number Sleep Hub"
    • Les impactó saber que Eight Sleep y Sleep Number son dos empresas que fabrican camas con enfriamiento por agua
  • Luego viene un chiste sobre ransomware

    • "Si no pagas 1000 dólares, no podrás dormir en tu cama durante el próximo mes"
  • Es incómodo no poder ajustar la temperatura de la cama cuando se cae internet

  • Decidieron no comprar una cama Sleep Number

    • Tuvieron dos colchones con deflectores internos rotos después de que la producción se subcontrató a China
  • Se cuestiona por qué una cama tendría que ejecutar Linux

    • No logran entender por qué una cama necesitaría 1 GB de RAM y un sistema operativo completo
    • También fue difícil encontrar una lavadora sin conexión WiFi
    • Cada vez es más difícil evitar los dispositivos inteligentes
  • Recomiendan agregar herramientas de soldadura a la lista de compras