1 पॉइंट द्वारा GN⁺ 2023-06-27 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Android के Manage my account पॉपअप में ऐसी स्क्रीन खुलती है जहां से सामान्य वेबसाइटों पर जाया जा सकता है, और इसे Settings तथा Google ऐप परिवार के अंदर भी एक्सेस किया जा सकता है
  • इसमें पहुंचने का रास्ता Google अकाउंट मैनेजमेंट के Security टैब, Password Manager, on-device encryption help, Privacy Policy, और Search मेनू से होकर गुजरता है
  • यह स्क्रीन YouTube playback तक कर सकती है, लेकिन इसमें browsing history और address bar नहीं है, और back दबाने पर web history की जगह settings screen पर लौटता है
  • JavaScript console में mm object और closeView(), requestSecurityKeyHandshake(), updateSecurityKey() functions दिखते हैं, लेकिन कुछ functions का वास्तविक उपयोग स्पष्ट नहीं है
  • Google ने पहले कहा कि यह security vulnerability नहीं है और parental controls bypass भी intended behavior है, लेकिन सार्वजनिक खुलासे और मीडिया कवरेज के 3 दिन बाद कहा कि वह रिपोर्ट की फिर से समीक्षा करेगा

Android Settings के अंदर खुलने वाला छिपा ब्राउज़र

  • Android के कई ऐप्स में Manage my account पॉपअप होता है, और इसे Settings तथा Google ऐप परिवार जैसे प्रमुख ऐप्स में भी खोला जा सकता है
  • कुछ चरणों से गुजरने पर पॉपअप के भीतर का हिस्सा सामान्य वेबसाइटों पर जाने वाले ब्राउज़र की तरह काम करता है
    • Settings → Google या ऐसा ऐप जहां अकाउंट चुना जा सके, वहां “Manage my account” चुनें
    • “Security” टैब में “Password Manager” चुनें
    • ऊपर दाईं ओर Settings आइकन चुनें
    • “Set up on-device encryption” → “Learn more about on-device encryption” चुनें
    • hamburger menu से “Privacy Policy” पर जाएं
    • ऊपर 9 dots मेनू दबाएं, लगभग 5 सेकंड इंतजार करें, फिर “Search” चुनें, या Google आइटम पर जाएं
    • Google अकाउंट से log out करने पर इसे मनचाही जगह जाने वाले ब्राउज़र की तरह इस्तेमाल किया जा सकता है
  • इस स्थिति में YouTube वीडियो playback भी संभव है, और स्क्रीन Settings ऐप या जिस ऐप से शुरुआत की गई थी, उसी के भीतर खुलती है
  • सामान्य ब्राउज़र से अलग बातें

    • browsing history सेव नहीं होती
    • session समाप्त होने पर logged-in Google account से अपने आप log out हो जाता है
    • address bar नहीं है
    • back key दबाने पर पिछले webpage की जगह Password Manager settings की ओर लौटता है

mm JavaScript object और Google की प्रतिक्रिया

  • eruda जैसे mobile JavaScript console में mm नाम का JavaScript object देखा जा सकता है
  • mm object में तीन functions हैं
    • closeView(): ब्राउज़र को बंद करता है, और back key दबाने जैसा व्यवहार करता है
    • requestSecurityKeyHandshake(): इसका काम पुष्टि नहीं हुआ है, लेकिन नाम से यह संवेदनशील function लगता है
    • updateSecurityKey(): इसका काम पुष्टि नहीं हुआ है, लेकिन नाम से यह संवेदनशील function लगता है
  • क्योंकि यह ब्राउज़र on-device encryption feature के रास्ते में खुलता है, इसलिए यह केवल अटकल है कि पुष्टि न हुए ये दो functions local encryption key setup से जुड़े हो सकते हैं
  • Google ने शुरुआती रिपोर्ट पर जवाब दिया कि यह security vulnerability नहीं है, और parental controls bypass “Intended Behavior” है
  • लेख प्रकाशित होने के बाद अंग्रेजी और रूसी सहित कई मीडिया outlets ने इसे कवर किया, और सार्वजनिक होने के 3 दिन बाद Google ने बताया कि वह रिपोर्ट की दोबारा समीक्षा करेगा
  • संबंधित चर्चा के लिए Hacker News discussion उपलब्ध है

