1 poin oleh GN⁺ 2024-06-30 | 1 komentar | Bagikan ke WhatsApp
  • Karena CVE-2024-27867 pada firmware AirPods, orang yang mengetahui alamat MAC Bluetooth dapat terhubung ke perangkat untuk mendengarkan mikrofon atau memutar musik
  • Celah ini terjadi karena jalur Fast Connect, protokol proprietari Apple, tidak secara eksplisit memeriksa status autentikasi dan enkripsi
  • Alamat MAC Bluetooth yang diperlukan untuk serangan tidak sepenuhnya privat, dan dapat diperoleh melalui sinyal radio saat dalam mode pairing atau saat AirPods aktif
  • Jika AirPods berada di dalam casing pengisian daya yang tertutup, atau AirPods Max berada di dalam Smart Case, fungsi nirkabel dimatikan sehingga koneksi tidak dapat dilakukan sama sekali
  • Apple telah merilis pembaruan firmware untuk AirPods dan beberapa Beats, tetapi pengguna Android, Windows, dan Linux yang menggunakannya tanpa iOS atau macOS mungkin menghadapi prosedur pembaruan yang lebih merepotkan

Celah firmware AirPods dan cakupan dampaknya

  • Firmware Apple AirPods memiliki celah keamanan CVE-2024-27867
  • Orang yang mengetahui alamat MAC Bluetooth dapat terhubung ke AirPods dan melakukan tindakan berikut
    • Mendengarkan mikrofon
    • Memutar musik
    • Memeriksa dan menjeda musik yang sedang diputar di perangkat lain yang terhubung
    • Melakukan sebagian tindakan yang dimungkinkan oleh protokol AAP
    • Mengirim pesan dengan format salah untuk membuat AirPods crash
  • Meski AirPods sudah terhubung ke ponsel, penyerang tetap dapat membuat koneksi tambahan
    • Namun, jika penyerang menyalakan mikrofon, pemutaran musik akan berhenti
  • Jika AirPods berada di dalam casing pengisian daya yang tertutup, atau AirPods Max berada di dalam Smart Case, fungsi nirkabel dimatikan sehingga koneksi apa pun tidak memungkinkan

Cara celah ditemukan

  • AirPods 3 menjalankan berbagai fungsi secara mulus dalam kombinasi macOS dan perangkat Apple, tetapi ketika laptop yang sama di-boot ke Linux, AirPods tidak dapat terhubung ke ponsel dan laptop secara bersamaan
  • Karena perbedaan ini, diasumsikan ada protokol khusus Apple yang tidak ada pada headphone Bluetooth biasa, lalu analisis dimulai untuk mengimplementasikan ulang sebagian fungsi di Linux
  • Dalam proses analisis, celah ditemukan pada fitur Fast Connect Apple untuk menghubungkan periferal Bluetooth

Cara kerja Fast Connect

  • Fast Connect adalah protokol proprietari Apple, dan menggunakan fitur ping dalam spesifikasi Bluetooth secara kreatif
  • Tujuannya adalah mengurangi waktu penyiapan koneksi antara dua perangkat Apple dari sekitar 1 detik menjadi sekitar 0,5 detik
  • Sebelum melakukan autentikasi dengan perangkat tujuan koneksi, kedua perangkat saling bertukar pesan ping L2CAP
    • Apple memasukkan pesan protokol ke dalam payload ping
    • Dengan cara ini, kedua pihak dapat memastikan apakah Fast Connect didukung tanpa melanggar spesifikasi Bluetooth
  • Setelah itu, negosiasi yang diperlukan untuk koneksi dilakukan melalui 3 kali pertukaran pesan pulang-pergi tambahan
  • Total pesan pulang-pergi hanya 4 kali, sehingga lebih cepat daripada prosedur koneksi Bluetooth biasa yang bertukar descriptor SDP dan mengonfigurasi channel

Pemeriksaan autentikasi yang terlewat

  • Masalahnya adalah ada pemeriksaan penting yang hilang pada jalur kode terpisah yang mengimplementasikan Fast Connect
  • AirPods tidak memeriksa apakah pihak yang terhubung benar-benar telah terautentikasi dan mengaktifkan enkripsi
  • iOS dan macOS normal melakukan tahap autentikasi dan aktivasi enkripsi setelah pesan Fast Connect awal
  • Meski penyerang melewati tahap ini, AirPods tetap melanjutkan prosedur Fast Connect
  • Saat terhubung ke AirPods dengan cara Bluetooth biasa tanpa Fast Connect, tahap autentikasi tercakup secara implisit; kemungkinan karena itu pemeriksaan eksplisit terlewat pada jalur kode Fast Connect

