Comment libérer votre montre intelligente Garmin des services cloud qui ne fonctionnent pas en raison d'une attaque

L'auteur de l'article est le célèbre hacker Andrew Hwang (bunnie)



Je dis souvent: si nous croyons que la technologie est magique, alors nous risquons d'en devenir les otages . Je me suis récemment retrouvé dans cette situation, mais heureusement, j'ai été sauvé par l'open source.



Au moment d'écrire ces lignes, Garmin souffre d'une attaque massive de ransomware . Cela m'a affecté parce que je possède une montre Garmin Instinct . Je suis très satisfait d'eux et à bien des égards, ils sont simplement magiques, tant de possibilités sont emballées dans un si petit gadget.



De plus, j'ai un passe-temps - l' aviron sur un outrigger [pirogue Ă  balancier - env. par.]



Je pense qu'une montre GPS est un élément de sécurité indispensable, notamment en navigation, car il est difficile de juger de la vitesse de l'eau lorsque l'on est à plus de quelques centaines de mètres du sol. Si vous êtes pris dans un mauvais courant, sans comprendre la situation, vous risquez d'être jeté à la mer ou pire encore.



Il peut y avoir des courants extrêmes autour de Singapour. À mesure que les marées changent, la mer de Chine méridionale trouve finalement son chemin dans la mer d'Andaman à travers le détroit de Singapour, déclenchant des courants perfides qui changent avec le temps. Ainsi, après chaque coup, mes données GPS sont téléchargées sur le cloud Garmin Connect pour examen de l'itinéraire afin de signaler les changements dangereux des courants de marée.



Bien que le téléchargement de ces données sur le cloud de Garmin présente un risque clair et réel pour la vie privée, nous comprenons tous le compromis: il y a peu de temps pour s'inquiéter de ces choses et le service a bien fonctionné dès la sortie de la boîte.



Jusqu'Ă  hier.



Nous étions juste en train de frapper des courants particulièrement inhabituels, et mon partenaire d'aviron voulait voir les vitesses dans certains endroits difficiles. Je suis allé dans l'application pour obtenir les données et ... eh bien, j'ai découvert que Garmin était attaqué.







Les données Garmin ont été prises en otage, y compris mes données personnelles d'aviron: une petite partie de ma vie est devenue l'otage de la technologie.



Un groupe d'amis m'a dit d'essayer Strava. La bonne nouvelle est que Garmin vous permet d'extraire des fichiers de données de votre montre Instinct pour les télécharger vers des services tiers. Il vous suffit de connecter la montre à un port USB normal et elle apparaîtra comme un périphérique de stockage de masse.



La mauvaise nouvelle est que lorsque j'ai essayé de créer un compte Strava, tous les signaux d'alarme se sont déclenchés. Le site Web regorge de modèles sombres, et après avoir cliqué sur le bouton Refuser l'accès Strava à mes données de santé, toute une série de boîtes de dialogue sont apparues:







Cliquez sur







Refuser ... Cliquez sur Refuser Autoriser ...







Cliquez sur OK ...



