スマートホームのハッキング

2019年7月25日

スマートホームのテクノロジーは、生活をより便利で快適なものにすることを目指して設計されています。しかし、便利な新発明には新たな問題が付きものです。あらゆるものを自動化することの危険性は、しばしば話題になりますし、あちこちのブログでも取り上げられています。まず、家庭用電化製品をインターネットに接続すると、その持ち主の生活は、接続の安定性やサーバーの動作に左右されるようになります。同時に、サイバー犯罪者がこれらの家電を侵入口として利用し、脆弱な機器の制御を掌握して、自分たちの利益のために悪用する可能性もあります。

最近の調査が示すように、スマートホームを乗っ取る方法は数多く存在します。問題となりやすいポイントには、家主が遠隔操作に使用しているクラウドサーバーの脆弱性のほか、スマートライトのスイッチのような一見、害のないものも含まれます。

Fibaro:クラウドの脅威

Kaspersky Dailyで先日取り上げたように、Fibaroのスマートホームでは、スマートハブのバックアップデータを、誰でもクラウドサーバーへアップロード、またはサーバーからダウンロードできるようになっていました。スマートハブといえば、サーモスタット、コーヒーメーカー、防犯システムなどすべてのスマートデバイスをコントロールできる、スマートホームで一番重要なデバイスです。

ハブのバックアップデータには、その家と持ち主に関する重要なデータが入っています。たとえば家の所在地や、家主のスマートフォンの位置情報、Fibaroシステムへのアカウント登録に使われたメールアドレス、接続されているデバイスとそのパスワードの一覧などが、暗号化されず平文の状態で保存されていました。

スマートホームのリモートコントロールに使用される管理パネルのパスワードも保存されていましたが、このパスワードについては保護されていました。正確にいえば、ハッシュ化されていたのです。しかし、Fibaroクラウドに保管されているバックアップをすべてダウンロードしたならば、一番単純で最もよく使われているパスワード(たとえば「password1」)を推測できる可能性があります。同一のパスワードのハッシュはすべて同じになるためです。

管理パネルへの潜入に成功すると、攻撃者がいずれかの脆弱性を悪用してコードをリモート実行し、システムのスーパーユーザー権限を手に入れる恐れがあります。スーパーユーザー権限があればスマートホームで何でもできますが、皮肉なことに、本来の家の持ち主はスーパーユーザー権限を持っていません。これは、持っていない方が安全だろうとのメーカー側の判断によるものです(さまざまな意味で正しい判断です)。

Fibaro:悪意あるアップデート

Kasperskyの調査チームが発見したもう1つの攻撃シナリオの場合、パスワードのクラッキングは必要ありませんでした。前述のとおり、バックアップファイルは、Fibaroサーバーから認証なしにダウンロードできるようになっていただけでなく、アップロードも可能でした。さらに、クラウドから家主にショートメールや電子メールを送ることもできました。

要するに、攻撃者は、悪意あるバックアップファイルを作成してサーバーにアップロードし、標的となった人をうまいこと誘導して「更新プログラム」をインストールさせるだけでよかったのです。インストールを促すには、Fibaroから送られたように見せかけたメール(フィッシングメール)を利用可能でした。細かいところにおかしな点があったとしても、何の疑いも持っていない人なら、かなりの確率で悪意あるバックアップファイルをダウンロードしたことでしょう(しかも最初のケースと同様、攻撃者にスーパーユーザー権限を与えることになります)。そもそもメールは「******@fibaro.com」というメールアドレスから届くので、問題があるようには見えません。

当社はこの脆弱性をFibaroに報告し、同社は速やかに問題を修正したため、この攻撃シナリオは機能しなくなっています。ほかのスマートデバイスメーカーが同じ過ちを犯さないこと、このような問題があったことを念頭にシステムを開発してくれることに期待しましょう。

Nest:スマートカメラのオン/オフ

米国のウィリアムアンドメアリー大学の調査チームが、2つのスマートホームプラットフォーム(Googleが所有するNest Labsの「Nest」、Philips製の「Hue」)のセキュリティを調査(英語サイト)したところ、両方にそれぞれ独自の脆弱性が見つかりました。

Nest Labsの開発者たちは、セキュリティシステムの保護には特に気を配っていました。防犯カメラなどホームセキュリティ上重要なコンポーネントの設定変更やオン/オフの切り替えを、サードパーティ製のアプリやデバイスからできないようにしています。より正確には、このような操作を「直接」行うことができない仕組みです。