Syarat alamat MAC Bluetooth

  • Penyerang harus mengetahui alamat MAC Bluetooth tetap milik AirPods
  • Alamat ini bukan informasi yang sepenuhnya privat
    • Diiklankan melalui sinyal radio saat perangkat Bluetooth berada dalam mode pairing
    • Saat AirPods aktif, alamat ini dapat dengan mudah diperoleh dari sinyal radio menggunakan hardware seperti Ubertooth One

Pembaruan dan masalah bagi pengguna non-Apple

  • Dalam beberapa hari terakhir, Apple merilis beberapa pembaruan firmware yang memperbaiki celah ini
  • Perangkat yang terdampak mencakup AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max, dan sebagian headphone Beats
  • Pengguna harus memastikan firmware AirPods sudah terbaru
  • Firmware AirPods diperbarui otomatis, tetapi hanya saat digunakan bersama iPhone atau MacBook
  • Orang yang menggunakan AirPods tanpa perangkat iOS atau macOS, seperti pengguna Android, Windows, atau Linux, sulit memperbarui firmware dengan mudah
  • Pengguna seperti ini tampaknya dapat memperoleh pembaruan firmware di Apple Store

Pelaporan dan alat

  • Jiska Classen dari University of Potsdam membantu untuk pertanyaan terkait Bluetooth dan proses pengungkapan publik
  • Alat komunitas Linux seperti BlueZ diperlukan untuk menemukan masalah ini

