Linux のセキュリティホール DirtyCOW は Android にも
影響し、ルート権限が奪取される恐れがあります

2016.11.07

先週の最後に、DirtyCOW(リンク先:英語) と命名され、新しくパッチが適用された Linux のセキュリティエクスプロイトについて説明しました。


この攻撃の仕組みを簡潔に説明します。


  • ユーザーが書き込み権限があるファイルと書き込み権限がない 2 つのファイルを選択し、カーネルにこれらの 2 つのファイルをメモリにロードさせます。


  • 変更が許可されているファイルに何度も書き込みします。


  • 同時に、ユーザーが変更できないファイルで使用されているメモリを借り入れるようにカーネルに何度も命令します。


  • しばらく待機します (32 ビットの Intel Linux 4.4.19 のテストではほんの一瞬でした)。


      この脆弱性には、共通脆弱性識別子 CVE-2016-5195(リンク先:英語) が割り当てられています。これは、カーネルがメモリバッファーを適切に処理しない問題です。


      結果として、読み取り専用のファイルを書き込むことが可能となり、最重要の実行ファイルや構成ファイルなどのファイルが改変されると、セキュリティ上の重大な問題が引き起こされる場合があります。


      このバグは、カーネルがリリースされてから少なくとも 11 年間も Linux のソースコードに存在しており、理論上すべてのプラットフォームのすべてのバージョンが当時この問題の影響を受けていました。


      ソフォスでは、一般的な PC、ラップトップ、およびサーバーなど Intel CPU 向けの通常の Linux ディストリビューションのみでテストを実行しましたが、DirtyCOW は、ARM チップ上で稼働する Android にも影響することが明らかになりました。


      これは、Apple の macOS や iOS が BSD 由来の オープンソースコア(リンク先:英語)を基盤に構築されているのと同じように、Google 独自の Android エコシステムでは オープンソースの Linux(リンク先:英語) オペレーティングシステムが使用されているためです。


      Timwr という名前の Github ユーザーが、run-as という Android プログラムを置換する概念実証のプロジェクトを公開しています。


      run-as の概念は、Windows の Run As... (ユーザーを指定して実行) のように、別のユーザーとしてアプリケーションを実行できるようにすることです。


      これは、開発やテスト環境では便利ですが、一方でも危険でもあります。run-as は実行時には root 権限を取得し、ロードするアプリケーションにその root 権限を渡すことがあるからです。


      セキュリティ上の目的で、標準の Google バージョンの run-as では、このプログラムを起動するときに、まずユーザーが root 権限を所有していることを求めています。また、デバッグのために接続される通常の開発やテストデバイスでは、ユーザーは root 権限を持っています。


      大ざっぱに言うと、run-as を使用してスマートフォンをルート化することができますが、それができるのはすでにルート化されているスマートフォンだけです。


      明らかに、run-as を、誰でも利用でき管理者権限があるプログラムに置換できれば、誰でもスマートフォンを完全にルート化できることになります。


      ルート化のリスク


      Google の Nexus および Pixel デバイスは、ユーザーが希望すればルート化できようになっており、そのため、多くの開発者が利用しています。しかし、Samsung などの他のベンダーは、Apple や Microsoft のように自社のスマートフォンをロックした状態で販売しています。


      その結果、Apple のスマートフォンのジェイルブレイクのように、Android でルート化することは、人とは何か違ったことをしたがるユーザーにとって、娯楽の 1 つとなっています。


      多くのユーザーにとって、ルート化はベンダーのブロートウェアを削除したり、システムアプリを別のバージョンに変更したりする方法となっています。


      また、他のユーザーにとってルート化は、ベンダーが準備できていないセキュリティパッチを適用したり、ベンダーがサポートしなくなったスマートフォンをアップデートしたりする方法にもなっています。


      また、悲しいことですが、ルート化は、ハッキングされたアプリをインストールしたり、セキュリティ上の問題を意図的に引き起こすように構成を変更するようにアドバイスしたりするために、海賊版業者や他のサイバー犯罪者にとって利用される手段にもなっています。


      特に、アプリはルート権限を取得できると、通常の Android アプリに課せられているデータサンドボックスの制約を回避できるようになり、本来はアクセスできないログ、メッセージ、データベース、さらには個人を特定可能な情報 (PII) にもアクセスできるようになる場合があります。


      対策


      ベンダーがロックしている Android スマートフォンを純粋にルート化したい場合、少なくともお使いの製品ベンダーが次のセキュリティアップデートを公開するまでは (いくつかのデバイスでは非常に長い期間セキュリティパッチが公開されず危険となる場合があります)、これは便利な方法なのかもしれません。


      一方、読者の方が、企業のさまざまなデバイスをサポートしているシステム管理者であれば、ルート化が引き起こすリスクはその利点よりも大きくなる場合があり、簡単にルート化できるデバイスがもたらす状況を楽観することはできないでしょう。


      さらに悪いことは、正規ではない危険なアプリは、ルート化を実行するエクスプロイト秘密裏に使用し、想定外の権限をユーザーに付与することがあります。これは、あらゆる企業のネットワークにとって危険です。


      お使いの Android スマートフォンベンダーに、DirtyCOW の問題を解決するアップデートがいつ提供されるかを問い合わせることをお勧めします。


      追記: Sophos Mobile Control を使用すると、ルート化されたスマートフォンを検出し適切な対策を実施し、ビジネスネットワークから排除できます。これらの対策では、警告を単に表示したり、企業の電子メールを自動的に削除したり、リモートから強制消去を実施したりできます。

引用元

おすすめの記事はこちら