1 पॉइंट द्वारा GN⁺ 2024-06-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • AirPods फ़र्मवेयर में CVE-2024-27867 के कारण Bluetooth MAC address जानने वाला कोई भी व्यक्ति डिवाइस से कनेक्ट होकर माइक्रोफ़ोन सुन सकता है या संगीत चला सकता है
  • यह कमजोरी Apple के स्वामित्व वाले Fast Connect पाथ में authentication और encryption state को स्पष्ट रूप से verify न करने के कारण पैदा होती है
  • हमले के लिए ज़रूरी Bluetooth MAC address पूरी तरह निजी नहीं है, और pairing mode या AirPods के active होने पर रेडियो सिग्नल से प्राप्त किया जा सकता है
  • अगर AirPods बंद charging case में हों या AirPods Max Smart Case के अंदर हो, तो wireless functionality बंद रहती है और कनेक्शन संभव नहीं होता
  • Apple ने AirPods और कुछ Beats के लिए फ़र्मवेयर अपडेट जारी किए हैं, लेकिन iOS·macOS के बिना इस्तेमाल करने वाले Android·Windows·Linux यूज़र्स के लिए अपडेट प्रक्रिया अधिक झंझटपूर्ण हो सकती है

AirPods फ़र्मवेयर कमजोरी और प्रभाव का दायरा

  • Apple AirPods फ़र्मवेयर में CVE-2024-27867 सुरक्षा कमजोरी मौजूद है
  • Bluetooth MAC address जानने वाला कोई भी व्यक्ति AirPods से कनेक्ट होकर ये काम कर सकता है
    • माइक्रोफ़ोन सुनना
    • संगीत चलाना
    • किसी दूसरे कनेक्टेड डिवाइस पर चल रहे संगीत को देखना और pause करना
    • AAP protocol के तहत संभव कुछ कार्रवाइयाँ करना
    • गलत format वाले संदेश भेजकर AirPods को crash कर देना
  • AirPods अगर पहले से फ़ोन से कनेक्ट हों तब भी हमलावर अतिरिक्त रूप से कनेक्ट हो सकता है
    • हालांकि हमलावर माइक्रोफ़ोन चालू करता है तो संगीत चलना रुक जाता है
  • अगर AirPods बंद charging case में हों या AirPods Max Smart Case के अंदर हो, तो wireless functionality बंद रहती है और कोई भी कनेक्शन संभव नहीं होता

कमजोरी कैसे सामने आई

  • AirPods 3 में macOS और Apple डिवाइस के साथ कई फीचर स्वाभाविक रूप से काम करते थे, लेकिन वही laptop Linux में boot करने पर फ़ोन और laptop से एक साथ कनेक्ट नहीं हो रहा था
  • इस अंतर से यह अनुमान लगाया गया कि सामान्य Bluetooth headphones में न मिलने वाला Apple-विशेष protocol इस्तेमाल हो रहा है, और Linux में कुछ फीचर दोबारा implement करने के लिए विश्लेषण शुरू किया गया
  • विश्लेषण के दौरान Bluetooth peripheral को कनेक्ट करने वाली Apple की Fast Connect सुविधा में यह कमजोरी मिली

Fast Connect कैसे काम करता है

  • Fast Connect, Apple का स्वामित्व वाला protocol है, और यह Bluetooth specification की ping functionality का रचनात्मक उपयोग करता है
  • इसका उद्देश्य दो Apple डिवाइसों के बीच connection setup time को लगभग 1 सेकंड से घटाकर लगभग 0.5 सेकंड करना है
  • target डिवाइस के साथ authenticate करने से पहले दोनों डिवाइस L2CAP ping message का आदान-प्रदान करते हैं
    • Apple ping payload के अंदर protocol message डालता है
    • इस तरीके से Bluetooth specification का उल्लंघन किए बिना यह जाँचा जाता है कि दोनों तरफ Fast Connect supported है या नहीं
  • इसके बाद 3 अतिरिक्त round-trip message के ज़रिए कनेक्शन के लिए ज़रूरी negotiation होती है
  • कुल 4 round-trip message में काम पूरा हो जाता है, इसलिए यह सामान्य Bluetooth connection में SDP descriptor exchange और channel setup प्रक्रिया से तेज़ है

authentication जाँच का अभाव

  • समस्या यह है कि Fast Connect को implement करने वाले अलग code path में एक महत्वपूर्ण जाँच गायब है
  • AirPods यह verify नहीं करते कि कनेक्ट होने वाला पक्ष वास्तव में authenticated है और encryption चालू है या नहीं
  • सामान्य iOS और macOS, शुरुआती Fast Connect message के बाद authentication और encryption enable करने के चरण पूरे करते हैं
  • हमलावर अगर इस चरण को छोड़ भी दे, तब भी AirPods Fast Connect प्रक्रिया जारी रखते हैं
  • Fast Connect के बिना सामान्य Bluetooth तरीके से AirPods से कनेक्ट होने पर authentication चरण अप्रत्यक्ष रूप से शामिल होता है, इसलिए संभव है कि Fast Connect code path में स्पष्ट जाँच छूट गई हो

