1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • 2021 model Honda Civic head unit'i, USB güncelleme yolunda herkese açık AOSP test anahtarıyla imzalanmış güncellemeleri kabul edebiliyor; bu da fiziksel erişimi olan bir saldırganın keyfi kod çalıştırmasına olanak tanıyor
  • Honda'nın güncellemeleri Android recovery üzerinden uygulanıyor ve recovery ikilisi değiştirilmiş olsa da verify_file imza doğrulama mantığı varsayılan AOSP ile aynı
  • Herkese açık AOSP test anahtarıyla imzalayıp USB sürücüsünü uygun biçimde hazırlarsanız, su ve setuid olmadan da istediğiniz kodu kurabiliyorsunuz; buna EvilValet saldırısı deniyor
  • Yeni araç ota-builder, head unit'in kabul ettiği güncelleme dosyalarını hazırlamayı kolaylaştırıyor; apk-rebuilder ise güncelleme dosyalarını tersine mühendislik için gerekli çıktı ağacına dönüştürüyor
  • Proje inceleme çalışmalarının çoğunu tamamladı, ancak depo terk edilmiş değil; sürüm bilgisi, toolchain, özel temalar ve AIDL eşleme iyileştirmeleri için katkı gerekiyor

Proje güncellemesinin arka planı

  • 3 yıl önce 2021 model Honda Civic'in head unit'ini anlamak ve tersine mühendisliğini yapmak için ilk çalışmalar yayımlanmıştı; bu güncelleme ise o zamandan beri kaydedilen ilerlemeyi özetliyor
  • İlk tepkiler oldukça cesaret vericiydi ve en büyük ilerleme, güncelleme sürecini çözümleme sırasında geldi

Krallığın anahtarları

  • Honda, USB üzerinden head unit güncellemesini destekliyor ve sonuçta USB sürücüsündeki imzalı AOSP güncelleme dosyası Android recovery aracılığıyla hazırlanıp uygulanıyor
  • Honda'ya özgü çeşitli kontroller var, ancak res/keys içinde herkese açık olarak bilinen AOSP test anahtarı kalmış ve değiştirilmiş recovery ikilisindeki verify_file imza mantığı da varsayılan AOSP ile aynı
  • USB sürücüsünü uygun şekilde biçimlendirip herkese açık AOSP test anahtarıyla imzalarsanız, mevcut root erişimi olmadan da head unit'e istediğiniz içeriği kurabilirsiniz
    • su üzerinde setuid ayarlayarak elde edilen klasik root erişimi gerekmiyor
    • Head unit'in elektriği açıksa ve saldırgan en öndeki USB portuna fiziksel olarak erişebiliyorsa, güncelleme yolu üzerinden head unit'te keyfi kod çalıştırmak mümkün
  • Bu saldırı, otel odasına fiziksel erişim gerektiren evil maid attack'e benziyor; ancak araç kabinine erişim gerektiği için buna EvilValet adı veriliyor
    • Örnek senaryoda oteldeki vale görevlisi USB ile güncellemeyi kuruyor ve araç geri verildiğinde sürücü, head unit üzerinde değişiklik yapıldığını fark etmiyor
  • Bu yazı teknik ayrıntı dokümanı değil; daha fazla ayrıntı için Display Audio Update Files belgesine bakılabilir
  • Yeni araç ota-builder, head unit'in kabul ettiği güncelleme dosyalarını kolayca hazırlamayı sağlıyor
    • Henüz erken aşamada olsa da, örneğin setuid ayarlı su ikilisini kuran bir güncelleme dosyası oluşturmak artık önemsiz hale gelmiş durumda
  • Tüm güncellemelerin herkese açık AOSP test anahtarıyla imzalandığını düşünmek için güçlü nedenler var, ancak mümkün olan tüm resmi güncelleme dosyalarına ve tüm head unit varyantlarının dosya sistemlerine erişilmiş değil
    • İncelenen head unit'te res/keys içinde AOSP test anahtarı vardı, ancak daha önce HondaHack kurulmuş olduğundan anahtarın keystore'a enjekte edilmiş olma ihtimali de bulunuyor
    • Herkese açık EU yazılım güncelleme dosyası MRC_EU_SW_v12_4.zip, test anahtarıyla imzalanmış durumda ve bu dosya herkese açık bir forumdan indirilmiş, sonrasında değiştirilmemiş
    • Tüm güncellemelerin AOSP test anahtarıyla imzalanmış olma ihtimali çok yüksek, ancak bu hipotezi destekleyecek ya da çürütecek katkılara ihtiyaç var

