2 पॉइंट द्वारा GN⁺ 2023-06-27 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • वाहन की बैटरी स्थिति जांचने वाला BM2 ऐप न सिर्फ GPS coordinates, बल्कि आसपास के Wi-Fi और mobile cell tower जानकारी भी इकट्ठा कर remote server पर भेज रहा था
  • डेटा product/app developer Leagend के bm2.quicklynks.com server और location service SDK developer AMap के server पर गया; ये क्रमशः Alibaba Cloud Hong Kong और Beijing hosts के रूप में पहचाने गए
  • Google Play के अनुसार यह 100K+ downloads वाला ऐप था, लेकिन शुरुआती app store privacy labels में “data sharing नहीं”, “data collection नहीं”, “data in transit encrypted” जैसे दावे असली व्यवहार से मेल नहीं खाते थे
  • Android में Bluetooth scan के लिए location permission जरूरी होने से, device इस्तेमाल करने के लिए user को व्यवहार में location permission देनी पड़ती थी; iOS ऐप में location permission deny करने पर भी battery monitor function काम करता था
  • 25 जुलाई 2023 के update के बाद AMap SDK दोनों बड़े app store versions से हटा दिया गया, लेकिन GPS location data अब भी Alibaba Cloud Hong Kong server पर भेजा जाता है और iPhone ऐप user का street address भी भेजता है

बैटरी मॉनिटर ऐप ने जो लोकेशन डेटा भेजा

  • लक्ष्य product एक Bluetooth battery monitor है, जिसे वाहन की battery terminals से जोड़कर smartphone से pair किया जाता है और यह voltage/percentage दिखाता है व crank test चलाता है
  • Australia के electronics retailer Jaycar Electronics से PowerTech brand product खरीदकर विश्लेषण किया गया; यह Leagend के Bluetooth 4.0 Battery Monitor का rebranded product लगता है
  • इसी series के products Repco के Century brand, ZX-1689, Li Battery Monitor जैसे नामों से भी पहचाने जाते हैं
  • Android ऐप BM2 के Google Play पर 100K+ downloads और 1.55K reviews थे
  • iPhone के लिए BM2 ऐप ने भी network traffic जांच में remote server पर location data भेजा

भेजने की मंज़िलें और collection scope

  • ऐप battery voltage के साथ-साथ GPS coordinates, आसपास के mobile cell tower data और आसपास के Wi-Fi access point information भी collect करता है
  • उस समय पहचाने गए location data transmission targets दो श्रेणियों में थे
    • Leagend/BM2 app server: bm2.quicklynks.com, 47.244.125.231, Alibaba Cloud Hong Kong
    • AMap SDK server: dualstack-cgicol.amap.com, 106.11.130.194, Alibaba Cloud Beijing
  • AMap Alibaba द्वारा अधिग्रहित एक Chinese digital map provider है, और उसका SDK GPS के अलावा phone द्वारा collect किए जा सकने वाले दूसरे location-related data भी लेता है
  • 25 जुलाई 2023 के update के बाद दोनों बड़े app store apps से AMap SDK हटा दिया गया
    • AMap के mainland China servers पर जा रहे GPS, Wi-Fi और cell tower data collection बंद हो गए
    • GPS location data अब भी Alibaba Cloud Hong Kong server पर भेजा जाता है
    • iPhone ऐप user का street address भी पता करके भेजता है

App store privacy labels और असली व्यवहार

  • 27 जून 2023 तक BM2 ऐप developer ने Google Play और Apple App Store के privacy labels update कर precise location data collection स्पष्ट किया
  • उससे पहले Google Play label ऐप के असली व्यवहार से मेल नहीं खाता था
    • “तीसरे पक्षों के साथ data sharing नहीं”: battery statistics के साथ latitude/longitude quicklynks.com server पर भेजे गए, crash analytics umeng.com पर, और Wi-Fi/cell tower/GPS coordinates AMap पर भेजे गए
    • “data collection नहीं”: location data और battery-related data collect किए गए
    • “data in transit encrypted”: BM2 cloud server को भेजा गया data unencrypted HTTP से भेजा गया
  • privacy policy की detailed wording में “Hong Kong” और “location information” शामिल थे

