スマートフォンのセンサーからユーザーのPINコードを盗む方法

江添 佳代子

April 21, 2017 08:00
by 江添 佳代子

英ニューキャッスル大学の研究チームが、「スマートフォンのモーションセンサーを利用し、ユーザーの入力したPINコードを割り出すことができるJavaScriptの攻撃」を発表した。この攻撃はMaryam Mehrnezhad博士率いる研究チームが示したもので、1度の入力読み取りテストで70%以上、3度の入力読み取りテストでは90%以上のPINコードを見破ることに成功している。

ウェブページを見せるだけの攻撃

ここで注目すべき点は、スマートフォンに搭載された「センサー」にアクセスし、ユーザーの入力情報を盗み見したことだろう。実際、この研究結果を報じたニュースには「センサー」という言葉にフォーカスした見出しが目立っている。しかし、もうひとつ特筆するべきなのは「悪意あるアプリをダウンロードさせる必要がないまま」センサーへのアクセスを試みる攻撃だった、という部分だ。

つまり攻撃者は、センサーから得られた情報を読み取るスパイウェアを攻撃先の端末に送り、それをインストールさせることで情報を盗み出すのではない。この攻撃は「ブラウザーに表示された、悪意あるウェブページ(あるいは悪意ある広告などを含んだページ)でJavaScriptを利用して」行われる。

Mehrnezhad博士のチームは、すでに研究結果をChrome、Firefox、Safari、Operaのベンダーに報告している。しかし、これらの大手ブラウザーでは、もともと攻撃できる条件が限定されていた。さらにAppleとMozillaは、この問題の修復に取り組んだアップデートを配信済みである。したがって、これらの大手ブラウザーでは万全な対策が打たれている……とまでは言えないのだが、少なくともユーザーがセキュリティの更新を怠っていないかぎり、攻撃を受ける危険性は低くなっている。

それでもMehrnezhad博士のチームによる研究は、スマートフォンをはじめとした様々なデバイスの「センサーのセキュリティ」における大きな問題を提起するものとなった。

指の動きをセンサーから盗む

スマートフォンには、多種多様なセンサーが搭載されている。それらは機種によって異なるが、たとえば現在地情報を測定するGPS、動きや傾きに反応する加速度センサー、垂直/水平の傾きを検知するジャイロセンサー、明るさを測る照度センサー、気圧や温度、湿度を検出するセンサーなどがある。一部のアプリは、これらのセンサーにアクセスすることで、さらなる利便性や娯楽をユーザーに提供している。「スマートフォンを傾けて玉を転がすゲーム」のアプリは、その一例だ。

しかし、スマートフォンのセンサーを利用する方法は「アプリにコードを書き込む」以外にもある。そのひとつが、ブラウザー上でJavaScriptを使用する方法だ。今回、Mehrnezhad博士の研究チームが発表したのは、「PINLogger.js」というJavaScriptのコードによる攻撃だった。これはJavaScriptを使ったウェブページをブラウザーに表示させることで、ユーザーに気づかれぬままモーションセンサー(加速度センサーやジャイロセンサー)にアクセスし、入力されるPINコードを「盗み見」しょうと試みるコードである。

同研究チームの論文の中では、攻撃のシナリオとして4つの例が挙げられている。ひとつめは、悪意ある広告やコンテンツが「iframe内に表示される」ケースだ(画像a参照)。この例では、ユーザー名とPINコードを尋ねるウェブページがブラウザーに表示されており、同じページの中に「iframeを利用した小さなバナー広告のようなもの(赤い丸で囲われた部分)」が埋め込まれている。攻撃コードは、この枠の中で働く。つまり、ユーザーが「悪意のない真っ当なサイト(ただし、サイトの運営者が意図しているかどうかに関わらず、iframe内の広告などを利用して悪質な攻撃が実行されている)」で入力したPINコードが読み取られてしまうケースを想定している。

考えられる4つの攻撃シナリオ
画像は「Stealing PINs via mobile sensors: actual risk versus user perception」より引用