2 टिप्पणियां

 
wedding 2023-06-28

पासवर्ड मैनेजर में जाते समय कुछ एक बीट की देरी जैसी महसूस होती थी.. लगता है वो सिर्फ मेरा वहम नहीं था।

 
GN⁺ 2023-06-27
Hacker News की राय
  • मैंने थोड़ा जांचा, और जब आप "Manage my account" दबाते हैं, तो यह Settings app के अंदर नहीं रहता बल्कि Google Play Services में एम्बेड की गई एक Activity पर चला जाता है
    आखिर में ब्राउज़र com.google.android.gms/.auth.folsom.ui.GenericActivity था, और यह मेरे फ़ोन की डिफ़ॉल्ट सिस्टम WebView implementation, यानी Chrome, का इस्तेमाल करता हुआ नहीं लगा
    Android में addJavascriptInterface के ज़रिए Android code और JavaScript code के बीच interface बनाया जा सकता है, और लगता है GMS के अंदर इसका काफी इस्तेमाल होता है, इसलिए बाद में देखने लायक attack surface लगता है
    संदिग्ध mm interface MagicArchChallengeView के अंदर है, और obfuscated bwuz class से जुड़ा है. bwuz खुद लगभग खाली है, लेकिन फिर कुछ और obfuscated classes से जुड़ता है
    string search करने पर दिखता है कि "qvc" और "pdn" नाम की दो classes संबंधित functions expose करती हैं, और pdn मुख्य लगती है, जबकि qvc में ऐसे काम के error logs हैं जो बताते हैं कि हर parameter क्या है
    setVaultSharedKeys एक JSON object array की उम्मीद करता है जिसमें gaiaId, epoch, और key ये तीन values होती हैं, और उसे list में बदलकर एक abstract class को देता है जो account security से गहराई से जुड़ी लगती है
    addEncryptionRecoveryMethod gaiaId, security domain list, और member public key की उम्मीद करता है, और इसे भी उसी abstract class को देता है
    मुझे यहाँ काम पर निकलना था इसलिए यहीं रुका, लेकिन सिर्फ यह interface ही नहीं बल्कि GMS जो दूसरे interfaces WebView को expose करता है, वे भी और खोदने लायक लगते हैं
    https://developer.android.com/reference/android/webkit/WebVi...

    • समझ नहीं आता कि system default WebView का इस्तेमाल क्यों नहीं हो रहा. तो क्या इसका मतलब Blink नहीं बल्कि WebKit है?
      Blink हो तब भी, शायद वह Chrome जितना up-to-date न हो. docs link देखकर लगता है कि WebKit ही है
    • Alex Russell ने 2021 State of the Browser में कहा था कि Android का WebView Chrome नहीं है
      https://2021.stateofthebrowser.com/speakers/alex-russell/
    • gaiaId का मतलब Google Accounts and ID Administration ID है, तो Google के वैश्विक unique ID को ऐसा नाम देने वाला इंसान खुद पर काफी गर्व महसूस करता होगा, और करना भी चाहिए
  • मुझे समझ नहीं आता कि यह दूसरे embedded WebView से अलग कैसे है. क्या लगभग हर app में "privacy policy देखें" जैसी जगह पर embedded WebView नहीं होता?
    पूरी privacy policy app developer को सौंपने के बजाय HTML दिखाना अक्सर बहुत आसान होता है

    • बिल्कुल वही है. जब app खुद browser नहीं होता, तब इस्तेमाल होने वाला embedded browser Android System WebView ही है
    • क्या ऐसे WebView में मनमानी websites खोली जा सकती हैं? मैंने कभी ऐसा करने में सफलता नहीं पाई
      याद के मुताबिक, कई domains या URLs को allow करने वाला WebView set up करना भी काफी मुश्किल था. मैं Android developer नहीं हूँ, और आखिरी बार इसे छुए हुए भी कई साल हो गए हैं
    • लगता है इस WebView में password manager की key management और recovery के लिए privileged JavaScript functions हैं
    • अगर embedded WebView वाला कोई भी app parental controls bypass कर सकता है, तो यह Android का कहीं बड़ा bug है
      key management वाली बात अभी काफी हद तक अटकल है, और लेखक ने वास्तव में test नहीं किया कि यह क्या करता है, इसलिए फिलहाल बात बस इतनी है कि “पता नहीं ये क्या है, लेकिन दो डरावने दिखने वाले methods हैं”
    • पहले iTunes में भी मज़ाक-मज़ाक में ऐसा ही किया जा सकता था. यह इतना बड़ा मसला है या नहीं, पक्का नहीं कह सकता
  • यह कुछ वैसा ही है जैसे browser block होने पर CHM help files से इंटरनेट पर पहुंच जाना
    धत्त, मेरी उम्र जाहिर हो गई

    • अब exploit के ज़रिए उम्र बताई जाएगी क्या? “कॉलेज लाइब्रेरी terminal पर gopher से किसी site में घुसकर telnet session खोला और गर्मियों की छुट्टियों में दूसरे राज्य की यूनिवर्सिटी का email चेक किया” कैसा रहेगा?
    • admin ने जो games हटा दिए थे, उन्हें दोबारा install करने के लिए भी इसका इस्तेमाल किया था
    • हमारे हाई स्कूल में हमने Notepad के file open dialog से Windows Explorer खोलकर उस अजीब bookshelf shell से बाहर निकलने का रास्ता निकाला था. शायद वह IBM का product था
  • यह बिल्कुल वैसा ही है जैसा मैं बचपन में Windows के parental control app को bypass करने के लिए करता था
    computer इस्तेमाल करने के लिए सिर्फ 1 घंटा मिलता था, और समय खत्म होने पर Microsoft Office apps को छोड़कर बाकी सारे apps बंद हो जाते थे क्योंकि उन्हें productivity apps माना जाता था
    इधर-उधर क्लिक करते-करते किसी तरह Outlook के अंदर browser खोल लिया और Miniclip पर Flash games खेल सका

    • इससे मुझे हाई स्कूल में lock किए गए Mac को bypass करने का तरीका याद आ गया. सिर्फ कुछ apps चल सकते थे और System Preferences भी नहीं खुलता था, लेकिन Safari में default web browser बदला जा सकता था
      मैंने default web browser को Terminal पर सेट किया, फिर Word खोला, उसमें link बनाया और उस पर click किया
      आम तौर पर इस तरह खुला Terminal दूसरे apps launch करने में fail हो जाता था, लेकिन इस तरीके से खुला Terminal instance ज्यादा permissions रखता था, इसलिए open /path/to/your/app से inserted disk पर मौजूद games जैसी चीजें चला सकते थे
      जब study hall के supervising teacher ने आकर पूछा कि क्या Starcraft खेलना ठीक है, तो मैंने कहा, “सर, जैसा कि आप जानते हैं, ये computers काफी locked down हैं, तो अगर हम यह game चला पा रहे हैं, तो स्कूल ने इसकी अनुमति दी होगी.” आज तक यकीन नहीं होता कि यह बात चल गई
  • अगर कोई बच्चा यह hack खुद ढूंढकर blocked sites तक पहुंच सकता है, तो मेरी राय में उसने उसका हक कमा लिया

    • हो सकता है उसने खुद न खोजा हो, बल्कि इंटरनेट या दूसरे बच्चों से पढ़ा-सुना हो
  • ऐसा ही एक bypass about के license page में भी था
    license तक जाने वाले links follow करो, और browser मिल जाता है. car head unit या Peloton bike जैसी जगहों पर browser खोलने में काम आता है

    • मैंने अभी Pixel 6 पर "Third-party licenses" page खोला, और वहाँ अंतहीन चलने वाली links की list दिखाई दी
      यह filesystem के अंदर की सारी files की सूची जैसी लगती है
  • Google को bug report करने वाले इस व्यक्ति का अनुभव मुझे अपना अनुभव याद दिलाता है
    मैं: Google Sheets में एक bug है जिसमें हटाया गया content third party के सामने उजागर हो जाता है
    Google: bug नहीं है। जैसा इरादा था वैसा ही काम कर रहा है। issue बंद
    मैं: सच में? इस application का इस्तेमाल करते हुए मुझे वास्तव में नुकसान हुआ है
    Google: दरअसल bug है, लेकिन यह बहुत पहले से ज्ञात issue है इसलिए bug bounty के दायरे में नहीं आता। issue बंद

    • जब मैंने भी Google को vulnerability report की थी, तब लगभग बिल्कुल यही हुआ था
      मैं: Gmail में एक bug है जिससे forged email, DKIM failure को छिपाकर सामान्य email जैसा दिख सकता है
      Google: "Won't fix (Intended Behavior)"
      मैं: क्या सच में Google का इरादा है कि interface में forged email सामान्य जैसा दिखे?
      Google: दरअसल यह एक ज्ञात issue है
    • मेरा अनुभव भी ऐसा ही रहा। Google से बस गोलमोल जवाब मिले, और कुछ महीनों बाद TAO प्रमुख ने उसी vulnerability के fix की घोषणा की जिसे मैंने शुरुआत में उठाया था
      ऊपर से शुरुआती लेख उस vulnerability को चीन/रूस की hacking से जोड़ने की कोशिश कर रहे थे। ऐसी propaganda Google को खुद पर लागू करनी चाहिए। Google एक अमेरिकी company है, और उसने foreign हो या domestic, किसी के भी दुरुपयोग के लिए backdoor पूरी तरह खुला छोड़ रखा था। वास्तव में दोनों ने उसका दुरुपयोग किया
      Google के साथ सच में कोई समस्या है। 2019 के बाद क्या हुआ, पता नहीं, लेकिन हालात अच्छे नहीं हैं
    • इस कहानी में मैं भी कुछ जोड़ सकता हूँ
      मैं: Google Play Services में bug है
      Google: bug नहीं है। जैसा इरादा था वैसा ही काम कर रहा है। issue बंद
      मैं: मैंने blog पर bug के बारे में पोस्ट किया, और media coverage काफी बड़ी हो गई
      Google: लगता है हम गलत थे! यह सच में bug है। कुछ हफ्तों में फिर संपर्क करेंगे
  • आज मुझे पता चला कि मोबाइल JavaScript console जैसी भी कोई चीज़ होती है
    https://eruda.liriliri.io/

    • इसी व्यक्ति का बनाया हुआ एक remote version भी है: https://github.com/liriliri/chii
      इसमें आप दूसरे computer से developer tools खोल सकते हैं, और सारी जानकारी WebSocket के ज़रिए sync होती है। मैंने इसे एक बार customer device की समस्या debug करते समय इस्तेमाल किया था
    • इसके लिए कोई bookmarklet होता तो अच्छा रहता। मौजूदा browser developer tools भी मूल रूप से इसी तरह शुरू हुए थे, यानी Firebug से
    • बहुत बढ़िया है। iOS के Brave में नहीं चलता, लेकिन Safari में चलता है, तो वह काफी है
    • पता नहीं सिर्फ मेरे साथ हो रहा है या नहीं, लेकिन यह बिल्कुल काम नहीं करता। address bar में JavaScript snippet paste करने पर कुछ नहीं होता, और Nightly में तो वह उसी string को Google search कर देता है
    • कभी-कभी मैं data:text/html, तक इस्तेमाल करने की मेहनत करता हूँ, लेकिन यह हैरान कर देने वाली हद तक feature-rich है
  • जब मेरे माता-पिता बैंक का काम कर रहे होते थे, तब मैं lobby में कुछ ऐसा ही करता था
    उस समय best viewed in Netscape Navigator टैग तो सोने की खान जैसा था। तरीका भी लगभग यही था—ऐसा टैग मिलने तक क्लिक करते रहो, फिर वहाँ से search engine पर चले जाओ

    • एक उधार ली हुई Tesla में मैंने इसका इस्तेमाल YouTube app के ज़रिए लगभग full-screen video दिखाने वाले browser तक पहुँचने के लिए किया था
      उसके बाद मैं एक संदिग्ध adware से भरी streaming site पर गया, लेकिन जैसे ही किसी दूसरे video पर स्विच किया, पूरी Tesla computer system ही hang हो गई और कार को hard reboot करना पड़ा
  • इससे मुझे Windows के पुराने version याद आ गए। F1 दबाने पर Windows Help के ज़रिए कई run commands trigger किए जा सकते थे

    • मेरे दिमाग में भी सबसे पहले यही आया था। कुछ वैसा एहसास जैसे Windows 95/98 के आसपास login screen को bypass करने वाला तरीका: “F1 → help file खोलो → Other... → explorer.exe पर right-click करो और Run चुनो”