Araç geliştirme

  • Güncelleme sürecinin dışında en faydalı çalışma apk-rebuilder geliştirmek oldu
  • apk-rebuilder, internetten edinilen Honda Civic güncelleme dosyalarını girdi olarak alıyor ve tersine mühendislerin normalde elle yapmak zorunda kalacağı işleri otomatikleştiren temiz bir çıktı dosya ağacı üretiyor
    • Kaynak çözümleme yapıyor
    • .smali kodunu yeniden yapılandırıyor
    • APK dosyalarını yeniden paketliyor
    • Ramdisk çıkarımı yapıyor
    • Ve başka işler de yapıyor
  • Gerçek Honda kaynak kodu yayımlanamadığı için apk-rebuilder, herkese açık deponun barındırmadığı güncelleme dosyalarını girdi olarak alıp Honda .smali kodu, görsel varlıklar ve benzeri çıktıları üreten bir işlev görüyor
  • Üretilen çıktılar açık bir dizin yapısını izliyor ve hassas dosyaların kendisini yüklemeden belgelerde bunlara atıf yapılmasını mümkün kılıyor

Kalan işler ve katkı çağrısı

  • Bilinen sürümler

    • Güncelleme süreci savunmasız ve büyük ölçüde sürüm numarasına bağlı
    • Sürüm numarası spoof edilebildiği için imzasız kod çalıştırma yeteneğini sınırlamıyor
    • Güncelleme dosyası oluşturmak için head unit'in beklediği sürümü bilmek gerekiyor
    • Kullanılan build ile uyuşmayan head unit yazılım değişiklikleri beklenmedik davranışlara ve recovery loop'a yol açabiliyor
      1. nesil Honda Civic kullanan ve teknik bilgiye sahip kullanıcılar, depodaki Known Versions, Display Audio Software bölümüne katkı sağlayabilir
    • Özellikle cesur kullanıcılar ota-builder kodunu okuyup güncelleme flash etmeyi deneyebilir, ancak head unit referans cihazdan farklıysa recovery loop'a girebilir ve cihaz soft-brick olabilir
  • Toolchain

    • Yerel makinede deneysel ve hâlâ geliştirilmekte olan bir toolchain bulunuyor
    • Bu toolchain, aday .c kodunu alıp özgün vendor ikilisiyle aynı derleyici sürümü ve build bayraklarıyla ARMv7 için derliyor
    • Güncelleme sürecini anlama çalışmasında bu toolchain kritik öneme sahipti
    • Şu anki hali yoğun biçimde Docker kullanıyor, ancak dağınık ve belirli bir iş akışına fazlasıyla uyarlanmış durumda; daha temiz bir uygulamanın yayımlanması isteniyor
  • Özel temalar

    • apk-renderer vibe-coding yaklaşımıyla geliştirilirken özel temalar kısmen incelendi
    • Özel temalar Mitsubishi'nin AOSP framework fork'u içinde yer alıyor ve head unit uygulamaları sabit kodlanmış kaynak ID'leri bekleyecek şekilde küçültüldüğünden dağıtımın zor olması muhtemel
    • Özel tema dağıtmak için vendor framework'ünü cerrahi hassasiyetle değiştirmek ve bunu otomatikleştiren araçlar yazmak büyük olasılıkla gerekecek
    • Bu iş basit değil ve harcanan çabaya değmeyebilir, ancak katkı sunmak isteyenler memnuniyetle karşılanıyor
  • aidl-rebuilder iyileştirmeleri

    • .smali dosyalarını ayrıştırarak head unit'teki tüm AIDL arayüzlerini üretip eşleyen bir araç üzerinde çalışılmaya başlandı
    • Araç çalışıyor, ancak doğruluğu henüz yeterince gözden geçirilemedi
    • Bu çalışma, sanal hız göstergesi gibi özel uygulamaların önünü açıyor

