1 पॉइंट द्वारा GN⁺ 2023-08-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • macOS के लाइट/डार्क मोड को अपने-आप बदलने वाली utility 2022 के अंत में acquisition के बाद एक ऐसे tool में बदल गई है जो user consent के बिना devices को botnet में शामिल करता है
  • acquire करने वाली इकाई TPE.FYI LLC Terms of Service के आधार पर user devices को internet traffic के gateway के रूप में इस्तेमाल करती है, और app बंद करने पर भी यह function disable नहीं किया जा सकता
  • install करते समय root privileges के साथ चलने वाला launch agent register होता है, जो boot के समय automatically run होता है और application के अंदर से disable नहीं किया जा सकता
  • 'automatic update' का रूप लेने वाला daemon एक local HTTP proxy शुरू करता है और external server तक SSH tunnel खोलता है, जिससे user की internet line के जरिए traffic route किया जाता है
  • residential proxy बेचने वाली company IPRoyal का Pawns SDK इस्तेमाल किया गया है, जिससे user की internet bandwidth market research के लिए resell होती है

NightOwl ऐप की असलियत और बदलाव

  • NightOwl 2018 से मौजूद app है, जो operating system के light/dark mode को automatically switch करने की सुविधा देता है
    • यह macOS के built-in automatic mode की उस सीमा का alternative था, जिसमें switching केवल user के दूर रहने पर होती है
  • 2022 के अंत में TPE.FYI LLC द्वारा acquire किए जाने के बाद, user की जानकारी या explicit consent के बिना devices को market research botnet में जबरन शामिल किया गया
    • download page पर छोटे अक्षरों में लिखे terms के अलावा अलग से कोई notice नहीं
    • app बंद होने पर भी इस function को disable नहीं किया जा सकता
  • Terms of Service (TOS) में यह behavior लिखा है
    • device की network settings बदलकर internet traffic share करना, और user device को gateway के रूप में इस्तेमाल करना
    • gateway के target customers में web/market research, SEO, brand protection, content delivery, cybersecurity आदि क्षेत्रों की companies शामिल
  • NightOwl से संपर्क किया गया, लेकिन कोई जवाब नहीं मिला

हटाने का तरीका

  • app चल नहीं रही हो, फिर भी यदि वह install है, तो Terminal में removal commands चलाना जरूरी है
    • sudo killall NightOwl
    • launchctl unload ~/Library/LaunchAgents/NightOwlUpdater.plist
    • sudo killall AutoUpdate
    • sudo rm -rf /Applications/NightOwl.app/ ~/Library/LaunchAgents/NightOwlUpdater.plist
    • sudo zsh -c "rm /Users/*/Library/LaunchAgents/NightOwlUpdater.plist"

