フロリダ大学の研究者グループは、ワイヤレス充電器を乗っ取る攻撃「VoltSchemer」に関する論文を発表しました。論文では、VoltSchemer攻撃の仕組みと原因、そして結果が詳細に説明されています。
このブログでは、まず研究者グループの主な発見についてご紹介します。そして、この攻撃が現実の世界で起こり得るのかどうかなどについて考察します。
VoltSchemer攻撃の背後にある主な考え
Qi(チー)規格とは、スマホの本体にケーブルを接続しなくてもワイヤレスで充電することができる仕組みで、この分野で最も有力な規格です。最近のワイヤレス充電器とワイヤレス充電が可能なスマホは、すべてQiに対応しています。VoltSchemer攻撃は、このQi規格の2つの特徴を悪用するものです。
1つ目の特徴は、スマホとワイヤレス充電器がバッテリーの充電プロセスを調整するために情報を交換する仕組みです。Qi規格の通信プロトコルでは、充電器とスマホをつなぐ唯一の「物」である磁場を介してメッセージがやり取りされます。
2つ目の特徴は、ワイヤレス充電器は誰でも自由に使えるように設計されているという点です。つまり、事前のペアリングは不要で、どのスマホでもワイヤレス充電器に置くだけでバッテリーの充電が開始します。そのため、Qiの通信プロトコルでは暗号化が行われず、すべてのコマンドが平文で送信されます。
この暗号化の欠如により、充電器とスマホ間の通信が中間者攻撃を受けやすくなります。つまり、通信が傍受されて改ざんされる可能性があるということです。最初の特徴(磁場の使用)とあわせて考えると、そのような改ざんを実行するのはそれほど難しくないことがわかります。磁場を操作してQi規格の信号を模倣できてさえしまえば、攻撃者は悪意のあるコマンドを送信できるのです。
そして研究者グループは、実際にそれを実験してみました。USBウォールソケットに見せかけた「悪意のある」電源アダプターを作成したのです。その結果、高精度に調整された電圧ノイズを生成することが可能となり、彼らが作成したコマンドをワイヤレス充電器に送信したり、スマートフォンから送信されたQiのメッセージをブロックしたりすることが可能なことが明らかになりました。
このように、VoltSchemer攻撃は、ワイヤレス充電器のハードウェアやファームウェアを変更せずに行うことができます。必要なのは、悪意のある電源を、何の疑いもない被害者をおびき寄せるのに適した場所に設置することだけです。
次に研究者グループは、攻撃者がこの手法を悪用する可能性のあるあらゆる方法を調査しました。つまり、考えられるさまざまな攻撃ベクトルを検討し、実際にその実現可能性をテストしたのです。
1. SiriやGoogleアシスタントなどの音声アシスタントに無音のコマンドを送信する
研究者グループが最初にテストしたのは、ワイヤレス充電器を介して充電中のスマートフォンに内蔵された音声アシスタントに、無音の音声コマンドを送信できるかどうかという点です。この攻撃ベクトルは、香港理工大学の研究者らが、「Heartworm」と命名した攻撃手法をまねたものです。
この攻撃では、スマホのマイクが音声を電気振動に変換する仕組みを利用します。そのため、実際の音声を使わずに、電気そのものを利用してマイク内で電気振動を直接生成することができます。これを防ぐため、マイクのメーカーはファラデーケージと呼ばれる電磁シールドを使用しています。ただし、ここに重要なポイントがあります。電磁シールドは外部の磁波を遮断する点では優れていますが、低い周波数の磁場は侵入することができます。
通常、ワイヤレス充電が可能なスマホには磁場を防ぐフェライトスクリーンが備わっていますが、このスクリーンは誘導コイルのすぐ隣にあるため、マイクは覆われていません。そのため、最近のスマホのマイクは、ワイヤレス充電器など、磁場を操作できるデバイスからの攻撃に対して非常に脆弱となっています。
このVoltSchemerの考案者は、すでに知られていたHeartworm攻撃を応用し、「悪意のある」電源を使用して充電中のスマホのマイクに影響を与える能力を指摘しました。Heartworm攻撃の考案者は、その目的のために特別に改造したワイヤレス充電器を使用していました。
2. 充電中のスマートフォンを過熱させる
次に研究者グループは、侵害された充電器で充電中のスマホをVoltSchemer攻撃によって過熱させることが可能かどうかをテストしました。通常、バッテリーの充電が必要レベルに達するか、温度がしきい値まで上昇すると、スマホは充電プロセスを停止するコマンドを送信します。
しかし研究者グループは、VoltSchemerを使用してこのコマンドをブロックすることに成功しました。侵害された充電器は停止コマンドを受信しないため、スマホにエネルギーを供給し続けます。スマホはそれに対して何もできず、徐々に熱くなります。このような場合に備えて、スマホには過熱を防ぐための緊急防御メカニズムが備わっています。まずアプリケーションを閉じ、それでも温度が下がらない場合はデバイス自体をシャットダウンします。
このようにして、研究者グループはスマホを81°C(178°F)の温度まで加熱することができました。これはバッテリーにとって非常に危険な温度であり、状況によっては発火する恐れがあります。そして充電中のスマホが放置されていれば、当然ながら他の物への延焼につながる可能性もあります。
3. その他の物体を過熱させて破損する
次に研究者グループは、他のさまざまなデバイスや日常的に使う物体が過熱して破損する可能性を探りました。もちろん、通常の状況下のワイヤレス充電器は、その上に置かれたスマホからコマンドを受信しない限り起動しないはずです。しかし、VoltSchemer攻撃を使うと、充電を停止しないというコマンドだけでなく、起動コマンドもいつでも送信できます。
では、その瞬間に充電器の上にある物体がどうなるかを予想してください。確実に悪いことが起きるでしょう。たとえば、研究者グループはペーパークリップを280°C(536°F)の温度まで加熱することができました。これはクリップで留めている書類を発火させるのに十分な温度です。また、車のキー、USBフラッシュドライブ、SSDドライブのほか、銀行カードやオフィスパス、トラベルカード、生体認証パスポートなどに埋め込まれたRFIDチップを過熱させて破損することに成功しました。
店舗で入手可能な9種類のモデルのワイヤレス充電器を研究者グループが調査したところ、そのすべてがVoltSchemer攻撃に対して脆弱でした。このように、供給電力が大きいモデルであるほど、スマホの深刻な損傷や過熱を引き起こす可能性が高くなるため、危険性も大きくなります。
VoltSchemer攻撃が現実の世界で発生する可能性
VoltSchemer攻撃は、単純な方法で防ぐことができます。公共のワイヤレス充電器の使用を避け、自分のワイヤレス充電器を疑わしいUSBポートや電源アダプターに接続しないようにするだけです。
VoltSchemer攻撃は非常に興味深い攻撃で、大きな影響を及ぼす可能性もありますが、現実世界で起こり得るかどうかについては大きな疑問が残ります。まず、このような攻撃を綿密に計画し準備するのは非常に困難です。第2に、放火魔でない限り、攻撃者にとってどのようなメリットがあるかがはっきりしません。
しかし、この研究が明らかに示しているのは、ワイヤレス充電器(特に強力なモデルほど)が本質的に危険となる可能性があるということです。したがって、信頼性と安全性が不明なワイヤレス充電器があった場合は、その使用を避けるのが賢明です。ワイヤレス充電器がハッキングされる可能性は現時点では低いですが、充電コマンドに応答しなくなった「怪しい」充電器によってスマホが偶発的に過熱して破損する危険性はまったくないとは言い切れません。