1 poin oleh GN⁺ 2025-05-11 | 1 komentar | Bagikan ke WhatsApp
  • DARKNAVY membongkar antena Starlink Standard Actuated yang dibeli di Singapura dan melakukan analisis pendahuluan terhadap perangkat keras, firmware, chip keamanan, serta kemungkinan emulasi
  • Sebagian besar PCB antena diisi oleh RF front-end STMicroelectronics, sementara bagian kontrol inti terkonsentrasi di satu sisi papan, menunjukkan struktur yang mirip dengan perangkat IoT umum
  • Firmware Rev3 didump dengan melepas eMMC, dan sebagian besarnya berada dalam keadaan tidak terenkripsi, sehingga sebagian rantai boot, kernel, sebagian filesystem, dan konfigurasi runtime dapat diperiksa
  • Perangkat lunak yang diekstrak tampaknya mencakup fungsi bukan hanya untuk terminal pengguna, tetapi juga untuk satelit dan gateway darat, dan saat startup tampak mengidentifikasi jenis perangkat melalui periferal perangkat keras
  • Ethernet Data Recorder merekam paket terkait telemetri satelit dan mengenkripsinya dengan kunci perangkat keras, tetapi pada UTA terdapat 41 kunci publik SSH yang didaftarkan otomatis dan port 22 selalu terbuka di jaringan lokal

Terminal pengguna Starlink dan cakupan analisis

  • Starlink adalah layanan internet satelit orbit rendah milik SpaceX; pengguna terhubung ke satelit orbit dekat Bumi melalui terminal pengguna, lalu ke internet melalui gateway darat
  • Satelit generasi baru secara bertahap dilengkapi tautan laser sehingga sebagian satelit dapat berkomunikasi langsung satu sama lain
    • Mengurangi ketergantungan pada stasiun bumi, meningkatkan efisiensi transmisi, dan memperbaiki cakupan global
    • Bahkan di medan perang Ukraina yang tidak memiliki stasiun bumi lokal, terminal pengguna Starlink dapat terhubung secara tidak langsung ke gateway di negara tetangga melalui tautan antarsatelit
  • Investigasi DARKNAVY tidak berfokus pada keseluruhan terminal pengguna Starlink, melainkan pada komponen antenanya, yaitu User Terminal Antenna, UTA
    • Perangkat yang dianalisis adalah Starlink Standard Actuated yang dibeli di Singapura
    • Juga disebut Rev3 atau GenV2

Hasil pembongkaran perangkat keras

  • Terminal pengguna Starlink yang lengkap terdiri dari dua bagian: router dan antena
  • PCB UTA yang dibongkar berukuran hampir sama dengan casing luarnya
    • Sebagian besar papan diisi oleh chip RF front-end buatan STMicroelectronics
    • Komponen kontrol inti sebagian besar terkumpul di satu sisi PCB
  • Di luar antena RF, keseluruhan desain area inti UTA cukup mirip dengan perangkat IoT biasa
  • SoC utamanya adalah quad-core Cortex-A53 yang dibuat khusus oleh ST untuk SpaceX
    • Perangkat keras dan datasheet chip ini saat ini bersifat rahasia dan tidak dipublikasikan
  • Pada Black Hat USA 2022, Dr. Lennert Wouters dari KU Leuven mendemonstrasikan serangan injeksi gangguan pada antena Starlink generasi pertama GenV1 dan memperoleh root shell perangkat
    • Setelah itu SpaceX menonaktifkan antarmuka debug UART pada PCB melalui pembaruan firmware untuk meningkatkan ketahanan terhadap serangan gangguan
    • Wouters kemudian memperbaiki pendekatannya dan berhasil menembusnya lagi

