1 puan yazan GN⁺ 2025-05-11 | 1 yorum | WhatsApp'ta paylaş
  • SpaceX'in Starlink kullanıcı terminali, alçak Dünya yörüngesi uydu internet bağlantısının temel donanımıdır
  • Kullanıcı terminali söküldüğünde, başlıca bileşenlerin radyo frekansı (RF) ön ucu ve özel tasarım SoC olduğu görülüyor
  • Firmware analizi, temel yazılımın büyük bölümünün çekirdeği baypas eden kullanıcı alanı ağ işleme ve bazı şifreleme işlevlerini içerdiğini gösteriyor
  • STSAFE-A110 güvenlik çipi ek bir güven kökü olarak görev yapıyor; veri şifreleme ve benzersiz kimlik sağlıyor
  • Bu terminalde çok sayıda SSH açık anahtarı yapılandırması ve şüpheli bir paket kayıt aracı bulunuyor, ancak kullanıcı gizliliğinin ihlal edildiğine dair bir işaret görünmüyor

Genel bakış

  • Starlink, SpaceX tarafından sunulan bir alçak Dünya yörüngesi uydu internet hizmetidir
  • Kullanıcılar terminal üzerinden yakındaki uydulara bağlanır ve bu bağlantı yer istasyonları üzerinden internete çıkar
  • Yeni nesil uydular, uydular arası iletişim için lazer bağlantıları kullanabiliyor; bu özellik küresel kapsama ve verimlilik artışına katkı sağlıyor
  • Yerel bir ağ geçidi olmasa bile, örneğin Ukrayna'da olduğu gibi, komşu ülkelerdeki ağ geçitleri kullanılarak Starlink terminali internete bağlanabiliyor
  • Bu yazı, DARKNAVY tarafından yapılan Starlink kullanıcı terminali derinlemesine incelemesini kısaca ele alıyor

Donanım analizi

  • Bir Starlink kullanıcı terminali, router ve anten (UTA) olmak üzere iki parçadan oluşuyor
  • DARKNAVY, Singapur'da bir Standard Actuated (Rev3, GenV2) terminal satın alıp anteni söktü
  • Söküm sonucunda, kartın önemli bir bölümünü RF ön uç çiplerinin (çoğu STMicroelectronics üretimi) kapladığı görüldü
  • Ana kontrol bölümünde SpaceX'e özel özel tasarım ST SoC (dört çekirdekli Cortex-A53) bulunuyor, ancak veri sayfası bilgileri kamuya açık değil
  • Black Hat USA 2022'de KU Leuven'den Dr. Lennert Wouters, birinci nesil terminali (GenV1) hacklemeyi başardığını açıklamıştı; SpaceX daha sonra bir firmware güncellemesiyle UART debug arayüzünü devre dışı bıraktı
  • Buna rağmen, ek yöntemlerle güvenliğin yeniden aşılabildiği de görüldü

Firmware çıkarma ve analiz

  • DARKNAVY, firmware'i doğrudan eMMC çipinden dump etti
  • Rev3 kartta ayrı bir eMMC debug pini olmadığından, eMMC sökülüp ardından programlayıcıyla veri çıkarma yöntemi kullanıldı
  • Firmware'in büyük kısmı şifreli olmadığından, boot chain (BootROM hariç), kernel ve dosya sisteminin bir bölümü ortaya çıkarıldı
  • Kernel açıldıktan sonra çalışma zamanı ortamı /sx/local/runtime dizinine açılarak kullanılıyor
  • bin içinde Starlink yazılım çalıştırılabilir dosyaları, dat içinde yapılandırma dosyaları ve revision_info içinde sürüm bilgileri yer alıyor
  • Temel haberleşme programı user_terminal_frontend Go ile geliştirilmiş; diğerlerinin çoğu ise sembolsüz statik C++ ikilileri
  • Ağ yığını mimarisi, DPDK'ye benzer biçimde çekirdeği baypas ediyor ve paket işlemeyi kullanıcı alanındaki programlara bırakıyor
  • Linux kernel ağırlıklı olarak donanım sürücüleri ve süreç yönetimi için kullanılıyor
  • Bazı yazılımlarda başlangıçta uydu veya ağ geçidi kullanımı için tasarlanmış işlevler yer alıyor
  • Cihaz açılışta donanım çevre birimlerine bakarak tipini belirliyor ve yalnızca ilgili mantığı yüklüyor

