Amazon EchoやGoogle Home・Nestが悪用される脆弱性:安全性のための対策は?

Image: <a href="https://www.shutterstock.com/ja/image-photo/smart-home-assistant-desk-1589821924?src=a2eb044c-0279-40d5-84b9-b43c51e73bab-1-18" target="_blank">Shutterstock</a>

デバイスでサードパーティのサービスを受け入れる時には、それなりの注意が必要です。

スマートホームの場合は、特に用心すべき。

確かに、スキルやアクション、アプリなどはスマートスピーカーに新たな機能を追加してくれますが、インストールする時には、その内容を入念にチェックすることが肝心です。

(なお、本記事ではおもにAmazonの「Echo」と、Googleの「Home」や「Nest」シリーズのデバイスを取り上げます)

AmazonやGoogleがまだ修正していない脆弱性が、悪意のある開発者によって利用され、スマートスピーカーを経由したフィッシング詐欺や盗聴の被害に遭う恐れがあるからです。

現在問題になっているのは、レーザーを用いて音声コマンドを入力するような高度な攻撃ではありません。

AmazonおよびGoogleのスマートスピーカーで音声コマンドを処理する方法に関して、数カ月前から指摘されている脆弱性がいまだに修正されていないとことが、Security Research Labs(SRLabs)の研究チームによって確認されています。

その結果、詐欺的なアプリ(なかでもAmazon、Googleが共にチェックし切れていないとみられるもの)が、何も知らないユーザーから、重要な機密情報をかすめ取れる状態になっているとのことです。

この脆弱性をアプリはどうやって悪用するのか、その手口について、SRLabsは以下のように解説しています。

1. まず、アプリケーションを作成します。

このアプリは一見無害のようですが、「スタートさせて」という言葉を聞くと、そのあとに続く言葉をスロット値(アプリに転送されるユーザー入力の変数)として解釈するインテントが含まれています。これは、フォールバックインテントのような挙動を示します。

2. AmazonやGoogleは、公開する前にこのアプリのセキュリティを審査します。

そこで我々は、この審査のあとで、再審査にならない範囲で、アプリの機能を変更しました。

具体的には、起動時のメッセージを偽のエラーメッセージに差し替えました。

この変更は、このアプリがまだ起動していないという印象をユーザーに与えるためのものです(「このスキルは、あなたのお住まいの国では現在使用できません」という内容です)。

これでユーザーは、音声コマンドを用いるこのアプリは、もうこちらの声を聞いていないと思い込むわけです。

3. エラーメッセージのあとに、任意の時間、無音状態が続くようにします。

そのために、このアプリに「�. 」(文字コード:U+D801、ピリオド、半角スペース)という文字列を「発音」させます。

この文字列は発音できないため、スピーカーはアクティブ状態を保っていますが、何も音は出しません。この文字列を何度も「発音」させることで、無音の時間を延ばすことができます。

4. 最後に、ある程度時間が経ったところでこの無音状態を終わらせ、フィッシング目的のメッセージを再生します。

(「重要なセキュリティアップデートがあなたのデバイス向けにリリースされました。『アップデートをスタートさせて』という言葉のあとにあなたのパスワードをおっしゃってください」という内容です)

「スタートさせて」というユーザーの言葉のあとに言われた内容は、ハッカーのバックエンドに送られます。

なぜなら、ステップ1で仕込んでおいた、当初はフォールバックインテントのような挙動を見せていたインテントが、ユーザーの「スタートさせて」という言葉をきっかけに、ユーザーが述べたパスワードの文字列をスロット値として保存するからです。

攻撃の手口としてはほかにも、「アドレス」のようなよく使われる単語で起動する盗聴のルーティンを作成する、といったものが考えられます。

このルーティンを、スピーカーに「さようなら」と言わせるなど、「アプリが停止した」とユーザーに誤解させる偽のメッセージと組み合わせ、さらに、前述した「隠し」文字列のテクニックを使うことで、スピーカーを長時間アクティブな状態に保てます。

スピーカーがひそかにアクティブな状態にある間に、ユーザーが起動のきっかけになる単語を口にすると、スマートスピーカーはそのあとに話された会話をすべて記録し、悪意あるアプリの開発者に送る、というわけです。

文字だけの説明ではわかりにくいという方は、AmazonのAlexa向けのスキルを用いた盗聴の手口を示した以下の動画をご覧ください:

Googleのデバイスでも、Alexaの場合とは少し手口が違いますが、同じように盗聴が可能です。

しかも、こちらの場合はきっかけになる単語が必要ないうえに、「盗聴」時間をいくらでも長く設定できるので、さらに問題は深刻です:

スマートスピーカーの追加機能を安全に使うには

AmazonやGoogleも、ユーザーのデバイスを悪用しようとするスキルやアクションなどの追加機能を検知するため、審査プロセスの厳格化に乗り出しているようですが、対策は進んでいるとは言えない状況です。

「ThreatPost」の記事でも、脆弱性を悪用しているとして削除されたアプリでも再提出が可能だとの問題点が指摘されています(さらには承認されるものまであったそうです)。

こうしたいたちごっこや、問題のないコードを「おとり」として使い、承認後により悪意のあるインテントを伴ったコードに差し替えるといった手口が通用すること自体、非常に問題です。

では、ユーザーはどんな対策を取れば良いのでしょう?

スキルやアクションを使うなら、既にレビュー済みで信用の置ける、著名な開発者が作成したものに限ることです。

例えば、好きなスポーツの試合結果が知りたいなら、多くのレビューがついているESPNのスキルを使う。

素性のわからないユーザーが先週作ったばかりの「スポーツスキル」を使うのはやめておく、といったことです。

新しいスキルは、ブックマークしておいてあとでチェックしましょう。ほかのユーザーのレビューから、そのスキルがまともなものなのかを確かめられるはずです。

何より大切なのは、スマートスピーカーの状況を随時チェックすることです。スピーカーが(「ポーン」という通知音やその他のメッセージによって)やりとりを終えたと知らせてきても、これでコマンドの処理も終わったと決めてかかってはいけません。

まずは、デバイスのLEDライトなどの、ハードウェアの通知(Amazonの場合Googleの場合)の意味を知りましょう。その上で、サードパーティのスキルを起動している時は、言葉で呼びかけるよりも、こうした通知で状態を把握するのです。

デバイスが普段と違う挙動を見せ、アクティブな状態を保ち続けている場合は特に注意すべきです。この場合は、その時使っているスキルやアクションについて、さらなる調査が必要である可能性が大きいでしょう。

最後に、あまり使っていないスキルアクションは、削除してしまいましょう。

スマートスピーカーにインストールしたサードパーティのアプリやサービスについて、前回いつ使ったか思い出せないのなら、デバイス(あるいは関連するアカウント)にアクセスする権限をオフにしてください。使っていない追加機能をそのまま放置しておくのはやめましょう。

そうしたアプリが、ひとたび悪意のある内容に差し替えられたら、あなたのデジタルライフはたちまち不愉快なものになってしまうからです。

あわせて読みたい

コンセントに差し込むだけ! プラグイン式スマートスピーカー「Amazon Echo Flex」の予約開始

https://www.lifehacker.jp/2019/10/amazon-echo-flex-plug-in.html

「目新しい」は不要?みんなの「ちょうどいい」を叶えるスマート家電

https://www.lifehacker.jp/2019/08/197808what_is_just_right_for_everyone_plusstyle.html

Image: Shutterstock.com

Source: Lifehacker US, srlabs, threatpost, Amazon(1, 2, 3), Google(1, 2)

David Murphy - Lifehacker US[原文

訳:長谷 睦/ガリレオ

powered by