スマートホームをハッキングしてみた(それも、上司の)

2019年7月4日

スマートホームという考え方は、だんだんと浸透しつつあります。これまでは主にコンピューターの専門家や、いつでも真っ先に最新のガジェットに飛びつくタイプの人々が興味を示していましたが、今では一般にも人気が出てきて、手頃な価格のベーシックモデルも登場しています。

当社社員の1人もその流れに乗り、新居にしゃれたハイテク製品をいくつか取り入れました。すべて設置したところで、彼は考えました。Kaspersky ICS CERTのリサーチャーたちは、このスマートホームでいろいろ試してみたいと思うのではないだろうか(リンク先は英語)?リサーチャーたちはこの提案を歓迎しました。こうして始まった、上司のスマートホームを舞台としたセキュリティの検証実験は、調査チームによる侵入の成功に終わりました。さて、彼らはスマートホームをどのようにハッキングしたのでしょうか。ハッキングの結果、どんなことができるようになったのでしょうか。

ハッキング開始

このスマートホームは人里離れたところにあり、スマートホームハブとして「Fibaro Home Center Lite」が設置されています。このハブは、接続されているスマートデバイスすべての管理を担当します。

家には、次のようなスマートデバイスがあります。モーションセンサー搭載の照明(自動点灯・消灯機能付き)。操作やスイッチのオン・オフをリモコンでできる冷蔵庫、ステレオシステム、サウナ用ヒーター。複数台の煙感知器および浸水検知器。家を監視するためのIPカメラ数台。暖房装置。スマートビデオインターホン付きの玄関ドア。

これらはすべて、無線ホームネットワークに接続されています。検証実験を行う調査チームには、スマートホームハブの機種とそのIPアドレスだけが知らされました。

攻撃可能なポイントを絞り込む

スマートホームに対する実験的攻撃は、一般的な攻撃手順に従って行われました。Kaspersky ICS CERTの調査チームは、攻撃可能と思われる経路を洗い出し、攻撃可能なポイント(いわゆるアタックサーフェス)のモデリングを行いました。次に、最も見込みのある経路を系統的にテストし、実際に有効な攻撃経路、つまりネットワークへの侵入に使用できる経路が見つかるまで、1つずつつぶしていきました。

中には他の経路に比べて侵入が難しい経路もありますが、こういったものはモデリングプロセスから除外するのが一般的です。サイバー犯罪者は、難度の高い経路の利用に時間と手間を費やしたがらないものです。この調査チームも、そこは同様です。また、物理的に標的の近くにいなければならないなどの制約のある攻撃経路についても、今回の実験では除外しました。

このようにして、調査チームはZ-Waveプロトコルへの攻撃を検討から外しました。Z-Waveはスマートホームハブがスマートデバイスとの通信に使用するプロトコルですが、このプロトコルを攻撃するには標的である家の近くまで行かなければなりません。同じように、このハブで使用されているインタープリタを悪用する方法も除外しました。攻撃対象のFibaro製ハブでは、インタープリタの脆弱性を修正済みのバージョンが使用されていたためです。

調査チームは最終的に、リモートからのSQLインジェクションを可能にする脆弱性を発見しました(FibaroがSQLインジェクションを回避すべく努力していたのは明らかでしたが)。このほか、PHPコードにリモートコード実行の脆弱性が数件見つかりました。詳細については、Securelistのレポート(英語)をご覧ください。

これらの脆弱性を利用すると、スマートホームハブのroot権限を取得することが可能です。言い換えると、スマートホームハブを基本的に自由にコントロールできるようになるということです。ハブの所有者はroot権限を持っていないため、攻撃者が取ったアクションを覆すことができません。ただし、root権限を取得するには、攻撃者はハブにコマンドを送信できなければなりません。

スマートホームの裏の顔

Fibaroのスマートホームのポイントは、クラウドを使ってどこからでも管理できることにあります。要は、脆弱性はデバイス本体だけではなく、デバイスが使用するクラウドや通信プロトコルにも存在する可能性があるということです。実際のところ、Fibaroのクラウドにも重大な脆弱性があり、世界中のFibaro製ハブからアップロードされたバックアップファイルのすべてにアクセス可能な状態でした。

セキュリティ調査チームはこれを利用して、この家のFibaro Home Centerが保存したバックアップデータを手に入れました。バックアップされていたファイルの中には、大量の個人情報が記録されたデータベースファイルがあり、家の所在地、家の持ち主のスマートフォンから送られてきた位置情報、Fibaroの登録に使われたメールアドレス、この家にあるスマートデバイス(Fibaro製ではないものも含む)に関する情報(デバイスのモデル、ログイン情報など)、そして家の持ち主のパスワードまで記録されていました。

家の持ち主のパスワードは、ソルトを付与してハッシュ化された形で適切に保管されており、調査チームは復号することができませんでした。しかし、その他のスマートデバイスのパスワードは、暗号化されず平文の状態でこのデータベースに格納されていました。

調査チームは次に、リモートから送信されてきた任意のコマンドを実行するPHPスクリプトを仕込んだバックアップファイルを作成しました。さらに、クラウド機能を使って家の持ち主宛にメールとSMSを送信し、スマートホームで何か不具合が発生していること、機能を回復するには更新プログラムの適用が必要であることを伝えました。

もちろん、この家の持ち主は情報セキュリティのプロであり、しかも攻撃が来ることを予期していたので、このメールが罠であるとすぐに気づきました。無防備な一般人なら、おそらくそうはいかなかったでしょう。彼はこのまま実験を続けることにして、メールの内容に従って例のバックアップファイルをダウンロードしました。このようにして、攻撃者役の調査チームは、スマートホームハブと、このハブがコントロールしている全スマートデバイスへのアクセスに成功したのでした。最大のポイントは、同チームがホームネットワークへのアクセス権を得たことでした。

スマートホームがハッキングされたらどうなるのか

スマートホームへのバーチャルな侵入に成功した調査チームは、ホームネットワークに接続されたあらゆるスマートデバイスをコントロールできるようになりました。今回のケースでは、室温を変更する、サウナのスイッチを入れる、ステレオから大音量で音楽を流す(調査チームはこれを実際にやってみました。目覚まし時計の音をドラムとベースのトラックに変更したのです)、ネットワークプリンターに出力するなど、さまざまなことが可能な状態になりました。

それだけでなく、遠隔操作で玄関のドアを開くことや、監視カメラやモーションセンサーの動作を止めることも可能となったということは、簡単に強盗に入れるという意味でもあります。また、スマートフォンの位置情報から家主の現在地も分かるため、家主が自宅から離れたところにいるときを狙った作戦を立てることも可能でした。

一般的には、スマートホームをハッキングされてもそれほど害はないかもしれませんが、強盗に入ろうと考えた誰かがセキュリティシステムを無効化するためにハッキングしたのなら、話は別です。今回の実験からは、「スマートホーム化を計画するときには、セキュリティシステムに頼りすぎてはいけない」という教訓が得られました。セキュリティシステムは、無効化される可能性があるのです。

最後に、かなり安全性の高い製品を作り上げたFibaro Groupに称賛を送りたいと思います。同社はまた、発見された脆弱性に関してICS CERTの調査チームと密接に連携し、迅速に修正を行いました。このちょっとした実験が、Fibaro Smart Home Centerのセキュリティ強化に貢献したことを喜ばしく思います。