2 पॉइंट द्वारा GN⁺ 2024-08-05 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • कुछ iOS अवैध streaming ऐप्स को इस तरह डिज़ाइन किया गया था कि वे सामान्य ऐप की तरह review पास कर लें और बाद में छिपे हुए features चालू कर दें; code analysis में location-based blocking और remote update के तरीके की पुष्टि हुई
  • अलग-अलग developer accounts से वितरित ऐप्स ने एक ही codebase साझा किया, और React Native तथा Microsoft CodePush SDK की मदद से App Store की दोबारा समीक्षा के बिना ऐप के कुछ हिस्से बदले जा सकते थे
  • एक खास ऐप ने GitHub repository और IP-आधारित location API का उपयोग कर देश, क्षेत्र, शहर और अनुमानित longitude-latitude डेटा की जाँच की, और Apple review environment में छिपा हुआ interface नहीं दिखाया
  • ऐप पहली बार चलने के कुछ सेकंड बाद location API को कॉल करता था, जिससे automated review process से बच निकला; San Jose, California location पर proxy सेट करने के बाद भी छिपी हुई screen दिखाई नहीं दी
  • Apple location-specific behavior testing और fraudulent apps हटाने की प्रक्रिया मज़बूत कर सकता है, लेकिन अभी उसने केवल इतना बताया है कि संबंधित ऐप्स हटा दिए गए हैं; इसी तरह के ऐप्स की मंज़ूरी रोकने के ठोस कदम सार्वजनिक नहीं किए गए

समीक्षा पास करने के बाद किसी दूसरे ऐप की तरह काम करने वाली संरचना

  • 9to5Mac ने कई iOS अवैध streaming ऐप्स के App Store review को धोखा देकर मंज़ूर होने के मामलों को कवर किया, और बाद में code analysis के ज़रिए bypass method के विस्तृत कामकाज की पुष्टि की
  • “Collect Cards” कुछ देशों में App Store free app download ranking में ऊँचे स्थान पर पहुँचा था, और सार्वजनिक होने के बाद Apple ने उसे हटा दिया
  • बाद में उसी ऐप के कई versions फिर से App Store पर दिखे, जिसके बाद review team को धोखा देने के तरीके का विश्लेषण किया गया

साझा codebase और remote updates

  • विश्लेषित ऐप्स अलग-अलग developer accounts से वितरित किए गए थे, लेकिन उन्होंने एक ही codebase साझा किया
  • ये ऐप्स JavaScript-आधारित cross-platform framework React Native पर बनाए गए थे
  • Microsoft के CodePush SDK का उपयोग करने पर App Store में नया build submit किए बिना ऐप के कुछ हिस्सों को update किया जा सकता है
  • React Native और CodePush का उपयोग अपने-आप में App Store rules का उल्लंघन नहीं है, और कई लोकप्रिय ऐप्स भी यही तरीका अपनाते हैं
  • दुर्भावनापूर्ण डेवलपर्स ने इसी वैध update तकनीक का इस्तेमाल App Store review को bypass करने के लिए किया

location के आधार पर Apple review environment की पहचान

  • विश्लेषित ऐप्स में से एक ने GitHub repository की ओर इशारा किया, जो कई अवैध streaming ऐप्स के लिए files उपलब्ध कराती हुई प्रतीत होती है
  • उस ऐप ने IP address के आधार पर device location पता करने के लिए एक specific API का इस्तेमाल किया
    • API देश, क्षेत्र, शहर और अनुमानित longitude तथा latitude जैसी जानकारी लौटाती है
  • ऐप पहली बार खुलने पर कुछ सेकंड इंतज़ार करता था और उसके बाद location API को कॉल करता था
    • इस delay की वजह से App Store के automated review process में ऐप code का असामान्य behavior सामने नहीं आता था
  • 9to5Mac ने proxy का उपयोग कर location को San Jose, California दिखाकर ऐप behavior की जाँच की
    • इस location पर ऐप ने छिपा हुआ interface कभी नहीं दिखाया

मंज़ूरी के बाद असली interface दिखाना

  • Apple द्वारा केवल बुनियादी functionality दिखाने वाले ऐप को approve करने के बाद, डेवलपर CodePush के ज़रिए ऐप में अपनी मनचाही सामग्री update कर देता था
  • ऐप केवल “safe” locations में ही अपना वास्तविक interface दिखाता था
  • इस संरचना में review के दौरान Apple के environment और सामान्य users के environment में ऐप का behavior अलग हो सकता था