Emülasyon

  • Sürekli analiz için QEMU tabanlı bir Rev3 firmware emülasyon ortamı kuruldu
  • Bu ortamda httpd, WebSocket, gRPC gibi dışa açık bazı servislerin çalıştırılması ve debug edilmesi başarıldı
  • Böylece ana çalıştırılabilir dosyaların ve servislerin çalışma mantığı izlenebilir hale geldi

Güvenlik çipi

  • Ana SoC'ye ek olarak STSAFE-A110 güvenlik çipi bulunuyor ve CC EAL5+ sertifikasyonuna sahip olduğu belirtiliyor
  • Bu çip NDA kapsamında satın alınabiliyor ve firmware içindeki stsafe_cli programı bu çiple etkileşim kuruyor
  • Analize göre STSAFE çipinin sağladığı işlevler arasında cihaza özgü UUID atama, açık anahtar sertifikası (stsafe_leaf.pem) yönetimi ve simetrik anahtar türetme bulunuyor
  • Bu çip, SoC'nin güvenli açılışından ayrı bir ek güven kökü olarak işliyor ve modern gömülü güvenlik tasarım standartlarıyla uyumlu görünüyor

Easter egg: Elon seni izliyor mu?

  • Analiz sırasında Ethernet Data Recorder programı tespit edildi ve bu durum olası bir arka kapı ihtimaline dair soru işaretleri doğurdu
  • Bu program paket kaydı işlevi görüyor gibi görünüyor ve dahili olarak pcap_filter benzeri bir mekanizmayla belirli paketleri yakalıyor
  • Kurallara bakıldığında, yakalananların çoğunlukla uydu telemetrisiyle ilgili UDP paketleri olduğu anlaşılıyor
  • Yakalanan trafik SoC donanım anahtarı ile şifrelenerek saklanıyor
  • Şu ana kadar kullanıcı gizliliği verilerinin toplandığını gösteren bir kanıt bulunamadı
  • Başlatma sürecinde cihaz kullanıcı terminali olarak tanınırsa, /root/.ssh/authorized_keys içine 41 adet SSH açık anahtarı yazılıyor ve 22 numaralı port yerel ağda her zaman açık kalıyor
  • Ticari bir üründe çok sayıda kimliği belirsiz açık anahtarın kayıtlı olması dikkat çekici

Sonuç ve görünüm

  • Uydu teknolojileri farklı sektörlerde yaygınlaştıkça, Starlink benzeri uydu internet sistemlerinin bileşenlerinin gelecekte güvenlik saldırıları ve savunmasının ana cephelerinden biri olması bekleniyor
  • Uzay güvenliğinin doğası gereği, tek bir hata hedefle kalıcı iletişim kopmasına yol açabileceğinden dikkatli bir yaklaşım gerekiyor