さて、このシステムでは、防犯用のシステムやデバイスに共通の属性をいくつか使用しているのですが、この部分の保護に問題がありました。こういった属性値は記憶領域の1か所にまとめて保存されていますが、この領域には、動作するためにこの値を必要とするデバイスすべてがアクセスできます。さらに、照明のスイッチやサーモスタットのようなセキュリティ面ではあまり重要でないデバイスも、多くの場合、必要な値の読み込みだけでなく、変更することも可能です。

一方で、このおかげで日常的な動作が自動化され、簡素化されているのも事実です。たとえば、朝の出勤前に、各デバイスにいちいちコマンドを送らずにすみます。照明のスイッチを制御するアプリが、家主が家の敷地を出たことをスマートフォンの位置情報に基づいて判断し、この情報を記憶領域に送信し、家主が在宅か留守かを表す属性にaway(留守)の値を割り当てます。

スイッチはこの値を読み取り、指定どおりに照明を消します。同時に他のデバイスもこの値を読み取って、それぞれプログラミングされたとおりに動作します。エアコンは出力を落とし、ステレオシステムは電源をオフにし、防犯カメラは録画を開始します。しかし、家主が帰宅したとシステムが判断するように仕向ければ、カメラに録画を止めさせ、防犯システムの監視の目を緩めることができます。

Nest製品と互換性のあるデバイスの中には、home(在宅)/away(留守)モードの切り替え権限を持つ製品が存在します。そこで調査チームは、TP-Link製のKasaスイッチの安全性をテストしてみることにしました。Kasaスイッチが選ばれた理由は、前述のhome/away設定の読み取りと切り替えができることだけでなく、デバイスのリモートコントロールアプリであるKasa Smartの人気が高い(Google Playでのダウンロード数は100万回超)こともありました。詳しい調査の結果、攻撃者はこのアプリを悪用してサーバーに侵入し、コマンドを送信できることが分かりました。

問題が見つかったのは認証手続き内、具体的には、アプリ開発者のセキュリティに対するアプローチにありました。家主のアカウントの詳細情報が悪意を持つ者の手に渡らないようにするため、アプリとサーバーはまず暗号化された接続を確立します。このとき、アプリがサーバーにリクエストを送信すると、サーバーは自分が信頼できることを示すSSL証明書をアプリに提示します。

アプリは証明書の真正性をチェックし、正真正銘の本物であれば、サーバーへ密かにトークン(家主を特定するためのデータ)を渡します。ところが、このチェックにエラーがありました。Kasa Smartは、提示された証明書をすべて信頼してしまうのです。

調査チームは、このハッキングシナリオを次のように説明しています。

  1. 攻撃者は標的にした家の持ち主を追跡し、この人がカフェなどで公共のWi-Fiに接続するのを待ちます。
  2. アプリ(Kasa Smart)が、サーバーへの接続を試みます。
  3. 攻撃者も同じネットワークにアクセスして接続を傍受し、自分が用意したSSL証明書をアプリに提示します。
  4. アプリは攻撃者をサーバーと勘違いして、認証に必要なトークンを送信します。
  5. 次に、攻撃者はこのトークンを本物のサーバーに提示し、サーバーの通信相手がアプリであると思い込ませます。
  6. 攻撃者はカフェから直接、家主が帰宅したとスイッチに伝えます。
  7. 属性がawayからhomeに変わります。
  8. これで目的は達成されました。カメラはこの値を読み取って録画を停止します。攻撃者またはその共犯者は、誰にも気付かれることなくその家に侵入できます。

調査チームは、一番の懸念はこのような攻撃を実行するのに特別なスキルが必要ないことだと述べています。しかし、朗報もあります。Fibaroシステムの開発元と同様に、Kasaの開発元も、調査チームからの報告を受けてこの不具合を修正しました。

Nest:不十分なチェック

Nestシステムは、サードパーティのデバイスやアプリをスキャンする組み込み機能によって、理論上はこのような攻撃から保護されているはずです。開発者向けのWebサイトには、このプラットフォームと情報をやり取りする製品に対する要件がずらりと並んでいます。中でも、第三者が本来の利用者になりすますことを防ぐため、アプリまたはデバイスは正しく動作する安全な認証システムを備えていなければならないと定められています。

しかし実際には、サードパーティアプリやデバイスの検証は回避可能です。Nestシステムは、利用者数が50人を超えるアプリやデバイスしかチェックしません。つまり、サイバー犯罪者がスマートホーム攻撃のため独自に開発したプログラムがセキュリティコントロールを回避して接続することが可能であるということです。サイバー犯罪者としては、標的の人が特定のアプリをダウンロードするように仕向け、このアプリに必要な権限を付与してもらえばよいのです。

