1 puan yazan GN⁺ 2024-06-30 | 1 yorum | WhatsApp'ta paylaş
  • AirPods firmware'indeki CVE-2024-27867 nedeniyle Bluetooth MAC adresini bilen biri cihaza bağlanarak mikrofonu dinleyebilir veya müzik çalabilir
  • Güvenlik açığı, Apple'ın tescilli protokolü Fast Connect yolunda kimlik doğrulama ve şifreleme durumunun açıkça kontrol edilmemesinden kaynaklanıyor
  • Saldırı için gereken Bluetooth MAC adresi tamamen gizli değildir; eşleştirme modunda veya AirPods aktif durumdayken radyo sinyalleri üzerinden elde edilebilir
  • AirPods kapalı şarj kutusundayken veya AirPods Max Smart Case içindeyken kablosuz işlevler kapandığı için bağlantı kurmak mümkün değildir
  • Apple, AirPods ve bazı Beats modelleri için firmware güncellemeleri yayımladı; ancak iOS·macOS olmadan kullanan Android·Windows·Linux kullanıcıları için güncelleme süreci daha zahmetli olabilir

AirPods firmware güvenlik açığı ve etki kapsamı

  • Apple AirPods firmware'inde CVE-2024-27867 güvenlik açığı bulunuyor
  • Bluetooth MAC adresini bilen biri AirPods'a bağlanarak şu işlemleri yapabilir
    • Mikrofonu dinleme
    • Müzik çalma
    • Başka bağlı cihazlarda çalmakta olan müziği görme ve duraklatma
    • AAP protokolünün izin verdiği bazı işlemleri gerçekleştirme
    • Hatalı biçimlendirilmiş mesajlar göndererek AirPods'u çökertme
  • AirPods zaten telefona bağlı olsa bile saldırgan ek olarak bağlanabilir
    • Ancak saldırgan mikrofonu açarsa müzik çalma durur
  • AirPods kapalı şarj kutusunun içindeyse veya AirPods Max Smart Case içindeyse kablosuz işlevler kapandığından hiçbir bağlantı mümkün değildir

Güvenlik açığının keşfedilme yolu

  • AirPods 3, macOS ve Apple cihazları kombinasyonunda birçok işlevi doğal biçimde çalıştırıyordu; ancak aynı dizüstü bilgisayar Linux ile başlatıldığında telefona ve dizüstüne aynı anda bağlanmıyordu
  • Bu fark nedeniyle sıradan Bluetooth kulaklıklarda olmayan Apple'a özel bir protokol kullanıldığı düşünüldü ve bazı işlevleri Linux'ta yeniden uygulamak için analiz başlatıldı
  • Analiz sırasında Apple'ın Bluetooth çevre birimlerini bağlayan Fast Connect özelliğinde güvenlik açığı bulundu

Fast Connect'in çalışma biçimi

  • Fast Connect, Apple'ın tescilli protokolüdür ve Bluetooth standardındaki ping işlevini yaratıcı biçimde kullanır
  • Amacı, iki Apple cihazı arasındaki bağlantı kurulum süresini yaklaşık 1 saniyeden yaklaşık 0,5 saniyeye düşürmektir
  • Hedef cihazla kimlik doğrulaması yapılmadan önce iki cihaz L2CAP ping mesajları alışverişi yapar
    • Apple, protokol mesajlarını ping payload'unun içine koyar
    • Bu yöntemle Bluetooth standardını ihlal etmeden iki tarafın Fast Connect'i destekleyip desteklemediği kontrol edilir
  • Ardından bağlantı için gereken pazarlık 3 ek gidiş-dönüş mesajıyla yürütülür
  • Toplam gidiş-dönüş mesajı sayısı 4 ile sınırlı kaldığı için, SDP descriptor'larının alınıp verildiği ve kanalların yapılandırıldığı normal Bluetooth bağlantı prosedüründen daha hızlıdır

Kimlik doğrulama kontrolünün eksikliği

  • Sorun, Fast Connect'i uygulayan ayrı kod yolunda kritik bir kontrolün eksik olmasıdır
  • AirPods, bağlantı karşı tarafının gerçekten kimlik doğrulaması yapıp yapmadığını ve şifrelemeyi açıp açmadığını kontrol etmez
  • Normal iOS ve macOS, ilk Fast Connect mesajından sonra kimlik doğrulama ve şifrelemeyi etkinleştirme adımını yürütür
  • Saldırgan bu adımı atlasa bile AirPods Fast Connect prosedürünü sürdürür
  • Fast Connect olmadan normal Bluetooth yöntemiyle AirPods'a bağlanırken kimlik doğrulama adımı örtük olarak dahil edilir; bu yüzden Fast Connect kod yolunda açık kontrolün eksik kalmış olması muhtemeldir

Bluetooth MAC adresi koşulu

  • Saldırganın AirPods'un sabit Bluetooth MAC adresini bilmesi gerekir
  • Bu adres tamamen gizli bir bilgi değildir
    • Bluetooth cihazı eşleştirme modundayken radyo sinyaliyle duyurulur
    • AirPods aktif durumdayken Ubertooth One gibi donanımlarla radyo sinyallerinden kolayca elde edilebilir