2つめの例は、攻撃用のウェブページが既に表示されているとき、ユーザーがそれを閉じないまま、別のタブでPINコードを入力してしまうパターンだ(画像b)。3つめは、攻撃用のウェブページがブラウザーに表示されているとき、ユーザーがアプリを立ち上げ、そこにPINコードを入力してしまう場合(画像c)。最後の1つは、やはり攻撃用のウェブページがブラウザーに表示されているときに、スクリーンがロックされた状態(画像d)。

いずれも読み取りの準備が整えられたまま、ユーザーがタッチパネルの入力操作をしてしまうシチュエーションである。最後のひとつは、タイムアウトなどによるスクリーンのロックを解除するため、ユーザーが入力する端末そのもののPINコードを盗もうとするものだ。

「ブラウザーからセンサーを狙う攻撃」の恐怖

この攻撃で厄介なのは、まず「アプリではない」という点だろう。攻撃者が悪質なプログラムをユーザーのスマートフォンにインストールしたい、あるいは悪質なアップデートを行いたいと願っても、それを配布するのは難しい。しかしブラウザーで行われる攻撃なら、アプリストアの承認を得る必要がない。

さらに、この攻撃は基本的にスマートフォンの機種やOSを問わない。厳密に言えば、ユーザーが利用しているOSとブラウザーの組み合わせ、および攻撃のシナリオの種類によって、攻撃が有効となるケース/無効となるケースがある(また、読み取りやすいケース/読み取りにくいケースもある)。しかしPINLogger.jsは「標準のJavaScriptコード」であるため、あらゆるバージョンのiOS、Androidのスマートフォンのセンサーにアクセスを試みることができる。

もう一つ厄介なのは、この攻撃を防ぐ方法が難しいという点だ。現段階で最も現実的な対策は、「ブラウザー側の対応」だろう。冒頭で説明したとおり、すでにMehrnezhad博士の研究チームは大手ブラウザーのベンダーに問題を報告している。MozillaはFirefoxバージョン46で、JavaScriptによるモーションセンサーやオリエンテーションセンサーへのアクセスの制限を行った。具体的にはトップレベルのドキュメント、および「同じ場所から配信されているiframeのページ」のみにアクセスを制限する措置をとった。またAppleはiOS 9.3のアップデートで、Safariのページを表示していないときの「動作や向きに関するセンサーのデータの可用性」を中止するという策を講じた。これらの修復により、上記4つの攻撃シナリオの大半は無効化されたといって良さそうだ。

しかしスマートフォンのユーザーが利用しているブラウザーは多様である。攻撃は一種類であるのに対し、防御するブラウザーは複数で、それぞれが対応しなければならない。さらにOSとブラウザーの組み合わせによって「例1〜4のどの攻撃が有効となるのか」もバラバラとなるため、ユーザーは自分の環境が「どの攻撃」を受ける可能性があるのかを理解しづらい。そしてマイナーなブラウザーのベンダーが、この問題に対応する予定があるのかどうかは分からない。

危ないのは「PINコード」だけなのか?

今回、発表されたのは「モーションセンサーにアクセスし、PINコードの読み取りを試みる攻撃」の手法だった。ここで「なぜPINコードを狙ったのだ。たとえばユーザーのGPSのセンサーにアクセスするJavaScriptの攻撃のほうが、よりスリリングで話題になる研究結果を発表できたのではないか?」と思われた読者もいるかもしれない。

しかし、同じ手法でGPSを読み取ることは困難となる。なぜならロケーションのセンサーにアクセスするウェブサイト、およびアプリは「はっきりとユーザーの許可を得ること」が必要とされているからだ。そのアラートが表示されれば、ほとんどのユーザーは「何か異変が起きている」と気づくだろう。

一方、GPS以外の大半のセンサーに対しては、基本的には許可を得ることなくアクセスを試みることができる。さらに「いま、ウェブページがセンサーにアクセスしていますよ」とユーザーに知らせる警告も表示されない。そのためユーザーは、「いま自分の動作を読み取っているセンサー」が攻撃されていることに気づかない。