さらに、Nestの要件を満たしていない有名アプリも、スキャンを回避できる見込みがあります。その例が、サーバーへの接続を攻撃者に許可する不具合を持っていた、前述のKasa Smartです。

さらに、Nestデバイスに対応している多数のアプリが、動作に必要なアクセス権限について、利用者に正確でない情報を伝えていることも分かりました。たとえば、あるサーモスタット制御アプリの説明には、home/away属性へのアクセスはサーモスタット自体をコントロールする目的に限って行われると書かれています。しかし実際には、この属性はシステム全体で共有されているので、属性が変更されればほかのデバイスも反応します。この説明は誤解を与えかねません。

Hue:サードパーティアプリからのアクセス

サードパーティアプリに付与される権限の問題は、Philips Hueスマートライトシステムにも関連しています。このシステムは、各プログラムがスマートホームに接続するにはそれぞれ家主に許可を得なければならないような設計となっていました。

この許可を与えるには、Hueデバイスが情報のやり取りに使用するコントロール装置のボタンを物理的に押す必要があります。そのためには、アプリとコントロール装置が同一のローカルネットワークに存在しなければなりません。つまり、近所の住人や通りがかりの人がタイミングを見計らってリクエストを送信してあなたのスマートホームに接続する、ということはできないのです。セキュリティの観点からいって、優れたアイデアです。しかし、実装がうまく行われていませんでした。

調査チームは、このボタンを「押せる」のは利用者だけでなく、Hueに接続済みのどのプログラムからでも押せることを発見しました。これは、ボタンがオンになっているかどうかを判断する際に、コントロール装置の持つある設定値を基準にしているためです。この値はアプリで変更可能です。したがって、悪意のあるプログラムがプラットフォームへのアクセスに成功した場合、ほかのプログラムにもアクセス権限を自由に付与できるようになります。それだけでなく、これと同じ設定を使用して、家主によって接続された正規デバイスへのアクセスを拒否することもできるのです。

Hueプラットフォームは照明のコントロールにしか使われていないので、このバグはNestプラットフォームの脆弱性ほど危険ではないように見えるかもしれません。しかし、HueデバイスはNestにも接続できます。先に説明したとおり、Nestはドアのロックや防犯カメラにアクセスできるだけでなく、これらデバイスの無効化をサードパーティアプリに許してしまう場合もあります。

スマートホームを守るには

ほぼすべてのホーム自動化デバイスにセキュリティホールが見られる、という結果となりました。では、これはどの程度の脅威でしょうか?照明が点滅したりヒーターが暖かくならなかったりしたら不便ですが、危険度が非常に高いというわけでもありませんし、サイバー犯罪者からしてもどうでもよいことです。スマートロックや防犯カメラがハッキングされたなら話は別ですが、泥棒がドアロックや防犯カメラを何とかしようとする場合、エクスプロイトを使うよりもバールを使う可能性の方が高いでしょう。

自宅を「スマート化」するかどうかの判断は、あなた次第です。スマートホームが必要だとの結論に至ったら、ハッキングされるリスクをできるだけ低くしたいものです。以下にヒントをまとめます。

  • スマートデバイスを購入する場合は、セキュリティに関するレビューや調査レポートを読んでからにしましょう。注目したいのは、発見された脆弱性に対してメーカーがどのように対応しているかという部分です。調査チームによって報告された問題を迅速に解決していたら、ポジティブに評価できます。
  • どのアプリまたはデバイスを購入するか決めたら、更新プログラムや脆弱性の発見に関する最新情報には常に注意を払いましょう。開発元からリリースされた更新プログラムはすべて、速やかにインストールしてください。
  • デバイスやコントロールパネルには、強力で、しかも独自のパスワードを設定しましょう。こうすることで、単純なパスワード総当たり攻撃だけでは、あなたの家をコントロールする大事な機器にアクセスしにくくなります。
  • 家庭用Wi-Fiネットワークを正しく構成しましょう。
  • プログラムは公式サイトからダウンロードしましょう。また、プログラムに不要な権限を与えないようにしましょう。
  • 公共のWi-Fiを使っての通信では、第三者が通信の内容を見ることができます。つまり、公共のWi-Fi経由でスマートホームに接続するとき、パスワードやトークンなどの情報を第三者が傍受する可能性があるということです。傍受されるのを避けるには、VPNサービス(セキュアコネクションなど)を使用しましょう。