7 पॉइंट द्वारा GN⁺ 2024-09-27 | 4 टिप्पणियां | WhatsApp पर शेयर करें
  • 11 जून 2024 को Kia वाहनों में ऐसी भेद्यता मिली, जिससे सिर्फ नंबर प्लेट के आधार पर कार के मुख्य फ़ंक्शंस को remotely नियंत्रित किया जा सकता था
  • हमलावर पीड़ित का नाम, फ़ोन नंबर, ईमेल पता और भौतिक पता जैसी निजी जानकारी चुपचाप हासिल कर सकता था
  • इस भेद्यता का उपयोग करके हमलावर, कार मालिक की जानकारी के बिना खुद को वाहन के एक अदृश्य दूसरे उपयोगकर्ता के रूप में जोड़ सकता था
  • इस भेद्यता के प्रभाव को दिखाने के लिए एक डेमो टूल बनाया गया, लेकिन इसे वास्तव में सार्वजनिक नहीं किया गया और न ही इसका दुरुपयोग हुआ
    • बाद में इस भेद्यता को ठीक कर दिया गया, यह टूल जारी नहीं किया गया, और Kia टीम ने पुष्टि की कि इस भेद्यता का कभी दुर्भावनापूर्ण शोषण नहीं हुआ

प्रभावित वाहन

  • 2025 से 2014 तक के विभिन्न Kia मॉडल प्रभावित थे
  • मॉडल के अनुसार remote lock/unlock, remote start/stop, remote horn/light, remote camera जैसी सुविधाएँ संभव थीं

भेद्यता का विवरण

लगभग 2 साल पहले, हमने 12 से अधिक ऑटोमोबाइल निर्माताओं में सुरक्षा भेद्यताएँ खोजी थीं। हमने ऐसे गंभीर मुद्दे पाए थे जिनसे 1.5 करोड़ से अधिक वाहनों को remotely locate, engine off, unlock और start किया जा सकता था - Paul Roberts

  • काफी समय बीतने के बाद, हमने उन निर्माताओं की साइटों को फिर से देखने का फैसला किया जिनमें पहले भेद्यताएँ मिली थीं
  • Kia की owners साइट और मोबाइल ऐप इंटरनेट के ज़रिए वाहन नियंत्रण कमांड भेज सकती थीं, इसलिए वे दिलचस्प लगीं
  • वेबसाइट proxy server के माध्यम से कमांड backend API तक भेजती थी, जबकि ऐप सीधे API तक पहुँचती थी
  • owners वेबसाइट से door unlock अनुरोध भेजने वाला HTTP request उदाहरण:
    POST /apps/services/owners/apigwServlet.html HTTP/2  
    Host: owners.kia.com  
    Httpmethod: GET   
    Apiurl: /door/unlock  
    Servicetype: postLoginCustomer  
    Cookie: JSESSIONID=SESSION_TOKEN;   
    
  • सर्वर JSESSIONID का उपयोग कर Sid session ID बनाता था और backend API को इस तरह भेजता था:
    GET /apigw/v1/rems/door/unlock HTTP/1.1  
    Host: api.owners.kia.com  
    Sid: 454817d4-b228-4103-a26f-884e362e8dee  
    Vinkey: 3ecc1a19-aefd-4188-a7fe-1723e1663d6e  
    
  • Sid session token था, और Vinkey VIN से मैप किया गया एक UUID था

डीलर इन्फ्रास्ट्रक्चर की भेद्यता

  • हमने Kia की dealer वेबसाइट भी देखने का फैसला किया, क्योंकि हम जानना चाहते थे कि नई कार खरीदते समय Kia ग्राहक जानकारी को कैसे संभालती है
  • dealer साइट पर नई गाड़ी रजिस्टर करने के लिए ग्राहक को भेजे जाने वाले ईमेल के URL की जाँच की गई:
    https://kiaconnect.kdealer.com/content/kDealer/…  
    
  • kiaconnect.kdealer.com डोमेन, जिसे पहले कभी नहीं देखा था, दिलचस्प लगा
  • ऊपर दिए गए URL में token पैरामीटर एक VIN key था, यानी dealer द्वारा बनाया गया one-time access token। यह vin पैरामीटर में दिए गए वाहन को संशोधित कर सकता था
  • URL लोड करने पर token की validity जाँचने के लिए यह HTTP request भेजी जाती थी:
    POST /apps/services/kdealer/apigwServlet.html HTTP/1.1   
    Host: kiaconnect.kdealer.com  
    
    {  
      "token": "985a49f0-1fe5-4d36-860e-d9b93272072b",  
      "vin": "5XYP3DHC9NG310533",   
      "scenarioType": 3,  
      "loginPref": null  
    }  
    
  • यह दिलचस्प था कि dealer साइट का request URI owners साइट की तरह ही /apps/services/kdealer/apigwServlet.html था
  • अनुमान था कि कोई proxy, requests को dealer के internal API तक भेज रहा होगा
  • JavaScript कोड देखने पर dealer vehicle lookup, account lookup, registration, deregistration जैसी केवल कर्मचारियों के लिए बनी API calls दिखाई दीं
  • हमने अपने स्वामित्व वाली गाड़ी के VIN के साथ API endpoint तक पहुँचने की कोशिश की, लेकिन 401 Unauthorized त्रुटि मिली। dealer token से यह काम नहीं कर रहा था

