Membongkar Terminal Pengguna Starlink
(darknavy.org)- 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,
binberisi file eksekusi yang diperlukan untuk stack perangkat lunak Starlink,datmenyimpan file konfigurasi, danrevision_infomencatat 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
httpdWebSocket- 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_climenangani 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.pemyang 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 10017dan host tujuan multicast tertentu - Berdasarkan petunjuk lain dalam firmware, paket-paket ini terkait dengan telemetri satelit
- Contoh aturan penangkapan mencakup kondisi
- 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
1 komentar
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”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
Justru kalau 41 instans itu berbagi satu kunci yang sama, itu mungkin lebih mengkhawatirkan
authorized_keyssaya sebagai satu pengguna pribadi saja berisi 25 baris. Ada YubiKey berbeda untuk tiap laptop, kunci dari iPad dan iPhone, serta kunci Secure Enclave dari MacStarlink pasti punya administrator sistem lebih dari 1–2 orang, jadi menurut saya sekitar 100 kunci publik pun masih masuk akal
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
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
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
Pada titik itu, saya tidak tahu kenapa penting apakah kode polling berada di dalam kernel atau tidak
memcpytambahan, jadi jauh lebih cepatAkan bagus kalau typo di judul diperbaiki. Saat ini tertulis “Ternimal”
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
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
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
Android Emulator adalah downstream dari emulator QEMU, menambahkan dukungan boot perangkat Android dan mengemulasi hardware Android yang umum (OpenGL, GPS, GSM, sensor) serta antarmuka GUI. Android Emulator memperluas QEMU dengan berbagai cara
Saya tertarik bagaimana seharusnya firmware dilindungi di produk agar sulit di-reverse-engineer. Apakah ada materi yang memperkenalkan teknik yang dipakai SpaceX?
rootfsharus 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 imageMelihat filesystem bisa langsung didump, tampaknya SpaceX tidak menerapkan banyak perlindungan selain bootloader yang disebut di artikel
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
Akan keren kalau ini berbasis codebase yang sama dengan roket, ya?