2016年10月、Linux に存在する脆弱性「Dirty COW」が公開されました。この脆弱性には CVE識別子「CVE-2016-5195」が割当てられており、悪用された場合攻撃者がシステム管理者の権限を取得することが可能となります。「Dirty COW」は、Linux カーネルの開発者である Linus Torvalds 氏が「昔から存在していた不具合」と説明していたもので、公表後すぐに更新プログラムが公開されています。ほとんどの Linuxディストリビューションから、直ちに更新プログラムを適用するようユーザに注意喚起されています。
SELinux のポリシーによって攻撃可能な範囲は限定されているとはいえ、Android にも問題の脆弱性「Dirty COW」が存在します。トレンドマイクロは、すでに報告されている攻撃とは異なる Dirty COW を利用した別の攻撃手法を確認しました。弊社が確認した攻撃手法では、不正なコードを直接プロセスに書き込むことが可能になるため、攻撃者は狙った端末のほぼすべてが制御可能となります。現時点で、すべてのバージョンの Android がこの問題の影響を受ける可能性があります。
■概念実証(Proof of Concept、POC)
以下の動画は、弊社が攻撃を実演したものです。調査時点で最新の更新プログラムを適用した Android端末に、エクスプロイトコードを含むアプリが、許可を要求することなくインストールされる様子が確認できます。アプリが実行されると、Dirty COW を突く攻撃によって情報が窃取され、システムの設定が変更されます。この実演では、位置情報の取得、Bluetooth 有効化、Wi-Fi hotspot の有効化が実行されています。また、たとえ Google Play で公開されているアプリ以外インストールしない設定にしていても、この攻撃によりユーザが気付かないうちにアプリをインストールすることが可能になります。
この攻撃はどのようにして可能になるのでしょうか。ELF形式の実行ファイルを実行するとき、Linuxカーネルは実行ファイルをメモリにマッピングします。このマッピングは、次に同じファイルを開くときに再利用されます。Dirty COW を利用して実行中の ELFファイルを書き換えると、実行中の画像も変化します。これは、読み出し可能なプロセスであれば、Dirty COW が実行中のプロセスを書き換えられることを意味しています。プロセスが読み出し可能でなかった場合は、“cat /proc/{pid}/maps ” を利用し、読み込まれた ELFファイルの中に読み出し可能なファイルがあるかどうかをさらに確認します。
Android でも同様の過程が当てはまります。Android のオペレーティングシステム「Android Runtime(ART)」のプロセスも実行中に書き換えることが可能です。これによって、Android端末でアプリを実行できる攻撃者が、読み出し可能なプロセスならなんでも書き換えることが可能になります。攻撃者はコードを追加し、どのようなプロセスのコンテキストでも制御することができます。
図1:Dirty COW を利用した巧妙な攻撃
上述の手法によって、ファイルを読み込み上書きするというだけでなく、メモリに直接コードを追加する攻撃ができます。このように、再起動や強制終了を経過せずに、管理者権限を獲得する攻撃が可能になります。
実演の動画では、弊社で作成したアプリに管理者権限を与えるため、“libbinder.so” を修正しています。弊社は、情報を収集し、システムの機能を制御するという目的で、この手法を用い Android 端末が持つアクセス許可のセキュリティ能力を回避し、攻撃が実行できることを確認しました。
■脆弱性の開示と緩和策
弊社は、この脆弱性について、Google に報告済みです。当初、補助的なセキュリティ パッチ レベル(端末メーカ等からユーザへの提供は必須ではないレベル)として Dirty COW の更新プログラムが2016年11月に公開されました。その後、2016年12月のアップデートをもって、端末メーカ等からユーザへの更新プログラムの適用が必須レベルとなりました。ユーザは、Android端末の製造元や携帯電話会社に更新プログラムのリリース日時を確認してください。
■トレンドマイクロの対策
弊社は、引き続きこの攻撃を利用する脅威について監視中です。ユーザは、Google Play または信頼できるサードパーティアプリストアからのみアプリをインストールしてください。総合セキュリティ対策アプリ「ウイルスバスター モバイル」は、不正アプリや危険な Webサイトからスマホ・タブレットを守ります。企業ユーザは、スマートフォンやタブレット端末の不正プログラムや不正サイトに対する「セキュリティ対策」と、紛失時のデータ保護やセキュリティポリシーを適用する「デバイス管理」を包括的に実現した企業向けソリューション「Trend Micro Mobile Security™」によって、Dirty COW を利用した攻撃から Android端末を保護できます。
参考記事:
- 「New Flavor of Dirty COW Attack Discovered, Patched」
by Veo Zhang(Mobile Threats Analyst)
翻訳:室賀 美和(Core Technology Marketing, TrendLabs)