私がよく言うのは、テクノロジーが魔法だと信じているなら、人質になる危険性があるということです。私は最近この状況に陥りましたが、幸運にも私はオープンソースによって救われました。
この記事を書いている時点で、Garminは大規模な身代金攻撃に苦しんでいます。私はGarminInstinctウォッチを所有しているので、それは私に影響を与えました。私はそれらに非常に満足しており、多くの点でそれらは魔法のようであり、そのような小さなガジェットには多くの可能性が詰め込まれています。
その上、私は趣味を持っています-アウトリガーに漕ぐ[アウトリガーカヌー-約。あたり。]
地上から数百メートル以上離れると水の速さを判断するのが難しいので、GPSウォッチは特にナビゲーションに欠かせない安全機能だと思います。状況を理解せずに悪い流れに巻き込まれた場合、海に投げ込まれるか、さらに悪いことになります。
シンガポール周辺には極端な流れが存在する可能性があります。潮流が変化すると、南シナ海は最終的にシンガポール海峡を通ってアンダマン海に流れ込み、時間とともに変化する危険な流れを引き起こします。そのため、ストロークごとに、GPSデータがGarmin Connectクラウドにアップロードされ、ルートを確認して、潮流の危険な変化にフラグを立てます。
そのようなデータをGarminのクラウドにアップロードすると、明確で現実的なプライバシーリスクが発生しますが、トレードオフを理解しています。そのようなことを心配する時間はほとんどなく、サービスは箱から出してすぐに機能しました。
昨日まで。
私たちはちょうどいくつかの特に珍しい流れにぶつかっていました、そして私の漕ぎのパートナーはいくつかの困難な場所で速度を見たいと思っていました。データを取得するためにアプリにアクセスしたところ、Garminが攻撃を受けていることがわかりました。

私の個人的な漕ぎデータを含め、ガーミンのデータは人質に取られました。私の人生のごく一部がテクノロジーの人質になっています。
たくさんの友達がStravaを試してみるように言った。幸いなことに、Garminを使用すると、Instinctウォッチからデータファイルを抽出して、サードパーティのサービスにアップロードできます。時計を通常のUSBポートに接続するだけで、大容量ストレージデバイスとして表示されます。
悪いニュースは、Stravaアカウントを作成しようとすると、すべての危険信号が消えたことです。ウェブサイトは暗いテンプレートでいっぱいで、[マイヘルスデータへのStravaアクセスを拒否]ボタンをクリックすると、一連のダイアログボックスが表示され

ます。

[拒否]を

クリック... [許可を拒否]をクリック... [OK ]をクリック...
3回クリックしてアクセスを拒否し、ゆっくりと下のボタンを押し続けると、誤って別の選択をすることになります。その後、フォローする人の不気味なリストで迎えられました(彼らは同じメールアドレスから私について多くを学びましたか?)そして、間違って答えると、「無料」の一部としてクレジットカード情報を入力するように求められるトリッキーなダイアログボックス体験版 "。
Garminはすでにデバイスの販売で200ドル以上を稼いでいるので、私の個人データの収集は単なるデザートです。しかし、Stravaの場合、私のデータがメインコースです。個人的には、Stravaが投資家に対して、私の健康情報を含む私の個人データを収益化することで大きな利益を上げることを明確にしていることは明らかです。
これは私には絶対に受け入れられません。担保からデータを解放するのではなく、GarminからStravaに移動することは、フライパンから火に移動するようなものです。
明後日またボートに乗る予定ですので、スピード分析ができたら嬉しいです。しかし、私はStravaに非常に腹を立てていたため、別の選択肢を探す必要はありませんでしたが、個人データを確実に保護する独自の選択肢を開発することにしました。
私は幸いにもと呼ばれるオープンソースユーティリティを発見しましたgpsbabel(開発者のおかげです!私は迷惑です!)、これはデータをセミ-(?)独自のGarmin形式から互換性のある.GPX形式に変換します。そこから、XML解析チャンクを抽出し、Folium APIを介してOpenStreetMapsと組み合わせて、データを使用してカスタムマップを作成することができました。
すべてのマップタイルに恐ろしい「開発専用」の透かしを付けるGoogleMaps APIを使おうとして「迷子」になりましたが、たった1晩しかかかりませんでした。私の時間の最善の無駄ではありませんが、すべてを考慮しましたが、ほとんどの場合、適切なオープンソースの部分を見つけてPythonでそれらを接着することでした(ちなみに、Pythonは素晴らしい接着剤ですが、ひどい構造のものです。それから大きなプロジェクトを作成しないでください)。コードの品質はかなりくだらないですが、Pythonはそれを許可し、その仕事をします。これらの警告を念頭に置いて、より良いものを探すための出発点として使用できます。
これで、データを完全に制御できるようになり、データを有意義に視覚化できるようになりました。例えば、コース全体のヒートマップとして速度を表示し、現在の速度に比例する円と、カーソルを 合わせると現在の特定の速度と心拍数を示すテキストを表示します。これは、必要な形式で特に必要なデータです。これ以上でもそれ以下でもありません。 ..。さらに、この問題は、に直接リンクできる単一のhtmlファイルです。分析もCookieもありません。私があなたと共有することに決めたデータだけ。 マップデータをプロットするために使用しているコードは次のとおりです。

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)
私が言ったように、コードは最高の品質ではありませんが、それは機能し、すぐに書くことができました。
さらに良いことに、これ以上データをクラウドにアップロードしません。品質や利便性を損なうことなく、私の人生から別の監視チャネルを削除することには、ある種の無形の喜びがあります。
これは、オープンソースエコシステムが今日どれだけうまく機能しているかについての興味深いメタヒストリーでもあります。 Garminクラウドがダウンしたとき、さまざまなオープンソースフレームワークをまとめることで、最も重要な機能を1日で置き換えることができました。
オープンソースのポイントは、資料を儀式的に編集することではありません。重要なのは、テクノロジーは魔法ではないということです。潜在的な人質の状況から自分を解放するために、誰でも自分で選択できる代替手段があるということです。必要に応じて、オープンソースを使用すると、独自のツールやサービスを作成して実行できます。
参照:
- 「ガーミンはサイバー攻撃の事実を確認し、いくつかのサービスを復活させました」
- 「セキュリティウィーク31:ガーミンインフラストラクチャへの攻撃」
- 「出版物BleepingComputerは、Garminに対するウイルス駆除者の攻撃に関する詳細を発表しました»