सामान्य अकाउंट से dealer API तक पहुँच

  • इसलिए हमने dealer वेबसाइट पर एक सामान्य अकाउंट बनाकर access token बनाने और उसी से API तक पहुँचने का निर्णय लिया, क्योंकि owners साइट और API का फ़ॉर्मैट समान लग रहा था
  • dealer साइट पर owners साइट की तरह user registration करने की कोशिश की, और यह सफल रही
  • लॉग इन करके access token जारी कराया और पहले inaccessible VIN lookup API को कॉल किया, तो response में वाहन मालिक का नाम, फ़ोन नंबर और ईमेल था
  • इसका मतलब था कि हमारे बनाए सामान्य अकाउंट से dealer portal में authenticate करके और बदले हुए channel header का उपयोग करके सभी dealer APIs तक पहुँचा जा सकता था

वाहन तक अनधिकृत पहुँच

  • कई घंटों तक JavaScript कोड का विश्लेषण करने के बाद, हमें समझ आया कि vehicle registration, deregistration और modification endpoints कैसे काम करते हैं
  • नीचे दिए गए 4 चरणों से पीड़ित के वाहन तक पहुँचना संभव था:
    1. dealer token बनाना और HTTP response header से token मान निकालना
    2. पीड़ित का ईमेल और फ़ोन नंबर पता करना
    3. लीक हुए ईमेल और VIN का उपयोग करके मौजूदा owner access को संशोधित करना
    4. हमलावर को वाहन के नए मालिक के रूप में जोड़ना
  • पीड़ित को न तो इस बात का कोई अलर्ट मिलता था कि किसी ने उसकी गाड़ी तक पहुँच बनाई है, और न ही कि उसकी permissions बदली गई हैं
  • हमलावर किसी के नंबर प्लेट से VIN पता करके API के ज़रिए पीड़ित को चुपचाप track कर सकता था, कार का दरवाज़ा खोल सकता था, इंजन start कर सकता था, horn बजा सकता था आदि

proof-of-concept dashboard बनाना

  • इस भेद्यता की गंभीरता दिखाने के लिए हमने एक proof-of-concept dashboard बनाया, जिसमें हमलावर (1) Kia वाहन की नंबर प्लेट दर्ज कर सकता था, (2) मालिक की निजी जानकारी ला सकता था, और फिर (3) वाहन नियंत्रण कमांड चला सकता था
  • Exploit पेज पर वाहन तक अनधिकृत पहुँच की कोशिश की जाती थी, और Garage पेज पर कमांड दिए जाते थे तथा लोकेशन track की जाती थी
  • एक किराए की locked Kia कार पर परीक्षण किया गया, और ब्लॉग के सबसे ऊपर दिए गए वीडियो में देखा जा सकता है कि स्मार्टफ़ोन से वाहन को हैक करने के बाद remotely door lock/unlock, engine on/off, horn, और location tracking जैसी क्रियाएँ की गईं

निष्कर्ष

  • जैसे Meta विकास प्रक्रिया में गलती से ऐसा code change कर सकती है जिससे कोई आपका Facebook अकाउंट takeover कर ले, उसी तरह ऑटोमोबाइल निर्माता भी आपके वाहन में ऐसी भेद्यताएँ बना सकते हैं
  • आगे भी कारों में भेद्यताएँ मिलती रहेंगी

टाइमलाइन

  • 06/07/24 16:40 UTC - Kia टीम से भेद्यता रिपोर्ट करने के तरीके के बारे में पूछा गया
  • 06/10/24 13:21 UTC - Kia टीम से जवाब मिला
  • 06/11/24 22:41 UTC - भेद्यता रिपोर्ट की गई
  • 06/12/24 18:20 UTC - गंभीरता के कारण ticket alert email भेजा गया
  • 06/14/24 18:00 UTC - Kia टीम ने जवाब दिया कि वे जाँच कर रहे हैं
  • 06/18/24 16:41 UTC - गंभीरता के कारण ticket alert email और टूल के screenshots भेजे गए
  • 06/20/24 02:54 UTC - ticket alert email और नंबर प्लेट डालकर पहुँच दिखाने वाले screenshots भेजे गए
  • 08/12/24 12:30 UTC - ticket alert email के माध्यम से अपडेट माँगा गया
  • 08/14/24 17:41 UTC - Kia टीम ने जवाब दिया कि भेद्यता ठीक कर दी गई है और testing चल रही है
  • 09/26/24 08:15 UTC - भेद्यता के समाधान की पुष्टि के बाद सार्वजनिक रूप से खुलासा किया गया