Dokümantasyon ve LLM üzerine düşünceler

  • Referans belgelerden ziyade araçlaştırmaya daha fazla ağırlık veriliyor
  • Güvenilir ve belirleyici araçlar, head unit kodunu daha anlaşılır biçimlere dönüştürürse kullanıcılar bu yapıları LLM ile sorgulayarak belirli sorulara yanıt alabilir
  • Head unit kodu gerçeğin kaynağı olduğu için, gerçek koddan sapabilecek referans belgeleri sürdürme yükü azaltılabilir
  • ADB ile head unit'e bağlanmaya yönelik kullanıcı rehberleri yine de faydalı
  • LLM'in doğrudan Java kodunu kullanabildiği bir durumda, Java kodunun davranışını ayrıca belgelerde tutmak bakım yükü yaratıyor

Sonuç

  • Head unit hakkında hedeflenen inceleme çalışmalarının büyük kısmı tamamlandı
  • Üzerinde çalışılmaya devam edilebilecek bir proje olsa da, bundan sonra başka projelere geçilmesi muhtemel
  • Depo terk edilmiş durumda değil ve PR'lar her zaman memnuniyetle karşılanıyor

1 yorum

 
GN⁺ 3 시간 전
Hacker News görüşleri
  • 10. nesil Honda Civic güncellemeleri Honda tarafından özel formatlı bir USB sürücüyle dağıtılıyor; pratikte bu, Honda'nın yalnızca sürüm kontrolü eklediği, Android 4.2.2rc1 döneminden kalma bir kurtarma paketi
    Bu sürüm kontrolü kandırılabiliyor ve paket, herkese açık AOSP test anahtarları ile imzalandığı için ön USB portuna fiziksel erişim varsa rastgele bir paket imzalanıp flash'lanabiliyor ve head unit üzerinde rastgele kod çalıştırılabiliyor
    root/su gerekmiyor; bu işlem 2021 Civic üzerinde baştan sona denenmiş ve resmi AB güncelleme dosyalarının da ayrıca AOSP test anahtarı imzası kullandığı doğrulanmış
    • AOSP, Android Open Source Project'in kısaltmasıdır
    • Aynı model yıllarındaki Acura head unit sistemleri de Android 4.x tabanlı olduğundan onları da analiz etmeye çalışmışlar, ancak güncelleme dosyalarını bulma aşamasında takılmışlar; bu dosyaların nasıl elde edildiğini merak ediyorlar
    • Diğer araçların infotainment sistemlerinin de epey bir kısmı AOSP tabanlı. Hyundai güncellemeleri indirildiğinde de aslında Android imajı çıktığı hatırlanıyor
  • Yollardaki araçların çoğunda infotainment ve araç içi elektronik güvenliği oldukça kötü; günümüz araçlarındaki mikrofonlar, kameralar, GNSS alıcıları, Wi‑Fi ve Bluetooth yüzünden bunlar giderek mobil gözetim platformlarına dönüşüyor
    Avustralya hükümetinin Mart 2026 tarihli Information Security Manual belgesine, devlet cihazlarının araç infotainment sistemlerine bağlanmaması ve bağlantılı araçların içinde ya da yakınında hassas belgelerin görüntülenmemesi ve hassas konuşmalar yapılmaması yönünde bir kontrol eklendi
    https://www.cyber.gov.au/business-government/asds-cyber-secu...
    • NC, hassasiyet sınıflandırmasındaki en düşük seviye değil mi?
    • Bu bana makul geliyor. Sonuçta bu bir araba radyosu; çekirdek sistem değil
      Bu tür saldırılara karşı savunmasız olabilecek kişilerin işlerini yürütmek için ayrı prosedürleri ve güvenilir ekipmanları vardır; ABD'deki polis kurumlarında da OnStar çıktıktan sonra kiralık araçlar için benzer kurallar vardı
      Sıradan insanlar için risk oluşturan telematik verilerin büyük kısmı zaten satılıyor
  • Bir yandan günlük hayattaki çoğu cihazda giderek azalan donanım sahipliğine karşı mücadele edilirken, daha açık bir cihaz çıkınca bu kez de ona saldırılıyor gibi bir hava var
    Teknolojide tehdit modeli her zaman, saldırganın cihaza fiziksel erişimi ve yeterli zamanı varsa oyunun bittiği varsayımına dayanıyordu
    • Ama bunlar halkın değişiklik yapabilmesi için açık değil ki, öyle değil mi? Üretici bir yön seçmeli. Ya tamamen açıp buna ihtiyacı olanların sistemi kendilerinin sağlamlaştırmasına ve tavizleri anlamasına izin vermeli ya da tamamen kapatıp güvenli hâle getirmeli
      Şu anki gibi, araç sürüş boyunca kullanıcıyı izleyen bir mahremiyet ihlali cihazı olup aynı zamanda biraz ilgili herkesin o verilere ulaşabildiği güvensiz bir cihaz olması en kötü ara durum
    • Benzer bir durum yakın tarihli BitLocker açığında da görülebilir. Artık kilidi açılabilen depolama donanımları yüzünden yeni vakaların çözülüp çözülmeyeceğini ya da insanların hapse girip girmeyeceğini merak ediyorum
      El konulma ihtimali varsa verileri yerelde tutmamak daha iyidir; yasalara bağlı olarak kilidi açmaya zorlanabilirsiniz ama ABD'de parola vermeyi reddetmek güvenli olmalı
      Teknik açıdan Google ve Apple fiziksel güvenliği ciddi biçimde iyileştirdi; GrapheneOS ise bunun üzerine saldırı yüzeyini azaltıp iyi özellikler ekleyerek bir adım daha ileri gidiyor. Özellikle otomatik yeniden başlatma özelliğinin yaygınlaşmasıyla telefonlarda “fiziksel erişim varsa oyun biter” sonucunu yeniden düşünmek mümkün
      https://grapheneos.org/features#auto-reboot
      https://discuss.grapheneos.org/d/35728-demystifying-phone-un...
    • Bu, yerel cihaz güvenliğinden vazgeçilebileceği anlamına gelmiyor. Fiziksel cihazlarda da oturum açma güvenliği vardır ve muhtemelen tam disk şifrelemesi de kullanılıyordur
      Yeterince gelişmiş ve ısrarcı bir saldırganın fiziksel erişimle her cihazı ele geçirebilmesi, bunun herkes için kolaylaştırılabileceği anlamına gelmez
  • Honda burada diğer otomobil üreticilerinden çok daha makul görünüyor
    Araca fiziksel erişimi olan kötü niyetli bir vale, head unit'i hack'lemekle zaman kaybetmez; onun yerine aracın bir yerine dinleme cihazı saklar
    Ayrıca bir Civic sürücüsünün istihbarat kurumlarının hedefi olacağını da sanmıyorum
    • Şaka mı bilmiyorum ama bu pek mantıklı değil. Honda'nın bunu bilerek böyle tasarlamış olması da pek olası görünmüyor
      Head unit'te genelde eşitlemeden kalan kişi listesi SQLite veritabanı, konum geçmişi, telemetri veya log dosyalarında kalmış geçmiş veriler gibi geçmiş bilgileri bulunur
      Ayrıca head unit çoğu zaman aracın iç veri yollarına erişebilir ve Gateway modülü gibi güvenlik duvarları olsa bile bunlar genelde zayıftır. Honda'da farlarla aynı CAN veri yolu üzerinden kriptografik bilgi olmadan kilit açma ve çalıştırma izni verilebildiği meşhur örnekte olduğu gibi, infotainment basit bir takip cihazından çok daha güçlü olabilir
      Üstelik head unit'e kod yerleştirmek ya da mevcut verileri dışarı çıkarmak, ayrı bir takip cihazı takmaktan çok daha az iz bırakır
    • İroniyse sorun değil ama değilse, neden bir Civic sürücüsünün istihbarat hedefi olamayacağını anlamıyorum
      Civic en yaygın araçlardan biri, bu yüzden kalabalık içinde kaybolmak için iyi bir seçenek; ayrıca bilim insanları, mühendisler, gazeteciler ve avukatlar gibi “sıradan görünen” insanlar da Honda Civic kullanabilir
      Araca gizlenmiş bir dinleme cihazı bulunabilir, ama doğrudan araç firmware'ine yerleştirilmiş bir şeyin tespit edilme olasılığı daha düşüktür
    • Gizli bilgilere erişimi olan sıkıcı bir bilim insanının ya da mühendisin sıradan bir Civic ile işe gitmeyeceğini mi düşünüyorsun?
  • Bir ürün yöneticisinin, firmware'in şirket içi imzalama servisiyle imzalandığını gururla anlattığını duymuştum. Bu kendi başına iyi
    Ama sorulan asıl soru, firmware'in şirket içi zorunluluklar gereği imzalanıp imzalanmadığıydı; firmware güncelleme sürecinin imzayı doğrulayıp doğrulamadığı değil, ve gerçekte hiçbir doğrulama yapılmıyordu
    • Benzer bir “çözüm” görmüştüm. İmza algoritması doğrudan güncelleme paketinin içinden çalıştırılıyordu

