1 puan yazan GN⁺ 2025-05-11 | 1 yorum | WhatsApp'ta paylaş
  • DARKNAVY, Singapur’da satın aldığı Starlink Standard Actuated antenini sökerek donanım, firmware, güvenlik çipi ve emülasyon olasılıkları üzerine ön analiz yaptı
  • Anten PCB’sinin büyük kısmını STMicroelectronics RF front-end kaplıyor; temel kontrol bölümü ise kartın bir tarafında yoğunlaşmış durumda ve genel IoT cihazlarına benzer bir yapı gösteriyor
  • Rev3 firmware’i, eMMC sökülerek dump edildi; büyük kısmı şifrelenmemiş olduğundan boot chain’in bir bölümü, kernel, dosya sisteminin bazı kısımları ve runtime yapılandırması incelenebildi
  • Çıkarılan yazılımda kullanıcı terminalinin yanı sıra uydu ve yer gateway’lerine ait gibi görünen işlevler de yer alıyor; başlangıçta cihaz türünü donanım çevre birimleri üzerinden belirleyen bir yapıya sahip olduğu görülüyor
  • Ethernet Data Recorder, uydu telemetrisiyle ilişkili paketleri kaydedip donanım anahtarıyla şifreliyor; ancak UTA’da 41 SSH açık anahtarı otomatik kaydediliyor ve yerel ağda 22 numaralı port her zaman açık

Starlink kullanıcı terminali ve analiz kapsamı

  • Starlink, SpaceX’in alçak Dünya yörüngesi uydu interneti hizmetidir; kullanıcılar kullanıcı terminali üzerinden Dünya’ya yakın yörüngedeki uydulara bağlanır ve yer gateway’leri üzerinden internete erişir
  • Yeni nesil uydulara kademeli olarak lazer linkleri ekleniyor; böylece bazı uydular birbirleriyle doğrudan iletişim kurabiliyor
    • Yer istasyonlarına bağımlılığı azaltır, iletim verimliliğini artırır ve küresel kapsama alanını iyileştirir
    • Yerel yer istasyonu bulunmayan Ukrayna savaş sahasında da Starlink kullanıcı terminalleri, uydular arası linkler üzerinden komşu ülkelerdeki gateway’lere dolaylı olarak bağlanabilir
  • DARKNAVY’nin incelemesi, Starlink kullanıcı terminalinin tamamına değil, anten bileşeni olan User Terminal Antenna, UTA üzerine odaklanıyor
    • Hedef cihaz, Singapur’da satın alınan Starlink Standard Actuated
    • Rev3 veya GenV2 olarak da adlandırılıyor

Donanım söküm sonuçları

  • Tam bir Starlink kullanıcı terminali iki parçadan oluşur: router ve anten
  • Sökülen UTA’nın PCB’si dış kasayla neredeyse aynı boyuttaydı
    • Kartın büyük kısmını STMicroelectronics tarafından üretilen RF front-end çipleri kaplıyor
    • Temel kontrol bileşenleri ağırlıklı olarak PCB’nin bir tarafında toplanmış
  • RF anteni dışında UTA’nın temel bölgesinin genel tasarımı, tipik bir IoT cihazına oldukça benziyor
  • Ana SoC, ST’nin SpaceX için özel ürettiği quad-core Cortex-A53
    • Bu çipin donanımı ve datasheet’i şu anda gizli ve kamuya açık değil
  • Black Hat USA 2022’de KU Leuven’den Dr. Lennert Wouters, 1. nesil Starlink anteni GenV1’e fault injection saldırısı uygulayarak cihazın root shell’ini elde ettiğini gösterdi
    • SpaceX daha sonra firmware güncellemesiyle PCB’nin UART debug arayüzünü devre dışı bırakarak fault attack direncini artırdı
    • Wouters yaklaşımını geliştirerek tekrar sisteme girmeyi başardı

