2 पॉइंट द्वारा GN⁺ 2024-02-03 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Google Play Services के अंदर मौजूद छिपा हुआ ब्राउज़र Contacts app के website link से खुल सकता है, और Google parental controls की सामान्य पाबंदियों तथा lock-down mode को bypass कर सकता है
  • यह bypass इसलिए संभव है क्योंकि lock-down mode में भी Google Play Services और फ़ोन वाला Contacts app मौजूद रहता है, और Contacts जो deeplink खोलता है वह parental control block से नहीं रुकता
  • ` Android “what’s new” स्क्रीन तक ले जाता है, और Google Help तथा Google page के ज़रिए इसे ब्राउज़र की तरह इस्तेमाल किया जा सकता है
  • Android 11+ में screen pinning को भी Contacts app में ` खोलकर Google Podcast popup दिखाने और फिर default browser तक जाने के तरीके से bypass किया जा सकता है
  • Google ने parental control bypass और screen pinning bypass की रिपोर्ट अलग-अलग मामलों के रूप में ली, लेकिन screen pinning bypass पर intended behavior कहा, और duplicate handling को भी अलग reward program का मुद्दा बताया

Contacts लिंक से खुलने वाला Google Play Services ब्राउज़र

  • Google Play Services के अंदर एक सीक्रेट ब्राउज़र है जिसे लिंक के ज़रिए access किया जा सकता है, और इसे Contacts app के contact website field से खोला जा सकता है
  • इसे चलाने का तरीका यह है: Contacts app में किसी contact को edit करें या नया बनाएं, फिर “Website” field में https://gds.google.com/gmsdrops डालकर save करें और उसके बाद link खोलें
  • यह link Android की “what’s new” स्क्रीन तक ले जाने वाला deeplink है
    • “Show me” और “Learn more” के बाद ब्राउज़र स्क्रीन में प्रवेश किया जा सकता है
    • इसके बाद hamburger menu में “Google Help” दबाकर, फिर दोबारा menu में “Google” चुनने पर Google page पर जाया जा सकता है
  • इस ब्राउज़र में Google account login हो भी सकता है और नहीं भी
    • यहां से Google से logout करने पर भी Chrome browser पर कोई असर नहीं पड़ता
  • lock-down mode में Google Android launcher और सिस्टम के कुछ हिस्सों सहित कई apps को lock करता है, लेकिन popup दिखाने और restrictions लागू करने के लिए इस्तेमाल होने वाले Google Play Services और फ़ोन के Contacts app को रहने देता है
  • parental controls deeplink खोलने की अनुमति नहीं देते, लेकिन contact के website field पर click करने पर Contacts app लिंक खोलता है, इसलिए यह block नहीं होता

Android screen pinning bypass और Google का जवाब

  • Android screen pinning Android 11+ में एक ऐसा फीचर है जो स्क्रीन को किसी खास app पर pin कर देता है, ताकि बिना अनुमति दूसरे app में न जाया जा सके
  • वही gmsdrops link screen pinning की स्थिति में इस्तेमाल नहीं किया जा सकता क्योंकि यह नया app खोलने की कोशिश करता है
  • लेकिन Google Podcast deeplink पूरा app नहीं, बल्कि popup window के रूप में खुलता है
    • Contacts app के website field में https://podcasts.google.com डालें, और app pinned होने की स्थिति में link खोलें, तो Google Podcast popup window दिखाई देती है
    • Google account icon में “Content policies” दबाने पर default browser तक जाया जा सकता है
    • इसके बाद Google Help और Google menu के ज़रिए Google page पर जाया जा सकता है
  • Google को ये दोनों मामले अलग-अलग रिपोर्ट किए गए थे
    • parental control bypass का मामला
    • Android screen pinning bypass का मामला
  • Google ने parental control bypass वाले मामले को screen pinning bypass वाले मामले में merge कर दिया, और उसके बाद duplicate cases की handling भ्रमित हो गई
  • screen pinning bypass पर Google का जवाब था: “Android screen pinning bypassing is the intended behavior”
  • duplicate handling के बारे में इसे “potentially another issue” के duplicate के रूप में बंद किया गया, और यह भी कहा गया कि यह अलग reward program का मामला है, इसलिए यह उनकी समस्या नहीं है

