2 Punkte von GN⁺ 2024-07-02 | 1 Kommentare | Auf WhatsApp teilen

Motivation

  • Seit einigen Jahren wird die Möglichkeit des Zugriffs auf das lokale Netzwerk eines Sleep Number-Betts untersucht
  • Es wurde ein homebridge-Plugin erstellt, mit dem sich die Betteinstellungen über HomeKit steuern lassen
  • Sleep Number bat darum, das Plugin zu deaktivieren, da die Häufigkeit der API-Anfragen gestiegen war
  • Daher fiel die Entscheidung, einen Weg zu finden, die Server über lokalen Netzwerkzugriff zu umgehen

Voraussetzungen

  • Sleep Number Hub Modellnummer: 360SIQ01D
  • Ein UART-zu-TTY-Gerät und weitere Hardware-Werkzeuge werden benötigt
  • Ein USB-A-Flash-Laufwerk wird benötigt

Root-Zugriffsrechte erlangen

  1. UART-Gerät an den J16-Header anschließen
  2. Konsole mit dem UART-Gerät verbinden (Baudrate: 115200)
  3. Hub einschalten und innerhalb von 2 Sekunden <SPACE> drücken, um die automatische Boot-Sequenz zu stoppen
  4. Boot-Umgebungsvariablen bearbeiten
    • Standard-Umgebungsvariablen sichern
    • In der Variablen bootcmd run set_bootargs; entfernen
    • Zur Variablen bootargs Folgendes hinzufügen:
      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. Beim ersten Booten ein Flash-Laufwerk mit der Datei let_me_root einstecken
  6. Die Root-Partition erneut als rw mounten und die Datei let_me_root hinzufügen
  7. SSH-Zugriff einrichten

Server zur Steuerung und Überwachung im lokalen Netzwerk erstellen

  • Einen HTTP-Server mit Python 2.7.18 einrichten
  • Ein HTTP-Server-Skript schreiben, das Skripte im Verzeichnis /bam/scripts ausführen kann
  • Das Skript auf den Hub kopieren und ausführen

rc.d-Skript hinzufügen

  • Ein rc.d-Skript zur Partition /real.root hinzufügen
  • Das Skript auf den Hub kopieren und an die passende Stelle verschieben
  • Erforderliche symbolische Links hinzufügen

Nützliche Befehle

  • Im Skript /bio können verschiedene Befehle zur Bettsteuerung verwendet werden
  • Beispielbefehle:
    • arg=PSNL: den zuletzt eingestellten Sleep-Number-Wert der linken Bettseite abrufen
    • arg=PSNS&arg=L100: den Sleep-Number-Wert der linken Bettseite auf 100 setzen

Nächste Schritte

  • Die Bettsteuerungsfunktionen im Wurzelverzeichnis /bam untersuchen
  • Sicherheitsprobleme des Hubs berücksichtigen, der über einen SSH-Tunnel mit den Sleep-Number-Servern kommuniziert
  • Eine einfache Web-App schreiben, die die SleepIQ-App ersetzen kann

Anhang: Ursprüngliche U-Boot-Umgebungsvariablen des Hubs

  • baudrate=115200
  • bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
  • Weitere Variablen ...

Meinung von GN⁺

  • Dieser Leitfaden ermöglicht den Zugriff auf das lokale Netzwerk eines Sleep Number-Betts und gibt Nutzern mehr Kontrolle
  • Angesichts der Sicherheitsprobleme des Hubs ist es ratsam, die externe Internetverbindung zu trennen
  • Es gibt auch andere Smart-Home-Produkte mit ähnlichen Funktionen
  • Bei der Einführung neuer Technologien sollten Sicherheits- und Wartungsfragen sorgfältig bedacht werden

1 Kommentare

 
GN⁺ 2024-07-02
Hacker-News-Kommentare
  • Früher ein Bett ohne Smart-Funktionen benutzt

    • Zwei kabelgebundene Controller waren mit der Pumpe verbunden
    • Es brauchte weder Internet noch einen Linux-Mikrocontroller
    • Ohne Angst vor Hacks bequem geschlafen
  • Interesse an dem Hub, der über die Sleep-Number-Server und einen SSH-Tunnel kommuniziert

    • Frage, ob PubkeyAuth oder ein Passwort verwendet wird
    • Über die Möglichkeit von DNS-Hijacking nachgedacht
    • Zitiert wie in Homer Simpsons berühmtem Spruch: „Das Bett fährt hoch und runter“
  • Es gibt eine ähnliche Methode, um auf das Eight Sleep Pod 3 zuzugreifen

    • Einige Modelle enthalten eine modifizierbare MicroSD-Karte
    • Die bei TFA verwendete Methode könnte ein guter Weg sein, ohne Karte Root-Zugriff zu erhalten
    • Eight Sleep signiert Firmware-Updates, schickt aber auch den für die Signatur verwendeten privaten Schlüssel mit
  • Dachte, es gehe um einen Beitrag über das Hacken eines Eight-Sleep-Betts

    • War überrascht, als ein Foto des tatsächlichen „Number Sleep Hub“ auftauchte
    • Schockiert darüber, dass Eight Sleep und Sleep Number zwei Unternehmen sind, die wassergekühlte Betten bauen
  • Danach ein Witz über Ransomware

    • „Wenn du nicht 1000 Dollar zahlst, kannst du nächsten Monat nicht in deinem Bett schlafen“
  • Unangenehm, wenn das Internet ausfällt und man die Betttemperatur nicht regeln kann

  • Beschlossen, kein Sleep-Number-Bett zu kaufen

    • Zwei Matratzen erlebt, bei denen nach dem Outsourcing nach China interne Baffles gebrochen sind
  • Fragt sich, warum ein Bett Linux ausführen muss

    • Kann nicht nachvollziehen, warum ein Bett 1 GB RAM und ein vollständiges OS braucht
    • Es war auch schwer, eine Waschmaschine ohne WiFi-Anbindung zu finden
    • Es wird immer schwieriger, Smart-Geräte zu vermeiden
  • Empfiehlt, Lötwerkzeug auf die Einkaufsliste zu setzen