同研究グループの論文には、「我々が知るかぎり、他の(注:GPS以外の)センサーに対してブラウザーから行われるアクセスのリスクを評価するような研究は、ほとんど行われていない」と記されている。つまり、これまでGPS以外のセンサーから得られるデータはユーザーを危険に晒すことがないと想定されていたので、業界はそのデータのセキュリティを重視していなかった。ここに大きな問題がある。実際「PINLogger.js」の実験では、センサーから集めたデータを元に、70%〜97%の精度で「ユーザーによるPINコードの指入力」を割り出すことができた。

「センサー」に対するユーザーの認識

この「リスク認識の誤り」は、ユーザーの私たちにも当てはまるだろう。ほとんどのユーザーは、スマートフォンに限らず、自分の利用しているデバイスにどのようなセンサーが搭載されているのかを熟知していない。また、それらのセンサーが取得しているデータが漏れたとき、どのようなリスクが発生するのかを想像していない。
今後、これらのセキュリティが強化されることを願う間、私たちも
「自分が利用しているデバイス(スマートフォンなど)に搭載されているセンサーを知る」
「そのセンサーがどんな情報を漏らす可能性があるのか想像する」
「利用しないセンサーは、可能ならばストップさせる」
「不要なセンサーが搭載されたデバイスは購入しない」
などの対策について考えるべきかもしれない。同研究チームの論文には、次のような文章が記されている。

「今日では、パーソナライズされたデバイス(たとえば携帯電話やタブレット、腕時計、フィトネストラッカー、その他のウェアラブルデバイスなど)から、テレビや車、キッチン、家、道路、駐車場、スマートシティ等にいたるまで、ありとあらゆる場所にモバイルセンサーが存在している。(中略)これらのセンサーは、エンドユーザーの実生活の環境と互いに影響しあうべく、より多くの機能を提供しつづけている。異なる複数のアプリケーション(たとえばフィットネス、ゲーム、そして認証などのセキュリティのアプリケーションに至るまで)で、それらのセンサーが利用されることにより、ユーザーはより豊かで、より自分用にカスタマイズされたアプリの恩恵を受けている。しかし一方で『センサーの数の増加』は、新たなセキュリティやプライバシーのリスクをエンドユーザーにもたらしており、またセンサーを管理する仕事をより複雑にしている」
 
※ 同研究チームの論文は「International Journal of Information Security」で2017年4月7日に発表された。また同月11日に発表されたニューキャッスル大学のプレスリリースは、上記の論文よりも少し分かりやすい文章で研究結果を説明している。残念ながら日本語訳はないが、「PINLogger.js」の攻撃についてもっと詳しく知りたい方には、これらを読んでいただくのが一番だろう。




江添 佳代子

江添 佳代子

ライター、翻訳者。北海道生まれ、東京育ち、カナダ・バンクーバー在住。インターネット広告、出版に携わったのち現職。英国のITメディア『The Register』のセキュリティニュースの翻訳を、これまでに約800本担当してきた。

THE ZERO/ONEの記事を中心に、ダークウェブをテーマにした『闇ウェブ』(文春新書)の執筆に参加。


ビール祭りにやってきた犯罪者を「顔認識」で一網打尽

November 13, 2017 08:00

by 牧野武文

中国山東省青島市で開催された国際ビール祭りで、青島市開発区警察は、会場に顔認識システムを設置。公安部保有のデータベースと照合することで、犯罪者を抽出し、逮捕するという作戦を実行した。49名の逃亡犯、麻薬犯罪者、スリなどを逮捕する成果をあげたと『新浪科技』が伝えた。 10万人以上がやってくるイベント …

PacSec 2017レポートソフトバンクPepperが危険な理由

November 10, 2017 08:30

by 『THE ZERO/ONE』編集部

米国のセキュリティ企業「IOActive」に所属するセキュリティエンジニア、ルーカス・アパ氏が「スカイネットが来る前にロボットをハックする」と題してロボット、特に家庭向けの製品に関するセキュリティ・リスクについて「PacSec2017」で講演を行った。 家庭用のロボットはリスクだらけ ルーカス氏はネ…