1 komentar

 
GN⁺ 2024-06-30
Pendapat di Hacker News
  • Dua perangkat di ruangan yang sama seharusnya bisa saling mengirim ribuan pesan per detik meski hanya memakai bagian yang sangat sempit dari spektrum elektromagnetik, jadi saya penasaran kenapa di Bluetooth satu pesan memakan waktu ratusan milidetik, bukan mikrodetik
    Saya ingin tahu faktor apa yang menentukan satuan waktu dalam proses ini
    • Saya tidak yakin untuk kasus ini, tetapi biasanya ini hasil gabungan beberapa hal: seberapa sering perangkat yang mengiklankan diri mengirim beacon, apakah ada beberapa kanal iklan, apakah beacon dan handshake dikirim pada kecepatan paling lambat protokol demi kompatibilitas ke belakang, apakah perlu retransmisi lapisan fisik karena noise di sekitar, dan sebagainya
      Pada akhirnya, ini adalah struktur di mana handshake untuk memastikan fitur apa yang didukung kedua sisi dan menentukan protokol lapisan fisik mana yang akan dipakai untuk berkomunikasi memakan waktu
  • Saya ingat perangkat Beats terdampak yang memakai chip yang sama benar-benar bisa diperbarui lewat aplikasi Beats di Android
    • Saya sudah memakai AirPods Pro generasi ke-1 dan ke-2 dengan ponsel Android, dan di Android tidak ada cara yang benar-benar layak untuk melakukan pembaruan firmware, memeriksa versi, memilih mode, mengubah aksi tekan lama, atau mengecek sisa baterai
      Ada beberapa aplikasi pihak ketiga, tetapi keandalannya rendah. Untungnya di Mac sebagian besar hal bisa dilakukan, tetapi uji kecocokan pemakaian hanya memerlukan iPhone. Upgrade firmware tidak bisa dikendalikan pengguna, dan tidak ada informasi status atau progres sama sekali, sehingga dibuat sebingung mungkin
      Staf dukungan Apple Store pernah mengatakan, “Hubungkan AirPods ke Mac, masukkan ke casing yang terbuka, sambungkan casing ke daya, lalu biarkan sekitar 30 menit,” tetapi dalam praktiknya pembaruan terasa cukup acak. Staf Apple Store juga kadang tampak sangat samar memahami interoperasi antarproduk Apple selain iPhone, dan dua kali mereka bingung ketika tahu saya memakai AirPods hanya dengan Mac dan Android tanpa iPhone
  • Tautan Apple Support di artikel tampaknya versi India, sedangkan versi AS ada di sini:
    https://support.apple.com/en-us/106340
    Versi AS menampilkan nomor versi firmware terbaru yang berbeda; misalnya AirPods Pro generasi ke-2 adalah 6F8, sedangkan versi India 6B34
  • Saya akan sangat tertarik jika ada tulisan yang membahas detail implementasi fitur ini di Linux juga
    Jadi menantikan tulisan lanjutan tentang implementasi Linux
  • Firmware AirPods 2 saya masih versi lama, tetapi dari sisi pengguna tidak ada cara di iOS untuk memerintahkan pembaruan secara eksplisit, dan tidak ada indikator kapan pembaruan terjadi
    Saya berharap ada lebih banyak kendali atas pembaruan
    • Tertulis bahwa “pembaruan firmware dikirim secara otomatis saat AirPods sedang diisi daya dan berada dalam jangkauan Bluetooth iPhone, iPad, atau Mac yang terhubung ke Wi‑Fi”
      https://support.apple.com/en-us/106340
    • Seiring makin banyak fitur ditambahkan ke AirPods saat ini dan mendatang, saya ingin bisa memicu pembaruan sendiri, atau setidaknya mendapat notifikasi bahwa pembaruan telah terjadi
      Memang benar lebih dari 95% pengguna AirPods tidak perlu tahu soal pembaruan firmware, tetapi bagi orang yang peduli, seharusnya ada cara untuk memastikan apa yang sedang terjadi
      Biasanya ini bukan masalah besar, tetapi saya pernah menerima firmware AirPods beberapa hari terlambat, dan ke depannya bisa saja ada momen ketika pembaruan segera menjadi penting
    • Jika menginginkan lebih banyak kendali, produk Apple mungkin bukan pilihan yang tepat
    • Saya ingin mencoba meluangkan waktu untuk merekayasa balik ini. Sepertinya menarik
  • Kerentanan tentu saja buruk, tetapi saya ingin tahu seberapa serius dampaknya di dunia nyata. Saya penasaran hal “menakutkan” apa yang bisa dilakukan penyerang
    Jika caranya adalah memutus koneksi yang ada, tampaknya sulit untuk menyadap panggilan atau stream audio tanpa diketahui pengguna. Saya tidak tahu apakah skenario terburuknya hanya memindai alamat MAC dari jarak dekat lalu tersambung otomatis untuk memutar suara bising di telinga, atau ada masalah yang lebih besar
    Mungkin saja seseorang mengambil alih AirPods pejabat terkenal atau politisi saat mereka sedang melakukan video call, tetapi sepertinya akan langsung ketahuan; saya penasaran apakah ada hal yang lebih buruk dari itu
    • Penyerang bisa memutar suara yang berbahaya kerasnya, menyadap suara sekitar dari orang yang memakai AirPods tetapi tidak sedang menggunakannya, dan bahkan menyamar seperti penelepon tanpa melalui layanan telepon atau meninggalkan riwayat panggilan
      Selain itu, mengambil alih koneksi Bluetooth berarti memperoleh permukaan serangan yang cukup luas, jadi jika penyerang mengetahui kerentanan lain, ini juga membuka jalan untuk rangkaian exploit tambahan
    • Dalam skenario terburuk, seseorang bisa membuat perangkat yang dapat dijatuhkan ke dalam tas dan merekam semua suara dari headphone. Bentuknya pun bisa seperti USB drive
      Protokol “Fast Connect” tampaknya mengizinkan “koneksi” ke beberapa perangkat sekaligus, sehingga pengguna kemungkinan besar tidak menyadarinya. Serangan lain adalah menaruh perangkat berbentuk tatakan gelas kopi di berbagai tempat di kantor seperti petugas kebersihan, lalu menangkap audio dari AirPods di sekitar
      Bagian inti yang sulit pada dasarnya sudah terselesaikan; tinggal membuat perangkat berisi baterai kecil, pemancar Bluetooth, dan penyimpanan, maka audio berkualitas tinggi bisa dikumpulkan di dekat tempat orang berbicara
    • Banyak orang tetap memakai AirPods di telinga meski tidak sedang aktif menggunakannya, jadi dalam kasus seperti itu mikrofon bisa dipakai untuk menyadap percakapan tatap muka
      Namun harus berada dalam jangkauan Bluetooth, jadi mungkin lebih mudah menyadap dengan cara biasa saja
    • Secara realistis, skenario terburuknya hanya sebatas mengganggu
      Jika tidak ditambal, mungkin seseorang akan membuat aplikasi pengganggu AirPods untuk Flipper Zero yang memutus audio AirPods semua orang di tempat umum dan membuat mereka kesal
  • Di Settings > Bluetooth > Your AirPods, tekan [i], maka versi AirPods bisa dilihat meski saat ini tidak terhubung
    6A326 tampaknya versi yang menyertakan perbaikan
    https://support.apple.com/en-us/HT214111
    • Tertulis “AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8”, dan perangkat saya 6F8
      Sepertinya itu versi untuk AirPods Pro generasi ke-2
  • Saya tahu kemungkinannya kecil, tetapi saya berharap kejadian ini menjadi pemicu bagi Apple untuk entah bagaimana mendukung pembaruan AirPods di sistem operasi lain, setidaknya pembaruan AirPods di Android
  • Tidak ada opsi pembaruan manual. Pembaruan hanya berupa pembaruan otomatis, dan bagaimana cara memancing pembaruan otomatis itu pun tidak jelas
    • Kalau ingatan saya benar, menghapus AirPods atau membatalkan pairing lalu memaksa pairing ulang akan memicu pembaruan secara paksa
  • Selain tidak kehabisan baterai, kini ada satu lagi keunggulan headphone berkabel
    • Ada juga keunggulan koneksi yang stabil. Bluetooth di Linux adalah bencana