Honda Civic’lerin Bilgi Eğlence Sisteminde ‘EvilValet’ Güvenlik Açığına Derinlemesine Bakış
Üç yıl önce Honda Civic’lerin baş ünitelerinin tersine mühendisliği üzerine başlatılan çalışma büyük ilgi görmüştü. Bu makale, projenin en son gelişmeleri hakkında bir güncelleme sunuyor.
Krallığın Anahtarları: USB Üzerinden Kod Yürütme
Projedeki en önemli ilerleme, baş ünitesinin güncelleme sürecinin haritalandırılmasıyla kaydedildi. Honda, baş ünitesini USB aracılığıyla güncelleme imkanı sunuyor. Bu süreç, Honda’ya özgü bazı kontroller içerse de, aslında Android kurtarma modu üzerinden sahnelenen ve uygulanan imzalı bir AOSP güncelleme dosyasını içeriyor. Araştırmacılar, üreticinin genel olarak bilinen AOSP test anahtarını ‘res/keys’ içinde bıraktığını ve ‘recovery’ ikilisini değiştirmelerine rağmen ‘verify_file’ imza mantığının standart AOSP ile eşleştiğini keşfetti.
Bu durum, düzgün formatlanmış bir USB sürücüsü hazırlanıp genel AOSP test anahtarıyla imzalandığı sürece, baş üniteye istenilen her şeyin kurulabileceği anlamına geliyor. Bu, geleneksel root erişimi olmadan (setuid ile ‘su’ya gerek kalmadan) keyfi kod yürütmeyi mümkün kılıyor. Baş ünitesinin gücü olduğu ve bir saldırganın ön USB portuna fiziksel erişimi olduğu sürece, güncelleme yoluyla baş ünitesinde keyfi kod çalıştırma imkanı bulunuyor.
Bu tür bir saldırı, ‘Evil Maid’ saldırısına benzediği için, ancak otel odası yerine aracın kabinine fiziksel erişim gerektirdiği için ‘Evil Valet’ saldırısı olarak adlandırılıyor. Örneğin, bir gazetecinin aracını valeye bırakması durumunda, valet üç harfli bir ajans için çalışıyorsa USB aracılığıyla baş üniteye kötü amaçlı bir güncelleme yükleyebilir. Araç iade edildiğinde, gazeteci baş ünitesinin değiştirildiğini fark etmeyecektir. Bu güvenlik açığına ‘EvilValet’ ismi verildi.
Bu makale teknik bir ayrıntılandırma amacı gütmemektedir; detaylı teknik bilgiler için teknik belgelere başvurulabilir. Ayrıca, baş ünite tarafından kabul edilecek güncelleme dosyalarını kolayca hazırlamaya olanak tanıyan ‘ota-builder’ adlı yeni bir araç da yayınlandı. Bu araç, cihazı root etmek için ‘setuid’ ayarlı bir ‘su’ ikilisini kuran bir güncelleme dosyası oluşturmayı mümkün kılıyor. Araştırmacılar, tüm güncellemelerin genel AOSP test anahtarıyla imzalandığına dair güçlü kanıtlara sahip olduklarını belirtiyor.
Geliştirilen Araçlar: Tersine Mühendislik Sürecini Otomatikleştirmek
Güncelleme sürecinin ötesinde, en faydalı çalışmalar ‘apk-rebuilder’ aracı üzerinde yapıldı. Bu aracın temel görevi, internetten bir Honda Civic güncelleme dosyasını alıp, tersine mühendislerin manuel olarak yapması gereken her şeyi otomatikleştiren temiz bir çıktı dosyası ağacı üretmektir. Bu işlemler şunları içerir:
- Kaynakları çözümleme
- .smali kodunu yeniden oluşturma
- APK dosyalarını yeniden paketleme
- Ramdiski çıkarma
- Ve daha fazlası
Bu araç aynı zamanda, gerçek Honda kaynak kodunun yayınlanamamasını da ele alıyor. Bunun yerine, barındırılmayan bir güncelleme dosyasını alıp Honda .smali kodunu, görsel varlıklarını vb. dışa aktaran bir fonksiyon yayınlanıyor. Ortaya çıkan çıktı, hassas dosyaları doğrudan yüklemeden belgelerde referans alınabilecek net bir dizin yapısını takip ediyor.
Katkı Çağrısı: Projenin Geleceği İçin Yapılacak Çalışmalar
Projede geliştirilmesi arzu edilen birkaç önemli alan bulunuyor:
- Bilinen Sürümler: Güncelleme süreci, sürüm numaralarına büyük ölçüde bağlıdır. Sürüm numaraları taklit edilebilse de, bir güncelleme dosyası oluşturmak için baş ünitesinin beklediği sürüm numaralarını bilmek gereklidir. 10. nesil Honda Civic sahipleri, ‘Bilinen Sürümler, Ekran Ses Yazılımı’ bölümüne katkıda bulunmaya teşvik ediliyor. Güncelleme dosyasını flash’lamak isteyenlerin dikkatli olması ve riskleri kabul etmesi gerekiyor, aksi takdirde cihaz kurtarma döngüsüne girip ‘softbrick’ olabilir.
- Araç Zinciri (Toolchain): Deneysel bir araç zinciri, ARMv7 için .c kodunu derlemek üzere geliştiriliyor. Bu araç zincirinin temiz bir uygulamasının yayınlanması hedefleniyor.
- Özel Temalar: Baş ünitesi uygulamalarının kaynak kimliklerini bekleyecek şekilde küçültülmesi nedeniyle özel temaların uygulanması zorlu bir süreçtir. Mevcut vendor framework’ün cerrahi olarak düzenlenmesi ve bunu otomatikleştirecek bir araç yazılması gerekebilir.
- aidl-rebuilder Gelişimi: .smali dosyalarını ayrıştırıp baş ünitesindeki tüm AIDL arayüzlerini haritalayan bir araç üzerinde çalışılıyor. Bu, sanal hız göstergeleri gibi özel uygulamaların geliştirilmesine kapı açabilir.
Dokümantasyon ve Büyük Dil Modelleri (LLM) Üzerine Düşünceler
Proje, referans dokümantasyondan çok araç geliştirmeye odaklanmıştır. Amaç, baş ünite kodunu daha anlaşılır formatlara dönüştüren güvenilir, deterministik araçlar sunarak, insanların Büyük Dil Modellerini (LLM) bu daha anlaşılır formatları sorgulamak ve özel sorularına yanıt bulmak için kullanabilmeleridir. Bu yaklaşım, baş ünite kodunun kendisi gerçek kaynak olduğundan, gerçek koddan sapabilecek referans belgelerinin sürdürme yükünü ortadan kaldırır.
Sonuç ve Teşekkür
Baş ünite üzerindeki araştırmacı çalışma büyük ölçüde tamamlanmıştır ve proje diğer çalışmalara yönelme eğilimindedir. Ancak, depo terk edilmiş değildir ve Pull Request’ler her zaman açıktır. Tunas ve Hackaday’e önceki çalışmaları ele aldıkları için özel teşekkürler sunulmuştur.

