Googleは長年、数十社のAndroidスマートフォンメーカーと数百社の通信事業者に、セキュリティ重視のソフトウェアアップデートを定期的に提供してもらうための最善の方法を模索してきた。しかし、あるドイツのセキュリティ企業が数百台のAndroidスマートフォンの内部を調査したところ、新たな厄介な問題が明らかになった。多くのAndroidスマートフォンメーカーは、ユーザーにパッチを提供していない、あるいはリリースを数ヶ月も遅らせているだけでなく、ひそかにパッチ適用を省略しているにもかかわらず、ユーザーに「スマートフォンのファームウェアは完全に最新です」と伝えていることもあるのだ。
アムステルダムで開催されるセキュリティカンファレンス「Hack in the Box」で、セキュリティリサーチラボ(Security Research Labs)の研究者であるカーステン・ノール氏とヤコブ・レル氏は、2年間にわたり数百台のAndroidスマートフォンのOSコードをリバースエンジニアリングし、各デバイスの設定に表示されているセキュリティパッチが実際に適用されているかどうかを丹念に確認した結果を発表する予定だ。彼らは「パッチギャップ」を発見した。多くの場合、特定のベンダーのスマートフォンは、特定の日付までのAndroidのセキュリティパッチがすべて適用されているとユーザーに通知するが、実際にはその期間に12件ものパッチが未適用だった。そのため、スマートフォンは既知のハッキング手法の広範な範囲に対して脆弱な状態にあった。
「パッチ適用の主張と実際にデバイスにインストールされているパッチの間には乖離があることがわかりました。デバイスによってはその差は小さいですが、他のデバイスでは非常に大きな差があります」と、著名なセキュリティ研究者でありSRLの創設者でもあるノール氏は述べています。ノール氏によると、最悪のケースでは、Androidスマートフォンメーカーがデバイスの最終パッチ適用日を意図的に偽装しているとのこと。「こうした業者は、パッチを適用せずに日付を変更するだけの場合もあります。おそらくマーケティング上の理由から、見た目に最も合致する日付をパッチ適用レベルとしてほぼ恣意的に設定しているのでしょう。」
パッチギャップ
SRLは、2017年にリリースされたすべてのAndroidパッチについて、12社以上の携帯電話メーカー製1,200台のスマートフォンのファームウェアをテストした。テスト対象となったデバイスは、Google自身に加え、Samsung、Motorola、HTCなどの大手Androidスマートフォンメーカー、そしてZTEやTCLといったあまり知られていない中国系メーカー製だった。テストの結果、PixelやPixel 2といったGoogleの主力機種以外では、大手メーカーでさえ、実際にはパッチがインストールされていないにもかかわらず、パッチがインストールされていると主張することがあった。そして、下位メーカーの記録ははるかに複雑だった。
ノール氏が指摘する問題は、ベンダーが古いデバイスへのパッチ適用を怠るというよくある現象よりも深刻だ。問題は、実際にはパッチを適用していないにもかかわらず、ユーザーにパッチを適用したと伝え、誤った安心感を与えていることにある。「パッチを1つも適用せず、パッチ適用日を数ヶ月早めているベンダーが複数見つかりました」とノール氏は言う。「これは意図的な欺瞞であり、あまり一般的ではありません。」
ノール氏は、ソニーやサムスンのような企業は、うっかり1つか2つのパッチを見逃すことが多いと考えている。しかし、他のケースでは、結果の説明が困難だった。SRLの調査によると、サムスン製のスマートフォン(2016年モデルのJ5)は、インストール済みのパッチとまだ適用されていないパッチをユーザーに正直に伝えていた。一方、サムスンの2016年モデルのJ3は、2017年にリリースされたAndroidパッチをすべて適用済みと謳っていたものの、12個のパッチが未適用だった。そのうち2個は、スマートフォンのセキュリティにとって「重要」とされるものだった。
このような隠れた不一致があると、「ユーザーが実際にどのパッチがインストールされているかを知ることはほぼ不可能だ」とノール氏は言う。パッチの透明性の欠如という問題を解決するため、SRL LabsはAndroidアプリ「SnoopSnitch」のアップデートもリリースする。これにより、ユーザーは自分のスマートフォンのコードからセキュリティアップデートの実際の状態を確認できるようになる。
パッチワークの実践
SRLラボは、各ベンダーのテスト対象となったすべての携帯電話の結果を平均した後、以下のチャートを作成しました。このチャートでは、2017年にパッチ適用の主張がどれだけ忠実に現実と一致していたかに基づいてベンダーを3つのカテゴリに分類しており、2017年10月以降に少なくとも1つのパッチを受け取った携帯電話のみに焦点を当てています。XiaomiやNokiaなどの主要なAndroidベンダーの携帯電話では、平均1〜3つのパッチが欠落しており、HTC、Motorola、LGなどの主要ベンダーでさえ、インストールしたと主張するパッチの3〜4つが欠落していました。しかし、リストの中で最も成績が悪かったのは中国企業のTCLとZTEで、どの携帯電話でも平均4つ以上のパッチがインストール済みであると主張していましたが、実際にはインストールされていませんでした。

