- 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 NightOwllaunchctl unload ~/Library/LaunchAgents/NightOwlUpdater.plistsudo killall AutoUpdatesudo rm -rf /Applications/NightOwl.app/ ~/Library/LaunchAgents/NightOwlUpdater.plistsudo zsh -c "rm /Users/*/Library/LaunchAgents/NightOwlUpdater.plist"
तकनीकी behavior analysis
- install के समय
org.nightowl.autoupdater.comनाम का launch agent register होता है/Applications/NightOwl.app/Contents/Helpers/AutoUpdateprocess को 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, port2043है /tmpमें.uuextension के साथ डाली गई public key का उपयोग होता है, और-Roption से remote port को local पर tunnel किया जाता है- key
proxy-api1.squidyproxy.comपर HTTPS request से प्राप्त होती है - यह domain April 2022 में GoDaddy पर registered हुआ था, IP Microsoft द्वारा hosted है
- target
- इस SSH server में shell access enabled है
- connection सफल होने के बाद HTTP traffic user की तरफ भेजा जाता है और user के internet connection के जरिए बाहर route होता है
- daemon
-
UPnP port forwarding की कोशिश
- router पर UPnP port forwarding खोलने की कोशिश करता है, लेकिन key names गड़बड़ा जाने से fail हो जाता है
- भेजे गए SOAP request में
AddPortMappingaction औरip royal pawsvalue शामिल है
- भेजे गए SOAP request में
- router पर UPnP port forwarding खोलने की कोशिश करता है, लेकिन key names गड़बड़ा जाने से fail हो जाता है
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 टिप्पणियां
Hacker News की राय
मुझे पता है कि ऐसा काफी बार होता है, लेकिन हैरानी है कि कंपनियां इस तरह की भाषा के साथ सेवा की शर्तें कितनी बार अपडेट करती हैं
अपने-आप नवीनीकृत होने वाली शर्तों का विचार, जो स्थायी रूप से हर उपयोग को नियंत्रित करे, अपने आप में बहुत पहले ही कानूनी तौर पर रोका जा चुका होना चाहिए था
NightOwl की मौजूदा भाषा कहती है कि वे शर्तें और कीमत की जानकारी कभी भी बदल सकते हैं, वेबसाइट पर डालते ही वे प्रभावी हो जाती हैं, और बदलाव “महत्वपूर्ण” है या नहीं, यह भी केवल NightOwl के विवेक पर तय होगा
लोकल में इंस्टॉल किए गए ऐप की शर्तों में बदलाव वेबसाइट अपडेट से बताना—क्या इसका मतलब है कि हमें उनके सोशल फीड भी सब्सक्राइब करके देखते रहना चाहिए?
सहज रूप से लगा कि यह लागू करने योग्य नहीं और अनुचित शर्त है, लेकिन लगता है Comcast की लीगल टीम ने शायद इसकी समीक्षा की होगी
क्या कोई वकील जानता है कि वेबसाइट पर कॉन्ट्रैक्ट बदलाव पोस्ट करने का तरीका, खासकर जब अलग से सूचना न दी जाए, ऐसी भाषा को वैध बनाता है या नहीं?
पहले यह एक अच्छा OpenStreetMap फ्रंटएंड था, लेकिन मेरी जानकारी में monetization के लिए इसे एक निवेश कंपनी ने खरीद लिया था
अब ऐप की स्थिति क्या है, इसका revenue model यहां बताए गए मॉडल जैसा है या नहीं, और विकल्प के तौर पर कौन-सा ऐप इस्तेमाल करना अच्छा होगा—यह जानना चाहता हूं
Safeway मामले में अदालत ने माना कि उपभोक्ता उन भविष्य की शर्तों पर सहमति नहीं दे सकता जो अभी अस्तित्व में ही नहीं हैं, और अगर उसे शर्तों में बदलाव की सूचना नहीं मिली, तो केवल सेवा जारी रखने के आधार पर यह नहीं माना जा सकता कि उसने संशोधित शर्तों को स्वीकार कर लिया
लगता है browsers ने उसे असुरक्षित के रूप में चिह्नित किया था
ऐप का लाइव म्यूज़िक टिकट बिक्री साइटों से बहुत सारे connections बनाना residential proxy का आम उपयोग है
टिकट resellers संक्रमित यूजर्स के devices का इस्तेमाल करके datacenter hosts पर लगे blocks या bulk access limits को bypass करते हैं, और बाद में resale value वाले टिकट पाने की संभावना बढ़ाते हैं
निर्माता, repository intruder, या इस मामले की तरह खरीदार के जरिए backdoor डाले गए मुफ्त browser extensions, VPN apps आदि यूजर्स के devices को ऐसे proxies में बदल देते हैं
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 में बदल देना बहुत आम है, और यह भयानक है
https://chrome.google.com/webstore/detail/hover-zoom%20/pccc...
https://github.com/extesy/hoverzoom/discussions/670
अगर owner रातोंरात बदल जाए तो बड़ा notification भेज दे, बस
दान देने वाले लोग बहुत कम होते हैं, और कोई ठीक-ठाक कंपनी ऐप खरीदकर monetize करना भी नहीं चाहती, इसलिए आखिर में extensions और apps वही सबसे खराब कंपनियां खरीदती हैं जो users का शोषण करना चाहती हैं
ऐसे free apps की value होती है, लेकिन वे developer income में नहीं बदलते, इसलिए वे दूसरा रास्ता खोजने लगते हैं
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 तक भी, यह ऐसा ही रहा है; सोचता हूं क्या बाकी लोगों के लिए यह लगातार बिल्कुल सही काम करता रहा है
लगता है 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 करने की सलाह देना बेहतर होगा
https://lapcatsoftware.com/articles/revocation.html
मेरे environment में macOS ने ऐप को बंद कर दिया और खोलने से मना कर दिया
इसके बजाय NightFall पर switch किया: https://github.com/r-thomson/Nightfall
Settings > Control Center > Display > Always Show in Menu Bar
Dark mode on/off करने के लिए एक extra click चाहिए, लेकिन Night Shift भी इस्तेमाल कर सकते हैं और यह 100% native है
Automator खोलकर नया application बनाएं, “change system appearance” चुनें और फिर light/dark mode toggle चुन लें
save करने के बाद Spotlight से उस app का नाम खोलकर mode switch कर सकते हैं, और शायद Shortcuts से भी किया जा सकता है
मैंने global shortcut के रूप में right-click+Option+Command set किया है और यह बहुत अच्छे से काम करता है
लगता है इस तरह की चीजों के लिए कोई कानून पारित किया जा सकना चाहिए
software के लिए एक implied contract होना चाहिए कि वह वही करेगा जो कहा गया है और बिल्कुल अलग काम नहीं करेगा; उल्लंघन पर कड़ी सजा होनी चाहिए
किसी बड़े website को हर request के साथ 10MB की EULA file भेजें और तब तक भेजते रहें जब तक वह accept न करे, तो यह “EULA द्वारा DDoS” भी बन सकता है
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
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 रखना चाहिए
Tailscale जैसे सभी P2P apps को अस्थायी रूप से server की तरह काम करना और incoming traffic allow करना पड़ता है
इस feature के बिना वे एक तरह से second-class citizen बन जाते हैं, और users को बच्चों की तरह treat करने जैसा है
बेशक ports खुद खोल सकते हैं, लेकिन उन्हें ढूँढना मुश्किल है, वे consistent नहीं हैं, और जटिल UX की वजह से अधिकतर users के लिए यह पहुँच से बाहर है; ज़्यादातर को तो यह भी नहीं पता कि port क्या होता है
वे UPnP बंद करने की झंझट भी नहीं चाहते, और आप बेहतर जानते हों या नहीं, वह setting संभवतः on ही होगी
ज़्यादातर 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 है
बात काफी confusing है
Terms में लिखा है कि “user के device को internet traffic gateway के रूप में इस्तेमाल करने के लिए network settings बदलकर internet traffic share कराया जाता है, और NightOwl के customers में web/market research, SEO, brand protection, content delivery, cybersecurity companies आदि शामिल हैं”
यह सचमुच जला देने लायक स्तर की बात है
लेकिन सच में जानना चाहता हूँ कि इसे Terms of Service में साफ़-साफ़ लिखने की वजह क्या है
ऐसी suspicious functionality डालने वाली organization तो यह बात भी actively छिपाएगी, ऐसा लगता है; इसलिए सोचता हूँ कि क्या terms में लिख देने से NightOwl को कोई legal protection मिलती है
जैसे, क्या पहले उन पर सफलतापूर्वक मुकदमा किया जा सकता था लेकिन terms में होने पर ठीक हो जाता है, या ऐसी suspicious हरकत भी सिर्फ terms में हो तो technically legal है—पता नहीं
अगर ऐसा है तो काफी disappointing है, और अच्छा होगा कि app permissions ज़्यादा granular हों
Little Snitch इस्तेमाल करने से यह detect करने में मदद मिलती है कि app किन IPs और addresses से connect कर रहा है, और उन connections को block किया जा सकता है
उम्मीद है वे कभी sell-off पर विचार नहीं करेंगे