2 คะแนน โดย GN⁺ 2024-07-02 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

แรงจูงใจ

  • ได้สำรวจความเป็นไปได้ในการเข้าถึงเครือข่ายภายในของเตียง Sleep Number มาหลายปี
  • ได้สร้างปลั๊กอิน homebridge ที่สามารถควบคุมการตั้งค่าเตียงผ่าน HomeKit
  • Sleep Number ได้ขอให้ปิดใช้งานปลั๊กอิน เนื่องจากมีความถี่ของคำขอ API สูงขึ้น
  • จึงตัดสินใจหาวิธีข้ามเซิร์ฟเวอร์ด้วยการเข้าถึงผ่านเครือข่ายภายใน

สิ่งที่ต้องเตรียมล่วงหน้า

  • หมายเลขรุ่นของ Sleep Number Hub: 360SIQ01D
  • ต้องใช้อุปกรณ์ UART to TTY และเครื่องมือฮาร์ดแวร์อื่น ๆ
  • ต้องใช้แฟลชไดรฟ์ USB-A

การได้สิทธิ์เข้าถึงรูท

  1. เชื่อมต่ออุปกรณ์ UART เข้ากับเฮดเดอร์ J16
  2. เชื่อมต่อคอนโซลเข้ากับอุปกรณ์ UART (baud rate: 115200)
  3. เปิดไฟของฮับ แล้วกด <SPACE> ภายใน 2 วินาทีเพื่อหยุดลำดับการบูตอัตโนมัติ
  4. แก้ไขตัวแปรสภาพแวดล้อมการบูต
    • สำรองค่าตัวแปรสภาพแวดล้อมเดิม
    • ลบ run set_bootargs; ออกจากตัวแปร bootcmd
    • เพิ่มค่าต่อไปนี้ในตัวแปร 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. ในการบูตครั้งแรก ให้เสียบแฟลชไดรฟ์ที่มีไฟล์ let_me_root
  6. remount พาร์ทิชันรูทเป็น rw แล้วเพิ่มไฟล์ let_me_root
  7. ตั้งค่าการเข้าถึงผ่าน SSH

การสร้างเซิร์ฟเวอร์สำหรับควบคุมและมอนิเตอร์ผ่านเครือข่ายภายใน

  • ตั้งค่า HTTP เซิร์ฟเวอร์ด้วย Python 2.7.18
  • เขียนสคริปต์ HTTP เซิร์ฟเวอร์ที่สามารถรันสคริปต์ในไดเรกทอรี /bam/scripts
  • คัดลอกสคริปต์ไปยังฮับแล้วรัน

การเพิ่มสคริปต์ rc.d

  • เพิ่มสคริปต์ rc.d ไปยังพาร์ทิชัน /real.root
  • คัดลอกสคริปต์ไปยังฮับแล้วย้ายไปยังตำแหน่งที่เหมาะสม
  • เพิ่ม symbolic link ที่จำเป็น

คำสั่งที่มีประโยชน์

  • สามารถใช้คำสั่งควบคุมเตียงหลายแบบได้จากสคริปต์ /bio
  • ตัวอย่างคำสั่ง:
    • arg=PSNL: ดึงค่าหมายเลขการนอนที่ตั้งไว้ล่าสุดของฝั่งซ้ายของเตียง
    • arg=PSNS&arg=L100: ตั้งหมายเลขการนอนของฝั่งซ้ายของเตียงเป็น 100

ขั้นตอนถัดไป

  • สำรวจความสามารถในการควบคุมเตียงในไดเรกทอรีราก /bam
  • พิจารณาปัญหาด้านความปลอดภัยของฮับที่สื่อสารกับเซิร์ฟเวอร์ Sleep Number ผ่าน SSH tunnel
  • เขียนเว็บแอปอย่างง่ายที่สามารถใช้แทนแอป SleepIQ

ภาคผนวก: ตัวแปรสภาพแวดล้อม U-Boot ดั้งเดิมของฮับ

  • baudrate=115200
  • bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
  • ตัวแปรอื่น ๆ...

