特許第6019484号(P6019484)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルックアウト、アイエヌシー.の特許一覧

特許6019484サーバで結合されたマルウェア防止のためのシステムと方法
<>
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000002
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000003
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000004
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000005
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000006
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000007
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000008
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000009
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000010
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000011
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000012
  • 特許6019484-サーバで結合されたマルウェア防止のためのシステムと方法 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6019484
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月2日
(54)【発明の名称】サーバで結合されたマルウェア防止のためのシステムと方法
(51)【国際特許分類】
   G06F 21/56 20130101AFI20161020BHJP
【FI】
   G06F21/56
【請求項の数】38
【全頁数】84
(21)【出願番号】特願2013-526156(P2013-526156)
(86)(22)【出願日】2011年8月25日
(65)【公表番号】特表2013-540303(P2013-540303A)
(43)【公表日】2013年10月31日
(86)【国際出願番号】US2011049182
(87)【国際公開番号】WO2012027588
(87)【国際公開日】20120301
【審査請求日】2014年8月25日
(31)【優先権主張番号】12/868,672
(32)【優先日】2010年8月25日
(33)【優先権主張国】US
(31)【優先権主張番号】12/868,669
(32)【優先日】2010年8月25日
(33)【優先権主張国】US
(31)【優先権主張番号】12/868,676
(32)【優先日】2010年8月25日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513045448
【氏名又は名称】ルックアウト、アイエヌシー.
(74)【代理人】
【識別番号】100071054
【弁理士】
【氏名又は名称】木村 高久
(72)【発明者】
【氏名】マハフィー、ケヴィン、パトリック
(72)【発明者】
【氏名】バージェス、ジェームス、デイヴィッド
(72)【発明者】
【氏名】ゴロムベック、デイヴィッド
(72)【発明者】
【氏名】ワイアット、ティモシー、マイケル
(72)【発明者】
【氏名】ラインベリー、アンソニー、マッカイ
(72)【発明者】
【氏名】バートン、カイル
(72)【発明者】
【氏名】エヴァンス、ダニエル、リー
(72)【発明者】
【氏名】リチャードソン、デイヴィッド、ルーク
(72)【発明者】
【氏名】サロモン、アリエル
(72)【発明者】
【氏名】ヘリング、ジョン、ジー.
(72)【発明者】
【氏名】グラブ、ジョナサン、パンテラ
【審査官】 平井 誠
(56)【参考文献】
【文献】 米国特許出願公開第2004/0153644(US,A1)
【文献】 米国特許出願公開第2010/0100963(US,A1)
【文献】 特開2010−079906(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21
(57)【特許請求の範囲】
【請求項1】
モバイル通信機器上に存在するデータオブジェクトを評価するための方法であって、サーバコンピュータによって提供される評価のための方法であって、
前記サーバーコンピュータで、前記モバイル通信機器の上に存在するデータオブジェクトの少なくとも一部を識別するデータを受信する前に、前記モバイル通信機器でローカルストアに以前に格納された定義情報が、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データに対応しているかどうかを判断し、前記ローカルストアは、前記以前に格納された定義情報のための対応する評価を格納するものであり、
前記モバイル通信機器の前記ローカルストアに格納された前記以前に格納された定義情報が、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データに対応していない場合には、前記サーバーコンピュータで、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別するデータオブジェクトのデータを受信するとともに、前記モバイル通信機器に関連する機器データを受信し、
前記サーバで、データオブジェクトのための以前に格納された定義情報が、前記受信されたデータオブジェクトおよび機器データに対応しているかどうかを決定し、前記定義情報は、前記サーバによってアクセス可能にデータストアに格納され、前記データストアは、前記定義情報のための対応する評価を格納し、そして、
前記以前に蓄えられた定義情報が前記モバイル通信機器からの前記受信されたデータオブジェクトおよび機器データに対応している場合には、前記サーバで、前記以前に格納された定義情報に対応する前記モバイル通信機器上に存在する前記データオブジェクトの前記評価を提供する
ことを含む方法。
【請求項2】
請求項1記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのアプリケーションデータである方法。
【請求項3】
請求項1記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトのための行動のデータである方法。
【請求項4】
請求項1記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのメタデータである方法。
【請求項5】
請求項1記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を含んでいる方法。
【請求項6】
請求項1記載の方法において、前記以前に格納された定義データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのハッシュ識別子を含んでいる方法。
【請求項7】
請求項1記載の方法において、前記以前に格納された定義データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのパッケージ名を含んでいる方法。
【請求項8】
請求項1記載の方法において、前記以前に格納された定義データは、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を含んでいる方法。
【請求項9】
請求項1記載の方法において、前記以前に格納された定義データは、前記モバイル通信機器上に存在する前記データオブジェクトのための識別子を含んでいる方法。
【請求項10】
請求項1に記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データが、前記サーバにアクセス可能な前記データストアに格納された以前に格納された定義情報に対応していない場合には、その後、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データに対応する評価を決定するために、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データの少なくとも一部を、前記サーバによって分析し、そして、
前記サーバにアクセス可能な前記データストアに、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データに対応する評価を格納する
方法。
【請求項11】
請求項10に記載の方法において、前記モバイル通信機器上の前記データオブジェクトの少なくとも一部を識別する前記データの少なくとも一部を分析することは、前記サーバによってアクセス可能な決定コンポーネントによって分析することを含む
方法。
【請求項12】
請求項1に記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データが、前記サーバにアクセス可能な前記データストアに格納された定義情報に対応していない場合には、その後、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データに対応する評価を決定するために、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データの少なくとも一部を、前記サーバによって分析し、そして、
前記モバイル通信機器上に存在する前記データオブジェクトについての追加データを、前記サーバによって要求し、
前記モバイル通信機器上に存在する前記データオブジェクトに対応する評価を決定するために、前記モバイル通信機器上に存在する前記データオブジェクについての前記追加データの少なくとも一部を、前記サーバによって分析し、そして、
前記サーバにアクセス可能な前記データストアに、前記決定された評価を格納する
方法。
【請求項13】
請求項1記載の方法において、さらに、前記評価を提供する前記ステップの後に、前記評価が、前記モバイル通信機器上に存在する前記データオブジェクトが不適当であることを示す場合には、その後、前記サーバで、前記モバイル通信機器上に存在する前記データオブジェクトに、前記モバイル通信機器がアクセスすることを防止するために、前記モバイル通信機器に対して指令を送信することを含む
方法。
【請求項14】
請求項1記載の方法において、さらに、前記評価を提供する前記ステップの後に、前記評価が、前記モバイル通信機器上に存在する前記データオブジェクトが不適当であることを示す場合には、その後、前記サーバで、前記モバイル通信機器に対して通知を送信することを含む
方法。
【請求項15】
請求項14記載の方法において、前記通知は、警告である
方法。
【請求項16】
請求項14記載の方法において、前記通知は、前記データオブジェクトをアンインストールする指示である方法。
【請求項17】
サーバコンピュータによってモバイル通信機器上に存在するデータオブジェクトを評価するための方法であって、
前記サーバコンピュータによって前記モバイル通信機器からデータオブジェクトのデータを受信し、前記受信されたデータオブジェクトのデータは、前記モバイル通信機器上に存在する前記データオブジェクトを識別するものであり、前記モバイル通信機器に関連する機器データを受信し、
前記サーバコンピュータで、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記サーバコンピュータ上に常駐している既知の良いコンポーネントによって前記受信されたデータオブジェクトおよび機器データを分析し、
前記サーバコンピュータで、前記サーバコンピュータ上の前記既知の良いコンポーネントによる前記受信されたデータオブジェクトおよび機器データの分析が、前記データオブジェクトが許容されるとの評価を結果として生じている場合には、その後、前記サーバコンピュータで、前記モバイル通信機器が、前記モバイル通信機器上に存在する前記評価されたデータオブジェクトにアクセスすることを許容する指令を、前記モバイル通信機器に送信し、
前記サーバコンピュータで、前記サーバコンピュータ上の前記既知の良いコンポーネントによる前記受信されたデータオブジェクトおよび機器データの分析が、前記データオブジェクトが許容されるとの評価を結果として生じていない場合には、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記サーバコンピュータ上に常駐している既知の悪いコンポーネントによる前記受信されたデータオブジェクトおよび機器データを分析し、そして、
前記サーバコンピュータで、前記サーバコンピュータ上の前記既知の悪いコンポーネントによる前記受信されたデータオブジェクトおよび機器データの分析が、前記データオブジェクトが不適当であるとの評価を結果として生じている場合には、その後、前記サーバコンピュータで、前記モバイル通信機器が、前記モバイル通信機器上に存在する前記データオブジェクトにアクセスすることを防止する指令を、前記モバイル通信機器に送信する
ことを含む方法。
【請求項18】
請求項17記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記受信データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのアプリケーションデータである
方法。
【請求項19】
請求項17記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記受信データは、前記モバイル通信機器上に存在する前記データオブジェクトのための行動のデータである
方法。
【請求項20】
請求項17記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記受信データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのメタデータである
方法。
【請求項21】
請求項17記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記受信データは、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を含んでいる
方法。
【請求項22】
請求項17記載の方法において、さらに、
前記サーバコンピュータによって、前記モバイル通信機器上に存在する前記データオブジェクトを識別するデータを受信することに先がけて、前記モバイル通信機器で、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記モバイル通信機器上に常駐している既知の良いコンポーネントによって前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データを分析し、そして、
前記モバイル通信機器上に存在する前記データオブジェクトを識別するデータを受信することに先がけて、前記モバイル通信機器上の前記既知の良いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが許容されるとの評価を結果として生じていない場合には、その後、前記サーバコンピュータに対して前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データのためのメタデータを送信し、そして、前記サーバコンピュータで、前記サーバコンピュータ上の前記既知の良いコンポーネントによって、前記受信されたメタデータを分析することを続行する
ことを含む方法。
【請求項23】
請求項17記載の方法において、さらに、
前記サーバコンピュータによって、前記モバイル通信機器上に存在する前記データオブジェクトを識別するデータを受信することに先がけて、前記モバイル通信機器で、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記モバイル通信機器上に常駐している既知の悪いコンポーネントによって前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データを分析し、そして、
前記モバイル通信機器上の前記既知の悪いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが不適当であるとの評価を結果として生じていない場合には、その後、前記モバイル通信機器で、前記サーバに対して前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データのためのメタデータを送信し、そして、前記モバイル通信機器に存在する前記データオブジェクトの評価を提供するために、前記メタデータを分析することを続行する
ことを含む方法。
【請求項24】
請求項17記載の方法において、さらに、
前記サーバコンピュータによって、前記モバイル通信機器上に存在する前記データオブジェクトを識別するデータを受信することに先がけて、前記モバイル通信機器で、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記モバイル通信機器上に常駐している既知の良いコンポーネントによって前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データを分析し、
前記モバイル通信機器上の前記既知の良いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが許容されるとの評価を結果として生じていない場合には、その後、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記モバイル通信機器上に常駐している既知の悪いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データを分析し、そして、
前記モバイル通信機器上の前記既知の悪いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが不適当であるとの評価を結果として生じていない場合には、その後、前記サーバに対して前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの少なくとも一部を送信し、そして、前記サーバで、前記モバイル通信機器に存在する前記データオブジェクトの評価を提供するために、前記受信データを分析することを続行する
ことを含む方法。
【請求項25】
請求項17記載の方法において、さらに、
前記サーバコンピュータによって、前記モバイル通信機器上に存在する前記データオブジェクトを識別するデータを受信することに先がけて、前記モバイル通信機器で、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記モバイル通信機器上に常駐している既知の悪いコンポーネントによって前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データを分析し、
前記モバイル通信機器上の前記既知の悪いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが不適当であるとの評価を結果として生じていない場合には、その後、前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記モバイル通信機器上に常駐している既知の良いコンポーネントによって前記データを分析し、そして、
前記モバイル通信機器上の前記既知の良いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが許容されるとの評価を結果として生じていない場合には、その後、前記サーバに対して前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの少なくとも一部を送信し、そして、前記モバイル通信機器で、前記モバイル通信機器に存在する前記データオブジェクトの評価を提供するために、前記受信データを分析することを続行する
ことを含む方法。
【請求項26】
請求項17記載の方法において、さらに、
前記モバイル通信機器上に常駐する前記既知の良いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが許容されるとの積極的な評価を結果として生じていない場合であって、前記モバイル通信機器上に常駐する前記既知の悪いコンポーネントによる前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの分析が、前記データオブジェクトが不適当であるとの評価を結果として生じていない場合には、その後、
前記モバイル通信機器上に存在する前記データオブジェクトの評価を提供するために、前記サーバによって前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データを分析し、そして、
前記サーバによってアクセス可能なデータストア上の前記モバイル通信機器上に存在する前記データオブジェクトを識別する前記データの評価を格納する
ことを含む方法。
【請求項27】
モバイル通信機器上に存在するデータオブジェクトを評価する方法であって、前記評価は、サーバコンピュータによって提供される方法であって、
前記モバイル通信機器で、ローカルストアに以前に格納された定義情報が、前記モバイル通信機器上に存在する前記データオブジェクトに対応しているかどうかを、前記モバイル通信機器によって、判断し、
前記モバイル通信機器での前記判断が、前記ローカルストアに前記以前に格納された定義情報が、前記モバイル通信機器上に存在する前記データオブジェクトに対応していないことを示す場合には、その後、サーバコンピュータで、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別するデータオブジェクトのデータを受信し、そして、前記モバイル通信機器に関連する機器データを受信し、

データオブジェクトのための以前に格納された定義情報が、前記受信されたデータオブジェクトおよび機器データに対応しているかどうかを、前記サーバコンピュータによって、判断し、前記定義情報は、前記サーバにアクセス可能にデータストアに格納され、前記データストアは、前記定義情報のための対応する評価を格納し、
前記以前に格納された定義情報が、前記受信されたデータオブジェクトおよび機器データに対応している場合には、その後、前記サーバで、前記以前に格納された定義情報に対応する前記評価を提供し、そして、
前記サーバにアクセス可能に前記データストアに前記以前に格納された定義情報が、前記受信されたデータオブジェクトおよび機器データに対応していない場合には、その後、前記サーバによって、前記モバイル通信機器上に存在する前記データオブジェクトおよび機器データに対応する評価を決定するために、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記受信データの少なくとも一部を分析する
ことを含む方法。
【請求項28】
請求項27記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのアプリケーションデータである
方法。
【請求項29】
請求項27記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトのための行動のデータである
方法。
【請求項30】
請求項27記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトのためのメタデータである
方法。
【請求項31】
請求項27記載の方法において、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記データは、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を含んでいる
方法。
【請求項32】
請求項27記載の方法において、前記サーバによってアクセス可能な決定コンポーネントによって前記データを分析することを含む評価を決定するために、前記サーバによって、前記モバイル通信機器上に存在する前記データオブジェクトの少なくとも一部を識別する前記受信データの少なくとも一部を分析する
方法。
【請求項33】
請求項27記載の方法において、さらに、
前記サーバによって、前記モバイル通信機器上に存在する前記データオブジェクトについての追加データを要求し、そして、
前記モバイル通信機器上に存在する前記データオブジェクトに対応する評価を決定するために、前記追加データを分析する
方法。
【請求項34】
請求項27記載の方法において、さらに、前記評価を提供するステップの後で、前記評価が、前記モバイル通信機器上に存在する前記データオブジェクトが不適当であることを示している場合には、その後、前記サーバで、前記モバイル通信機器が前記モバイル通信機器上に存在する前記データオブジェクトにアクセスすることを防止するための指令を前記モバイル通信機器に送信すること
を含む方法。
【請求項35】
請求項27記載の方法において、さらに、前記評価を提供するステップの後で、前記評価が、前記モバイル通信機器上に存在する前記データオブジェクトが不適当であることを示している場合には、その後、前記サーバで、前記モバイル通信機器に対して通知を送信すること
を含む方法。
【請求項36】
請求項35記載の方法において、前記通知は、警告である
方法。
【請求項37】
請求項35記載の方法において、前記通知は、前記データオブジェクトをアンインストールするための指令である
方法。
【請求項38】
請求項35記載の方法において、前記通知は、前記モバイル通信機器が前記データオブジェクトにアクセスすることを防止する指令である
方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、一般にはモバイルのセキュリティに関し、特に、データを検出し、データがモバイル通信機器またはモバイル通信機器のグループに悪影響を与えないようにすることに関するものである。
【背景技術】
【0002】
今日のモバイル通信機器、つまり携帯電話、スマートフォン、ワイアレス対応のパーソナルデータアシスタント、タブレットPC、ネットブック、ネットブックサンドそして同類のものは、様々なソフトウェアアプリケーションのためのプラットフォームとしてより一般的になってきている。
【0003】
モバイル通信機器ユーザは現在、異なるソフトウェアアプリケーションを選び、インストールし、それによりモバイル通信機器の経験(experience).をカスタマイズすることに関し、より多くの自由を持っている。
【0004】
しかし、市場に入手可能な多数のポジティブなソフトウェアアプリケーションがあるとはいえ、サードパーティのソフトウェアを相互作用し、インストールし、操作する能力は、必然的に、モバイル通信機器を、脆弱性(vulnerabilities)、マルウェアおよび他の有害なソフトウェアアプリケーションによって影響を受け易いままにしておくことになる。
有害なソフトウェアアプリケーションから保護するウィルス対策ソフトウェアをインストールし、実行することができるデスクトップのコンピュータや他のより少ないポータブル・コンピュータ機器と違って、モバイル通信機器は、効果的に類似のソフトウェアを実行するには処理パワーあるいは資源を欠いている。
【0005】
基本的にモバイル通信機器上でスキャンする機能を提供するサード・パーティー・アプリケーションは、開発されている。しかし、これらのアプリケーションは、しばしば特別の機器や特別のオペレーティングシステムや特別の用途のためのものである。
【0006】
そういうことであり、モバイル通信機器を効率的に監視し、走査し、治療し、保護するための単一の一般的なプラットフォーム非依存型のシステムは、存在しない。
どのようなモバイル通信機器上でも動作し、ハードウェアやソフトウェアに依存せず、常にリアルタイムの保護を提供するために継続的にアップデートされることができる、そのようなシステムを提供することは、望ましいことであろう。さらに、多くのモバイル通信機器に影響を及ぼす需要と変化に対して行動し反応することができ、それ故に知的なマルウェアの保護を提供できる、付加的なシステムを提供することは、望ましいことであろう。
【0007】
多数のモバイル通信機器に共通している1つの特徴は、それらが常にネットワークに接続しているという事実である。しかし、この共通のリンクにもかかわらず、機器が、それらの両方がしばしばネットワークレベルの保護を迂回する、追加のネットワークと接続したり、暗号化されたサービスを利用することができる時には、モバイル・ネットワーク・レベルでは、完全にモバイル通信機器を守ることは難しい。
【0008】
ネットワークの上の各々のモバイル通信機器の処理とメモリの資源にだけに頼るというよりもむしろ、各々の機器の上でローカルに動いているそれらの手段にオーバーヘッドなしで、複数の機器に対してマルウェアの防止と分析手段を提供して、遠隔でモバイル通信機器を保護するシステムを提供することは望ましいことであろう。
【0009】
不適当なアプリケーションからモバイル通信機器を保護することを難しくする問題の1つは、そのような機器で利用可能な多数の異なるタイプのデータとアプリケーションがあることである。サービスプロバイダが、アプリケーションを提供することに際してネットワークのトラフィックを管理することができる間中に、アプリケーションがユーザのモバイル通信機器にインストールされてしまうとその後は、効果的にこれらのアプリケーションの挙動を監視する現在の方法が全然ない。さらなる結果として、アプリケーションがネットワークに解放されたら、新しく、これまで知られていない悪意に満ちたアプリケーションをそれらの挙動によって特定し、有害なアプリケーションとデータの拡散または配布を追跡したり、防止することは難しい。
【0010】
モバイル通信機器上でのアプリケーションのインストールと挙動についてのデータを集めるために、モバイル通信機器のグループを積極的に監視することができるシステムを提供することは望ましいであろう。
【0011】
ひとたび、そのようなシステムが適所に置かれると、ユーザに、彼らが彼らのモバイル通信機器上で実行するために選択されるアプリケーション関して、より教育的な決定を援助するために、そして、管理者とネットワークのオペレータが、個々の機器とネットワークの両方を全体として更に守るための予防手段をとることができるようにするために、モバイル通信機器について獲得されたデータと情報を使用することは望ましいことであろう。
【0012】
より安全なモバイルのアプリケーションの開発を促進するためにモバイル通信機器の挙動と活動について匿名でデータを収集する方法を開発することは、さらに望ましいことであろう。
【発明の概要】
【発明が解決しようとする課題】
【0013】
この発明は、モバイル通信機器または製法やモデルを問わない多数のモバイル通信機器、モバイル通信ネットワーク、またはモバイル通信機器に現在搭載されているソフトウエアアプリケーションに影響するかもしれない好ましくないアプリケーションまたは他のデータオブジェクトの除去を提供するためにサーバを使うための方法およびシステムに向けられたものである。
【課題を解決するための手段】
【0014】
この明細書では、モバイル通信機器保護と同様に、潜在的に望まれていないアプリケーションまたは他のデータオブジェクトの特定、分析、および除去に関連する全てのサービスは、「セキュリティ」という制限されない用語の下で説明される。従って、この発明の実施例は、従業員のグループのための多数のモバイル通信機器または特定のネットワークにアクセスする多数のモバイル通信機器などの多数のモバイル通信機器にセキュリティを提供することに向けられたものである。
【0015】
この発明の実施例は、個々のモバイル通信機器またはモバイル・ネットワークに課金することなく、モバイル通信機器の安全を保証するためにアプリケーションについての情報を利用することなく、モバイル通信機器上のアプリケーションについての情報を安全かつ確実に収集することに向けられたものである。この発明の実施例は、モバイル通信機器のための今後の製品またはサービスを開発するために使われることができるユーザまたは機器の情報を生成するために、モバイル通信機器から集まった情報を使用することに向けられたものである。
【0016】
この発明の実施例が、プロセス、装置、システム、機器、方法、コンピュータの読み取り可能な手順を含んでいるコンピュータの読み出し可能な記憶媒体などのコンピュータの読み出し可能なメディア、またはコンピュータプログラムコードとしてまたはコンピュータが使用可能なメディアから成るコンピュータプログラム製品として、それらの中で具体化されたコンピュータの読み取り可能なプログラムコードを持つものを含めて、様々な方法で実装されることができることは高く評価されるべきである。
【0017】
人は、この明細書で説明されたモバイル通信機器が、スマートフォン、PDA、タブレット、携帯電話、およびそれらも類似したもののような携帯の機器またはモバイル機器上の使用しりためにオペレーティングシステムを実行しているあらゆるコンピュータまたはコンピューティング機器をも含むことができるということを理解するでしょう。
【0018】
例えば、モバイル通信機器は、アップルiOS(登録商標)、Android(登録商標)OS,グーグルクロムOS、Symbian OS(登録商標)、Windows Mobile(登録商標) OS、Palm OS(登録商標)、Palm Web OS(登録商標)が実行されるアップルiPhone(登録商標)、アップルiPad(登録商標)、Palm Pre(登録商標)などあらゆる機器を含むことができる。この明細書では、モバイル通信機器は、またモバイル機器として、モバイルのクライアントとして、または単に機器またはクライアントと称することができる。
【0019】
この明細書の文脈の中で、コンピュータの使用可能なメディアまたはコンピュータの読み出し可能なメディアは、手順実行システム、装置、または機器に関連した、あるいは使用のためにプログラムを含むか、または蓄えることができる、いずれのメディアとすることができる。
【0020】
例えば、コンピュータ読み出し可能な記憶媒体またはコンピュータ使用可能メディアでは、情報を蓄えるためのいかなる大容量記憶装置機器、ハードディスク、CDROM、DVDROM、テープ、消去可能なプログラム化可能な読み出し専用メモリ(EPROMまたはフラッシュメモリ)、どのような磁石、電磁気、赤外線、光学式の、または電気的なシステムなどのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、または持続的なストアまたは機器とすることができるが、それらに制限されることはない。
代わりに、または加えて、コンピュータの読み出し可能な記憶媒体またはコンピュータの使用可能なメディアは、プログラムコードが例えば紙または他のメディアの光学式走査経由で電子的に捕らえられることができる時に、これらの機器または紙またはプログラムがコード化する別の適当なメディアのどのような組み合わせでもプリントされてもよく、コンパイルし、翻訳し、必要なら適当な方法で処理し、コンピュータメモリで貯蔵可能であるものであってもよい。
【0021】
アプリケーション、ソフトウェアプログラム、またはコンピュータの読み出し可能な手順はコンポーネントまたはモジュールまたはデータオブジェクトまたはデータアイテムと称することができる。
【0022】
アプリケーションは、ソフトウェアがロードされたとき、および/またはコンピュータによって実行されるときに、コンピュータが本発明を実行する装置になるように、ハード的に組み込まれているか、ハードウェアの中でハード的にコード化されているか、汎用コンピュータの上でソフトウェアを実行するソフトウエアの形式をとることができる。
【0023】
アプリケーションは、また、本発明の実施例の創造と実施を可能にするソフトウェア開発キットまたはツールキットの使用を通して、全体としてあるいは部分的にダウンロードすることができる。
この明細書において、この発明の実施例がとることができるこれらの実施や他の形式は、技術と称することができる。 一般に、開示されたプロセスのステップの順序は、発明の目的の範囲内で変更することができる。
【0024】
先に、述べたように、セキュリティサービスは、一緒に動作するサーバまたはサーバのグループによって一つまたはそれ以上のモバイル通信機器に提供することができる。複数のサーバが、この発明の目的の範囲を逸脱せずにセキュリティサービスを提供するために一緒に作用するかもしれない多くの可能な方法がある。
【図面の簡単な説明】
【0025】
この開示は一例として説明され、それによって制限されるものではなく、添付図面に示される同じ参照は同様な要素を示すものとする。
図1図1は、この発明の実施例を描いたブロック図の一例である。
図2図2は、この発明の実施例のステップを説明するフローチャートの一例である。
図3図3は、この発明の実施例のステップを説明するフローチャートの一例である。
図4図4は、この発明の実施例のステップを説明するフローチャートの一例である。 この発明のステップを説明するフローチャートの一例である。
図5図5は、この発明の実施例のステップを説明するフローチャートの一例である。
図6図6は、この発明の実施例のステップを説明するフローチャートの一例である。
図7図7は、この発明の実施例のステップを説明するフローチャートの一例である。
図8図8は、この発明の実施例のステップを説明するフローチャートの一例である。
図9図9は、この発明の実施例のステップを説明するフローチャートの一例である。 この発明のステップを説明するフローチャートの一例である。
図10図10は、この発明の実施例のステップを説明するフローチャートの一例である。
図11図11は、この発明の実施例のステップを説明するフローチャートの一例である。
図12図12は、この発明の実施例のステップを説明するフローチャートの一例である。
【発明を実施するための形態】
【0026】
このシステムの実施例は図1に示される。1つまたはそれ以上のサーバ151が1つまたはそれ以上のモバイル通信機器101と、携帯電話、ワイアレスのインターネットまたは他のネットワーク121を介して通信する。前述したように、モバイル通信機器101は、「モバイルクライアント機器」または「機器」または「クライアント」と、そして単数または複数の形式で称することができる。
【0027】
一つまたはそれ以上のサーバ151は、一つまたはそれ以上のモバイル通信機器101のためにセキュリティ情報を蓄えているデータストレージ111にアクセスできる。
【0028】
データ、アセスメント情報、モバイル通信機器101についての情報、またはストレージのための他のオブジェクトは、サーバ151および/またはデータストレージ111上に格納することができる。
サーバ151またはデータストレージ111は、単数であるか、複数であるかもしれず、また有形であるか、仮想的なものとすることができる。
データストレージ111は、データベース、データ表、データ構造、ファイルシステム、または他のメモリストアとすることができる。
データストレージ111は、一つまたはそれ以上のサーバ151のいずれにも主催することができるか、一つまたはそれ以上のサーバ151がデータストレージ111にアクセスできる限り一つまたはそれ以上サーバ151から外面的に存在することができる。
実施例では、データストレージ111は、シンプルストレージサービス(S3)またはアマゾンWebサービスによって提供された他の製品、LLCなどのサードパーティによって提供された外部のサービスである。
【0029】
図1において説明されたシステムの配置は、制限されたものではなく、単に模範的なものであり、他の配置が、この発明からかけ離れないものであれば可能であると理解するであろう。
【0030】
モバイル通信機器101とサーバ151の間の通信が、さまざまなネットワーキングプロトコルとセキュリティ手段を利用することができると理解するであろう。
実施例では、サーバ151は、HTTPサーバとして動作し、機器101は、HTTPクライアントとして動作する。通信の際データを保障するために、モバイル通信機器101とサーバ151は、トランザクションレイヤセキュリティ(“TLS”).を使うことができる。さらに、モバイル通信機器101が、サーバ151にアクセスすること、および/または、モバイル通信機器101の同一性を確認する権限を持っていることを保証するために、機器101は、1つまたはそれ以上の識別子または認証証明書をサーバ151に送ることができる。例えば、認証証明書は、ユーザーネームとパスワード、機器固有の証明書またはサーバ151に対してモバイル通信機器101を識別する他のいかなるデータを含むことができる。
【0031】
認証は、サーバ151が、モバイル通信機器101またはモバイル通信機器101に関連したアカウントに特有な情報を蓄えること、およびモバイル通信機器101にカスタマイズされたサービスを提供すること、およびモバイル通信機器101のセキュリティ状態の持続的な検証を維持することを可能にすることができる。
【0032】
モバイル通信機器101のためのセキュリティサービスを提供するために、当業者は、モバイル通信機器101が一定のデータをサーバ151に送信するであろうことを理解するであろう。以下でより詳細に説明されるように、サーバ151は、このデータを分析し、評価、反応、および/または他の行動に関連するセキュリティを提供するであろう。
【0033】
以下では、モバイル通信機器101からサーバ151に送信されたデータの形式およびサーバ151によって実行される分析およびモバイル通信機器101によってあるいはモバイル通信機器101 と一緒にとられる行動を説明する。
【0034】
この発明の実施例が、モバイル通信機器101上で独立して存在することができること、あるいは2008年10月21日に出願されて、ここに全部に組み入れられた、“SYSTEM AND METHOD FOR MONITORING AND ANALYZING MULTIPLE INTERFACES AND MULTIPLE PROTOCOLS,”という名称の米国特許出願No.12/255,614中で説明されたもののように、モバイル通信機器に固有の既存のセキュリティシステムに組み入れられることができるということを理解するであろう。
【0035】
当業者は、また、さまざまなモバイル通信機器のプラットフォームの上のこの発明の実施例を実装するために、2008年10月21日に出願されて、ここに全部に組み入れられた“SYSTEM AND METHOD FOR A MOBILE CROSS PLATFORM SOFTWARE SYSTEM,”という名称の米国特許出願No.12/255,626に開示されたもののように、クロス・プラットフォームのシステムに組み入れることが必要であることができることを理解するであろう。
【0036】
さらに、以下でより説明されるように、この発明の形態は、2008年10月21日に出願されて、ここに全部に組み入れられた、“SECURE MOBILE PLATFORM SYSTEM,”という名称の米国特許出願No.12/255,632中で説明されたように、モバイル通信機器101のためのセキュリティ状態を決定するために使用することができる。
【0037】
当業者は、モバイル通信機器がさまざまな形式のデータに晒されていることを理解するであろう。このデータは、ネットワークデータ、ファイル、実行可能および非実行なアプリケーション、Eメール、そしてモバイル通信機器に対して通信することができるか、モバイル通信機器によって受け取ることができるか、モバイル通信機器もインストールできる他の形式の対象物を含んでいる。
【0038】
モバイル通信機器は、また一般的に、ブルートゥース、WiFi、赤外線、ラジオ受信機、およびそのようなものを含む1つまたはそれ以上のネットワークインタフェースを介してデータを送信し、データを受信する。同様に、データは、層化された通信プロトコルまたはTCP/IP、HTTP、ブルートゥースなどのプロトコルのセットの中に閉じ込められることができる。現在、デスクトップ・コンピュータとラップトップ・コンピュータで利用可能な現在のサーバクライアントセキュリティモデルは、多数のモバイル通信機器に対して適正な評価とセキュリティを提供するために、それらの機能を拡張することができない。
【0039】
この発明は、モバイル通信機器を評価し、保護するために使うことができる少なくとも2つの形式のデータを想定する。最初の形式のデータは、たとえば「機器データ」のようなモバイル通信機器についてのデータを含む。
【0040】
機器データは、状態、機能、オペレーティングシステム、ファームウェアバージョン、メモリ容量、利用可能な通信ポート、バッテリ制限、ハードウェアの特徴、およびユーザーによるカスタマイズがされていない全ての同様な機器に共通とすることができる他の情報に付随している。機器データは、それが製造元、サービスプロバイダ、またはITサービスから受信するときに、機器のためのデフォルトの仕様書を含むことができる。機器データは、それらが全て一応アップグレードされた後に、すべての同様なモバイル通信に共通する状態の情報を含むことができる。
【0041】
以下でさらに説明されるように、機器データは、脆弱性が、無防備な通信ポート、オペレーティングシステムの功績、機器固有の攻撃、およびそれらに類似したもののために存在しているかどうかにかかわらず、評価するために使うことができる。
【0042】
モバイル通信機器を評価するために使うことができる2番目の形式のデータは、モバイル通信機器にインストールされるか、モバイル通信機器で実行されることができる特定のアプリケーション、ファイル、またはオブジェクトに付随しているデータである。ここで使用されるように、このデータは「アプリケーションデータ」と称される。アプリケーションデータは、データオブジェクトと、行動のデータまたはメタデータなどのデータオブジェクトについての情報の両方を含む。
【0043】
データオブジェクトは、一定のモバイル通信機器に特徴的であるかもしれないアプリケーションパッケージを含む。例えば、iPhone OS機器は、一般にIPAファイルまたはAPPパッケージを使い、アンドロイドOS機器は、一般にAPKファイルを使い、Windowsモバイル機器は、一般にCAB、EXE、またはDLLのファイルを使い、シンビアンOS機器は、一般にSISファイルを使う。
【0044】
機器は、また、Java仮想コンピュータ上で実行することができるAdobe’sフラッシュランタイムまたはJARファイルの根底にあるSWFフォーマットなどのクロス・プラットフォームのアプリケーションフォーマットをサポートすることができる。
【0045】
アプリケーションデータは、マルウェアまたはスパイウェアであり、従って、モバイル通信機器に悪影響を及ぼすデータオブジェクトを含む。マルウェアおよびスパイウェアは、アプリケーション、ファイルおよびモバイル通信機器に悪影響を与えるかあるいは情報を盗むように意図的に設計された他のデータオブジェクトを含む。アプリケーションデータはまた、極悪な理由で設計はされていないがコード化欠陥または機器に悪影響を与える他の問題を有しているであろうデータオブジェクトを含む。アプリケーションデータはまた、様々な理由のために不適当であるかもしれないデータオブジェクトを含む。
例えば、データオブジェクトは、それがプライバシーを損い、機器のバッテリやネットワークの接続に過度の負担をかけるため、および/または好ましくないコンテンツを持っているため、不適当であるかもしれない。ここで使用されるように「データオブジェクト」は、「データアイテム」と称することができる。いずれの用語の使用も、データを、いかなる1つの形式に制限することを意図するものではない。
【0046】
アプリケーションデータは、データオブジェクトについてメタデータを含む。例えば、メタデータは、データオブジェクト自身というよりも特定のデータオブジェクトについての情報である。
【0047】
メタデータは、データオブジェクトがストアされ、データオブジェクトのハッシュ、データオブジェクトの名称、独自の識別子が存在するか、あるいはGUIDまたはUUIDなどのデータオブジェクト、暗号の署名者情報あるいは認証された許可の段階のようなデータオブジェクトに関連したセキュリティ情報に関連づけれており、データオブジェクトの特徴がインストールされるか、モバイル通信機器のオペレーティングシステムに統合する、モバイル通信機器のファイルシステム上の場所を含む。
【0048】
データオブジェクトのためのメタデータは、またURLがダウンロードされるなどのデータオブジェクトが到来する場所、アプリケーションの市場がダウンロードされる場所、メモリカードがインストールされるかストアされる場所を含むことができる。メタデータは、またアプリケーションの市場から取り出されることができる。
【0049】
市場のメタデータと呼ばれるようなメタデータは、ダウンロード数、データオブジェクトに関するユーザのコメント、データオブジェクトの説明、データオブジェクトによって要求された許可、データオブジェクトのためのハードウェアまたはソフトウェアの要求、データオブジェクトの作者についての情報、データオブジェクトの価格、言語、データオブジェクトによってサポートされる言語、市場が提供することができる他の情報のようなデータオブジェクトに関する情報を含む。
【0050】
実施例では、アプリケーションデータは、また行動のデータを含む。行動のデータは、メモリの使用率、バッテリの使用量、ネットワークの使用量、ストレージの使用率、CPUの使用率、APIの使用量、エラー、キャッシュ、例えばリモートのホストアドレスおよびポートなどに接続されるネットワークサービス、ランタイムライブラリリンクなどのモバイル通信機器資源を、いかにしてアプリケーションがそれらと対話するか、あるいは使用するかについての情報を含む。
【0051】
行動のデータは、また、アプリケーションが実行されるとき、プロセスまたはインストールされたアプリケーションとの間でのメッセージおよび通知書などのモバイル通信機器のオペレーティングシステムの機能をアプリケーションがどのように利用するかについての情報を含む。
【0052】
以下でさらに説明されるように、機器データとアプリケーションデータの両方は、格納されたデータ(例えばインストールされたアプリケーション)かあるいは機器を通過するデータに基づいた機器のセキュリティの評価を提供することに有益である。
【0053】
当業者は、機器データとアプリケーションデータが、単に、モバイル通信機器を守るためか、またはモバイル通信機器と関連した他の機能を提供するために、使用できる形式のデータの一例であると理解するであろう。他の形式のデータは、また、この発明の範囲を逸脱せずに開示されるシステムによって評価されることができる。ここで使用されるように、「評価」という用語は、データオブジェクトの演算または演算の結果を評価するか、そうでなければ更に理解するために使用することができるデータオブジェクトに関連している情報と称される。
【0054】
例えば、評価は、アプリケーションが悪意に満ちているかまたは悪意に満ちていないか、あるいは悪いかまたは良いか、あるいは危険であるまたは安全であるか、若しくはアプリケーションがブラックリストまたはホワイトリストの上で出現することができるという決定を含むことができる。
【0055】
評価は、セキュリティ格付け、プライバシー格付け、性能格付け、品質格付け、データオブジェクトに対するバッテリの影響の格付け、データオブジェクトに対する信頼性の格付け、データオブジェクトに対するデータの配列などの格付けおよびデータオブジェクトのためのデータの分類または性格付けを含むことができる
評価は、サーバ151によってデータを収集すること、および/またはデータを処理することで結果が得られるあろうし、API、ユーザインターフェイス、データ給送装置または他の方法を介してサーバ151によって、ユーザまたは他のシステムに晒されるであろう。評価のための予めの説明が、どのような様式にも制限することを意図するものでないことを理解するであろう。
【0056】
A. 機器データの収集
以下は、この発明の実施例に関連して、いかにして機器データとアプリケーションデータが収集されて、格納されるかに関する説明である。
【0057】
一般に、以下の説明は、ネットワーク121におけるサーバ151とモバイル通信機器101の間の通信を含むものである。これらの通信がされている間に送信されたか、または受信されたいかなるデータも、サーバ151またはデータストレージ111に格納することができる。実施例では、データストレージ111またはサーバ151にで格納されたデータは、システムで知られている特定のアカウントまたは機器と関連するものである。
【0058】
データと機器またはアカウントの間の関連は、サーバー151に対して、以前に受信したデータに基づいたアカウントまたは機器のために最適に調整された機能を提供することを可能にすることができる。実施例では、データのいくつかまたは全てが、特定のアカウントまたは機器に対して匿名でサーバ151またはデータストレージ111に格納される。
【0059】
例えば、サーバ151またはデータストア111上でのデータの調査が、特定のアカウントまたは機器に対して匿名のデータで拘束しないように、プライバシー目的のために匿名で格納することができる。しかし、機器は、この匿名のデータを居留させ、アップデートすることができる。 匿名は、以下でさらに詳しく説明される。
【0060】
実施例では、サーバ151は、情報を、要求された情報によって応じるであろうモバイル通信機器101に対して要求するであろう。実施例において、モバイル通信機器101は、分析と評価のために機器データ、および/またはアプリケーションデータをサーバ151に送信するであろう。例えば、モバイル通信機器101のユーザは、彼の機器にファイルをダウンロードすることを望むであろうが、ファイルをインストールすることに先行して、ファイルが悪意に満ちているかあるいは違った形で不適当であるかをチェックするためにサーバ151にファイルに関連したファイルまたは識別データを送ることを望むであろう。サーバ151は、いずれのモバイル通信機器101にでも利用可能なセキュリティの評価を提供するために、その時に、この受信した情報を分析するであろう。
【0061】
別の例では、いかにして、評価されたデータオブジェクトが、モバイル通信機器の性能または行動、データオブジェクトの平均的なバッテリの影響または平均的なネットワーク使用法などの情報を含んでいる評価に影響するであろうかを知ることは有益であろう。
【0062】
実施例では、サーバ151は、分析の後に、データオブジェクトの評価を格納して、多くの方法で、これらの評価へのアクセスを提供することができる。
【0063】
サーバ151によって実行された分析は、以下でさらに説明されるであろう。 サーバ151によって提供される評価の情報へのアクセスのプロセスは、また以下でさらに説明されるであろう。
【0064】
ネットワークの通信量についてネットワーク121とサーバ151の負担を抑制するために、様々な方法が、サーバ151によって要求されるかあるいはサーバ151に送信されるデータ量を減らすために使うことができる。例えば、分析のためにアプリケーションファイルまたはアプリケーションパッケージなどのデータオブジェクト全体を送信するというよりもむしろ、ハッシュした機能またはハッシュアルゴリズムがデータに適用されることができ、データの結果のハッシュがサーバ151に送信することができる。
【0065】
サーバ151は、データオブジェクトを独自に識別するためにハッシュを使うことができる。サーバが以前にハッシュによって識別されたデータオブジェクトの評価を実行したならば、それがまだ有効ならば、サーバ151は、その以前の評価を取り戻すかもしれない。サーバ151がデータオブジェクトのためにまだ評価を実行していないならば、サーバ151は、評価が未知であることを示す反応を取り戻すかもしれず、および/または追加のデータをモバイル通信機器101に要求することができる。
【0066】
当業者は、ハッシュアルゴリズムが任意のデータ量を固定された長さの識別子に変換するであろうことと理解するであろう。例えば、SHA-1ハッシュアルゴリズムは、任意の量の入力データを、160ビットのハッシュに整理することができる。
【0067】
別の例では、データオブジェクトのハッシュの他にメタデータが、データオブジェクト自身の代わりに送信されるかもしれず、例えば、アプリケーションのためのメタデータはアプリケーション全体というよりもむしろ評価のために送信することができる。
【0068】
パッケージ名、アプリケーション名、ファイル名、ファイルサイズ、要求された許可、暗号化された署名、ダウンロードソース、UUIDなどの独自の識別子、および他の情報などのメタデータは、多くの場合、データオブジェクトのために情報を識別するに十分であるであろう。従って、サーバ151が適切な識別情報を受信するならば、それは、データオブジェクトが不適当であるかどうかを決定することができる。
【0069】
当業者は、データオブジェクト全体をサーバ151に送信することなく、サーバ151が機器101にインストールされたデータオブジェクトが悪意に満ちているかどうかを決定するやり方で、データオブジェクトを識別する様々な方法があることを理解するであろう。
【0070】
この発明の実施例では、サーバ151は、完全なデータオブジェクトというよりもむしろデータオブジェクトの一部を要求することができる。ネットワーク121がネットワークの通信量によって負担のないように、データオブジェクト全体が、増大して送信されることができる。代わりにまたは加えて、サーバ151は、特定のアプリケーションについての情報を要求することができるが、このアプリケーションをそれぞれ有しているモバイル通信機器のグループに質問することができる。
【0071】
この方法で、サーバ151は、1つのモバイル通信機器からデータの一部または大部分を受信するかもしれず、必要であれば2番目のモバイル通信機器からデータの他の部分を受信することができる。
【0072】
サーバ151は、このようにして、いかなるモバイル通信機器に負担をかけることなくアプリケーション/ファイルのデータを有している多数のモバイル通信機器から情報が受信され、それによって情報が貯留されるときに、この情報を集めることができる。
【0073】
この方法の例は、以下でさらに説明される。
【0074】
図2は、モバイル通信機器101とサーバ151の間のさまざまな形式のデータの送信の一般的な概要である。
【0075】
図2がブロック201中で示しているように、モバイル通信機器101は、アプリケーションデータを、このデータを受け取る(ブロック203)サーバ151に送信する。この実施例では、サーバ151がモバイル通信機器101についての以前に格納された識別または認証の情報を参照し、モバイル通信機器101に関連したデータを格納し、検索し、そして他のモバイル通信機器と特にモバイル通信機器101を識別するか、認証することができるように、モバイル通信機器は、識別または認証の情報をサーバ151に送信する。
【0076】
実施例では、サーバ151は、通知書をモバイル通信機器101に送信する(ブロック205)。この通知書は、警告、メッセージ、手順、またはモバイル通信機器101に特有なアプリケーションデータまたは機器データに関連した他の情報とすることができる。実施例では、通知書は、最初はサーバ151によって不適当であると評価はされなかったがサーバ151によって後で不適当であると決定されたデータオブジェクトに一致しているアプリケーションデータを既に送信した機器に与えられるべきである。ブロック207中で、モバイル通信機器101は、通知書を受け取り、ブロック209中で、モバイル通信機器101は、通知書に基づいた行動をとる。以下でより詳細に説明されるように、そのような行動は、モバイル通信機器101上の1つまたはそれ以上の機能またはアプリケーションを非活性化することを含むことができる。
【0077】
当業者は、モバイル通信機器101とサーバ151の間の相互影響が、サーバからモバイル通信機器への通信だけでなくモバイル通信機器からサーバーへの通信を含むことができると理解するであろう。例えば、実施例では、サーバ151はモバイル通信機器101からアプリケーションデータを受信することができるが、サーバ151は、評価を提供するか、通知書を送信する前に追加の情報を要求することができる。ブロック211中で、サーバ151は追加の情報をモバイル通信機器101に要求することができる。
モバイル通信機器は要求を受信し(ブロック213)、サーバー151によって要求されたとおりの追加の情報を収集して (ブロック215)、ブロック217に示すように、追加の情報をサーバ151に送信する。 ブロック219中で、サーバ151は、要求された追加の情報を受信する。 必要であれば、このプロセスは繰り返すことができることを理解するであろう。
【0078】
図 3〜図7は、より詳細に、アプリケーションデータと機器データの送信と収集を示す。
【0079】
図3は、サーバ151がモバイル通信機器101上に格納されたデータオブジェクトの変化を評価する実施例を表したものである。
図3において、モバイル通信機器101は、特定のデータオブジェクトの変化を検出する(ブロック301)。当業者は、データオブジェクトの変化を検出することが、システム・コールまたはファイルシステム操作、ファイルシステムまたは他のデータオブジェクトの変化の聴取者を傍受し、パッケージ管理システム(例えばアンドロイド(登録商標)に専用のPACKAGE_UPDATED、および/またはPACKAGE_REPLACED)からイベントを受け取り、ファイルシステムまたはデータオブジェクトを列挙することが可能な他のシステムにデータオブジェクトのために投票するようなメカニズムを含むことができることを理解するであろう。
【0080】
変化を検出するための他の技術をまた使用することができる。代わりにあるいは加えて、モバイル通信機器のユーザによる要求の上またはモバイル通信機器でデータオブジェクトを分析し、評価するための前に設定されたスケジュール上で、データオブジェクトへの変化が検出される時に、以下の方法をとることができる。
【0081】
実施例において、データオブジェクトの変化は、データオブジェクトが追加されるか、または取り除かれるか、または修正されるのいずれの時をも含む。データオブジェクトのためのアプリケーションデータを送信した後に、モバイル通信機器101は、データオブジェクトのためのアプリケーションデータの送信が成功したことを記録する前に、サーバからの確認を待つ。モバイル通信機器101からデータオブジェクトのためのアプリケーションデータを受信した後に、サーバ151は確認を送信する。
【0082】
送信にエラーがあったか、またはデータ自身によってエラーがあったならば、サーバ151は、エラーを戻す。データオブジェクトのためのアプリケーションデータを送信した後に、モバイル通信機器101が、サーバ151からエラーを受信するか、または、いずれの返答も受信しないならば、モバイル通信機器101は、データオブジェクトのためのアプリケーションデータが送信されたことを記録しないであろうし、モバイル通信機器101は、将来のある時点でデータを送信することを再度試みることができる。当業者は、モバイル通信機器が、時々ネットワークと接続することができないか、送信の途中でネットワークの接続が中断されたであろうことを認めることであろう。このように、モバイル通信機器101が、サーバ151でデータオブジェクトのためのアプリケーションデータの受信に成功したかどうかを記録することは、信頼できる情報収集システムの機能にとって重要なことである。実施例では、データオブジェクトのためのアプリケーションデータがモバイル通信機器101から送信されず、サーバ151によって受信されないときはいつでも、変更されるべきと考えられ、送信される必要があると考えられる。
【0083】
実施例では、モバイル通信機器101は、それが通信されて、サーバ151が機器上に存在する1つまたはそれ以上のデータオブジェクトのためのアプリケーションデータの受信に成功したかどうかを格納する。いずれのデータオブジェクトがサーバ151に報告された適切なアプリケーションデータを有していたかを確認するために、モバイル通信機器101は、機器がそれらのデータオブジェクトのためのアプリケーションデータを送信する必要があるかどうかを決定するために、サーバ151に成功されて報告されているデータオブジェクトのための識別情報を含んでいるデータベースを格納することができる。
【0084】
例えば、ファイルシステム上のファイルであるデータオブジェクトは、その内容のハッシュによって識別することができる。データオブジェクトが最初にモバイル通信機器101にインストールされる時に、データベースはデータオブジェクトのためのデータを全然含ませないことができる。データオブジェクトのための識別情報がないために、モバイル通信機器101は、データオブジェクトを新しいと認識し、データオブジェクトのためのアプリケーションデータを、オブジェクトが新しいことを示しているサーバ151に送信する。
【0085】
データオブジェクトのためのアプリケーションデータをサーバ151に送信して、サーバがアプリケーションデータの受信に成功したとの確認を受け取った後に、機器は、ファイルがデータベースに備わっているファイルシステム上の位置とファイル内容のハッシュを格納する。
【0086】
データオブジェクトが、削除されるべきであったならば、モバイル通信機器101は、以前に格納されたファイルシステムの位置にファイルがないことを検出でき、ファイルシステム位置および/またはデータオブジェクトのためのハッシュの識別情報を報告することによって、サーバ151に対してデータオブジェクトの削除を報告することができる。
【0087】
アップデートされているアプリケーションの場合などのようにファイルが修正されるべきであったならば、モバイル通信機器は、ファイルシステム上の以前に格納された位置にファイルがあることを検出することができるが、ファイルの内容のハッシュは、格納されている内容のハッシュと合致することがない。このケースでは、モバイル通信機器101は、ファイルの位置によって識別されたデータオブジェクトおよび/または以前の内容のハッシュがアップデートされたことをサーバに報告し、ファイルの新しい内容のハッシュを報告することができる。
【0088】
実施例において、モバイル通信機器101にインストールされたセキュリティシステムは、データオブジェクトの評価を受信する目的のために、データオブジェクトのためのアプリケーションデータをサーバ151に対して報告することができる。モバイル通信機器が、悪意に満ちている新しいアプリケーションをダウンロードするならば、セキュリティシステムができるだけ早くこの新しいアイテムを検出することが重要となる。
【0089】
サーバ151は、新しいアプリケーションを分析し、その結果に基づいて対処をとることができるセキュリティの評価を提供することができる。別の例では、アプリケーションの最初のバージョンは安全であるかもしれないが、アプリケーションの2番目のバージョンは、悪意に満ちているかもしれない。それが2番目のバージョンの新しい評価を生み出し、最初の評価をただ報告しないように、セキュリティシステムが、このアップデートがアプリケーションの最初のバージョンと異なるものであると認識することは重要なことである。
サーバ151は、アップデートされたアプリケーションを分析して、その結果に基づいて対処をとることができるセキュリティの評価を提供することができる。
【0090】
図3のブロック303中で、モバイル通信機器101は、モバイル通信機器のための識別情報をサーバ151に送信する。実施例では、識別情報は、認証された情報である。
【0091】
実施例では、識別情報は、秘密であると考えられない機器IDなどの機器のための正式のものでない識別子である。実施例では、識別情報は、モバイル通信機器(たとえば、製作、型、ハードウェアの特徴)のための機器情報を含む。さらに、モバイル通信機器101は、変化されたデータオブジェクトのための情報を送信する。そのような情報は、メタデータ(例えばハッシュ、パッケージ名、ファイル名、ファイルパス、暗号法の署名者、UUIDなどのユニークな識別子)およびそれらに類似したものなどのデータオブジェクトのための識別情報を含ませることができる。
【0092】
ブロック305中で、サーバ151は、モバイル通信機器101のための識別子と、変化されたデータオブジェクトのための情報を受信する。受信データは、サーバの上またはデータストレージ111上にて、サーバ151によって格納される(ブロック307)。実施例では、サーバ151によって受信されたデータのうちいくつかだけが格納される。ブロック309中で、ここに明らかにされる技術または米国特許出願No.12/255,621からの技術のいずれでも使用することで、サーバ151は、変化されたデータオブジェクトのための評価を提供し、その評価はここで全て具体化される。
【0093】
評価は、手順、および/または安全かあるいは悪意に満ちているかあるいは未知であることとして、変化されたデータオブジェクトにラベルを付けられた分類を含ませることができる。
【0094】
実施例では、受信データのいくつかまたは全てがサーバ151またはデータストレージ111上で格納されて、データを送信した機器に関連づけられる。例えば、これは、後で、サーバ151をして、機器がいずれのアプリケーションに遭遇したかを決定することを可能にすることができる。別の実施例では、受信データのいくつかまたは全てが、サーバが情報を特定の機器に直接結び付けることができない方法でサーバ151またはデータストレージ111上で格納される。例えば、サーバ151は、特定の機器またはアカウントに対してどのようなリンクもなしで受信データを格納することができる。別の実施例では、データは、格納される時に、サーバによってデータが識別子に関連づけられて、機器に匿名で関連づけられることができる。
【0095】
サーバ151が、格納されたデータを特定の機器と関連づけることができないことを保証するために、識別子は、データを送信している機器のみに知られているだけであり、機器がデータを送信する時はいつでも、サーバに提供される。識別子が決してサーバ151またはデータストレージ111上で特定の機器またはアカウントと直接リンクしないように、サーバは、この識別子を格納しない。
【0096】
実施例では、サーバ151は、サーバ上またはデータストレージ111上に、評価の結果を格納する。もしもデータオブジェクトのための評価がブロック309で必要とされていて、データオブジェクトのための以前の評価が存在していて、妥当であると考えられている場合には、新しい評価を実行する代わりに、サーバ151は、データストレージ111から以前の評価を取り出す。もしも評価が同じハッシュ、または同じパッケージ名、または同じ暗号法の署名者、または同じファイルパスによってデータオブジェクトと関連しているかを含めて、各オブジェクトと関連しているメタデータがさまざまな方法で合致しているならば、評価は、同じデータオブジェクトのためであると考えられるであろう。ブロック311中で、評価は、モバイル通信機器101に送られる。モバイル通信機器101は、サーバ151からこの評価を受信して(ブロック313)、それから評価を処理するか、適切な行動をとる(ブロック315)。
【0097】
サーバ151が、先を見越して、評価が変化して、それによってモバイル通信機器101による行動を要求するデータオブジェクトを再調停する通知書または指示を送ることができることにおいて、当業者は、モバイル通信機器101とサーバー151の間の相互作用が動的であることを理解するであろう。
【0098】
図4はそのような実施例を説明している。 図4のブロック401中で、モバイル通信機器101は、特定のデータオブジェクトにおける変化を検出する。
【0099】
ブロック403中で、モバイル通信機器101は、機器のための識別情報と、変化されたデータオブジェクトについての情報をサーバ151に送信する。サーバ151は、モバイル通信機器101のための識別情報と、変化されたデータオブジェクトについての情報を受信する(ブロック405)。
【0100】
ブロック407中で、サーバ151は、サーバ上にあるいはデータストレージ111上に、変化されたデータ情報を格納する。ブロック409中で、サーバ151は、変化されたデータオブジェクトを分析して、評価するかもしれず、評価をモバイル通信機器101に報告することができる(ブロック411)。既に説明したように、評価がすでにデータオブジェクトのために実行されたならば、その以前に実行された評価が、評価を再実行する代わりに取り出されて、使用されることができる。サーバ151が評価を報告するならば、モバイル通信機器101は、ブロック413中で評価または他の通知を受信して、評価を処理する(ブロック415)。
実施例では、データオブジェクトのための評価を、変えることができる。例えば、以前に安全であるかまたは未知であるとして評価されたであろうデータオブジェクトは、後になって、いくつかのこれまで知られていなかった脆弱性を引き起こすか、ネットワーク乱用またはバッテリ消耗などの不適当な行動を引き起こして、悪意に満ちていると認定することができる。
【0101】
ブロック417中で、サーバ151が、以前に分析されたデータオブジェクトのための評価の中に変化を検出するならば、ブロック419中で、サーバ151は通知書または改善手順または同類のものをモバイル通信機器101に送信することができる。モバイル通信機器101は、サーバ151から通知書を受信し(ブロック421)、それから、推奨された行動または改善手順を実行する(ブロック423)。ブロック425中で、モバイル通信機器101は、要求された行動を実行したという確認を送信し、サーバ151はそれを受信する(ブロック427))。
【0102】
実施例では、データオブジェクトが、モバイル通信機器上に存在すると決定されているならば、通知書は、モバイル通信機器151に伝えられるだけである。実施例では、モバイル通信機器101が現在データオブジェクトを有しているか、あるいはデータオブジェクトのための評価を以前に要求したかどうかを決定することをサーバ151に許容してサーバ151は、サーバ151上またはデータストレージ111上に情報を格納する。
【0103】
当業者は、図4が、いかにしてサーバ151が評価の変化をモバイル通信機器に報告することができるかについての単なる一例を提供するものであると理解するであろうし、いくつかのステップは、この開示からかけ離れない範囲で省略することができる。例えば、モバイル通信機器は、確認をサーバ151に送信することなく改善手順または他の要求された行動を実行することができる。
【0104】
実施例では、サーバ151は、モバイル通信機器101からの特定のデータオブジェクトについての追加情報を要求することができる。例えば、モバイル通信機器101は、変化されたデータオブジェクトについての情報をサーバ151に送ることができる。しかし、送信された情報は、サーバ151にとって決定的な分析を実行するに不十分であるであろう。
図5は、この実施例を説明する。 図5のブロック501中で、モバイル通信機器101は、データオブジェクトが変化したことを検出し、サーバー151に対して、変化されたデータオブジェクトのための情報と共にモバイル通信機器101のための識別情報を送信する(ブロック503)。
【0105】
サーバ151は、モバイル通信機器101のための識別情報と、変化されたデータオブジェクトのための情報を受信して(ブロック505)、サーバー上またはデータストレージ111上に、変化されたデータオブジェクトのための情報を格納する(ブロック507)。
【0106】
ブロック509中で、サーバ151は、それが変化されたデータオブジェクトについての追加情報を要求するかどうかを決定する。例えば、サーバ151は、変化されたデータオブジェクトが安全であるか悪意に満ちているかを評価することを試みることができるが、決定的な評価を提供することができない(すなわち評価は「未知」という結果となる)。
【0107】
評価を開始しさえすることに十分なデータがないならば、サーバ151が評価を実行する前あるいは評価が全く確定しないで、あるいはデータ不足で戻した後に、より多くの情報が必要であるかどうかの決定を実行することができる。追加情報が必要とされているならば、サーバ151は、追加情報をモバイル通信機器101に要求することができる(ブロック511)。
【0108】
図5のブロック513中で、モバイル通信機器101は、追加情報の要求を受信して、要求された情報を収集して(ブロック515)、それから、追加情報をサーバ151に送信する(ブロック517)。実施例では、追加情報は、データオブジェクトのための行動のデータと、データオブジェクトのための内容などのデータオブジェクトのためのアプリケーションデータを含む。ブロック519中で、サーバ151は、モバイル通信機器101から追加情報を受信して、追加情報を格納する(ブロック521)。サーバ151は、それから、モバイル通信機器101に送信されるであろう評価(ブロック523)を提供するために、追加情報により、変化されたデータオブジェクト情報を分析することができる(ブロック525)。ブロック527中で、モバイル通信機器101は、サーバ151から、変化されたデータオブジェクトの評価を受信して、それから、評価を処理する(ブロック529)。
【0109】
実施例では、モバイル通信機器101は、追加情報をサーバ151に送信することを選択することができる。例えば、サーバ151はデータオブジェクトを分析することができるが、決定的な評価を提供しないことができる。追加情報をモバイル通信機器101に要求するというよりも、機器は、サーバ151にデータオブジェクトのための追加情報を提供することによって、追加の評価を要求することができる。 図6はこの実施例を説明する。
【0110】
図6のブロック601中で、モバイル通信機器101は、データの変化を検出すると、ブロック603中で、モバイル通信機器101は、それの識別情報と、変化されたデータオブジェクトのための情報をサー151に送信する。ブロック605中で、サーバ151は、モバイル通信機器101のための識別情報と、変化されたデータオブジェクトのための情報を受信する。この情報は、サーバ上またはデータストレージ111上に、サーバ151によって格納されて(ブロック607)、それから、評価を結果として残すためにサーバ151によって分析される(ブロック609)。
【0111】
ブロック611中で、サーバ151は、評価または適切な通知書をモバイル通信機器101に送信する。モバイル通信機器101は、サーバ151から評価を受信する(図6のブロック613)。ブロック615中で、モバイル通信機器101は、データオブジェクトについての追加情報を送信するかどうかを決定する。例えば、サーバ151は、利用可能に与えられたデータによってオブジェクトのための評価を作り出すことができないかもしれず、それから、評価を作り出すことができるためには、より多くの情報を必要とする。
【0112】
ブロック617中で、モバイル通信機器101が、それがデータオブジェクトについての追加情報を送信すべきであると決定するならば、それから、この情報が収集される。ブロック619中で、モバイル通信機器101は、追加情報をサーバ151に送信し、サーバ151はこの情報を受信して(ブロック621)、受信した追加情報を格納する(ブロック623)。モバイル通信機器101が追加情報と共に識別情報を送信するのであるから、追加情報は以前にサーバ151によって受信された情報に付随するであろうことを、サーバ151は知ることになるであろうということを、理解することであろう(ブロック605) 。
【0113】
図6のブロック625中で、サーバ151は、モバイル通信機器101から受信された追加情報を分析する。実施例では、追加情報は、以前に受信された情報によって分析されることができる(ブロック605)。ブロック627中で、サーバ151は、評価をモバイル通信機器101に送信して、モバイル通信機器101は、評価を処理する(ブロック629)。モバイル通信機器101が未だ、追加情報を送る必要があるのであれば、必要に応じて、プロセスを繰り返すことができる。
【0114】
以前に言及したように、サーバ151は、大多数のモバイル通信機器にアクセスできるかもしれず、それらのいくつかが同じアプリケーションプログラムまたはデータオブジェクトを実行するか、格納することができる。1つのモバイル通信機器からデータオブジェクト情報を要求することは、単一のモバイル通信機器だけでなくネットワークの上の他の機器にも影響を与えて、ネットワークの通行を引き起こすことがある。
【0115】
実施例では、サーバ151が、1つより多いモバイル通信機器の上に格納されるデータオブジェクトについての情報を必要としているならば、サーバ151は、1つの機器に頼るというよりもモバイル通信機器のそれぞれから必要とされる情報の一部を収集することができる。一番目と2番目のモバイル通信機器を用い、従って2つ以上のモバイル通信機器からのデータ収集を最適化する実施例を、図7は、説明する。
【0116】
図7のブロック701中で、一番目のモバイル通信機器は、データオブジェクトにおける変化を検出する。データオブジェクトは、2番目のモバイル通信機器の上で、また発見されるが、同じ変化を再現することができるし、そうでないとすることもできる。一番目のモバイル通信機器は、その識別情報と、その変化されたデータオブジェクトのための情報をサーバ151に送信する(ブロック703)。
【0117】
ブロック705中で、サーバ151は、変化されたデータオブジェクトのための情報と共に一番目のモバイル通信機器のための識別情報を受信する。この情報は、サーバ151によって格納される(ブロック709)。ブロック711中で、サーバ151は、それがデータオブジェクトについての追加情報を必要としていることを決定する。ブロック713中で、サーバ151は、サーバ151が、また、データオブジェクトのための追加情報と同様にデータオブジェクトを格納することを知っている2番目のモバイル通信機器を識別する。
【0118】
図7のブロック715中で、サーバ151は、2番目のモバイル通信機器からデータオブジェクトのための追加情報を要求する。この要求は、2番目のモバイル通信機器によって受信される(ブロック717)。これに応答して、2番目のモバイル通信機器は、追加情報を収集するであろうし(ブロック719)、それから、追加情報をサーバ151に送信する(ブロック721)。
サーバ151は受信して(ブロック723)、サーバ151上またはデータストレージ111上に、2番目のモバイル通信機器からのデータオブジェクトについての追加情報を格納して(ブロック725)、それから、評価をする1番目のモバイル通信機器から以前に受信した情報とともに、この追加情報を分析する(ブロック727)。
【0119】
この評価は、1番目のモバイル通信機器に送信され(ブロック729)、1番目のモバイル通信機器は、評価を受信して(ブロック731)、評価を実行する(ブロック733)。関連しているものであるならば、サーバ151がまた評価を2番目のモバイル通信機器に送信することができると理解するであろう。
【0120】
実施例では、サーバ151は、複数の機器から追加情報を収集することができる。実施例では、サーバ151は、以前にサーバによって格納された機器情報とアプリケーションデータを分析することによって、追加を要求するいずれかの機器を決定する。例えば、それがスパム目的のためにSMSを乱用しているかどうかを決定するためにSMSメッセージングのアプリケーションの使用を特徴付けるために、サーバ151は、以前に、それらがアプリケーションをインストールしたことを報告した多くのモバイル通信機器からアプリケーションによって送られたSMSメッセージのカウントを要求することができる。
【0121】
実施例では、サーバは、最初に機器からデータオブジェクトについての情報を受信するのを待つことなく評価を生み出すためにデータオブジェクトを分析することを試みる。代わりに、サーバは、他のソースからデータを受信して、データオブジェクトのための評価を作成するために、先を見越して情報を1つまたはそれ以上の機器に要求することができる。
【0122】
実施例では、収集され、モバイル通信機器101によってサーバ151に送信されるデータオブジェクトのためのアプリケーションデータは、データオブジェクトについての行動のデータを含ませることができる。分析中などのサーバー151によるそのようなデータの使用法は、下記にてさらに深く説明される。
【0123】
行動のデータは、それが機器の上で走った時に、データオブジェクトがなしたことについての情報を含ませることができる。
【0124】
行動のデータの例は、データオブジェクトによって起こされたネットワーク接続についての情報 (例えばサーバ名、ソース/終点アドレス、接続ポート、接続の持続、接続プロトコル、送受信されたデータ量、および接続の数、接続の頻度、データオブジェクトのためのネットワークインタフェースの情報、作成されたDNSの要求)、走ったときのデータオブジェクトの行動(例えばシステム・コール、APIコール、使用されたライブラリ、プロセス間の通信コール、送信されたSMSメッセージの数、送信されたEメールメッセージの数、表示されたユーザーインターフェイスについての情報、アクセスしたURL)、データオブジェクトによって引き起こされたオーバーヘッド(例えば、使用されたバッテリ、使用されたCPUの時間、送信されたネットワークデータ、使用されたストレージ、使用されたメモリ)を含む。
【0125】
他の行動のデータは、特定の行動が起こった時(例えば、データオブジェクトがSMSメッセージを送った時に、電話のスクリーンがオフになったかどうか、それがリモートサーバに接続した時に、ユーザがデータオブジェクトを使用していたかどうか)の文脈を含む。
【0126】
行動のデータが走るたびに、たくさんの量の行動のデータがデータオブジェクトによって生成されるので、モバイル通信機器にとって、可能な行動のデータのすべてを収集したり送信したりしないことが重要となる。さもなければ、行動のデータの収集と送信は、機器101、サーバ151およびネットワーク121上の資源を過剰に利用することになるであろう。
【0127】
実施例では、モバイル通信機器101が収集して送信するデータオブジェクトのための行動のデータのいずれかの形式を制限し、データオブジェクトが最後に変化してからの期間に基づき行動のデータを収集して送信する頻度の程度を制限する。
【0128】
例えば、データオブジェクトが最初にモバイル通信機器にインストールされる時に、機器は、毎日入手可能な行動のデータの全ての量のデータを収集して送信することができる。データオブジェクトのインストールに続く1週間後に、機器は、行動のデータの制限されたサブセットを毎週の間隔でしか送信することしかできない。インストールの1ヶ月後に、機器は、最小の量の行動のデータを毎月の間隔でしか送信することしかできない。
【0129】
実施例において、データオブジェクトが、アップデートされること(例えば、違うバージョンにアプリケーションをアップデートする)があったならば、機器は、毎日、行動のデータの完全な範囲を送信して、1週間の後、および/または1ヶ月の後に、収集され、送信されるデータの範囲と頻度を減らすことができる。実施例において、サーバ151は、環境設定を、機器が行動のデータの特定のタイプを、特定の頻度で送信するように要求しているモバイル通信機器101に送信する。機器が、データオブジェクトのために行動のデータを収集するか、および/または送信するかを決定することができるように、機器は、環境設定を格納する。実施例では、環境設定の情報は、特定のデータオブジェクトに対して特有のものである。実施例では、環境設定の情報は、機器によって遭遇された全てのデータオブジェクトのためのものである。実施例では、サーバが、不必要に収集されて送信された行動のデータを最小化することができるように、サーバ151は、機器から特定のデータオブジェクトのための行動のデータを要求する。
【0130】
実施例では、サーバ151は、機器101からサーバ151への行動のデータの収集と送信に影響を与える。たとえば、サーバが、機器が現在データオブジェクトを有していることを示す情報を有しているならば、そして、データオブジェクトをより一層よく評価するために、サーバが、更なる行動のデータが必要であるならば、サーバ151は、データオブジェクトのための行動のデータを要求するためにインストラクションをモバイル通信機器101に送ることができる。
【0131】
実施例では、サーバ151は、すでに行動のデータを報告した機器の数に基づいてオブジェクトのための行動のデータが必要であることを決定する。例えば、サーバは、確信のある評価を有するために各データオブジェクトのための行動のデータを報告するように少なくとも100個(100)の機器を必要とすることができる。実施例では、異なる機器によって報告された行動のデータの相違は、どれくらいの数の行動のデータが、評価を確信のものにするために必要であるかを決定するために使用される。例えば、30個(30)の全ての機器が小さな相違でデータオブジェクトによってバッテリ使用量を報告したのであるならば、サーバはそのオブジェクトのために、もはやこれ以上の行動のデータを要求しないであろう。しかし、それらの30個(30)の機器がバッテリ使用量の幅広い相違を提示したのであるならば、サーバは、行動のデータを200個(200)の機器に要求することができる。
【0132】
実施例では、データが正常な限界の外側にあるのであれば、モバイル通信機器は、行動のデータを送信することしかできない。実施例では、限界は、全てのデータオブジェクトにとって普遍的なものである。 それが動いている時間の50%より多くの間、データオブジェクトが少なくとも1回のオープンな接続を維持しているならば、またはデータオブジェクトが24時間の期間に1メガバイトを超えるデータを送信するならば、モバイル通信機器がデータオブジェクトネットワーク接続のための行動のデータを送信するように、例えばネットワーク使用上の限界を、設定することができる。
【0133】
実施例では、サーバ151は、アップデートされた限界の情報を機器に送信することによってモバイル通信機器101上の限界をアップデートすることができる。実施例では、限界は、1つまたはそれ以上のデータオブジェクトに特有のものとすることができる。
【0134】
例えば、機器は、それが行動のデータを送るであろうデフォルトの限界のセットを有しているかもしれないが、サーバは、ハッシュ、暗号法の署名者、パッケージ名、またはファイルシステム位置などの情報を識別することを介してそのデータオブジェクトを識別して、特定のデータオブジェクトのための限界を送信することができる。
【0135】
アップデートされた限界は、機器に、限界のデフォルトのセットよりも多少の行動のデータを送信することを指示することができる。例えば、モバイル通信機器は、決して行動のデータを送らないために履行を怠ることができる。新しいデータオブジェクトが機器にインストールされる時に、機器は、サーバにデータオブジェクトと関連したインストールのイベントとメタデータを報告する。
【0136】
サーバが他の機器から行動のデータを介してすでにデータオブジェクトを特徴付けていたならば、サーバは、もしデータオブジェクトがこれらの限界を逸脱するならば、モバイル通信機器がサーバに、逸脱された行動のデータを送信するがごとく、限界を、他の機器(例えば、1日あたり100キロバイトのデータよりも少なく使用し、決して、SMSメッセージを送らず、決して、Eメールを送らない)上でデータオブジェクトの典型的な行動が特徴づけられている機器に送ることができる。そのような逸脱は、利用されて、特徴がない行動をとりはじめる合法なアプリケーションの場合または一定の時間の後に悪意に満ち始めるだけの時限爆弾のアプリケーションの場合に有益であろう。
【0137】
実施例では、モバイル通信機器101からサーバ151に送信されたデータは、ユーザープライバシーを保護するために、機器、ネットワーク、またはサーバの資源の乱用を防止するために、または他の理由のために、限定的である。いくつかの例の環境設定は、データが機器101からサーバー151にどんなアプリケーションを送信するか、何回アプリケーションデータが送信されるか、そして最初の送信が万一失敗であるならば、どのようにアプリケーションデータが再送信されるかを選択することを含むものである。
【0138】
環境設定の例は、さらに、識別するだけの情報(例えば無追加のメタデータまたは行動のデータ)を送信することを含むものである。決してどのようなアプリケーションデータも送信せず、決してデータオブジェクトコンテンツを送らず、データオブジェクトのソースに基づいたデータオブジェクトのためのアプリケーションデータを送信するだけであるのを含むかもしれない。1日あたりある程度のアプリケーションデータを送信しているだけであったり、1日あたり1つのデータオブジェクトの容量を送っているだけであったり、行動のデータあたり1日あたり一度に最大に、行動のデータを送信したりあるいは同様のものを含むかもしれない。
【0139】
当業者は、追加の環境設定が、本発明の開示の範囲を逸脱せずに可能であると認めることであろう。実施例では、環境設定は、一定の送信を行っているだけの機器によって、および/または機器から一定の要求をしているだけのサーバによって、モバイル機器101、および/またはサーバー151で、実施することができる。実施例では、環境設定は、1つまたはそれ以上のパーティーによってコントロールされる。例えば、環境設定は、モバイル通信機器101上にあるサーバ151またはソフトウェアによって自動的に設定されるか、サーバ151経由で管理者によってコントロールされて、および/またはモバイル機器101経由でユーザによってコントロールされるようにすることができる。.
実施例では、環境設定の一部は、違うパーティーによってコントロールされる。例えば、データオブジェクトがサーバ151に報告されるかどうかを、ユーザは、コントロールすることができるかもしれないが、サーバ151上の管理者は、すべての機器についてセキュリティシステムのバッテリ使用量を最適化するように、行動のデータを報告する頻度をコントロールすることができる。
【0140】
実施例では、それが、そのコンテンツまたは行動のデータなどのデータオブジェクトのためのアプリケーションデータを送信する要求を受け取る時に、モイル通信機器101上のソフトウェアは、ユーザーインターフェイスダイアログを表示する。
【0141】
上記述べたように、データオブジェクトの内容の要求は、全体の内容か、または内容の一部とすることができ、その要求は、一部が要求されているならば、内容のいずれかの一部を特定するものである。
【0142】
表示されたユーザーインターフェイスダイアログは、アプリケーションデータが送信されるべきデータオブジェクトを特定して、機器のユーザに、送信を許すか、拒絶するかのチャンスを与えることができる。
【0143】
実施例では、ダイアログは、ユーザが機器に将来のデータオブジェクトのために各自の決定を記憶させることを可能にする。実施例では、ダイアログは、送信されるアプリケーションデータについてのより詳細な情報を閲覧することをユーザに許し、プライバシー方針、プライバシー説明、またはどうデータが送信されて、格納されて、使われるかを記述している他のコンテンツにリンクしているようなデータを送信することのプライバシーの意味を理解する方法をユーザに提供する。
【0144】
実施例では、サーバ151が評価を作り出すために、より多くの情報を必要とするというであるという指示を受信するときに、モバイル通信機器は、データオブジェクトを送信することを試みる。この例では、機器がデータオブジェクトを送信することを試みるときに、データオブジェクトの内容を送信できるかどうかを選択することを機器ユーザに促すように、機器はユーザーインターフェイスダイアログを表示することができる。実施例では、メタデータまたは行動のデータなどの他の形式のアプリケーションデータが、ユーザ認証を必要とせずに送信される間、データオブジェクト容量などの一定の形式のアプリケーションデータのいくつかの試みられる送信が、認証のためのユーザーインターフェイスダイアログを結果として生じせることになる。
【0145】
特定のアプリケーションが複数のデータオブジェクトを利用するかもしれないために、アプリケーションが全体として分析されることができるように、モバイル通信機器101、および/またはサーバ151が複数のデータオブジェクトをグループ分けすることは望ましいことであろう。
実施例では、モバイル通信機器101またはサーバ151は、複数のデータオブジェクトの間でアプリケーションデータを比較することによって、グループ分けを実行することができる。 例えば、データオブジェクトをグループ分けするために使用されるアプリケーションデータは、データオブジェクトが共にランタイムまたは動的にリンクされるどうか、
いかにしてデータオブジェクトをインストールされたかどうか(例えば同じインストーラからのデータオブジェクトは同じグループになるであろう)、複数のデータオブジェクトが同じファイルシステムのディレクトリの中にあるかどうか、そしてデータオブジェクトが、暗号化された署名を共有しているかどうかを含む。
【0146】
例えば、アプリケーションインストーラは、モバイル通信機器の上のファイルシステムに実行形式と複数のライブラリを抽出することができる。モバイル通信機器101は、データオブジェクトのグループ分けを考慮して共通のインストーラを使用することができ、行動のデータ(以下で説明される)を収集することの使用のためにグループ分け情報を格納することができる。
【0147】
サーバ151がグループを認識するために、各データオブジェクトのアプリケーションデータは、共通のインストーラのための識別情報を含ませることができる。 サーバ151は、分析の間、効率的にグループ分け情報にアクセスするために、明示的にサーバ151上またはデータストレージ111上に、グループ分けの関係を格納することができる。
【0148】
複数のオブジェクトが単一のプロセスの文脈の中など一緒に実行する時に、行動のデータがいつも1つのデータオブジェクトに帰することにはならないので、機器オペレーティングシステムがざらついた行動のデータをサポートしないか、他のメカニズムを通しているのであれば、モバイル通信機器101が複数のデータオブジェクトをグループ分けし、一緒にグループのための行動のデータを報告することは望ましいことであろう。
実施例では、モバイル通信機器101は、グループ分けされたデータオブジェクトが関連することを示している情報を送信して、一緒にグループ分けされたデータオブジェクトのためのアプリケーションデータをサーバー151に送信する。
【0149】
例えば、モバイル通信機器上のプロセスが、異なるベンダから複数のコンポーネントをロードしてネットワークデータが1つのプロセスレベル当りで収集することができて、および/または、プロセスが、既知の悪意に満ちたサーバと接続していることを検出するならば、プロセスにおいてロードされたすべてのコンポーネントにとって、気に障るコンポーネントをサーバによって決定して特定することは望ましいことであろう。
【0150】
モバイル通信機器101が、行動のデータ(プロセスが接続したIPアドレスなど)をプロセスのために収集するときに、サーバにプロセスと関連するデータオブジェクトのすべてのために、機器は識別情報を報告する。サーバがデータオブジェクトのグループのための行動のデータを受信するときに、それが、複数の機器から行動のデータを分析して、特定のデータオブジェクトを含んでいるグループだけが悪意に満ちたサーバと接続するであろうことを決定することであろう。.従って、悪意に満ちたサーバと接続することが結果として生じているデータオブジェクトだけが、悪意に満ちていると考えられるであろう。
【0151】
実施例では、モバイル通信機器が特定のデータオブジェクトの行動についての気に障る情報を提供しないのあれば、機器のための行動のデータは全体として、機器にインストールされたすべてのデータオブジェクトのグループを代表するものとしてサーバに送信することができる。例えば、オペレーティングシステムが1つのプロセスあたりバッテリ使用量の情報を提供しないならば、そのオペレーティングシステムを実行している機器は、サーバ151に対して各機器のために、各機器にインストールされたアプリケーションのリストと全体のバッテリ寿命を送信することができる。
【0152】
どのアプリケーションがより良くあるいはより悪くバッテリの寿命と相関しているかどうか、そして機器にインストールされる時にバッテリの寿命への各アプリケーションの寄与を評価するかを決定するために、サーバは、それから、このデータについての分析を実行することができる。グループにおける複数のデータオブジェクトが、異なる行動のデータ収集の環境設定を持っている実施例では、モバイル通信機器は、環境設定を一緒に結合することであろう。
【0153】
例えば、モバイル通信機器101が、1つのデータオブジェクトのために毎日大量の行動のデータを報告するように設定されるものの別のデータオブジェクトためには異例の行動のデータを報告するだけのために設定されており、データオブジェクトがグループ分けされているならば、機器は2つの環境設定を結合して、グループのために大量の行動のデータを報告することができる。代わりに、2番目のデータオブジェクトが、プライバシー理由のために決して行動のデータを報告しないように設定されているならば、いずれの行動のデータも、グループにとってプライバシー強制を満たすために報告されないであろう。
【0154】
当業者は、サーバ151またはモバイル通信機器101によって送信されるデータ、つまりメタデータ、行動のデータ、設定情報、行動のデータ限界、グループデータ、追加データの要求、通知書、およびデータの他の形式が、バイナリフォーマットあるいは非バイナリのフォーマットを使用してフォーマットされることができると理解することであろう。
【0155】
例は、XML、JSONで、またはURIの一部として、データをフォーマットすることを含む。 データは、TCP、UDP、DNS、よびHTTPを含むさまざまなプロトコルを使用して、送信することができる。 他のフォーマット、および/またはプロトコルは、この開示からからかけ離れない範囲で、使用することができる。
【0156】
上記は、いかにしてデータが1つまたはそれ以上のモバイル通信機器から収集され集められるかの様々な制限しない例である。情報収集を最適化するための技術は、また以上にて明らかである。述べたように、サーバ151が、分析されたデータの評価を提供することができるように、モバイル通信機器101は、上記で説明されたデータのいくつかまたはすべてを、分析のためにサーバ151に送信することであろう。
【0157】
以下のセクションは、分析技術の制限しない例を説明する。当業者は、以下の例と開示が、ここで説明された方法を使用して収集されたデータを使用し、データの他の形式が送信される一方で、この開示が、ここで説明されたデータに制限されないということを理解するであろう。
B. 情報収集システム
当業者は、サーバ151が、データオブジェクトを分析し、評価を生成することにおける使用のために、モバイル通信機器以外のソースからデータを受信することができることを理解するであろう。
【0158】
図10は、サーバ151が複数のソースからデータを受信して、多重使用のための評価情報を送信する実施例を説明する。
【0159】
複数のサーバーが、ここに明らかにされた機能を提供するために、協同して実行するであろうことを強調するために、1つまたはそれ以上のサーバ151が、「クラウド」として説明される。複数の機器101が、情報をサーバ151に送信し、サーバ151 から受信するであろうことを強調するために、1つまたはそれ以上のモバイル通信機器101が、グループとして説明される。
【0160】
上で明らかにされたように、1つまたそれ以上のモバイル通信機器101がデータオブジェクトのためのアプリケーションデータをサーバ151に送信することができ、機器101は評価データ、詳細な情報の要求、通知書およびそのようなものをサーバ151から受信することができる。
【0161】
モバイル通信機器からデータを収集することに加えて、サーバ151はさまざまなデータ収集システムからデータオブジェクトに関連する情報を受信することができる。そのようなシステムは、サーバ151と別にすることができるし、あるいはサーバ151の一部とすることができる。. 実施例では、データ収集システムは、データベース、サーバ151上の他のストレージまたはデータストレージ111を、1つまたはそれ以上のデータオブジェクトのための情報で直接アップデートする。 実施例では、サーバ151に対して情報を提供するために、データ収集システムは、サーバ151と通信する。サーバ151へのデータ給送として使用することができる多くの形式のシステムが存在する。いくつかの例は、ウェブクローラー1003、アプリケーションマーケットプレイスデータ収集システム1005、ハニーポットおよびモバイル機器アプリケーションに関連した情報をサーバ151に伝えることができる他のシステムを含む。
【0162】
実施例では、ウェブクローラ1003は、モバイル通信機器上で走ることができるデータオブジェクトをダウンロードし、データオブジェクトについての情報を検索して、両方をサーバ151に伝える。.例えば、ウェブクローラ1003は、モバイルアプリケーションを主催するウェブサイトを捜すためにサーチ・エンジンを利用することができる。クローラ1003がモバイルのダウンロードを主催しているサイトを識別したならば、クローラは、それらのサイト上で入手可能なWebページを取り出し、追加のページを取り出すことを決定するために、各ページのコンテンツを調査する。例えば、モバイルのダウンロードサイトの上のあるページは、データオブジェクトをダウンロードするためのリンクと同様に他のページへのリンクを含むかもしれない。モバイル通信機器(例えばPCソフトウェア)に影響しないインターネットの上に、入手可能な多くのコンテンツがあるので、モバイル機器に関連しているサーバ151に情報を送信するだけであることは、データ収集システムにとって望ましいことであろう。
【0163】
実施例では、クローラ1003は、ダウンロードして利用可能かあるいは既にダウンロードされているデータオブジェクトがモバイル通信機器上で走ることができるかどうかを識別することができる。例えば、クローラ1003は、URLがモバイルのアプリケーションパッケージ(たとえばSIS、APK、CAB、IPA)に対応していることを示している具体的なストリングのためにダウンロードURLを調査することができる。
【0164】
別の例では、それがモバイル通信機器に影響するかどうか、そしてもしそうであれば、それが特定のモバイルのプラットフォームに影響するかどうかを決定するためにダウンロードされた後に、クローラ1003はデータオブジェクトを調査することができる。この場合に、それがどのようなモバイルのプラッとフォームとでも互換の実行可能なコードを含んでいるかどうか、または、特定のモバイル機器のプラットフォームのために典型的であるデータを含んでいるかどうかを、クローラ1003は、その名前などの特徴のためにダウンロードされたデータオブジェクトを調査することができる。
【0165】
実施例では、ウェブクローラ1003は、データアイテムに関するマーケットプレイスメタデータを収集し、マーケットプレイスメタデータをサーバ151に送信する。いくつかの例のマーケットプレイスメタデータは、ウェブサイトからダウンロードされて入手可能なデータオブジェクト、データオブジェクトのためのユーザ格付けおよびコメント、購入して入手可能であればデータオブジェクトの価格、データオブジェクトがダウンロードされた回数、データオブジェクトの作者についての情報およびウェブサイト上で入手可能なデータオブジェクトに関する他の情報を含む。
【0166】
以下で説明されるように、与えられたデータオブジェクトがどこで入手可能であるかは、データオブジェクトがどれほど信頼できるかを決定するために使用することができる。例えば、評判が良い会社のウェブサイトから入手可能なデータオブジェクトは、モバイル機器のフォーラムにフォーラムユーザの1人によってアップロードされたデータオブジェクトよりも信頼できると考えられる。
【0167】
多くのモバイルアプリケーションがモバイルのアプリケーションマーケットプレイス経由で入手可能であるだけなので、サーバ151が、アプリケーションマーケットプレイスで入手可能なデータオブジェクトについての情報を受信することは重要であろう。
【0168】
実施例では、アプリケーションマーケットプレイスデータ収集システム1005は、モバイルのアプリケーションマーケットプレイスからデータオブジェクトのためのデータオブジェクトコンテンツとマーケットプレイスメタデータなどのデータオブジェクトについての情報を検索し、情報をサーバ151に報告する。
【0169】
実施例では、アプリケーションマーケットプレイスデータ収集システム1005は、サーバ151の一部である。 代わりの実施例では、アプリケーションマーケットプレイスデータ収集システムは、サーバ151とは別である。アプリケーションマーケットプレイスは、しばしばモバイルのプラットフォームベンダ(たとえばアンドロイドマーケットプレイス、ブラックベリーアプリワールド、アップルアプリストア、ノキアOviストア)またはサード・パーティー(GetJar、Handango)によって提供されて、独自のAPIを使うことができる。 実施例では、アプリケーションマーケットプレイスデータ収集システム1005は、独自のプロトコル経由でアプリケーションマーケットプレイスサーバと通信するために設定される。
【0170】
サーバ151によって使用可能な方法でサーバ151に対してアプリケーションマーケットプレイスサーバから受信されたデータを送信するために、アプリケーションマーケットプレイスデータ収集システム1005は、サーバ151が分析のために利用することができるフォーマットへ独自のフォーマットからデータオブジェクトのためのアプリケーションデータを変換することができる。例えば、アプリケーションアプリケーションマーケットプレイスは、アプリケーションのためにユーザのコメントと格付けにアクセスするためにAPIを提供することができる。しかし、このAPIによって戻されたデータは、別のアプリケーションマーケットプレイスのコメントデータと異なるかもしれない。
【0171】
別の例では、データ収集システムが、繰り返しそれを質問する必要がないように、アプリケーションマーケットプレイスは、先を見越してデータをマーケットプレイスデータ収集システム1005に送信することができる。サーバ151が、複数のアプリケーションマーケットプレイスからコメントデータを分析することができることを可能にするために、アプリケーションマーケットプレイスデータ収集システム1005は、サーバ151への送信のために、異なってフォーマットされたコメントデータを、標準のフォーマットに変換することができる。
【0172】
実施例では、アプリケーションマーケットプレイスデータ収集システム1005は、「バッテリの消耗」、「クラッシュ」、「プライバシー設定」、「上手くいかない」、「電話番号」、「コンタクト」などのユーザーレビューの中の一定の用語を検索することができて、それらはアプリケーションを既知の悪さと見なすために使うことができたり、あるいは、ここで説明されるシステムコンポーネントを用いてアプリケーションの信頼性を確立するために使うことができる。
【0173】
代わりの実施例では、アプリケーションマーケットプレイスデータ収集システム1005は、すべてのコメントデータを集めることができ、コメントデータの分析は、サーバ151によって実行することができる。 同様に、サーバ151またはアプリケーションマーケットプレイスデータ収集システム1005は、データオブジェクトのために積極的なレビューまたはスコアを認識することができ、従ってデータオブジェクトのための評価および/または信頼性を改善することが可能である。
【0174】
データオブジェクトの情報の収集を自動化することに加えて、サーバ151が人の情報1007を受け入れることは重要なことであろう。 そのような情報は、モバイルのアプリケーションベンダにとって、具体的なキーワード、または疑い深いこととしてモバイルのアプリケーションを分類するであろうヒューリスティックスなどの他の特徴のために主体の信頼スコアを含むであろう。
当業者は、この開示の範囲を逸脱せずに、モバイル機器のためにデータオブジェクトの分析に関連した他の形式の情報が、人によって提供可能であることを認識するであろう。実施例では、サーバ151は、特定のデータオブジェクト、データオブジェクトのグループ(例えば特定の開発者からのデータオブジェクト、特定のプラットフォーム上の全てのデータオブジェクト)に関し、または全体としての分析システム(例えばアップデートされた分析ヒューリスティックス)のために、誰かがサーバ151に提供するであろう情報によって、ユーザーインターフェイスを提供する。 実施例では、誰かが提供するであろう特定のデータオブジェクト、データオブジェクトのグループについてのまたは分析システム全体にとっての情報によって、ユーザーインターフェイスを提供する。
【0175】
この分離したサーバは、ユーザーで提供された情報をサーバ151に送信し、サーバ151は、サーバ151上またはデータストレージ111上にそれを格納する。実施例では、分離されたサーバは、直接ユーザで提供された情報によってデータストレージ111を直接アップデートする。
【0176】
図10は、いかにサーバ151が外部システムに対してデータオブジェクトについての情報を提供するかについて説明する。
【0177】
実施例では、サーバ151によって提供された情報は、リスト、データ送給、リポート、またはファイアウォールあるいはウイルスの定義などのフォーマットされたデータとして、または他の形式で、API経由で送信されることができる。実施例では、サーバ151は、アプリケーションマーケットプレイス1009に対してデータオブジェクトについての情報を提供する。例えば、サーバ151は、マーケットプレイス1009に、マーケットプレイス1009に存在する悪意に満ちたデータオブジェクトのリストを提供することができる。
【0178】
別の例では、サーバ151は、データオブジェクトが悪意に満ちると考えられるかあるいは違った形で不適当であると考えられるかを決定するために、アプリケーションプレイス1009が識別情報(例えばデータオブジェクトのコンテンツのハッシュ)をサーバ151に対して送信することができるAPIを、サーバ151は晒すことができる。
【0179】
実施例では、ネットワークセキュリティインフラストラクチャ1011がネットワークレベルで悪意に満ちているか、望まれていないアプリケーションを防ぐことができるように、サーバ151は、ネットワークセキュリティインフラストラクチャ1011にデータを提供する。例えば、ネットワークレベルで保護することによって、インストールされたセキュリティソフトウェアを有していないモバイル通信機器さえも保護される利益が得られるであろう。
【0180】
実施例では、サーバ151は、脅威のサインをネットワークセキュリティインフラストラクチャ1011に送信する。そのような脅威サインは、例えば望まれていないアプリケーションのハッシュ、望まれていないアプリケーションのための2進シーケンス、望まれていないアプリケーションのパッケージ名、悪意に満ちたサーバまたは攻撃者を塞ぐファイアウォール規則、および「Snort」などのネットワークセキュリティシステムのための規則といったさまざまな形式を取ることができる。
【0181】
実施例では、サーバ151は、データ給送装置1013という形でデータを提供する。
【0182】
データ給送装置1013は、サーバのデータ収集からまたはさらなる分析(以下で説明される)からのいずれでも、サーバ151またはデータストレージ11で利用可能なさまざまなデータを含むであろう。例えば、無作法な振る舞いをまたは口ぎたないアプリケーションを識別するために、与えられたしきい値よりむしろネットワークトラフィックを使用するいかなるデータオブジェクトのリスト、最も流行した悪意に満ちたデータオブジェクトのリスト、潜在的に悪意に満ちたアプリケーションを識別するためのヒューリスティックスのセットなどの標準とマッチしているアプリケーションのリストなどである。
【0183】
C. サーバ側の分析システム
データオブジェクトの評価または他の有用な出力形式を生成するために、サーバは、分析のさまざまな方法を使用することができる。実施例では、サーバが1つまたはそれ以上のソースからデータオブジェクトについて収集された情報にアクセスできるので、サーバは、データオブジェクトのための評価を生成するための情報を処理することができる。
【0184】
図11は、サーバ151がデータオブジェクトのためのアプリケーションデータを集めて、情報を格納して、データオブジェクトのための特徴付けと分類を生成して、評価情報を生成するためにデータオブジェクトを評価し、評価情報を送信する実施例を説明するものである。
【0185】
図11のブロック1101中で、アプリケーションデータ(例えばデータオブジェクトのコンテンツ、メタデータ、行動のデータ、マーケットプレイスメタデータ)は、データオブジェクトのために収集される。収集するための可能な方法と収集されたデータの形式のいくつかが、上記のとおり説明された。 そのような方法は、機器から、ウェブサイトから、アプリケーションマーケットプレイスから、人々から、そして他のソースから収集されたデータを含むことができる。ブロック1103中で、データが、それが収集される時とは異なった時間に使用することができるように、データオブジェクトのためのアプリケーションデータは、サーバ151またはデータストレージ111上に格納される。
【0186】
ブロック1105中で、機器データは、収集されて、サーバ151またはデータストレージ111上に格納される(ブロック1107)。評価、分類、および説明がデータのソースを考慮することができることを報告した機器のためにアプリケーションデータと結び付くことは、機器データにとって望ましいことであろう。
【0187】
例えば、アプリケーションが、特殊な形式の機器にインストールされる時に誤動作するならば、特殊な形式の機器がデータを提供したものと同様の機器によって提供されたアプリケーションデータを分析することは、サーバ151とって重要なことである。
【0188】
In an embodiment, when application data is stored 1103 it is associated with device data for the device that provided it. 実施例では、アプリケーションデータがブロック1103で格納されたときに、それを提供した機器が機器データと関連づけられる。 例えば、機器101がアプリケーションデータをサーバ151に送信する時に、機器101のために以前に格納されたデータをサーバ151が検索することを可能にする認証情報を、機器は送信することができる。機器101がすでに機器データをサーバ151に送信したならば、以前に格納された機器データは、その時新しいアプリケーションデータに関連付けることができる。そのようなデータ収集システムのにおいて、プライバシーを保護し、サーバ151またはデータストレージ111によって格納された同一視可能な情報を個々に最小化することは、重要なことであろう。
【0189】
実施例では、保存されたデータが特定の機器ではなくむしろ1つまたはそれ以上の機器によって共有された機器データのセットと接続するように、同じ機器データを持っている複数の機器のためのアプリケーションデータが収集される。そのようなシステムの設計において、機器データの粒状性と収集されたデータが特定の機器に帰することができるレベルとの間のバランスを考慮することは、重要なことであろう。
【0190】
データオブジェクトを分析する一部として、サーバ151がそれを特徴付けて、および/またはそれを分類することは望ましいことであろう(ブロック1109)。実施例では、サーバー151は、データオブジェクトのために特徴付けと分類のデータを格納する(ブロック1111)。より多くのデータが入手可能になるか、あるいはデータ分析が変化するにつれて、特徴付けと分類のデータがアップデートされることは望ましいことであろう。
【0191】
実施例では、サーバ151は、追加の分析を実行し(ブロック1109)、分析システムによって使われたデータオブジェクトのための新しいか、あるいはアップデートされたデータが入手可能な時に、データオブジェクトのために格納された分類と特徴付けデータをアップデートする(ブロック1111)。
【0192】
特徴付けデータは、データオブジェクト機能、行動、およびその機能などの評判、データオブジェクトのための測定基準、データオブジェクトと関連している他のデータの分析およびそのようなものなどを説明する情報を含む。
【0193】
実施例では、アプリケーションデータ、機器データ、マーケットプレイスデータ、配布データ、およびサーバ151に利用可能な他のデータを使って、サーバ151はデータオブジェクトについて特徴付けデータを生成する。いくつかの方法が以下で説明される一方で、当業者であれば、この開示の範囲を逸脱せずに使用されることができる説明情報を生成するための方法が他にあると理解するであろう。
【0194】
実施例では、サーバ151は、評価として特徴付け情報を送信する。アプリケーションをインストールするかどうかを決めるときに、特徴付け情報が、ユーザにとって理解するために有益であろうと理解するであろう。例えば、ユーザが、ゲームをダウンロードすることを考慮しているが、ユーザが、そのゲームが、インターネットに対してユーザの位置を送信する機能を持っていることを示している評価を受信したならば、ユーザは、そのゲームをインストールしないと決定することができる。別の例では、ユーザが、インスタントメッセージングアプリケーションをダウンロードすることを考慮していて、そのアプリケーションが不釣合な量のバッテリパワーを使うかもしれないことを心配するならば、ユーザは、そのアプリケーションによる平均的なバッテリ使用量の計測をみるために評価を受け取ることができ、その計測に基づいて、インストールするのに、そのアプリケーションが容認できることを決定することができる。
【0195】
実施例では、特徴付け情報は1つまたはそれ以上の他の分析システムへのインプットとして消費される。例えば、アプリケーションのプライバシーリスクの評価を生成している分析システムは、アプリケーションが、位置または接触のリスト情報をインターネットサーバに送るなどの危険な機能を持っているかを決定するために、特徴付け情報を使うことができる。
【0196】
機能は、サーバ151が生成することができる特徴付けデータの1つの形式である。実施例では、サーバ151は、機能をデータオブジェクトから取り出す。一定のモバイルのオペレーティングシステムまたはアプリケーション環境の中で、ネットワークデータを送るか、受け取るか、または電話位置にアクセスするか、接触入力を読み書きするなどの機器の上の特権を与えられた機能にアクセスするためにアプリケーションは、粒状の許可を要請することができる。
【0197】
実施例では、データオブジェクトの機能を決定するためにデータオブジェクトによって要請された許可について、サーバ151はデータを使用する。サーバは、機器、マーケットプレイスデータ、データオブジェクトの静的解析、およびデータオブジェクトの動態分析によって報告されたメタデータと行動のデータを含めて、さまざまな方法によって許可データを決定することができる。例えば、アンドロイドオペレーティングシステム上のアプリケーションは、インストール時間に許可を宣言しなければならない。従って、サーバ151は、直接、1つまたはそれ以上の機器によってまたはマーケットプレイスデータ経由で、または、許可データを決定すると報告されたアプリケーションパッケージについてのメタデータ経由で、アプリケーションパッケージの中でこれらの宣言された許可を分析することができる。
【0198】
実施例では、データオブジェクトが機器の上でどのようなAPIを利用するかを決定するために、サーバ151はデータオブジェクトのコンテンツの分析を実行する。
【0199】
実施霊では、API分析は、API呼び出しを示しているデータ連鎖のためにデータオブジェクトの検索を含むことができる。API呼び出しは、具体的なライブラリの分析、機能、クラス、または他はデータオブジェクトの中でのインポートされたデータ構造、動的なリンカ呼び出し、ローカルな、またはリモートのサービスへの呼び出しの分析、データオブジェクトの静的解析、データオブジェクトの動態分析、そして1つまたはそれ以上の機器によって報告された行動のデータの分析などである。
【0200】
実施例では、アプリケーションが特定の機能を持っていることを決定するために、サーバ151は、抽出されたAPI呼び出し情報を利用する。例えば、機器上のGPSラジオと対話するために、アプリケーションがAPIにコールするならば、サーバ151は、アプリケーションが、機器位置を決定する機能を持っていると決定する。そのような分析は、データオブジェクトによって使われたAPIの大部分を検出することができるが、高度な自己書き換えコードが、データオブジェクトの徹底的な分析を防止できるであろうことは、可能なことである。
【0201】
実施例では、自身を修正するデータオブジェクトの機能は、データオブジェクトが、より直接的なデータオブジェクトより高いリスクをもっていることを意味するであろう。
【0202】
反マルウェアシステムから隠れるために、PCの上のマルウェアの多くの例が、自己書き換えコードを使う間、不正アクセスを防止するために、コピープロテクトシステムはまたしばしばコードを暗号化する。従って、自己部分修正はそれだけでは、悪意に満ちることとしてデータオブジェクトを分類することについて十分でないかもしれず、それは、データオブジェクトのための評価を生成するために、行動のデータなどの他の特徴に加えて分析システムによって使用されるかもしれない。
【0203】
実施例では、データオブジェクトのために機能を決定するために、サーバ151は行動のデータを分析する。例えば、サーバ151は、電話をかけているか、SMSメッセージを送信するか、インターネットにアクセスしているか、特定のアプリケーションの機能を示す他の行動を実行しているデータオブジェクトを捜すことができる。場合によっては、どのような単一の機能がデータオブジェクトによって利用されるかばかりでなく、アプリケーションがAPI間でデータを交換するかどうかを理解することが重要である。
【0204】
例えば、インターネットを使い、機器接触リストを読み出すことができるアプリケーションは、かなり、違うリスク持っている複数の機能を有しているであろう。例えば、単に、アップデートをチェックするために、インターネットを使用する住所録アプリケーションは、コンタクトを読み出し、それらのコンタクトをインターネットに送信する住所録アプリケーションよりプライバシーリスクは少ない。
【0205】
実施例では、データが戻って来たコードパスがあるかどうか、別のAPIまたはサービスに送られた1つのAPIまたはサービスによって生成されたコードパスがあるかどうかを決定するために、サーバ151はデータオブジェクトを分析する。
【0206】
例えば、サーバ151は、アプリケーションがAPIの間のデータを転送するかどうかを決定するために、2つのAPIの間で、汚染検査を実行することができる。例えば、サーバ151は、機器上のどのようなネットワークAPIにでも提供されることができるモバイル機器上のコンタクトAPIへのコールによって戻されたデータによってデータオブジェクトの中にコードパスがあるかどうかを決定することがきでる。
【0207】
そのようなコードパスがあるならば、サーバ151は、データオブジェクトが、コンタクトをインターネットに送る機能を持っていると決定する。そのような機能を持つことは、アプリケーションがコンタクトにアクセスし、それがインターネットにアクセスすることを単に知るよりも、サーバ151によるまたはユーザによる分析中、より貴重なことであろう。多くのアプリケーションは、両方の許可を使用することができる。しかし、少数は、実際に、コンタクトデータをインターネットに送信することができる。 ユーザーまたは自動分析システムは、より少ない粒状な機能の計測よりも機能のずっと強いインジケータとして、2つのAPIの間にコードパスがあることを知っている機能を使うことができるであろう。
【0208】
実施例では、バーチャルな(例えばシミュレーションされるか、エミュレートされる)、または実在の機器内で、サーバ151はデータオブジェクトを実行し、実行したときにデータオブジェクトの挙動を分析する。実施例では、バーチャルな、または実在の機器が計装され、それがデータオブジェクトのための行動のデータを報告する。 実施例では、バーチャルな、または実在の機器、ネットワークトラフィック、コールおよびSMSメッセージは、サーバ151によって分析される。例えば、バーチャルな機器は、どのような現実の世界状況にでも存在することがありそうにないその位置のAPI経由でいつでも特定の位置を報告するために設定されるであろう。
【0209】
バイナリの2倍のエンコーディング、基本の64エンコーディング、およびテキストエンコーディングなどのその位置の様々なエンコーディングのための機器ネットワークトラフィックを分析することによって、サーバ151は、データオブジェクトが、機器位置をサーバに報告することを試みるかどうかを決定することができる。実施例では、データオブジェクトが機器上で実行される前とデータオブジェクトが実行された後に、サーバ151は、バーチャルな、または実在の機器の状態の違いを調査する。例えば、データオブジェクトは、それが、ステルスルートキットをインストールするためにインストールされる機器上のカーネルを利用することができる。この場合に、バーチャルな機器は、普通の状況の下で変わるべきでないシステム・コール・ディスパッチテーブル内などのメモリの一定のセクション内でかなり大きな相違を示すかもしれない。
【0210】
実施例では、実在のまたはバーチャルな機器は、信頼された証明書のそのリストの中にカスタムルート証明機関を持っていて、サーバ151は、カスタム認証局によってサインされるサーバ証明書を使用して、すべてのTLSトラフィックを傍受し、そして、そのオリジナルの宛先へのトラフィックを代理する。機器が、カスタム認証局を持っているので、データオブジェクトは、サーバ151を通して有効なTLS接続を確立することができて、すべての暗号化されたトラフィックは、サーバ151によって分析することができる。
【0211】
データオブジェクトの機能は別として、機器上で実行されるデータオブジェクトの影響または機器上での機能の使用に関連している測定基準を収集することは、サーバ151にとって重要なことであろう。例えば、ネットワークデータ、Eメール、またはSMSメッセージングの乱用は、罵倒か、悪意に満ちたか、利用されたアプリケーションを暗示すると考えられるであろう。 実施例では、メタデータと行動のデータ、機器データ、およびデータオブジェクトを特徴付けている測定基準のデータを生成するために、それがそれに利用可能な他のデータなどの多くのモバイル通信機器から、サーバ151はアプリケーションデータを分析する。
【0212】
例えばアプリケーションがすべての機器のまたは特殊なデバイスタイプの平均でどれくらいバッテリ消費を必要としているか、データオブジェクトがどれくらいデータをネットワークインタフェースの上、または電話対Wi-Fiのネットワークインタフェースの上でにでも送るか、いくつのメッセージまたはSMSメッセージをデータオブジェクトが送るか、いくつの電話のコールをオブジェクトが生成するか、および他の測定基準を、サーバ151は、決定する。
【0213】
サーバ151は、上記で説明されているものから他の特徴付け情報を生成することができ、その特徴付け情報は、評価を生成するためにサーバ151によってさらなる分析を助けるかもしれないか、直接サーバ151によって晒されるかもしれない。
【0214】
実施例では、サーバ151は、ネットワークキャラクタリゼーションデータを生み出すためにデータオブジェクトと関連したネットワークトラフィック情報を分析する。ネットワークトラフィック情報は、データオブジェクトが接続したサーバーのリスト、それらのサーバーデータオブジェクトが通信するポートとプロトコル、いかなる数が各サーバへ送信され各サーバで受信されたかである。
【0215】
実施例では、ネットワーク特徴付け情報は、特定のデータオブジェクトを実行している機器のうちどのような割合が各サーバと接続するかということを含む。例えば、IMサーバーまたは既知の悪意に満ちたボットコマンドとコントロールサーバと接続するアプリケーションは、それがインストールされるすべての機器上に対して1つまたは少数のサーバとしか接続しないであろう。しかし、ユーザで指定された接続を許すウェブブラウザまたはアプリケーションは、異なる機器上に対して非常に多くの異なるサーバと接続するかもしれない。
【0216】
実施例では、データオブジェクトが多くの異なるサーバと接続するならば、サーバ151は、報告している不要なデータを最小化するために、そのデータオブジェクトのためのネットワークの行動のデータを収集しない1つまたはそれ以上の機器に知らせる。実施例では、ネットワークトラフィック情報は、モバイル通信機器から行動のデータとして、集められるか、またはバーチャルな、または実在の機器上でデータオブジェクトを実行しているサーバ151によって集められる。
【0217】
実施例では、サーバ151は、データオブジェクトがモバイル通信機器101を、悪意に満ちたインターネットまたは他の公的なあるいは私的なネットワークにアクセスさせるかどうかを決定する。例えば、モバイル通信機器を、悪意に満ちたウェブサイトにアクセスさせるデータオブジェクトは、機器を搾取に服従させることであろう。アドレスがモバイル通信機器を極悪なウェブサイトまたはフィッシング詐欺というよりも安全なウェブサイトに向けるであろうかを決定することを、送信されたインターネットまたはイントラネットのアドレス(例えばURL)の解像度にとって、この開示の実施例は、可能にする。この情報は格納されて、それは特定のデータオブジェクトと関連付けられる。
【0218】
すべてのアプリケーションのために別個の決定を作ることなくユーザがアプリケーションポリシーをモバイル機器に適用するために、ユーザが、いずれのカテゴリのアプリケーションが許すか、否定するかを単に決めることができるように、アプリケーションを分類することは役立っているかもしれない。実施例では、それがアプリケーションデータ、機器データ、マーケットプレイスデータ、およびキャラクタリゼーションデータなどの入手可能に持っているデータを使って、サーバ151はデータオブジェクトを分類する。
【0219】
例えば、データオブジェクトが、モバイル通信機器上で位置をAPIと呼ぶと見なされるならば、サーバ151はマッピングまたは他の位置ベースのアプリケーションとしてデータオブジェクトを分類することができる。 実施例では、分類は、あなたのコンタクトリストを読みだしたアプリケーションまたはあなたの位置をインターネットに送ることができるアプリケーションなどの機能に対して、直接、割り当てることができる。
【0220】
他の例の分類は、データオブジェクトがモバイル通信機器コンタクトリストからのどのような情報でも伝えるかどうか、データオブジェクトが機器電話番号などの他のデータに、モバイル通信機器によって送信させられるかどうか、そして、モバイル通信機器のプライバシーセキュリティに影響するかもしれない他の行動を含むものである。
【0221】
実施例では、データオブジェクトがそれを分類するように、サーバ151は、それを分類するためにデータオブジェクトのための測定基準データを使用する。例えば、サーバは、一般に、機器のバッテリの10%より多くを使うデータオブジェクトを含むヘビーなバッテリユーザの分類を持つかもしれない。 分類が、特徴付けデータに加えて機器データに依存しているかもしれないので、バッテリー浪費家のカテゴリは、評価がどのような形式の機器のためであるかに依存するかもしれない。例えば、1つの機器のバッテリの10%より多くを使うデータオブジェクトは、別の機器のバッテリのわずか5%を使用するかもしれない。
実施例では、データオブジェクトが直接分類情報を提供しないならば、サーバ151はそのような情報を推論することができる。例えば、データオブジェクトが既知のインスタントメッセージングサーバと通信するならば、サーバ151は、データオブジェクトがIMアプリケーションであることに決定することができる。例えば、ポピュラーな社会的なネットワークに付属しているサーバと接続するアプリケーションは、ソーシャルネットワーキングアプリケーションとして分析中に分類されるかもしれず、既知の悪意に満ちたIRCサーバと接続するアプリケーションは、悪意に満ちたボットとして分類されるかもしれず、1つまたはそれ以上の機器バッテリに、浪費するアプリケーションは、バッテリ浪費としてのフラッグを掲げられるであろう。
【0222】
アプリケーションの分類は、主観的でであり、自動的に判断するには困難であるかもしれないため、組織の内部または共同コミュニティの努力の一環として、一人またはそれ以上の人を有して、アプリケーションの分類を決定することは、望ましいことであろう。
【0223】
実施例では、サーバ151は、ユーザがデータ・オブジェクトの分類を示唆することが可能なインターフェイスを公開する。実施例では、データオブジェクトのための配布データを決定するために、サーバ151は、アプリケーションデータと機器データを処理する。
【0224】
例えば、サーバ151は、アプリケーションがポルノや暴力を含むコンテンツを持って、子供に不適切なアプリケーションの分類を定義するかもしれません。
【0225】
この実施例では、1つまたは複数のユーザが、サーバ151に知られているすべてのアプリケーションを検索し、閲覧することができ、Webアプリケーションとして提供され、コミュニティの投票システムにサインインすることができる。アプリケーションのリストは、マーケットプレイスのクロールおよび機器によって報告されたアプリケーションによってデータがロードされることがある。各アプリケーションには、ユーザーはそのアプリケーションのための彼らの推奨する分類を選択できるページがあるかもしれない。ユーザが分析の出力に基づいて決定を下すことができるように実施例では、ユーザインターフェイスは、集約されたアプリケーションデータ、データ・オブジェクトの特性、及びサーバ151が利用できるその他の情報としてデータオブジェクトに関する情報が表示される。
【0226】
実施例では、ユーザインターフェイスは、ユーザが、分類のリストから選択し、新しい分類を追加して、データ・オブジェクトのタグを追加することができる。実施例では、ユーザインターフェイスは、人々がデータ・オブジェクトのための適切な分類を議論することができるように、議論のコンポーネントを有している。実施形態では、アプリケーションの分類は、アプリケーションのための権威ある分類では、ほとんどのユーザーが選択した分類ごとに、好みの分類を選択するかもしれないことによって、投票システムによって決定される。実施例では、ユーザインタフェースは、モバイル通信機器に表示され、機器にインストールされているデータオブジェクトのリストを表示し、ユーザにそれらのデータ・オブジェクトの分類を示唆することができる。
【0227】
実施例では、サーバ151のプロセス・アプリケーションのデータと機器のデータは、データ・オブジェクトの分布データを決定する。分布データは、どれほど広く与えられたアプリケーションが現在配布されているか、アプリケーション配布の成長が、アプリケーションが入手可能であった期間の間にあったものか、アプリケーションがインストールされた地理などの顧客人口統計が何を持っているかを、モバイル通信機器のグループのアプリケーションの普及の他の機能を、配布データは含むであろう。
【0228】
例えば、サーバ151は、そのアプリケーションがどの程度普及しているかを判断するために、いかに多くのモバイル通信機器が、現時点でデータ・オブジェクトをインストールしたことを報告したかを検討することができる。
【0229】
実施例では、サーバ151は、後述するように、データ・オブジェクトの信頼性を判断するために、配信データを使用しているか、あるいはリスクのためのデータ・オブジェクトを分析する。例えば、アンインストールされずに長期間、多くの機器にインストールされたアプリケーションは新しいものであり、唯一のいくつかの機器にインストールされたアプリケーションよりもリスクが少ない可能性が高い。
【0230】
サーバ151は、開発されている正規のアプリケーションが発生する可能性があり、したがって、広く配布されていないため、この開示の実施例は、アプリケーションは開発中であり、したがってそれらが反マルウェアまたは他のシステムの中で不適当であることとして分類されることを防止することを識別するサーバ151に向けられている。
【0231】
サーバ151は、デバッグシンボル、デバッグ可能な権限やフラグ、デバッグ用ライブラリへのリンケージ、およびその他の特性として、開発中のアプリケーションに固有の特性を持っていることを示すデータオブジェクトのためのアプリケーションデータを受信することができる。
【0232】
開発中のアプリケーションはまた、低分布や孤立分布を持っている可能性が高いかもしれない。サーバ151は、アプリケーションが開発中であることを識別する場合は、開発において考慮されているアプリケーションの表示を格納して、不審なまたは望ましくないとアプリケーションを評価することからサーバ151を防ぐために、またはサーバがそのような評価に到達する可能性を減少させるために、指示を使用するかもしれない。
【0233】
実施例では、データ・オブジェクトが「開発中」として扱われるべきであるかどうかを判断する際にサーバ151は、問題のデータ・オブジェクトを検出した機器が遭遇する前のデータ・オブジェクトを考慮する。
【0234】
機器が、開発中のデータ・オブジェクトに頻繁に遭遇した場合は、サーバ151は、開発中として、データオブジェクトを分類する可能性が高くなる。機器が、開発中のデータ・オブジェクトに稀に遭遇した場合は、サーバ151は、開発中としてデータオブジェクトを分類する可能性が低くなる。
【0235】
実施例では、サーバ151は、データ・オブジェクトのための評判や信頼のレベルを確立する。.実施例では、信頼のレベルが手動または自動的に決定され、単一のデータ・オブジェクト、アプリケーションの一部である複数のデータ・オブジェクト、アプリケーションの複数のバージョン、または1つまたは複数のプラットフォーム上で開発者から与えられたすべてのアプリケーションに割り当てられる。
【0236】
実施例では、それが直接後で使用することができるように、あるいは評価を生成するための一部として使用することができるように、信頼のデータは、サーバ上またはデータストレージ111に、サーバ151によって格納される。
【0237】
実施例では、信頼は、アプリケーションのマニュアルレビュー・プロセスを介して付与される。たとえばサーバ151が、その能力(例えば、個人データへのアクセス権を持っているおよび/または機密APIを利用している)のみに基づいて、危険であるとアプリケーションを判断した場合、評価を見ているユーザは、アプリケーションが十分であっても、それをダウンロードすべきでないことを選択するであろう。この問題を解決するには、アプリケーションを手動で確認することによって信頼性のランクを割り当てることができる。レビューがアプリケーションを信頼できると判断した場合、評価は、アプリケーションが危険ではないことを報告する。しかしながら、レビュー上で、アプリケーションが不審であると判断され、評価がアプリケーションを危険であるとの報告をし続けることがある。評判の良いアプリケーションが、複数のデータ・オブジェクトで構成される可能性があり、新しいデータ・オブジェクトで更新されることがあり、複数のプラットフォーム用のバージョンがあるかもしれないため、信頼の格付けに、複数のデータオブジェクト、アプリケーション、そして、プラットフォームでさえも、またぐことを許容することは重要なことであろう。マニュアルレビューは、アプリケーションの一部であるすべてのバージョンまたはファイルのために完遂される必要があるわけではない。
【0238】
多くの評判のソフトウェアベンダーが、信頼できると仮定することができる複数のアプリケーションを生成することができると同様に、自動的にそれらのベンダーから発生するように識別されたデータ・オブジェクトへの高いレベルの信頼度を付与することは、望ましいことであろう。.実施例では、データ・オブジェクトは、データ・オブジェクトの暗号署名、パッケージ名、またはマーケットプレイスのメタデータとして、サーバ151に利用可能なデータを通して、信頼できるベンダーまたは信頼できるアプリケーションに帰因させることができる場合には、サーバ151は、データオブジェクトを、高い信頼レベルのものとみなす。
【0239】
実施例では、サーバ151は、アプリケーションの信頼を確立するために、配信データとアプリケーション・データを使用する。例えば、グーグルMaps(登録商標)などの一般的なアプリケーションは、モバイル通信機器の数百万にインストールすると、アプリケーションの複数の以前のバージョンが存在する場合は、すべてが暗号で同じ暗号署名と同様の分布特性、アプリケーションの後続バージョンを持つ署名者は、高いレベルの信頼度を有するとみなされるであろう。サーバ151は、グーグルMaps(登録商標)などの一般的なアプリケーションと同じ名前を持つ別のアプリケーションに遭遇し、それはいくつかのデバイスにしかインストールされていないが、別の暗号化署名を使用している場合には、サーバ151は、その低配布アプリケーションを低レベルの信頼性と認めることができる。
【0240】
アンチマルウェアシステムは、データ・オブジェクトが望ましくないとデータ・オブジェクトを自動的に評価するために、またはマニュアルのレビューのためにフラグを設定するために、データオブジェクトが、低い信頼性を有していることを示すようなデータを使用することができる。実施例では、アプリケーションのための信頼のデータは、同一のプラットフォームまたは異なるプラットフォームで同じ開発者によって作成されていると判定するアプリケーションなどのアカウントに関連付けられたアプリケーションを考慮に入れてもよい。 たとえば、会社が、多数のユーザーと良い評価を多数持っており、会社が別のプラットフォーム上に新しいアプリケーションをリリースする場合、新しいアプリケーションには、最初のアプリケーションとの関係に基づいた高い信頼格付けが与えられるかもしれない。
【0241】
実施例では、サーバ151は、データ・オブジェクトが、モバイル通信機器のオペレーティングシステムの一部であるか、または製造元またはオペレータによってプリロードされたかどうかを判断するために、アプリケーション・データを分析する。実施例では、データオブジェクトがモバイル・オペレーティング・システムの一部であるか、またはプリロードされているとサーバ151が判断した場合、自動的に高いレベルの信頼度が付与されたみなされる。
【0242】
実施例では、サーバ151は、このようなシステム1005を収集するアプリケーションマーケットプレスデータによって収集されたものなど、アプリケーションのユーザーが生成した評価やコメントを分析する。例えば、サーバ151は、アプリケーションの信頼性のランクを決定するために評価とレビューを使用することができる。アプリケーションが低い評価およびそのアプリケーションが「クラッシュ」を示す否定的なコメントを持っているか、またはそうでなければ「悪い」とのコメントを持っている場合、サーバ151は、アプリケーションにそのコメントで示された評判に基づいて、低信頼であるとの評価を行う。しかしながら、アプリケーションが一貫して高い評価と多くのレビューを持っている場合には、サーバ151は、アプリケーションを高い信頼であるとの評価を行う。
【0243】
別の例では、サーバ151は、アプリケーション用の評価を生成する際に使用するためのアプリケーション品質の主観的な指標として、評価とレビューを使用する。アプリケーションが「バッテリを吸い上げる」あるいは「バッテリを消耗する」ことを示すテキスト付きレビューのかなりの数を持っている場合には、サーバ151は、アプリケーションがバッテリーへの不利な影響を持っているとの評価を得て、そのことを示すアプリケーションの評価を生成すると決定する。
【0244】
実施形態では、サーバは、APIを介して、サードパーティに信託データを公開する。たとえば、信頼されたアプリケーションは、見張りによって認定とみなすことができる。たとえば、APIによって公開される信頼レベルは、バイナリ(例えば、信頼されていない、信頼された)、ファジー(例えば、86%信頼、11%信頼性が高い)、またはカテゴリ(例えば、完全に信頼され、悪意のある、疑わしい、信頼度の低い)である。モバイルアプリケーション向けのマーケットプレイスでは、アプリケーションが良い評判を持っていることをシグナルとして、アプリケーションのダウンロードユーザーインターフェースでこの認定のインジケータを表示したい場合がある。この場合、サーバ151は、サードパーティがそのようなハッシュ識別子、パッケージ名、または暗号署名者としてデータ・オブジェクトのデータ・オブジェクトまたは識別情報を提供することのできるAPIを公開することがある。データ・オブジェクトまたは1つを識別するのに十分な情報を受信したに、サーバ151は、データオブジェクトが認定とみなされているかどうかの指標を使用して応答する。
【0245】
実施形態では、応答は、データオブジェクトが認定されたかどうかであるとサーバ151が、考えるかどうかを示すイメージである。.実施例では、応答は、ユーザがアプリケーションの認証が本物であることを確認することができるサーバ151へのハイパーリンクが含まれている。
【0246】
実施形態では、ハイパーリンクによって参照されるWebページは、アプリケーションについての追加情報を示し、それは、なぜそれが信頼されると考えられたか(例えば、手動の見直しによる、コメント、分布データ)、特性、アプリケーションが持つ機能、およびマニュアルレビュー中のアプリケーションに関する解説などのようなものである。
【0247】
評価を生成した後、それが後で取得されることができるように、サーバー151はデータオブジェクトの評価を格納することができる(ブロック1115)。
【0248】
その後、サーバはデータ・オブジェクトの評価を送信することができる(ブロック1117)。
【0249】
たとえば、サーバは、アプリケーション・プロバイダーのウェブサイトで評価を公表することができるモバイル通信機器に通知を送信し、検索可能なレポートの形で評価を提供し、与えられたデータオブジェクトが悪い、良い、または既知の知られているという評価を含むウイルスシグネチャを送信して、データ・オブジェクトの評価のために照会APIの呼び出しに応答を送信する。このような情報は、読み取り可能なテキスト、機械可読形式の形態であることができる、または「スコア」、「バッジ」、「アイコン」、または他のシンボリックな評価を含んでもよい。当業者は、本開示の範囲を逸脱することなく、サーバ151は、データ・オブジェクトのための評価を送信する他の状況が可能であることを理解するであろう。
【0250】
実施例では、評価データは、このような特性データ、分類データ、信頼データ、分布データとして分析システムからの出力が含まれている。たとえば、データ・オブジェクトの評価は(単独で又は他の情報に加えて)、データ・オブジェクトの検出機能、データオブジェクトのための平均バッテリ使用量、データ・オブジェクトによって送信されたSMSまたは電子メールメッセージの平均数、ほとんどのデータ・オブジェクトが接続する共通のサーバー、データ・オブジェクトのネットワーク・データの平均量、およびデータ・オブジェクトのための信頼評価を含むことができる。
【0251】
上記の評価データは、サーバ151への入力として提供され得ることを理解するであろう。たとえば、ネットワークオペレータまたは企業は、評価データを生成し、マスターサーバーに対してデータを供給するサーバを動作させることができる。別の例では、ユーザが評価データを決定することができると、それをWebアプリケーションなどのインターフェイスを介してサーバ151に提供する。この場合、ユーザが主観的信頼データ、リスク評価、分類、またはサーバによって使用されるかもしれない他の評価データを提供することができる。
【0252】
実施例では、サーバ151は、集約された評価を生成するために複数の送信元から受信した評価データを組み合わせる。たとえば、マルウェアの作成者が、悪意のあるアプリケーションが、サーバ151をして誤った評価を生成することを引き起こすことを願って、安全であることを示すサーバ151に対して評価を転送しようとした場合、サーバは、評価を提供するユニークなソースの数と信頼性を利用して、それらのソースで集約された評価を生成する。
【0253】
100のアセスメントが、悪意に満ちているために、アプリケーションを示すネットワークオペレータと企業などの違う信頼すべき筋から受け取られるならばしかし、安全なために、特定の証明されていないソースからの1万のアセスメントがアプリケーションを示します。
【0254】
サーバーは、悪意に満ちているためにアプリケーションを示している集められたアセスメントを作り出します。
【0255】
百の評価が、そのようなネットワーク事業者や悪意があるアプリケーションを示しているが、特定の検証されていないソースからアプリケーションが安全であるとの1万の評価を企業など、さまざまな、信頼できる情報源から受信している場合には、サーバはアプリケーションを示す集約された評価を悪意があるものと生成する。
【0256】
実施例では、サーバ151によって生成される評価データは、データ・オブジェクトに対して1つ以上の評価を含んでいる。たとえば、データ・オブジェクトのための評価では、アプリケーションが機器からサーバに位置データ、連絡先データ、SMSメッセージ、またはファイルを送信する機能を持っているかどうかを考慮してサーバ151によるデータオブジェクトのプライバシーのための評価を含んでもよい。
【0257】
別の例では、データ・オブジェクトのための評価は、アプリケーションが安全満たしているかどうか、アプリケーションの既知の脆弱性が存在するかどうかを考慮した、サーバ151によるデータオブジェクトのセキュリティのための評価、アプリケーションが任意のポート上のネットワーク接続に耳を傾けるどうか、それが安全なコード化されたガイドラインに適合しているかどうか、アプリケーションの信頼レベルがどのようなものであるか、および、アプリケーションの中にどのような異常(例えば、ステルスコード、コード、構造異常を復号化された)でもあるかどうかを含むものである。
【0258】
別の例では、データ・オブジェクトのための評価は、サーバ151によって機器から報告されるバッテリーの使用状況データを考慮して取り入れることによって、電話のバッテリ寿命低下の分の推定数などのデータオブジェクトがバッテリーへ与える影響に対する評価を含んでいてもよい。別の例では、データ・オブジェクトのための評価は、サーバ151によってアプリケーションの平均CPU使用率、アプリケーションがユーザの入力イベントに応答しない周波数を考慮して取り入れることによって生成されるデータオブジェクトのパフォーマンスの評価を含んでもよい。別の例では、データ・オブジェクトのための評価は、アプリケーションクラッシュの頻度、ユーザのコメント、ユーザの評価および機器上に格納されるアプリケーションの平均時間を考慮したサーバ151によって生成される品質評価を含む。
【0259】
実施例では、サーバ151は、複数の次元に沿ってデータ・オブジェクトに関する情報を提供するように、1つの評価の一部として複数の評価を提供する。実施形態では、評価は、(例えば、良い、悪い)、またはファジー(例えば、100%、90%、10%)バイナリであるかもしれない。実施形態では、複数の評価は、総合評価に結合される。
【0260】
実施例では、サーバ151は、データオブジェクトのための評価を生成するためにサーバ151に利用可能な複数のデータソースを処理する。
【0261】
例えば、サーバ151は、アプリケーションに悪意があるかどうかを判断するために、アプリケーション・データ、機器データ、特性データ、信頼データ、分布データ、およびユーザが提供したデータを利用することができる。サーバは、評価を生成するサーバで利用可能なデータに適用されるシステムや、さまざまなモデルを利用することができる。たとえば、データ・オブジェクトに悪意があるかどうかの評価を生成することは、悪意のある可能性が高いデータ・オブジェクトの動作を識別するための特徴的なデータを分析する、ヒューリスティックエンジンを含むマルウェア検知システムを伴うかもしれない。
【0262】
いくつかの例のヒューリスティックは、インストールされているOS上でアプリケーション一覧システムから非表示にすることにより、検出を回避するための任意の機能をデータオブジェクトが利用するかどうか、アプリケーションが、自身を修正することを試みるかどうか、アプリケーションが既知のスパイウェアと関連した機能を持っているかどうか、およびアプリケーションが既知の悪意に満ちたサーバと接続するかどうかを検出することを含む。
【0263】
当業者であれば、評価を生成するサーバ151で実行された分析の一部が、データオブジェクトのための特徴を抽出するものと考えられ、分析の別の部分は、モデルをそれらの機能に適用して、有益な評価を生成ることができるということを理解するであろう。従って、評価または格付けを所望の形式に到達させるためにデータ・オブジェクトのための機能を処理するための、そのような人工知能システムやアルゴリズムなどのシステムは、様々なシステムに適用することができる。
【0264】
実施例では、サーバ151は、異なる機器データや設定情報を考慮したデータオブジェクトに対する複数の評価を生成する。
【0265】
たとえばサーバ151が、データオブジェクトが正しく機能するであろうかどうかの評価を生成するために構成されており、データオブジェクトが機器の一種にインストールされる時に誤動作するが、別の種の機器にインストールされる時に正しく機能するような場合には、サーバは、データオブジェクトのために2つの評価を生成することができる。
【0266】
サーバ151が、モバイル通信機器101がデータオブジェクトのために情報を識別して、与えられたデータオブジェクトのための評価を要求することができるAPIを持っていて、モバイル通信機器が機器データをサーバ151に送信した場合には、サーバ151は、評価を要求している機器に対応するデータオブジェクトのための評価を提供することができる。
【0267】
データオブジェクトが誤動作して、機器101が評価を要求した場合、サーバ151は、機器101上のデータオブジェクトの誤動作の挙動を示す評価を返送するであろう。.データ・オブジェクトが正常に機能するであろう機器101が評価を要求する場合には、サーバ151は、機器101上で正常に機能して動作していることを示す評価を返送するであろう。
【0268】
実施例では、評価は、データオブジェクトが、管理者によって、ポリシー・セットを与えられた機器の上で動作するように許可されてるかどうかを示すものである。
【0269】
複数のポリシーがサーバ151上で設定されており、データストレージ111が機器101に適用されるポリシーを格納している場合には、与えられたデータオブジェクトは、評価のための質問をしている機器のポリシーに依存する複数の評価を持つことができる。
【0270】
たとえば、厳格なプライバシーポリシーを持つ機器が、ユーザーの場所を共有することができる、アプリケーションの評価を要求した場合、サーバ151は、アプリケーションが許可されていないことを示す評価を送信する。寛大なプライバシーポリシーを持つ機器が、同じアプリケーションのための評価を要求した場合、サーバ151は、アプリケーションが許可されていることを示す評価を送信する。実施例では、評価データが格納されず、情報だけが、アプリケーションデータ、機器データ、分布情報、特性情報、信頼データおよび分類情報などの評価を生成するために使用される情報のみが、格納されて、評価は、ポリシーを格納された情報に適用することによって要求に応じて実行される。
【0271】
自動分析システムは、ほとんどの場合、許容可能な結果を生み出すかもしれないが、手動分析は、自動分析の結果を上書きしている状況があるかもしれない。実施例では、サーバ151は、データオブジェクトの手動分析結果を格納して、評価などの手動分析結果を送信する。
【0272】
例えば、サーバ151は、その行動データに基づいて、ソーシャル・ネットワーキング・アプリケーションなどのアプリケーションを分類することがある。しかしながら、アプリケーションは、実際には、ユーザがソーシャルネットワークにノートを公開することを許容する、ワードプロセッサのアプリケーションであってもよい。この場合、ユーザーまたは管理者がデータ・オブジェクトの分類をオーバーライドし、サーバ151が分類を格納し、データ・オブジェクトのための評価を要求に応じて送信する。
【0273】
別の例では、アンチマルウェアシステムは、特定の特性を持つデータオブジェクトを、望ましくないとして識別する。また、特定のデータ・オブジェクトを、望ましくないと扱うようにサーバ151を手動で設定することは、ユーザにとって望ましいことであろう。サーバ151は、不適当であると考えられるデータオブジェクトのリストを格納し、これらのデータ・オブジェクトのいずれかの評価を尋ねられたときに、データオブジェクトが不適当であることを示している評価を返す。
【0274】
データオブジェクトについての評価は、実施の形態では、利用できる最新の情報を反映することが望ましいかもしれないので、サーバ151は最初に評価を生成して、その後、追加のアプリケーションデータまたは機器データが入手可能になるならば、または、分析システム自身がアップデートされるならば、それをアップデートする。
【0275】
実施例では、データ・オブジェクトが再評価されている場合(例えば、新しいアプリケーション・データ、機器データ、またはアップデートされた分析システムのために)、サーバ151は、新しい評価1111を格納して、それを 1113 に送信する。たとえば10個の機器から、機器データとデータ・オブジェクトのためのアプリケーション・データを収集した後、サーバ151は、そのデータ・オブジェクトのための評価を生成することができる。その後、サーバ151は、千以上の機器から機器データとアプリケーション・データを受信した場合、新しいデータに照らしてデータ・オブジェクトを再分析して、データ・オブジェクトのための新しい評価を生成することができる。アップデートされた評価が著しく最初のものと異なるならば、機器またはユーザを通知するなどの行動がサーバ151によって実行されるかもしれない。
【0276】
C. アンチマルウェアシステム
実施例では、サーバ151と、モバイル通信機器101は、悪影響をモバイル通信機器に影響を与えることから、マルウェアやスパイウェアを防止するために一緒に機能するように構成されている。モバイル通信機器が、メモリ、処理能力、およびバッテリ能力において制限されているために、各機器が分析を実行することよりもむしろ、アプリケーションがマルウェアまたはスパイウェアのどちらであるかと考えられるかを決定するために、本明細書中に記載されているような分析を、サーバ151が実行することは望ましいことかもしれない。.
さらに、複数の機器が同じアプリケーションに遭遇した場合に、分析が繰り返される必要がないように、サーバが分析の結果を格納することは望ましいかもしれない。さらに、分析・システムで使用するために、さまざまなソースからのデータを提供するために、本明細書に記載のデータ収集システムを使用して、潜在的に悪意のあるアプリケーションに関するデータをサーバ151が収集することは、望ましいかもしれない。
【0277】
実施例では、モバイル通信機器101が、データ・オブジェクトは、悪意のある、またはそうでなければ望ましくないかどうかを判断するために、そのようなアプリケーション・パッケージまたは実行可能ファイルとして、データ・オブジェクトを評価するときに、データオブジェクトの評価のために機器は要求、つまりデータオブジェクトの識別情報を含んでいる要求をサーバ151に送信する。
【0278】
実施例では、モバイル通信機器101により送信された要求は、評価を行うことで、サーバで使用するためのデータ・オブジェクトのアプリケーション・データが含まれている。たとえば、そのようなアプリケーションのパッケージ名とハッシュ、モバイル通信機器などの識別情報を送信することに加えて、さらに、そのような静的分析を行うことにより、機器によって決定され、利用されるAPIのリストなどのデータオブジェクトや情報によって要求された権限を、モバイル通信機器は、送信することができる。
【0279】
実施例では、モバイル通信機器101は、オペレーティングシステムの提供する機能と潜在的に追加の処理を使用して、データ・オブジェクトのメタデータを収集する。例えば、ブラックベリーとアンドロイドの両プラットフォームは、アンチマルウェアアプリケーションがデバイスにインストールされたパッケージのリストを照会することができるメカニズムを提供する。.各々はまた、そのようなパッケージが、オペレーティングシステムに自分自身を統合したり、公開することを選択する方法についての暗号署名情報や情報などのパッケージについての追加情報を照会するためのメソッドを提供する。
【0280】
別の例では、モバイル通信機器101は、評価を生成するサーバ151を支援するためにデータ・オブジェクトから特徴を抽出することができる。実施形態では、モバイル通信機器101は、サーバ151に送信するアプリケーションデータを抽出するためにデータ・オブジェクトで静的分析を実行する。例えば、アンドロイド上では、機器は、典型的には、 「クラス デックス(classes.dex)」と呼ばれるアプリケーションパッケージの実行可能部分を分析することができる。機器は、直接または間接的に 「バインダー」のメカニズムを利用し、アプリケーションパッケージを分析に使用するためのサーバ151へのコールに関する情報を送信し、実行可能ファイルが実行するプロセス間通信の呼び出しリストを抽出することができる。
【0281】
実施例では、サーバ151は、すぐにデータ・オブジェクトを分析することができるか、または、1つは本明細書に開示されるようなプロセスを使用して、追加情報を収集する必要があるかもしれない。
【0282】
データ・オブジェクトのための評価を生成した後、サーバは、モバイル通信機器101への評価を送信する。.実施例では、評価には、データオブジェクトが望ましくないかと考えられているかどうかを示す指標が含まれている。例えば、サーバ151は、既知の良い、既知の悪い、および知られていないという3つの評価のうち1つを送信することができる。.データ・オブジェクトが良いということが知られている(例えば、それは高い信頼レベルを持っているので)とサーバが判断した場合には、データオブジェクトが既知の良いであるとの評価を返送する。データ・オブジェクトが悪いということが知られている(例えば、それはマルウェアの一部であると判断されたため)とサーバは判断した場合は、データオブジェクトが既知の悪いとの評価を返送する。サーバが決定を下すのに十分な情報を持っていない場合、データ・オブジェクトは知られていないとの評価を返送する。
【0283】
実施例では、そのモバイル通信機器またはそのユーザがデータ・オブジェクトを分類する方法を決定するためにリスクや信頼性のレベルを使用できるように、評価には、データ・オブジェクトのリスクレベルまたは既知の良い、あるいは既知の悪いとの評価の信頼性のレベルが含まれている。
【0284】
実施例では、モバイル通信機器101に対してサーバ151により送信される評価は、サーバ151がデータオブジェクトが望ましくないと判断した理由についての情報が含まれている。
【0285】
例えば、サーバ151は、データオブジェクトが属していると決定されたマルウェアファミリーの名前を送信するかもしれないし、サーバは、モバイル通信機器101が、データオブジェクトについての追加情報を表示するために使うことができる、サーバ151を参照しているHTTP URLを送信するかもしれない。そのURLは、データオブジェクトについての格納された情報を検索することを可能にするためにサーバ151によってデコードされる識別子を含んでいる。
【0286】
ウェブページは、そのような評価を生成するために使用される様々な分析システムからの出力などの追加情報を表示することができる。たとえば、ウェブページは、データオブジェクトの分布情報、データオブジェクトによって接続された共通のサーバについての情報、データオブジェクトの人間分析によって提供された情報、データオブジェクトと関連付けられた信頼データ、データオブジェクトの地理的分布についての情報、同様なデータオブジェクトについての情報およびデータオブジェクトの作者についての情報を表示することができる。
【0287】
機器が送受信するデータ量を最小化し、受信したデータオブジェクトを評価するために必要な時間を短縮し、データオブジェクトを評価するために必要とされている時間を減らし、バッテリ消費を最適化し、そしてサーバ151上の負荷を最小化するように、データオブジェクトの評価のためにサーバ151に送信するに必要なモバイル通信機器101の要求を最小化することは、望ましいことであろう。
【0288】
実施例では、モバイル通信機器101は、サーバ151から受信した評価情報のローカルキャッシュを保持している。ローカルキャッシュは、SQLiteとして、または評価のストレージ用に最適化されて独自のバイナリファイル形式で、軽量のデータベースを使用して格納することができる。たとえば、キャッシュは、データオブジェクトが望ましくないか否かにかかわらず、データ・オブジェクトに関連付けられているリスクレベル、およびデータ・オブジェクトの識別情報などの定義情報であることを示す表示を含めることができる。
【0289】
機器がデータオブジェクトをスキャンする際に、ローカルキャッシュにデータオブジェクトを識別するための情報を調査することができる。.データ・オブジェクトのための評価がキャッシュされている場合は、その評価が使用される。評価がキャッシュされていない場合、機器はサーバ151から評価を取得する。実施例では、機器上で遭遇したデータオブジェクトのためにモバイル通信機器が評価をそのキャッシュに挿入するときに、データオブジェクトのための定義情報を生成する。
【0290】
たとえば、機器は、サーバからの評価結果をキャッシュしていることを確認するために、データオブジェクトの内容のハッシュを使用することができる。実施例では、モバイル通信機器が評価をアプリケーションの適切なセットに適用することができるように、サーバ151は、評価と一緒に定義情報を送信する。例えば、いくつかのケースでは、サーバは、ア評価が同じ暗号鍵によって署名されたすべてのデータオブジェクトに適用されることを示している可能性がありながら。サーバ151は、評価がその内容のハッシュによって識別された特定のデータオブジェクトにあてはまるだけであることを示すかもしれない。
【0291】
実施例では、モバイル通信装置101は、モバイル通信機器上で動作する認識コンポーネント(後述)で使用するために、既知の良好なデータオブジェクトおよび既知の不正なデータオブジェクトのために、定義されたローカルなキャッシュを格納する。認識コンポーネントを使用して、モバイル信機器は、ローカルなキャッシュが、疑わしいデータオブジェクトと対応する定義と対応する評価を含んでいるならば、疑わしいデータオブジェクトのために評価を決定することができる。
【0292】
たとえば、定義は、ハッシュ識別子、パッケージ名、およびデータオブジェクトに一致する暗号の署名などの基準を使用することができる。各定義は、対応する評価(例えば、「良い」、 「悪い」)を持つかもしれない。定義が疑わしいデータ・オブジェクトに一致した場合、定義の評価は、疑わしいデータ・オブジェクトに使用される。どの定義も安全であるか、安全でないと認められているデータなどのデータオブジェクトに対応していないならば、モバイル通信機器101は、より包括的な分析のためのサーバ151に疑わしいデータ・オブジェクトのアプリケーション・データを送信することができる。
【0293】
実施例では、キャッシュは、サーバ151を参照することなく、モバイル通信機器101上の反マルウェアソフトウェアがデータオブジェクトを悪意に満ちていると認識するであろうかどうかを決定する、主記憶の反マルウェアの定義として使われる。
【0294】
実施例では、キャッシュは、機器の認識コンポーネントによって使用される定義情報を格納する。たとえば、キャッシュは、パッケージ名、暗号署名、バイト配列、パターン、またはキャッシュされた評価で機器上のデータオブジェクトを対応させるために使用されるロジックのような定義情報を含ませることができる。
【0295】
キャッシュは、機器上の悪意のあるアプリケーションとデータ・オブジェクトであることの評価に特定のバイト配列を連結するエントリを含んでいて、機器上のデータオブジェクトがそのバイト列を含んでいる場合、その後、機器は、そのデータオブジェクトを、サーバ151に連絡することなく悪意に満ちていると決定することであろう。
【0296】
実施例では、キャッシュ単独は、定義情報、悪意のあるデータ・オブジェクトの単一の評価に対応するすべての定義が含まれている。実施例では、キャッシュは、ユーザに表示するための情報を取得する機器のために、サーバ151に送信することができ、上述したように評価情報、おそらく識別子を含む評価情報が含まれている可能性がある。サーバ151からデータを取得するために使用されているような識別子は、キャッシュは、それが潜在的なマルウェアについて格納する情報を最小限に抑えることができる。実施例では、機器のキャッシュがホワイトリストおよびブラックリストの両方として機能する。
【0297】
キャッシュは既知の良いまたは既知の悪いデータオブジェクトのための定義情報を含んでいて、データオブジェクトが、既知の良いものであるか、または既知の悪いものであると決定されているならば、機器は、評価をサーバ151に要求する必要はない。
【0298】
実施例では、ブラックリストとホワイトリストの両方として機能するキャッシュは、データオブジェクトが認識可能に不良または認識可能に良いかどうかを判断するために、モバイル通信機器で認識コンポーネントによって使用される。.機器で発生したデータ・オブジェクトがキャッシュに格納された定義データに基づいて認識可能に良いものでも認識可能に悪くもない場合には、その後、機器がサーバからデータオブジェクトのための評価を受け取ることができるように、機器はデータオブジェクトのためのアプリケーションデータをサーバ151に送信することができる。実施例では、新しい評価を受け取るか、格納された評価が、無効であると考えられているときに、モバイル通信機器の上の反マルウェアソフトウェアは、機器によって修正される定義のプレポピュレートキャッシュと一緒にインストールされる。
【0299】
実施例では、機器上でキャッシュされた評価と定義は、モバイル通信機器が、潜在的に時代遅れのデータに依存しないように、一定の期間有効であるとみなされる。実施例では、キャッシュされた評価や定義が無期限に保存され、時間的な制約がなくても有効であると考えられる。.実施例では、機器は、一定の形式の評価と定義を格納するだけである。たとえば、機器は、既知の良いという評価をキャッシュするだけかもしれず、または既知の悪いという評価をキャッシュするだけかもしれない。このケースでは、対応する評価がある場合には、定義が格納されるだけである。実施例では、キャッシュの一部は、RAMなどの揮発性記憶装置に格納され、キャッシュの一部は、フラッシュなどの不揮発性メモリに格納される。
【0300】
揮発性メモリは、一般に不揮発性のメモリよりまだずっと速く、もっと制限されるために、より少し頻繁に不揮発性のメモリにおいて評価と定義にアクセスする間に、機器は、揮発性メモリの中に、頻繁にアクセスされた評価と定義を格納することができる。
【0301】
反マルウェアシステムが開かれるたびに、反マルウェアシステムがデータオブジェクトを分析するならば、それが最近スキャンされて、変更されていなかった場合、データオブジェクトのための評価を、非常に迅速に決定することは望ましいことであろう。
【0302】
揮発性メモリ内に最近使用した定義と評価を格納することによって、機器は非常に迅速に過去の評価をリコールすることができる。
【0303】
実施例では、サーバ151は、機器がそれをキャッシュして、そうであれば、どのくらいの間であるかを示す、評価とキャッシュ制御情報を送信する。.例えば、サーバ151は、機器が評価をキャッシュする必要があることを示すキャッシュ制御情報を含む、評判の良い会社からの一般的なアプリケーションのための評価を送信することができる。サーバ151は、あまり知られていないアプリケーションの評価を送信した場合、アプリケーションのより多くが知られた後に将来的に望ましくないと考えられることが判明するため、機器が評価をキャッシュするべきでないことを示すキャッシュ制御情報を含んでいてもよい。
【0304】
実施例では、サーバ151は、評価の信頼に基づいて、キャッシュ制御情報を決定する。.例えば、アプリケーションが未知であることを、サーバに利用可能なデータの不足のために示している評価が自信があるとは考えられない一方で、高い信頼レベルを持っているアプリケーションのために既知の良いという評価は、非常に自信があると考えられるかもしれない。実施例では、評価の有効期限が切れたときに、評価に関連付けられているキャッシュされた定義情報も期限切れになる。
【0305】
キャッシュされた評価を取り出すことが、サーバー151(それによってデータオブジェクトが悪意に満ちているかどうかを決定することによって遅延とオーバーヘッドを最小化する)から評価を取り出すよりも速いために、キャッシュされたデータからローカルに決定されることができる評価の数を最大化することは望ましいことかもしれない。
【0306】
実施例では、サーバは、評価を要求する機器を使用せずにモバイル通信機器に評価を送信し、モバイル通信機器では、そのキャッシュ内にこれらの評価を格納する。サーバ151が利用できる評価のすべては、モバイル通信機器101上に望ましい量よりも多くのストレージを必要とするかもしれないために、サーバは、その利用可能な評価のサブセットを送信するだけである。実施例では、評価は、機器のデータとアプリケーション・データを分析することにより、サーバ151はどの評価をモバイル通信機器101に送るかを決定する。例えば、サーバが、与えられたオペレーティングシステムに関連した評価のすべてをサーバが照会することができるような方法でデータ・オブジェクトの評価に関連付けられていると互換性があるオペレーティングシステムを、サーバ151は格納することができる。
【0307】
サーバ151は、その後に、機器で実行されているオペレーティングシステムと互換性のあるデータ・オブジェクトがあるモバイル通信機器に対して評価を送信するだけである。.その他の評価項目によって参照されるデータ・オブジェクトは、機器のオペレーティングシステム上で実行することができないために、その他の評価項目は、機器に送信されることはない。.
別の例では、サーバは機器に送信するために、どのような評価をするかを決定するために、機器の国、言語や地域コードを使用することができる。米国のユーザは、ロシアのユーザがスペイン語のアプリケーションをダウンロードしないのと同様に、ロシア語のアプリケーションをダウンロードすることはほとんどない。
【0308】
実施例では、評価が不必要に再送信されないように、すでに機器に送信されており、機器で正常に受信した評価を、サーバ151は格納する。機器が望まれている評価を受けていない場合、サーバは評価を機器が次回に接続したときに送信する。.いずれの評価がすでに機器によって受信されているかを効率的に追跡するために、与えられた機器が1グループ以上ですべての評価を受け取るように、サーバ151は評価をグループにすることができる。例えば、評価の与えられたグループは、変更(例えば、新しいデータオブジェクトが評価され、既存の評価への変更)を、一日に何回もしている可能性がある。しかしながら、機器は、一日一度だけ更新された評価を受けるように構成することができる。いずれの評価を機器に送信するかを決定するために、サーバは、機器がグループのために最後に最新の評価を受信した時間を記録し、機器が最後に評価を受信してからのグループへの変化を調査するだけでよい。たとえば、機器が月曜日に、与えられたグループのために評価のすべてを受け取り、2つの新しい評価が火曜日に、グループに追加されるならば、機器が水曜日に接続して、サーバは、どのような評価が月曜日以来グループで変わっているかを照会する必要があり、そして、まさにその2つの追加された評価を送る必要があることを判断するであろう。
【0309】
実施例では、サーバが1台の機器に送信する準備ができたという追加の評価があることを、機器に警告するために、サーバは本明細書に記載されるようなプッシュサービスを利用する。サーバが、グループの一部である評価をアップデートするときに、そのようなプッシュサービスを使う場合には、そのグループから評価を受け取るすべての機器は、ほぼ直ちに最新の評価によってアップデートされることができる。
【0310】
選択的に評価を機器に送るためにサーバ151によってグループ分けすることができるさまざまな方法がある。.例えば、与えられたオペレーティングシステムと互換のデータオブジェクトには、機器上に格納することが望まれるよりも、より多くの評価があるかもしれない。
【0311】
この場合、サーバは、配布データまたはサーバ151で入手可能なマーケットプレイスデータに基づいて、最も普及しているデータ・オブジェクトに対応する評価のグループを生成することがある。この場合、機器は、彼らが遭遇する可能性が最も高いデータオブジェクトに対して評価をキャッシュする。さらに、以前に機器によって遭遇されたデータオブジェクトと対応しており、それら以前の遭遇に基づいて、どんなデータオブジェクトであるかを予測して、機器が将来で遭遇するであろう、サーバーで入手可能なアプリケーションデータを分析して、サーバ151によって遭遇するデータオブジェクトのためにキャッシュされた評価を、機器が持っているという可能性を向上させることは、また可能である。これらの可能性が高いデータ・オブジェクトのための評価は、その後、機器に送信することができる。
機器上のキャッシュに対する評価データの最適量は、機器のハードウェア、ユーザの行動や、ユーザの好みに応じて異なる場合があるために、データ量を調整できるようにすることは望ましいことであろう。実施例では、モバイル通信機器101上のキャッシュに対する評価データの量は、サーバ151によって決定される。
【0312】
例えば、サーバ151は、機器上で使用可能なストレージの量、ユーザがアプリケーションをダウンロードする頻度、そして、どのように、可能性の高い追加のキャッシュされた評価データが、機器によって送信された必須の評価要求の数を減らすことになるのであろうかを調べることができる。
【0313】
機器が使用可能な大量のストレージを持っていて、そのユーザーが大量のアプリケーションをダウンロードする場合には、サーバは、大量の評価データをキャッシュすることを判断することができる。しかしながら、機器が使用可能な少量のストレージを持っていて、そのユーザーが稀にしかアプリケーションをダウンロードしない場合には、サーバは、少量の評価データしか、あるいは全く評価データをキャッシュしないと判断することができる。
【0314】
それらの要求が追加の評価情報をキャッシュしている機器によって避けられたかもしれないかどうかを決定するために、サーバは、また、機器によって行われた前回の評価要求を調べるかもしれない。たとえば、機器が現在アプリケーションの特定のグループに属している評価を受信して、機器がアプリケーションの追加のグループのために評価を受信すべきであるかどうかの評価がサーバによりされているならば、サーバは、それらの評価のいくつが、2番目のグループに存在していたかを決定する以前の評価要求を調査する。
【0315】
サーバ151が、十分な評価要求が避けられたであろうと決定したならば、その後、両方のグループから機器に評価を送信し始めるであろう。実施例では、ユーザは、モバイル通信機器101上のキャッシュされた評価に割り当てるストレージの量を制御することができる。
【0316】
常に絶対の評価(例えば、既知の良いまたは既知の悪い)を生成する代わりに、サーバ151が、それが評価を未だ持っていないという報告することは、望ましいことかもしれない。実施例では、サーバ151は、オブジェクトの望ましくないことは、不明であることを示すデータ・オブジェクトのための評価を送信する。モバイル通信機器101は、データ・オブジェクトを検出すると、評価のためにサーバ151に要求を送信し、未知の評価を受信して、機器は、一時的にデータオブジェクトを信頼し、後になってから評価の要求をリトライする。不要な要求を避けるために、機器は、未知の評価を受信し続けるならば、リトライの間に時間遅延を増大させる。
【0317】
一時的な信託の期間中に、機器は、評価の要求をデータ・オブジェクトがスキャンされるたびに再送信することはない。例えば、彼らがアクセスされた際にファイルシステム上のファイルをスキャンするように設計されたモバイル機器上の反マルウェアシステムでは、データ・オブジェクトに最初にアクセスすると、サーバ151への評価要求を送信する機器をもたらすことができる。サーバが未知の評価を返した場合に、機器は、データオブジェクトのための識別情報、データオブジェクトが許可されてることを示す一時的な評価、および評価が妥当である時間、を示しているその評価データベースの一時的な入力を格納する。
実施例では、未知の評価におけるデータ・オブジェクトについての情報をサーバ151が送信し、モバイル通信機器101は、ローカルな分析システムの中へのインプットとしてサーバ151からのそのデータ評価を使用する。例えば、モバイル通信機器101は、それが悪意のあるものかどうかを判断するために、データ・オブジェクトの内容を解析するヒューリスティックシステムを持つことができる。サーバ151から、既知の良い、または既知の悪いとの結果の場合には、機器がいずれかのヒューリスティックシステムを実行したり、ヒューリスティックシステムからの結果を破棄することはない。
【0318】
サーバ151は、データ・オブジェクトのための信頼レベルを含め不明な結果が返された場合には、機器101は、望ましくないか否かとしてデータ・オブジェクトを扱うかどうかを決定するために、サーバが提供する信頼レベルでヒューリスティックシステムからの結果を結合する。.例えば、モバイル通信機器101は、サーバ151によって報告された信頼レベルに基づいて局所的な分析から、結果を拡大・縮小することができる。
【0319】
機器上のヒューリスティックシステムは、データ・オブジェクトが66%危険であると判断しており、サーバ151からの未知の評価は、データ・オブジェクトが不審な1%の信頼レベルを持っていることを示している場合には、機器は、データ・オブジェクトが望ましくないと判断する。しかしながら、サーバ151からの未知の評価は、データ・オブジェクトが70%の信頼レベルを持っていることを示している場合には、その後、機器101は、データオブジェクトが望ましいと判断する。
【0320】
それらがそのようなものと認定されると同時にマルウェアとスパイウェアなどの不適当なアプリケーションに対処するために、以前に良いか、または未知であることとして分類された後に不適当であると決定されているデータオブジェクトについて、サーバ151が通知書をモバイル通信機器101に送信することは、望ましいかもしれない。
【0321】
実施例では、機器によって遭遇されたデータオブジェクトが、良いか、未知であると評価されたが、その後、不適当であると後で決定されていたならば、サーバ151は、データオブジェクトに遭遇した機器のすべてについて決定することができ、データオブジェクトが不適当であることを示す通知書を送るように、サーバ151は、モバイル通信機器101によって遭遇されたデータオブジェクトについての情報を格納する。
【0322】
実施例では、通知の対象であるデータオブジェクトが、機器のオペレーティングシステム上で動作することができるのであれば、サーバ151は、通知書を機器101に送信するだけである。たとえば、機器がブラックベリーを実行し、アンドロイドのスパイウェアアプリケーションが検出された場合には、サーバ151は、機器に通知を送信しないだろう。しかしながら、機器がブラックベリーのスパイウェアアプリケーションに遭遇したならば、サーバ151は通知を送信するであろう。
【0323】
本明細書に開示されるように、データオブジェクトが、指定された機器上で動作するかどうかの判定は、機器のための機器データとデータオブジェクトのためのアプリケーションデータを分析することによって決定されるであろう。
【0324】
実施例では、装置101にサーバ151から送信された通知は、機器によって消費されるように設計されており、データ・オブジェクトの識別情報と修復の両方の情報が含まれている。たとえば、通知は、プラットフォームのベンダーが提供するプッシュサービスを利用して、パッケージ名とデータ・オブジェクトのコンテンツのハッシュ値を含んでいてもよい。通知は、また、ユーザがデータオブジェクトをアンインストールするように要求し、ユーザ介入なしでデータオブジェクトを削除して、データオブジェクトを含んでいるどのようなプロセスでも「殺す」などの改善行動を指定することができるかもしれない。
【0325】
実施例では、通知は、是正命令、データオブジェクトは望ましくないと考えられる理由の説明、または特定の行動を取るための要求などのデータ・オブジェクトについてユーザーに表示するための情報が含まれている。実施例では、通知は、テキストメッセージ、電子メール、または電話の呼び出しのような人間が判読可能なメッセージの形である。ユーザが危険なデータオブジェクトに反応することを保証するために、サーバは、人間に解読可能であって機械で読み取りが可能な通知を実行することが望ましいかもしれない。たとえば、サーバがユーザに電子メールメッセージを送信し、ユーザの介入なしにデータ・オブジェクトを削除するために、機器のための通知を送信することができる。
【0326】
実施例では、モバイル通信機器101は、機器の上に存在するすべてのデータオブジェクトのデータベースを含んでいて、機器によって遭遇されたデータオブジェクトが、不適当であると決定されているときに、サーバ151はアップデートされた署名データを機器に送信する。
【0327】
機器がアップデートされた署名データを受信すると、それは機器上に存在するデータ・オブジェクトにアップデータされた署名データと比較される。機器上に存在するどのようなオブジェクトでも、アップデートされた署名データによって、不適当であると考えられるのであれば、データオブジェクトがスキャンされる次回のために待たずに、機器は直ちに改善行動を開始する。
【0328】
反マルウェアシステムがデータオブジェクトのために評価を実行する場合、データオブジェクトを再評価する必要があるのを避けるために、変更されていない限り、データ・オブジェクトを信頼するのは望ましいかもしれない。実施例では、モバイル通信機器101は、分析されていて、望ましいと考えられる識別されたデータオブジェクトのリストを管理する。
【0329】
データ・オブジェクトがスキャンされることが望まれている場合、機器は、データオブジェクトが存在するかどうかを確かめるために最初にこのリストをチェックすることができる。オブジェクトが存在している場合、機器はオブジェクトを再スキャンしない。ファイルをスキャンし、それが望ましいと決定した後、機器は、リスト内のデータ・オブジェクトの識別子を配置する。識別子は、ファイル名、ファイルシステムノードの識別子、またはオペレーティング・システム固有のデータ・オブジェクト・ハンドルが含まれている。
【0330】
実施例では、モバイル通信機器は、機器がリブートされるか、またはバッテリを使い切っている場合であって、リストを保存することができるように、非揮発性記憶装置へこのデータオブジェクトのリストを保存する。評価を保存し、後でそれにアクセスする場合、どのように格納された評価でもデータオブジェクトの内容の特定のセットのためにだけ有効であることは、重要なことである。データオブジェクトの内容が変更されているならば、データオブジェクトが、オリジナル・データ・オブジェクトに存在しなかった悪意に満ちたコードを含むように修正されている可能性があるために、別の評価は必要であるかもしれない。
【0331】
実施例では、このリストには、データオブジェクトの内容の暗号化ハッシュを含んでいる。機器がデータ・オブジェクトがリスト上にあるものと見なされているかどうかを決定すると、それは、リストに格納されたハッシュを使用して、機器に格納されたデータオブジェクトのハッシュ値と比較する。ハッシュが一致した場合、データ・オブジェクトは、リスト上にあると考えられる。
【0332】
実施例では、マルウェア対策ソフトウェアは、ファイルを開いたり閉じたりするときに決定することができる。リスト上のファイルが書込みアクセスでオープンされた場合、それはリストから削除される。ファイルがオープンされて書き込まれている間、ファイルはリストに追加されることはない。
【0333】
この開示の実施例は、モバイル通信機器を確保するために十分なオプションを提供する一方で、ネットワークトラフィックを削減するための他の方法が考えられることを理解するであろう。実施例では、モバイル通信機器が最初に動き出したとき、またはパワーオンしたとき、またはモバイル通信を監視することについて責任があるアプリケーションが最初に起動したときに、モバイル通信機器は分析を機器(「スキャン」)上のデータ常駐のすべてに要求することができる。これは、モバイル通信機器のセキュリティのベースライン分析を提供する。新しいアプリケーションが、モバイル通信機器によって、または予め設定された時間間隔で、またはユーザー要求によりアクセスされたときに、今後のスキャンを実行することができる。スキャンは、ネットワーク121へのアクセスに応じて調整することができる。接続性に問題があるならば、より新しいデータだけが評価されるか、データを疑うことができる。接続性が向上したときにスキャンが指示されて、実行されてもよい。
【0334】
実施例では、モバイル通信機器101上のマルウェア対策システムは、オンデマンドおよび機器上に存在するすべてのデータ・オブジェクトのスケジュールされたスキャンの両方を実行する機能がある。反マルウェアシステムは、データ・オブジェクトのための評価を実行するために、サーバ151を利用した場合は、スキャンを実行するのに必要な時間を最適化することが望ましいかもしれない。
【0335】
評価の要求が機器によって送られる時間と機器がサーバ151から反応を受ける時間との間で、ネットワーク潜在性が遅延を起こすために、反応を待つ間に、機器が単にアイドリングしないそのような方法で、要求のパイプラインを敷設することは望ましいことであろう。実施例では、モバイル通信機器は、複数のデータオブジェクトのための評価を提供するために、要求をサーバ151に送信して、サーバ151はそれらの複数のデータオブジェクトのための評価を機器に送信する。
【0336】
たとえば、要求に応じたスキャンの間に、機器は、最初に機器上のデータオブジェクトのすべてを列挙するために構成することができ、その後、列挙されたデータオブジェクトのすべてを評価するために、要求をサーバー151に送信することができる。.別の例では、機器は1度に10個のデータオブジェクトを列挙することができ、その後、要求をサーバに送信することができ、そして、追加データオブジェクトをスキャンする前に、それらの10個のデータオブジェクトのための反応を受信することができる。
【0337】
別の例では、機器は、データオブジェクトを列挙し、サーバからの評価反応を待たずに列挙処理を続けて、評価要求を送信することができる。列挙が完了すると、機器は反応を待つだけでよい。
【0338】
システムが処分に達するまで、データのロードやオブジェクトの実行をブロックするアンチマルウェアシステムでは、それがロードまたは実行する必要がある前に、データ・オブジェクトを評価することが望ましいであろう。実施例では、データ・オブジェクトがロードされたときに、機器が以前のスキャン結果を参照できるように、モバイル通信機器101は、先を見越してデータオブジェクトをスキャンし、結果を格納する。
【0339】
たとえば、例えば、機器が、複数の他のファイル(例えば、共有ライブラリにリンクされている実行可能ファイル)に依存するプログラムをロードするときに、機器上の反マルウェアシステムは、それが依存するライブラリのすべてを決定するためにプログラムを分析することができ、プログラムとその依存したライブラリのための評価のために要求をサーバ151に送信することができ、その後、機器が肯定的な評価結果を受信したら、プログラム実行に進むことを許容することができる。
【0340】
システムがすでにライブラリの最新の評価を持っているために、機器のオペレーティングシステムが、アプリケーションが依存するライブラリをロードするときに、サーバ151への要求は必要ない。ライブラリが先を見越して分析されなかった場合には、機器が、サーバ151への複数の要求がシリアルに発生するのを待つ必要があるために、プログラムのための全体のロード時間がより大きくなる可能性がある。実施例では、それらがダウンロードされた後、それらが実行される前に、モバイル通信機器の上のソフトウェアは、データオブジェクトを分析する。
【0341】
たとえば、機器上のマルウェア対策ソフトウェアは、新しいファイルをダウンロードしたディレクトリをウォッチしたり、または、単に、ファイルが作成されて、書き込まれ、それから閉じられることを待つこともできる。ダウンロードが完了したら、ファイルが開かれたときに、システムがすでにそれを評価し、前の評価を呼び戻すことができるように、ソフトウェアは、新しいファイルのスキャンを開始することができる。
【0342】
それがデータオブジェクトを評価している間に、アンチマルウェア・システムが、ユーザが要求した操作か、あるいはシステムの操作を妨げるた場合には、とりわけ評価が重要な潜伏期を過ごすであろうネットワーク接続に依存するならば、ユーザに評価が進行中であるという指示を与えることは望ましいことであろう。
【0343】
実施例では、モバイル通信機器101上のマルウェア対策システムは、システムがデータ・オブジェクトを走査し、ユーザが要求した操作をブロックしている途中に、データオブジェクトがスキャンされていることを示すユーザーインターフェイスを表示する。実施例では、反マルウェアシステムは、アプリケーションとそれに依存したライブラリのすべてが、自身でアプリケーションス起動プロセスに自分自身で介在することによって評価されるまで、反マルウェアシステムがアプリケーションの実行を防止しているならば、機器のユーザに感知が可能な重要な遅延を生じさせることになるであろう。遅延と関連した不快感は、単純に反応しない見せかけの機器の代わりに、何が起こっているかをユーザに知らせることによって、軽減することができる。
【0344】
ユーザがアプリケーションを起動すると、機器は、反マルウェアシステムが、ユーザが起動しているアプリケーションを評価していることを示すユーザインタフェース画面を表示する。実施例では、ユーザ・インタフェースは、機器のユーザに、スキャンが終了するのを待ってスキップすることを許容することができる。たとえば、データオブジェクトの機器のスキャンが、サーバ151に接続する必要があり、ユーザが、待ちたくない場合であれば, ユーザは、評価が戻るのを待たずに、処理を進めることができる。評価が、続いてデータ・オブジェクトが悪意であるということを返送した場合には、機器は、データ・オブジェクトの実行を許可されたにもかかわらず、このようなデータ・オブジェクトを含む任意のプロセスを強制終了し、データ・オブジェクトを削除するなどの修正アクションを開始することができる。
【0345】
ユーザは、評価されたアプリケーションを持つことに興味をもっているかもしれない。しかし、サーバ151からの反応に待機することは望まない。ユーザが分析結果を待っている間に、完全な分析を放棄して、アプリケーションを使用することを選択することができる。そのような状況では、サーバ151またはユーザのモバイル通信機器101が、正式な分析に先がけて一時的な信頼性評価を提供することができるのであれば、それは、役に立つことであろう。
【0346】
レポートは、インターフェース要素、通知、警告、リスク評価等の形態にすることができる。実施例では、モバイル通信機器101は、アプリケーションが一時的に信頼できるかどうかを判断するために局所分析を実行することができる。また、ユーザが誤って高リスクであるアイテムをスキップしないように、反マルウェア・システムがサーバからの評価を待っているときに示すユーザインタフェース上に、データオブジェクトに関する情報を表示することが望ましいことであろう。
【0347】
実施例では、サーバ151からの評価を待っている間に、待機しているユーザインタフェースは、ローカル分析の結果を表示する。たとえば、ユーザ・インターフェースには、データ・オブジェクトの機能またはデータオブジェクトのリスクスコアを表示することができる。実施例では、ローカル分析が、データ・オブジェクトが低リスクであると判断した場合に、機器は、ユーザに、サーバ151からの評価を待つことをスキップすることを許容するだけである。
【0348】
たとえば、リスクスコアは、データオブジェクトがアクセスする敏感な機能のものを分析することによって計算することができる。ユーザの連絡先リストとブラウザの履歴にアクセスするデータオブジェクトは、どのような敏感な機能にもアクセスしないデータオブジェクトよりも危険であるとみなすことができる。
【0349】
実施例では、機器101上のマルウェア対策システムは、それが、スキャンの文脈に基づいた結論に達する前に、サーバ151からの応答を待つべきであるかどうかを決定する。
【0350】
たとえば、システム起動の間に起きるか、アクティブなネットワーク接続が全然ないスキャンは、サーバからの応答を待って、ブロックすべきでない。ネットワーク接続が存在するかどうかを判断するために、反マルウェアシステムは、オペレーティングシステムによって提供されたネットワークインタフェースの状態情報を照会し、サーバ151への要求がタイムアウトするかどうかを分析するなどのさまざまな方法に依存することができる。
【0351】
反マルウェアシステムがシステム・コールを呼び出した場合に、サーバ151からの応答を待っている間に、データオブジェクトを実行しようとしているシステムの結果として発生するスキャンは、ブロックする必要がある一方で、応答を待っている間に、データオブジェクト(例えばデータオブジェクトのための抽出するファイルマネージャ)についての情報を得ているアプリケーションに起因しているスキャンは、ブロックすべきではない。
【0352】
実施例では、データ・オブジェクトの評価のための要求が完了することができない場合には、後に再試行される。
【0353】
実施例では、正確な評価が追加の分析なしで生成することができるのであれば、反マルウェアシステムは、サーバまたはローカル分析の一部を省略することができる。たとえば、ローカル分析が、データオブジェクトを危険でないと判断した場合には、機器は評価をサーバ151に要求しないことができる。機器の上のローカルな分析コンポーネントによって決定されるように、スキャンされているデータオブジェクトが最小の危険を持っている場合に、機器は、評価をサーバ151に要求することしかできない。
【0354】
この例では、追加の結果を待つことを省略するかどうかの判定は、結果およびどのシステムが各結果を返送したかの両方によって決定される。サーバ151から結果を受信する前のローカルな分析から得た「悪い」という結果は、データオブジェクトを、悪意に満ちているとみなすのに十分であるかもしれない。しかしながら、ローカルな分析から得た「良い」という結果は、サーバ151からの評価が、データオブジェクトが、最終的な処置を決定する前に「良い」ということを立証するのを待つ必要があり、まだシステムを必要とするかもしれない。
【0355】
実施例では、複数の分析システムが違う結果を引き起こすならば、データオブジェクトの最終的な処置について決定をするために、どんな結果が生み出されたか、そしてどのシステムが各結果を引き起こしたかの両方を考慮した決定をするために、機器上の反マルウェアシステムは、システムの結果を分析する。
【0356】
例えば、反マルウェアシステムは、単一の望ましくない結果は、望ましくないとしてデータ・オブジェクトにフラグを立てるのに十分であると判断することができる。別の例では、サーバ151は、権威的であるとみなすこともできるし、または機器101が、評価を、権威的であるとみなすかどうかを決定することができるように、サーバ151はその評価の信用度を送信することができる。別の例では、サーバ151からの既知の悪いという結果が、信頼できるかもしれない。しかし、サーバからの既知の良いという結果は、機器101のローカルな解析システムからの既知の悪いという結果で上書きすることができる。
【0357】
実施例では、サーバ151は、マルウェアのリストまたは機器上で検出されていて、まだ、機器上でアクティブとなっている他の不適当なアプリケーションのリストを格納する。このリストに移入されるために、不適当なアプリケーションに遭遇したときはいつでも、不適当なアプリケーションが取り除かれる時はいつでも、そして不適当なアプリケーションが無視される時はいつでも、モバイル通信機器101は、イベントを、サーバ151に送信する。サーバ151がイベントを既知のデータオブジェクトと関係づけることができるように、イベントは、データオブジェクトのためにの情報を識別することを含む。
【0358】
たとえば、ユーザがマルウェアを無視することを選ぶかもしれないために、ユーザが、状況を避けるために各自の無視されたマルウェアのリストを見ることができるようにすることは重要なことである。その状況とは、悪意に満ちたユーザがマルウェアを誰かの電話にインストールしたり、マルウェアを無視するために反マルウェアソフトウェアを電話に設定してシステムがそれを自動的に取り除くことを防止することである。
【0359】
この状況では、携帯電話の正当なユーザに、マルウェアの一部が各自の機器上でアクティブであると伝えることができるが、それは無視されることになる。.実施例では、サーバ151は、機器101が、現在アクティブなマルウェアを有しているかどうかを示すデータを持っているために、ネットワークへのアクセスは、そのマルウェア状態に依存している機器に与えられた機器の状態のためにサーバ151を紹介しているネットワークアクセス制御系によって許可されるか、拒まれることになる。
【0360】
本開示の実施例では、サーバ側または 「クラウド」の分析は、全てが本明細書に援用される米国特許出願番号12/255、621で説明した3つのコンポーネントシステムのバージョンを使用して行うことができる。
【0361】
3つのコンポーネントシステムの例は図9に示されており、安全な、または、既知の良い(一部を成すか、またはホワイトリスト上に含まれることとしてここでまた参照されるもの)であるデータを確認するために使用することができる一番目のコンポーネント903を含む。2番目のコンポーネント905は、悪意に満ちていて、機器の資源を浪費するか、既知の悪い(一部を成すか、またはブラックリスト上に含まれるものとしてここでまた参照されるもの)であるデータを確認するために使用することができる。3番目のコンポーネント907は、既知の良いでも既知の悪いでもない、つまり未知であるとのデータを評価するために使用して決定するコンポーネントである。
【0362】
実施例では、既知の良いコンポーネント903と既知の悪いコンポーネント905は、モバイル通信機器101上に存在することができ、決定コンポーネント907は、サーバ151上に存在することができる。実施例では、既知の良いコンポーネント903、既知の悪いコンポーネント905、および決定コンポーネント907は、サーバ151上にすべて存在することができる。実施例では、既知の良いコンポーネント903、既知の悪いコンポーネント905、および/または決定コンポーネント907の一部は、モバイル通信機器101上に存在することができ、また既知のよいコンポーネント903、既知の悪いコンポーネント905、および/または決定コンポーネント907の一部は、サーバ151上に存在することができる。
【0363】
実施例では、既知の良いコンポーネント903と既知の悪いコンポーネント905は、サーバ151上に存在する一方で、決定コンポーネント907は、モバイル通信機器101上に存在する。
【0364】
たとえば、データストア111は、継続的にアップデートされて、サーバ151によってアクセス可能なマルウェアの定義を含めることができる。モバイル通信機器101は、分析のために、疑わしいデータオブジェクトのためのハッシュ識別子などのアプリケーションデータをサーバ151に送信するように構成することができる。
【0365】
サーバ151は、既知の良いコンポーネント903、既知の悪いコンポーネント905、および決定コンポーネント907を含むことができ、コンポーネントは2つ以上のサーバに分散させることができる。一つまたはそれ以上のサーバは、それによって疑わしいデータオブジェクトが認識可能に安全なデータオブジェクトであるかどうかを決定するために、アプリケーションデータを使用することができる。
【0366】
疑わしいデータオブジェクトが認識可能に安全であるならば、一つまたはそれ以上のサーバは、モバイル通信機器に通知するか、または、それがデータオブジェクトを受け入れて、処理することができることを機器に指示することができる。一つまたはそれ以上のサーバは、疑わしいデータオブジェクトが認識可能に悪意に満ちているかどうかを決定するために、そのときアプリケーションデータを使用することができる。疑わしいデータオブジェクトが認識可能に悪意に満ちているならば、一つまたはそれ以上のサーバは、モバイル通信機器に通知するか、データオブジェクトを拒絶し、さらにそれを処理しないことを機器に指示することができる。既知の良い、および、既知の悪いコンポーネントは、既知の良い、および既知の悪いデータオブジェクトを認知するためのさまざまな方法を持つことができる。
【0367】
データ、ロジック、およびそれぞれ認識可能に良いか、認識可能に悪いデータオブジェクトを識別するために、既知の良い、および/または既知の悪いコンポーネントによって使われたすべての他の情報は、「シグネチャ」または「定義」(以下でさらに説明される)と呼ばれることもある。
【0368】
既知の良いおよび既知の悪いコンポーネントが決定的でないならば、データオブジェクトの処置についての決定に達するために、1つまたはそれ以上のサーバは、追加の分析を実行することができる。実施例では、サーバ151は、データオブジェクトのためのアプリケーションデータを分析し、データオブジェクトが不適当であると考えられるかどうかについて判定を行うために、1つまたはそれ以上の分析システムを使用する決定コンポーネントを含んでいる。
【0369】
実施例では、追加の分析を実行するのに十分な情報がないのであれば、一つまたはそれ以上のサーバは、モバイル通信機器が分析のために追加のアプリケーションデータをサーバに送信するように要求することができる。たとえば、機器は、分析のために最初に、データオブジェクトのためのハッシュ識別子、パッケージ名、および暗号の署名者情報をサーバに送信することができる。既知の良いまたは既知の悪いコンポーネントが、データオブジェクトを既知の良いか、既知の悪いと認定することに失敗したならば、サーバは、データオブジェクト自身が分析されることができるように、機器がデータオブジェクト全体をサーバに送信することを要求することができる。追加のアプリケーションデータを受信すると、機器がデータオブジェクトを受信するか、拒絶すべきであるかどうかの処置に達するために、さらなる分析を、決定コンポーネント907によって、または手動で、実行することができる。
【0370】
実施例では、分析チームが、どのようなデータオブジェクトが、分析される必要があるかを容易に決定することができるように、与えられたデータオブジェクトについて、手動の分析が必要であるかどうかにかかわらず、サーバは、格納する。
【0371】
データオブジェクトのための評価が人の分析に依存することがあるために、サーバ151は、更なる検討が必要な、疑わしいデータオブジェクトのリストの格納を生成するために、分析システムを用いることができる。実施例では、サーバ151上の分析システムからのいくつかの結果は、モバイル通信機器101に送信される評価を生成し、他の残りの結果については、データオブジェクトは人の分析が必要であると認定する。
【0372】
たとえば、悪意に満ちたアプリケーションを識別するために、サーバ151が、一連のヒューリスティック(発見的学習)を利用しているのであれば、いくつかの一連のヒューリスティックは、十分にテストされていて、悪意に満ちた行動を正しく識別することにおいて容認できる精度を提供するかもしれない一方で、他の残りの一連のヒューリスティックは、結果が容認できるかどうかを決定するために人の分析を必要とする実験的なものであるかもしれない。
【0373】
以下では、より詳細に、上記の特定されたコンポーネントのそれぞれについて説明する。
【0374】
当業者であれば、モバイル通信機器のための既知の良いアプリケーションの総数が識別されることができるので、データベース、ロジック、または既知の良いデータオブジェクト(例えばハッシュ識別子などのアプリケーションデータ)のための定義を含んでいる他のデータストアに結合された既知の良いコンポーネント903の使用は、かなり偽陽性の不適当なアプリケーション検出を減らし、計算的に高価な分析を実行するか、分析のためにサーバに連絡する必要を減らすことができるということを理解するであろう。人は、また、既知の良いコンポーネント903の使用が、実行可能なソフトウェアコードを含んでいるデータのために特に効果的であるかもしれないということを理解するであろう。
【0375】
与えられたアプリケーションのための実行可能なソフトウェアコードは、めったに異なるモバイル通信機器の間で変わらないために、アプリケーションデータを評価するための既知の良いアプリケーションデータまたはロジックのデータベースを作成することは、安全な、または信頼できるデータを認識するための効果的な方法であるかもしれない。
【0376】
このデータベースは、モバイル通信機器上で入手可能な資源に応じてサイズが様々であるかもしれない。あるいは、既知の良いコンポーネントと既知の悪いコンポーネントなどとしてのこの開示の側面は、図1におけるデータストア111に結合されたサーバ151などの既知の良いか、既知の悪いのデータオブジェクトのためのアプリケーションデータのより大規模なライブラリとリモートのサーバにアクセスすることができる。
【0377】
この開示の実施例では、既知の悪いコンポーネント905は、データベース、ロジック、またはかなりの量のメモリを占有することなくモバイル通信機器上に格納することができる既知の悪いデータオブジェクトのための定義を含んでいる他のデータストアにアクセスすることができる。たとえば、ウイルスと他のマルウェアまたはスパイウェアの定義は、データベースまたは他のメモリ・キャッシュに格納されたハッシュ識別子などのアプリケーションデータ、パッケージ名、暗号署名、バイト配列、およびバイトのパターンを含むことができる。換言すれば、モバイル通信機器101上に格納された既知の良いデータベースを補完する既知の悪いデータベースがあるかもしれない。さらに、または代わりに、既知の悪いコンポーネント905は、他の悪意に満ちたソフトウェアコードに共通の特徴を使用して、マルウェアを識別することが可能であるかもしれない。
【0378】
ネットワークデータまたはデータ・ファイルに適用される時に、既知の悪いコンポーネント905は、パターンまたはセキュリティ脅威を示すプロトコルデータユニットまたはファイル形式の他の特徴を含んでいるデータベースにアクセスすることができる。
【0379】
既知の悪いコンポーネント905は、また、不正に、脆弱性を晒し、バッテリの寿命を消耗し、プライベートな、または無許可の情報をサード・パーティーに送信するか、不要に機器の資源を使い果たすなどのモバイル通信機器に影響するデータを識別することができきる。既知の良いコンポーネント903とデータベースと同様に、「悪い」と認定されたどのようなデータでもモバイル通信機器によってさらに処理から削除されて、隔離されるか、拒絶されるかもしれない。
【0380】
既知の悪いデータオブジェクトが検出された場合には、この開示の実施例は、同時係属中の米国特許出願番号12/255、635、「セキュリティのステータスおよび情報表示システム」という表題を付けられて、2008年10月21日にファイルされて、本明細書に全部に組み入れられたものに記載したのと同様の通知またはその他のメッセージが表示されることがあり、それに類似している他のメッセージを表示することができる。
【0381】
決定コンポーネント907は、既知の良いまたは既知の悪いのどちらかとも見なされることができないデータを評価するために使用することができる。モバイル通信機器101で受信されたデータの大半は、このカテゴリに該当する可能性があるために、このコンポーネントは、サーバ151上に存在することができる。このコンポーネントは、本明細書に開示される分析システムのどれでも使用することを含めて、データオブジェクトのための評価を生成するためにさまざまな方法を利用することができる。例えば、決定コンポーネント907は、受信データが、その意図されている宛先に手渡されるかもしれないか、害が機器に降り懸かることを防止するために拒絶されるかもしれないかを決定するために、静的解析、動態分析、配布分析、または分析の他の方法を適用することができる。この分析の例は以下で説明される。
【0382】
以下の例は、どのように1つまたはそれ以上のサーバが、米国特許出願No.12/255,621中で説明された方法を拡張するか、または置換するために使用する方法を示している。
【0383】
既知の良いコンポーネント、既知の悪いコンポーネント、および決定コンポーネントを含んでいる複数のシステムは、可能である。分析されているデータの特定の形式と防止されているセキュリティ脅威の形式に依存して、各コンポーネントの出力に適用される実行とロジックの異なる順序を採用することができる。
【0384】
実施例では、データが、既知の良いコンポーネント903によって、良いと決定されていないならば(ブロック805)、それは処理813から拒否される。既知の良いコンポーネント903が、良いと決定しているデータは(ブロック805)、さらに既知の悪いコンポーネント905によって分析される(ブロック807)。既知の悪いコンポーネント905がデータを、悪いと決定しているならば(ブロック807)、それは、処理813から拒否されて、さもなければ、データは、決定コンポーネント907よって分析することができる(ブロック809)。
【0385】
実施例では、データが、既知の良いコンポーネント903によって、既知の良いであると決定されていないならば、既知の悪いコンポーネント905は、それを分析する。既知の良いコンポーネントがデータを、良いと決定しているならば、それは許容される。既知の悪いコンポーネント905がデータを、悪いと決定しているならば、それは、処理813から拒否される。既知の悪いコンポーネント905が、データを、悪いと決定していないならば、データは、データのための評価に達するように決定コンポーネント907によって分析することができる。
【0386】
モバイル通信機器の上に存在するネットワークデータまたはデータ・ファイルの事例解析は、図8において示される。
【0387】
図8に例示するように、ブロック801は、送信されたか、モバイル通信機器から受信された、収集データに関係するものである。データは、そのプロトコルとトラック状態を識別するために分析することができる(ブロック803)。ブロック805中で、モバイル通信機器上の既知の良いコンポーネント903の居住者は、既知の良い特徴のために集められたデータを評価することができる。既知の良い特徴は、米国特許出願No.12/255,621中で説明されたか、上記で説明された特徴を含むことができる。データが十分な既知の良い特徴を含んでいるならば、それは、処理、実行、または他の操作のためにその意図されている宛先(ブロック811)に進むことを許可することができる。代わりに、データは、データが本当に安全であること(ブロック807)を確認するためにモバイル通信機器上の既知の悪いコンポーネント905の居住者によってさらに分析することができる。既知の悪いコンポーネントが、データが本当に安全であると決定した場合には、データは、その意図されている宛先(ブロック811)に進むことを許可することができる。決定コンポーネント907は、また、データが進むこと(ブロック811)を可能にする前に、最終的なチェック(ブロック809)を提供するために利用可能であるかもしれない。
【0388】
データオブジェクトの分析はいつでも可能である。例えば、データがアプリケーションであれば、アクセスする前またはダウンロードする前に、またはダウンロード後インストールする前に、またはインストール後、データオブジェクトの新バージョンインストール前に、またはデータオブジェクトの新バージョンのインストール後に、データオブジェクトは評価可能である。実施例では、まだ機器にダウンロードされていないデータオブジェクトはデータオブジェクトに関する認証情報を用いて評価される。例えば、モバイル通信にアクセス可能なアプリケーションマーケットが、ダウンロードが利用可能なアプリケーションを作り、アプリケーションコンテンツまたはアプリケーション用パッケージネームのハッシュのようなデータオブジェクトに関する認証情報を提供する場合、モバイル通信のソフトウェアは、ここに記載したどのシステムであってもローカル使用でもって認証情報を評価することにより、あるいはサーバー151に認証情報を送信し、サーバーから評価を受信することにより、アプリケーションの評価を決定するために、認証情報を利用できる。この方法で、モバイル通信のソフトウェアは、ユーザーがアプリケーションをダウンロードする前にそれらが不適当かそうでないかを評価できる。
【0389】
既知の良性コンポーネント903、既知の悪性コンポーネント905又は(以下にさらに述べる)決定コンポーネント907が、データは良性である、又はセキュリティに対する威嚇やデータ矛盾などを含んでいると明確に決定した場合、分析しているどのポイントでも、ブロック813においてデータはブロックされ、拒絶され、消去されるか、あるいは隔離される。本発明の実施例では、シグナルイベント又はセキュリティイベントの情報ログは汚染データと遭遇した記録をアップデートできる。
【0390】
モバイル通信のアプリケーション、プログラム及び又はライブラリのような実行可能フファイルデータの分析は、図9に説明したように実行できる。ブロック901で、実行可能ファイルにアクセスを試み、実行可能ファイルをインストールし、又は実行可能ファイルをダウンロードするかモバイル機器に移動させた結果として、実行可能ファイルは良性か、あるいは悪性かを分類する必要があるのかどうか決定される。モバイル通信機器(ブロック903)に常駐する既知の良性コンポーネント903により評価される前に、ハッシュ識別子、暗号サイン、パッケージネーム又はほかの特徴のような追加アプリケーションデータを抽出するために、実行可能ファイルを事前処理してもよいし、あるいはしなくてもよい。この評価は、実行可能ファイルのハッシュ識別子又はほかの特徴を、良性の特徴を持つデータベースと比較し、実行可能ファイルが十分に良性の特徴を持っているか、あるいは上記した又は米国特許出願番号12/255,621に記載した判断基準のどれかを持っているか認定することを含ませてよい。
【0391】
実行可能ファイルが良性と認識された場合、ブロック911において、処理又はほかのオペレーションのためにそのコードを実行するか又はその意図した行き先に進むことができる。既知の良性コンポーネント903が実行可能ファイルデータを許可できない場合は、モバイル通信機器に常駐する既知の悪性コンポーネント905がその分析を実行してもよい(ブロック905)。既知の悪性コンポーネント905が実行可能ファイルには悪意があると確認した場合、実行可能ファイルを隔離、拒絶、又は消去することができ、またそのイベントは記録される(ブロック909)。既知の悪性コンポーネント905が実行可能ファイルを特徴付けられなかった場合、決定コンポーネント907が以下で述べるように(ブロック907)その分析を実行することができる。決定コンポーネント907が、実行可能ファイルは安全であると最終的に決定した場合、実行可能ファイルは許可される(ブロック911)。決定コンポーネント907が、実行可能ファイルは安全でない、あるいは不確定であると最終的に決定した場合、実行可能ファイルは隔離される(ブロック909)。実行可能ファイルがモバイル通信機器に対して顕著な害をもたらすことが可能なコードを含むかも知れないので、実行可能ファイルが次に進むことを許可する前に、さらに厳格な分析が必要であることを当業者は認めるであろう。
【0392】
常駐モバイル通信機器では、既知の良性コンポーネント903及び既知の悪性コンポーネント905を、それらモバイル通信機器により最もアクセスされやすいアプリケーションに関する定義情報を単に格納するだけに限定し、あまり重要性を持たせないようにしてもよい。上記したように、そのような情報は、例えば、機器データ、モバイル通信機器に前もってインストールしたアプリケーション、及びモバイル通信機器の使用方法(たとえばワーク対エンターテインメント、公共ネットワークアクセス対プライベートネットワークアクセスほか)に基づいて決定できることが理解される。各モバイル通信機器は異なる定義情報を格納でき、本発明の実施例がそのようなきめ細かさ(granularity)を想定していることを当業者は認めるであろう。
【0393】
上記したようにまた全体を通して、データが安全かどうかを既知の良性コンポーネント903及び既知の悪性コンポーネント905が決定できない場合、本発明の実施例はサーバー側のデータ分析に向けられている。実施例では、決定コンポーネント907が1つ以上のサーバー151に常駐し、ネットワーク121を介して、すなわち「クラウドで」モバイル通信機器と通信する。決定コンポーネントは、ここで開示された分析システムのような1つ以上の分析システムに依拠できる。決定コンポーネント907はモバイル通信機器より強力なコンピュータ資源に常駐するので、決定コンポーネントはデータが機器101に対して悪性か良性かを決定するための強靭な分析を提供する。さらに、サーバー151で行われる分析の場合、サーバーにより収集されたデータを利用して、モバイル通信機器101に利用可能なデータのみに依拠できない評価を出すことができる。例えば、機器から報告された挙動データに、データオブジェクトが機器にインストールされているプレミアムレートのSMSメッセージ又はダイアルプレミアムレートの電話番号を送ることが表示された場合、サーバー151の決定コンポーネント907はそのデータオブジェクトが悪意のあるものであると決定できる。
【0394】
実施例では、決定コンポーネント907は1つ以上の内部分析システムを用いてデータオブジェクトが良性か悪性か特徴付ける。決定コンポーネント907は、脅威から保護するために特化して定義することなくセキュリティ脅威を検出するように設計されている。言い換えれば、決定コンポーネント907は、良性コンポーネント903又は悪性コンポーネント905からの弱点を補償するとともに、以前は認証されていなかった新しい脅威を認証するための付加セキュリティコンポーネントとして動作可能である。
【0395】
決定コンポーネント907により利用できる多数の分析システムが存在することが正しく理解されよう。データオブジェクトの分類が可能なシステムとしては、ヒューリステックアルゴリズム、ルールに基づく又はルールに基づかないエキスパートシステム、ファジーロジックシステム、神経ネットワーク又はほかの方法を含むがこれに限られるものではない。上記したように、そのようなシステムは決定コンポーネント907が利用可能な各種のデータを利用できる。分配データ、特性データ、カテゴリ化データ、信頼性データ、アプリケーションデータ又はほかの同様なものを含むがこれに限られるものではない。例えば、決定コンポーネント907はモバイル通信機器のアプリケーション、ライブラリ、又は実行可能データを分析できる。1例として、決定コンポーネント907は、ネットワーク接続特性に基づいて実行可能データを分析し、セキュリティ評価を決定する神経ネットワークが含まれる。そのような特徴は実行可能ファイルフォーマットに含まれる情報に基づき又は実行可能ファイルの内容を処理した結果として決定できる。他の例として、決定コンポーネント907は、オープンシステムで実行可能ファイルが取れるファンクションコール、システムコール又はアクションを介して実行可能ファイルの挙動を分析するエキスパートシステムを含めることができる。実行可能ファイルに対してアクセスセンシティブなシステムが悪意ある挙動を示す仕方でコールを受けた場合、このシステムは実行可能ファイルがマルウェアの可能性があるとフラッグを出し、アクションを起こすことができる。
【0396】
決定コンポーネント907をモバイル通信機器101に搭載する場合、決定コンポーネントのパワー化のために実行可能ファイルのコードをアップデートするのとは関係なく、ルール又は分析パラメータをアップデートすることが望ましい。実施例の場合、決定コンポーネント907は仮想マシーンに基づく決定システムを含んでいる。この決定システムによれば、決定コンポーネント自身と関係なくアップデートされるルールセットで実行可能ファイルの分類ができる。このシステムでは、決定コンポーネント全体をアップデートすることなく進行中の不適当なアプリケーションのある新しい部類を検出するために新しいロジックを付加することができる。このシステムでは、実行可能ファイル自身を処理するよりむしろ仮想マシーンロジックが実行可能ファイルを象徴的に参照できるように実行可能ファイルを事前処理することができる。
【0397】
ある例では、決定コンポーネント907は、データを評価するためにサードパーティ情報を考慮できる。当業者なら、モバイル通信機器101が、モバイル通信機器においてダウンロードやインストールに利用可能なアプリケーションを提供するAppleアプリストア、Androidマーケット、あるいはほかのソフトウェアの宝庫やデジタル分配プラットフォームのようなアプリケーションプロバイダにアクセス可能なことを理解するだろう。実施例では、サーバー151はそのようなアプリケーションプロバイダにアクセスし、特定のアプリケーションに関する情報を収集できる。例えば、サーバー151はアプリケーションに関してユーザーが行うレビューやレーティングを検索、収集することが可能である。よいレーティングを持つアプリケーションは安全とみなせるが、相当ネガティブなレーティングを持つアプリケーションは不適当と見なせる。サーバー151はデータオブジェクトのための信頼性データも決定するので、ネガティブレビューを持つアプリケーションの評価が示唆することは、そのアプリケーションが低い信頼性レーティングを持つならば不適当であり、そのアプリケーションが高い信頼性レーティングとネガティブレビューを持つならばアンチマルウェアシステムにより依然として適しているということだけである。
【0398】
上記例は決定コンポーネント907が、モバイル通信機器により受信あるいは送信されたデータの脅威レベルを十分に評価するために、多数の分析方法をどのように利用するかを説明している。ほかの例も本発明の範囲から逸脱するものではない。
【0399】
モバイル通信機器101やサーバー151などにより良性と認識されたデータオブジェクト及び悪性と認識されたデータオブジェクトは、別個の「良性判別」及び「悪性判別」コンポーネントよりむしろ単一のコンポーネントで実行してよい。実施例において、単一の認識コンポーネントが、良性と認識したデータオブジェクト及び悪性と認識したデータオブジェクトの両方を認証する機能を実行することができる。
【0400】
実施例において、認識コンポーネントは定義を利用してデータオブジェクトのための評価を決定する。認識コンポーネントはまずデータオブジェクトのためのアプリケーションデータを調べ、どの定義がデータオブジェクトに対応するかを決定する。例えば、認識コンポーネントがデータオブジェクトコンテントのハッシュである定義にアクセスすると、所与のデータオブジェクトコンテントのハッシュと同一のハッシュを持つ定義が、データオブジェクトに対応すると決定される。ほかの例では、認識コンポーネントがバイトシーケンスサインを含む定義にアクセスすると、データオブジェクトコンテントに含まれるバイトシーケンスを持つ定義がデータオブジェクトに対応すると決定される。各定義は評価と関連付けられるが、それは、対応する定義を決定し、定義のため対応する評価を決定し、それによりデータオブジェクトに対応する評価を生成するために、認識コンポーネントがデータオブジェクト用アプリケーションデータを調べることができるようにするためである。例えば、データオブジェクト用アプリケーションデータは、データオブジェクトハッシュ、パッケージネーム、独自の識別子、あるいはデータオブジェクトコンテントなどほかのアプリケーションデータのような認証情報を含んでよい。実施例では、認識コンポーネントが用いる定義は既知のデータオブジェクトを表す。このケースでは、既知のデータオブジェクトのための評価が分析中のデータオブジェクトに対応するかどうかを認識コンポーネントが決定するときに、分析中のデータオブジェクト及び既知のデータオブジェクトが完全に同一である必要はない。例えば、特別のデベロッパーの第1アプリケーションが分析を介して不適当であると決定された場合(たとえば、マニュアル分析、自動分析)、第1アプリケーションパッケージネームに一致する第1アプリケーション用の定義が作成される。デベロッパーが第1アプリケーションパッケージと同一のパッケージネームを持つ修正アプリケーションを作成し、認識コンポーネントがこの修正アプリケーションと遭遇した場合、定義のパッケージネームは修正アプリケーションパッケージネームに一致しているので、修正アプリケーションに対応するように定義が決定される。認識コンポーネントはそこで第1アプリケーションに対する不適当な評価を修正アプリケーションに適用することを決定する。
【0401】
例えば認識コンポーネントは、各定義がデータオブジェクトコンテンツのハッシュを示唆しまた定義に対応するデータオブジェクトが良性か悪性かを示唆するもろもろの定義のデータベースにアクセス可能である。実施例では、サーバー151で動作する1つ以上の認識コンポーネントで使用される定義は、サーバー151又はデータストレージ111に格納される。実施例では、良性判明コンポーネント903及び悪性判明コンポーネント905は、認識コンポーネントを使用しておのおのサーバー151で実行される。例えば、良性判定コンポーネントは認識コンポーネントを含むことができる。この認識コンポーネントでは、認識コンポーネントにより評価されたすべての定義は、データオブジェクトが良性であるとみなされた評価に対応する。実施例では、良性判明及び悪性判明コンポーネントは、良性判明及び悪性判明アプリケーションデータに対してデータオブジェクト用のアプリケーションデータと適合する認識コンポーネントとしておのおの実行される。例えば、分析中のデータオブジェクトと適合するかどうかをみるために、良性判明コンポーネントは良性判明ハッシュ認識子、パッケージネーム、及び暗号サインのリストを持つことができる。実施例では、データオブジェクトが良性判明リストに何か特徴を持てば、安全とみなされる。実施例では、サーバーは、分析中のデータオブジェクト用のアプリケーションデータに悪性判明データを適合させる類似した悪性判明システムを使用することができる。ほかの良性判明及び悪性判明分析システムも本発明の範囲を逸脱しないなら可能である。実施例では、認識コンポーネントは、単に「良性」あるいは「悪性」でない各種の評価を生成している。実施例では、データオブジェクトが「悪性である」かどうかを認識コンポーネントが単に認証する場合のように、すべての定義が対応する単一の評価を単に持つ場合、認識コンポーネントは複数の評価を格納する代わりに単一の評価を使用する。ほかのバリエーションも本発明を逸脱しない範囲で可能である。
【0402】
図12において、モバイル通信機器のデータオブジェクトにアクセスするために使用される本発明の実施例を説明する。モバイル通信機器101はまず、フルシステムスキャンあるいはデータオブジェクトが実行中あるいはインストール中(ブロック1201)の場合のようにデータオブジェクトのスキャンを開始する。認識コンポーネントはデータオブジェクト用のアプリケーションデータを評価し(たとえば、パッケージネーム、データオブジェクトコンテンツのハッシュ、独自の識別子、データオブジェクトの内容)、認証コンポーネントにアクセス可能な定義がデータオブジェクトに対応するかどうか決定する(ブロック1202)。上記したように、例えば対応は、データオブジェクト用の認証情報を定義に含まれるデータに適合させること、あるいはデータオブジェクトコンテンツを定義に含まれるシーケンス、パターン、あるいはロジックに適合させることを含んでよい。定義がデータオブジェクトに対応すると、次に認証コンポーネントはデータオブジェクト用の対応評価を決定する。実施例では、ブロック1202の認識コンポーネントは定義及び評価情報の格納データを利用する。例えば、上記したように、モバイル通信機器がサーバー151から定義と評価情報を受信したときに、モバイル通信機器に格納された定義は事前生成あるいは生成される。実施例では、モバイル通信機器に格納された定義はキャッシュとみなされる。キャッシュは上記したように機能する。モバイル通信機器の認証コンポーネントがデータオブジェクト用の評価を決定する場合(ブロック1203)、その評価においてデータオブジェクトをどのように扱うかを決定する処理が行われる(ブロック1204)。例えば、評価でデータオブジェクトが悪意を持つと示唆された場合、モバイル通信機器はそのデータオブジェクトが実行されることを許可しないかあるいは機器のユーザーにそのデータオブジェクトをアンインストールするように促す。モバイル通信機器の認識コンポーネントがデータオブジェクト用の評価を決定しない場合(ブロック1203)、モバイル通信機器101は、アプリケーションデータ(たとえば、認証情報、データオブジェクトの内容)のようなデータオブジェクト情報をサーバー151に送信する(ブロック1205)。サーバーはデータオブジェクト情報を受信し(ブロック1206)、そしてサーバーの認識コンポーネントはデータオブジェクト情報を評価し、認識コンポーネントにアクセス可能な定義がデータオブジェクトに対応するかどうかを決定する(ブロック1207)。定義がデータオブジェクトに対応する場合(ブロック1208)、サーバー151はデータオブジェクト用の評価を決定し、その評価をモバイル通信機器に送信する(ブロック1209)。決定コンポーネントにより評価がなにもなされない場合は、サーバーはデータオブジェクトがモバイル通信機器に知られていないという指示を送信する(ブロック1209)。モバイル通信機器101はサーバーから評価を受信し(ブロック1211)、評価情報を処理してデータオブジェクトをどのように扱うか決定する(ブロック1204)。実施例では、評価情報を処理するときに、モバイル通信機器101は、サーバー151から受信した評価の情報をローカルな定義キャッシュに付け加える(ブロック1204)。例えば、機器はデータオブジェクト用の特徴(たとえば、「良性である」、「悪性である」、「マルウェア」、「スパイウェア」)、サーバーにより送信された識別子及び機器により生成されたあるいはサーバー151により送信された定義情報(たとえば、データオブジェクトコンテンツのハッシュ、データオブジェクトパッケージネーム)のような情報を格納する。
【0403】
実施例では、モバイル通信機器の認識コンポーネントが評価を決定しないとき、モバイル通信機器は、データオブジェクト情報をサーバー151に送信する前に、モバイル通信機器のローカル決定コンポーネントを用いてスキャン中のデータオブジェクトに対する分析を実行する。実施例では、ユーザーへの遅延が最小になるように、ローカルな決定コンポーネントによる分析とデータオブジェクト情報をサーバーに送信することは並行して行われる。クライアントサーバーアンチマルウェアを組み込んだシステムに各種のコンポーネント構成が本発明を逸脱しない範囲で可能であることを当業者は認めるであろう。
【0404】
実施例では、モバイル通信機器101は、データオブジェクトに関する情報を送信するたび、サーバーが変換された情報とサーバー上の特定のアカウントとを関連付けるために、認証証明書あるいはセッション情報のような認証情報をサーバー151に送信する。
【0405】
D. アプリケーション評価及びアドバイスメントシステム
本発明の前半では、1つ以上のモバイル通信機器から異なったタイプのデータ及びほかの資源を収集するとともにデータオブジェクト用の評価をするため収集したデータを分析するための各種システムと方法とを説明した。以下において、サーバー151がディスプレイ、API経由のエクスポージャ、及び他の各種目的のための評価をどのように使用するか説明する。ここで開示したいくつかの評価例は、1つ以上の分析システムからのアウトプット(たとえば、特性データ、カテゴリ化データ、信頼性データ、及び分配データ)及びデータオブジェクト用の1つ以上のレーティング(たとえば、セキュリティレーティング、プライバシーレーティング、バッテリーレーティング、パフォーマンスレーティング、クオリティレーティング)からのアウトプットを含んでいる。当業者なら、評価情報は、典型的なアンチマルウェアシステムでのデータオブジェクトが悪意あるものかそうでないかの評価を超えて、モバイル通信機器の所与データオブジェクトをインストールする効果を理解するために用いられる各種情報に関連していることを認めるであろう。さらに、この評価情報は、異なったタイプのデータオブジェクトをダウンロードしインストールすべきかどうかについて、決定を行うために用いることができる。そのような情報はモバイル通信機器上にあるアプリケーションをインストールすべきかどうか決定しようとしている個々のユーザーにとって有用である。そのような情報はまた複数のモバイル通信機器にあるアプリケーションを分散して配置すべきかどうかを決定しようとしているIT管理者にとって有用である。実施例では、ユーザー又はIT管理者は、アプリケーションポリシー強化のためにこの評価情報を用いることができる。
【0406】
当業者なら、サーバー151に利用可能なデータ及びサーバーによりなされた評価がアンチマルウェアの目的を超えて有用であることを認めるであろう。例えば、評価は、データオブジェクトがモバイル通信機器のバッテリーを過度に使い果たしたかどうか、あるいはデータオブジェクトが不適当な量のネットワーク資源を利用しているかどうか詳述可能である。実施例では、サーバー151が、評価情報を生成するためにデータを収集、格納及び分析するので、サーバー151は、モバイル通信機器にデータオブジェクトがインストールされる前にデータオブジェクトがモバイル通信機器にどんな影響を与えるか推測する情報を提供できる。例えば、サーバー151は、アプリケーション用の推測バッテリー使用情報および/またはネットワーク使用情報を提供できる。
【0407】
ユーザーが評価に出会うとき、ユーザーがその評価があまりに広い又はあまりに狭いと感じないように、評価が適度のきめ細かさ(granularity)のレベルであることが望ましい。実施例では、サーバー151は多数のデータオブジェクトを単一の評価に融合し、融合した評価を送信する。例えば、アプリケーションが多数のデータオブジェクトを含む場合(たとえば、実行可能ファイルと多数のライブラリ)、ユーザーは構成するデータオブジェクトに対する多数の評価ではなく、アプリケーションに対する全体としての評価を知りたいであろう。同様に、類似した特徴を示す多数のアプリケーションバージョンがある場合(単一のプラットフォームあるいはマルチプラットフォーム上で)、情報に関する決定を行う企業ポリシー管理者は、アプリケーションのすべてのバージョンを網羅する単一の評価を知りたいであろう。
【0408】
多数のデータオブジェクトに対する評価を融合するために、サーバー151は、ファイルパス、バージョンナンバー、パッケージネーム、暗号サイン、インストラー資源、及びほかの情報のようなアプリケーションデータを用いて、データオブジェクトグループがアプリケーションの特定のバージョンに関連しているか、および/またはデータオブジェクトのデータオブジェクトあるいはデータオブジェクトグループがアプリケーションの異なるバージョンに属しているかを決定することができる。例えば、同一のディレクトリに実行可能ファイルが共通して見られた場合、サーバー151は、そのような実行可能ファイルがすべて同一のアプリケーションに付随していると決定することができる。ほかの例では、アプリケーションパッケージがパッケージネームとパッケージに埋め込まれたバージョン識別子をともに持つ場合、サーバー151は、同一のパッケージネームとヒューマンリーダブルアプリケーションネームを持ち、異なるバージョン識別子を持つ2つのデータオブジェクトが同一アプリケーションのマルチバージョンであることを決定できる。
【0409】
評価としては一貫した情報形式をプラットフォーム間に提供することが望ましいので、本発明の実施例は、異なるプラットフォームで走るデータオブジェクトに対する評価における同一フィールドのいくつかあるいはすべてを含むサーバー151に向けられている。例えば、システム動作する異なったスマートフォンのロケーションAPIはその機能が非常に異なるものの、サーバー151は、システムを動かしてデータオブジェクトの特定の分析を実行し、機器のロケーションに各データオブジェクトがアクセルするかどうかのクロスプラットフォーム評価を作り出すことができる。評価の形式がデータオブジェクトに対する能力リストであれば、ブラックベリーのマッピングアプリおよびアンドロイドの位置に基づくソーシャルネットワークはともに「アクセスデバイスロケーション」能力を持っていることになる。同様に、バッテリー使用は各プラットフォームで別々に計算できる。しかし、サーバー151は、全バッテリー能力のパーセンテージとして計測した日々のバッテリー使用の推測値のクロスプラットフォーム評価を作り出すことができる。実施例では、多数のデータオブジェクトに対する融合評価は、データオブジェクトに対する特徴及びカテゴリ化の範囲についての情報を含む。例えば、評価は、アプリケーションのマルチバージョンのバッテリー使用における傾向を示すことができる。古いバージョンではたくさんのバッテリーを使用したが、最近はバッテリー使用が低下しているアプリケーションは受入れられるが、バッテリー使用がたえず高いアプリケーションは受入れられない。
【0410】
本発明の実施例は、ウェブインターフェースを介して利用可能なデータオブジェクトに対する評価を行うサーバー151に向けられている。例えば、ユーザーは、彼らのモバイル機器が持っているアプリケーションの特徴及び能力についてもっと知りたいであろう。サーバー151は、ウェブインターフェースとして、どのアプリケーションに対して評価可能か及び各アプリケーションに対する評価の索引を公表できる。アプリケーションのロケーションを便利にするために、サーバー151は、アルファベットで、その特徴で、そのカテゴリ化で、及びプラットフォームのようないろんな方法でアプリケーションを整理することができる。加えて、サーバー151は、ユーザーがアプリケーションネーム、解説、あるいはアプリケーション評価のフィールド(例えば、アンドロイドOS上で走り、ロケーションをインターネットに送るすべてのアプリケーション)一致する用語を用いてアプリケーションを探すことを可能にする。さらに、公共的に表示する評価はアプリケーションの透明性に寄与することができる。
【0411】
例えば、アプリケーションベンダーは、アプリケーション能力に対する独立したサードバーティ評価としてサーバー151で生成した評価ページにユーザーを向かわせ、アプリケーションが何をしているのかをユーザーが確かめることができるようにすることが可能である。実施例では、サーバーは、機器データ(たとえば、このアプリケーションはMotoroa Droid上でどの程度バッテリーを使用するのか、このアプリケーションはAT&Tワイヤレス上でネットワークデータをどの程度使用するのか)に基づいたアプリケーションの条件付評価をユーザーが覗くことができ、異なる条件付評価(例えば、このアプリケーションのMotorolaDroid対a HTC Heroにおけるバッテリー使用、AT&Tワイヤレス対Verizonワイヤエスにおいて、このアプリケーションはネットワークデータをどの程度使用するか)をユーザーが比較できるウェブインターフェースを生成する。そのような条件付評価は、例えば、このアプリケーションに対する評価特徴において、ある子機セット、オペレーションシステムバージョン、あるいは機器にインストールされたほかのアプリケーションが高いエラーレートあるいは異常な変化が生じていることを評価ページが示したとき、特別の環境における異常な挙動を識別するために役立てられる。実施例では、サーバー151は、特別な評価値として極端な値を持つデータオブジェクトを認定する。例えば、サーバー151は、どのアプリケーションが1ギガバイト以上ネットワークデータを月毎に使用するのか、あるいはどのアプリケーションが機器のバッテリーの10%以上を使用するのかを識別するウェブページを生成することができる。
【0412】
サーバー151により生成された評価は、ほかの各種プロダクツ及びサービスを提供するために利用できるため、本発明の実施例は、APIを介した評価データを公表するサーバー151に向けられている。上記したように、各種プロダクツ及びサービスが立ち上げられるように、ウェブページに公表したすべての機能もまたAPIとして公表することができる。例えば、サーバー151は、データオブジェクトのパッケージネームあるいはURLリクエストにあるハッシュコンテンツを供給するHTTP APIを提供でき、結果的にサーバーはパッケージネームあるいはハッシュコンテンツで識別したデータオブジェクトに対する評価を戻すことになる。ほかの例では、サーバー151は、遠隔のウェブページに含まれ、特定のデータオブジェクトに対して双方向評価ビューを表示することが可能なJavaScriptファイルを生成できる。
【0413】
実施例では、サーバー151は、アプリケーションが適当であるかどうかについてのレーチィングあるいは性質のような評価データをアプリケーションマーケットプレースに見えるようにすることができる。当業者は、PCベースのクライアントアプリケーション、及びSMSのようなメッセージサービスを用いてアプリケーションマーケットプレースが各種の方法で実行されることができることを認めるだろう。そのように、本発明の実施例は、ユーザーが提供する主観的なレビュー情報よりむしろ、アプリケーションあるいはほかのデータオブジェクトに対する客観的な評価情報を提供するものである。
【0414】
例えば、サーバー151は、評価データを問いただせるAPIを提供できる。あるいはサーバー151は、評価データをマーケットプレースのプロバイダに送信して、マーケットプレースにおける利用可能なすべてのアプリケーションを積極的に分析することができる。実施例では、ユーザーは、セキュリティ、プライバシー、デバイス効率、信頼性やそれに似たもののような、特定の望ましい基準に合致するアプリケーションだけに対してアプリケーションマーケットプレースを検索することができる。実施例では、アプリケーションプロバイダは、クオリティコントロール方法を提供するために統合した情報を使用可能である。アプリケーションプロバイダは、特定のバッテリー効率基準、受け入れ可能なクラッシュの数とエラーの数、特定のネットワークトラフィック制限、プライバシー保護、それに似たものに対する規格に合致するアプリケーションだけを特徴付けることができる。この方法で、本発明の実施例は、アプリケーションプレース上の提供品を向上させるので、デベロッパーはこれを励みによりよいアプリケーションを作成することができる。実施例では、評価情報は証明システムとして使用できる。そこでは、特定の基準に合致するアプリケーションは、シンボル、バッジあるいはアプリケーションに対してポジティブな評価を表示するほかのアイコンでマークできる。例えば、高い信頼性レーティングを持つアプリケーションあるいは最小のプライバシー情報セットだけにアクセスするアプリケーションは認定されたと考えられる。アプリケーションの認証を検証するために、認証メーカーは、サーバー151からユーザーが十分な評価を検索するためのリンクあるいはほかの方法を持つことができる。
【0415】
実施例では、サーバー151は評価情報を表示するためモバイル通信機器101に送信する。例えば、モバイル機器は、それによりユーザーが機器にインストールしたすべてのアプリケーションに対する評価を探索できるインターフェースを持つことができる。このインターフェースにより、ユーザーは特定のアプリケーションに対する評価情報を閲覧することができるとともに、ユーザーは評価基準セット(例えば、機器のロケーションをインターネットに送るすべてのアプリケーション、トップテンバッテリーユーザー、毎月50メガバイト以上のネットワークトラフィックを使用するすべてのアプリケーション)に合致するアプリケーションを閲覧することができる。実施例では、ユーザーが、アプリケーションをダウンロード/インストールするのに利用可能なアプリケーションをブラウジングしてアプリケーションに対する評価情報を見られるように、モバイル通信機器101は、アプリケーションマーケットプレースの一部、アプリケーションダウンロードプロセス、あるいはモバイル通信機器のアプリケーションインストールプロセスとして、インターフェースを表示する。アプリケーションをブラウジング、ダウンロード、あるいはインストールするとき、機器はサーバー151に識別子情報を送信し、またアプリケーションに対する評価を受信するが、いくつかの評価あるいはすべての評価はユーザーインターフェース上に表示される。例えば、インターフェースは、アプリケーションの機能あるいはアプリケーションの特徴を表示する。またインターフェースは双方向的であり、ユーザーが評価の側面を探索できるようになっており、必要ならばインターフェースはサーバー151から追加の評価情報を要求できる。ほかの実施例では、機器はアプリケーションに対する信頼性指標を表示することができ、その信頼性指標はサーバー151により決定され、評価の一部として機器101に送信される。信頼性指標は各種の方法で表示でき、認証シール(例えば、「認証済Lookout.TM.」)あるいはレーティング(例えば、「A+」、「B-」、「C+」)を含む。
【0416】
ユーザーは長いセキュリティ説明書を読まないケースがままあるので、容易に理解できる方法でアプリケーションに関するセキュリティ情報を表示することは重要である。実施例では、モバイル通信機器101はアプリケーションに対するグラフィック評価を表示する。例えば、顕著な評価の側面を、アプリケーションに対するアイコンあるいはバッジとして表示することができる。例としては、「バッテリーが効率的」である、「バッテリー乱費」である、「アクセスロケーション」、「スパイ機能」、「ソーシャルネットワーク」である、および「ファイルシェアリングアプリ」であるというバッジがあげられる。顕著な評価用の各バッジには、理解が容易になるように、バッジのイラスト及び評価が単に通知的なものかあるいは潜在的に重要なものかどうかを示す配色が含まれてよい。例えば、バッテリー使用について効率的なアプリケーションにはフルバッテリーを示す緑のアイコンをもたせ、バッテリー消費が目立って多いアプリケーションには空バッテリーを示す赤のアイコンをもたせることができる。
【0417】
サーバー151は継続的に情報を収集し、評価を向上させるので、評価情報をアプリケーションマーケットプレース上および/または評価情報をキャッシュしているモバイル通信機器でアップデートすることができる。例えば、サーバー151は、アプリケーションマーケットプレースあるいはモバイル通信機器に新しい評価情報が利用可能であるという通知書を送ることができる。ほかの実施例では、サーバー151は、古い情報が上書きされるようにアップデートした評価情報を単に送信する。
【0418】
機器にインストールされたデータオブジェクトに対する評価を閲覧することに加えて、機器にインストールされたデータオブジェクトに対する評価をウェブインターフェースから閲覧することも望ましい。例えば、ユーザーは彼らのPCを用いて機器にインストールされたアプリケーションに対する評価を探索したいであろう。上記したように、実施例では、モバイル通信機器101は、サーバー151にインストールしたデータオブジェクトに対するアプリケーションデータを送信する。サーバー151は機器101に現在インストールしているアプリケーションを格納できるので、サーバーはそれらのアプリケーションに対する評価を表示するユーザーインターフェースを生成することができる。例えば、サーバー151がウェブインターフェースを生成し送信することで、ユーザーは機器にインストールしたすべてのアプリケーションのリストを閲覧することができ、各インストールされたアプリケーションに対する評価を見ることができ、そしてまたインストールしたどのアプリケーションが特定の評価値(例えば、自分のロケーションにアクセス可能なすべてのアプリケーション)に合致するか探索することができる。プライベート情報の開示を防止するためであるが、彼らの機器のアプリケーションに対する評価を閲覧するために、ユーザーが認証証明書を用いてログインすることをサーバー151は要求できる。さらに、企業管理者は中央管理室から機器グループに対する評価を閲覧したいであろう。
【0419】
実施例では、サーバー151はウェブインターフェースを生成し、多くの機器にインストールされたアプリケーションに対する評価をユーザーが閲覧できるようにしている。例えば、ウェブインターフェースにより、ユーザーは特定の評価フィールド(例えば、ファイルシェアリングアプリケーション)に合致する機器のグループにインストールされたすべてのアプリを探索することができ、機器のグループに対するリスクレーティング評価を閲覧することができ、配備した機器にインストールしたすべてのアプリケーションの機能を閲覧することができ、そしてまたどの機器がどのアプリが特定の機能及びリスク露見をもたらすのか決定することができる。ユーザーはスタートとしてサーバー151を用い、機器のグループに対するセキュリティセット、プライバシー、及びバッテリーリスクレーティングの総合的なセットを生成し、次にレーティングをクリックしてリスクレーティングに最も貢献するアプリケーションのリストを閲覧することができる。ユーザーは次にどの機器が所定のアプリケーションを持っているか閲覧できる。ほかの実施例では、ユーザーはスタートとしてサーバー151を用い、グループにインストールした全アプリケーションの機能のリストを生成し、次に所与の機能を持つグループにインストールしたすべてのアプリケーションの機能を閲覧するために所与の機能をクリックすることができる。ここから、ユーザーはグループのどの機器に所定の機能がインストールされているかさらに探索することができる。実施例では、機器のグループに対する評価は、管理コンソールなどの外部サービスによる使用に供するAPI形式でサーバー151により公表される。例えば、サーバー151は、機器グループに対するリスクレーティングを、HTTP APIを介して集中セキュリティ報告システムに晒すことができる。
【0420】
モバイル通信機器上で、バッテリー及びネットワークデータは、アプリケーションが機器のバッテリー寿命に悪影響を及ぼし、ネットワーク処理のオーバーエイジ負担をもたらすような仕方でしばしば制限される。本発明の実施例は、評価を用いることによりアプリケーションネットワークあるいはバッテリー処理をユーザーに知ってもらい、アプリケーションを乱用した場合にユーザーに警告するためのものである。機器上のソフトウェアは、アプリケーションのバッテリー及びネットワーク処理の特徴を含む評価をサーバー151から検索し、ユーザーにその評価を表示する。上記したように、サーバー151から評価情報を要求する機器には、アプリケーションに対するアプリケーションデータを含ませることができる。ユーザーが使用中の特定の機器に対する評価を、評価を検索するときに機器が機器データを送信することにより、あるいは以前送信した機器データに評価リクエストを関連付けた認証データを送信することにより、カスタマイズすることができる。例えば、評価により、アプリケーションがユーザーの電話器モデルのバッテリー寿命を5%あるいは1時間低下させることを示すことができる。一方、異なるバッテリー寿命特性を持つ他の電話器モデルは、同じアプリケーションが電話器のバッテリー寿命を10%あるいは3時間低下させるという評価を受けるであろう。評価の表示は、オンデバイスアプリケーションマーケットプレースの一部として、あるいはユーザーインターフェースダイアログとして、アプリケーションのインストール前、インストール中、あるいはインストール後に行われる。
【0421】
さらに、ユーザーが多くのアプリケーションをインストールしたあと、機器のアプリケーションの実挙動に基づいて、どのアプリケーションが最もネットワーク処理あるいはバッテリー寿命に寄与しているかをユーザーが理解することが好ましい。実施例では、機器がアプリケーションのバッテリー及びネットワーク処理の挙動データを収集し、これによりユーザーは機器のインターフェースから実挙動データを閲覧できる。例えば、インターフェースにより、ユーザーは特定のアプリケーションのバッテリー及びネットワーク処理を閲覧できるとともに、ユーザーはどのアプリケーションがネットワークオーバーエイジあるいはバッテリー寿命の短縮に寄与しているかを認証するために、アプリケーションを用いたトップネットワークとバッテリーを閲覧できる。実施例では、モバイル通信機器101は、機器にインストールしたアプリケーションに対する挙動データをサーバー151に報告し、これによりユーザーはサーバーが生成したウェブインターフェースを介して実際の挙動データを閲覧できる。当業者なら、モバイルアプリケーションのほかの特徴も同様に監視でき、ユーザーに示すことができることを認めるであろう。
【0422】
バッテリー寿命、ネットワーク処理、あるいはほかの限られた資源に関する重大な問題を単一のアプリケーションが引き起こすことがあるので、アプリケーションが不適当な挙動をとるとき、ユーザーに通知することが望まれる。実施例では、モバイル通信機器101は、機器にインストールしたアプリケーションのネットワーク及びバッテリー処理を監視し、アプリケーションが望ましいリミットを越えたときに機器のユーザーに通知する。例えば、ユーザーは、通知される前に、データアプリケーションがどのくらい送信、受信可能かその閾値を設定できる。ほかの実施例では、アプリケーションがユーザーのバッテリー寿命あるいは電話料金に悪影響を及ぼすと機器が決定したときユーザーに通知される。充電前、ユーザーは電話器を20時間標準的に使用するものとし、機器のアプリケーションが予想バッテリー寿命を20時間より低下させる場合、ユーザーがバッテリーを切らすことはありうることである。そして、バッテリーが切れるのを回避する行動を取るように警告することが重要である。すなわち、そのアプリケーションをアンインストールする。さもないとハイバッテリーでアプリケーションを使用できなくなる。
【0423】
実施例では、ユーザーの機器のアプリケーションがユーザーのデータプランを超えるのを防止するために、機器101あるいはサーバー151が機器の今後のデータ処理を予測し、また機器のデータプランに関する情報を収集する。機器のデータプランに関する情報を収集するために、機器101あるいはサーバー151はネットワークオペレータサーバーに接続し、ビリングサイクルごとのデータ割り当て、ビリングサイクルは何か、そして現在のビリングサイクル間に使用されたデータはどのくらいかというようなデータプラン情報を決定する。ネットワークオペレータサーバーへの通信は、HTTP APIあるいはSMSメッセージなどのような各種の方法を取ることができる。機器のソフトウェアが、ユーザーのデータプラン情報を検索するためにSMSメッセージを使用する場合、ソフトウェアは、通信がユーザーのインボックスに表れることを防止するために、ネットワークオペレータサーバーから送られてきたレスポンスメッセージを自動的に消滅させることができる。今後のデータ処理を予測するために、サーバー151は、機器にインストールしたアプリケーションの標準的なデータ処理及び機器の実データ処理を分析することができる。アプリケーションが新しくインストールされる場合、標準的なデータ処理を用いることができる。一方、数ヶ月の間機器にあったアプリケーションには、実データ処理を用いることができる。機器101のアプリケーションが、ビリングサイクルのエンドまでに機器のデータプラン割り当てを超えるレートでネットワークデータを使用する場合、機器のソフトウェアは同様のオーバーエイジ負担を示す警告を表示する。警告は、データ処理に最も貢献するアプリケーションも表示でき、これによりユーザーがそのアプリケーションをアンインストールあるいは再構成できる。機器101は、データオーバーエイジに対する潜在能力を示す通知書(例えば、Eメールを介して)も送るサーバー151に警告をレポートできる。機器101あるいはサーバー151のソフトウェアは、それによりユーザーが彼らのアプリケーション処理パターンを調整できるようにするために、機器のデータ割り当てに関する現在の予想データ処理の指標を表示できる。例えば、ユーザーがデータプランを超えてしまうことを心配する場合、ビデオチャットに入る前に現在の予想データ処理がどんなものかをチェックできる。
【0424】
機器にインストールしたアプリケーションは機器のリスク表出に対して大きなインパクトを与えるため、ユーザーあるいは管理者が、機器あるいは機器グループにどんなアプリケーションをインストールするのが好適であるかポリシーを持つことが望まれる。以下では、1つ以上のモバイル通信機器に対して保護ポリシーをどのように実行できるかを説明する。実施例では、ポリシーはブラックリストとホワイトリストを含む。ブラックリストは、モバイル通信機器で走ることを明確に拒絶されたアプリケーションあるいは評価基準のセットであり、ホワイトリストは、モバイル通信機器で走ることを明確に許可されたアプリケーションあるいは評価基準のセットである。例えば、ポリシーはホワイトリストのアプリケーションだけあるいはブラックリストにないアプリケーションだけを許可する。実施例では、明確なアプリケーションエントリーは評価基準エントリーより高い優先度を持っている。例えば、ポリシーは、ブラックリストに載ってはいるもののホワイトリストに載っている特定のアプリケーションを特化する特定の機能(例えば、機器のロケーションをインターネットに送ること)を特化できる。この場合は、ロケーションをインターネットに送るすべてのアプリケーションは、ホワイトリストに明確に存在するアプリケーションはブラックリストに存在する評価基準よりはるかに高い優先度を持っているので、それらが明確にホワイトリストに存在しないならばブロックされる。当業者なら、本発明を逸脱しない範囲で各種のポリシースキームを実施できることを認めるであろう。
【0425】
ユーザーは機器に彼らの求めるアプリケーションタイプに対する個人的好みを持っている。例えば、あるユーザーはプライバシー問題に敏感であり、一方、ほかのユーザーはバッテリー寿命を最適化したいであろう。ユーザーがアプリケーション評価を利用して、彼らが使用するあるいは使用したいと考えているアプリケーションをより深く洞察するために、本発明の実施例は、モバイル通信機器のソフトウェアに向けたものであり、ユーザーはアプリケーション、不適当な閾値を超えるソフトウェアブロッキングアプリケーションに対する評価基準に基づきポリシーを設定することができる。 ユーザーがアプリケーションのインストールを試みると、ソフトウェアはサーバー151から評価をリクエストし、サーバーから評価を受け取る。
【0426】
例えば、ユーザーが、ロケーション情報をインターネットに送る機能を持つとともに彼らのロケーションをインターネットに送ることが可能ないかなるアプリケーションも許可しないというポリシーを持ったアプリケーションのインストールを試みると、モバイル通信機器のソフトウェアはインストールをブロックする。ほかの例では、ユーザーは、プライバシー、セキュリティ、及びバッテリー寿命のポリシー閾値を相対的な段階(例えば、0から10)で設定できる。ユーザーがアプリケーションをインストールすると、機器のソフトウェアはアプリケーションに対する評価を検索し、アプリケーションのプライバシー、セキュリティ、及びバッテリーレーティングをポリシー閾値と比較し、そしてアプリケーションが構築したポリシーを超えると警告する。不適当なアプリケーションのインストールをブロックする代わりに、ユーザーは単に不適当であるという注意を希望することができる。
【0427】
実施例では、ユーザーは警告を無視してともかくアプリケーションを受け入れることができる。実施例では、機器は、このアプリケーションはユーザーに不適当であることを示すユーザーインターフェースを表示する。例えば、モバイル機器は、アプリケーションマーケットプレースにおいてダウンロードが可能か検索しているアプリケーションがユーザーの適格基準と合致するかどうかという指示を表示できる。ほかの例では、機器のソフトウェアにより、ユーザーは適格基準に合致しないすべてのアプリケーションを閲覧することができる。そのようなソフトウェアは、ユーザーが彼らの基準を変更し、新しい基準のもとで現在不適当なアプリケーションを閲覧したい場合に有用である。
【0428】
多数のモバイル通信機器に責任あるIT管理者、親、ネットワーク、オペレーターあるいはほかの人たちは、すべての機器に実際にアクセスせずにモバイル通信機器に対してポリシーを設定することができる。実施例では、サーバー151により、ユーザーあるいは管理者は機器あるいは機器のグループに対するポリシーを設定することができる。機器101がアプリケーションのインストールを試みるとき、機器はサーバー151にアプリケーションに対する評価リクエストを送る。サーバー151で構築したポリシーに基づき、評価は、アプリケーションが許可されるものかあるいは許可されないものかという指示を含んでおり、またなぜ不許可のアプリケーションは不許可であると評価されたのかについてのポリシー基準を含ませることができる。実施例では、サーバー151のポリシーはウェブインターフェースを介して構築できる。
【0429】
実施例では、サーバー151により、ポリシーは評価基準とともにアプリケーションに基づいて構築できる。例えば、管理者はサーバー151を用いて、機器からファイルあるいはほかの要注意データを送信する機能のようなすべてのアプリケーションをブロックできる。実施例では、管理者は、ホワイトリストを作成し、ホワイトリストに載っていないすべてのアプリケーションをブロックすることにより特別のアプリケーションだけを許可することができる。ほかの実施例では、管理者は、不適当であるとブラックリストに載った特別のアプリケーションをのぞくすべてのアプリケーションを許可できる。ポリシーのもと許可されあるいは拒絶されたアプリケーションセットは事前に算定できるので、本発明の実施例は、ポリシー定義セットを生成し、このポリシー定義を1つ以上のモバイル通信機器101に送信するサーバー151に向けられる。例えば、機器グループがホワイトリストにあるアプリケーションだけを許可するポリシーを持つ場合、サーバー151は、アプリケーションに出会うたびその評価を求めて機器がサーバーに接触する必要がないように、ホワイトリストに載せられたアプリケーションに対する認定情報リストをモバイル機器に送信することができる。
【0430】
アプリケーションカテゴリ化及び機能のようなアブストラクトコンセプトを用いてポリシーを構築するとき、構築の変更がなされる場合に、ユーザーあるいは管理者が、どんなアプリケーションが許可され/拒絶されるのかあるいは特別のアプリケーションが許可され/拒絶されのか調べることが望ましい。実施例では、モバイル通信機器101のポリシー構築ユーザーインターフェースあるいはサーバー151は、構築変更の一部としてブロックされあるいは許可されるアプリケーションを閲覧するインターフェースを含む。構築インターフェースがモバイル通信機器に表示される場合、インターフェースを配置するために、機器はサーバー151にデータリクエストを送信できる。構築変更により許可されブロックされたアプリケーションに効果があったかあるいは現在の構築と新しい構築の間で小さな差異しかでなかったとしてもその後、許可されブロックされたすべてのアプリケーションを表示することが望ましい。構築変更により影響を受けるアプリケーションの数は非常に大きいので、インターフェースは要約情報を表示し、ユーザーが特別のアプリケーションを探して構築変更がそのアプリケーションに影響があるか、また構築変更がアプリケーションの許可あるいは拒絶をもたらす結果となるかを決定することができる。実施例では、構築変更の効果を指示するインターフェースが、評判のアプリケーションのうちどれをブロックすべきか表示する。例えば、アプリケーションの人気度は、全分配データに基づいてサーバー151により、あるいは管理中の機器グループのアプリケーションの普及率により決定することができる。実施例では、変更結果インターフェースは、管理中の少なくとも1つの機器に現在インストールしているアプリケーションに影響を及ぼす変更だけを表示する。
【0431】
モバイル通信機器の受け入れ可能な処理とポリシーシステムが抵触するのを防止するために、本発明の実施例は、受け入れ可能なアプリセットを維持し、またユーザーあるいはIT管理者がそれらのセットを容易にホワイトリストに付け加えることができるようにするサーバー151に向けたものである。ホワイトリストは受け入れ可能アプリの変更を自動的に含む。例えば、サーバー151は、全般的に人気あるアプリケーションリストすなわちアプリケーションカテゴリにより人気あるアプリケーションリストを維持する。ポリシー構築インターフェースでは、ポリシーホワイトリストにおいて、サーバーはすべての人気あるアプリケーションあるいは特別のカテゴリ(例えば、ゲーム、ソーシャルネットワーク)で人気あるアプリケーションを含む方法を提示できる。実施例では、そのようなダイナミックなリストポリシーは、ブラックリストおよびホワイトリストの評価基準より高い優先度を持ち、一方明確なアプリケーションエントリーより低い優先度を持っている。ほかの実施例では、サーバー151は、高い信頼性でアプリケーションリストを維持できる。ポリシー構築インターフェースでは、サーバーはポリシーホワイトリストにあるすべての高い信頼度のアプリケーションを含ませる方法を提示できる。高い信頼度リストがアップデートされるたび、高い信頼度のアプリケーションは、ポリシー評価を行うときに実際上ホワイトリストに組み入れられる。
【0432】
モバイル機器にはすでに機器管理サーバーあるいはサービスが配置されているので、サーバーが、ポリシー施行を実際に行う機器管理サーバーにデータを提供できることが望ましい。実施例では、機器管理サーバーのアプリケーションポリシーを構築するためにサーバー151は機器管理サーバーと連結する。例えば、機器管理サーバーは、構築可能なアプリケーションブラックリストおよびホワイトリストをサポートする。ユーザーが、ホワイトリストにあるあるいは特定の評価基準に合致するアプリケーションだけを許可する構築をサーバー151に行うと、サーバー151はホワイトリストに組み入れるアプリケーションリストを生成し、機器管理サーバーがサポートするフォーマットであるいはプロトコルを介して機器管理サーバーにアプリケーションリストを送信する。同様に、ユーザーがサーバー151にブラックリストを構築する場合、サーバーは、ブラックリストにあるアプリケーションリストを生成し、ブラックリストを施行するために機器管理サーバーを構築する。実施例では、サーバーは多数の機器管理サーバーを構築することが可能である。例えば、機構が多数のモバイル機器オペレーティングシステムをサポートし、異なるモバイル機器管理サーバーを使用する場合、管理者はサーバー151にクロスプラットフォームポリシーを構築できる(例えば、すべてのシェアリングアプリケーションをブロックする)。次にサーバー151は、評価がポリシーに合致する多数のプラットフォーム間のすべてのアプリケーションを認証でき、機器管理サーバーの適当なアプリケーションポリシーを構築できる。各機器管理サーバーは、サーバー151がサポートするモバイル機器プラットフォームのサブセットだけをサポートできるので、サーバー151は機器管理サーバーに、機器管理サーバーでサポートされるオペレーティングシステムで走るデータオブジェクトに対応するポリシー情報のみを送信する。例えば、機器管理サーバーがブラックベリーのみをサポートする場合、サーバー151は、ブラックベリーアプリケーションに関する情報を持つ機器管理サーバーのブラックリストおよび/またはホワイトリストのみを構築できる。
【0433】
実施例では、ポリシーコンプライアンスチェックは、サーバー151あるいはモバイル通信機器101により実行できる。例えば、サーバーがコンプライアンスチェックを実行する場合、モバイル通信機器101で実行されるどの構成もサーバーに送信される構成になるように、どのコンプライアンス設定もサーバーに格納される。機器がサーバー151からアプリケーションに対する評価を要求すると、サーバーは評価にそのアプリケーションがポリシーにより許可されているか拒絶されているかの指示を含む。ほかの実施例では、モバイル通信機器101がコンプライアンスチェックを実行する場合、サーバー151で実行されるどの構成も機器に送信される構成になるように、どのコンプライアンス設定もモバイル通信機器101に格納される。機器がアプリケーションに対する評価を受信するとき、機器は評価とポリシー構成を比較してそのアプリケーションが許可されるか決定する。
【0434】
実施例では、サーバー151により提供されたアプリケーションに対する署名と評価により、機器101がポリシーに違反するデータオブジェクトをブロックできるように、ポリシー管理はサーバーと連結したアンチマルウェアシステムと統合される。例えば、機器101がサーバー151から評価を要求すると、サーバーの評価は、アプリケーションが悪意を持っているとみなされた場合あるいはアプリケーションがポリシーに違反する場合、そのアプリケーションは不適当であると指示する。どの場合も、作り出された評価は、そのアプリケーションがなぜ悪意を持つのかあるいはポリシー違反なのかに関するさらなる情報を指示できる。ほかの例では、サーバー151に接触することなしにデータオブジェクトが適当であるのかあるいは不適当であるのか機器が認識できるように、サーバー151はモバイル通信機器101に悪意あるあるいはポリシー違反しているアプリケーションに対する署名を事前に早めて署名を送信できる。
【0435】
機器101が、機器あるいはサーバー151のどれかに保護ポリシーに違反するアプリケーションをインストールした場合、あるいはアプリケーションに対する評価がアップデートされてそのアプリケーションが保護ポリシーに違反する場合、機器あるいはほかのシステムにより改定作業を起こすことが望ましい。実施例では、機器にインストールしたアプリケーションがその機器の保護ポリシーに違反する場合、機器のサーバーあるいはソフトウェアは改定作業を引き起こす。ポリシーコンプライアンスが機器101あるいはサーバー151のどちらで決定されるかに依拠して、機器あるいはサーバーがどのような改定行動を取るべきか決定できる。
【0436】
例えば、ユーザーがアプリケーションをインストールし、サーバー151から受信した評価が、今後ある点でサーバーがそのアプリケーションは受け入れ可能だがそのアプリケーションは受け入れ不可能であると決定すると指示する場合、サーバー151は、機器のために取る改定作業を含む機器にアップデートした評価を送信する。ほかの実施例では、ユーザーが機器にアプリケーションをインストールし、機器が、そのアプリケーションは受け入れ可能だが、機器のソフトウェアがアプリケーションがポリシーに違反する(例えば、アプリケーションがユーザーのロケーションを獲得しようとする)ことを示す挙動データを収集したという評価をサーバー151から受信した場合、機器はアプリケーションを削除するような事前構築した改定作業を行うことができる。機器はまたサーバー151にこの挙動を送信するとともにポリシー違反を指示する。当業者なら、ポリシーを施行する挙動データを用いることで、アプリケーションの脆弱性が襲われたとき、アプリケーションが機器のサブセットで不適当なふるまいだけをする(例えば、特定の会社の従業員に対する目標を定めた攻撃)場合、あるいはアプリケーションがある時間後に不適当なふるまいをする(例えば、時限爆弾)場合のようなさまざまな状況においてモバイル通信機器を保護できることを認めるであろう。
【0437】
機器がポリシーに違反していると検出されたとき、各種の改定作業が可能である。例えば、どのような違反するアプリケーションでもその処理を終わりにすることができ、アクセスする特定のネットワーク機能(例えば、インターネット、プライベートデータ)からアンインストールあるいは分離することができ、あるいは特定のネットワーク(例えば、Wi-Fiだけにアクセス可能、携帯電話ネットワークでない)にアクセスすることを制限することができる。情報漏洩を防ぐことはコンプライアンスを逸脱するが、企業のEメールあるいはVPNサーバーのような重大な資源にアクセスすることから全体の機器を分離することも望ましい。ほかの改定作業として、2008年10月21日に提出された米国特許出願番号12/255,614に記載されたものを含めることができる。
【0438】
管理者がサーバー151を用いてポリシーを設定できる場合、ユーザーが、サーバー151を使用して、ポリシーが適用される機器のコンプライアンス状態を閲覧できるようにするのが望ましい。実施例では、サーバー151は、モバイル通信機器のグループがアプリケーションポリシーに従っているかどうかおよびグループの機器にどのアプリケーションがインストールされているか決定する。例えば、モバイル通信機器がインストールしたアプリケーションを報告し、またサーバー151がポリシー構成を含む場合、サーバーはどの機器が現在管理者により設定されたポリシーに違反しているか決定できる。管理者がコンプライアンス状態を閲覧できるように、サーバー151は、どれかの機器がコンプライアンスを逸脱した場合、すべての機器は追従するのか否か、どのくらいあるのかということをリストしたウェブインターフェースを生成することができる。インターフェースにより、管理者はコンプライアンスを逸脱した特別の機器を閲覧することができ、どのアプリケーションにより機器のコンプライアンスが逸脱するのか閲覧することができ、さらに遠隔で改定作業(例えば、アプリケーションの削除)を始めることができる。
【0439】
実施例では、サーバー151は、管理者がシングルボタンをクリックして、管理者が管理するグループのすべての機器の改定作業を遠隔で始めるワンクリック改定作業を提示する。例えば、管理者が100個の機器を管理しており、そのうちの10個がポリシーに違反するアプリケーションを持っている場合、管理者はウェブインターフェースのワンクリック改定作業ボタンをクリックして、各コンプライアンスを逸脱した機器に指示を送り、ユーザーの介入を要求することなく不適当なアプリケーションを削除することができる。一旦改定作業が完了すると、各機器101はサーバー151にそれが成功したか否かを示す指示を送ることができる。改定作業の間、サーバー151はインターフェースを生成することができ、これにより管理者は改定の状態を閲覧できる。サーバーがコンプライアンス状態を表示するほかの方法には、サーバー151がAPI(例えば、セキュリティ管理コンソールによる利用)を表示する方法およびサーバー151がダウンロード可能な報告を生成する方法を含む。
【0440】
ある実施例では、不適当とみなすアプリケーションをインストールした場合あるいはアップデートした評価に基づき以前インストールしたアプリケーションを今は不適当とみなす場合、ユーザーあるいは管理者が通知書を受信できることが望ましい。実施例では、モバイル通信機器101は、サーバー151にデータオブジェクトのインストールに関する情報を送信する。サーバー151が、全面的に不適な特徴あるいはユーザーに対する特徴に基づきデータオブジェクトは不適当であると決定した場合、サーバーは通知書を送信する。例えば、ユーザーが、アプリケーションは今の時点では適当であるが、将来のある時点でそのアプリケーションが、バッテリー浪費のような悪意あるいはほかの不適当な挙動を示しだすと評価したアプリケーションをインストールする場合、サーバーは評価を変えて、そのアプリケーションは不適当であると指示することができる。通知書は、ウェブページ上、PC上、あるいはモバイル通信機器上のEメール、SMSメッセージ、あるいはユーザーインターフェースダイアログのようなさまざまの形を取ることができる。
【0441】
複数のモバイル通信機器を管理するIT管理者のために、そのアプリケーションが多数のプラットフォームで利用可能であり、また多数のバージョンを持っていたとしても、特別のアプリケーションに対してポリシーを設定することができる。例えば、IT管理者にとって、異なるオペレーティングシステムを走らせているモバイル通信機器の集団を管理することは珍しいことではない。モバイル通信機器の集団には、アイフォーン、ブラックベリーデバイスおよびアンドロイドデバイスを含めることができる。しかしながら、アプリケーションが1つのプラットフォームに重大な情報をシェアできるがほかにはシェアできない場合、IT管理者はアプリケーションのインストールが重大な情報をシェアしないプラットフォームだけに許可することができる。上記したように、IT管理者が、アプリケーションの多数のバージョンを個別の決定として取り扱うポリシーを維持する代わりに、すぐにアプリケーションのすべてのバージョンに関するポリシー決定できるようにすることが望ましい。非常に頻繁にアップデートされるアプリケーションがあるので、管理者が特別のアプリケーションのすべてのバージョンを1つのポリシー決定として処置できない場合、アプリケーションポリシーを管理することは非常に困難なタスクに急激になっている。
【0442】
アプリケーションはアップデート間で徹底的に変化することがあるため、管理者として、そのアプリケーションを許可するか否かの管理者の決定に影響を及ぼすことができるどんな変化にも気づくことが望ましい。本発明の実施例は、ブラックリストあるいはホワイトリストに機能あるいは特徴を多大に変化させるアプリケーションがある場合に通知書を送るサーバー151に向けられている。例えば、管理者のホワイトリストにあるアプリケーションの新バージョンはユーザー機器からファイルを送信する機能を持つが以前のバージョンはそうではない場合、サーバー151は管理者に変化を指示するEメールあるいはテキストメッセージを送ることができる。サーバー151のポリシー管理インターフェースもまた、変化した特徴に基づき注意を必要とするアプリケーションリストを表示できる。
【0443】
構成を簡単にするために、本発明の実施例は、モバイル通信機器101のソフトウェアあるいはコモンユースケースを説明するデフォルトポリシーを提供可能なサーバー151に向けられている。例えば、ユーザーは、バッテリー寿命およびロケーションプライバシーに関係するがネットワーク処理と電話番号プライバシーには関係しないことを選択できる。そのような関係を選択することにより、機器あるいはサーバーは、不適当なアプリケーションに対して自動的にポリシーと閾値を構築する。実施例では、サーバー151あるいは機器101は、規則に関するコンプライアンスの事前設定ポリシーを含む。例えば、金融業界あるいはヘルスケア業界のワーカーは、重大な情報の開示を防止するために、アプリケーションポリシーの特別なセットを持つことが要求される。これらの規則のもと許可されるあるいは拒絶されるアプリケーションのセットは時間につれ変化するかもしれないので、サーバー151は、管理者が特別にそれらを構築する必要なしにその規則を実行する特別なポリシー決断を自動的にアップデートできる。検査および監査を許可するために、サーバー151は、規則に従うように用いられたポリシー決断のリストを生成でき、ポリシー決断が変化したとき管理者に通知することができる。管理者が特定のポリシー決断を拒絶する場合、彼らはサーバー151により設定されたデフォルトポリシーを無効にする。
【0444】
ポリシー構築処理を簡単にするのが望ましいので、本発明の実施例は、ユーザーあるいは管理者に続いて質問を提示するサーバー151あるいはモバイル通信機器101に向けられており、質問に対する回答は自動的にポリシーを設定するように使用される。例えば、ユーザーがまず彼らの機器のアプリケーションポリシーソフトウェアを立ち上げると、ソフトウェアは、ユーザーは制限のないデータプランを持っているのかどうか、ユーザーは機器のロケーションにアクセスするサービスを希望しているのかどうか、そしてユーザーが、機器をスパイするために使用可能なすべてのツールをブロックしたいのかどうかを問いただすことができる。質問に対する回答に基づき、機器は、高度なデータ処理アプリケーションをブロックすべきか否か、高度なデータ処理アプリケーションの場合ユーザーに警告すべきか否か、インターネットにユーザーロケーションを送るアプリケーションをブロックすべきか否か、そしてスパイ行為アプリケーションをブロックすべきか否かのポリシーを設定することができる。最初にセットアップしたのち、ユーザーはポリシー決定を微調整することができるが、一方、ほかのユーザーは自動的に構築したポリシーを受信することができる。
【0445】
不正なアプリケーションはワイヤレスネットワークに実質的にネガティブなインパプトを与えるので、本発明の実施例は、潜在的に不正なアプリケーションに関する「早期警告」情報を提供することに向けられている。実施例では、サーバー151は、アプリケーションがモバイルネットワークに対して有害になるかもしれないネットワークアクセス特性を持っているか否かという評価を作り出すために、挙動データ及びそれを利用可能なほかのデータのような情報を使用することができる。例えば、多量のデータを受信し送信するアプリケーション、多数のSMSメッセージを送るアプリケーション、あるいは多数のしつこい接続を開くアプリケーションは、モバイルネットワーク性能に悪影響を及ぼす可能性がある。アプリケーションを評価してそれが潜在的にモバイルネットワークに有害になるか決定したのち、サーバー151はその評価を格納する。実施例では、サーバー151は、潜在的に有害なアプリケーションが認められたとき管理者に通知する。例えば、通知書はEメールあるいは潜在的に有害なデータオブジェクトに関する情報を含むテキストメッセージの形にすることができる。
【0446】
実施例では、サーバー151は、モバイルネットワークに潜在的に有害であると評価されたアプリケーションを表示するウェブインターフェースを生成する。ウェブインターフェースは、潜在的に有害なアプリケーションが管理者によってさらに分析できるように、レビューワークフローをサポートするためにデザイン可能である。アプリケーションを調べたのち、管理者はいくつかのケースで改定作業を行いたいかもしれないが、ほかのケースでは、監視者は作業を行いたくないかもしれない。管理者が作業を行わない場合、サーバー151をトリガーして再レビューのためにアプリケーションを確認し、アプリケーションの挙動に大きな変化がないならば、そのアプリケーションは潜在的に有害と見なされない。所定のアプリケーションのための多数のデータオブジェクトが潜在的に有害だと繰り返し確認されるのを防止するために、管理者がアプリケーションを無視することを選択した場合、そのアプリケーションのすべてのバージョンも無視される。それはサーバー151が多くのデータオブジェクトが同一のアプリケーションに属しているのかあるいはほかのグループなのかを決定できるためである。
【0447】
管理者が潜在的に有害なアプリケーションに気づいた場合、そのアプリケーションをさらにほかの機器にインストールすべきかという重大な問題を回避するため、彼らは予防の方法を取ることができる。実施例では、サーバー151は、管理者に有害であるとみなされたアプリケーションに対して改定作業を行うことを許可するウェッブインターフェースを生成する。さまざまな改定作業が可能である。例えば、サーバー151は、ネットワーク管理者にアプリケーションの発行人と通信し、有害な挙動に対してずっと解決していくことを許可するインターフェースを提示できる。サーバー151はマーケットプレースから発行人のEメールアドレスを抽出し、ネットワーク管理者に、サーバーのウェブのインターフェースを介して、サーバーが発行人に送るメッセージのタイプを打たせることを許可することができる。サーバー151がEメールを送る場合、発行人が回答するとき、サーバーは回答と最初のメッセージを関連付け、その回答をウェブインターフェースに公開して管理者が閲覧でき潜在的に会話を継続できるようにするために、出て行くEメールのアドレスに対する回答は特別に設定される。実施例では、サーバー151は、ウェブインターフェースを生成して、管理者に機器グループにインストールしたセキュリティソフトウェアを構築することを許可する。例えば、管理者は、アプリケーションが携帯電話ネットワークを介して通信できないようにするために、セキュリティソフトウェアを構築して潜在的に有害なアプリケーションをブロックすることができあるいはアプリケーションを分離することができる。管理者がアプリケーションをブロックしたい場合、サーバー151は、ここで開示したようなさまざまなメカニズムを使用して、アプリケーションが機器にインストールされることをブロックする、あるいはすでに機器にインストールされていた場合そのアプリケーションを削除することができる。サーバー151は同一のアプリケーションに対応する多くのデータオブジェクトを確認できるので、管理者がアプリケーションをブロックすると、そのアプリケーションに対するすべてのデータオブジェクトはブロックすべきであるとみなされる。潜在的に有害だったアプリケーションが次のバージョンで修繕される場合、サーバー151は、管理者がブロックするためのアプリケーションのバージョン範囲を特定することを許可する。
【0448】
不適当なアプリケーションのダウンロードを防止するのは好ましいことであるので、本発明の実施例は、ネットワークインフラストラクチャ構築データを生成するサーバー151に向けられたものである。例えば、サーバー151はブラックリスト化されたデータオブジェクトを格納でき、また侵入阻止システムあるいはHTTP委任ルールセットを生成することができる。このルールにより、ネットワークを通じてデータオブジェクトが送信されてきたときに、アプリケーションマーケットプレースからこのデータオブジェクトをダウンロードするために、モバイル機器で使用される識別子と合致するか試すことができ、あるいは不適当なデータオブジェクトのコンテンツの身元確認をすることができる。
【0449】
実施例では、サーバー151はネットワークインフラストラクチャ構築データを生成し、不適当なアプリケーションに関連付けられたネットワークトラフィックをブロックしている。サーバー151は、不適当なアプリケーションに対する挙動データを用いてサーバー151により不適当なアプリケーションと関連付けたネットワーク通信を防止するネットワークインフラストラクチャ構築ルールを生成し、これにより、そのアプリケーションおよび同一のネットワークトラフィック(例えば、同一のIPアドレスに対するトラフィック、サブネット、あるいはホストネーム)をブロックする生成ルールとを関連付けたネットワーク通信を特徴付ける。正当なトラフィックがブロックされることを防止するために、サーバー151は不適当なアプリケーションネットワークトラフィックが適当なアプリケーションと比較してどのように独特なのかを分析することができ、その不適当なアプリケーション独特のネットワークトラフィックのみをブロックすることができる。例えば、アプリケーションが2つのサーバー、すなわち1つが各種の正当なアプリケーションで使用される周知のサーバーであり他方がこのアプリケーションのみで通信する未知のサーバーの2つと通信する場合、サーバー151は、未知のサーバーを不適当なアプリケーション独特のもとして処理する。
【0450】
ブロックするのに適切なネットワークトラフィックを決定したのち、サーバー151は、ファイアウォールあるいはほかのネットワーク構築ルールを生成して、不適当なアプリケーションのネットワークトラフィックをブロックする。例えば、悪意あるアプリケーションが人々の電話器から重大なデータをこっそり抜き出すために独特のサーバーを使用している場合、アプリケーションに対する挙動データは、重大なデータを送信するために用いられるIPアドレス、ポート、およびプロトコルを指示することができる。管理者が、データを盗むための悪意あるアプリケーション機能をブロックしたいとき、彼らは、そのアプリケーションがサーバーと通信するサーバーリストを参照でき、サーバー151には未知のほかのアプリケーションのどくらいが一般的にサーバーと通信しているか参照できる。次に管理者はブロックするためにどのサーバーにするか選択できる。ブロックするためのサーバーを選択したのち、サーバー151はネットワークトラフィックをブロックするルールを生成する。実施例では、サーバー151は、ウェブインターフェースを介してダウンロードに利用できる、SnortR侵入検知・防止システムルール、のような構築データを作成する。実施例では、サーバー151は直接ネットワークインフラストラクチャ管理システムに接続するように構成されており、これにより構築データが実行される。
【0451】
管理者が最初に特別のネットワークに関連付けできるようにするため、本発明の実施例は、潜在的に有害なアプリケーションを確認するために統合した評価およびオペレーター特有の評価の両方を作り出し、またその両方を含むユーザーインターフェースを生成するサーバー151に向けられている。例えば、アプリケーションがモバイルネットワークの特別なタイプに接続された機器で走るときだけ不適当な振舞いをする場合、統合挙動データは正常な範囲とみなせる。しかしながら、特別のネットワークに対する挙動データは有害であるかもしれない。ネットワーク管理者は、彼らが管理しているネットワークのタイプのアプリケーションの挙動を閲覧したいであろう。個々のモバイルネットワークは、不正なものとして異なる挙動を取るので、サーバー151のユーザーはネットワークに有害なアプリケーションを考慮するための基準を構築できる。
【0452】
上記及び全体を通じた説明において、本発明の包括的な理解を供するために、たくさんの特別に詳細な説明を行った。しかし、当業者なら、これらの特別詳細な説明なしでも本発明が実施できることは認めるであろう。ほかの例の場合、説明を容易にするために周知の構成および機器がブロックダイヤグラムフォームで示してある。好適な実施例による説明はここに添付したクレームの範囲を制限するものではない。さらに、ここで開示した方法の場合、本発明の機能のいくつかを説明する各種ステップが開示されている。当業者なら、これらのステップは単に模範的なものであり、いかようにも制限されるものではないことを認めるだろう。ほかのステップ及び機能は本発明から逸脱しない限り想定可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12