Apple के सामने बची प्रतिक्रिया की चुनौती

  • Apple review process को additional testing के ज़रिए बेहतर बना सकता है, ताकि यह जाँचा जा सके कि ऐप अलग-अलग locations में कैसे behave करता है
  • App Store में fraudulent apps को अधिक सक्रिय रूप से खोजकर हटाने की भी आवश्यकता है
  • 2017 में Uber पर Cupertino स्थित Apple headquarters के लिए “geofence” इस्तेमाल करने का आरोप लगा था
    • कहा गया था कि उस location पर ऐप चलने पर web भर में user fingerprinting और tracking के लिए इस्तेमाल होने वाला code अपने-आप disable हो जाता था
  • 2021 के दस्तावेज़ के अनुसार App Store Review team में हर सप्ताह 100,000 से अधिक ऐप्स की समीक्षा करने वाले 500 से अधिक मानव विशेषज्ञ हैं
    • इसके बावजूद अधिकांश ऐप्स manual review से पहले automated review process से गुज़रते हैं, जो App Store guidelines के उल्लंघन की जाँच करता है
  • Apple के spokesperson ने संबंधित खुलासे के बाद कहा कि उन ऐप्स को App Store से हटा दिया गया है, लेकिन कंपनी ऐसे ही ऐप्स की मंज़ूरी रोकने के लिए क्या कदम उठा रही है, इस पर कोई विवरण नहीं दिया