GN⁺ की राय

  • यह एक चौंकाने वाला मामला है, जो दिखाता है कि car hacking अब वास्तविकता बन चुकी है। आगे connected cars बढ़ने के साथ ऐसी भेद्यता समस्याएँ और गंभीर होंगी
  • यह घटना ऑटोमोबाइल निर्माताओं में सुरक्षा जागरूकता की कमी और ढीले सिस्टम डिज़ाइन को साफ़ तौर पर दिखाती है। software vulnerability management और code review जैसे security development lifecycle (SSDLC) को अपनाना तत्काल ज़रूरी लगता है
  • वाहन remote control तकनीक सुविधा बढ़ाती है, लेकिन साथ ही attack surface भी बढ़ाती है। तकनीक, सुरक्षा और privacy के बीच संतुलन बनाना महत्वपूर्ण होगा
  • निजी जानकारी पर आधारित authentication के तरीक़े की समस्या भी सामने आई। सिर्फ नंबर प्लेट जानकर वाहन takeover किया जा सकना बहुत ही कमज़ोर व्यवस्था है। biometrics या multi-factor authentication जैसी मजबूत authentication प्रणाली की ज़रूरत है
  • उपयोगकर्ता को अपनी गाड़ी की security status को समझने और नियंत्रित करने की क्षमता होनी चाहिए। किसने मेरी गाड़ी तक पहुँच बनाई, कौन-से कमांड चलाए गए, यह बताने वाले notification features आदि की आवश्यकता है

4 टिप्पणियां

 
aer0700 2024-09-28

उफ़, यह बहुत डरावना है

 
unsure4000 2024-09-27

मेरा मानना है कि वाहन मालिकों को ऐसा विकल्प उचित रूप से दिया जाना चाहिए जिससे वे वाहन और इंटरनेट के बीच के कनेक्शन को भौतिक रूप से डिस्कनेक्ट कर सकें।

 
bbulbum 2024-09-30

मुझे प्राइसिंग स्ट्रक्चर के बारे में जिज्ञासा थी, लेकिन लगता है कि वे बेसिक को कई सालों तक मुफ्त देकर साइन-अप करवाते हैं..

 
GN⁺ 2024-09-27
Hacker News राय
  • Kia के अमेरिकी वाहनों में immobilizer को छोड़ने के फैसले ने पूरे देश में वाहन चोरी की समस्या पैदा कर दी

    • इसके कारण मिलवॉकी और शिकागो जैसे शहरों में वाहन चोरी तेज़ी से बढ़ी
    • सिर्फ़ मुड़ी हुई USB केबल से वाहन चुराया जा सकता था
  • असुरक्षित Kia वाहन डेटाबेस को crawl करके पास की Kia गाड़ियाँ दिखाने और उन्हें unlock करने वाला एक "राइड शेयर" ऐप बनाया जा सकता है

  • समस्या यह है कि कोई भी dealer के रूप में रजिस्टर कर सकता है, और dealer ऐसे वाहनों की जानकारी भी देख सकता है जो उसने बेचे नहीं हैं

    • dealer कर्मचारी इसका दुरुपयोग करके stalking कर सकते हैं
  • लेख के अनुसार, पहले केवल Kia और dealer ही वाहनों को track कर सकते थे, लेकिन अब "अनधिकृत" लोग भी उन्हें track कर सकते हैं

    • यह सवाल उठता है कि कंपनियों द्वारा वाहनों को track करना ठीक क्यों माना जाता है, लेकिन कोई और ऐसा करे तो समस्या क्यों बनती है
  • समस्या यह है कि Kia के पास वाहनों और मालिकों के बारे में बहुत सारा data मौजूद है

    • यह भेद्यता पहले ही ठीक की जा चुकी है, लेकिन data की समस्या अब भी बनी हुई है
  • Kia वाहन रखने वाले एक भाई पर वाहन चोरी की वजह से मानसिक स्वास्थ्य पर नकारात्मक असर पड़ रहा है

  • मैं ऐसी गाड़ी नहीं खरीदूंगा जिसे सक्रिय करने के लिए online account बनाना पड़े

    • पहले जो Kia गाड़ी मेरे पास थी, वह 100,000 मील से पहले हर 1,000 मील पर 1 quart oil खा जाती थी
  • मौजूदा बाज़ार में connectivity फीचर के बिना कोई नई गाड़ी नहीं है

    • सोचता हूँ कि क्या non-connected वाहन बनाना संभव है
  • एक Kia मालिक के रूप में, मुझे राहत है कि यह भेद्यता ठीक कर दी गई और इसका दुर्भावनापूर्ण दुरुपयोग नहीं हुआ

    • लेकिन Kia को अभी भी बहुत सुधार की ज़रूरत है
  • मेरा मानना है कि वाहनों को इंटरनेट से नहीं जोड़ना चाहिए