Bluetooth MAC address की शर्त

  • हमलावर को AirPods का स्थिर Bluetooth MAC address पता होना चाहिए
  • यह address पूरी तरह निजी जानकारी नहीं है
    • Bluetooth डिवाइस pairing mode में हो तो यह रेडियो सिग्नल में advertise होता है
    • AirPods active होने पर Ubertooth One जैसे hardware से इसे रेडियो ट्रैफ़िक से आसानी से हासिल किया जा सकता है

अपडेट और गैर-Apple यूज़र्स की समस्या

  • Apple ने पिछले कुछ दिनों में इस कमजोरी को ठीक करने वाले कई फ़र्मवेयर अपडेट जारी किए हैं
  • ये AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max और कुछ Beats headphones पर लागू होते हैं
  • यूज़र्स को यह सुनिश्चित करना चाहिए कि AirPods फ़र्मवेयर latest है
  • AirPods फ़र्मवेयर अपने-आप अपडेट होता है, लेकिन केवल तब जब उनका इस्तेमाल iPhone या MacBook के साथ किया जाए
  • Android, Windows, Linux यूज़र्स की तरह iOS या macOS डिवाइस के बिना AirPods इस्तेमाल करने वालों के लिए फ़र्मवेयर अपडेट करना आसान नहीं हो सकता
  • ऐसे यूज़र्स को संभवतः Apple Store में फ़र्मवेयर अपडेट मिल सकता है

रिपोर्ट और टूल्स

  • Bluetooth से जुड़े सवालों और disclosure प्रक्रिया में University of Potsdam की Jiska Classen ने मदद की
  • BlueZ जैसे Linux community tools this problem को खोजने के लिए ज़रूरी थे