1 टिप्पणियां

 
GN⁺ 2024-08-05
Hacker News की राय
  • भले ही Apple क्षेत्रीय पाबंदियों को बायपास करने से रोक दे, व्यवहार को छिपाना बहुत आसान है

    1. ऐप build number को API call के ज़रिए सर्वर पर भेजता है
    2. API response से छिपे हुए फ़ीचर को enable/disable किया जाता है
    3. हर build के review पास करने के बाद ही छिपा हुआ फ़ीचर चालू किया जाता है
    4. फ़ायदा?
      किसी dynamic code या interpreted code की बिल्कुल ज़रूरत नहीं, और ऐसी variations इतनी ज़्यादा हैं कि अंततः यह halting problem में बदल जाता है, इसलिए शायद इसका निर्णय करना असंभव होगा
    • सही है। आखिरकार इस तरह की logic bomb जैसी चीज़ों को रोका नहीं जा सकता; यह बस बिल्ली-चूहे का खेल है
      तकनीकी उपायों से बाहर भी जवाबी तरीका होना चाहिए। जैसे सच में अलग-अलग जगहों पर मौजूद लोग crowdsourcing से ऐप टेस्ट करें और malicious behavior खोजें
    • 1~3 को इस तरीके से भी बदला जा सकता है कि ऐप अपनी App Store listing page चेक करे
      और सामान्य तौर पर, update check — यानी नया version उपलब्ध है या नहीं यह देखने वाला फ़ीचर — साथ ही यह जांचने के लिए भी इस्तेमाल हो सकता है कि “क्या यह version अभी app review में है?”
    • Apple developer onboarding और developer agreement की प्रक्रिया में कुछ हद तक due diligence इसलिए भी करता है, ताकि system का दुरुपयोग करने वाले developer पर कानूनी कार्रवाई भरोसेमंद तरीके से कर सके
      Apple App Store ecosystem से निकाले जाने या कानूनी retaliation झेलने की संभावना, तकनीकी रूप से न रोके जा सकने वाले अनचाहे व्यवहार को हतोत्साहित करने के तरीकों में से एक है
    • लगता है AI जल्द ही उस मुकाम के करीब पहुंच जाएगा जहां synthetic users और असली users में फर्क करना संभव नहीं रहेगा। ऊपर की techniques और इस thread की दूसरी techniques को कम करने के लिए Apple शायद review process को बहुत automated और continuous रूप में तेज़ी से बदल देगा
      आखिरकार ecosystem और government level के दबाव का ज़्यादा इस्तेमाल करना होगा ताकि terms reasonable और fair रहें। क्योंकि terms को bypass करने वाले hacks लगभग असंभव हो जाएंगे। मुझे ये hacks clever लगते हैं, लेकिन ये लंबे समय तक टिकेंगे नहीं
  • अगर आप CodePush जैसी dynamic updates पर Apple की wording जानना चाहते हैं, तो वह यहां है: https://github.com/microsoft/react-native-code-push#store-gu...
    “Executable code
    नीचे दिए गए paragraph में बताए गए मामलों को छोड़कर, applications executable code download या install नहीं कर सकते। Interpreted code application में download किया जा सकता है, लेकिन वह code (a) App Store में submit किए गए application के intended और advertised purpose से मेल न खाने वाली functionality देकर application के मुख्य purpose को नहीं बदलना चाहिए, (b) दूसरे code या applications के लिए store या storefront नहीं बनाना चाहिए, और (c) operating system की signing, sandbox या अन्य security features को bypass नहीं करना चाहिए।”

    • कम-से-कम live service games में लगभग 100% mobile पर नियमित रूप से नया interpreted code download करते हैं, और यह practically सब app store review को bypass करने जैसा है
      game developers और Google/Apple के बीच ऐसा समझौता दिखता है कि review bypass होने दें, बस अरबों डॉलर की loot box revenue stream चलती रहे
    • इस स्तर पर, अगर app कुल मिलाकर लगभग वही purpose बनाए रखता है और उसका approach भी बहुत अलग नहीं है, तो यह rule काफी खुला लगता है
      एक prominent feature cluster यह है कि कई apps Apple के walled payment system के बाहर subscription fee लेते हैं। वजह यह है कि app का असली काम सिर्फ device के अंदर नहीं, बल्कि cloud में होता है। app को एक basic local app और cloud में होने वाले extra work में बांटने के फायदे हैं, लेकिन device performance बेहतर होने के साथ यह देखना लगातार ज्यादा आकर्षक हो रहा है कि locally क्या किया जा सकता है
      अगर app की high-level structure पर्याप्त साफ है, तो उसके अंदर की details बाद में भरी जा सकती हैं
      user preferences या usage patterns वगैरह के आधार पर अधिक dynamic interface generation की अनुमति देने वाली SDUI जैसी चीज़ें मुझे लंबे समय से पसंद रही हैं
      fixed workflows के लिए software बनाने का approach धीरे-धीरे outdated होता जा रहा है। चाहे pandemic lockdown के हर चरण में बदलती requirements हों, या user experience की वास्तविक personalization, fixed mindset वाला software ऐसी software से replace हो रहा है जिसे flexibility चाहिए
  • जब Apple को नापसंद behavior पास करवाना पड़ा, तो मैंने time-based trick इस्तेमाल की
    app submission के 20 दिन बाद एक button का behavior बदल जाता था, जिससे “open file” dialog सीधे user root directory पर चला जाता था

    • मैंने अपने एक app में भी ठीक यही किया था। वह private app था, इसलिए login code के बिना इस्तेमाल नहीं हो सकता था, लेकिन Apple हर feature test करना चाहता था। इसलिए मैंने app में कुछ fake screens डाल दिए, और वे screens API call तक नहीं करते थे
      2-week timer लगाया था, और उसके बाद app API calls समेत असली behavior शुरू कर देता था
      Apple app review पूरी तरह मज़ाक है
    • बढ़िया। यह दिखाता है कि app validation process कितना बेकार है
      reviewers के system को fingerprint की तरह identify करके सिर्फ उन्हीं से features सीधे छिपाने का तरीका भी शायद निकाला जा सकता है
  • थोड़ा अलग मुद्दा, scam apps की भारी majority शायद weekly recurring subscription से लोगों का पैसा लेती है
    non-recurring 1-week pass उपयोगी हो सकता है। जैसे travel के दौरान 1-week VPN app। लेकिन weekly recurring payment के लिए manual approval जरूरी होना चाहिए। हर app को weekly recurring billing लेने की अनुमति नहीं होनी चाहिए

  • pirated app को malicious कहना बहुत ज्यादा लगता है। क्या मैं कुछ miss कर रहा हूं, या यह लेख copyright holder ने लिखा है?

    • उल्टा, अगर pirated app ऐसा कर सकता है, तो malware भी जाहिर तौर पर कर सकता है। और मुझे लगता है Apple असली malware से ज्यादा piracy की परवाह करता है
      हालांकि top-grossing apps तो पहले से ही scam apps हैं, और जहां तक मुझे याद है हमेशा से रहे हैं, इसलिए इसमें कोई नई बात भी नहीं है
  • “2021 में प्रकाशित documents के अनुसार, App Store Review team में 500 से अधिक human experts हैं, जो हर हफ्ते 100,000 से अधिक apps review करते हैं।”
    इस sentence की ambiguous wording को नजरअंदाज करते हुए, अगर मान लें कि reviewers अपने working hours का 100% review पर लगाते हैं और standard work week follow करते हैं, तो प्रति app लगभग 12 minutes मिलते हैं

    • उसी साल, 2021 में Apple App Store की कुल revenue 85 billion dollars थी
      अफ़सोस, गरीब Apple शायद इतने और reviewers hire करने की हैसियत नहीं रखता कि हर app के लिए meaningful review process सुनिश्चित हो और decent working conditions में काम करने वाले workers को पर्याप्त pay दे सके। शायद वे हर हफ्ते review करने वाले apps के quota के दबाव में होंगे
      तो फिर Apple को 30% लेने का हक फिर से क्यों है?
  • अगर नया ऐप App Store की समीक्षा पास करके बच जाता है, तो ऐसे Telegram चैनल/ग्रुप हैं जहाँ Apple के कार्रवाई करने तक उसे इस्तेमाल करने के लिए हजारों लोग जुट जाते हैं
    signing certificate और Apple developer machine slots का भी बाज़ार है, ताकि ज़्यादा तकनीकी समझ वाले लोग IPA को खुद sign करके install कर सकें

  • अमेरिका को DMA जैसे कानून की सख्त ज़रूरत है। किसी एक कंपनी को अमेरिकी users के 60% से ज़्यादा को उनकी पसंद के ऐप install करने के मामले में बाँधकर रखने की अनुमति नहीं होनी चाहिए
    इसी तरह Apple और Google जैसी दो कंपनियों को पूरे mobile app market में होने वाले सभी revenue का 15–30% लेने की अनुमति भी नहीं होनी चाहिए

    • दिशा से सहमत हूँ, लेकिन मुझे लगता है यह नज़रिया user-centric से ज़्यादा developer-centric है
      पहली बात, उस 60% ने iOS चुना है। वे “बंधक” नहीं हैं; वे छोड़ सकते हैं। और यह कोई नया व्यवहार भी नहीं है, iPhone launch के समय से ऐसा ही है। Consumers इसके पक्ष में वोट कर रहे हैं [1]
      दूसरी बात, Google यह control नहीं करता कि user क्या install करे, इसलिए परिभाषा के हिसाब से वह “सभी revenue” का हिस्सा नहीं लेता। mobile apps से आने वाली value का बड़ा हिस्सा भी दूसरी जगह पैदा होता है [2], इसलिए Apple वाला आंकड़ा भी सटीक नहीं है
      developer होने के नाते स्वाभाविक है कि हम user devices तक मनचाहा access चाहते हैं और अपनी पसंद का code चलाना चाहते हैं। दुर्भाग्य से कुछ developers consumers के लिए नुकसानदेह कारणों से ऐसा access चाहते हैं। इसलिए developers system को game की तरह exploit करते हैं, और ईमानदार apps reject हो जाते हैं
      लेकिन यह समझना ज़रूरी है कि users इसी तरह का curated access चाहते हैं, और वे इसके खिलाफ नहीं बल्कि इसके पक्ष में वोट कर रहे हैं
      [1] messengers को लेकर बहस हो सकती है, लेकिन वह app की समस्या नहीं, messenger की समस्या है
      [2] मैं जो लगभग हर app install करता हूँ वह free है। उस app को बनाने वाली company system के दूसरे हिस्सों से revenue कमाती है। हमारे पास भी product से जुड़ा एक “free app” है, और लोग उस product के लिए पैसे देते हैं
    • क्या आपने लेख पढ़ा? यह Uber द्वारा review को bypass करके Apple के rules और users की इच्छा के खिलाफ users को track करने की कहानी है। या दूसरे apps द्वारा pirated software फैलाने के लिए ऐसा करने की कहानी है
    • Apple/Google का रुख भी काफी विरोधाभासी लगता है
      एक तरफ, वे अपने-अपने stores में खुद को gatekeeper की भूमिका देते हैं, और दोनों दावा करते हैं कि वे end users को सुरक्षित रखते हैं
      दूसरी तरफ, अगर problem वाला app profitable हो या उनके कई दूसरे product lines से जुड़ा हो, तो वे अपने लिए rules को selectively लागू करने की flexibility रख लेते हैं
      निगरानी करने वालों की निगरानी कौन करेगा?
    • दलील को और convincing बनाने के लिए खराब software से users को बचाने के तरीकों पर ideas भी जोड़ना अच्छा होगा
      इसके लिए plan क्या है?
    • सहमत हूँ, लेकिन यह लेख से कैसे related है, यह मुझे ठीक से समझ नहीं आ रहा
  • illegal streaming app”?
    मुझे लगा था यह flashlight app में $50/month subscription allow करवाने के तरीके पर लेख होगा

  • बहुत सारे apps बस remote webpage दिखाने वाले WebView होते हैं
    जब भी server page update करता है, app भी update हो जाता है, और review की ज़रूरत नहीं होती