ニュース

会議ソフトWebexは「ミュート中」でもユーザーの行動をある程度推測できてしまう。米大学研究

今回調査したWeb会議ソフト。チェックはネイティブアプリ、丸はWebベースアプリ、☓は未実装を示す

 米ウィスコンシン大学マディソン校のKassem Fawaz教授らのチームは、多くのWeb会議ソフトが、ミュート中であってもマイクの音を拾っており、その中でもWebexは、その音をサーバーに送信しているという研究の論文を発表した。

 Web会議ソフトのほとんどは、OSのAPIを使い、ユーザーの同意を経てからWebカメラやマイクにアクセスをしている。

 このうちWebカメラはOSレベルの制御となっており、Webカメラ横のLEDインジケータといったハードウェアを介し、有効にされているのか無効にされているのか、ユーザーは一目で確認できる。

 その一方でマイクに関してはそのほとんどがアプリ依存となっており、OS側でミュートにするためには、コントロールパネルといったやや複雑なステップを踏む必要がある。また、ハードウェア的にインジケータを備えているのは珍しい。

Windows 10におけるWeb会議ソフトの挙動

 Web会議アプリケーションがWebブラウザベースであれば、WebRTC経由でマイクの音を拾っているため、ミュートを行なうとWebRTC内部でマイクからのオーディオ転送が停止する。論文によると調査したWebアプリのすべてはWebRTCを正しく実装しており、特に問題はない。

 その一方でネイティブアプリは内部でミュート制御を行なっているため、ミュートにしていても“本当にミュートになっているかどうか”はアプリの実装次第となり、ユーザーがミュートに設定していても実際にアプリはマイクにアクセスできてしまう問題がある。

 そこでチームはアプリへマイクのデータが引き渡されていることを検出するアプリを制作し、実際の挙動がどうなっているのかを検証した。結果は

  • WebexはWeb会議ソフトの中で唯一、ミュートの有無にかかわらず常時マイクのサンプルを取得していた
  • ほとんどのアプリはマイクの状態を取得していたが、無音状態、データの不連続性、タイムスタンプといった限られた情報であった
  • Webベースアプリのうち2つはブラウザのミュート機能を使っていたため、マイクからのデータは完全にカットされた

 としている。なお、検証したWeb会議ソフトのうち、TeamsとSkypeに関してはユーザーランドの標準APIを用いていないため追跡できなかった。

 結果として最も興味深いのはやはりWebexで、ユーザーはミュートにしていても、マイクのサンプルは常時取得されていただけでなく、オーディオに関連する入力の引数データは1分ごとにWebexのテレメトリサーバー上に送られていたという。それらの入力引数自体はbase64エンコーディングで圧縮されたJSON構造のプレーンテキストであり、audioMaxGain, audioMeanGain, audioMinGainといった属性名を持つJSON配列が確認できる。

典型的な生活音とaudioMaxGain, audioMeanGain, audioMinGainの相関関係

 チームによると、ディープラーニングを活用して分析したところ、これらのJSON配列の引数は、生活音(料理、食事、会話、クラシック音楽、タイピング、犬が吠えている声)と一定の相関関係があるのだという。よって、Webexではマイクをミュートにしていても、第三者にパケットを盗聴され分析されてしまうと、ミュートにしている間、ユーザーが何をしているのかある程度推測(81.9%の確率)できてしまうのだという懸念点を示した。

 論文の最後で、Webexに対する潜在的なプライバシー流出の懸念点を指摘するとともに、OSレベルでもソフトウェアによるマイクのミュートを実装し、より強力な権限モデルを構築するべきだと述べている。