Android permissions से बनी structural समस्या

  • Android ऐप चलने के लिए location permission मांगता है, और permission न देने पर hardware device इस्तेमाल नहीं किया जा सकता
  • Android 6.0 से Bluetooth और Wi-Fi scanning के जरिए आसपास के external devices के hardware identifiers तक पहुंचने के लिए ACCESS_FINE_LOCATION या ACCESS_COARSE_LOCATION permission जरूरी है
  • BM2 ऐप को असल में BLE scan की जरूरत है, लेकिन व्यापक location permission GPS, cell tower और Wi-Fi data access तक संभव बनाकर misuse की गुंजाइश छोड़ देती है
  • Android 12 और उससे ऊपर में केवल BLUETOOTH_SCAN permission से BLE scan संभव है
  • Google documentation के अनुसार ACCESS_FINE_LOCATION में android:usesPermissionFlags="neverForLocation" specify किया जा सकता है, लेकिन यह तभी लागू होता है जब Bluetooth scan results को physical location infer करने में इस्तेमाल न किया जाए

Network traffic में पुष्टि हुई बातें

  • Mitmproxy के WireGuard mode का उपयोग करके mobile app traffic जांचा गया
  • BM2 HTTPS का उपयोग नहीं करता, इसलिए certificate install किए बिना भी Android और iOS पर latitude/longitude transmission की पुष्टि की जा सकती है
  • ऐप battery monitor device से connect होने के बाद http://bm2.quicklynks.com:8080/api/bm2/userDevice/upload? पर POST request भेजता है
  • request में latitude/longitude fields के साथ battery voltage samples, hardware MAC address, nickname, serialNo शामिल होते हैं
  • उस समय DNS और IP information lookup के परिणाम में bm2.quicklynks.com 47.244.125.231 के रूप में पहचाना गया, और IP information Hong Kong के Sham Shui Po में Alibaba-related AS दिखाती थी

AMap SDK ने जिन location signals को handle किया

  • AMap SDK GPS, Wi-Fi और mobile cell tower data collect करता है
  • mobile data में Cell Global Identity शामिल है
    • MCC: Mobile Country Code
    • MNC: Mobile Network Code
    • MCC + MNC: PLMN, mobile carrier identification
    • LAC: किसी क्षेत्र में cell towers का group
    • CI: किसी क्षेत्र में cell tower transceiver identification
    • 4G में TAC इस्तेमाल होता है
  • Wi-Fi data में BSSID MAC address और SSID access point name शामिल होते हैं
  • AMap data disk पर लिखे जाने या internet पर भेजे जाने से पहले encrypted serialized binary blob के रूप में process होता है
  • location data temporary AES key से encrypt होता है, और उस AES key को public RSA key से फिर encrypt किया जाता है
    • यह तरीका certificate pinning पर निर्भर नहीं करता
    • app modification या matching RSA private key के बिना man-in-the-middle network inspection से content देखना मुश्किल है

Hardware और test environment

  • hardware अंदर से simple है और voltage regulator तथा Texas Instruments CC2541 Bluetooth Low Energy MCU पर केंद्रित है
  • CC2541 CPU 8-bit Intel 8051 पर आधारित है, जबकि बाद की CC series ARM Cortex architecture इस्तेमाल करती है
  • CC series SoC dedicated on-chip debugging interface support करता है, और JTAG या SWD नहीं दिखता
  • device OTA update support करता है, और firmware को HTTP से return करने वाला REST endpoint part 3 में documented है
  • current sensing के लिए shunt या कोई दूसरा current measurement circuit नहीं दिखता, इसलिए hardware configuration बहुत simple है
  • testing एक छोटे lead-acid 12V battery, BM2 battery monitor और rooted Android handset के साथ की गई
  • AMap location data physical movement detect होने पर ही memory से database में record होता है, इसलिए Frida और Objection का उपयोग करके runtime instrumentation किया गया

Dynamic और static analysis procedure

  • GPS coordinates को Frida से android.location.Location.getLatitude और getLongitude hook करके arbitrary values में बदला जा सकता है
  • Objection के Wallbreaker plugin से app heap memory में GPS, carrier cell tower और Wi-Fi data instances की पुष्टि की गई
  • APK को device से adb shell pm path के जरिए path लेकर extract किया गया, और JADX से decompile किया गया
  • AndroidManifest.xml में FINE_LOCATION के अलावा CAMERA, IMAGE_CAPTURE, ACTION_VIDEO_CAPTURE, MODIFY_AUDIO_SETTINGS, RECORD_AUDIO जैसी permissions दिखीं, लेकिन ये features इस्तेमाल होते हैं या नहीं, इसके लिए आगे जांच जरूरी है
  • app entry point com.stub.StubApp है, और qihoo.util commercial packer इस्तेमाल हुआ है
  • frida-dexdump से running memory से original Dalvik executable bytecode dump किया गया, और dex2jar व JADX से readable Java code में convert किया गया
  • BM2 app body में अतिरिक्त obfuscation नहीं था, लेकिन amap location service SDK obfuscated था और JADX के deobfuscation feature से कुछ class names recover किए गए