1 टिप्पणियां

 
GN⁺ 2024-02-03
Hacker News की राय
  • अगर आपकी टीम security vulnerability reports लेती है, तो यह नहीं कहना चाहिए कि “वह दूसरी internal team का काम है, उनसे पूछिए”
    सच तो यह है कि संगठन के भीतर लगभग किसी को भी कोई भरोसेमंद vulnerability report मिले, तो उसे सही व्यक्ति तक पहुँचाना चाहिए; उसे यूँ ही टालने वाली बात नहीं है

    • “दूसरी internal team” वाला जवाब शायद vulnerability के बजाय bug bounty से जुड़ा था
      फिर भी उल्टा देखें तो, बाहरी customer हो या internal stakeholder, support का काम hot potato जैसा है: जो पहला व्यक्ति इसे किसी और को नहीं दे पाता, वही जलता है
      अच्छा तो यह होगा कि असली अधिकार या जिम्मेदारी किसी की भी हो, हर कोई customer complaint सुलझाने की जिम्मेदारी ले; लेकिन हकीकत में बहुत से लोग Copenhagen interpretation of ethics जैसा बर्ताव करते हैं
      जिम्मेदार व्यक्ति तक बात पहुँचाना भी जोखिम भरा है, और उससे ज़्यादा शामिल हुए तो वास्तविक संबंध हो या न हो, आप समस्या में फँसकर जवाबदेह हो जाते हैं
      इसे principal-agent problem कह सकते हैं, या “ऐसी दुनिया में बचकर रहना जहाँ request करने वाला अपनी request मानने वाले व्यक्ति का शिकार कर रहा हो” भी कह सकते हैं
      पहले मैं काम से थोड़ा भी जुड़ी हर internal request निपटाने की कोशिश करता था, लेकिन मेरे direct manager ने कहा कि 1 मिनट से ज़्यादा लगने वाली मदद के लिए project ID या billing code माँगना चाहिए। वजह यह थी कि नहीं तो वे काम नहीं हो पाएँगे जिनके लिए वाकई पैसे मिलते हैं
    • Google “मेरे department का काम नहीं” का बादशाह है
      “Google के अंदर दूसरे department का contact नहीं पता”, “Google की दूसरी team में किसी का email नहीं पता”—आखिर चल क्या रहा है
    • यह उस अर्थ में vulnerability नहीं लगती जिससे system compromise हो जाए
      OS में जोड़ी गई functionality की design flaw तो है, लेकिन क्या यह ऐसा मामला है जिसमें बड़े पैमाने पर investigation जरूरी हो, यह अलग बात है
    • उन्होंने जो “उनसे पूछिए” कहा, वह इस बारे में था कि issue क्यों close किया गया, और इसमें यह अर्थ भी था कि किसी ने पहले ही review किया है
      ऐसा नहीं लगता कि उन्होंने कहा हो, “हम तो देखने भी नहीं वाले”
    • शुरुआत में सही जिम्मेदार व्यक्ति ढूँढना कैसे है, यही समझ नहीं आता
      हमारी company में भी क्या करना चाहिए, इसका अंदाजा नहीं है
  • बचपन में bank जैसी संस्थाओं की lobby में ऐसे computer terminals होते थे जिनमें खास browser लगा होता था, जो सिर्फ company website खोलता था, और उस दौर में Best Viewed In badges भी आम थे
    माता-पिता के काम से साथ जाने पर मैं ऐसे computers ढूँढता, Help page जैसी जगहों पर click करता और वह badge मिल जाता; फिर उससे single-site browser restriction को bypass करके netscape.com जैसी sites पर जा सकता था
    वहाँ से search engine links ढूँढकर मनचाही जगहें देख सकता था

    • Sears, CompUSA जैसे stores में display पर रखे PCs याद आते हैं, जिनमें सिर्फ demo software खुला रहता था और PC खरीदते समय जो असली काम करना होता है, यानी actual use, वह करने नहीं देते थे
      इसलिए मैं CTRL+ALT+DEL से task manager खोलकर demo software को kill कर देता था
      ज़्यादा जिद्दी demos तुरंत फिर launch हो जाते थे, तो msconfig खोलकर startup programs से हटाता और reboot करता था
      पास में देख रहे लोग हैरान होकर अपने PC पर भी वही करने को कहते, ताकि वे भी Minesweeper या Pinball खेल सकें
      आज यह amateur जैसा लगता है, लेकिन 90s के mid में CTRL+ALT+DEL एक तरह का power tool था, जिसे सिर्फ जानकार लोग जानते थे
    • high school के computers पर web filter bypass करने की याद है
      MS Word में URL खोलने का option चुनकर search engine या मनचाही site डालते, तो browser खुल जाता और web filter से बचा जा सकता था
    • पहले library में कई edu hosts पर telnet से connect किया करता था
      वे servers आम तौर पर motd को more से दिखाने के बाद lynx जैसे software पर भेज देते थे, लेकिन restricted mode इस्तेमाल नहीं करते थे, इसलिए !sh डालकर shell खोल सकते थे
      अच्छे दिन थे
    • college में gym के computers पर भी ऐसी restriction थी
      web से email खोल सकते थे, इसलिए मैं search engine link खुद को email करता और email में right-click करके उसी frame में खोलता था
      उसके बाद search results से जहाँ भी पहुँचा जा सकता था, वहाँ जा सकता था
    • “Best Viewed In” badge कैसा होता था, यह ठीक से नहीं पता, और उससे bypass कैसे होता था, यह जानना चाहता हूँ
      2000s के high school में restrictions bypass करने का अनुभव तो है, इसलिए अगर कोई राह चलते इसे detail में समझा दे तो अच्छा होगा
  • Google का parental controls फीचर बहुत सारी कमियों से भरा है
    Play Store ऐप को disable करने की मांग बहुत पहले से है, लेकिन आज भी adb के बिना यह संभव नहीं है, और adb दूसरी समस्याएँ पैदा करता है, इसलिए यह अच्छा समाधान नहीं है
    ऐसा लगता है जैसे असली बच्चे parental controls को test ही नहीं करते
    कुछ समय तक, YouTube पर time limit लगाने के बाद भी Play Store खोलकर, screenshots की list में video वाली किसी app पर जाकर वहाँ से YouTube में चले जाने पर इसे बहुत आसानी से bypass किया जा सकता था
    मेरे बेटे ने खुद इसे ढूँढकर मुझे दिखाया था

    • Google parental controls असल में लगभग छोड़ा हुआ software लगता है; इसका व्यवहार भी अनगढ़ है और यह Google Home या Google TV जैसे दूसरे products/services के साथ भी ठीक से integrated नहीं है
      मैंने इस समस्या को समेटते हुए 5-page document लिखा है, लेकिन भेजूँ किसे, यह नहीं पता
      सबसे बड़ी शिकायत तब आती है जब toddlers नहीं, बल्कि दो बड़े बच्चे और कई Google devices—phone, tablet, Google TV, और Google account से logged-in PC—साथ में हों
      Google शायद parental supervision को ऐसे scenario के रूप में सोचता है जहाँ “parent Billy का phone physically उसे देता है और खत्म होने पर वापस ले लेता है”
      मूल रूप से यह account level पर नहीं बल्कि device level पर है, इसलिए झंझट भरा है और bypass करना भी आसान है
      उदाहरण के लिए, अगर Jill घर के 3 Google TV पर अपने account से access कर सकती है, तो Family Link हर TV के लिए अलग-अलग set करवाता है कि रोज़ कितने घंटे allow करने हैं
      लेकिन Jill के लिए TV बस TV है, इसलिए अगर वह घर में अकेली है, तो पहले TV का quota खत्म करके अगले TV पर चली जाएगी
      मेरे पास पक्का आधार नहीं है, लेकिन लगता है कि अलग-अलग product teams असल में closely collaborate नहीं करतीं, या शायद collaborate न करने पर ही reward मिलती है, और ये teams Google के अंदर dead-end teams भी हो सकती हैं
      Family Link team में आने वाले product/engineering लोग शायद असल में बच्चों वाले नहीं हैं, या उनके बच्चे बहुत छोटे हैं, और अगर हैं भी तो बस एक छोटा बच्चा जैसा मामला है
    • “ऐसा लगता है जैसे असली बच्चे parental controls को test ही नहीं करते” वाली बात accessibility services पर भी वैसे ही लागू होती है, ऐसा मुझे लगता है
      accessibility permission मिलते ही user के device पर पूरा control मिल सकता है
      permissions को बाँटकर ज्यादा fine-grained control APIs expose किए जा सकते थे, लेकिन लगता है design ऐसे बेहद extreme case के around किया गया है जहाँ पूरी तरह दृष्टिहीन user को हर interaction के interface के रूप में accessibility app इस्तेमाल करनी पड़ती है
      नतीजा यह है कि उस API की कोई एक capability भर इस्तेमाल करनी हो, तब भी app पर पूरी तरह भरोसा करके उसे device पर कुछ भी करने का blank cheque देना पड़ता है
      अंततः “हमारा intended use scenario सिर्फ यही है और दूसरे uses पर compromise नहीं करेंगे” जैसी वजह से platform security में एक बहुत बड़ा छेद बन जाता है
    • parental controls अजीब चीज़ हैं
      अगर बच्चे को peer group से पूरी तरह अलग करने के लिए basement में बंद नहीं कर रहे, तो थोड़ी भी रुचि रखने वाले बच्चे से technically जीतना लगभग नामुमकिन है
      यह feature soft boundary के रूप में सबसे अच्छा काम करता है—इतना कि bypass करना साफ और बिना ambiguity वाली अवज्ञा बन जाए
      आखिर यह parental controls है, NSA को रोकने वाली security नहीं, और इसे technically perfect बनाना शायद सबके लिए ज्यादा खराब हो सकता है
    • मुझे नहीं लगता कि Android या iOS पर parental controls को सच में बहुत लोग इस्तेमाल करते हैं
      यह feature consumer को ज्यादा safe महसूस कराने के लिए डाला गया है, लेकिन सच में इस्तेमाल करने की कोशिश करते ही लोग जल्दी हार मान लेते हैं
      छोटे से उदाहरण के लिए, iOS Screen Time में websites को allowlist तक सीमित किया जा सकता है, जो useful लगता है, लेकिन ऐसा करने पर कई apps के login screens जैसी चीज़ें खूब टूट जाती हैं
      यह कोई clue भी नहीं देता कि कुछ ठीक करने के लिए कौन-सा URL allow करना होगा
      modern technology इस्तेमाल करते हुए कभी-कभी लगता है, “यह इतना complex और broken है कि इसे सच में इस्तेमाल करने वाले ज्यादा users हो ही नहीं सकते,” और parental controls बिल्कुल वैसा ही महसूस कराते हैं
    • पहले parental controls इस्तेमाल करता था, लेकिन अब छोड़ दिया है
      आखिर यह बस parent का substitute है
      या तो आप बच्चे में interest लेते हैं और जानते हैं कि वह क्या कर रहा है, या नहीं
      अगर आपको लगता है कि बच्चा web की किसी चीज़ के प्रति vulnerable है, तो शायद शुरू से उसे phone न देना ही सही होगा
      अगर बच्चा समझने लायक उम्र का है, तो उसे software parental controls नहीं, parent चाहिए; और अच्छे parent हों तो बच्चे की apps में parental controls की जरूरत नहीं पड़ती
      parental controls दूसरे sources से apps install करना भी रोकते हैं, जबकि मुझे Play Store apps से ज्यादा F-Droid apps पसंद हैं
      अंत में, यह feature यह भ्रम सिखाता, train करता और reinforce करता है कि कोई software company हमें control कर रही है और “खतरों से बचा” रही है
  • यह Windows 98 login screen bypass जैसा hacking trick है
    https://i.imgur.com/BULPmCI.gif
    सच कहूँ तो मैंने उम्मीद नहीं की थी कि Google system design में Microsoft Windows 98 के level तक खराब हो जाएगा

    • यह शानदार exploit इसलिए है क्योंकि buffer overflow जैसी obscure knowledge जानने की जरूरत नहीं पड़ती
      आम user भी steps follow कर सकता है
      security का बड़ा हिस्सा शायद attack surface को minimize करने का काम है, ताकि सोचने वाली चीज़ें कम रहें
      login dialog में tooltip print कर पाने की जरूरत आखिर क्यों होनी चाहिए, समझ नहीं आता
      जैसे ही printing आती है, उसके साथ तरह-तरह के unsafe third-party elements भी आ जाते हैं
      tooltip या help printing allow भी करें, तो ऐसा security context होना चाहिए था जहाँ ऐसे features बंद हो जाएँ
      PDF भी ऐसा ही है; 3D models या scripting जैसी arbitrary features में से 99% security exploits के लिए इस्तेमाल हुए
      default simple रखना और ऐसे features से बचना बेहतर है
    • यह lock screen को bypass करना नहीं है
  • यह classic meme याद आता है: https://imgur.com/BULPmCI?r

    • मेरे दिमाग में भी ठीक वही आया
      Craigslist से second-hand खरीदे Pixel 2 के FRP bypass में मैंने original post जैसी technique इस्तेमाल की थी
      बचपन में boredom में इस screen को घंटों घूरते-घूरते आखिर उसे crack करके अंदर घुसने और पहली बार वह “हैक करने का मज़ा” महसूस करने वाला पल शायद मेरी पूरी जिंदगी की दिशा तय कर गया, ऐसा भी लगा
  • मेरे पहले “hacking” और कंप्यूटर सिस्टम के अंदरूनी हिस्सों से छेड़छाड़ करने के अनुभव याद आते हैं, और वही IT और engineering career तक ले गया
    Halo PC की pirated copy करते हुए एक Trojan horse से परिवार का कंप्यूटर खराब कर दिया था, और पिता के घर आने से पहले उसे ठीक करने का तरीका निकालना पड़ा
    जब माता-पिता ने हमारे personal computer पर अचानक NetNanny जैसा parental control लगा दिया, तब भी उसे bypass करना पड़ा। तब तक मैं कई सालों से इंटरनेट इस्तेमाल कर रहा था, और शायद ऊपर वाली कमजोर pirated copy की वजह से Comcast से कोई पत्र भी आया होगा
    बदलावों के निशान छोड़े बिना netbook को फिर से इस्तेमाल लायक restore करने की प्रक्रिया में Linux Live CD और Linux से परिचय हुआ
    अच्छा लगता है कि कल के hackers को भी अब भी ऐसी ही शिक्षा मिल रही है

    • इसी तरह, National Capital Feenet's](https://www.ncf.ca/en/)'s) के Gopher pages में काफी देर तक खंगालने की याद है
      link के link के link में ऐसा link ढूंढा जिससे arbitrary telnet connection बनाया जा सके, ताकि मुफ्त dial-up service को सिर्फ उनकी अपनी service तक सीमित रखने वाली रोक को bypass किया जा सके
      मसलन tamu.edu के public server पर Nethack खेलने की कोशिश थी, लेकिन अब exact domain name याद नहीं है
    • NetNanny को bypass करने से मेरी computer skills जरूर बढ़ीं
      classic था
  • इससे जुड़ी एक पुरानी पोस्ट भी है
    Google has a secret browser hidden inside the settings - https://news.ycombinator.com/item?id=36478206 - जून 2023, 312 comments

  • मैंने पढ़ा कि Google Play Services खुद को नई permissions भी दे सकता है[1]
    यह कैसे संभव है? क्या इसके पास root permissions हैं?
    [1]https://developers.google.com/android/guides/permissions

    • root नहीं है, लेकिन यह एक privileged system app है, इसलिए installed apps root के बिना जो काम नहीं कर सकते, वैसे ढेर सारे काम कर सकता है
    • system apps या vendor apps को भी manifest में permissions पहले से define करनी पड़ती हैं, इसलिए हर system app सब कुछ नहीं कर सकता
      लेकिन ऐसी apps के लिए accessible permissions की list इतनी व्यापक होती है कि अगर developer ने काफी कुछ define कर रखा हो, तो practically उसे root की तरह इस्तेमाल किया जा सकता है
    • सही
      यह असली root user नहीं है, लेकिन इस पर blind trust किया जाता है, और यह user confirmation के बिना app install करने जैसे काम कर सकता है
      GMS पर दूसरे blog posts में जिस तरह बताया गया है, JS bridge privileged scope में run हो सकता है
      Android install करते समय Google Privacy Policy से सहमति देकर आपने एक तरह से इसके लिए भी सहमति दे दी होती है
    • अच्छी बात है कि इसे privileged app के बजाय sandbox के अंदर install किया जा सकता है
      उदाहरण के लिए GrapheneOS में यह संभव है
    • इसे backdoor कहना सही होगा
      यह पहले से ही user permission के बिना apps install और remove भी कर सकता है
      अतीत में इसे लेकर समस्या भी हुई थी, लेकिन पर्याप्त बड़ा मामला नहीं बना
  • sandboxed Play Services इस्तेमाल करने वाला GrapheneOS प्रभावित नहीं लगता
    Phone app शायद contacts के web URLs देख या खोल नहीं सकता, और Contacts app भी pinned mode में लेख में दिए गए दोनों URLs खोलने में विफल रहा

  • अगर 2023 की पिछली discussion देखनी हो, तो यहां है, 312 comments
    https://news.ycombinator.com/item?id=36478206