Androidの標準ブラウザに重大な脆弱性が発見されました。Androidユーザは要注意です!
AndroidでWebサイトを見る時には、PCと同様「ブラウザ」というソフトウェアを使用します。
PCでは「InternetExplorer(IE)」や「Firefox(FF)」、「Google Chrome」といったものがよく使われています。
スマートフォンでは、例えばAndroidだったら「Chrome」、iPhoneだったら「Safari」といったブラウザがよく使われています。
そのブラウザですが、Androidのバージョンには標準で用意されている「標準ブラウザ」というものがあります。
そのまま「標準ブラウザ」ということが多いですが、「Android Browser」や「AOSP(Android Open Source Project)版ブラウザ」と言ったりもします。
この標準ブラウザに脆弱性が発見されたと、独立系セキュリティ専門家のRafay Baloch氏が2014年9月に明らかにしたとのことです。
本記事では、
1.どのような脆弱性なのか、
2.影響範囲は?
3.対応方法はどのようにすればよいのか、
をまとめていきたいと思います。
1.標準ブラウザに発見された脆弱性はどのようなものか
同一生成元ポリシー(Same Origin Policy)とは、あるドメインから読みこまれたページ(スクリプト)が、別のドメインのページのプロパティを読み取ること、もしくは生成することを防止することです。
このポリシーによって、あるURLのCookie(ブラウザ側で保持しておく情報)などは、別のサイトのスクリプトが読み取れないようになっているのです。
現在PCやスマートフォンで使用されている「ブラウザ」には、この「同一生成元ポリシー」が適用されています。
この攻撃手法のことは「ユニバーサルクロスサイトスクリプティング(UXSS)」と呼ばれます。
Webサイトに対する代表的な攻撃手法の1つに「クロスサイトスクリプティング(XSS)」というものがあります。これは、別サイトからjavascriptを実行するタイプの攻撃ですが、これは入力項目にjavascriptの入力を許可しないなどの対応をすれば防ぐことができます。
「ユニバーサルクロスサイトスクリプティング(UXSS)」はWebサイトの脆弱性は関係なく、不正なURLへのリクエストだけで、攻撃を実行できてしまいます。これにより、別サイト用に保持していたCookie情報などが取得されてしまう恐れがあるわけです。
前述のRafay Baloch氏やウィルスセキュリティソフトベンダのTrendMicro社の解析によると、NULL文字(U+0000)及びUnicodeの最初の33文字(U+0000~U+0020)をjavascriptの先頭に埋め込むことで、その後で実行するjavascriptプログラムで同一生成元ポリシーがチェックされなくなるようです。
この脆弱性を利用し、iframeで読みこんだ外部サイトの本来ではアクセスできない情報にアクセスできるようになるのです。
2.脆弱性の影響範囲は?
冒頭で述べたように、デフォルトでAndroidにインストールされている可能性がある「標準ブラウザ」だけでなく、TrendMicro社が調査したところでは、「Google Play」からダウンロードできる100のブラウザアプリの内、42ものブラウザアプリに同様の脆弱性が見られたとのことです。
Android4.4以降のバージョンでは標準ブラウザが搭載されなくなっている場合があるようですが、搭載されている場合はやはり影響があるかもしれません。
アプリ内からWebサイトにアクセスするようなアプリもあったりしますので、その場合も考慮しなければなりません。
3.脆弱性対応はどのように行うか
Ⅰ.脆弱性のないブラウザを使うようにする。
Ⅱ.標準ブラウザは使わない。
Ⅰ.脆弱性のないブラウザを使うようにする。
現在、「Google」の「Chrome」や「Mozilla」の「Firefox」といったブラウザは本脆弱性が確認されていません。これらのブラウザを使うことで、リスクを回避しましょう。
また、既定で使用するブラウザをこれら脆弱性のないブラウザに変更する方法を以下に示します。
既定で使用するブラウザを変更する方法
2.次に「アプリケーション」をクリックします。
3.アプリケーションが一覧で表示されます。上か下に「ダウンロード」「実行中」「すべて」といったタブが表示されますので、「すべて」をクリックします。
4.すべてのアプリケーションの一覧から「ブラウザ」を選択します。
5.「標準ブラウザ」のアプリ情報が表示されます。「デフォルトで起動」項目の「デフォルトをクリア」をクリックします。
6.これでデフォルトがない状態になります。
7.次にホーム画面のアプリ起動アイコンで、Webサイトを開くアプリのいずれかをクリックします。
8.どのブラウザで開くかを問われるので、標準ブラウザ以外のブラウザを選択します。このとき「常にこの操作を使用する」をチェックしておくようにします。
9.これでデフォルトブラウザが8で指定したブラウザに切り替わります。
Ⅱ.標準ブラウザは使わない。
Androidに最初からインストールされているアプリケーションは削除できません。標準ブラウザもこれに該当します。
標準ブラウザは削除せずに、無効化を行います。無効化の手順を以下にまとめます。
標準ブラウザを無効化する方法
2.次に「アプリケーション」をクリックします。
3.アプリケーションが一覧で表示されます。上か下に「ダウンロード」「実行中」「すべて」といったタブが表示されますので、「すべて」をクリックします。
4.すべてのアプリケーションの一覧から「ブラウザ」を選択します。
5.「標準ブラウザ」のアプリ情報が表示されます。「無効にする」ボタンをクリックします。
6.無効化できました。
まとめ
Androidの標準ブラウザというのは名前もよく分からなかったりしますが、Androidスマートフォンを利用するユーザの多くが、このブラウザを使用しています。
こだわりをもって別のブラウザを使用していう人以外は、このブラウザを使っていることが多いでしょう。そう考えるとかなりの影響範囲になることが想定されます。
しかし、Androidバージョンが4.4以降であれば、該当機種も少なくなるようですので、本脆弱性の影響自体は機種が新しくなるにつれ減っていくと思われます。
個人的にはUXSSという攻撃手法が興味深かったですね。