Androidのパッチ・パイプラインは崩壊している? 「Stagefright」脆弱性でGoogleに批判集中
今年の「Black Hat USA 2015」で注目を集めたトピックのひとつに、AndroidのStagefrightで発見された脆弱性がある。これは世界のAndroid端末の95%(約9億5000万台)に影響を与える可能性がある問題として、開催前から話題となっていたものだ。8月6日ののステージでは、この脆弱性の発見者であるセキュリティ企業Zimperiumの研究者Joshua J. Drake氏が、「Stagefright: Scary Code in the Heart of Android」というタイトルの講演を行った。
内容を語る前に、Stagefrightとは何かという点を確認したい。もともとStagefrightは、Android端末のシステムに標準で搭載されているマルチメディアプレイヤーのライブラリで、すべての動画やオーディオのファイルを扱っている。Joshua氏は、このライブラリに存在する脆弱性を大量に発見したのだ。
しかし現在では、紛らわしいことに、彼が発見した一連の脆弱性そのものもStagefrightと呼ばれている。元々はAndroidに標準搭載されているStagefrightから、複数の脆弱性が発見されたという話だったのだが、気が付けば「Stagefright」がバグそのものとして示されるようになりつつある。8月28日現在、英語版のWikipedia https://en.wikipedia.org/wiki/Stagefright_(bug) では、この単語が「バグの名前」で登録されており、ライブラリのStagefrightの情報を求めたユーザーも、このバグの解説ページへリダイレクトされるようになっている。
「Stagefright」脆弱性の深刻度
Joshua氏の講演に話を戻そう。Stagefrightは非常に幅広いファイルフォーマットのプロセスに関わるもので、今回のJoshua氏の研究発表は、主にMPEG4形式に焦点を当てたものとなった。講演ではAndroidのシステム構成、具体的な攻撃方法やファジングなどについても触れられたのだが、発見者本人から解説された脆弱性の概要は下記のとおりだ。
- この脆弱性を狙った攻撃で使える手段は、MMS(相手の電話番号さえ知っていれば送信できるマルチメディアメッセージサービス)やメール、ブラウザーなど計11種類以上におよぶ。これらの一部は、ユーザーインタラクションを必要としない。
- 最も恐ろしいのはMMSを利用した攻撃である。攻撃者はMMSを送ることにより、高いレベルのアクセス権限で遠隔コードを実行できる。その攻撃は、受信の通知が行われる前に(実際には通知の処理を行っている間に)成立してしまう。
- この脆弱性を悪用した攻撃では、端末の制御を奪うことができる。つまり端末の監視、記録、インターネット上のホストへの接続、カメラデバイスへのアクセスなどが可能となりえる。
- Android 4.1(Jelly Bean)以降のAndroid端末は危険に晒される可能性がある。ただし、その危険性はAddress Space Layout Randmization(ASLR アドレス空間配置のランダム化)によって軽減されている。
- Jelly Beanよりも古いバージョンのAndroid端末は、非常に危険な状態である。Android 4.0(Ice Cream Sandwich)のASLRは弱く、またAndroid 2.3(Gingerbread)にはASLRの機能がない。
- この発表で具体的に示されたStagefrightの脆弱性は以下の通り:CVE-2015-1538(#1-4)、CVE-2015-1539、CVE-2015-3824、CVE-2015-3826、CVE-2015-3827、CVE-2015-3828、CVE-2015-3829
発表後も続く混乱状態
この脆弱性の問題に、Zimperiumが初めてブログで触れたのは7月21日だった。そして翌週の7月27日には、この脆弱性の部分的な情報をロゴマークつきで公開すると共に、「Googleへは連絡を済ませてパッチも提供している」ことや、「連絡を受けたGoogleは、すぐさま内部コードへパッチを適用した」ことを公表した。余談になるが、「Stagefright」がバグの名前として定着したのは、このロゴマークの影響が大きかったのではないかと筆者は考えている。
その後、Googleは各端末のメーカーやキャリア向けにパッチの提供を開始し、多くの企業はすぐさま修復の準備を開始した。しかし端末のアップデートはメーカーごとに行われるものであるため、その足並みは揃わなかった。
Googleは、Nexus用の8月のセキュリティアップデートで6つのパッチを配信した。それはStagefrightに対応したメーカーとして一番乗りのアップデートとなったのだが、そのうちのひとつ、Nexus 5用の最新パッチは、セキュリティ企業Exodusから「不十分なパッチだ」として批判された。NexusのOTAアップデートは月一回の頻度で行われるため、この問題をクリアにした新たなパッチがNexusユーザーに配信されるのは、9月までおあずけということになる。
この騒ぎについて、Rapid7のセキュリティエンジニアリングマネージャTod Beardsley氏は以下のようにコメントしている。「今日、我々が目の当たりにしている本質的な問題は、Androidにおけるパッチのパイプラインの崩壊だ。(中略)合理的な安全を保つためには、修復をユーザーベースに配信するまでのタイムラグが単純に長すぎる」
Microsoft幹部も揶揄
Androidを巡る混乱については、もうひとつ記さなければならないことがある。「モバイル界のHeartbleed 」と呼ばれるほどの注目を受けていたStagefrightをJoshua氏が解説した8月7日、同じBlack Hatの会場では、Check Point Software Technologiesの研究チームの2人が、Androidに関する別の新たな脆弱性「Certifi-gate」を説明するブリーフィングを行っており、こちらもStagefrightに負けず劣らずの重大な欠陥として注目された。
要点をまとめると、Certifi-gateは(名前から想像できるとおり)セキュリティ証明書を利用して「本来であれば許可されないはずのアクセス権」を取得し、個人データの盗難、デバイスのロケーション追跡、会話の録音など、様々な行動を起こせる可能性を持った深刻な脆弱性だ。影響を受けるAndroidデバイスはLG、Samsung、HTC、ZTEなどのmobile Remote Support Tool(mRST)のアプリを利用する端末で、その台数は数百万台に上る可能性があるという。このCertifi-gateもStagefrightと同様、Googleだけではなく他のベンダーやOEMの開発者たち(特にmRSTを提供している企業)が一斉に対応しなければならない問題である。
- Forget Stagefright, Certifi-Gate vulnerability allows for complete remote control of Android phones(betanews)
一口にAndroidの脆弱性といっても、これらの脆弱性は、いずれもGoogle一社によって修復できる問題ではなく、またGoogleはパートナーに対応を急がせることができない。。さらにGoogle自身が、自社の端末(Nexus)のユーザーにさえ月一度しかパッチを配信できず、その配信された修復ファイルにも問題が見つかるというヨロヨロな状況は、多くのAndroidユーザーを不安に陥れている。いまや10億人といわれるエンドユーザーの安全を守るためには、Googleが基本的なセキュリティの構造に何らかの変革をもたらす必要があるだろう。
今年5月、シカゴで開催されたMicrosoft 主催のカンファレンス「Ignite」のキーノートでは、MicrosoftがPatch Tuesday(毎月第 2 火曜日に行われていた修正パッチのリリース)を廃止し、週7日24時間体制でアップデートする方針を示した。このときMicrosoftの幹部であるTerry Myersonは、Googleを揶揄して次のように述べている。
「Google は顧客のデバイスの更新に関して何の責務も果たしておらず、その責任を取ることも拒否している。Android を利用するエンドユーザーや企業は毎日、ますます危険に晒された状態のままにされている。あなたのデバイスをアップデートする約束もせずにGoogle が届けているのは、膨大な量の『コード』だ」