OS XおよびiOSのXARA脆弱性

本日、OS XとiOSのさまざまなアプリケーションが相互に通信する方法に基づいた攻撃の研究に特化した情報セキュリティの専門家グループのレポートが公開されました(XARA、Cross-App Resource Accessから)元の記事の26ページすべてを読むのが面倒な人のために、私はその短いレビューを準備することにしました。



まず、2つの短いポイント:





そして今、脆弱性についての詳細:



1. URLスキームを介して送信されるデータの傍受。

iOS(およびOS X)では、アプリケーションはURLスキームを介して相互に通信できます。 それはどのように見えますか:

例として、お気に入りのBlaBlaPostモバイルメールクライアントでアドレスを含むメールを受信した場合を考えてみましょう。 メーラーは十分に賢く、このアドレスをクリックすることで、ユーザーをたとえばBlaBlaKartaナビゲーションアプリケーションにリダイレクトします。 iOSでこのような移行を実装する唯一の方法は、最初のアプリケーションでフォームのリンクを呼び出すことです。

blablamaps:// 55.678 + 32.432



システムはそのようなURLへの呼び出しをキャッチし、インストールされているアプリケーションのどれがそれを処理できるかを確認します。 そのようなアプリケーションが見つかった場合、遷移が発生し、開くプログラムがデータ(この場合は座標)の処理方法を既に決定しています。



すべての楽しみは、1つではなく、2つのアプリケーションがこの種のURLで動作することを宣言したときに始まります。 著者は、次のオペレーティングシステムの動作ルールを決定しました。



興味深い点は、Androidとは異なり、ユーザーはどのアプリケーションを開くかを選択できないことです。 追加の認証メカニズムはなく、何もありません。



したがって、この脆弱性は次のように悪用されます。

アプリケーションでBlaBlaHijackを作成し、そのプロパティでblablamaps URLスキームを処理し、ユーザーに提供する機能を示します。 BlaBlaMapsとは異なり、悪意のあるプログラムはマップを開かず、単にこれらの座標をサーバーに送信します。



同じスキームは、アプリケーション間で転送されるすべてのデータで機能します。たとえば、FacebookまたはTwitterを介した認証中に受け取ったトークンです。



このようなスキームの弱点は、通常、悪意のあるプログラムを攻撃されたユーザーに転送する方法にあります。 特に注目すべきこと-AppleはURLスキームの一般的なディレクトリを保持していないため、このようなアプリケーションは穏やかにモデレートされ、ダウンロード可能になります。



2. OS Xでのキーチェーン許可の変更

iOSとは異なり、OS Xのキーチェーンに格納されている各プロパティには、追加のアクセス権(アクセス制御リスト)を設定できます。これにより、アクセスが許可されているアプリケーションがリストされます。 BlaBlaSoftwareファミリの次の代表者に、このメカニズムに関連する脆弱性を示します。



ユーザーは、Mac App Store、 BlaBlaBook-流行に敏感なソーシャルネットワークから非常に人気のあるアプリケーションをダウンロードします。 他の適切なアプリケーションと同様に、認証データを入力すると、キーチェーンに保存しようとします。 そして、ここで別のメカニズムが有効になります-新しいレコードを作成する前に、システムはキーチェーンにそのようなパラメーターを持つレコードが既にあるかどうかをチェックします。 これは、プログラムを更新するときにユーザーデータが飛び出さないようにするためです。 そのようなエントリが見つかった場合、その内容は上書きされ、見つからない場合は新しいエントリが作成されます。 2番目のケースでBlaBlaBookアプリケーションがACLを定義している場合、 最初のケースではACLは変更されません。



それでは、脆弱性に戻りましょう。 BlaBlaBookをインストールする前日、ユーザーはすでにBlaBlaHijackerに言及されている別のアプリケーションをダウンロードしました 。 このマルウェアは、必要な元のアプリケーションと同じパラメーターでキーチェーンにエントリを追加した最初の人物であり、ACLにすべての権限を追加しました。 したがって、ユーザーがパスワードを保存しようとすると、2つのアプリケーションがアクセスできます-BlaBlaBookBlaBlaHijackerの両方。

興味深いことに、悪意のあるアプリケーションを最初にインストールする必要はありません-サードパーティのアプリケーションは、キーチェーンの特定のエントリを削除し、独自のエントリで上書きすることができます。



3.サンドボックスへのアクセス

OS Xのすべてのアプリケーションが独自のサンドボックス内で動作し、他のプログラムにアクセスできないことはよく知られています。 これらのサンドボックスは、ファイルシステム内でフォルダーによって表されます。フォルダーの名前は、アプリケーションの一意の識別子です。 Mac App Storeは、公開されているすべてのプログラムをチェックするときに、このIDの一意性をチェックするため、繰り返しはないようです。



困難さにより、元のアプリケーションに追加のルーチン(ヘルパー、フレームワーク、および独自のバンドルIDを持つその他のもの)を含めることができます。 これらの各ルーチンは、独自のサンドボックスで機能します。 脆弱性は、Appleがこれらのヘルパーの識別子の一意性をチェックしないことです。その結果、2つの異なるアプリケーションが同じサンドボックスで動作し、互いのデータへのフルアクセスを取得できます。



この脆弱性は、一般的なパスワードマネージャー1Passwordとその拡張機能1Password Mini場合に最もよく実証されます



4. WebSocketを介した通信の脆弱性

要するに、WebSocketはサーバーがクライアントと通信できるプロトコルです。 HTML5標準の一部として統合されており、ブラウザのWebViewコンテンツは、特定のTCPポートを介してデータを転送することにより、システム内の他のアプリケーションにアクセスできます。 そして、もちろん、この場合認証はありません-誰でもこのポートを聞くことができます。 ブラウザの拡張機能は、具体的に通信する相手とは一切検証できません。



脆弱性を悪用する例は、前のケースのように1Passwordです。 ブラウザ拡張機能は、ユーザーがさまざまな形式で入力したパスワードとクレジットカード番号を収集し、ポート6263を介してアプリケーションに送信しました。 それ以降のアクションは簡単です。同じポートをリッスンし、受信したすべてのデータを記録し、適切なベースを収集するプログラムを作成します。 繰り返しますが、これらすべてはApp Storeのテストに静かに合格します。



Appleは、昨年の秋以来、言及されたすべての脆弱性を認識しており、レポートの情報によると、これらの脆弱性を修正するには少なくとも6か月かかります。



もう一度申し上げますが、iOSは考慮されている脆弱性の最初の脆弱性のみに関するものです。



便利なリンク:




All Articles