(57)【要約】【課題】第１のアプリケーションが悪意のあるものであるかどうかを識別すること。【解決手段】第１のアプリケーションは、処理システム上のインストールのために提示され得る。プロセッサによって実施された静的解析を介して、第１のアプリケーションがスキャンされて、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているかどうかが判断され得る。第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであることを示すアラートが生成され得る。【選択図】図１
2015530673.tif 000002
【特許請求の範囲】
【請求項１】
第１のアプリケーションが悪意のあるものであるかどうかを識別するための方法であって、
処理システム上のインストールのために提示される前記第１のアプリケーションを、検出すること、
プロセッサによって実施された静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションのユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているとき、前記第１のアプリケーションが悪意のあるものであることを示すアラートを生成すること
を含む方法。
【請求項２】
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかについて、前記静的解析が不確定であることに応答して、
前記処理システムによる前記第１のアプリケーションの実行中に、前記第１のアプリケーションのランタイム解析を行うことであって、前記ランタイム解析は、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することを含む、前記ランタイム解析を行うこと、および
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが悪意のあるものであることを示す前記アラートを生成すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが前記処理システムによって受信されたユーザ入力から受信された情報を記憶または通信することを、防止すること
をさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断すること、および
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項２または３のいずれかに記載の方法。
【請求項５】
前記第１のアプリケーションの前記ランタイム解析を行い、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することが、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの現在のユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記現在のユーザ・インターフェース・レイアウトが、前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していないとき、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの次のユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること
を含む、請求項２ないし４のいずれかに記載の方法。
【請求項６】
プロセッサによって実施された前記静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することが、
前記第１のアプリケーションの可能なユーザ・インターフェース・レイアウトの総数を判断すること
を含み、
前記方法が、
前記第１のアプリケーションが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかについて、前記静的解析が不確定であることに応答して、前記第１のアプリケーションが実行されるとき、前記第１のアプリケーションのランタイム解析を行い、前記第１のアプリケーションによって実装された各ユーザ・インターフェース・レイアウトを識別し、前記第１のアプリケーションによって実装された各ユーザ・インターフェース・レイアウトが、前記第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、ならびに
前記ランタイム解析によって検出された前記第１のアプリケーションのユーザ・インターフェース・レイアウトの総数が、前記静的解析によって判断された前記可能なユーザ・インターフェース・レイアウトの総数に等しいこと、および、前記第１のアプリケーションのユーザ・インターフェース・レイアウトの各々が、前記処理システム上にインストールされた前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していないことを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションを安全であるとして識別すること
をさらに含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記プロセッサによって実施された前記静的解析を介して、前記第１のアプリケーションをスキャンすることが、
前記第１のアプリケーションが、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるかどうかを判断すること、および
前記第１のアプリケーションが、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項１ないし６のいずれかに記載の方法。
【請求項８】
処理システム上のインストールのために提示される前記第１のアプリケーションを、検出すること、
プロセッサによって実施された静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションが悪意のあるものであるかどうかを判断すること、
前記第１のアプリケーションが悪意のあるものであるかどうかについて、前記静的解析が不確定であることに応答して、
前記処理システムによる前記第１のアプリケーションの実行中に、前記第１のアプリケーションのランタイム解析を行い、前記第１のアプリケーションが悪意のあるものであるかどうかを判断すること、および
前記第１のアプリケーションが悪意のあるものであることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが悪意のあるものであることを示すアラートを生成すること
を含む、請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断すること、および
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの現在のユーザ・インターフェース・レイアウトが前記第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記現在のユーザ・インターフェース・レイアウトが、前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項８に記載の方法。
【請求項１１】
第１のアプリケーションが悪意のあるものであるかどうかを識別するための処理システムであって、
実行可能な動作を開始するように構成されたプロセッサ
を備え、前記実行可能な動作が、
前記第１のアプリケーションが前記処理システム上のインストールのために提示されることを、検出すること、
前記プロセッサによって実施された静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションのユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているとき、前記第１のアプリケーションが悪意のあるものであることを示すアラートを生成すること
を含む、処理システム。
【請求項１２】
前記プロセッサが、
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかについて、前記静的解析が不確定であることに応答して、
前記処理システムによる前記第１のアプリケーションの実行中に、前記第１のアプリケーションのランタイム解析を行うことであって、前記ランタイム解析は、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することを含む、前記ランタイム解析を行うこと、および
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが悪意のあるものであることを示す前記アラートを生成すること
を含む、実行可能な動作を開始するようにさらに構成される、請求項１１に記載の処理システム。
【請求項１３】
前記プロセッサが、
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが前記処理システムによって受信されたユーザ入力から受信された情報を記憶または通信することを、防止すること
を含む、実行可能な動作を開始するようにさらに構成される、請求項１２に記載の処理システム。
【請求項１４】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断すること、および
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項１２または１３のいずれかに記載の処理システム。
【請求項１５】
前記第１のアプリケーションの前記ランタイム解析を行い、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することが、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの現在のユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記現在のユーザ・インターフェース・レイアウトが、前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していないとき、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの次のユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること
を含む、請求項１２ないし１４のいずれかに記載の処理システム。
【請求項１６】
前記プロセッサによって実施された前記静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することが、
前記第１のアプリケーションの可能なユーザ・インターフェース・レイアウトの総数を判断すること
を含み、
前記プロセッサが、
前記第１のアプリケーションが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかについて、前記静的解析が不確定であることに応答して、前記第１のアプリケーションが実行されるとき、前記第１のアプリケーションのランタイム解析を行い、前記第１のアプリケーションによって実装された各ユーザ・インターフェース・レイアウトを識別し、前記第１のアプリケーションによって実装された各ユーザ・インターフェース・レイアウトが、前記第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、ならびに
前記ランタイム解析によって検出された前記第１のアプリケーションのユーザ・インターフェース・レイアウトの総数が、前記静的解析によって判断された前記可能なユーザ・インターフェース・レイアウトの総数に等しいこと、および、前記第１のアプリケーションのユーザ・インターフェース・レイアウトの各々が、前記処理システム上にインストールされた前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していないことを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションを安全であるとして識別すること
を含む、実行可能な動作を開始するようにさらに構成される、請求項１１ないし１５のいずれかに記載の処理システム。
【請求項１７】
前記プロセッサによって実施された前記静的解析を介して、前記第１のアプリケーションをスキャンすることが、
前記第１のアプリケーションが、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるかどうかを判断すること、および
前記第１のアプリケーションが、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項１１ないし１６のいずれかに記載の処理システム。
【請求項１８】
第１のアプリケーションが悪意のあるものであるかどうかを識別するためのコンピュータ・プログラム製品であって、
処理回路によって可読であり、請求項１ないし１０のいずれかに記載の方法を行うための、前記処理回路による実行のための命令を記憶する、コンピュータ可読記憶媒体
を備えるコンピュータ・プログラム製品。
【請求項１９】
コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１ないし１０のいずれかに記載の方法を行うための、ソフトウェア・コード部分を備える、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが悪意のあるものであるかどうかを識別することに関する。
【背景技術】
【０００２】
フィッシング攻撃は、しばしば、悪意のある者が電子通信において信用できるエンティティになりすますことによって実施される。フィッシング攻撃を開始する典型的な方法は、ユーザの処理システム上に悪意のあるアプリケーションをインストールすることである。悪意のあるアプリケーションは、インスタント・メッセージ、ｅメールを介して、または、ユーザがアクセスする、悪意のある、もしくは感染したウェブサイトを介して、処理システムに通信され得る。例証として、ある通信がユーザに送信されることがあり、そのような通信は、評判のよいソーシャル・ウェブサイト、オークション・サイト、金融機関、オンライン決済プロセッサ、情報技術（ＩＴ）アドミニストレータなどからのものであると主張することができる。そのような通信は、悪意のあるユニフォーム・リソース・ロケータ（ＵＲＬ）へのハイパーリンクを提供することができ、そこへ通信がユーザを導き、ユーザは、そのＵＲＬが安全であると信じて選択することがある。
【０００３】
ＵＲＬをロードするように要求されるとき、ウェブ・ブラウザは、ＵＲＬ訪問要求を処理するウェブ・ブラウザの外部で、悪意のあるアプリケーションがユーザの処理システム（たとえば、モバイル・デバイス）上にインストールされることを可能にし得る。ウェブ・ブラウザは、ＵＲＬによって識別された暗黙的インテントをファイアリング（firing）することによって、それを行うことができる。これによって、悪意のあるアプリケーションが、ブラウザのグラフィカル・インターフェース（ＧＵＩ）と本質的に同一であるＧＵＩを使用して、ＵＲＬ要求に応答することが可能になる。実際のブラウザと悪意のあるアプリケーションとの間の移行はスムーズであり、したがって、無害のユーザによって見逃される可能性がある。たとえば、悪意のあるアプリケーションは、ユーザの銀行ウェブサイトである振りをすることができる。ユーザは、次いで、悪意のあるアプリケーションに、ユーザ名およびパスワードなど、アカウントの詳細を入力することがあり、悪意のあるアプリケーションは、その詳細を保持することができる。悪意のあるユーザは、次いで、そのような詳細を使用して、そのユーザのアカウントへのアクセスを得ることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、当技術分野において、前述の問題に対処する必要がある。
【課題を解決するための手段】
【０００５】
本明細書内で開示する１つまたは複数の実施形態は、アプリケーションが悪意のあるものであるかどうかを識別することに関する。
【０００６】
第１の態様から見ると、本発明は、第１のアプリケーションが悪意のあるものであるかどうかを識別するための方法を提供し、この方法は、第１のアプリケーションが処理システム上のインストールのために提示されることを、検出すること、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているかどうかを判断すること、および、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであることを示すアラートを生成することを含む。
【０００７】
さらなる態様から見ると、本発明は、第１のアプリケーションが悪意のあるものであるかどうかを識別するためのシステムを提供し、このシステムは、実行可能な動作を開始するように構成されたプロセッサを備え、実行可能な動作が、第１のアプリケーションが処理システム上のインストールのために提示されることを、検出すること、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているかどうかを判断すること、および、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであることを示すアラートを生成することを含む。
【０００８】
さらなる態様から見ると、本発明は、第１のアプリケーションが悪意のあるものであるかどうかを識別するためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、処理回路によって可読であり、本発明のステップを行うための方法を行うための、処理回路による実行のための命令を記憶する、コンピュータ可読記憶媒体を備える。
【０００９】
さらなる態様から見ると、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、コンピュータ・プログラムは、前記プログラムがコンピュータ上で実行されるとき、本発明のステップを行うための、ソフトウェア・コード部分を備える。
【００１０】
一実施形態は、第１のアプリケーションが悪意のあるものであるかどうかを識別する方法を含み得る。この方法は、第１のアプリケーションが処理システム上のインストールのために提示されることを、検出することを含み得る。この方法はまた、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているかどうかを判断することを含み得る。この方法は、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであることを示すアラートを生成することをさらに含み得る。
【００１１】
別の実施形態は、第１のアプリケーションが悪意のあるものであるかどうかを識別する方法を含み得る。この方法は、第１のアプリケーションが処理システム上のインストールのために提示されることを、検出することを含み得る。この方法はまた、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションが悪意のあるものであるかどうかを判断することを含み得る。この方法は、第１のアプリケーションが悪意のあるものであるかどうかについて、静的解析が不確定であることに応答して、処理システムによる第１のアプリケーションの実行中に、第１のアプリケーションのランタイム解析を行い、第１のアプリケーションが悪意のあるものであるかどうかを判断すること、および、第１のアプリケーションが悪意のあるものであることを、ランタイム解析が示すことに応答して、第１のアプリケーションが悪意のあるものであることを示すアラートを生成することをさらに含み得る。
【００１２】
別の実施形態は、実行可能な動作を開始するように構成されたプロセッサを含む、処理システムを含み得る。実行可能な動作は、第１のアプリケーションが処理システム上のインストールのために提示されることを、検出することを含み得る。実行可能な動作はまた、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているかどうかを判断することを含み得る。実行可能な動作は、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであることを示すアラートを生成することをさらに含み得る。
【００１３】
別の実施形態は、第１のアプリケーションが悪意のあるものであるかどうかを識別するためのコンピュータ・プログラム製品を含み得る。コンピュータ・プログラム製品は、実行されるとき、実行可能な動作を行うようにプロセッサを構成する、プログラム・コードを記憶した、コンピュータ可読記憶媒体を含む。実行可能な動作は、第１のアプリケーションが処理システム上のインストールのために提示されることを、検出することを含み得る。実行可能な動作はまた、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているかどうかを判断することを含み得る。実行可能な動作は、第１のアプリケーションのユーザ・インターフェース・レイアウトが、処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであることを示すアラートを生成することをさらに含み得る。
【００１４】
本発明について、単に例として、以下の図面に示すような好ましい実施形態を参照しながら、以下で説明する。
【図面の簡単な説明】
【００１５】
【図１】本発明の好ましい実施形態による、アプリケーションがその中にあるシステムを示すブロック図である。
【図２】本発明の好ましい実施形態による、アプリケーションの検証を行う処理システムを示すブロック図である。
【図３】本発明の好ましい実施形態による、第１のアプリケーションが悪意のあるものであるかどうかを識別する方法を示すフローチャートである。
【図４】本発明の好ましい実施形態による、第１のアプリケーションが悪意のあるものであるかどうかを識別する方法を示す別のフローチャートである。
【発明を実施するための形態】
【００１６】
当業者なら諒解するように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化され得る。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロ・コードなどを含む）、または、すべてが一般に本明細書で「回路」、「モジュール」もしくは「システム」と呼ばれることがある、ソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとり得る。さらに、本発明の態様は、コンピュータ可読プログラム・コードがそれにおいて具体化された、たとえば、記憶された、１つまたは複数のコンピュータ可読媒体において具体化された、コンピュータ・プログラム製品の形態をとり得る。
【００１７】
１つまたは複数のコンピュータ可読媒体の任意の組合せが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子的、磁気的、光学的、電磁的、赤外線、または半導体の、システム、装置、またはデバイス、あるいは上記の任意の好適な組合せであってもよい。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、以下のもの、すなわち、１つまたは複数の電線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク・ドライブ（ＨＤＤ）、ソリッド・ステート・ドライブ（ＳＳＤ）、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、光学記憶デバイス、磁気記憶デバイス、または上記の任意の好適な組合せを含むことになる。本文書に関して、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって使用するため、またはそれらに関連して使用するためのプログラムを含む、または記憶することができる、任意の有形の媒体であってもよい。
【００１８】
コンピュータ可読信号媒体は、伝播されたデータ信号を、その中で具体化されたコンピュータ可読プログラム・コードとともに、たとえば、ベースバンドにおいて、または搬送波の一部として含み得る。そのような伝播された信号は、限定はしないが、電磁的、光学的、またはそれらの任意の好適な組合せを含む、様々な形態のいずれかをとり得る。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによって使用するため、またはそれらに関連して使用するためのプログラムを通信、伝播、または移送することができる、任意のコンピュータ可読媒体であってもよい。
【００１９】
コンピュータ可読媒体上に具体化されたプログラム・コードは、限定はしないが、無線、有線、光ファイバ、ケーブル、ＲＦなどを含む任意の適切な媒体、または上記の任意の好適な組合せを使用して、送信され得る。本発明の態様についての動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。プログラム・コードは、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で独立型のソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的におよびリモート・コンピュータ上で部分的に、または、リモート・コンピュータもしくはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通して、ユーザのコンピュータに接続されてもよく、または、接続は、（たとえば、インターネット・サービス・プロバイダを使用して、インターネットを通して）外部コンピュータに対して行われてもよい。Ｊａｖａ（Ｒ）およびすべてのＪａｖａ（Ｒ）に基づく商標およびロゴは、Ｏｒａｃｌｅまたはその関連会社あるいはその両方の商標または登録商標である。
【００２０】
本発明の態様について、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら、以下で説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、および、フローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ・プログラム命令によって具体化され得ることは、理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供して、マシンを作り出し、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスのプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実施するための手段を作成するようにすることができる。
【００２１】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスを特定の方法で機能するように指示することができるコンピュータ可読媒体に記憶して、コンピュータ可読媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実施する命令を含む製造品を作り出すようにすることもできる。
【００２２】
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードして、一連の動作ステップを、コンピュータ、他のプログラマブル装置、または他のデバイス上で行わせて、コンピュータ実施プロセスを作り出し、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／行為を実施するためのプロセスを提供するようにすることもできる。
【００２３】
例示を簡単および明快にするために、図に示す要素は、必ずしも一定の縮尺で描かれているとは限らない。たとえば、要素のうちのいくつかの寸法は、明快にするために、他の要素と比較して誇張されることがある。さらに、適切であると見なされる場合、参照番号は、対応する、類似する、または同様の特徴を示すために、図面の間で繰り返される。
【００２４】
本明細書で説明する構成は、アプリケーションを検証して、アプリケーションが悪意のあるアプリケーションであるかどうかを判断することに関する。アプリケーションが、処理システム（たとえば、モバイル・デバイス）上にインストールされるとき、静的解析がアプリケーション上で行われて、アプリケーションが、ユーザ識別子（ＩＤ）、パスワードなどのプライベートなユーザ情報を、悪意を持ってフィッシングするように構成された、フィッシング・アプリケーションであるかどうかが判断され得る。フィッシング・アプリケーションは、機密である（たとえば、プライベートなユーザ情報を含んでいる）１つまたは複数のプロセス間通信、たとえば、ユニフォーム・リソース識別子（ＵＲＩ）（たとえば、ユニフォーム・リソース・ロケータ（ＵＲＬ））に関連するプロセス間通信へのアクセスを登録することによって、プライベートなユーザ情報をフィッシングしようと試みることがある。フィッシング・アプリケーションはまた、プライベート情報をキャプチャし、そのような情報を悪意のあるエンティティに提供するために、ウェブ・ブラウザをエミュレートしようと試みることもある。
【００２５】
静的解析が、アプリケーションがフィッシング・アプリケーションであると判断する場合、静的解析は、アラートを生成するか、またはアプリケーションの動作を無効にするか、あるいはその両方を行うことができる。静的解析が、アプリケーションがフィッシング・アプリケーションであるかどうかについて不確定である場合、さらなるランタイム解析が、そのようなことを判断するために提供され得る。ランタイム解析が、アプリケーションがフィッシング・アプリケーションであると判断する場合、ランタイム解析は、アラートを生成するか、またはアプリケーションの動作を無効にするか、あるいはその両方を行うことができる。
【００２６】
図１は、本明細書内で開示する１つの実施形態による、その中で第１のアプリケーション１０５が検証されるシステム１００を示すブロック図である。
第１のアプリケーション１０５は、処理システム１１０上へのインストールのために、アプリケーション・ソース１１５から処理システム１１０に提示され得る。１つの構成では、アプリケーション・ソース１１５は、処理システム１１０に、たとえば、処理システム１１０上で実行された電子通信クライアントに与えられた、電子通信（たとえば、インスタント・メッセージまたは電子メール（ｅメール））であり得る。アプリケーション・ソース１１５は、処理システム１１０に、第１のアプリケーション１０５を与えることができる。たとえば、電子通信を開くと、電子通信は、処理システム１１０上の第１のアプリケーション１０５のインストールを開始しようと試みるか、または、処理システム１１０上で第１のアプリケーション１０５のインストールを開始することを選択するように、アプリケーション・ソース１１５がユーザを誘うためのコントロールを、ユーザに提示することができる。ユーザがそのコントロールを選択すると、処理システム１１０上で第１のアプリケーション１０５をインストールする試みが開始され得る。別の構成では、アプリケーション・ソース１１５は、たとえば、ユーザが選択するように誘われるハイパーリンクを介して、電子通信において示された悪意のある、または感染したウェブサイトであってもよく、ウェブサイトは、ユーザがウェブサイトにアクセスするか、またはウェブサイトからコンテンツをダウンロードするとき、第１のアプリケーション１０５のインストールを開始する。さらに、非良心的なユーザが、第１のアプリケーション１０５で処理システム１１０を感染させようと試みることができる多数の方法があり、本構成は、この点について限定されない。
【００２７】
第１のアプリケーション１０５がインストールのために処理システム１１０に提示されるとき、第１のアプリケーション１０５のインストール前、インストール中、またはインストール後のいずれかに、セキュリティ・アプリケーション１２０を処理システム１１０によって実行して、静的解析モジュール１２５を開始して、第１のアプリケーション１０５が悪意のあるものであるかどうかを判断するために、第１のアプリケーション１０５の静的解析を行うことができる。例証として、セキュリティ・アプリケーション１２０は、第１のアプリケーション１０５が、ルート・キットなどの悪意のあるコードを含んでいるかどうかを判断し、第１のアプリケーション１０５のインストールをブロックするか、ルート・キットのインストールをブロックするか、または、そのようなものが処理システム１１０上にすでにインストールされている場合、第１のアプリケーション１０５またはルート・キットあるいはその両方のインストールを削除することができる。ただし、第１のアプリケーション１０５は、静的解析モジュール１２５によって識別可能なルート・キットなどを含んでいないことがあり、それでもなお悪意のあるものであり得る。
【００２８】
静的解析モジュール１２５は、第１のアプリケーション１０５をスキャンして、第１のアプリケーション１０５がユーザ・インターフェース（ＵＩ）を含んでいるかどうかを判断することができる。そうである場合、静的解析モジュール１２５は、第１のアプリケーションのＵＩのレイアウトをスキャンして、第１のアプリケーション１０５が、ウェブ・ブラウザなど、処理システム上にインストールされた第２のアプリケーション１３０のＵＩレイアウトに妙に類似しているかどうかを判断することができる。例証として、静的解析モジュール１２５は、第１のアプリケーション１０５の宣言、マニフェスト・ファイル、または拡張マークアップ言語（ＸＭＬ）ドキュメントをスキャンして、第１のアプリケーション１０５のＵＩレイアウト構成を判断し、第２のアプリケーション１３０の宣言、マニフェスト・ファイル、またはＸＭＬドキュメントをスキャンして、第２のアプリケーション１３０のＵＩレイアウト構成を判断し、そのようなスキャンの結果を比較することができる。第１のアプリケーション１０５のＵＩレイアウトが第２のアプリケーション１３０のＵＩレイアウトに妙に類似している場合、これは、第１のアプリケーション１０５が、プライベートなユーザ・データをフィッシングするために、第２のアプリケーション１３０をエミュレートしようと試みていることを示し得る。
【００２９】
静的解析モジュール１２５が、第１のアプリケーションのＵＩレイアウトが第２のアプリケーション１３０のＵＩレイアウトに妙に類似している（たとえば、そのようなプロパティ間に酷似点がある）と判断する場合、セキュリティ・アプリケーション１２０は、第１のアプリケーション１０５を、潜在的に安全でないとして登録することができる。さらに、セキュリティ・アプリケーション１２０は、第１のアプリケーション１０５のインストールのブロック、または、第１のアプリケーション１０５が悪意のあるアプリケーションである（または潜在的に安全でない）ことを示すアラートの生成、あるいはその両方を行うことができる。アラートは、たとえば、ポップアップ・メッセージもしくは吹き出しを介してユーザに提示され、または処理システム１１０に通信され、あるいはその両方が行われ得る。
【００３０】
場合によっては、静的解析モジュール１２５は、第１のアプリケーション１０５を完全に検証することが可能でないことがある。言い換えれば、静的解析は、第１のアプリケーション１０５のＵＩレイアウトが第２のアプリケーション１３０のＵＩレイアウトに妙に類似しているかどうかについて、不確定であり得る。これは、第１のアプリケーション１０５のＵＩコンポーネントのうちの一部または全部が、ランタイムにのみ利用可能なデータ値に基づいて動的に構築されるか、またはバックエンド・データ記憶装置（たとえば、データベース）に記憶されるか、あるいはその両方である場合のためであり得る。第１のアプリケーション１０５がインストールされるとき、そのレイアウト構成が知られていない第１のアプリケーション１０５のランタイムＵＩレイアウトがあり得る場合には、静的解析モジュール１２５は、追加の出力データを与えることができる。たとえば、静的解析モジュール１２５は、第１のアプリケーション１０５の可能なＵＩランタイム・レイアウトの数を、そのような情報が利用可能である場合、判断し、そのようなものを追加の出力データとして示すことができる。第１のアプリケーション１０５の追加のＵＩランタイム・レイアウトが潜在的にあり得るが、そのような追加のＵＩランタイム・レイアウトの総数が知られていない場合、追加の出力データは、そのようなものを示すことができる。
【００３１】
静的解析モジュール１２５はまた、第１のアプリケーション１０５のスキャンに基づいて、第１のアプリケーション１０５によって監視、またはサブスクライブされたプロセス間通信を識別することもできる。静的解析モジュール１２５は、そのようなプロセス間通信を示すさらなる出力データを与えることができる。
【００３２】
静的解析モジュール１２５によって与えられた出力データを、セキュリティ・アプリケーション１２０によって取り出し、機械可読記憶装置に、一時的または永続的に記憶することができる。そのような出力データは、セキュリティ・アプリケーション１２０のランタイム解析モジュール１３５、または処理システム１１０の他のコンポーネントにとって利用可能にされ得る。
【００３３】
静的解析モジュール１２５が、第１のアプリケーション１０５を完全に検証することが可能でない場合、セキュリティ・アプリケーション１２０は、処理システム１１０が第１のアプリケーション１０５のインストールまたは実行あるいはその両方を行うことを可能にすることができる。この点について、第１のアプリケーション１０５は、処理システム１１０上へのインストールより前、または後に、静的解析モジュール１２５によってスキャンされ得る。実際には、一態様では、静的解析モジュール１２５が、第１のアプリケーション１０５が悪意のあるものであると判断する場合、セキュリティ・アプリケーション１２０は、第１のアプリケーションが処理システム１１０上にインストールされることを防止することができるが、本構成は、この点について限定されない。
【００３４】
それにもかかわらず、セキュリティ・アプリケーション１２０は、第１のアプリケーション１０５が実行するとき、第１のアプリケーション１０５上でランタイム解析を行うことができる。たとえば、セキュリティ・アプリケーション１２０は、ランタイム解析モジュール１３５を開始して、実行中に、第１のアプリケーション１０５によって与えられたＵＩレイアウトが、第２のアプリケーション１３０のＵＩレイアウトに妙に類似しているかどうかを判断することができる。ランタイム解析モジュール１３５が、第１のアプリケーション１０５のユーザ・インターフェース・レイアウトが第２のアプリケーション１３０のユーザ・インターフェース・レイアウトに妙に類似していることを示す場合、セキュリティ・アプリケーション１２０は、たとえば、前に説明したように、第１のアプリケーション１０５が悪意のあるものであることを示すアラートを生成することができる。
【００３５】
さらに、静的解析モジュール１２５によって与えられた出力データを、ランタイム解析モジュール１３５によって処理して、第１のアプリケーション１０５が処理システム１１０上にインストールされ、処理システム１１０によって実行されるとき、第１のアプリケーション１０５のランタイム・スキャンを行うことができる。例証として、ランタイムに、第２のアプリケーション１３０と第１のアプリケーション１０５との間のプロセス間通信が、ランタイム解析モジュール１３５によって監視され得る。そのようなプロセス間通信は、静的解析モジュール１２５によって第１のアプリケーション１０５上で行われた静的解析に関する出力データに基づいて、識別され得る。
【００３６】
第１のアプリケーション１０５が、静的解析の時に静的解析モジュール１２５に知られていない構成を有するランタイムＵＩレイアウトを与え、第１のアプリケーション１０５が、ＵＲＩを処理するために第２のアプリケーション１３０による勧誘に応答することを試みるか、または要求するとき、ターゲットＵＲＩを第２のアプリケーション１３０内にロードすることができ、そのＵＩレイアウト・プロパティを記録することができる。加えて、第１のアプリケーション１０５もまたロードすることができ、したがって、そのＵＩレイアウト・プロパティをスキャンすることができる。第１のアプリケーション１０５および第２のアプリケーション１３０のＵＩレイアウト・プロパティに基づいて、第１のアプリケーション１０５が悪意のあるものであるかどうかについての判断が行われ得る。例証として、第１のアプリケーション１０５の現在のＵＩレイアウトが、第２のアプリケーション１３０のＵＩレイアウトに妙に類似している（たとえば、第２のアプリケーション１３０の現在のＵＩレイアウト・プロパティと、第１のアプリケーション１０５のＵＩレイアウト・プロパティとの間に酷似点がある）場合、第１のアプリケーション１０５は、潜在的に安全でないとして識別され得る。したがって、第１のアプリケーション１０５が悪意のあるものであることを示すアラートが、セキュリティ・アプリケーション１２０によって生成され得る。さらに、セキュリティ・アプリケーション１２０は、第１のアプリケーション１０５が処理システム１１０によって受信されたユーザ入力から受信された情報を記憶または通信することを、防止することができる。ただし、第１のアプリケーション１０５の現在のＵＩレイアウトが、第２のアプリケーション１３０のＵＩレイアウトに妙に類似していない場合、処理システムは、第１のアプリケーション１０５の現在のＵＩレイアウトを、フィッシングの観点から無害であるとして登録することができるが、アプリケーションは、安全であるとして十分に認証される必要はない。
【００３７】
ここで、第１のアプリケーション１０５によってサポートされた他のＵＩレイアウトについての追加の情報が（利用可能である場合）、関連する。第１のアプリケーション１０５が、ランタイムに既知の数の可能なＵＩレイアウトを与える場合、ランタイムに、ランタイム解析モジュール１３５は、第１のアプリケーション１０５のアプリケーションＵＩレイアウトの各々をスキャンして、そのようなＵＩレイアウトを第２のアプリケーション１３０のＵＩレイアウトと、それらが第１のアプリケーション１０５によって実装される時、リアル・タイムで比較することができる。たとえば、ランタイム解析モジュール１３５は、第１のアプリケーション１０５によって与えられた現在のＵＩレイアウトが、第２のアプリケーション１３０によって与えられたＵＩレイアウトに妙に類似していないと判断することができる。ただし、第１のアプリケーション１０５は、たとえば、プロセス間通信を検出することに応答して、次のＵＩレイアウトを与えることがあり、そのようなプロセス間通信に応答して、ランタイム解析モジュール１３５は、第１のアプリケーション１０５の次のＵＩレイアウトを、第２のアプリケーション１３０によって与えられたＵＩレイアウトと比較することができる。これらのＵＩレイアウトが妙に類似している場合、セキュリティ・アプリケーション１２０は、アラートを生成することができる。
【００３８】
処理システムは、そのような比較が行われる時、第２のアプリケーション１３０のＵＩレイアウトと比較して、第１のアプリケーション１０５の異なるＵＩレイアウトの総数を追跡することができる。第１のアプリケーション１０５のＵＩレイアウトのいずれも、第２のアプリケーション１３０のＵＩレイアウトに妙に類似（たとえば、酷似）していない場合、スキャンされた第１のアプリケーション１０５のＵＩレイアウトの数が、第１のアプリケーション１０５のＵＩレイアウトの既知の総数に等しいとき、第１のアプリケーション１０５は、安全であるとして認証され得る。そうでない場合、現在のセッションは、通常再開することができるが、ウェブ・ブラウザと比較されていない第１のアプリケーション１０５の追加のＵＩレイアウトがあり得るので、第１のアプリケーション１０５は、一般に、安全であるとして認証されない。
【００３９】
さらに、静的解析モジュール１２５またはランタイム解析モジュール１３５あるいはその両方は、第１のアプリケーション１０５が、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるかどうかを判断するように、構成され得る。第１のアプリケーション１０５が、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるとき、セキュリティ・アプリケーション１２０は、第１のアプリケーション１０５が悪意のあるものであると判断し、対応するアラートを生成することができる。
【００４０】
第１のアプリケーション１０５のＵＩレイアウトを第２のアプリケーション１３０と比較することは、カスタム・コード／ツールの使用、または当技術分野で知られているツールの使用、あるいはその両方を含む、任意の好適な方法で行われ得る。例証として、処理システム１１０がＡｎｄｒｏｉｄ（ＴＭ）オペレーティング・システムを使用する場合、Ａｎｄｒｏｉｄ（ＴＭ）のためのＲｏｂｏｔｉｕｍテスト・フレームワークを使用して、第１のアプリケーション１０５および第２のアプリケーション１３０のＵＩレイアウト・プロパティを比較することができる。Ａｎｄｒｏｉｄは、Ｇｏｏｇｌｅ  Ｉｎｃ．の商標である。
【００４１】
プロセス間通信は、たとえば、Ａｎｄｒｏｉｄ（ＴＭ）オペレーティング・システムでは、インテント・オブジェクトを渡すことを含み得る。本明細書で使用する「インテント・オブジェクト」という用語は、行われるべき動作の抽象的記述、または、すでに起こっており、アナウンスされているイベントの記述を保持する、受動的データ構造を意味する。インテント・オブジェクトは、オペレーティング・システム環境内で実行する異なるアプリケーション間で通信する手段を提供する。一態様では、インテント・オブジェクトは、暗黙的インテント・オブジェクトであり得る。暗黙的インテント・オブジェクトは、インテント・オブジェクトに作用するべきであるターゲット・コンポーネントを指定しない、インテント・オブジェクトである。別の態様では、インテント・オブジェクトは、明示的インテント・オブジェクトであり得る。明示的インテント・オブジェクトは、インテント・オブジェクトに作用するべきであるターゲット・コンポーネントを具体的に指定する、インテント・オブジェクトである。ｉＯＳ（Ｒ）オペレーティング・システムでは、プロセス間通信は、他のアプリケーションのＵＲＩプロトコルを呼び出すアプリケーションによって交換されたメッセージを含み得る。そのようなメッセージは、メッセージ・コンテンツを含み得る。ｉＯＳは、米国および他の国々において、Ｃｉｓｃｏの商標または登録商標である。
【００４２】
本明細書で使用する「妙に類似している」という用語は、少なくとも２つのＵＩレイアウト間の厳密である類似性のレベル、または、それぞれのＵＩレイアウトを単に一見する以上のことがなければ、それらのＵＩレイアウトが異なることをユーザが認識しないような、類似性のレベルを意味する。例証として、第１のアプリケーション１０５のＵＩレイアウトが第２のアプリケーション１３０のＵＩレイアウトに妙に類似しているとき、ＵＩレイアウトを直接比較すること、または、それらが異なるかどうかを識別するためにユーザが注目させられることがなければ、ユーザは、第２のアプリケーション１３０のＵＩレイアウトを以前に見たことがあり得るにもかかわらず、第１のアプリケーション１０５のＵＩレイアウトが第２のアプリケーション１３０のＵＩレイアウトに直接対応していないことを、認識しないことがある。言い換えれば、第１のアプリケーション１０５のＵＩレイアウトは、第２のアプリケーション１３０のＵＩレイアウトに紛らわしいほど類似していることがある。
【００４３】
本明細書で使用する「リアル・タイム」という用語は、ユーザまたはシステムが、特定のプロセスもしくは判断が行われるために十分に即時として検知するか、または、プロセッサがある外部プロセスに遅れずについていくことを可能にする、処理応答性のレベルを意味する。
【００４４】
図２は、本明細書内で開示する一実施形態による、図１の処理システム１１０の例示的な実装形態を示すブロック図である。処理システム１１０は、悪意のあるアプリケーションを識別するように構成される。処理システム１１０は、アプリケーションを実行するように構成されたコンピュータ、モバイル・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマート・フォン、携帯情報端末、ゲーム・デバイス、機器、または任意の他の処理システムであり得る。
【００４５】
処理システム１１０は、システム・バス２１５または他の好適な回路を通してメモリ要素２１０に結合された、少なくとも１つのプロセッサ２０５を含み得る。したがって、処理システム１１０は、プログラム・コードをメモリ要素２１０内に記憶することができる。プロセッサ２０５は、システム・バス２１５を介してメモリ要素２１０からアクセスされたプログラム・コードを実行することができる。処理システム１１０は、本明細書内で説明する機能または動作あるいはその両方を行うことが可能である、プロセッサおよびメモリを含む任意のシステムの形態で実装され得ることを諒解されたい。
【００４６】
メモリ要素２１０は、たとえば、ローカル・メモリ２２０、および１つまたは複数の大容量記憶デバイス２２５など、１つまたは複数の物理メモリ・デバイスを含み得る。ローカル・メモリ２２０は、一般にプログラム・コードの実際の実行中に使用される、ＲＡＭ、または他の非永続的メモリ・デバイスを指す。大容量記憶デバイス２２５は、ハード・ディスク・ドライブ（ＨＤＤ）、ソリッド・ステート・ドライブ（ＳＳＤ）、または他の永続的データ記憶デバイスとして実装され得る。処理システム１１０はまた、プログラム・コードが実行中に大容量記憶デバイス２２５から取り出されなければならない回数を減らすために、少なくとも一部のプログラム・コードの一時的な記憶を提供する、１つまたは複数のキャッシュ・メモリ（図示せず）を含み得る。
【００４７】
キーボードまたはキーパッドあるいはその両方２３０、ディスプレイまたはタッチ・スクリーンあるいはその両方２３５、またはポインティング・デバイス２４０、あるいはそのすべてなどの、入出力（Ｉ／Ｏ）デバイスである。Ｉ／Ｏデバイスは、直接、または介在するＩ／Ｏコントローラを通してのいずれかで、処理システム１１０に結合され得る。たとえば、ディスプレイ／タッチ・スクリーン２３５は、グラフィック処理装置（ＧＰＵ）を介して処理システム１１０に結合されてもよく、ＧＰＵは、プロセッサ２０５のコンポーネント、または個別デバイスであってもよい。１つまたは複数のネットワーク・アダプタ２４５もまた、処理システム１１０に結合されて、処理システム１１０が、介在するプライベートもしくは公衆ネットワークを通して、他のシステム、コンピュータ・システム、リモート・プリンタ、またはリモート記憶デバイス、あるいはそのすべてに結合されるようになることが可能になり得る。モデム、ケーブル・モデム、およびイーサネット（Ｒ）・カードは、処理システム１１０とともに使用され得る様々なタイプのネットワーク・アダプタ２４５の例である。
【００４８】
図２に示すように、メモリ要素２１０は、処理システム１１０のコンポーネント、すなわち、セキュリティ・アプリケーション１２０、第２のアプリケーション１３０、および第１のアプリケーション１０５を記憶することができる。実行可能プログラム・コードの形態で実装されるので、セキュリティ・アプリケーション１２０および第２のアプリケーション１３０は、処理システム１１０によって（たとえば、プロセッサ２０５を介して）実行することができ、したがって、処理システム１１０の一部と見なされ得る。第１のアプリケーション１０５は、処理システム１１０によって処理され得るが、インストールされるまで、処理システム１１０の一部と見なされる必要はない。例証として、第１のアプリケーション１０５は、プロセッサ２０５によって処理されている間、一時的に、メモリ要素２１０に記憶され得るが、処理システム１１０のオペレーティング・システムにインストールされる必要はなく、それにもかかわらず、上述のように、インストールされてもよい。
【００４９】
セキュリティ・アプリケーション１２０が、処理システム１１０によって（たとえば、プロセッサ２０５を介して）実行されて、静的解析モジュール１２５およびランタイム解析モジュール１３５を含む、セキュリティ・アプリケーション１２０によって行われるとして本明細書で説明する動作および機能が実施され得る。さらに、第２のアプリケーション１３０は、ウェブ・ブラウザであり得るが、そうである必要はない。
【００５０】
図３は、本明細書内で開示する別の実施形態による、第１のアプリケーションが悪意のあるものであるかどうかを識別する方法３００を示すフローチャートである。ステップ３０２で、第１のアプリケーションが処理システム上のインストールのために提示されることが、検出され得る。第１のアプリケーションは、ユーザによって訪問されたウェブサイトから受信されるか、電子通信において受信されるか、または、たとえば、ＵＲＩ（たとえば、ＵＲＬ）を介して、電子通信において示されたウェブサイトから受信され得る。
【００５１】
ステップ３０４で、プロセッサを介して実施された静的解析を介して、第１のアプリケーションがスキャンされて、第１のアプリケーションのＵＩレイアウトが、処理システム上にインストールされた第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかが判断され得る。静的解析は、第１のアプリケーションが処理システム上にインストールされるより前、または、第１のアプリケーションが処理システム上にインストールされることなしに、または、第１のアプリケーションが処理システム上にインストールされる時／後に、行われ得る。
【００５２】
決定ブロック３０６で、第１のアプリケーションのＵＩレイアウトが、処理システム上にインストールされた第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかについて、判断が行われ得る。そうである場合、ステップ３０８で、第１のアプリケーションが悪意のあるものであることを示すアラートが生成され得る。
【００５３】
第１のアプリケーションのＵＩレイアウトが、第２のアプリケーションのＵＩレイアウトに妙に類似していない場合、ステップ３１０で、処理システムによる第１のアプリケーションの実行中に、第１のアプリケーションのランタイム解析が行われ得る。ランタイム解析は、第１のアプリケーションのＵＩレイアウトが第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかを判断することを含み得る。ステップ３１２で、第１のアプリケーションのＵＩレイアウトが第２のアプリケーションのＵＩレイアウトに妙に類似していることを、ランタイム解析が示すことに応答して、第１のアプリケーションが悪意のあるものであることを示すアラートが生成され得る。ステップ３１４で、第１のアプリケーションが処理システムによって受信されたユーザ入力から受信された情報を記憶または通信することが、防止され得る。
【００５４】
１つの構成では、ランタイム解析を行うことは、第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断することを含み得る。第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、第１のアプリケーションが悪意のあるものであるという判断が行われ得る。
【００５５】
ランタイム解析を行うことはまた、第１のアプリケーションのランタイムに、第１のアプリケーションの現在のＵＩレイアウトが第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかを判断することをも含み得る。そのアプリケーションの現在のＵＩレイアウトが第２のアプリケーションのＵＩレイアウトに妙に類似していないとき、第１のアプリケーションのランタイムに、第１のアプリケーションの次のＵＩレイアウトが第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかについて、判断が行われ得る。
【００５６】
例証として、プロセッサによって実施された静的解析を介して、第１のアプリケーションをスキャンして、第１のアプリケーションのＵＩレイアウトが、処理システム上にインストールされた第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかを判断することは、第１のアプリケーションの可能なＵＩレイアウトの総数を判断することを含み得る。そのような構成では、方法３００は、第１のアプリケーションが第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかについて、静的解析が不確定であることに応答して、第１のアプリケーションが実行されるとき、第１のアプリケーションのランタイム解析を行い、第１のアプリケーションによって実装された各ＵＩレイアウトを識別すること、および、第１のアプリケーションによって実装された各ＵＩレイアウトが、第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかを判断することを、さらに含み得る。方法３００はまた、ランタイム解析によって検出された第１のアプリケーションのＵＩレイアウトの総数が、静的解析によって判断された可能なＵＩレイアウトの総数に等しいこと、および、第１のアプリケーションのＵＩレイアウトの各々が、処理システム上にインストールされた第２のアプリケーションのＵＩレイアウトに妙に類似していないことを、ランタイム解析が示すことに応答して、アプリケーションを安全であるとして識別することをも含み得る。
【００５７】
図４は、本明細書内で開示する別の実施形態による、第１のアプリケーションが悪意のあるものであるかどうかを識別する方法４００を示す別のフローチャートである。ステップ４０２で、第１のアプリケーションが処理システム上のインストールのために提示されることが、検出され得る。第１のアプリケーションは、ユーザによって訪問されたウェブサイトから受信されるか、電子通信において受信されるか、または、たとえば、ＵＲＩを介して、電子通信において示されたウェブサイトから受信され得る。
【００５８】
ステップ４０４で、プロセッサによって実施された静的解析を介して、第１のアプリケーションがスキャンされて、第１のアプリケーションが悪意のあるものであるかどうかが判断され得る。決定ブロック４０６で、第１のアプリケーションが悪意のあるものであるかどうかについて、静的解析が不確定であるかどうかについて、判断が行われ得る。そうである場合、ステップ４０８で、処理システムによる第１のアプリケーションの実行中に、第１のアプリケーションのランタイム解析が行われて、第１のアプリケーションが悪意のあるものであるかどうかが判断され得る。ステップ４１０で、第１のアプリケーションが悪意のあるものであることを、ランタイム解析が示すことに応答して、第１のアプリケーションが悪意のあるものであることを示すアラートが生成され得る。再び決定ブロック４０６を参照すると、第１のアプリケーションが悪意のあるものであるかどうかについて、静的解析が不確定ではないことを、判断が示す場合、ステップ４１２で、第１のアプリケーションが悪意のあるものであるかどうかが、静的解析に基づいて示され得る。
【００５９】
１つの構成では、ランタイム解析を行うことは、第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断することを含み得る。第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、第１のアプリケーションが悪意のあるものであるという判断が行われ得る。別の構成では、ランタイム解析を行うことは、第１のアプリケーションのランタイムに、第１のアプリケーションの現在のＵＩレイアウトが第２のアプリケーションのＵＩレイアウトに妙に類似しているかどうかを判断することを含み得る。第１のアプリケーションの現在のＵＩレイアウトが、第２のアプリケーションのＵＩレイアウトに妙に類似しているとき、第１のアプリケーションが悪意のあるものであるという判断が行われ得る。
【００６０】
同様の番号を、本明細書全体にわたって同じ項目を指すために使用した。図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点について、フローチャートまたはブロック図における各ブロックは、モジュール、セグメント、またはコードの部分を表すことがあり、それは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備える。また、いくつかの代替実装形態では、ブロックに示した機能が、図面に示した順序から外れて行われ得ることにも留意されたい。たとえば、連続して示す２つのブロックは、実際には、実質的に同時に実行されてもよく、または、それらのブロックは、時々、関連する機能に応じて、逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、および、ブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは行為を行う専用ハードウェア・ベースのシステム、または、専用ハードウェアおよびコンピュータ命令の組合せによって実装され得ることにも留意されたい。
【００６１】
本明細書で使用する術語は、特定の実施形態を説明することのみを目的とし、本発明の限定を意図するものではない。本明細書で使用する場合、単数形「ａ」、「ａｎ」および「ｔｈｅ」は、文脈上明らかに別段の定めがある場合を除き、複数形も含むことが意図されている。「含む」、「含んでいる」、「備える」、または「備えている」、あるいはそのすべての用語は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、または構成要素、あるいはそのすべての存在を規定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはそのすべての存在または追加を排除しないことは、さらに理解されよう。
【００６２】
本明細書全体にわたる「１つの実施形態」、「一実施形態」、または同様の言葉への言及は、その実施形態に関して説明する特定の特徴、構造、または特性が、本明細書内で開示する少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体にわたる「１つの実施形態では」、「一実施形態では」という言い回し、および同様の言葉の出現は、必ずしもそうではないが、すべて同じ実施形態を指すことがある。
【００６３】
本明細書で使用する「複数」という用語は、２つまたは３つ以上として定義される。本明細書で使用する「別の」という用語は、少なくとも第２以上のものとして定義される。本明細書で使用する「結合される」という用語は、別段に規定されていない限り、いかなる介在する要素もなしに直接的であるか、１つまたは複数の介在する要素とともに間接的であるかにかかわらず、接続されるものとして定義される。２つの要素もまた、機械的に、電気的に結合されるか、または、通信チャネル、経路、ネットワーク、もしくはシステムを通して通信可能にリンクされ得る。本明細書で使用する「〜または〜あるいはその両方（すべて）」という用語は、関連する列挙された項目のうちの１つまたは複数の任意およびすべての可能な組合せを指し、包含する。また、第１、第２などの用語が、様々な要素を説明するために本明細書で使用され得るが、別段に記載されていない限り、または文脈が別段に規定していない限り、これらの用語は、ある要素を別の要素と区別するためにのみ使用されるので、これらの要素は、これらの用語によって限定されるべきではないことも理解されよう。
【００６４】
「場合」という用語は、文脈に応じて、「とき」、または「すると」、または「判断することに応答して」、または「検出することに応答して」を意味するように解釈され得る。同様に、「判断される場合」、または「［記載された条件もしくはイベントが］検出される場合」という言い回しは、文脈に応じて、「判断すると」、または「判断することに応答して」、または「［記載された条件もしくはイベントを］検出すると」、または「［記載された条件もしくはイベントを］検出することに応答して」を意味するように解釈され得る。
【００６５】
添付の特許請求の範囲における対応する構造、材料、行為、およびすべての手段またはステップの均等物、さらに機能要素は、具体的に特許請求する他の特許請求する要素との組合せにおいて機能を行うための任意の構造、材料、または行為を含むことが意図されている。本明細書内で開示した実施形態の説明は、例示および説明の目的のために提示されたが、網羅的であること、または開示した形態に限定されることは意図されていない。多くの変更形態および変形形態が、本発明の実施形態の範囲および趣旨から逸脱することなく、当業者には明らかとなるであろう。実施形態は、本発明の原理および実際的な用途について最善の説明をするために、ならびに、当業者が、企図される特定の使用に適する様々な変更形態を有する様々な実施形態のための本発明の構成を理解することを可能にするために、選ばれ、説明された。
【図１】
2015530673.tif 000003
【図２】
2015530673.tif 000004
【図３】
2015530673.tif 000005
【図４】
2015530673.tif 000006
【手続補正書】
【提出日】平成27年4月30日(2015.4.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のアプリケーションが悪意のあるものであるかどうかを識別するための方法であって、
処理システム上のインストールのために提示される前記第１のアプリケーションを、検出すること、
プロセッサによって実施された静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションのユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているとき、前記第１のアプリケーションが悪意のあるものであることを示すアラートを生成すること
を含む方法。
【請求項２】
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかについて、前記静的解析が不確定であることに応答して、
前記処理システムによる前記第１のアプリケーションの実行中に、前記第１のアプリケーションのランタイム解析を行うことであって、前記ランタイム解析は、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することを含む、前記ランタイム解析を行うこと、および
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが悪意のあるものであることを示す前記アラートを生成すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが前記処理システムによって受信されたユーザ入力から受信された情報を記憶または通信することを、防止すること
をさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断すること、および
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項２または３のいずれかに記載の方法。
【請求項５】
前記第１のアプリケーションの前記ランタイム解析を行い、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することが、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの現在のユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記現在のユーザ・インターフェース・レイアウトが、前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していないとき、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの次のユーザ・インターフェース・レイアウトが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること
を含む、請求項２ないし４のいずれかに記載の方法。
【請求項６】
プロセッサによって実施された前記静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションの前記ユーザ・インターフェース・レイアウトが、前記処理システム上にインストールされた第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかを判断することが、
前記第１のアプリケーションの可能なユーザ・インターフェース・レイアウトの総数を判断すること
を含み、
前記方法が、
前記第１のアプリケーションが前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているかどうかについて、前記静的解析が不確定であることに応答して、前記第１のアプリケーションが実行されるとき、前記第１のアプリケーションのランタイム解析を行い、前記第１のアプリケーションによって実装された各ユーザ・インターフェース・レイアウトを識別し、前記第１のアプリケーションによって実装された各ユーザ・インターフェース・レイアウトが、前記第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、ならびに
前記ランタイム解析によって検出された前記第１のアプリケーションのユーザ・インターフェース・レイアウトの総数が、前記静的解析によって判断された前記可能なユーザ・インターフェース・レイアウトの総数に等しいこと、および、前記第１のアプリケーションのユーザ・インターフェース・レイアウトの各々が、前記処理システム上にインストールされた前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似していないことを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションを安全であるとして識別すること
をさらに含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記プロセッサによって実施された前記静的解析を介して、前記第１のアプリケーションをスキャンすることが、
前記第１のアプリケーションが、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるかどうかを判断すること、および
前記第１のアプリケーションが、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するように構成されるとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項１ないし６のいずれかに記載の方法。
【請求項８】
処理システム上のインストールのために提示される前記第１のアプリケーションを、検出すること、
プロセッサによって実施された静的解析を介して、前記第１のアプリケーションをスキャンして、前記第１のアプリケーションが悪意のあるものであるかどうかを判断すること、
前記第１のアプリケーションが悪意のあるものであるかどうかについて、前記静的解析が不確定であることに応答して、
前記処理システムによる前記第１のアプリケーションの実行中に、前記第１のアプリケーションのランタイム解析を行い、前記第１のアプリケーションが悪意のあるものであるかどうかを判断すること、および
前記第１のアプリケーションが悪意のあるものであることを、前記ランタイム解析が示すことに応答して、前記第１のアプリケーションが悪意のあるものであることを示すアラートを生成すること
を含む、請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するかどうかを判断すること、および
前記第１のアプリケーションが、ランタイムに、プライベート情報を含んでいる前記少なくとも１つのプロセス間通信にアクセスすることを試みるか、または要求するとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記第１のアプリケーションの前記ランタイム解析を行うことが、
前記第１のアプリケーションのランタイムに、前記第１のアプリケーションの現在のユーザ・インターフェース・レイアウトが前記第２のアプリケーションのユーザ・インターフェース・レイアウトに類似しているかどうかを判断すること、および
前記第１のアプリケーションの前記現在のユーザ・インターフェース・レイアウトが、前記第２のアプリケーションの前記ユーザ・インターフェース・レイアウトに類似しているとき、前記第１のアプリケーションが悪意のあるものであると判断すること
をさらに含む、請求項８に記載の方法。
【請求項１１】
第１のアプリケーションが悪意のあるものであるかどうかを識別するための処理システムであって、
実行可能な動作を開始するように構成されたプロセッサ
を備え、前記実行可能な動作が、請求項１ないし請求項１０のいずれかに記載の方法のすべてのステップを実行することを含む、処理システム。
【請求項１２】
デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１ないし１０のいずれかに記載の方法のすべてのステップを実行させるコンピュータ・プログラム。
【国際調査報告】
2015530673.tif 000007