Xiaomi製掃除機Mi Robotのハッキング

2018年1月16日

インターネットとインターネットに接続されているモノにまつわる話題というと、例によって良からぬ話と思われそうですが、必ずしもそうではありません。先日、セキュリティリサーチャーのデニス・ギーゼ(Dennis Giese)氏とダニエル・ウェゲマー(Daniel Wegemer)氏がXiaomi製掃除機Mi Robotのハッキングに成功しましたが、その調査結果によると、このデバイスが他の大半のスマートデバイスに比べはるかにセキュリティに優れていることが分かります。

先日ライプツィヒで開催されたChaos Communication Congress (34C3)における講演で、両氏はハッキングしたデバイスのソフトウェアの仕組みや、最終的にどの脆弱性を利用して保護を突破したかについて解説しました。

アルミホイルでMi Robotをハッキング

調査を開始したとき、ギーゼ氏とウェゲマー氏は、Xiaomi製掃除機に搭載されているハードウェアが、多くのスマートフォンのものよりも高性能であることに驚きました。3基のARMプロセッサが搭載されており、そのうちの1つはクアッドコアです。実に頼もしいスペックです。両氏は手始めに、複数の基本的な攻撃経路を使用してシステムのハッキングを試すことにしました。

まず、掃除機のマイクロUSBポートから侵入する方法がないかを調べましたが、すぐに行き詰まりました。この経路は、ある種の認証手段で保護されていました。続いて両氏はMi Robotを分解し、マザーボードにシリアルポートがないか探してみましたが、成果は得られませんでした。

次に試したのは、ネットワーク経由でのハッキングです。デバイスのネットワークポートをスキャンしようとしましたが、ポートはすべてクローズされていました。ネットワークトラフィックのデータ傍受も、通信が暗号化されていたため成功しませんでした。ここまでの結果には、いささか感心させられます。IoTデバイスはここまでセキュリティに配慮して設計されていないのが通常で、他のデバイスの大半なら、ここへ至るまでの間にハッキングされていたでしょう。当社が実施したインターネット接続型デバイスのセキュリティの不十分さに関する調査(英語)からも、それは明らかです。

Xiaomi製Mi Robotの話に戻りましょう。次に両氏が試したのは、掃除機のハードウェアに手を付けることです。そして、この方法でついにハッキングに成功しました。具体的には、プロセッサをマザーボードにつないでいる小さな接触部をアルミホイルを使ってショートさせ、プロセッサを特別なモードに切り替えさせました。このモードでは、USB接続を介してフラッシュメモリへの直接読み込み、さらには書き込みが可能です。

このようにしてギーゼ氏とウェゲマー氏は、Mi Robotのファームウェアを入手してリバースエンジニアリングし、改変を加えて掃除機にアップロードすることで、デバイスを自在に制御することに成功しました。

ワイヤレスでMi Robotをハッキング

ハードウェアを分解してハッキングするというやり方は、デバイス内部を物理的に触らないやり方に比べ、とても洗練されているとは言えません。しかしながら両氏は、デバイスのファームウェアをリバースエンジニアリングした後、Wi-Fiと、ファームウェアの更新メカニズムの欠陥を利用するだけで、デバイスに侵入する方法を発見しました。

Xiaomiが採用するファームウェアの更新手順自体は、よく考えられています。新しいソフトウェアは暗号化された接続を介して配信され、ファームウェアパッケージ自体も暗号化されています。ところが、更新パッケージの暗号化には「rockrobo」という固定パスワードが使われていました(皆さん、弱いパスワードを使わないようにしましょう)。そのため両氏は、自分たちで手を加えたファームウェアを含む、適切に暗号化を施したファームウェアパッケージを作ることができました。

続いて、両氏はXiaomiのスマートフォンアプリで入手したセキュリティキーを使用し、新しいファームウェアをダウンロードしてインストールするよう、掃除機にリクエストを送信しました。ただしXiaomiのクラウドからではなく、自分たちのサーバーからダウンロードするようにリクエストしたのです。こうして、今度はワイヤレスでのハッキングに成功しました。

Mi Robotのファームウェアの内部

ファームウェアを調べてみると、Xiaomiのスマートデバイスに関する興味深い事実がいくつか判明しました。第1に、Mi Robotのファームウェアは基本的にUbuntu Linux であり、これにより定期的に迅速にパッチが適用されます。第2に、掃除機1台ごとに別々のスーパーユーザーパスワードが使用されています。つまり、大量の掃除機を一度にまとめてハッキングできるようなマスターパスワードはありません。第3に、システムではファイアウォールが稼動しており、ハッカーに利用される恐れのあるポートはすべてブロックされています。ここでも、Xiaomiの優れた仕事ぶりには感心するばかりです。IoTデバイスとしては、驚くほどセキュリティに配慮されています。

とはいえ、両氏の調査では、少々残念な点も見つかりました。掃除機は1日あたり数メガバイトに及ぶ大量のデータを収集し、Xiaomiのクラウドに送信します。稼動状況の測定データのように送信が妥当なデータだけでなく、接続したWi-Fiネットワークの名称とパスワード、内蔵LIDARセンサーを使って作成された部屋の間取り図といったデータまで収集されるのです。さらに気がかりなのは、こうしたデータはデバイスを初期化した後でもシステム内に永久に残ってしまうことです。ですから、eBayあたりで中古のXiaomi掃除機を購入した人があれこれ探れば、そうした情報をすべて簡単に入手できてしまいます。

記事を締めるにあたり、ギーゼ氏とウェゲマー氏が使用した方法はどちらも自分たちが所有するデバイスハッキングのみに有効であった、という点は強調しておくべきでしょう。第1の方法では、掃除機へ物理的にアクセスする必要がありました。第2の方法では、更新リクエストを行うためのセキュリティキーを入手する必要がありました。セキュリティキーは、デバイスとモバイルアプリをペアリングするたびに生成される一意の値で、ハッキング対象のXiaomiデバイスとペアリングされたスマートフォンにアクセスできないかぎり、簡単に入手できるものではありません。

総合的に考えて、Xiaomi製品を利用したMiraiボットネットが近いうちに登場する可能性は低そうです。反対に、この調査によって明らかになったのはむしろ、Xiaomiが他の大半のスマートデバイスメーカーに比べて、一段とセキュリティに注力していることです。これは、あらゆるものがネットに接続する未来へ向けて、明るい兆しです。ほぼすべてのものはハッキング可能ですが、多大な労力がかかるとしたら、犯罪者はあえてそれを狙おうとはしないでしょう。犯罪者は簡単に儲けられる方法を好むものです。