1 yorum

 
GN⁺ 2025-05-11
Hacker News görüşleri
  • Cihaz başlatılırken sistem bunun bir kullanıcı terminali olduğunu algılarsa, başlatma betiğinin otomatik olarak 41 SSH açık anahtarını /root/.ssh/authorized_keys dosyasına yazdığını keşfetmişler; ayrıca 22 numaralı port da her zaman yerel ağa açık. 41 anahtar kullanmanın ne anlama geldiği merak uyandırıyor; sonuçta, "size ait olan" kullanıcı terminaline root erişimi olmayan kişi kim olabilir sorusu doğuyor.
    • Muhtemelen sizsiniz; daha ciddi düşününce bu, ISP'nin sağladığı yönlendiricide uzaktan yönetim sistemi bulunmasından çok da farklı değil. SpaceX'in kullanıcı terminaline erişimi olmasa bile, uydudan ya da yer istasyonundan trafiği izleyebilir.
    • Son dönemde özel devlet işleriyle ilgili kişiler arasında, izlenebilir SSH anahtarları olup olmadığını kontrol etmek için en uygun kişinin kim olduğu merak ediliyor; son zamanlarda iyi bir sızıntı da olmuştu.
    • 41 anahtar, sadece 41 bölgedeki aynı sunucu örnekleri de olabilir. Starlink küresel bir hizmet olduğu için bu başlı başına endişe verici değil. Eğer 41 örnek tek bir anahtarı paylaşıyor olsaydı daha çok endişelenirdim.
    • Şu an çalıştığım şirkette yalnızca geliştirici SSH anahtarları DEV veya QA firmware'ine dağıtılıyor. Production imajları imzalandıktan sonra SSH tamamen kapatılıyor. Production'da uzaktan tanılama için ayrı bir yazılım kullanılıyor ve bu da erişim izinleri ile DevOps onay süreciyle yönetiliyor. Bu yüzden SpaceX'in tercihi bana tuhaf geliyor.
    • Ben tek kullanıcı olmama rağmen authorized_keys içinde 25 satır var; dizüstü bilgisayarımdaki çeşitli YubiKey'ler, iPad ve iPhone anahtarları, Mac'in Secure Enclave anahtarları karışık halde. Starlink'te en az 1-2 sistem yöneticisi daha olduğunu varsayabiliriz; 100 açık anahtar da o kadar garip bir sayı değil.
    • Aslında bu, düşünüldüğünden daha sıradan ve güvenlik açısından daha iyi bir tercih olabilir. Milyonlarca terminalin hepsinin aynı anahtarı ya da az sayıdaki anahtarı kullanmasındansa, seri numarasına veya üretim zamanına göre ayrılmış birden çok anahtar kullanmak daha iyidir. Private key'ler yalnızca az sayıdaki terminali yönetmek için kullanılıyor olabilir ve anahtar yönetimi de bölünmüş olabilir.
    • Bu terminale dışarıdan anahtarla erişimin, yalnızca yerel ağ üzerinden internete de bağlı olduğunda mümkün olacağını tahmin ediyorum. SSH bağlantısının uydu ağından nasıl geçtiğini de merak ediyorum. Starlink'in NAT gibi ağ yapılarıyla neler yaptığını da merak ediyorum.
  • Daha önce paylaşılmış benzer bir konuda Starlink kullanıcı terminali söküm yazısının bağlantısı paylaşılıyor.
  • 41 açık anahtarı yayımlayıp hangi geliştirici tarafından kullanıldığını bulmaya çalışmak eğlenceli olabilir diye düşünülüyor.
  • Starlink ile ilgili blog yazıları arşivinin bağlantısı paylaşılıyor.
  • Yazardan başlıktaki yazım hatasını ("ternimal") düzeltmesi isteniyor.
    • Bunun keming (harf aralığı dengesizliği) sorununun klasik bir örneği olduğu esprili biçimde belirtiliyor.
  • Tüm paketlerin userspace'te işlendiği fikri şaşırtıcı geliyor. 1Gbps trafik (100 baytlık UDP bazında) saniyede bir milyon paket demek; 1GHz CPU'nun paket başına yalnızca 1000 cycle'ı olur. Teorik olarak mümkün ama kolay değil; mühendisin assembly'yi elle yazıp her türlü hileyi devreye sokması gereken bir seviye gibi görünüyor.
    • Makaleye göre ağ yığını yapısı DPDK'ye benziyor ve paketlerin kernel bypass ile işlenmesi temel nokta. Pratikte ilk paketi yazılım işleyip, oturum kurulduktan sonra işi donanıma devretmek mümkün olabilir. Bazı desenler ise sürekli yazılımda kalabilir. Intel Puma ailesi kablo modem yönlendiricilerde buna benzer bir yaklaşım görmüştüm.
    • DPDK tarzı forwarding'de tampon kopyaları azaldığı için aslında daha hızlı bile olabilir. Starlink 25-200Mbps seviyesinde çalışıyor ve ortalama paket boyutu 7-8 kat daha büyük olduğundan bu saniyede yaklaşık 36 bin paket eder. 1GHz CPU için bu yönetilebilir bir yük.
    • Paket işlemenin kernel'de yapılmasına kıyasla userspace'te neden daha az verimli olsun ki? Donanım kuyruğu userspace'e eşlenebiliyorsa kernel-userspace ayrımı önemini yitirir.
    • Starlink'te 100 baytlık UDP paketlerinden ziyade normal 1500 bayt MTU kullanılıyor.
    • Paketleri userspace'te işlemek gereksiz bellek kopyalarını azalttığı için çok daha hızlı olabilir.
  • Bu tür bir ekipmanın reverse engineering'ine nasıl başlanacağı merak ediliyor. Reverse engineering zor ve örneklerin çoğu ya eski ya da pahalı olduğundan işe girişmek kolay olmuyor.
    • Önce donanım mühendisliğini öğrenmek gerekir. Bileşenlerin ne işe yaradığını ya da özelliklerini bilmeden reverse engineering yapmak başlı başına zordur.
    • Birincisi ürünü satın alıp sökmek gerekir. İkincisi söktükten sonra içeri girmenin bir yolunu düşünmek gerekir. Üçüncüsü gerçekten denemek gerekir. Dördüncüsü bozduğunuzu fark edip hayal kırıklığı yaşamaktır. Genelde UART portundan girilir ama Starlink'te görünüşe göre yok; burada eMMC bellek yongası sökülerek analiz edilmiş.
  • QEMU tabanlı emülasyon ortamında, harici cihazlara (GPS vb.) bağlanan firmware emülasyonu için referans ya da hazır çözüm olup olmadığı soruluyor.
    • Android'in QEMU fork'unda OpenGL, GPS, GSM, sensörler ve GUI arayüzü dahil çeşitli donanım bileşenlerinin emüle edildiği örnek olarak veriliyor.
  • Firmware'i reverse engineering'den koruma yöntemlerini öğrenmek istediğini, SpaceX'in kullandığı tekniklere giriş niteliğinde kaynak olup olmadığını soruyor.
    • İlk adım firmware şifreleme gibi önlemlerdir. SpaceX de pek proaktif görünmüyor; bir şeyler bulundukça yamalıyor gibiler. Eskiden debug pinleri de varmış.
    • Kullandığım birçok üründe firmware tarafının çok zayıf olduğunu gördüm. Güvenlik dışında bir sebep yoksa lütfen her şeyi kilitlemek yerine herkesin işine yarayacak alanlara kaynak ayırın. Power user'ların cihazı değiştirebilmesi aslında avantajdır. Gerçekten ciddi bir ihlal riski yoksa, buna boşuna zaman harcanmamasını isterim. İhtiyaca göre cihaz hack'lemek zorunda olmak üzücü, bazen de moral bozucu.
    • En azından root dosya sistemini şifreleyip, hırsızlık ya da çıkarma durumunda elde edilmesi zor olan gerçek bir güvenlik çipindeki secret'ları kullanmak gerekir. Güvenliği daha da artırmak istenirse ARM TrustZone ile bootloader, şifre çözme ve imaj imzalama gibi hassas işler izole edilebilir. Dosya sisteminin kolayca dump edilebilmesi, SpaceX'in pratikte etkili koruma mekanizmaları kullanmadığını gösteriyor. Sadece bootloader korunuyor, geri kalan her şey açıkta.
  • Bu ekipmanın roketlerle aynı codebase'i kullanıp kullanmadığı merak ediliyor; bu fikir ilginç bulunuyor.
    • Bana daha da havalı gelen ihtimal, uydularla aynı codebase'i ya da en azından bir uydu simülatörünü paylaşması olurdu. Sonuçta çeşitli telemetry verileri göndermesi gerekiyor.
    • Gerçekte OpenWRT tabanlı.