ความเห็นจาก GN⁺

  • คู่มือนี้ทำให้สามารถเข้าถึงเตียง Sleep Number ผ่านเครือข่ายภายในได้ และให้ผู้ใช้มีสิทธิ์ควบคุมมากขึ้น
  • เมื่อพิจารณาถึงปัญหาด้านความปลอดภัยของฮับ ควรตัดการเชื่อมต่ออินเทอร์เน็ตภายนอก
  • ยังมีผลิตภัณฑ์สมาร์ตโฮมอื่น ๆ ที่ให้ความสามารถคล้ายกัน
  • เมื่อนำเทคโนโลยีใหม่มาใช้ ควรพิจารณาปัญหาด้านความปลอดภัยและการบำรุงรักษาอย่างรอบคอบ

1 ความคิดเห็น

 
GN⁺ 2024-07-02
ความคิดเห็นบน Hacker News
  • เมื่อก่อนเคยใช้เตียงที่ไม่มีฟังก์ชันอัจฉริยะ

    • มีคอนโทรลเลอร์แบบมีสายสองตัวต่อเข้ากับปั๊ม
    • ไม่ต้องใช้อินเทอร์เน็ตหรือไมโครคอนโทรลเลอร์ Linux
    • นอนหลับสบายโดยไม่ต้องกังวลว่าจะถูกแฮ็ก
  • สนใจฮับที่สื่อสารกับเซิร์ฟเวอร์ของ Sleep Number ผ่าน SSH tunnel

    • สงสัยว่าใช้ PubkeyAuth หรือรหัสผ่าน
    • ลองนึกภาพความเป็นไปได้ของการ hijack DNS
    • อ้างคำพูดดังของ Homer Simpson ว่า "เตียงขึ้นและลง"
  • มีวิธีลักษณะคล้ายกันในการเข้าถึง Eight Sleep Pod 3

    • บางรุ่นมี MicroSD card ที่แก้ไขได้รวมมาให้
    • วิธีที่ใช้ใน TFA อาจเป็นแนวทางที่ดีในการได้สิทธิ์ root โดยไม่ต้องใช้การ์ด
    • Eight Sleep เซ็นเฟิร์มแวร์อัปเดต แต่ก็ส่ง private key ที่ใช้เซ็นมาด้วย
  • ตอนแรกคิดว่าเป็นบทความเกี่ยวกับการแฮ็กเตียง Eight Sleep

    • ตกใจเมื่อเห็นรูป "Number Sleep Hub" ของจริง
    • ช็อกที่รู้ว่า Eight Sleep และ Sleep Number เป็นสองบริษัทที่ทำเตียงระบายความร้อนด้วยน้ำ
  • ต่อไปเป็นมุกเกี่ยวกับ ransomware

    • "ถ้าไม่จ่าย 1000 ดอลลาร์ คุณจะนอนบนเตียงไม่ได้ตลอดเดือนหน้า"
  • สถานการณ์ที่อินเทอร์เน็ตล่มแล้วปรับอุณหภูมิเตียงไม่ได้เป็นเรื่องน่าหงุดหงิด

  • ตัดสินใจว่าจะไม่ซื้อเตียง Sleep Number

    • เคยเจอที่นอนสองลูกที่แผ่นกั้นภายในหักหลังจากย้ายไปเอาต์ซอร์สที่จีน
  • ตั้งคำถามว่าทำไมเตียงถึงต้องรัน Linux

    • ไม่เข้าใจว่าทำไมเตียงถึงต้องมี RAM 1GB และระบบปฏิบัติการเต็มรูปแบบ
    • แม้แต่การหาเครื่องซักผ้าที่ไม่มีการเชื่อมต่อ WiFi ก็ยังยาก
    • การหลีกเลี่ยงอุปกรณ์อัจฉริยะยิ่งทำได้ยากขึ้นเรื่อย ๆ
  • แนะนำให้เพิ่มอุปกรณ์บัดกรีลงในรายการซื้อของ