ITmedia NEWS > 製品動向 >

Androidアプリ障害の原因になった「WebView」ってなに?

» 2021年03月23日 19時49分 公開
[井上輝一ITmedia]

 GmailやLINEなど、一部のAndroidアプリが3月23日朝から正常に起動できなくなっていた問題。米Googleは同日午後3時21分に「問題を修正した」と発表し、Google Playから「WebView」と「Google Chrome」をアップデートするよう呼び掛けている。

 朝からGmailやLINEといった主要なアプリが開けない状態が一部ユーザーの間で続いたため、Twitter上では「WebView」「アップデート」「アンインストール」などがトレンド入りするほど話題になった。

 今回、さまざまなAndroidアプリで問題を引き起こした「WebView」とは何だろうか。

知らぬ間にAndroidスマホにインストールされている「WebView」とはなにもの?

アプリ内ブラウザのための「部品」

 WebViewは端的にいえば、Androidアプリを作るときに、アプリ内でWebコンテンツを表示するための部品だ。

 Androidアプリは、基本的にAndroid OS上に用意された部品を組み立てて作る。特にアプリのUI(ユーザーインタフェース)は、「Viewクラス」という分類の部品群で構成される。例えば、要素を順番に配置する「LinearLayout」の中に、文字を表示する「TextView」や、リストを表示する「ListView」を設置する、という具合だ。

AndroidでWebコンテンツを表示する方法は2通りある(Android Developersより)

 WebViewをアプリ内に設置すれば、Google ChromeなどのWebブラウザに遷移しなくてもアプリ内でWebコンテンツを表示できる。

 この仕組みは、表示コンテンツを動的に切り替えたい場合に適している。例えば、スマホゲーム内でのお知らせはHTMLで作成し、WebViewで表示するようにすればゲーム画面からユーザーを離脱させずに情報を提供できる。他にも、アプリの機能自体をWebアプリとして作ってしまい、WebViewで実装する手法などもある。


なぜ「部品」をGoogle Playからアップデートする仕組みに?

 WebViewはもともとはOSに組み込まれたシステムで、WebViewを実装したAndroidアプリはこれを呼び出して利用していた。しかしAndroidの開発チームは、2014年にAndroid 5.0を発表した際に、WebViewを個別にアップデートできるよう仕様を変更した

 ChromeやFirefoxなど主要なWebブラウザのアップデート頻度を見ても分かるように、Webブラウザの脆弱性は断続的に発見されるため、安全を保つには定期的に修正対応をしなければならない。

 従来の仕組みではシステムアップデートでWebViewの修正や機能追加に対応していたが、システムアップデートはファイルサイズが大きくなり、端末の再起動なども必要とする。アプリのように個別にアップデートできるようにしたのは、頻繁かつ簡単に修正できるよう見直した結果というわけだ。

「WebViewアンインストール」の応急処置は正しかった?

 Googleは原因について詳しくは明らかにしていないものの、WebViewの直近のアップデートにバグが紛れ込んだのが今回の問題につながったとみられる。

 Android 5.0以降も、ベースとなるWebViewがシステムに組み込まれているのは変わらないため、Google PlayからWebViewのアップデートを削除すれば問題が起きていたアプリでも起動できる状況ではあった。

 しかし、スマートフォンのシステムに詳しいインターネットイニシアティブ(IIJ)の堂前清隆副部長(広報部/MVNO事業部シニアエンジニア)はTwitterで「アンインストールによりアップデートで対策されたはずの脆弱性(セキュリティホール)が再発する懸念がある」とした上で「やむを得ずアンインストールした場合、後で最新版に更新必須。放置すると危険」と呼び掛けていた。

 他のOSを見れば、米MicrosoftのWindowsにはアップデートごとに番号が割り振られており、問題のあるアップデートのみを一時的に削除できる仕組みがある。

 人が作業する以上、アップデートに紛れ込むバグをゼロにするのは難しい。しかしWebViewのバグが広範囲に影響を及ぼすと今回分かった以上、GoogleはWebViewのアップデートについて、セキュリティを考慮した切り戻し方法を提供するなど、何らかの対応策を検討した方がよさそうだ。

Copyright © ITmedia, Inc. All Rights Reserved.