Güvenlik·3 dk okuma·

Elektrikli Scooter'ı Tersine Mühendislikle İncelemek ve Bellenimi Rust ile Yeniden Yazmak

Paylaş
GüvenlikEdumints Blog

Giriş ve Merak Uyandıran Güvenlik Açığı

Egret GT, 100 km menzili, geniş lastikleri ve hız, sürüş modu, batarya ile kalan menzili gösteren 320x480 LCD gösterge paneliyle konforlu ve üst segment bir elektrikli scooter. Cihazı kurcalama isteği, donanımda fark edilen kritik bir güvenlik açığıyla tetiklendi: Scooter açılırken tuş takımındaki "aşağı" butonuna basılı tutulduğunda cihaz bellenim (firmware) güncelleme moduna giriyordu. Bu menüden çıkıldığında ise PIN kodu girmeye gerek kalmadan doğrudan normal sürüş moduna geçiliyor ve scooter serbestçe kullanılabiliyordu. Bu güvenlik zafiyeti, cihazın donanım ve yazılım katmanlarını derinlemesine inceleme sürecini başlattı.

Mobil Uygulama ve Bluetooth İletişimi

İlk olarak cihazın uzaktan kilit açma, ayar yönetimi ve batarya takibi için kullandığı mobil uygulama incelendi. Uygulamanın Bluetooth işleyicileri analiz edildiğinde şu teknik bulgulara ulaşıldı:

  • Scooter, Bluetooth üzerinden bellenim güncellemesi alabiliyor ve güncellemelerin yüklenebileceği farklı birimler (ekran, kontrolcü, buton paneli) bulunuyor.
  • Her sürüş modunda harcanan süre, cihaz sıcaklığı, motor akımı, batarya voltajı ve şarj geçmişi gibi ekranda veya uygulamada gösterilmeyen birçok telemetri metriği Bluetooth üzerinden iletiliyor.
  • Toplam sürüş süresi, kilometre sayacı (odometer) ve şarj geçmişi gibi veriler üreticiye gönderilerek scooter kimliğiyle eşleştirilip saklanıyor; bu davranış uygulamada açıkça belirtilmiyor.
  • Scooter, mobil uygulama bağlanıp atayana kadar kendi Araç Kimlik Numarasını (VIN) bilmiyor; harici bir Bluetooth hata ayıklama aracıyla bu değer değiştirilerek uygulamanın scooter'ı farklı bir model olarak algılaması sağlanabiliyor.
  • Hız sınırının basit bir yazılımsal kontrolle sınırlanıp sınırlanmadığını görmek amacıyla 45 km/s hız sınırına sahip modelin VIN numarası taklit edildi, ancak hız limiti bu yöntemle değişmedi.

Standart Dışı USB-C ve CAN Bus Keşfi

Bluetooth analizinin ardından gösterge ünitesindeki USB-C portuna odaklanıldı. Üretici bu bağlantı noktasının yalnızca telefon şarjı için olduğunu belirtse de veri pinleri bağlandığında ünitenin USB host veya device olarak davranmadığı görüldü. Bir USB-C breakout kartı ve osiloskop yardımıyla pinler incelendiğinde, iki USB-C pininin standart dışı bir şekilde doğrudan CAN Bus hattı olarak kullanıldığı tespit edildi.

CAN Bus Trafiğini Dinleme (Sniffing)

Bu hattaki trafiği izlemek için ESP32-C6, SN65HVD230 alıcı-verici ve MCP2515 denetleyicisi kullanılarak özel bir donanım aracı geliştirildi. Hazırlanan yazılımla CAN çevre birimleri başlatıldı ve bileşenler arasındaki tüm veri paketleri başarıyla loglandı.

Yazılım Geliştirme ve Öğrenme Çıkarımları

  • Güvenlik Yoluyla Gizlilik Yetersizdir: Standart bir USB-C portunun arkasına CAN Bus gizlemek veya PIN korumasını menü geçişleriyle atlatılabilir bırakmak ciddi güvenlik riskleri doğurur.
  • Gömülü Sistemlerde Rust'ın Gücü: Ekran ve kontrol birimlerinin bellenimini Rust ile yeniden yazmak; C/C++ dillerinde yaygın olan bellek sızıntılarını ve yarış durumlarını (race conditions) derleme aşamasında engelleyerek donanım seviyesinde yüksek bellek güvenliği (memory safety) sağlar.
  • Uçtan Uca IoT Güvenliği: Bir aygıtın güvenliğini temin etmek için Bluetooth arayüzünden fiziksel CAN veriyollarına kadar tüm haberleşme katmanlarının şifrelenmesi ve doğrulanması şarttır.

[Orijinal kaynağa buradan ulaşabilirsiniz.](https://bensimms.moe/reverse-engineering-scooter/)

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →