IoT家電はインターネットに接続することでさまざまな機能を実行できますが、時にはインターネットにつながっていることがリスクになります。インド出身のソフトウェア開発者であるハリシャンカール氏が、「ロボット掃除機のデータ送信をブロックしたところ遠隔操作で使用不可能にされてしまったが、リバースエンジニアリングして自力で復活させた」という体験談を報告しました。
The Day My Smart Vacuum Turned Against Me
https://codetiger.github.io/blog/the-day-my-smart-vacuum-turned-against-me/
Manufacturer issues remote kill command to disable smart vacuum after engineer blocks it from collecting data — user revives it with custom hardware and Python scripts to run offline | Tom’s Hardware
https://www.tomshardware.com/tech-industry/big-tech/manufacturer-issues-remote-kill-command-to-nuke-smart-vacuum-after-engineer-blocks-it-from-collecting-data-user-revives-it-with-custom-hardware-and-python-scripts-to-run-offline
ハリシャンカール氏は中国に本社を置くiLifeのロボット掃除機「iLife A11」を購入し、1年近く問題なく使用していたとのこと。デザインもよく価格的にも手頃で、スマートなナビゲーション機能も備えているiLife A11に満足していたというハリシャンカール氏ですが、ある日好奇心を抑えられなくなってネットワークトラフィックを監視してみたそうです。
すると、iLife A11が地球の反対側にあるサーバーへ絶え間なくパケットを送信し、ハリシャンカール氏の同意なしでメーカーと通信していることがわかりました。そこでハリシャンカール氏はデータログのIPアドレスをブロックし、データ送信を強制的にストップさせました。
数日間は何の問題もなく動作していたiLife A11でしたが、ある日いきなり電源が入らなくなりました。保証期間内だったのでメーカーへ修理に出したところ、サービスセンターの担当者からは問題なく動作するとの回答があり、実際に返送されて数日間は無事に動いていたそうですが、その後また動作しなくなってしまったそうです。このサイクルが繰り返されるうちにiLife A11は保証期間外となってしまい、単なる文鎮と化してしまいました。
そこで、好奇心がフラストレーションを上回ったというハリシャンカール氏は、思い切ってiLife A11の本格的なリバースエンジニアリングに着手しました。すると、iLife A11の中にはLinux OSを実行するAllwinner A33チップや、モーターとセンサーを管理するGD32F103マイクロコントローラー、LiDARセンサー、ジャイロ、エンコーダーといった電子機器が搭載されていることがわかりました。
ハリシャンカール氏はデバイス全体をセンサー1つに至るまで分解し、プリント基板(PCB)をトレースし、各部品とチップにラベルを付けて用途を記録。そして、センターとコンピューターを接続するためのPCBコネクタを設計し、センサーやホイールモーター、エンコーダをテストしました。
それぞれのセンサーの動作原理を理解するために多くの時間を費やし、コンピューターとの接続に成功した後は、これらのデバイスをコンピューターに直接接続するための簡単なPythonスクリプトを作成したとのこと。
さらにハリシャンカール氏は、システムをテストするために手動操作可能なRaspberry Piジョイスティックインターフェースを構築し、iLife A11のハードウェアが完全に動作することも確認しました。ハリシャンカール氏は、「この時までに、私は各チップやワイヤーコネクターに至るまで、ハードウェアがどのように設計されているかを完全に理解していました」と述べています。
USBデバッグボードを調べていたハリシャンカール氏は、掃除機へのルートアクセスを可能にするAndroid Debug Bridgeがオープンな状態であり、パスワードや認証も不要なことを発見。不正アクセスを防ぐための保護策も回避することに成功し、ハリシャンカール氏はさらに詳しくシステムを調査することにしました。
すると、起動スクリプトが設置されている「/etc/init.d」ディレクトリ内にあったスクリプトのひとつが、メインアプリケーションの起動を妨げるように変更されていることがわかりました。該当する行は以下の通り。
2024/02/29, 14:06:55.852622 [LogKimbo][CAppSystemState] Handle message! cmd_id 501 RS_CTRL_REMOTE_EVENT, len 8 serialno 0
ここに含まれている「2024/02/29」という日付はちょうど掃除機が動かなくなったタイミングと一致していました。ハリシャンカール氏がスクリプトの変更を元に戻し、デバイスを再起動したところ、iLife A11は再び動くようになりました。
iLife A11にはデフォルトでrttyというソフトウェアがインストールされていました。rttyはデバイスへのリモートルートアクセスを許可するソフトウェアであり、これによってメーカーが顧客の知らないうちにリモートで任意のコマンドを実行したり、任意のスクリプトをインストールしたりすることが可能になります。
ハリシャンカール氏は、「メーカーはデバイスをリモートで無効にする権限を持っており、データ収集をブロックしたとして、私に対してその権限を行使しました。正しく言えば報復です。意図的な処罰であれ、コンプライアンスの自動的な強制であれ、結果は同じでした。消費者向けデバイスが所有者に逆らったのです」と結論付けました。
ハリシャンカール氏は、数多くのスマート機器がiLife A11と潜在的に同じ危険性を抱えており、たった1行のコードで武器化される可能性があると指摘。また、今回の事例からは以下のような教訓が得られたと述べています。
・「スマート」は多くの場合、制御の欠如を意味している。
・安いということは、セキュリティが損なわれていることを意味している。
・利便性には隠れた監視が含まれていることが多い。
・主要なWi-FiネットワークをIoTデバイスに使用してはならない。
・IoTデバイスは自分の家において「他人」として扱うべきである。
この記事のタイトルとURLをコピーする
ソース元はコチラ
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。




