この記事は、富士通システムズウェブテクノロジーAdvent Calendarの25日目の記事です。(本当はAlexa Gadget Toolkitの作例を示したかったのですが、間に合いませんでした)
(お約束)本記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません。
はじめに
スマートスピーカーがこの世に生まれてから、まだ5年ほどしか経っていない(2014年にAmazon Echoが発売)。そのため、セキュリティに関するトラブルも知見も現在進行形で蓄積されている段階といえる。便利に思われた機能がセキュリティホール、といった事も発生している。本記事では、そのあたりをちょっとだけ振り返ってみる。
ベンダー内での盗聴
事例
スマートスピーカーは家庭内にクラウド直結のマイクを常時置いているようなもので、会話の内容は見ず知らずのうちに第三者に聴かれている可能性があるのだ、ということを改めて意識することになったニュースが、2019年4月に報道された。
アマゾン『Alexa』に盗聴問題。録音した会話を顧客情報と紐付け&面白い内容は従業員で共有とヤバい – Yahoo!ニュース
元々、音声認識の精度向上のためにスマートスピーカーは会話を録音しているが、この件では「アマゾンではアカウント情報と紐づけて録音し、従業員がアカウント番号を知りうる状態にある」「面白い会話が従業員の間で共有されている」ことが大きな問題とされた。(一方、アップルやグーグルでは匿名化した上で利用している)
対処方法
アマゾン公式サイトのAlexaプライバシーのページ内、「Alexaデータを管理する」から「Amazonのサービスや新たな機能の開発に貢献するために使用する」「テキスト表示の改善にメッセージを利用する」をオフにすることで防ぐことができる。Alexaプライバシーのページでは、この他に音声履歴やスマートホームデバイスの履歴の削除などができるので、一度見直してみるのも良いかと思う。
また、スマートスピーカーにはカメラ搭載のものも出ているが、Amazon Echoデバイスの新しめの製品には、カメラレンズを物理的に閉じることができるスライド式の物理シャッターが搭載されている。これは、盗撮への懸念を和らげる取り組みといえる。
外部からの攻撃
事例
盗聴のために作られた不正なアプリがGoogleとAmazonの審査プロセスをすり抜けられることを、ドイツのセキュリティ研究者らが発見したというニュースで、2019年10月に報道された。
アマゾンとグーグルのスマートスピーカーで盗聴が可能との指摘 – CNET
スマートスピーカーは通常、無音状態が続くと動作を停止する。Alexaであればユーザーが約8秒間応答しないと停止する。それに対し、不正なアプリは「無音の音声ファイルを再生」することで動作を停止したように見せかけ、次にユーザーが話しかけた際にシステムへのログインが必要であるように装い、ユーザーの音声発話からパスワードなどを盗み出そうとする。この攻撃手法については、実証実験もすでに行われている。
スマートスピーカー「Google Home」や「Alexa」を悪用して盗聴やフィッシング攻撃を行う手法が実証される – トレンドマイクロセキュリティブログ
この「無音の音声ファイルを再生」という手法、応答時間を長くするためのテクニックとして開発者の間ではよく知られている手法であったが、悪用されると間接的にセキュリティホールとなってしまうことが明らかとなった。
また、審査フローの根本的な欠陥も悪用の原因となっている。Alexaスキルの場合、一度アマゾンによる審査が通りスキルが公開されると、Alexaクラウド上の音声モデルや設定項目は変更できないが、AWS Lambdaなどの上にあるバックエンドのコードの変更は自由にできてしまうのだ。上記の実証実験でも、バックエンドに記述する会話内容を後から変更した、とある。
対処方法
ユーザー側でできる対処としては消極的方法に限られる。パスワードや暗証番号を確認してくるスキルに注意する、開発元が怪しいスキルを使わない、といったことだ。
根本的な対策は、各スマートスピーカーベンダーで実施することになるだろう。例えば、Alexaスキルであればバックエンド環境をAlexaクラウドから包括的に提供する「Alexa-Hostedスキル」を必須化して、バックエンドコードの更新まで管理する方法が考えられる。しかし、この方法では他のスマートスピーカーとのコード共有化を行うクロスプラットフォーム開発ができなくなるため、実施は難しいだろう。
ベンダー側で定期的に自動テストを行い、会話内容が怪しかったり、文面が変化したスキルを停止させる、といった方法もあるだろう。もしかしたら、無音ファイルの再生はできなくなるかもしれない。いずれにしても、ベンダーの対応を待ちたい。
その他
バックエンドでの認証
スマートスピーカーのバックエンドは、サーバレスなファンクションサービスで実装するのが一般的だが、これも一つ間違うとセキュリティの危険がある。
Alexaスキルの場合、AWS Lambdaとの組み合わせであれば、Lambdaは直接WebAPIを持たないため外部からのアクセスは制限される。だが、Azureなど他クラウドと組み合わせて利用する場合は、呼び出し元の認証を必ず実施する必要がある。認証を行わなくてもバックエンドは動作してしまうため、開発者は自衛の意味で取り組むべきと考える。
最後に
クレジットカード決済や課金ができるようになり、画面表現がリッチになり、といったようにスマートスピーカーのアプリ開発周りはこの1年だけでも格段に進化している。それに伴い、セキュリティリスクが発生する可能性も高まっている。開発者として、十分注意したい。