1 टिप्पणियां

 
GN⁺ 2024-06-30
Hacker News की राय
  • एक ही कमरे में मौजूद दो डिवाइस electromagnetic spectrum के बेहद छोटे हिस्से का इस्तेमाल करके भी प्रति सेकंड हजारों messages भेज-प्राप्त कर सकते होंगे, फिर Bluetooth में एक message में microseconds के बजाय सैकड़ों milliseconds क्यों लगते हैं, यह जानने की उत्सुकता है
    मैं जानना चाहता हूँ कि इस प्रक्रिया की समय-इकाई तय करने वाले कारक क्या हैं
    • यहाँ पक्के तौर पर नहीं कह सकता, लेकिन आम तौर पर यह कई बातों के मिलने का परिणाम होता है: advertising device beacon कितनी बार भेजता है, advertising channels एक से अधिक हैं या नहीं, backward compatibility के लिए beacon और handshake protocol की सबसे धीमी speed पर भेजे जाते हैं या नहीं, आसपास के noise के कारण physical layer retransmission की जरूरत पड़ती है या नहीं, आदि असर डालते हैं
      अंत में, दोनों तरफ कौन-से features support होते हैं और किस physical layer protocol पर communicate करना है, यह तय करने वाला handshake ही समय खा जाता है
  • याद है कि उसी chip का इस्तेमाल करने वाले प्रभावित Beats devices को Android के Beats app में सचमुच update किया जा सकता था
    • मैंने AirPods Pro 1st gen और 2nd gen को Android phone के साथ इस्तेमाल किया है, लेकिन Android पर firmware update, version check, mode selection, long-press action बदलना, या battery level देखना—इनमें से कोई भी ठीक से करने का तरीका नहीं है
      कुछ third-party apps हैं, लेकिन वे भरोसेमंद नहीं हैं। शुक्र है कि Mac पर ज़्यादातर चीजें संभव हैं, पर fit test के लिए केवल iPhone चाहिए। Firmware upgrade को user control नहीं कर सकता और status या progress की कोई जानकारी भी नहीं मिलती, इसलिए इसे जितना हो सके उतना confusing बना दिया गया है
      Apple Store support staff ने एक बार कहा था, “AirPods को Mac से connected रखते हुए open case में रखें, case को power से connect करें और करीब 30 minutes छोड़ दें,” लेकिन असल में updates में काफी randomness महसूस होती है। Apple Store staff भी iPhone के अलावा Apple products के बीच integration को कभी-कभी बहुत अस्पष्ट तरीके से जानते लगते थे, और यह सुनकर कि मैं AirPods को iPhone के बिना सिर्फ Mac और Android के साथ इस्तेमाल करता हूँ, वे दो बार हैरान हुए
  • लेख में दिया Apple Support link India version लगता है, और US version यह है:
    https://support.apple.com/en-us/106340
    US version में latest firmware version number अलग दिखता है; उदाहरण के लिए AirPods Pro 2nd gen के लिए 6F8 है, जबकि India version में 6B34 है
  • अगर Linux पर भी इस feature को implement करने की details पर कोई लेख आए, तो बहुत दिलचस्पी होगी
    Linux implementation पर follow-up लेख का इंतज़ार रहेगा
  • मेरे AirPods 2 का firmware पुराना version है, लेकिन user के तौर पर iOS में explicitly update करवाने का तरीका नहीं है और update कब होता है यह भी दिखाया नहीं जाता
    काश update control थोड़ा और होता
    • लिखा है, “जब AirPods charging पर हों और Wi‑Fi से जुड़े iPhone, iPad, Mac की Bluetooth range में हों, तो firmware updates automatically deliver हो जाते हैं”
      https://support.apple.com/en-us/106340
    • मौजूदा और future AirPods में जैसे-जैसे और features जुड़ेंगे, मैं update को खुद trigger करना चाहूँगा या कम से कम update होने की notification तो पाना चाहूँगा
      यह सही है कि 95% से ज़्यादा AirPods users को firmware updates के बारे में जानने की जरूरत नहीं, लेकिन जिन्हें फर्क पड़ता है उनके पास यह देखने का तरीका होना चाहिए कि क्या हो रहा है
      आम तौर पर यह बड़ी समस्या नहीं है, पर मुझे AirPods firmware कुछ दिनों की देरी से मिला है, और आगे कभी ऐसा समय आ सकता है जब immediate update जरूरी हो
    • अगर आपको ज़्यादा control चाहिए, तो Apple product आपके लिए सही नहीं हो सकता
    • इसको reverse engineer करने में समय लगाकर देखना चाहता हूँ। मजेदार होगा
  • vulnerability जाहिर तौर पर बुरी है, लेकिन यह असल में कितनी गंभीर है, यह जानना चाहता हूँ। attacker कौन-सी “डरावनी” चीज कर सकता है?
    अगर यह existing connection तोड़ने वाला तरीका है, तो user को पता चले बिना call या audio stream सुनना मुश्किल लगता है। सबसे बुरा शायद इतना हो कि नज़दीक से MAC address scan करके auto-connect करे और कान में noise play कर दे, या इससे बड़ी समस्या है—पता नहीं
    कोई high-profile celebrity या politician video call पर हो तो उसके AirPods hijack करना संभव हो सकता है, लेकिन तुरंत पता चल जाएगा लगता है; उससे भी बुरा क्या हो सकता है, यह जानना चाहूँगा
    • attacker खतरनाक रूप से तेज़ आवाज़ play कर सकता है, ऐसे व्यक्ति के आसपास की आवाज़ें सुन सकता है जिसने AirPods पहने तो हैं लेकिन इस्तेमाल नहीं कर रहा, और call service से गुजरे बिना या call history छोड़े बिना caller की तरह impersonate भी कर सकता है
      साथ ही Bluetooth connection पर कब्ज़ा करने का मतलब काफी बड़ा attack surface मिलना है, इसलिए अगर attacker को दूसरी vulnerabilities पता हों तो आगे exploit chain बनाने का रास्ता भी खुलता है
    • worst case में, कोई ऐसा device बना सकता है जिसे bag में गिराकर छोड़ा जा सके और जो headphones की सारी आवाज़ record कर ले। USB drive जैसे form factor में भी संभव है
      “Fast Connect” protocol कई devices से साथ-साथ “connect” होने की अनुमति देता दिखता है, इसलिए user को पता न चलने की संभावना अधिक है। एक और attack यह हो सकता है कि cleaner की तरह office में जगह-जगह coffee coaster जैसे दिखने वाले devices रख दिए जाएँ और आसपास के AirPods का audio पकड़ लिया जाए
      मूल रूप से मुश्किल हिस्सा तो हल हो चुका होगा; बस छोटी battery, Bluetooth transmitter और storage वाला device बनाना होगा, जिससे लोगों के बोलने वाली जगहों के पास high-quality audio collect किया जा सके
    • बहुत से लोग AirPods को actively इस्तेमाल न करते हुए भी कान में लगाए रखते हैं, इसलिए ऐसे मामलों में microphone से face-to-face conversations सुनी जा सकती हैं
      हालांकि Bluetooth range के अंदर होना पड़ेगा, इसलिए शायद सामान्य तरीके से eavesdrop करना ही आसान हो
    • realistically worst case बस nuisance पैदा करने जितना है
      अगर patch न हुआ होता, तो कोई Flipper Zero के लिए AirPods disruption app बना देता और public places में सबके AirPods audio काटकर परेशान करता
  • Settings > Bluetooth > Your AirPods में [i] दबाने पर AirPods currently connected न हों तब भी version देख सकते हैं
    6A326 में fix शामिल लगता है
    https://support.apple.com/en-us/HT214111
    • इसमें “AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8” लिखा है, और मेरे device में 6F8 है
      शायद यह AirPods Pro 2nd gen वाला version लगता है
  • पता है संभावना कम है, लेकिन अच्छा होगा अगर यह घटना Apple को दूसरे operating systems, कम से कम Android पर AirPods updates को किसी तरह support करने के लिए प्रेरित करे
  • manual update option नहीं है। updates सिर्फ automatic updates हैं, और उन automatic updates को कैसे induce करना है यह भी साफ नहीं है
    • अगर याद सही है, तो AirPods को remove या unpair करने के बाद forcefully फिर pair करने से update force-trigger हो जाता है
  • battery drain न होने के अलावा, wired headphones का एक और फायदा बढ़ गया
    • stable connection भी एक फायदा है। Linux पर Bluetooth disaster है