- कुछ 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 टिप्पणियां
Hacker News की राय
भले ही Apple क्षेत्रीय पाबंदियों को बायपास करने से रोक दे, व्यवहार को छिपाना बहुत आसान है
किसी dynamic code या interpreted code की बिल्कुल ज़रूरत नहीं, और ऐसी variations इतनी ज़्यादा हैं कि अंततः यह halting problem में बदल जाता है, इसलिए शायद इसका निर्णय करना असंभव होगा
तकनीकी उपायों से बाहर भी जवाबी तरीका होना चाहिए। जैसे सच में अलग-अलग जगहों पर मौजूद लोग crowdsourcing से ऐप टेस्ट करें और malicious behavior खोजें
और सामान्य तौर पर, update check — यानी नया version उपलब्ध है या नहीं यह देखने वाला फ़ीचर — साथ ही यह जांचने के लिए भी इस्तेमाल हो सकता है कि “क्या यह version अभी app review में है?”
Apple App Store ecosystem से निकाले जाने या कानूनी retaliation झेलने की संभावना, तकनीकी रूप से न रोके जा सकने वाले अनचाहे व्यवहार को हतोत्साहित करने के तरीकों में से एक है
आखिरकार 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 नहीं करना चाहिए।”
game developers और Google/Apple के बीच ऐसा समझौता दिखता है कि review bypass होने दें, बस अरबों डॉलर की loot box revenue stream चलती रहे
एक 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 पर चला जाता था
2-week timer लगाया था, और उसके बाद app API calls समेत असली behavior शुरू कर देता था
Apple app review पूरी तरह मज़ाक है
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 ने लिखा है?
हालांकि 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 मिलते हैं
अफ़सोस, गरीब 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% लेने की अनुमति भी नहीं होनी चाहिए
पहली बात, उस 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 के लिए पैसे देते हैं
एक तरफ, वे अपने-अपने stores में खुद को gatekeeper की भूमिका देते हैं, और दोनों दावा करते हैं कि वे end users को सुरक्षित रखते हैं
दूसरी तरफ, अगर problem वाला app profitable हो या उनके कई दूसरे product lines से जुड़ा हो, तो वे अपने लिए rules को selectively लागू करने की flexibility रख लेते हैं
निगरानी करने वालों की निगरानी कौन करेगा?
इसके लिए plan क्या है?
“illegal streaming app”?
मुझे लगा था यह flashlight app में $50/month subscription allow करवाने के तरीके पर लेख होगा
बहुत सारे apps बस remote webpage दिखाने वाले WebView होते हैं
जब भी server page update करता है, app भी update हो जाता है, और review की ज़रूरत नहीं होती