Ekstraksi firmware dan struktur perangkat lunak

  • Untuk menganalisis UTA lebih dalam, DARKNAVY melakukan dump firmware langsung dari chip eMMC
    • Pada papan Rev3 tidak ada pin debug eMMC yang jelas
    • Chip eMMC harus dilepas dari PCB lalu dibaca dengan programmer
  • Sebagian besar firmware yang diekstrak berada dalam keadaan tidak terenkripsi
    • Rantai boot selain BootROM
    • Kernel
    • Area filesystem yang tidak terenkripsi
  • Setelah kernel mulai berjalan, sebagian besar lingkungan runtime dibaca dari eMMC lalu diekstrak ke direktori /sx/local/runtime
  • Dalam struktur runtime, bin berisi file eksekusi yang diperlukan untuk stack perangkat lunak Starlink, dat menyimpan file konfigurasi, dan revision_info mencatat versi perangkat lunak dan perangkat keras saat ini
  • user_terminal_frontend, yang menangani komunikasi pengguna eksternal, ditulis dalam Go, sedangkan sebagian besar program lainnya adalah executable C++ hasil kompilasi statis tanpa simbol
  • Berdasarkan analisis awal yang mengacu pada riset sebelumnya, arsitektur stack jaringannya sampai tingkat tertentu mirip dengan DPDK
    • Program C++ di ruang pengguna terutama memproses paket jaringan dengan melewati kernel
    • Kernel Linux berperan besar menyediakan driver perangkat keras dasar dan manajemen proses
  • Perangkat lunak inti yang diekstrak dari UTA juga mencakup fungsi yang tampaknya milik satelit atau gateway darat
    • Dari reverse engineering awal, sistem tampak mengidentifikasi jenis perangkat saat startup berdasarkan periferal perangkat keras
    • Setelah itu sistem memuat dan menjalankan logika yang sesuai untuk jenis perangkat tersebut

Emulasi berbasis QEMU

  • Agar analisis UTA berkelanjutan menjadi lebih mudah, DARKNAVY membangun lingkungan emulasi berbasis QEMU untuk firmware Rev3
  • Dalam lingkungan ini mereka berhasil menjalankan dan men-debug sebagian perangkat lunak yang berinteraksi dengan entitas eksternal
    • httpd
    • WebSocket
    • layanan gRPC

Chip keamanan STSAFE-A110

  • Selain SoC utama, UTA juga dilengkapi chip keamanan khusus STSAFE-A110
    • Chip ini mengklaim tingkat keamanan CC EAL5+
    • Berbeda dengan SoC kustom, chip ini dapat dibeli secara legal di bawah NDA
  • Dalam firmware UTA, program ruang pengguna bernama stsafe_cli menangani interaksi dengan chip ini
  • Hasil reverse engineering menunjukkan bahwa STSAFE tampaknya terutama menyediakan fungsi berikut
    • Pengenal unik tiap perangkat, UUID
    • Pengelolaan sertifikat kunci publik stsafe_leaf.pem yang diduga digunakan untuk autentikasi komunikasi satelit
    • Derivasi kunci enkripsi simetris untuk transmisi data pengguna
  • Chip ini berperan sebagai root of trust tambahan yang independen dari mekanisme secure boot SoC, sesuai dengan pendekatan desain keamanan embedded modern

Ethernet Data Recorder dan kunci SSH

  • Selama analisis ditemukan program bernama Ethernet Data Recorder, yang dari nama dan fungsinya saja bisa dicurigai sebagai backdoor untuk menangkap data pengguna
  • Setelah diperiksa lebih rinci, program ini merekam paket jaringan tertentu dengan mekanisme mirip pcap_filter
    • Contoh aturan penangkapan mencakup kondisi udp and dst port 10017 dan host tujuan multicast tertentu
    • Berdasarkan petunjuk lain dalam firmware, paket-paket ini terkait dengan telemetri satelit
  • Semua lalu lintas yang ditangkap dienkripsi menggunakan kunci perangkat keras yang difuse ke SoC
  • Berdasarkan informasi yang tersedia saat ini, sulit menyimpulkan bahwa fungsi ini mengumpulkan data privasi pengguna
  • Saat inisialisasi perangkat, jika sistem mengidentifikasi dirinya sebagai terminal pengguna, skrip inisialisasi secara otomatis menuliskan 41 kunci publik SSH ke /root/.ssh/authorized_keys
    • Port 22 pada UTA selalu terbuka di jaringan lokal
    • Keberadaan begitu banyak kunci login yang tidak diketahui pada produk konsumen seperti ini cukup menonjol