“Yoksa imza algoritmasını nasıl güncelleyeceğiz?” gibiydi ve en kötü yanı, bunun bir zamanlar doğru şekilde yapılmış olmasıydı
Güvenlik ekibi “post-kuantum güvenli” imzalar isteyince imzalama yöntemi değişti ve bu sırada bir regresyon hatası olarak içeri girdi

  • Adı BobbyTables2 ise, e-posta PGP imzalarını doğrulamanın doğru yöntemini ilk anda aklına getireceğini sanmıştım
  • Güvenlik ile cihazları uzun vadede kullanışlı tutmak arasında bir çizgi olduğunu düşünüyorum. Kötü niyetli hizmetli tarzı bir saldırıyla araca dinleme amaçlı kötü amaçlı yazılım yükleme tehdidi düşük görünüyor
    Ama bu arabalar 10 yılı aşkın süre geçip kurcalamaya hevesli insanların eline geçtiğinde, yazılımı açıp özelleştirebilme yeteneği harika bir avantaj olacaktır
    Faydalı modifikasyonlar üreten bir topluluk oluşsa ve cihazların ömrü uzasa güzel olur. Son kullanıcıların orijinal head unit’i söküp, güvenlik ve mühendislik kalitesi Honda’nın cihazından daha kötü olma ihtimali yüksek Aliexpress tarzı bir “Android tablet” ünite takmasından çok daha iyi görünüyor
  • Bu, sistemi araç sahibine karşı bile kilitlemeyi akıllarından geçirmediklerine dair iyi bir işaret de olabilir
    • Arabaya kısa süreliğine giren herhangi birine root erişimi vermek iyi değil. Ofiste sürekli açık duran ve shell’i açık bırakılmış bir dizüstü bilgisayar bırakmaya benziyor
      Güncellemelerin hepsine varsayılan olarak güvenmeyecekseniz, gerçek sahibin güncellemeleri onaylayabileceği bir mekanizma sunmaları gerekirdi
    • Hacker dostu olmaktan ziyade bunun yetersizliğin sonucu olma ihtimali daha yüksek
      Gerçekten kasıtlı olsaydı, özel anahtar gerektiren kilidi açılabilir bir bootloader ya da erişmesi zor bir anahtar gibi bir yöntem olurdu
  • Arabaları tekerlekli dev bilgisayarlara dönüştürmek kötü bir fikir olmuş olabilir. Daha fazla araştırma gerekiyor
  • Kalan güvenliğin ne kadar iyi olduğunu merak ediyorum. Head unit muhtemelen bir CAN gateway’e bağlıdır; telematik üzerinden çağrılıp çağrılamayacağını ya da CarPlay/Android Auto kötüye kullanılarak eve iletişim kurmasının yeni bir yolunun olup olmadığını merak ediyorum
    • Arabaya fiziksel erişiminiz varsa ve eve iletişim kurmak istiyorsanız, paspasın altına bir GPS takip cihazı koymanızı öneririm
      Yalnızca tek bir Honda Civic neslinde çalışan bir yöntemden daha fazla markada işe yarar ve kurulumu da muhtemelen daha hızlıdır
  • Giderek daha fazla projenin, “iyi tasarlanmış kod LLM’lerle sorgulanabilir” düşüncesiyle kod dokümantasyonunu azalttığını ve bunun yerine işlevsel çalışma prosedürü belgelerine odaklandığını görüyorum
    Bir projenin tüm belgelerinin herhangi bir anda kodla tam güncel olma ihtimali gerçekten çok düşük
    Genel olarak bu yöne katılıyorum, ama önkoşul her şeyden önce kodun iyi tasarlanmış olması
    • Dokümantasyondan ziyade birim testlerini dokümantasyon gibi görmek daha iyi
      Testler amaçlanan kullanım biçimini ve ilginç sınır durumlarını gösterebilir; ayrıca sürekli çalıştırılıp geçtikleri için güncel olduklarını da bilirsiniz
      Daha fazla test eklerken yeterince değer verilmeyen büyük bir avantaj bu
      Geliştiricilerin bir davranış biçimi ya da sınır durumu hakkında soru soracağını düşünüyorsanız, yeniden akıl yürütmeye zorlamak yerine sorunun yanıtını doğrudan kanıtlayabilecek bir testin bulunması buna değer olabilir