तकनीकी behavior analysis

  • install के समय org.nightowl.autoupdater.com नाम का launch agent register होता है
    • /Applications/NightOwl.app/Contents/Helpers/AutoUpdate process को daemon बनाकर boot के समय root privileges के साथ चलाता है
    • application के जरिए disable नहीं किया जा सकता, और user की जानकारी/consent के बिना चुपचाप आगे बढ़ता है
  • app द्वारा दिखाया गया notice केवल Google Analytics statistics collection तक सीमित है
    • इसमें बताया जाता है कि data tracking feature usage और bug analysis के लिए है
    • "anonymizeIp" setting से IP के आखिरी हिस्से को छिपाकर anonymized data collection सुनिश्चित करने की बात लिखी है
    • settings में "Send Statistics" unchecked करके tracking opt-out करने की जानकारी दी गई है
    • लेकिन statistics भेजना बंद करने पर भी launch agent disable नहीं होता
  • 'automatic update' daemon तीन काम करता है
    • Sparkle का उपयोग करके app update check करना
    • Sentry का उपयोग करके crash reporting
    • port 40701 पर local HTTP proxy चलाना (app bundle के अंदर config json file से बदला जा सकता है)
    • आखिरी item ऐसे app में expected behavior नहीं है जो खुद को automatic updater बताता है
  • Proxy और SSH tunnel structure

    • daemon sudo से root से main user account में switch करके nightowl_t.dylib चलाता है
      • यह tinyproxy की copy है; license GPLv2 है, लेकिन GPL license notice शामिल नहीं है, इसलिए violation की संभावना है
      • HTTP(S) proxy के रूप में काम करता है
    • autossh को nightowl_a.dylib नाम देकर बनी file (बिना license) के जरिए SSH connection खोला जाता है
      • target testconnectuser2023@proxy-gw1-europe.squidyproxy.com, port 2043 है
      • /tmp में .uu extension के साथ डाली गई public key का उपयोग होता है, और -R option से remote port को local पर tunnel किया जाता है
      • key proxy-api1.squidyproxy.com पर HTTPS request से प्राप्त होती है
      • यह domain April 2022 में GoDaddy पर registered हुआ था, IP Microsoft द्वारा hosted है
    • इस SSH server में shell access enabled है
    • connection सफल होने के बाद HTTP traffic user की तरफ भेजा जाता है और user के internet connection के जरिए बाहर route होता है
  • UPnP port forwarding की कोशिश

    • router पर UPnP port forwarding खोलने की कोशिश करता है, लेकिन key names गड़बड़ा जाने से fail हो जाता है
      • भेजे गए SOAP request में AddPortMapping action और ip royal paws value शामिल है

Bandwidth resale structure (Pawns / IPRoyal)

  • app में Pawns SDK इस्तेमाल होता दिखता है
    • Pawns एक app है जो users द्वारा share की गई internet bandwidth के लिए $0.20 per GB देता है
  • Pawns service की operator IPRoyal है
    • residential proxy connections को $1.75 per GB पर बेचने वाली proxy company
    • "100% ethically sourced IP" के रूप में advertise करती है

"TPE.FYI LLC" की पहचान

  • TPE (या Keeping Tempo, Tempo AI) YouTube video views, regional popularity data आदि के analysis के आधार पर artists की actual demand के अनुरूप venues को ticket prices तय करने में मदद देने वाला pricing model बना रही थी
    • Tempo AI calendar और Tempo AI gym से कोई संबंध नहीं
  • संबंधित जानकारी बहुत कम है और 2018 के बाद का material लगभग नहीं है
  • लिखे जाने के समय तक, verified installs ने https://stubbs.frontgatetickets.com/ से कई connection attempts किए
    • यह site Austin, Texas के एक restaurant live music venue के tickets बेचती है
  • company September 2018 में Austin, Texas में स्थापित हुई और March 2023 में "Jarod Stirling" द्वारा dissolved की गई
    • address The Muse at SoCo, 1007 South Congress Avenue, Apartment 443, Austin, Texas, 78704 है