Firmware çıkarma ve yazılım yapısı

  • DARKNAVY, UTA’yı daha derinlemesine analiz etmek için eMMC çipinden firmware’i doğrudan dump etti
    • Rev3 kartta belirgin eMMC debug pinleri yoktu
    • eMMC çipinin PCB’den sökülüp bir programlayıcıyla okunması gerekti
  • Çıkarılan firmware’in büyük kısmı şifrelenmemiş durumdaydı
    • BootROM hariç boot chain
    • Kernel
    • Dosya sisteminin şifrelenmemiş alanları
  • Kernel başladıktan sonra runtime ortamının büyük kısmı eMMC’den okunup /sx/local/runtime dizinine açılıyor
  • Runtime yapısında bin, Starlink yazılım stack’i için gerekli çalıştırılabilir dosyaları içeriyor; dat yapılandırma dosyalarını saklıyor; revision_info ise mevcut yazılım ve donanım sürümlerini kaydediyor
  • Harici kullanıcı iletişimini işleyen user_terminal_frontend Go ile yazılmış; diğer programların çoğu sembolsüz, statik derlenmiş C++ yürütülebilir dosyaları
  • Önceki araştırmalara dayanan ilk analizde ağ stack mimarisi bir ölçüde DPDK’ye benziyor
    • Ağırlıklı olarak kullanıcı alanındaki C++ programları, kernel’i baypas ederek ağ paketlerini işliyor
    • Linux kernel’in temel donanım sürücüleri ve süreç yönetimi sağlama rolü daha büyük
  • UTA’dan çıkarılan temel yazılımda, uyduya veya yer gateway’lerine ait gibi görünen işlevler de bulunuyor
    • İlk reverse engineering’e göre sistem, başlangıç sırasında cihaz türünü donanım çevre birimlerine göre belirliyor
    • Ardından bu cihaz türüne uygun mantığı yüklüyor ve çalıştırıyor

QEMU tabanlı emülasyon

  • DARKNAVY, UTA’yı sürekli analiz etmeyi kolaylaştırmak için Rev3 firmware’i için QEMU tabanlı bir emülasyon ortamı kurdu
  • Bu ortamda harici entity’lerle etkileşime giren bazı yazılımları çalıştırıp debug etmeyi başardı
    • httpd
    • WebSocket
    • gRPC hizmeti

STSAFE-A110 güvenlik çipi

  • UTA’da ana SoC’ye ek olarak özel bir güvenlik çipi olan STSAFE-A110 bulunuyor
    • Bu çip CC EAL5+ güvenlik derecesi iddia ediyor
    • Özel SoC’nin aksine, NDA kapsamında yasal olarak satın alınabiliyor
  • UTA firmware’inde stsafe_cli adlı kullanıcı alanı programı, bu çiple etkileşimi yönetiyor
  • Reverse engineering sonucunda STSAFE’in başlıca şu işlevleri sağladığı görülüyor
    • Her cihazın benzersiz tanımlayıcısı, UUID
    • Uydu iletişimi kimlik doğrulamasında kullanıldığı tahmin edilen açık anahtar sertifikası stsafe_leaf.pem yönetimi
    • Kullanıcı veri aktarımı için simetrik şifreleme anahtarlarının türetilmesi
  • Bu çip, SoC’nin secure boot mekanizmasından bağımsız ek bir root of trust görevi görüyor ve modern gömülü güvenlik tasarımı yaklaşımıyla örtüşüyor

Ethernet Data Recorder ve SSH anahtarları

  • Analiz sırasında Ethernet Data Recorder adlı bir program bulundu; yalnızca adı ve işleviyle bakıldığında kullanıcı verisi yakalayan bir backdoor’dan şüphelenilebilir
  • Ayrıntılı inceleme sonucunda bu programın pcap_filter benzeri bir mekanizmayla belirli ağ paketlerini kaydettiği görüldü
    • Yakalama kuralı örnekleri udp and dst port 10017 koşulunu ve belirli multicast hedef host’larını içeriyor
    • Firmware içindeki diğer ipuçlarına göre bu paketler uydu telemetrisi ile ilişkili
  • Yakalanan tüm trafik, SoC’ye fuse edilmiş donanım anahtarı kullanılarak şifreleniyor
  • Şu anda eldeki bilgilerle bu işlevin kullanıcı gizliliği verileri topladığını söylemek zor
  • Cihaz başlatılırken sistem kendisini kullanıcı terminali olarak tanımlarsa, init script’i 41 SSH açık anahtarını otomatik olarak /root/.ssh/authorized_keys içine yazıyor
    • UTA’nın 22 numaralı portu yerel ağa her zaman açık
    • Tüketici ürününde bu kadar çok bilinmeyen login anahtarının bulunması dikkat çekici

