- Un utilitaire de bascule automatique entre les modes clair/sombre sur macOS s’est transformé, après son rachat fin 2022, en outil intégrant l’appareil de l’utilisateur à un botnet sans son consentement
- L’acquéreur, TPE.FYI LLC, s’appuie sur les conditions d’utilisation pour exploiter l’appareil comme passerelle de trafic Internet, sans possibilité de désactiver cette fonction même après avoir quitté l’application
- Lors de l’installation, un launch agent fonctionnant avec les privilèges root est enregistré et s’exécute automatiquement au démarrage, sans possibilité de désactivation depuis l’application
- Un démon présenté comme une « mise à jour automatique » lance un proxy HTTP local et ouvre un tunnel SSH vers un serveur externe afin de faire transiter du trafic via la connexion Internet de l’utilisateur
- Le SDK Pawns d’IPRoyal, vendeur de proxies résidentiels, est utilisé pour revendre la bande passante Internet de l’utilisateur à des fins d’étude de marché
Nature et dérive de l’application NightOwl
- NightOwl est une application existant depuis 2018, qui permet de basculer automatiquement entre les modes clair et sombre du système d’exploitation
- Une alternative qui compensait la limite du mode automatique intégré à macOS, lequel ne bascule que lorsque l’utilisateur s’absente
- Après son rachat par TPE.FYI LLC fin 2022, les appareils des utilisateurs ont été intégrés de force à un botnet destiné aux études de marché, sans information claire ni consentement explicite
- Aucune notification distincte en dehors de petites lignes dans les conditions affichées sur la page de téléchargement
- Cette fonction ne peut pas être désactivée, même lorsque l’application est fermée
- Ce comportement est mentionné dans les conditions d’utilisation (TOS)
- Modification des paramètres réseau de l’appareil pour partager le trafic Internet et utiliser l’appareil comme passerelle
- Les clients visés pour ces passerelles incluent des entreprises actives dans les études web et de marché, le SEO, la protection de marque, la diffusion de contenu ou la cybersécurité
- NightOwl a été contacté pour commentaire, sans réponse
Méthode de suppression
- Même si l’application n’est pas en cours d’exécution, si elle est installée, il faut lancer les commandes de suppression dans le terminal
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"
Analyse du fonctionnement technique
- Lors de l’installation, enregistrement d’un launch agent nommé
org.nightowl.autoupdater.com- Il démonise le processus
/Applications/NightOwl.app/Contents/Helpers/AutoUpdatepour l’exécuter au démarrage avec les privilèges root - Désactivation impossible via l’application, opération menée discrètement sans information ni consentement de l’utilisateur
- Il démonise le processus
- L’avertissement affiché par l’application se limite à la collecte de statistiques via Google Analytics
- Présentée comme un suivi des données sur l’usage des fonctionnalités et l’analyse des bugs
- Mention explicite que le paramètre
anonymizeIpmasque la dernière partie de l’IP afin de garantir une collecte de données anonymisée - Il est indiqué qu’il est possible de refuser ce suivi en décochant « Send Statistics » dans les réglages
- Toutefois, même en désactivant l’envoi de statistiques, le launch agent n’est pas désactivé
- Le démon de « mise à jour automatique » effectue trois tâches
- Vérification des mises à jour de l’application via Sparkle
- Rapport de crash via Sentry
- Exécution d’un proxy HTTP local sur le port
40701(modifiable via un fichier json de configuration dans le bundle de l’application) - Ce dernier point est inattendu pour une application se présentant comme un simple auto-updater
-
Structure du proxy et du tunnel SSH
- Le démon utilise
sudopour passer de root au compte utilisateur principal, puis exécutenightowl_t.dylib- Il s’agit d’une copie de tinyproxy, sous licence GPLv2, avec suspicion de violation car aucune mention de la licence GPL n’est incluse
- Fonctionne comme proxy HTTP(S)
- Une connexion SSH est ensuite établie à l’aide d’un fichier autossh renommé
nightowl_a.dylib(sans licence)- Cible :
testconnectuser2023@proxy-gw1-europe.squidyproxy.com, port2043 - Utilisation d’une clé publique déposée dans
/tmpavec l’extension.uu, et de l’option-Rpour tunneliser un port distant vers le local - La clé est récupérée via une requête HTTPS vers
proxy-api1.squidyproxy.com - Ce domaine a été enregistré chez GoDaddy en avril 2022, et son IP est hébergée par Microsoft
- Cible :
- Ce serveur SSH a l’accès shell activé
- Une fois la connexion établie, le trafic HTTP est acheminé vers l’utilisateur puis redirigé vers l’extérieur via sa connexion Internet
- Le démon utilise
-
Tentative d’ouverture de ports via UPnP
- Tentative d’ouverture d’un port forwarding UPnP sur le routeur, mais échec à cause de noms de clés incohérents
- La requête SOAP envoyée contient l’action
AddPortMappinget la valeurip royal paws
- La requête SOAP envoyée contient l’action
- Tentative d’ouverture d’un port forwarding UPnP sur le routeur, mais échec à cause de noms de clés incohérents
Mécanisme de revente de bande passante (Pawns / IPRoyal)
- L’application semble utiliser le SDK Pawns
- Pawns est une application qui rémunère les utilisateurs 0,20 $ par Go de bande passante Internet partagée
- Le service Pawns est exploité par IPRoyal
- Une société de proxies qui vend des connexions via proxies résidentiels 1,75 $ par Go
- Elle les présente comme des « IP obtenues de manière 100 % éthique »
Qui est « TPE.FYI LLC » ?
- TPE (ou Keeping Tempo, Tempo AI) travaille sur un modèle de tarification permettant aux salles de spectacle d’ajuster le prix des billets à la demande réelle des artistes, à partir d’analyses de vues de vidéos YouTube, de données de popularité régionales, etc.
- Sans lien avec Tempo AI Calendar ou Tempo AI Gym
- Les informations disponibles sont limitées, avec presque aucune trace après 2018
- Au moment de la rédaction, les installations observées tentaient de se connecter à plusieurs reprises à
https://stubbs.frontgatetickets.com/- Ce site vend des billets pour des concerts live organisés dans un restaurant à Austin, au Texas
- L’entreprise a été fondée en septembre 2018 à Austin, Texas, puis dissoute en mars 2023 par « Jarod Stirling »
- Adresse : The Muse at SoCo, 1007 South Congress Avenue, Apartment 443, Austin, Texas, 78704
1 commentaires
Avis sur Hacker News
Je sais que ce genre de choses arrive assez souvent, mais je me demande à quelle fréquence les entreprises mettent à jour leurs conditions d’utilisation avec ce type de formulation.
L’idée même de conditions à renouvellement automatique régissant définitivement tout usage aurait dû, à mon avis, être interdite légalement depuis longtemps.
La formulation actuelle de NightOwl indique qu’ils peuvent modifier les conditions et les tarifs à tout moment, que cela prend effet dès la publication sur le site web, et que NightOwl décide seul si un changement est « substantiel ».
Annoncer un changement des conditions d’une app installée localement via une mise à jour du site web… faut-il aussi s’abonner à leurs flux sociaux pour vérifier ?
À l’instinct, ça me semblait inapplicable et abusif, mais je me dis aussi que l’équipe juridique de Comcast a dû l’examiner.
Je me demande s’il y a un avocat qui sait si ce type de clause est valable quand les changements de contrat sont publiés sur un site web, surtout en l’absence de notification séparée.
C’était autrefois un bon front-end pour OpenStreetMap, mais, si j’ai bien compris, l’app a été rachetée par une société d’investissement pour être monétisée.
Je me demande dans quel état est l’app aujourd’hui, si son modèle économique ressemble à celui décrit ici, et quelle app utiliser comme alternative.
Dans l’affaire Safeway, le tribunal a estimé qu’un consommateur ne peut pas accepter des conditions futures qui n’existent pas encore, et que s’il n’a pas reçu de notification de modification des conditions, le simple fait de continuer à utiliser le service ne peut pas être considéré comme une acceptation des conditions modifiées.
Il me semble que les navigateurs l’ont signalée comme non sûre.
Le fait que l’app établisse beaucoup de connexions vers des sites de vente de billets de concerts est un usage courant des proxys résidentiels.
Les revendeurs de billets utilisent les appareils d’utilisateurs infectés pour contourner les blocages d’hôtes de datacenters ou les limitations d’accès en masse, et augmenter leurs chances d’obtenir des billets qui pourront être revendus plus tard avec profit.
Il arrive que des extensions de navigateur gratuites, des apps VPN, etc., dans lesquelles une porte dérobée a été introduite par le créateur, par quelqu’un ayant compromis le dépôt, ou comme ici par un acquéreur, transforment les appareils des utilisateurs en ce type de proxy.
Google et Amazon possèdent de larges plages d’adresses IP pour leurs services cloud, ce qui rend les bots basés sur AWS ou Google Cloud relativement faciles à détecter.
En revanche, Verizon dispose aussi de grandes plages d’IP attribuées à ses clients résidentiels, et NordVPN exploite le fait que des services comme Netflix ou Amazon ne veulent pas bloquer toute la plage d’IP de Verizon pour faire passer son trafic pour du trafic résidentiel.
Je déteste vraiment les acquisitions silencieuses.
C’est horrible, car il est très courant que des acteurs malveillants rachètent aussi des extensions Chrome destinées aux développeurs, puis les transforment en malware.
https://chrome.google.com/webstore/detail/hover-zoom%20/pccc...
https://github.com/extesy/hoverzoom/discussions/670
Elle pourrait envoyer une grosse notification si le propriétaire change du jour au lendemain.
Presque personne ne veut faire de don, et les entreprises correctes ne cherchent pas à acheter ces apps pour les monétiser ; au final, seules les pires entreprises, celles qui veulent exploiter les utilisateurs, rachètent les extensions et les apps.
Ces apps gratuites ont de la valeur, mais comme elles ne génèrent pas de revenu pour les développeurs, ceux-ci finissent par chercher une autre voie.
Une app très intrusive, qui avait forcément besoin d’autorisations énormes pour fournir des fonctions au niveau système, a été transférée sans accroc à une entreprise de publicité et de vente de données : ça n’a aucun sens.
C’est écrit noir sur blanc dans les conditions d’utilisation que l’utilisateur a acceptées en utilisant le logiciel ; au fond, c’est une histoire de principe de responsabilité de l’acheteur.
L’explication selon laquelle le mode automatique intégré à macOS ne basculerait que lorsque l’utilisateur s’éloigne de l’ordinateur me paraît étrange.
Si l’on configure Night Shift avec un horaire/une position et que l’on met le mode sombre en automatique, il change immédiatement ; et si l’on utilise un lanceur ou Spotlight, on peut aussi le basculer avec une ligne d’AppleScript comme
tell application "System Events" to tell appearance preferences to set dark mode to not dark mode.Je dirais que la probabilité que le mode sombre s’active au coucher du soleil est d’environ 25 %.
Cela dure depuis des années, jusqu’à Ventura inclus, et je me demande si chez les autres ça a toujours fonctionné parfaitement.
Apple semble avoir révoqué le certificat développeur
Je me demande s’il existe un journal public indiquant quand il a été révoqué
Le chargement de l’app était bloqué, mais les deux dylib tournaient encore ; je me suis demandé si c’était parce que cela s’était produit après le début de la révocation du certificat
Même après une déconnexion puis reconnexion, elles continuaient à tourner, donc il est possible que cela persiste au-delà d’une simple fermeture de session
Le pare-feu macOS a aussi affiché une invite demandant s’il fallait autoriser le binaire AutoUpdate mentionné à recevoir des connexions, donc tout cela semble avoir été déployé ces derniers jours
Après redémarrage, la boîte de dialogue
“NightOwl” will damage your computer. You should move it to the Trash.est apparue, et même en l’autorisant,/Users/*/Library/LaunchAgents/NightOwlUpdater.plistainsi que les fichiers de préférences habituels restaient en place, donc le nettoyage n’était pas completPour les utilisateurs non techniques peu à l’aise avec le terminal, il vaudrait mieux leur conseiller de redémarrer
https://lapcatsoftware.com/articles/revocation.html
Dans mon environnement, macOS a désactivé l’app et refusé de l’ouvrir
Je suis passé à NightFall à la place : https://github.com/r-thomson/Nightfall
Settings > Control Center > Display > Always Show in Menu Bar
Il faut certes un clic de plus pour activer et désactiver le mode sombre, mais on peut aussi utiliser Night Shift et c’est 100 % natif
Ouvrez Automator, créez une nouvelle application, choisissez « change system appearance », puis sélectionnez le basculement entre mode clair et mode sombre
Après l’avoir enregistrée, il suffit d’ouvrir le nom de cette app depuis Spotlight pour changer de mode, et cela doit aussi être possible avec Shortcuts
J’ai configuré un raccourci global avec clic droit + Option + Command, et ça fonctionne très bien
Il faudrait sans doute une loi applicable à ce genre de cas
Il devrait exister un contrat implicite selon lequel un logiciel fait ce qu’il dit faire et ne fait rien de complètement différent, avec de lourdes sanctions en cas de violation
À chaque requête vers un gros site web, on enverrait un fichier EULA de 10 Mo, et on continuerait jusqu’à ce qu’il soit accepté : cela pourrait devenir un « DDoS par EULA »
La clause en majuscules de la MIT License commence en indiquant que le logiciel est fourni « en l’état », sans garantie explicite ou implicite de qualité marchande ou d’adéquation à un usage particulier, et l’article 15 de la GPL contient une formulation quasiment identique
https://opensource.org/license/mit/
https://www.gnu.org/licenses/gpl-3.0.html#section15
Au Royaume-Uni, sous l’influence de la directive européenne sur les droits des consommateurs, le droit des contrats de consommation a été étendu en 2015 jusqu’aux contenus numériques, et inclut des clauses implicites selon lesquelles les biens doivent être d’une qualité satisfaisante et les services continus comme Netflix, Spotify ou les logiciels avec mises à jour ne doivent pas changer radicalement par rapport à ce qui était fourni au départ
https://www.legislation.gov.uk/ukpga/2015/15/part/1/chapter/...
La plupart des juridictions disposent de règles similaires, et les pays de l’UE doivent avoir des lois transposant la directive sur les droits des consommateurs
Mais cela s’applique lorsqu’il y a eu paiement ; NightOwl étant gratuit, les attentes juridiques qui encadrent la vente de biens et de services ne s’appliquent pas telles quelles
Le fait qu’une entreprise soit rachetée et que le produit intègre ensuite un spyware est problématique, mais il ne serait pas souhaitable non plus qu’un adolescent ou un développeur amateur ayant publié un projet open source gratuit ou un freeware pour apprendre à coder soit poursuivi par une grande entreprise pour avoir fait quelque chose du genre left-pad
Le poids de la régulation technologique devrait peser bien plus lourdement sur des acteurs comme Google, Microsoft ou Apple que sur de petits développeurs qui créent des utilitaires gratuits pour la barre de menus ou des extensions Chrome
Empêcher les petites apps gratuites et open source de devenir des vecteurs d’attaque de la chaîne d’approvisionnement reste difficile ; cela nécessite des améliorations lentes et imparfaites, comme un meilleur sandboxing et des permissions au niveau des apps, une surveillance réseau et une détection d’anomalies par app, ainsi que l’établissement de la confiance dans les processus de packaging et de distribution, et il est très probable que les procès ne soient pas la solution
La partie disant que l’app essaie d’ouvrir une redirection de port UPnP mais échoue parce que les noms de clés sont mélangés sur le routeur devrait en fait échouer sur n’importe quel routeur
parce que l’UPnP devrait être désactivé
Toutes les applis P2P comme Tailscale doivent temporairement se comporter comme des serveurs et accepter du trafic entrant
Sans cette fonction, elles deviennent en quelque sorte des citoyens de seconde zone, et cela revient à traiter les utilisateurs comme des enfants
Bien sûr, on peut ouvrir des ports soi-même, mais l’UX difficile à trouver, incohérente et complexe la rend inaccessible à la grande majorité des utilisateurs, et la plupart ne savent même pas ce qu’est un port
Ils ne veulent pas non plus des tracas liés à la désactivation de l’UPnP, et il y a de fortes chances que ce réglage soit activé, que vous pensiez savoir mieux qu’eux ou non
La plupart des routeurs n’auront probablement pas ce réglage ; donc, si un appareil compromis fait partie de votre modèle de sécurité, il est prudent de considérer qu’à cause des attaques NAT slipstream, le NAT est en pratique complètement neutralisé
Un appareil compromis peut modifier la table NAT du routeur pour se comporter en pratique comme de l’UPnP, mais sans fournir d’interface que l’utilisateur puisse auditer
Si vous utilisez uniquement IPv6 sans NAT, désactiver l’UPnP peut être une mesure de sécurité acceptable si vous êtes prêt à gérer manuellement toutes les exceptions du pare-feu, mais pour la plupart des gens aujourd’hui, seul le pare-feu de l’hôte est une protection fiable
C’est assez déroutant
Les conditions indiquent que l’app « modifie les paramètres réseau de l’appareil de l’utilisateur afin de partager le trafic Internet en utilisant l’appareil comme passerelle de trafic Internet, et que les clients de NightOwl incluent des entreprises de recherche web/de marché, de SEO, de protection de marque, de diffusion de contenu et de cybersécurité »
C’est vraiment le genre de chose qu’il faudrait brûler au lance-flammes
Mais je me demande sincèrement pourquoi ils ont écrit cela dans les conditions d’utilisation
Une organisation capable d’intégrer une fonction aussi louche me semblerait aussi vouloir cacher activement le fait qu’elle le fait ; je me demande donc s’il existe une raison pour laquelle le fait de l’inscrire dans les conditions protège juridiquement NightOwl
Par exemple, je ne sais pas si c’est le genre de chose pour laquelle ils auraient pu être poursuivis avec succès à l’origine, mais qui devient acceptable si c’est dans les conditions, ou si ce comportement louche est techniquement légal dès lors qu’il figure dans les conditions
Si c’est le cas, c’est assez décevant, et il serait souhaitable que les permissions des apps soient plus granulaires
Little Snitch aide à détecter les IP et adresses auxquelles une app se connecte, et à bloquer ces connexions
J’espère vraiment qu’ils n’envisageront jamais de vendre