セキュリティ・リサーチ・ラボ/WIRED
SRLは、チップサプライヤーがパッチ適用漏れの原因の一つとして挙げられている。サムスン製プロセッサを搭載したスマートフォンでは、パッチ適用漏れはほとんど見られなかったのに対し、台湾のメディアテック製チップを搭載したスマートフォンでは、平均9.7件ものパッチが未適用だった。これは、安価なスマートフォンはパッチ適用漏れが多く、安価なチップを使用しているという単純な理由による場合もある。しかし、バグがOSではなくチップに見つかり、スマートフォンメーカーがパッチの提供をチップメーカーに依存しているケースもある。結果として、低価格帯のサプライヤーからチップを調達している安価なスマートフォンは、それらのサプライヤーが未適用としたパッチを受け継いでしまう。「安価なデバイスを選べば、このエコシステムの中でメンテナンスが行き届いていない部分に行き着くことになる、という教訓があります」とノール氏は言う。

セキュリティ・リサーチ・ラボ/WIRED
WIREDがグーグルに連絡を取ったところ、同社はSRLの調査に感謝すると述べたものの、SRLが分析したデヴァイスの一部はAndroid認定デヴァイスではない可能性があり、つまりグーグルのセキュリティ基準を満たしていない可能性があると指摘した。SRLは、最新のAndroidスマートフォンは、たとえパッチが適用されていないセキュリティ脆弱性があっても、ハッキングを困難にするセキュリティ機能を備えていると指摘した。また、場合によっては、スマートフォンメーカーが脆弱性を修正するのではなく、単にスマートフォンから削除したため、あるいはそもそもその機能がスマートフォンに搭載されていなかったため、デヴァイスにパッチが適用されていない可能性があると主張した。グーグルは、SRL Labsと協力して調査結果のさらなる調査を進めていると述べた。「セキュリティアップデートは、Androidデヴァイスとユーザーを保護するために用いられる多くのレイヤーの一つです」と、Android製品セキュリティ責任者のスコット・ロバーツはWIREDへの声明で付け加えた。アプリケーションサンドボックスなどの組み込みプラットフォーム保護や、Google Play Protectなどのセキュリティサービスも同様に重要です。これらのセキュリティレイヤーとAndroidエコシステムの驚異的な多様性が相まって、Androidデバイスのリモート攻撃は依然として困難であるという研究者の結論につながっています。1
脆弱性のある機能がスマートフォンに搭載されていなかったり、脆弱性への対応として削除されていたりしたため、一部のパッチは不要だった可能性があるというGoogleの主張に対し、ノール氏はそのような状況は非常に稀だと反論する。「決して大きな数字ではありません」と彼は言う。
最も簡単に手に入る果物ではない
さらに驚くべきことに、ノール氏はGoogleのもう一つの重要な主張にも同意している。それは、Androidスマートフォンにパッチが不足していることを悪用してハッキングするのは、想像するよりもはるかに難しいということだ。パッチ適用の実績が乏しいAndroidスマートフォンであっても、アドレス空間配置のランダム化(Android 4.0(Lollipop)以降、メモリ内のプログラムの位置をランダム化することでマルウェアがスマートフォンの他の部分を悪用するのを困難にしている)やサンドボックス化(悪意のあるプログラムによるデバイスの他の部分へのアクセスを制限する)など、Androidの幅広いセキュリティ対策の恩恵を受けている。
つまり、標的のAndroidスマートフォンを完全に制御できるエクスプロイトと呼ばれるハッキング手法のほとんどは、スマートフォンのソフトウェアに存在する一連の脆弱性を悪用する必要があり、パッチを1つ適用し忘れただけでは不十分だ。「たとえ特定のパッチを適用し忘れたとしても、それらが必ずしも特定の方法で連携して適用されているわけではない可能性が高い」とノール氏は言う。
その結果、Androidスマートフォンは、Google Playストアに紛れ込んだ不正アプリや、Playストア以外のソースからユーザーを騙してインストールさせる不正アプリといった、より単純な手口でハッキングされるケースがはるかに増えているとノール氏は指摘する。「人間が騙されやすく、マルウェアが同梱された無料または海賊版のソフトウェアをインストールしてしまう限り、犯罪者はソーシャルエンジニアリングに固執する可能性が高い」とノール氏は言う。
しかし、Androidデバイスをより標的とした攻撃を仕掛ける、高度な国家支援を受けたハッカーは、また別の話かもしれない。ノール氏は、彼らが利用する攻撃は、既知だが未修正の脆弱性ではなく、ゼロデイ脆弱性(パッチが全く存在しない、ハッキング可能な秘密のバグ)がほとんどだと指摘する。しかし、多くの場合、既知だが未修正の脆弱性とゼロデイ脆弱性を組み合わせて利用する可能性もある。ノール氏は例として、スパイウェア「FinFisher」を挙げている。FinFisherはかつて、Androidの既知の脆弱性「Dirty COW」に加え、独自のゼロデイ脆弱性も悪用していた。
ノール氏は「多層防御」というセキュリティ原則を挙げています。これは、セキュリティは多層防御によって最も効果的に実装されるという考え方です。パッチの適用漏れは、潜在的に保護層を一つ減らすことになります。「それ自体はリスクとはならないものの、他者にとってはパズルのピースの一つになる可能性のあるバグを放置して、攻撃者にとってより容易な状況を作ってはなりません」とノール氏は言います。「多層防御とは、すべてのパッチをインストールすることを意味します。」
Android パッチワーク
- GoogleがPlayストアからマルウェアを排除するのが難しい理由
- Playストアの代替として、オープンソースアプリを提供してセキュリティの安心感を高める
- Androidのセキュリティ問題は大幅に改善されましたが、まだ道のりは長いです
1 Google からの追加声明を受けて 2018 年 4 月 12 日に更新されました。