マカフィー株式会社 公式ブログ

McAfee Labs] 2010年12月 9日 更新

重要度が高まる、スマートフォンのセキュリティホール

 

iPhoneとAndroidを始めとした、スマートフォン市場が急激に成長しています。その一方で、携帯電話とPCの間を埋める存在と言えるスマートフォンは、携帯電話と同じくらい個人情報を有しており、また、PCと同じくらいビジネス関連のデータを有している可能性が高くあります。同時に、スマートフォンもPCと同様にセキュリティリスクが高まっており、セキュリティホールの発見も今後も増えてくると考えられます。今回はiPhone向けのアプリケーションにおいて、セキュリティホールが発見された事例を取り上げます。

アップルの携帯電話機「iPhone」向けアプリケーションのセキュリティホールは、デジタル署名処理に存在する部分で発見されました。iPhone向けの公式なソフトウェア開発キット(SDK)で開発されたアプリケーションを「App Store」で配布/販売したり、iPhoneに搭載したりするには、作成者とアップルのデジタル署名を施す必要があります。このデジタル署名はセキュリティ対策であり、(1)アプリケーションで問題が発生した場合に開発元を特定する、(2)承認済みアプリケーションが改ざんされていないことを保証する、という二つ目的があります。

今回のセキュリティホールは、あるiPhone関連開発者が、アップルが作成したiPhone用アプリケーションの機能をまねる方法を調べている最中に発見しました。具体的には、動的default.pngファイルを生成する機能です。default.pngファイルは、iPhoneアプリケーションの起動時に表示されるもので、静的なスプラッシュスクリーンとして利用することができます。アップル製アプリケーションを終了しようとすると、アプリケーションはその時点のスクリーンのスナップショットを取得し、アプリケーション本体にdefault.pngとして保存します。次にそのアプリケーションを起動する際には、アプリケーションがこの新しいdefault.pngを読み込み、前回の実行時と同じ画面を表示します。この時点でアプリケーションの読み込みは完了していませんが、保存しておいたdefault.pngにより、アプリケーションを読み込み終えたように見えます。

アップルが開発したアプリケーションと違って、サードパーティが開発したアプリケーションはdefault.pngファイルを変更することができません。default.pngはアプリケーション本体に格納される際に、デジタル署名を付与されます。同ファイルの変更はアプリケーションの変更を意味するため、デジタル署名が無効となってしまします。代替案として考えられるのが、アプリケーションのデータディレクトリ内にあるdefault.pngを使用する方法ですが、アプリケーションに格納されたファイルはiPhone上でしか参照することができません。

アップルのdefault.pngを複製する方法は、iPhone SDKに含まれている「codesign」ユーティリティの欠陥と関係しています。codesignは、開発者がアプリケーションにデジタル署名を付与する際に使用するユーティリティです。通常デジタル署名を作成する際には、codesignはiPhoneアプリケーションに含まれるすべてのファイルを対象とします。codesignの問題点は、シンボリックリンク(symlink)を処理しないことです。

symlinkはファイルへのショートカットのようなもので、一つのファイルを別々の場所から参照したい場合、あるいは別の名前で参照したい場合に、symlinkを新たな場所に作成します。つまり、symlinkは新たなファイルのコピーではなく、元のファイルを指すポインタに過ぎません。codesignはこのポインタを追跡しないため、署名の作成時にsymlinkファイルを考慮には入れません。今回の新しいアプローチでは、default.pngという名前のsymlinkファイルを作成します。このため、アプリケーション外の場所やファイルにリンクするよう指定すれば、アプリケーションを容易に改ざんすることができます。

よくできたトリックですが、これだけなら余り害はありません。もしsymlinkの問題がcodesignユーティリティに限定されるのであれば、インストール済みアプリケーションには影響しません。問題が起こるのは、symlinkを使用して、署名の際にプログラムファイルやコンポーネントの存在が隠されてしまった場合です。攻撃者は、プログラムの自動更新機能を使用して悪意のあるコンポーネントが後からインストールされるよう仕組むことができます。デジタル署名はsymlinkを無視するため、アプリケーションにこれからダウンロードする悪質な部品(攻撃処理モジュール)へのポインタが含まれていても検出することができません。アプリケーションの承認処理の間、攻撃処理モジュールはプログラムには含まれていないため、悪質なアプリケーションは検査をすり抜けてしまうことになります。この結果、iPhoneのOSが持っている悪意のあるコードに対する保護機能が、回避されてしまいます。

ただ、アプリケーションがデジタル署名されているため、上記のようなマルウェアの作者を追跡することは比較的容易です。この脆弱性がiPhone SDKのユーティリティと、iPhone OSの認証システムに潜んでいることは判明しています。

Also Find Us On

マカフィーは、インテルコーポレーション(NASDAQ:INTC)の完全子会社であり、企業、官公庁・自治体、個人ユーザーが安全にインターネットの恩恵を享受できるよう、世界中のシステム、ネットワーク、モバイルデバイスを守るプロアクティブで定評のあるセキュリティソリューションやサービスを提供しています。詳しくは、http://www.mcafee.com/japan/をご覧ください。

 

Copyright © 2003-2014 McAfee, Inc. All Rights Reserved.