Konteks keamanan sistem internet satelit

  • Seiring teknologi satelit terus berkembang dan diterapkan di berbagai industri, setiap komponen Starlink dan sistem internet satelit lainnya dapat menjadi area penting untuk operasi serangan dan pertahanan di masa depan
  • Dalam keamanan ruang angkasa, pengembang dan peretas harus menghadapi bukan hanya ranah digital tetapi juga batasan fisika antariksa
    • Satu kesalahan operasi saja dapat menyebabkan hilangnya kontak dengan target secara permanen

Referensi

1 komentar

 
GN⁺ 2025-05-11
Komentar Hacker News
  • Katanya saat inisialisasi, jika teridentifikasi sebagai terminal pengguna, sistem otomatis memasukkan 41 kunci publik SSH ke /root/.ssh/authorized_keys; jadi saya malah makin penasaran siapa saja yang tidak punya akses root ke terminal pengguna “milik saya”

    • Mungkin penggunanya sendiri
      Kalau dilihat lebih serius, rasanya tidak jauh berbeda dari router yang disediakan ISP dan punya sistem manajemen jarak jauh. Sekalipun SpaceX tidak bisa mengakses terminal pengguna secara langsung, mereka tetap bisa menangkap trafik dari satelit atau stasiun bumi
    • Saya penasaran siapa yang paling cocok untuk mencoba mengaitkan beberapa kunci ini dengan individu-individu yang belakangan terlibat dalam pekerjaan khusus pemerintah. Ada juga beberapa materi bocoran yang cukup bagus
    • 41 buah belum tentu sesuatu yang perlu dikhawatirkan. Bisa saja instans server di 41 wilayah masing-masing punya kunci sendiri, dan karena Starlink adalah layanan global, itu terasa wajar
      Justru kalau 41 instans itu berbagi satu kunci yang sama, itu mungkin lebih mengkhawatirkan
    • authorized_keys saya sebagai satu pengguna pribadi saja berisi 25 baris. Ada YubiKey berbeda untuk tiap laptop, kunci dari iPad dan iPhone, serta kunci Secure Enclave dari Mac
      Starlink pasti punya administrator sistem lebih dari 1–2 orang, jadi menurut saya sekitar 100 kunci publik pun masih masuk akal
    • Pilihan ini benar-benar sulit saya pahami. Di tempat kerja saya sekarang, kunci SSH developer hanya didistribusikan ke perangkat yang menjalankan firmware DEV atau QA, sementara image produksi ditandatangani dan SSH dimatikan sepenuhnya
      Untuk mendiagnosis masalah engineering pada perangkat produksi, ada perangkat lunak akses jarak jauh terpisah dan REPL memang bisa dijalankan, tetapi dibatasi oleh kontrol akses dan persetujuan DevOps
  • Diskusi sebelumnya tentang kiriman serupa: Teardown of the SpaceX Starlink User Terminal https://news.ycombinator.com/item?id=25277171 (2 Desember 2020 — 158 poin, 138 komentar)

  • Kalau 41 kunci publiknya diunggah, mungkin bisa diketahui developer mana saja yang memakainya

  • https://web.archive.org/www.darknavy.org/blog/a_first_glimps...

  • Mengejutkan bahwa semua paket diproses di user space
    Jika memproses trafik 1Gbps dengan paket UDP 100 byte, berarti harus menangani 1 juta paket per detik. Dengan CPU 1GHz, hanya tersedia 1000 siklus per paket
    Itu mungkin saja, tetapi tidak mudah kecuali para engineer senang menulis assembly secara manual dan memikirkan segala macam teknik tabel lookup

    • Biasanya paket awal diproses oleh software, lalu setelah endpoint terbentuk, aliran berikutnya dialihkan ke hardware. Pola tertentu juga bisa selalu diproses di software
      Software itu bisa berupa kernel yang sudah dipatch, atau bypass kernel ala XDP. Ini dugaan berdasarkan pengalaman saya pernah sedikit menangani DPDK atau yang mirip pada router/gateway modem kabel Intel Puma
    • Untuk proses forwarding, pendekatan ala DPDK bisa lebih cepat karena mengurangi penyalinan buffer
      Starlink berada di kisaran 25–200Mbps dan ukuran paket rata-ratanya juga 7–8 kali lebih besar, jadi paling banyak sekitar 36.000 paket per detik; pada 1GHz pun itu cukup bisa ditangani
    • Saya tidak mengerti kenapa itu harus lebih tidak efisien dibanding memproses paket di kernel. Ada cara memetakan antrean hardware ke user space, dan artikelnya juga menyebut sistemnya punya struktur mirip DPDK
      Pada titik itu, saya tidak tahu kenapa penting apakah kode polling berada di dalam kernel atau tidak
    • 100 byte? Starlink memakai MTU 1500 byte yang umum
    • Memproses di user space bisa menghindari satu kali memcpy tambahan, jadi jauh lebih cepat
  • Akan bagus kalau typo di judul diperbaiki. Saat ini tertulis “Ternimal”

    • Ini masalah keming yang klasik
  • Saya penasaran bagaimana orang memulai hal semacam ini. Reverse engineering itu sulit, dan menurut saya bermain-main dengan perangkat biasanya sangat mahal atau perangkatnya sudah tua dan tidak lagi dikembangkan. Mungkin ada pengecualian

    • Pertama, beli barangnya. Kedua, bongkar. Ketiga, pikirkan cara menembusnya. Keempat, benar-benar coba. Kelima, rusakkan lalu mengumpat
      Biasanya ada UART, tetapi tampaknya terminal Starlink tidak punya UART, jadi orang ini malah melepas chip memori eMMC. Pada dasarnya itu seperti kartu microSD yang disolder
    • Sepertinya pertama-tama perlu belajar sedikit rekayasa hardware. Kalau tidak tahu komponen itu melakukan apa dan bagaimana menanganinya, reverse engineering akan sulit
  • Ada kalimat “DARKNAVY built a basic QEMU-based emulation environment for the Rev3 firmware”; saya penasaran apakah ada materi atau solusi siap pakai untuk mengemulasi firmware yang terhubung ke perangkat eksternal seperti GPS

  • Saya tertarik bagaimana seharusnya firmware dilindungi di produk agar sulit di-reverse-engineer. Apakah ada materi yang memperkenalkan teknik yang dipakai SpaceX?

    • Langkah pertama mungkin semacam firmware terenkripsi, tetapi SpaceX tampaknya tidak melakukan apa-apa atau hanya bereaksi setelah kejadian. Bahkan ada pin debug sampai seseorang memublikasikan serangan yang memanfaatkan pin itu
    • Setidaknya rootfs harus dienkripsi dengan secret yang sulit diekstrak dari secure element. Selangkah lebih jauh, bisa memakai sesuatu seperti TrustZone dari ARM untuk menyembunyikan pekerjaan sensitif seperti bootloader, dekripsi, dan penandatanganan image
      Melihat filesystem bisa langsung didump, tampaknya SpaceX tidak menerapkan banyak perlindungan selain bootloader yang disebut di artikel
    • Sebagai orang yang pernah memakai banyak produk bagus dengan firmware yang buruk, mohon jangan lakukan itu kecuali ada alasan yang kuat, realistis, dan sudah dianalisis dengan memadai
      Menurut saya lebih baik memakai sumber daya untuk hal-hal yang bermanfaat bagi semua orang dan membuat produk lebih baik. Bagi pengguna mahir, kemungkinan teoretis untuk memodifikasi produk—bahkan dengan cara yang tidak pernah terpikirkan oleh produsen—bisa menjadi nilai tambah besar
      Dari sudut pandang end user teknis, beginilah kelihatannya. Saya benar-benar lelah dan agak murung karena harus meretas perangkat hanya agar bisa memakai lampu, feeder kucing, dan sekarang bahkan mesin rowing dengan semestinya
    • Kalau memakai Linux, itu mungkin bisa berujung pada pelanggaran GPL
  • Akan keren kalau ini berbasis codebase yang sama dengan roket, ya?

    • Kalau mau terdengar lebih keren, mungkin codebase-nya sama dengan satelit. Atau bisa juga simulator satelit; bagaimanapun, ini sesuatu yang harus mengirim telemetri
    • Bukan, ini berbasis OpenWRT