Trois clics pour refuser l'accès, et si vous continuez à appuyer doucement sur le bouton inférieur, vous ferez un autre choix - par accident. Après cela, j'ai été accueilli avec une liste étrange de personnes à suivre ( ont-ils appris tant de choses sur moi à partir d'une adresse e-mail? ), Et puis une boîte de dialogue délicate où si vous répondez incorrectement, vous serez invité à entrer les informations de votre carte de crédit dans le cadre du programme "gratuit Version d'essai ".



Étant donné que Garmin a déjà gagné plus de 200 $ en vendant l'appareil, la collecte de mes données personnelles n'est qu'un dessert; mais pour Strava, mes données sont le plat principal. Personnellement, il est assez clair pour moi que Strava indique clairement à ses investisseurs qu'ils feront un gros profit en monétisant mes données personnelles, y compris mes informations de santé.



Cela m'est absolument inacceptable. Plutôt que de libérer les données des garanties, passer de Garmin à Strava, c'est comme passer d'une poêle à un feu.



J'ai l'intention de remonter sur le bateau après-demain et ce serait formidable de faire des analyses de vitesse. Mais j'étais tellement en colère contre Strava que je n'ai plus cherché une autre option, mais j'ai décidé de développer ma propre alternative avec une protection fiable des données personnelles.



J'ai découvert avec bonheur un utilitaire open source appelégpsbabel ( merci aux développeurs! Je suis ennuyeux! ), qui convertit les données du format semi - (?) propriétaire Garmin en un format compatible .GPX. À partir de là, j'ai pu extraire les morceaux d' analyse XML et les combiner avec OpenStreetMaps via l' API Folium pour créer des cartes personnalisées avec mes données.



Même si je me suis "perdu" en essayant d'utiliser l'API Google Maps, qui met d'horribles filigranes "de développement uniquement" sur toutes les tuiles de la carte, cela n'a pris qu'une soirée. Ce n'est pas la meilleure perte de temps, tout compte fait, mais il s'agissait surtout de trouver les bons morceaux open source et de les coller ensemble en Python (au fait, Python est une excellente colle, mais des trucs structurels terribles. Ne faites pas de gros projets avec). La qualité du code est assez merdique, mais Python le permet, et il fait son travail. Avec ces mises en garde à l'esprit, vous pouvez l' utiliser comme point de départ pour chercher quelque chose de mieux.



Maintenant, j'ai un contrôle total sur mes données et je peux les visualiser de manière significative. Par exemple,afficher la vitesse sous forme de carte thermique tout au long du parcours avec des cercles proportionnels à la vitesse du moment et du texte qui, en survolant le curseur, montre la vitesse et la fréquence cardiaque spécifiques du moment: ce sont les données dont j'ai spécifiquement besoin dans le format requis, ni plus ni moins ... De plus, le problème est un seul fichier html auquel un lien direct peut être fait . Pas d'analyse, pas de cookies. Seules les données que j'ai décidé de partager avec vous. Voici le morceau de code que j'utilise pour tracer les données cartographiques:















def plot_osm_map(track, output='speed-map.html', hr=None):
    for i in range(len(track['speed'])):
        track['speed'][i] = speed_conversion(track['speed'][i])
    speeds = track['speed']
    minima = min(speeds)
    maxima = max(speeds)

    norm = matplotlib.colors.Normalize(vmin=minima, vmax=maxima, clip=True)
    mapper = cm.ScalarMappable(norm=norm, cmap=cm.plasma)
    m = folium.Map(location=[track['lat'][0], track['lon'][0]], zoom_start=15)
    for index in range(len(track['lat'])):
        if track['speed'][index] == 0:
            track['speed'][index] = 0.01
        else:
            track['speed'][index] = track['speed'][index]
        if hr:
            try:
                tooltip=str(track['speed'][index]) + ' ' + str(hr['hr'][index]) +'bpm'
            except:
                tooltip=str(track['speed'][index])
        else:
            tooltip=str(track['speed'][index])
        folium.CircleMarker(
            location=(track['lat'][index], track['lon'][index]),
            radius=track['speed'][index]**2 / 8,
            tooltip=tooltip,
            fill_color=matplotlib.colors.to_hex(mapper.to_rgba(track['speed'][index])),
            fill=True,
            fill_opacity=0.2,
            weight=0,
        ).add_to(m)

    m.save(output)


Comme je l'ai dit, le code n'est pas de la meilleure qualité, mais il fonctionne et a été rapide à écrire.



Mieux encore, je ne télécharge plus de données sur le cloud - il y a un certain plaisir intangible à supprimer un autre canal de surveillance de ma vie sans rien perdre en qualité ou en commodité.



C'est aussi une métahistoire intéressante sur les performances de l'écosystème open source aujourd'hui. Lorsque le cloud Garmin est tombé en panne, j'ai pu remplacer les fonctionnalités les plus importantes en une seule journée, en rassemblant divers frameworks open source.



Le but de l'open source n'est pas de compiler rituellement du matériel. Il s’agit de se rendre compte que la technologie n’est pas magique: qu’il existe une alternative que chacun peut choisir pour se libérer d’une éventuelle prise d’otages. Si nous le voulons, l'open source permet de créer et d'exécuter nos propres outils et services.



Voir Ă©galement:






All Articles