Güncellemeler ve Apple kullanmayanların sorunu

  • Apple son birkaç gün içinde bu güvenlik açığını düzelten birden fazla firmware güncellemesi yayımladı
  • Kapsamda AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max ve bazı Beats kulaklıklar yer alıyor
  • Kullanıcılar AirPods firmware'inin güncel olup olmadığını kontrol etmeli
  • AirPods firmware'i otomatik güncellenir, ancak yalnızca iPhone veya MacBook ile birlikte kullanıldığında otomatik güncellenir
  • Android, Windows, Linux kullanıcıları gibi iOS veya macOS cihazı olmadan AirPods kullananların firmware'i kolayca güncellemesi zordur
  • Bu kullanıcılar Apple Store'da firmware güncellemesi alabiliyor gibi görünüyor

Raporlama ve araçlar

  • Bluetooth ile ilgili sorular ve açıklama sürecinde University of Potsdam'dan Jiska Classen yardımcı oldu
  • BlueZ gibi Linux topluluğu araçları bu sorunu bulmak için gerekliydi

1 yorum

 
GN⁺ 2024-06-30
Hacker News yorumları
  • Aynı odadaki iki cihaz elektromanyetik spektrumun çok dar bir kısmını kullansa bile saniyede binlerce mesaj alışverişi yapabiliyor olmalı; buna karşın Bluetooth'ta neden tek bir mesajın mikrosaniyeler yerine yüzlerce milisaniye sürdüğünü merak ediyorum
    Bu süreçte zaman ölçeğini hangi etkenlerin belirlediğini bilmek isterdim
    • Burada kesin konuşamam ama genelde birkaç etkenin birleşimi oluyor: reklam yapan cihazın beacon'ları ne kadar sık gönderdiği, birden fazla reklam kanalı olup olmadığı, geriye dönük uyumluluk için beacon ve handshake'in protokolün desteklediği en yavaş hızda gönderilip gönderilmediği, çevresel gürültü nedeniyle fiziksel katmanda yeniden iletim gerekip gerekmediği gibi şeyler etkili oluyor
      Sonuçta iki tarafın hangi özellikleri desteklediğini doğrulayan ve hangi fiziksel katman protokolü ile iletişim kuracağını belirleyen handshake yapısı zaman alıyor
  • Etkilenen ve aynı çipi kullanan Beats cihazlarının Android'deki Beats uygulamasından gerçekten güncellenebildiğini hatırlıyorum
      1. nesil ve 2. nesil AirPods Pro'yu Android telefonlarla kullandım; Android'de firmware güncellemesi yapmak, sürümü kontrol etmek, mod seçmek, uzun basma davranışını değiştirmek ya da pil seviyesini düzgün görmek için doğru dürüst bir yol yok
        Bazı üçüncü taraf uygulamalar var ama güvenilirlikleri düşük; neyse ki bunların çoğu Mac'te yapılabiliyor, fakat kulakta uyum testi için yine iPhone gerekiyor. Firmware yükseltmesi kullanıcı tarafından kontrol edilemiyor ve durum ya da ilerleme bilgisi de hiç verilmiyor; olabilecek en kafa karıştırıcı biçimde tasarlanmış
        Bir Apple Store destek çalışanı bana bir keresinde “AirPods'u Mac'e bağlı halde açık kutusunun içine koyun, kutuyu da güce bağlayıp yaklaşık 30 dakika bekletin” demişti; ama gerçekte güncelleme sürecinde epey rastgelelik varmış gibi geliyor. Apple Store çalışanları da iPhone dışındaki Apple ürünleri arasındaki entegrasyonu bazen oldukça belirsiz biliyor gibiydi; AirPods'u iPhone olmadan sadece Mac ve Android ile kullandığımı söyleyince iki kez şaşırmışlardı
  • Yazıdaki Apple Support bağlantısı Hindistan sürümü gibi görünüyor; ABD sürümü burada:
    https://support.apple.com/en-us/106340
    ABD sürümünde en güncel firmware sürüm numaraları farklı görünüyor; örneğin AirPods Pro 2. nesil için 6F8 yazarken Hindistan sürümünde 6B34 yazıyor
  • Linux'ta da bu özelliğin nasıl uygulandığına dair ayrıntıları ele alan bir yazı çıkarsa gerçekten çok merak ederim
    Linux implementasyonu hakkında bir devam yazısı bekliyorum
  • AirPods 2'nin firmware'i eski bir sürümde; kullanıcı olarak iOS'ta güncellemeyi açıkça tetikleyemiyorsunuz ve güncellemenin ne zaman gerçekleştiği de gösterilmiyor
    Güncelleme üzerinde daha fazla kontrol olmasını isterdim
    • “AirPods şarj olurken ve Wi‑Fi'ye bağlı bir iPhone, iPad veya Mac'in Bluetooth menzili içindeyken firmware güncellemeleri otomatik olarak iletilir” deniyor
      https://support.apple.com/en-us/106340
    • Mevcut ve gelecekteki AirPods'lara daha fazla özellik eklendikçe, güncellemeyi kendim tetiklemek ya da en azından güncellemenin gerçekleştiğine dair bir bildirim almak isterim
      AirPods kullanıcılarının %95'inden fazlasının firmware güncellemelerinden haberdar olmasına gerek olmaması normal; ama önemseyen kişiler için ne olduğunu kontrol etmenin bir yolu olmalı
      Normalde bu büyük bir sorun değil, fakat AirPods firmware'ini birkaç gün gecikmeli aldığım oldu; ileride anında güncellemenin önemli hale geldiği zamanlar olabilir
    • Daha fazla kontrol istiyorsanız, Apple ürünleri size uygun olmayabilir
    • Bunu tersine mühendislik ile çözmeye zaman ayırmayı denemek isterim. Eğlenceli olabilir
  • Açık tabii ki kötü, ama bunun pratikte ne kadar ciddi olduğunu merak ediyorum. Saldırganın yapabileceği “korkutucu” şey tam olarak ne?
    Eğer mevcut bağlantıyı koparma yöntemiyle çalışıyorsa, kullanıcının haberi olmadan aramaları ya da ses akışını dinlemek zor görünüyor. En kötü senaryo yakın mesafeden MAC adreslerini tarayıp otomatik bağlanarak kulağa gürültü çalmak mı, yoksa bundan daha büyük bir sorun mu var bilmiyorum
    Üst düzey bir ünlü ya da siyasetçi görüntülü görüşmedeyken AirPods'unu kapmak teoride mümkün olabilir, ama hemen fark edilir gibi geliyor; daha kötüsü olup olmadığını merak ediyorum
    • Saldırgan tehlikeli derecede yüksek ses çalabilir, AirPods takılı ama aktif olarak kullanmayan bir kişinin çevresindeki sesleri dinleyebilir ve telefon hizmetini kullanmadan ya da arama kaydı bırakmadan arayan kişi gibi davranabilir
      Ayrıca Bluetooth bağlantısını ele geçirmek oldukça geniş bir saldırı yüzeyi sağladığından, saldırgan başka açıklar da biliyorsa bu durum ek exploit zincirlerine kapı açabilir
    • En kötü durumda biri, çantaya bırakılabilecek bir cihaz yapıp kulaklıktan geçen tüm sesi kaydedebilir. USB sürücü biçiminde bile olabilir
      “Fast Connect” protokolü aynı anda birden fazla cihaza “bağlı” olmayı mümkün kılıyor gibi göründüğünden, kullanıcı bunu fark etmeyebilir. Bir diğer saldırı da, temizlik görevlisi gibi davranıp ofisin çeşitli yerlerine kahve bardağı altlığı biçiminde cihazlar bırakıp yakındaki AirPods'lardan ses toplamak olabilir
      Esas zor kısım fiilen çözülmüş sayılır; küçük bir pil, Bluetooth vericisi ve depolama eklenmiş bir cihazla insanların konuştuğu yerlerin yakınında yüksek kaliteli ses toplanabilir
    • Birçok kişi AirPods'u aktif kullanmasa bile kulağında tutuyor; bu durumda mikrofonu kullanarak yüz yüze konuşmaları dinlemek mümkün olabilir
      Yine de Bluetooth menzili içinde olmak gerektiği için, düz şekilde kulak misafiri olmak muhtemelen daha kolaydır
    • Gerçekçi olarak en kötü tarafı sadece sinir bozucu olması olabilir
      Yama gelmemiş olsaydı biri muhtemelen Flipper Zero için bir AirPods bozma uygulaması yapar ve kamusal alanlarda herkesin AirPods sesini keserek ortalığı rahatsız ederdi
  • Settings > Bluetooth > Your AirPods altında [i] düğmesine basarsanız, AirPods o anda bağlı olmasa bile sürümü görebilirsiniz
    6A326'nın düzeltmeyi içeren sürüm olduğu anlaşılıyor
    https://support.apple.com/en-us/HT214111
    • “AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8” yazıyor; benim cihazım 6F8
      Muhtemelen AirPods Pro 2. nesil için olan sürüm bu
  • Olasılığın düşük olduğunu biliyorum ama umarım bu olay Apple'ı başka işletim sistemlerinde, en azından Android'de AirPods güncellemeleri için bir şekilde destek vermeye iter
  • Manuel güncelleme seçeneği yok. Sadece otomatik güncelleme var ve bu otomatik güncellemenin nasıl tetikleneceği de belirsiz
    • Yanlış hatırlamıyorsam AirPods'u kaldırıp ya da eşleştirmeyi kaldırıp sonra yeniden zorla eşleştirince güncelleme tetikleniyor
  • Pilinin bitmemesine ek olarak, kablolu kulaklık lehine bir avantaj daha yazıldı
    • Bir de kararlı bağlantı avantajı var. Linux'ta Bluetooth tam bir felaket