1 टिप्पणियां

 
GN⁺ 2023-06-27
Hacker News की रायें
  • यह BLE कार बैटरी मॉनिटर को reverse engineer करने का नतीजा है। इस ऐप के Google Play पर ही 100,000 से ज़्यादा डाउनलोड हैं।
    पता चला कि यह GPS, मोबाइल फोन बेस स्टेशन cell ID, और Wi-Fi beacon डेटा को लगातार Hong Kong और Mainland China के servers पर भेज रहा था। Google और Apple App Store pages पर लिखा है कि यह निजी डेटा collect नहीं करता या किसी third party को नहीं भेजता।
    उम्मीद है कि connected device apps का analysis करने वालों के लिए ये कुछ tips काम आएंगे।

    • लगता है BM6 variant भी है, और यहां साफ लिखा है कि personal account बनाकर vehicle tracking की जा सकती है।
      https://www.amazon.de/dp/B0BLG9Z462
      images में तीसरी पर क्लिक करने पर comparison table दिखता है। दिलचस्प बात यह है कि इसे BM6 की खास feature की तरह पैकेज किया गया है, जबकि असल में यह सिर्फ app feature है।
      device QR code [0] इस ऐप की ओर इशारा करता है: https://play.google.com/store/apps/details?id=com.dc.bm6
      इसलिए मैंने https://link.quicklynks.com/bm3.html और https://link.quicklynks.com/bm4.html जैसे दूसरे URLs भी देखे; बाद वाला https://www.leagend.com/ पर redirect होता है और यह YouTube channel चलाता है: https://www.youtube.com/channel/UCqkvyOFP5cXQ02f3h1Ns42Q
      [0] http://link.quicklynks.com/bm6.html
    • इससे भी बुरी बात यह है कि आखिरी बार जब मैंने देखा था, Android पर BLE device connection के लिए location permission चाहिए थी। शायद इसलिए कि BLE scan से location का अंदाज़ा लगाया जा सकता है।
    • समझ नहीं आता कि 100,000 लोगों को car battery monitoring app की जरूरत क्यों है। dashboard पर यह पहले से दिखता है; सवाल है कि यह app और क्या extra देता है।
      phone battery लगातार खर्च करते हुए, dashboard जो पहले से बता रहा है वही phone screen पर देखना क्या इतना worth it है, पता नहीं। अगर fixed battery है तो बस analog voltmeter dial इस्तेमाल कर सकते हैं, ऐसा लगता है।
      आजकल ऐसा standalone device ढूंढना बहुत मुश्किल है जो app के बिना काम करे। उदाहरण के लिए, ऐसा LED lamp ढूंढना भी मुश्किल था जिसमें app के बिना body button से रंग चुना जा सके; एक मिल भी गया, लेकिन app के बिना color cycling अभी भी संभव नहीं था।
      अगर लोग इस तरह की बकवास पसंद न करते, तो फिर से normal electronics ढूंढना आसान होता।
  • समझ नहीं आता कि Android में user किसी app को 1) startup पर चलने 2) background में चलने से क्यों नहीं रोक सकता। कम से कम यह user-approved permission तो होनी चाहिए।
    इससे ऐसे काफी apps रोके जा सकते थे जो इस तरह data चूसते हैं; मुझे लगता है Google भी इसमें accomplice है।

    • LineageOS पहले एक separate permission system के जरिए इससे भी आगे जा सकता था, जिसमें apps को fake data दिया जाता था और app complaint भी नहीं कर सकता था। Google ने वह feature हटवाया।
    • इस मामले में mobile, 90s और 00s के desktop experience से कहीं खराब है। यह साफ regression जैसा लगता है; कम से कम Windows 98 में तो StartUp folder से items delete कर सकते थे।
    • जो आप चाहते हैं वह GrapheneOS के करीब लगता है।
      https://grapheneos.org/
    • हाल ही में Android पर मुझे एक app मिला जो हर कुछ घंटों में “app X ने location data चाहा, इसलिए location चालू कर दी” जैसा notification दिखाता था।
      मुझे पता है कि app location data enable करने की request कर सकता है, लेकिन यह हैरान करने वाला था कि app एकतरफा इसे on कर सकता है, और मुझे इसे रोकने का तरीका भी नहीं मिला।
      ऐसी वजहों से किसी भी phone पर भरोसा करना मुश्किल लगता है।
    • iOS में हर app के लिए on/off किया जा सकने वाला Background App Refresh setting होता है।
  • ऐसे cases की वजह से digital privacy और उसे protect करने वाले कानूनों की लड़ाई बंद नहीं करनी चाहिए।
    यह “छिपाने को कुछ नहीं है” वाला मामला नहीं है, बल्कि यह रोकने का मामला है कि third parties आपकी साफ जानकारी और consent के बिना surveillance करें और personal data बेचें।
    अभी हम पूरी तरह data war के बीच में हैं, और इसका मजबूत विरोध करना होगा।

  • चिढ़ इस बात से होती है कि malicious actors को असल में कोई cost नहीं चुकानी पड़ती, और ऐसी चीजें standard जैसी बन गई हैं।
    यह लेख देखकर अच्छा लगा कि मैं GrapheneOS इस्तेमाल कर रहा हूं। कई महीनों से daily driver के तौर पर इस्तेमाल कर रहा हूं, और हर app को install करते समय network permission साफ तौर पर allow या deny की जाती है।
    ऐसे local apps को मैं कभी network permission नहीं देता, और keyboard apps को भी नहीं देता जिनको लेकर मुझे हमेशा uneasy feeling रहती थी।

    • permissions को छिपाकर, और users को उस party पर लगभग पूरी तरह भरोसा करने को मजबूर करके जिस पर भरोसा करना सबसे मुश्किल है, इसी तरीके से ऐसी चीजें standard बनती हैं और active तौर पर encourage भी होती हैं।
      यह सिर्फ हास्यास्पद नहीं है, बल्कि user privacy और safety के प्रति खुलकर hostile है।
    • GrapheneOS पर shift करने के बारे में सोच रहा हूं, लेकिन यह बात रोकती है कि यह सिर्फ Google phones पर चलता है। दूसरे Android alternative OSes की compatibility काफी कम लगती है; सोचता हूं क्या मैं बहुत ज्यादा suspicious हो रहा हूं।
    • सोच रहा हूं कि क्या यह control किया जा सकता है कि कौन से apps startup पर run करें और कौन से apps background में run कर सकें।
  • ऑपरेटिंग सिस्टम को इंटरनेट एक्सेस को ऐसी permission बनाना चाहिए जिसे यूज़र allow या revoke कर सके। Android में शायद पहले ऐसा कुछ था, और iOS में मोबाइल डेटा के अलावा शायद नहीं था
    अगर मैंने कोई ऐसा डिवाइस खरीदा जो Bluetooth इस्तेमाल करने का दावा करता है, लेकिन असल में उसे इंटरनेट एक्सेस चाहिए, तो मैं उसे वापस कर दूंगा

    • Android में allow/revoke वाली permission बाद में जोड़ा गया ढांचा है। पहले Store से install करने से पहले सभी permissions एक साथ accept करनी पड़ती थीं, और इंटरनेट एक्सेस भी उनमें से एक था
      अगर सहमत नहीं होते, तो ऐप नहीं मिल सकता था। कुछ permissions अब भी उसी तरह हैं, और कई permissions allow/revoke मॉडल में बदल चुकी हैं
      इंटरनेट एक्सेस अब भी एक permission है, लेकिन Google Play अब इसके बारे में पूछता नहीं, इसलिए हर ऐप के पास यह हो सकती है। हालांकि manifest में request न की जाए तो यह काम नहीं करती
    • Android पर किसी खास ऐप का इंटरनेट एक्सेस रोकने के लिए मैंने NetGuard इस्तेमाल करके देखा था
      https://netguard.me/
    • अच्छा होगा अगर ऐप द्वारा भेजी और प्राप्त की जाने वाली network requests देखी जा सकें
      शुरुआती यूज़र्स को domains दिखाए जा सकते हैं, और अगर domain Apple ने किसी भी तरीके से allowlist में डाला हो तो उसे हरे रंग में दिखाया जा सकता है। अगर वह न allowlist में हो न blocklist में, तो पीले रंग में दिखाया जा सकता है, या रंग भ्रमित करें तो सिर्फ नाम दिखा दें
      जो ऐप blocklist में मौजूद जगहों पर requests करता है, उसे अतिरिक्त review तक App Store से रोक देना चाहिए
      advanced users के लिए tap करके payload और headers जैसी details देखने की सुविधा होनी चाहिए। इस feature की वाकई जरूरत है और इसे जोड़ना इतना मुश्किल भी नहीं लगता
    • सबसे हास्यास्पद बात यही है। सभी permissions में सच में अहम असल में सिर्फ दो हैं: पूरी file access और network access। अगर ऐप अपने storage के बाहर का data पढ़ या लिख नहीं सकता, तो उसके पास Bluetooth permission है या नहीं, इससे क्या फर्क पड़ता है
    • यह user द्वारा सीधे allow की जाने वाली permission नहीं है, लेकिन sandboxed macOS apps में network access के लिए entitlement[1] होता है। Apple, Mac App Store पर बिकने वाले सभी apps के लिए sandboxing अनिवार्य करता है
      [1]: https://developer.apple.com/documentation/bundleresources/en...
  • App Store providers को शायद “personal data collect नहीं किया जाता या third parties को भेजा नहीं जाता” जैसे वाक्य पूरी तरह हटा देने चाहिए
    इसकी जगह warning देनी चाहिए: “इस ऐप के पास network-related permissions हैं, इसलिए यह जो data चाहे जहां चाहे भेज सकता है” या “ऐप maker दावा करता है कि वह third parties को data नहीं देगा, लेकिन हमारे पास इसे verify करने का बिल्कुल कोई तरीका नहीं है”
    हकीकत में Apple या Google यह नहीं जान सकते कि third party क्या है। China और Hong Kong के servers first party भी हो सकते हैं—कौन जाने। ऐप maker के अलावा किसी को नहीं पता

    • China से जुड़ी digital या electronic technology से अगर आपका पाला पड़ता है, तो यह मानकर चलना बेहतर है कि उपलब्ध सभी personal information, location information और अन्य data निकाला और collect किया जा रहा है और Chinese Communist Party उसकी access पा सकती है
      Chinese Communist Party को किसी खास व्यक्ति के data में शायद ज्यादा दिलचस्पी न हो, लेकिन aggregated data में उसकी बहुत बड़ी दिलचस्पी होती है। साथ ही, जब यह किसी खास target से जुड़ता है—जैसे कई वर्षों में collect किए गए लाखों अमेरिकी सरकारी कर्मचारियों के data से—तो यह बहुत उपयोगी हो जाता है [0][1]
      खुले व्यापार और आदान-प्रदान से China में democracy और freedom आएगी, यह “महान प्रयोग” पूरी तरह fail हो गया। नतीजा यह हुआ कि दुनिया भर में विस्तार चाहने वाली एक निर्मम dictatorship और मजबूत ही हुई। China के साथ व्यापार नहीं करना चाहिए
      [0] https://en.wikipedia.org/wiki/Office_of_Personnel_Management...
      [1] https://www.nbcnews.com/tech/security/china-spent-years-coll...
  • यह समझना होगा कि निगरानी करने वाला डिवाइस भी आखिरकार जिस चीज की निगरानी कर रहा है, उसे धीरे-धीरे consume करता है। अंत में monitor की भी फिर से active निगरानी करनी पड़ती है
    यह BLE device car battery को धीरे-धीरे, लेकिन निश्चित रूप से drain करता है। किसी दिन यह warning भेजेगा कि battery charge करनी है, लेकिन जल्द ही warning भेजना भी बंद कर देगा
    ऊपर से यह phone data भी खींचकर China भेजेगा, और phone battery भी drain करेगा। त्योहार पर देने के लिए इससे खराब gift सोचना मुश्किल है; यह दुर्लभ तीन-स्तरीय consumer threat है

    • आम 70Ah car battery के लिए इस monitor की 1mA current consumption से battery discharge होने में 8 साल लगेंगे। अगर “25% बची है” warning मिलती है, तो recharge तक सिर्फ 2 साल ही बचे होंगे
      गंभीरता से कहें तो self-discharge इस monitor से लगभग एक order of magnitude ज्यादा होता है
  • Android में real device पर fake GPS data देने की सुविधा चाहिए। यह उन apps के लिए उपयोगी होगा जो बिना वजह GPS मांगते हैं
    अगर flashlight app को चालू होने के लिए GPS चाहिए, तो कोई बात नहीं। मेरी current location Mount Kilimanjaro है

    • Android user को warning देता है कि location-related permission चाहिए। समस्या यह है कि Bluetooth scan के लिए यह permission जरूरी होती है, और app developers इसका दुरुपयोग करके अन्य location data भी collect करते हैं
      app developers popup के जरिए user को यह समझाने की कोशिश भी करते हैं कि “Bluetooth काम करे, इसके लिए allow दबाएं”
    • developer settings में mock location feature है। मेरी समझ के अनुसार, आप “fake location data” देने वाला app download करके चुनते हैं, और वह app जिस तरह implement किया गया है उसी के अनुसार fake location देता है
  • इस मोड़ पर यह मान लेना वाजिब है कि ऐसे devices बड़े पैमाने पर data collect करके headquarters को भेज रहे हैं। TP-Link router भी सब कुछ China भेज रहा हो तो हैरानी नहीं होगी
    हालांकि यह सिर्फ China तक सीमित बात नहीं है; अभी इस्तेमाल हो रहा iPhone भी सभी keystrokes और location data अमेरिका भेज रहा हो सकता है

    • इस तरह “ऐसा ही होगा मानकर चलने” वाली सोच मुझे खास पसंद नहीं। उदाहरण के लिए अगर TP-Link router data वापस भेज रहा है, तो जब तक असली spycraft technology इस्तेमाल न हो, वह public internet के packets के जरिए भेजेगा। इसे verify किया जा सकता है
      अगर शक है कि TP-Link router सब कुछ remote server को भेज रहा है, तो traffic monitor कर लेना चाहिए
  • जब दोस्त privacy और data collection को लेकर मेरी सनक का मज़ाक उड़ाते हैं, तो मैं उन्हें ठीक ऐसे ही उदाहरण दिखाता हूँ
    यह मानने का कोई आधार नहीं है कि वे यह काम दुर्भावनापूर्ण कारणों से कर रहे हैं, लेकिन असल में इसे जानने का कोई तरीका नहीं है। शायद यह सिर्फ़ साधारण अज्ञानता या अक्षमता भी हो सकती है

    • इसे document करने की एक वजह awareness बढ़ाना और दूसरों को भी अपने घर के devices और apps क्या कर रहे हैं, यह देखने के लिए प्रेरित करना है
      device manufacturers जितनी location data collect करते हैं, वह काफी ज़्यादा है। अगर वे इसे monetize कर रहे हैं, तो सोचता हूँ कि क्या end users को बताए बिना ऐसा करना भी दुर्भावनापूर्ण माना जा सकता है
      app जिस AMap SDK का इस्तेमाल करता है, वह इससे कहीं ज़्यादा location data collect करता है। यहाँ लगता है कि मकसद location services और map software की accuracy बढ़ाना हो सकता है, और मैं इसे अपने-आप में दुर्भावनापूर्ण नहीं मानता
      लेकिन अगर यह व्यवहार users और developers को disclose नहीं किया गया है, तो बात अलग हो जाती है। site चीनी में है [1], और पता नहीं कोई detailed terms तक पढ़कर इसकी पुष्टि करेगा भी या नहीं
      [1] https://lbs.amap.com/api/lightweight-android-sdk/download
    • इरादा दुर्भावनापूर्ण नहीं दिखता, इसका मतलब यह ठीक है ऐसा नहीं है। अगर छिपाने को कुछ नहीं था, तो data collection को शुरुआत से साफ़-साफ़ क्यों नहीं बताया गया, यह भी समस्या है
      याद आता है कि पहले सभी websites पर Facebook “Like” button को harmless माना जाता था, और बाद में पता चला कि सहमति के बिना कितने व्यापक रूप से tracking हो रही थी
      चीन का typical तरीका यह है कि ऊपर से harmless दिखने वाले तरीकों से जानबूझकर data इकट्ठा किया जाए, या ऐसी security holes जानबूझकर खुली छोड़ दी जाएँ जिनका बाद में दुरुपयोग हो सके। पकड़े जाने पर कहते हैं, “माफ़ कीजिए, हम तुरंत ठीक कर देंगे”
      इससे भी बुरी बात यह है कि ऐसे behavior का कोई परिणाम नहीं होता। Google, EU, FTC में से किसी को तो जुर्माना लगाना चाहिए
    • लोगों का बिना ज़्यादा सोचे अपना data दे देना tragedy of the commons का कोई विशेष मामला, या उसका उल्टा, जैसा लगता है। बेशक यह हर जगह लागू नहीं होता, लेकिन सबसे भोले users के हिसाब से adapt करने की कीमत चुकानी पड़ती है