Uydu internet sistemlerinin güvenlik bağlamı

  • Uydu teknolojisi gelişmeye ve çeşitli endüstrilerde uygulanmaya devam ettikçe, Starlink ve diğer uydu internet sistemlerinin her bir bileşeni gelecekte saldırı ve savunma operasyonlarının önemli bir alanı haline gelebilir
  • Uzay güvenliğinde geliştiriciler ve hacker’lar yalnızca dijital alanla değil, uzay fiziğinin kısıtlarıyla da mücadele etmek zorundadır
    • Tek bir hatalı işlem, hedefle bağlantının kalıcı olarak kaybedilmesine yol açabilir

Kaynaklar

1 yorum

 
GN⁺ 2025-05-11
Hacker News yorumları
  • Başlatma sırasında kullanıcı terminali olarak tanımlanırsa /root/.ssh/authorized_keys içine otomatik olarak 41 SSH açık anahtarı ekliyormuş; “benim” kullanıcı terminalime root erişimi olmayan kişinin kim olduğunu daha çok merak ettim

    • Muhtemelen kullanıcının kendisidir
      Biraz daha ciddi bakarsak, ISS'nin verdiği yönlendiricide uzaktan yönetim sistemi bulunmasından çok da farklı mı, emin değilim. SpaceX kullanıcı terminaline doğrudan erişemese bile, trafiği uydudan ya da yer istasyonundan yakalayabilir
    • Son dönemde özel devlet işleriyle bağlantılı kişilerle bu anahtarlardan bazıları arasında ilişki kurmak için en uygun kişinin kim olacağını merak ediyorum. Epey iyi sızıntılar da olmuştu
    • 41 adet olması ille de endişe edilecek bir şey olmayabilir. 41 bölgedeki sunucu örneklerinin her birinin kendi anahtarı olabilir; Starlink küresel bir hizmet olduğundan bu doğal
      Asıl 41 örnek tek bir anahtarı paylaşıyor olsaydı, bu daha kaygı verici olurdu
    • Tek bir bireysel kullanıcı olarak benim authorized_keys dosyamda bile 25 satır var. Her dizüstü için farklı YubiKey, iPad ve iPhone anahtarları, Mac'in Secure Enclave anahtarı var
      Starlink'te de sistem yöneticileri muhtemelen 1-2 kişiden fazladır; bu yüzden 100 civarı açık anahtar bile makul görünür
    • Bu tercihi gerçekten anlamak zor. Şu anki iş yerimde geliştirici SSH anahtarlarını yalnızca üzerinde DEV veya QA firmware'i olan cihazlara dağıtıyoruz; üretim imajları imzalı ve SSH tamamen kapalı
      Üretim cihazlarındaki mühendislik sorunlarını teşhis etmek için ayrı bir uzaktan erişim yazılımı var ve REPL açılabiliyor, ama erişim denetimi ve DevOps onayıyla sınırlandırılmış durumda
  • Benzer bir gönderinin önceki tartışması: SpaceX Starlink Kullanıcı Terminalinin Parçalarına Ayrılması https://news.ycombinator.com/item?id=25277171 (2 Aralık 2020 — 158 puan, 138 yorum)

  • 41 açık anahtarı koyarsanız, muhtemelen hangi geliştiricilerin kullandığını tespit edebilirsiniz

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

  • Tüm paketlerin kullanıcı alanında işlenmesi şaşırtıcı
    100 baytlık UDP paketleriyle 1Gbps trafik işliyorsanız saniyede 1 milyon paket işlemeniz gerekir. 1GHz CPU'da paket başına yalnızca 1000 çevrim kalır
    Mümkün ama mühendisler assembly'yi elle yazmayı ve her tür arama tablosu tekniğini düşünmeyi sevmiyorsa kolay değil

    • Genelde ilk paketler yazılım tarafından işlenir; uç nokta kurulduktan sonra sonraki akış donanıma devredilir. Belirli desenler her zaman yazılımda da işlenebilir
      Yazılım yamalanmış bir kernel de olabilir, XDP tarzı kernel bypass da olabilir. Intel Puma kablo modem yönlendirici/ağ geçitlerinde DPDK ya da benzer şeylerle sınırlı ölçüde uğraşmış olmama dayalı bir tahmin
    • İletim işlemede DPDK tarzı yaklaşım, tampon kopyalamayı azalttığı için daha hızlı olabilir
      Starlink yaklaşık 25-200Mbps ve ortalama paketler de 7-8 kat daha büyük; yani en fazla saniyede yaklaşık 36.000 paket eder, 1GHz'de bile oldukça başa çıkılabilir bir seviye
    • Bunun kernel'da paket işlemeye göre neden daha verimsiz olması gerektiğini anlamıyorum. Donanım kuyruklarını kullanıcı alanına eşleyen yöntemler var; yazıda da sistemin DPDK benzeri bir yapı olduğu söyleniyor
      O noktada polling kodunun kernel içinde olup olmamasının neden önemli olduğunu anlamıyorum
    • 100 bayt mı? Starlink standart 1500 bayt MTU kullanıyor
    • Kullanıcı alanında işlemek bir ekstra memcpy'den kaçınmayı sağladığı için çok daha hızlıdır
  • Başlıktaki yazım hatasını düzeltseler iyi olur. Şu anda “Ternimal” yazıyor

    • Tipik bir kerning (keming) sorunu
  • Böyle bir işe nasıl başlanır merak ediyorum. Tersine mühendislik zor; ekipmanla oynamak da çoğunlukla ya gerçekten pahalı ya da artık geliştirilmeyen eski şeyler üzerinde oluyor diye düşünüyorum. Elbette istisnalar vardır

    • Bir: ürünü satın al. İki: sök. Üç: sızma yöntemini düşün. Dört: gerçekten dene. Beş: boz ve küfret
      Genelde UART olur, ama Starlink terminalinde UART yok gibi; bu kişi onun yerine eMMC bellek çipini sökmüş. Esasen lehimlenmiş bir microSD kart gibi
    • Önce biraz donanım mühendisliği öğrenmek gerekir sanırım. Bileşenlerin ne yaptığını ve nasıl ele alınacağını bilmiyorsanız tersine mühendislik zordur
  • “DARKNAVY built a basic QEMU-based emulation environment for the Rev3 firmware” deniyor; GPS gibi harici cihazlara bağlanan firmware'i emüle etmek için kaynaklar ya da hazır çözümler var mı merak ediyorum

    • https://android.googlesource.com/platform/external/qemu/+/2d...
      Android Emulator, QEMU emülatörünün downstream bir türevidir; Android cihazların önyüklemesini desteklemeyi ekler ve yaygın Android donanımlarını (OpenGL, GPS, GSM, sensörler) ve GUI arayüzünü emüle eder. Android Emulator, QEMU'yu çeşitli şekillerde genişletir
  • Bir üründe firmware'i tersine mühendisliğe karşı korumak istiyorsanız nasıl korumalısınız, ilgimi çekiyor. SpaceX'in kullandığı teknikleri anlatan bir kaynak var mı?

    • İlk adım şifrelenmiş firmware gibi bir şey olurdu; ama SpaceX hiçbir şey yapmıyor ya da sonradan tepki veriyor gibi. Birileri o pinleri kullanan saldırıyı yayımlayana kadar debug pinleri de vardı
    • En azından rootfs, güvenli bir öğeden çıkarılması zor bir gizli değerle şifrelenmeli. Bir adım daha ileri gidilirse bootloader, şifre çözme ve imaj imzalama gibi hassas işleri gizlemek için ARM'ın TrustZone'u gibi bir şey kullanılabilir
      Dosya sisteminin doğrudan dump edilebilmiş olmasına bakılırsa, yazıda geçen bootloader dışında SpaceX pek bir koruma uygulamamış gibi görünüyor
    • Firmware'i kötü olan çok sayıda iyi ürün kullanmış biri olarak, güçlü, gerçekçi ve yeterince incelenmiş bir gerekçe yoksa lütfen bunu yapmayın derim
      Kaynakları herkesin yararına olacak ve ürünü daha iyi hale getirecek şeylere harcamak bence daha iyi. İleri düzey kullanıcılar için ürünü değiştirebilmenin teorik olasılığı, hatta üreticinin aklına bile gelmemiş şekillerde değiştirebilme olasılığı büyük bir avantaj olabilir
      Teknik bir son kullanıcı olarak bana böyle görünüyor. Lambaları, kedi mama makinelerini ve artık kürek makinelerini bile düzgün kullanabilmek için cihazları hacklemek zorunda kalmaktan gerçekten yoruldum ve biraz moralim bozuluyor
    • Linux kullanıyorsa bu muhtemelen GPL ihlaline yol açabilir
  • Bu, roketlerle paylaşılan bir kod tabanına dayanıyorsa havalı olurdu, değil mi?

    • Daha havalı söylemek gerekirse, uydularla paylaşılan bir kod tabanı olabilir. Ya da uydu simülatörü olabilir; her hâlükârda telemetri göndermesi gereken bir şey
    • Hayır, OpenWRT tabanlı