1 टिप्पणियां

 
GN⁺ 2023-08-09
Hacker News की राय
  • मुझे पता है कि ऐसा काफी बार होता है, लेकिन हैरानी है कि कंपनियां इस तरह की भाषा के साथ सेवा की शर्तें कितनी बार अपडेट करती हैं
    अपने-आप नवीनीकृत होने वाली शर्तों का विचार, जो स्थायी रूप से हर उपयोग को नियंत्रित करे, अपने आप में बहुत पहले ही कानूनी तौर पर रोका जा चुका होना चाहिए था
    NightOwl की मौजूदा भाषा कहती है कि वे शर्तें और कीमत की जानकारी कभी भी बदल सकते हैं, वेबसाइट पर डालते ही वे प्रभावी हो जाती हैं, और बदलाव “महत्वपूर्ण” है या नहीं, यह भी केवल NightOwl के विवेक पर तय होगा
    लोकल में इंस्टॉल किए गए ऐप की शर्तों में बदलाव वेबसाइट अपडेट से बताना—क्या इसका मतलब है कि हमें उनके सोशल फीड भी सब्सक्राइब करके देखते रहना चाहिए?

    • कुछ साल पहले Comcast के साथ बिज़नेस इंटरनेट/फोन कॉन्ट्रैक्ट करने वाले मेरे एक दोस्त ने भी ऐसी ही भाषा देखी थी, और उसमें असली URL तक नहीं था
      सहज रूप से लगा कि यह लागू करने योग्य नहीं और अनुचित शर्त है, लेकिन लगता है Comcast की लीगल टीम ने शायद इसकी समीक्षा की होगी
      क्या कोई वकील जानता है कि वेबसाइट पर कॉन्ट्रैक्ट बदलाव पोस्ट करने का तरीका, खासकर जब अलग से सूचना न दी जाए, ऐसी भाषा को वैध बनाता है या नहीं?
    • लगता है maps.me की हालत भी कुछ ऐसी ही हो सकती है
      पहले यह एक अच्छा OpenStreetMap फ्रंटएंड था, लेकिन मेरी जानकारी में monetization के लिए इसे एक निवेश कंपनी ने खरीद लिया था
      अब ऐप की स्थिति क्या है, इसका revenue model यहां बताए गए मॉडल जैसा है या नहीं, और विकल्प के तौर पर कौन-सा ऐप इस्तेमाल करना अच्छा होगा—यह जानना चाहता हूं
    • ऐसी शर्तों को पहले भी अमान्य ठहराया जा चुका है, और अगर कोई मुकदमा करने को तैयार हो तो फिर से ऐसा होने की संभावना काफी है: https://arstechnica.com/tech-policy/2007/07/court-says-no-to..., https://scholar.google.com/scholar_case?case=592583419165850...
      Safeway मामले में अदालत ने माना कि उपभोक्ता उन भविष्य की शर्तों पर सहमति नहीं दे सकता जो अभी अस्तित्व में ही नहीं हैं, और अगर उसे शर्तों में बदलाव की सूचना नहीं मिली, तो केवल सेवा जारी रखने के आधार पर यह नहीं माना जा सकता कि उसने संशोधित शर्तों को स्वीकार कर लिया
    • हाल ही में Chrome extension The Great Suspender में भी कोई ऐसी ही policy या feature change हुआ था क्या, यह जानना चाहता हूं
      लगता है browsers ने उसे असुरक्षित के रूप में चिह्नित किया था
  • ऐप का लाइव म्यूज़िक टिकट बिक्री साइटों से बहुत सारे connections बनाना residential proxy का आम उपयोग है
    टिकट resellers संक्रमित यूजर्स के devices का इस्तेमाल करके datacenter hosts पर लगे blocks या bulk access limits को bypass करते हैं, और बाद में resale value वाले टिकट पाने की संभावना बढ़ाते हैं
    निर्माता, repository intruder, या इस मामले की तरह खरीदार के जरिए backdoor डाले गए मुफ्त browser extensions, VPN apps आदि यूजर्स के devices को ऐसे proxies में बदल देते हैं

    • NordVPN भी यही तरीका इस्तेमाल करता है
      Google और Amazon के पास cloud services के लिए बड़े IP ranges हैं, इसलिए AWS या Google Cloud आधारित bots को detect करना अपेक्षाकृत आसान है
      दूसरी ओर Verizon के पास भी residential customers को दिए जाने वाले बड़े IP ranges हैं, और NordVPN इस बात का फायदा उठाता है कि Netflix या Amazon जैसी services Verizon के पूरे IP range को block नहीं करना चाहेंगी, जिससे traffic residential जैसा दिखता है
  • मुझे चुपचाप acquisition से सच में नफरत है
    Chrome developer extensions को भी malicious actors द्वारा खरीदकर malware में बदल देना बहुत आम है, और यह भयानक है

    • कुछ हद तक लोकप्रिय Chrome extension के maintainer के रूप में, मुझे इतने takeover offers मिले कि मैंने उन्हें सबको दिखाने के लिए public रूप से इकट्ठा करना शुरू कर दिया
      https://chrome.google.com/webstore/detail/hover-zoom%20/pccc...
      https://github.com/extesy/hoverzoom/discussions/670
    • ऐप owners पर नजर रखने वाले ऐप का idea अच्छा लगता है
      अगर owner रातोंरात बदल जाए तो बड़ा notification भेज दे, बस
    • मुफ्त apps की समस्या यही है
      दान देने वाले लोग बहुत कम होते हैं, और कोई ठीक-ठाक कंपनी ऐप खरीदकर monetize करना भी नहीं चाहती, इसलिए आखिर में extensions और apps वही सबसे खराब कंपनियां खरीदती हैं जो users का शोषण करना चाहती हैं
      ऐसे free apps की value होती है, लेकिन वे developer income में नहीं बदलते, इसलिए वे दूसरा रास्ता खोजने लगते हैं
    • ActionDash का Sensor Tower द्वारा खरीदा जाना याद आता है
      system-level functions करने के लिए जिसे मजबूरन बहुत ज्यादा permissions चाहिए थीं, ऐसा बेहद intrusive ऐप किसी advertising और data selling company के हाथ आसानी से चला गया—यह समझ से बाहर है
    • इसमें चुपचाप क्या है, समझ नहीं आता
      users ने software इस्तेमाल करते समय जिन सेवा शर्तों पर सहमति दी थी, उनमें यह साफ लिखा है, इसलिए आखिरकार यह caveat emptor जैसा मामला बन जाता है
  • macOS के built-in automatic mode के बारे में यह कहना अजीब है कि वह तभी switch करता है जब user computer से दूर हो
    Night Shift schedule/location सेट करें और dark mode को automatic पर रखें तो यह तुरंत बदल जाता है, और अगर आप launcher या Spotlight इस्तेमाल करते हैं तो tell application "System Events" to tell appearance preferences to set dark mode to not dark mode जैसी एक-लाइन AppleScript से भी बदल सकते हैं

    • मेरे मामले में ऐसा नहीं है
      मैं कहूंगा कि sunset पर dark mode चालू होने की संभावना करीब 25% है
      कई सालों से, Ventura तक भी, यह ऐसा ही रहा है; सोचता हूं क्या बाकी लोगों के लिए यह लगातार बिल्कुल सही काम करता रहा है
    • NightOwl के लॉन्च हुए 2018 में इन convenience features में से कुछ या सारे अभी मौजूद नहीं थे
  • लगता है Apple ने developer certificate रद्द कर दिया है
    उत्सुकता है कि क्या कोई public log है जो दिखाए कि इसे कब रद्द किया गया
    ऐप लोडिंग ब्लॉक हो गई थी, लेकिन दोनों dylib अब भी चल रहे थे; लगा शायद ऐसा इसलिए हुआ क्योंकि certificate revocation शुरू होने के बाद की बात थी
    logout करके फिर login करने के बाद भी वे चलते रहे, इसलिए यह logout के पार भी persist कर सकता है
    macOS firewall में बताए गए AutoUpdate binary को connections receive करने की अनुमति देनी है या नहीं, इसका prompt भी आया, इसलिए लगता है यह सब पिछले कुछ दिनों में deploy किया गया है
    reboot करने पर “NightOwl” will damage your computer. You should move it to the Trash. dialog दिखा, और allow करने पर भी /Users/*/Library/LaunchAgents/NightOwlUpdater.plist और general settings file बची रही, यानी पूरी तरह clean-up नहीं हुआ
    जो non-technical users Terminal से सहज नहीं हैं, उन्हें reboot करने की सलाह देना बेहतर होगा

  • मेरे environment में macOS ने ऐप को बंद कर दिया और खोलने से मना कर दिया
    इसके बजाय NightFall पर switch किया: https://github.com/r-thomson/Nightfall

    • नीचे वाली setting से Display Settings को सीधे menu bar में भी रखा जा सकता है
      Settings > Control Center > Display > Always Show in Menu Bar
      Dark mode on/off करने के लिए एक extra click चाहिए, लेकिन Night Shift भी इस्तेमाल कर सकते हैं और यह 100% native है
    • built-in Automator app से खुद भी बहुत आसानी से बना सकते हैं
      Automator खोलकर नया application बनाएं, “change system appearance” चुनें और फिर light/dark mode toggle चुन लें
      save करने के बाद Spotlight से उस app का नाम खोलकर mode switch कर सकते हैं, और शायद Shortcuts से भी किया जा सकता है
    • अगर सिर्फ mode switching चाहिए, तो BetterTouchTool से सीधे हो जाता है
      मैंने global shortcut के रूप में right-click+Option+Command set किया है और यह बहुत अच्छे से काम करता है
  • लगता है इस तरह की चीजों के लिए कोई कानून पारित किया जा सकना चाहिए
    software के लिए एक implied contract होना चाहिए कि वह वही करेगा जो कहा गया है और बिल्कुल अलग काम नहीं करेगा; उल्लंघन पर कड़ी सजा होनी चाहिए

    • हमें भी अपनी-अपनी EULA बनाकर मान लेना चाहिए कि सामने वाले ने implied रूप से सहमति दे दी है
      किसी बड़े website को हर request के साथ 10MB की EULA file भेजें और तब तक भेजते रहें जब तक वह accept न करे, तो यह “EULA द्वारा DDoS” भी बन सकता है
    • सामान्य licenses जानबूझकर साफ लिखती हैं कि ऐसा contract implied न हो
      MIT License का uppercase clause यह कहकर शुरू होता है कि software merchantability या किसी particular purpose के लिए fitness की express या implied warranties के बिना “as is” दिया जाता है, और GPL section 15 में भी लगभग वही wording है
      https://opensource.org/license/mit/
      https://www.gnu.org/licenses/gpl-3.0.html#section15
    • कानून द्वारा implied contract terms वास्तव में मौजूद हैं
      UK consumer contract law, EU Consumer Rights Directive के प्रभाव में, 2015 से digital content तक extend हुआ है; इसमें implied terms शामिल हैं कि goods satisfactory quality के होने चाहिए और Netflix, Spotify, updates वाले software जैसी continuous services पहली बार दिए जाने की स्थिति से बहुत ज्यादा अलग नहीं होनी चाहिए
      https://www.legislation.gov.uk/ukpga/2015/15/part/1/chapter/...
      ज्यादातर jurisdictions में भी ऐसे ही नियम होंगे, और EU देशों में Consumer Rights Directive लागू करने वाले laws होंगे
      हालांकि यह तब लागू होता है जब आपने पैसे दिए हों, और NightOwl free है, इसलिए goods/services की बिक्री को regulate करने वाली legal expectations वैसे ही लागू नहीं होतीं
      किसी company द्वारा acquire किए जाने के बाद product में spyware आना बुरा है, लेकिन coding सीखने के लिए free open source या freeware डालने वाले किसी teenager या hobby developer पर left-pad जैसा कुछ करने के लिए बड़ी कंपनियों द्वारा lawsuit किया जाना भी desirable नहीं है
      tech regulation का weight free menu bar utilities या Chrome extensions बनाने वाले small developers की तुलना में Google, Microsoft, Apple जैसी जगहों पर कहीं ज्यादा heavy होना चाहिए
      छोटी free/open-source apps को supply-chain attack vector बनने से रोकना अब भी कठिन है; इसके लिए बेहतर sandboxing और app-level permissions, per-app network monitoring और anomaly detection, packaging/distribution process में trust-building जैसे धीमे और imperfect improvements चाहिए, और litigation शायद इसका जवाब नहीं है
  • UPnP पोर्ट फ़ॉरवर्डिंग खोलने की कोशिश करता है, लेकिन राउटर में key names गड़बड़ा जाने की वजह से असफल हो गया—यह हिस्सा दरअसल किसी भी राउटर पर असफल होना चाहिए
    क्योंकि UPnP को disabled रखना चाहिए

    • UPnP भले ही बहुत खराब specification हो, लेकिन residential environment में internet-connected devices के पास होनी चाहिए ऐसी बुनियादी क्षमता को वापस लाने का एक workaround है
      Tailscale जैसे सभी P2P apps को अस्थायी रूप से server की तरह काम करना और incoming traffic allow करना पड़ता है
      इस feature के बिना वे एक तरह से second-class citizen बन जाते हैं, और users को बच्चों की तरह treat करने जैसा है
      बेशक ports खुद खोल सकते हैं, लेकिन उन्हें ढूँढना मुश्किल है, वे consistent नहीं हैं, और जटिल UX की वजह से अधिकतर users के लिए यह पहुँच से बाहर है; ज़्यादातर को तो यह भी नहीं पता कि port क्या होता है
    • उन परिवारवालों के बारे में सोचिए जो “Windows laptop की झंझट से बचने के लिए” Mac इस्तेमाल करते हैं
      वे UPnP बंद करने की झंझट भी नहीं चाहते, और आप बेहतर जानते हों या नहीं, वह setting संभवतः on ही होगी
    • UPnP बंद करने से आप ज़्यादा सुरक्षित हो जाते हैं, लेकिन अगर राउटर के NAT ALG भी सभी बंद नहीं किए, तो आप अब भी risk में हैं
      ज़्यादातर routers में ऐसी setting नहीं होगी, इसलिए अगर infected device आपके security model में शामिल है, तो NAT slipstream attacks की वजह से यह मानना समझदारी है कि NAT लगभग पूरी तरह बेअसर है
      infected device राउटर की NAT table बदलकर उसे असल में UPnP जैसा behave करा सकता है, लेकिन user को audit करने के लिए कोई UI नहीं देता
      अगर आप NAT के बिना सिर्फ IPv6 इस्तेमाल कर रहे हैं, तो सभी firewall exceptions को manually manage करने की इच्छा होने पर UPnP disable करना ठीक security measure हो सकता है, लेकिन आजकल अधिकतर लोगों के लिए host firewall ही भरोसेमंद protection method है
    • पता नहीं आप UPnP की ज़रूरत को ही पूरी तरह नकार रहे हैं या नहीं
      बात काफी confusing है
  • Terms में लिखा है कि “user के device को internet traffic gateway के रूप में इस्तेमाल करने के लिए network settings बदलकर internet traffic share कराया जाता है, और NightOwl के customers में web/market research, SEO, brand protection, content delivery, cybersecurity companies आदि शामिल हैं”
    यह सचमुच जला देने लायक स्तर की बात है

    • आम तौर पर मैंने सोचा था कि कोई चीज़ जितनी ज़्यादा suspicious होती है, उसे उतना ही छिपाया जाता है
      लेकिन सच में जानना चाहता हूँ कि इसे Terms of Service में साफ़-साफ़ लिखने की वजह क्या है
      ऐसी suspicious functionality डालने वाली organization तो यह बात भी actively छिपाएगी, ऐसा लगता है; इसलिए सोचता हूँ कि क्या terms में लिख देने से NightOwl को कोई legal protection मिलती है
      जैसे, क्या पहले उन पर सफलतापूर्वक मुकदमा किया जा सकता था लेकिन terms में होने पर ठीक हो जाता है, या ऐसी suspicious हरकत भी सिर्फ terms में हो तो technically legal है—पता नहीं
    • लगता है कि “device की network settings modify” करने की permission असल काम, यानी dark mode switching, के लिए दी गई permission में पहले से शामिल थी
      अगर ऐसा है तो काफी disappointing है, और अच्छा होगा कि app permissions ज़्यादा granular हों
    • यहाँ “enables” शब्द का इस्तेमाल ऐसा लगता है जैसे इसे freedom और privacy invasion नहीं, बल्कि opportunity के रूप में package किया जा रहा हो
    • developer और company को real name से expose करके शर्मिंदा करना चाहिए
  • Little Snitch इस्तेमाल करने से यह detect करने में मदद मिलती है कि app किन IPs और addresses से connect कर रहा है, और उन connections को block किया जा सकता है

    • LuLu भी है
    • जब भी संभव हुआ, मैंने Little Snitch के लिए payment किया है
      उम्मीद है वे कभी sell-off पर विचार नहीं करेंगे