(57)【特許請求の範囲】
【請求項１】
インストラクションが保管された少なくとも一つのマシンでアクセス可能なコンピュータプログラムであって、
マシン上でインストラクションが実行されると、前記マシンは、
モバイルコンピューティング機器のカーネルに対する、写真データを含んでいるシステムコールをインターセプトし、
前記モバイルコンピューティング機器の検出されたロケーションに少なくとも部分的に基づいて、前記写真データの使用に適用可能なロケーションベースのデータ損失防止（ＤＬＰ）ポリシを特定し、かつ、
前記ロケーションベースのＤＬＰポリシおよび前記モバイルコンピューティング機器の前記ロケーションに少なくとも部分的に基づいて、インターセプトされた前記システムコール上のアクションを実行する、
コンピュータプログラム。
【請求項２】
前記モバイルコンピューティング機器が所定の地理的ロケーションの外部にある間に前記写真データを出力しようとする試みは、前記ロケーションベースのＤＬＰポリシに基づいてブロックされる、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記カーネルは、リナックス（登録商標）（Ｌｉｎｕｘ（登録商標））カーネルであり、かつ、
前記システムコールは、リナックス（登録商標）セキュリティモジュール（ＬＳＭ）によってインターセプトされる、
請求項１に記載のコンピュータプログラム。
【請求項４】
エージェントは、前記モバイルコンピューティング機器上にインストールされたアプリケーションである、
請求項１に記載のコンピュータプログラム。
【請求項５】
エージェントは、前記モバイルコンピューティング機器に対応するポリシ情報のために、リモートのセキュリティサーバーとインターフェイスで接続している、
請求項４に記載のコンピュータプログラム。
【請求項６】
エージェントのロジックは、前記カーネルとインターフェイスで接続されているセキュリティモジュールの中に含まれている、
請求項１に記載のコンピュータプログラム。
【請求項７】
所定の前記システムコールは、前記モバイルコンピューティング機器に係るＳＭＳ、ｅメール、近距離無線通信（ＮＦＣ）、ブルートゥース、および、ＷｉＦｉ機能のうち少なくとも一つを使用した前記写真データの出力を含んでいる、
請求項１に記載のコンピュータプログラム。
【請求項８】
前記写真データを利用することができる前記モバイルコンピューティング機器のアプリケーションは、仮想マシンのコンテナのプロセスにおいて実行される、
請求項１に記載のコンピュータプログラム。
【請求項９】
前記仮想マシンのコンテナのプロセスは、ダルビック（Ｄａｌｖｉｋ）プロセスの仮想マシンを含む、
請求項８に記載のコンピュータプログラム。
【請求項１０】
前記写真データは、ビデオデータを含む、
請求項１に記載のコンピュータプログラム。
【請求項１１】
モバイルコンピューティング機器のカーネルに対する、写真データを含んでいるシステムコールをインターセプトするステップと、
前記モバイルコンピューティング機器の検出されたロケーションに少なくとも部分的に基づいて、前記写真データの使用に適用可能なロケーションベースのデータ損失防止（ＤＬＰ）ポリシを特定するステップと、
前記ロケーションベースのＤＬＰポリシおよび前記モバイルコンピューティング機器の前記ロケーションに少なくとも部分的に基づいて、インターセプトされた前記システムコール上のアクションを実行するステップと、
を含む、方法。
【請求項１２】
前記ロケーションベースのＤＬＰポリシを特定する前記ステップは、
前記写真データに適用可能なＤＬＰポリシを前記モバイルコンピューティング機器上のエージェントに問い合せるステップと、
ＤＬＰポリシを前記写真データに適用するか否かを特定している結果を前記エージェントから受信するステップであり、前記結果は前記ロケーションベースのＤＬＰポリシを特定しているステップと、
を含む、請求項１１に記載の方法。
【請求項１３】
前記ロケーションベースのＤＬＰポリシは、所定の地理的領域の外部での前記写真データへのアクセスを制限する、
請求項１１に記載の方法。
【請求項１４】
前記所定の地理的領域は、ジオフェンスを使用して定められる、
請求項１３に記載の方法。
【請求項１５】
前記所定の地理的領域は、前記写真データが作成されたロケーションに対応している、
請求項１３に記載の方法。
【請求項１６】
前記システムコールは、前記写真データの入力を含み、かつ、
前記写真データは、前記モバイルコンピューティング機器上のカメラから発生している、
請求項１１に記載の方法。
【請求項１７】
前記アクションは、前記写真データをロケーション情報とタグ付けすることを含み、
前記タグ付けされたロケーション情報に基づいて、ロケーションベースのＤＬＰポリシが、前記モバイルコンピューティング機器上で実施される、
請求項１６に記載の方法。
【請求項１８】
前記ロケーション情報は、前記写真データがキャプチャされたロケーションに対応している、
請求項１７に記載の方法。
【請求項１９】
前記ロケーション情報は、前記写真データのキャプチャにおいて前記モバイルコンピューティング機器を使用してキャプチャされた地理的データに対応している、
請求項１８に記載の方法。
【請求項２０】
前記方法は、さらに、
前記写真データを含んでいる後続のシステムコールを受信するステップと、
ロケーションデータを特定するステップと、
前記写真データに適用可能なＤＬＰポリシに対するエージェントの問い合せに関して、前記ロケーションデータを通信するステップと、
前記タグ付けに少なくとも部分的に基づいて、前記後続のシステムコール上のアクションを実行するステップと、
を含む、請求項１７に記載の方法。
【請求項２１】
プロセッサデバイスと、
メモリエレメントと、
カーネルとインターフェイスで接続されたセキュリティマネージャと、を含み、
前記セキュリティマネージャは、前記プロセッサデバイスによって実行されると、
モバイルコンピューティング機器のカーネルに対する、写真データを含んでいるシステムコールをインターセプトし、
前記モバイルコンピューティング機器の検出されたロケーションに少なくとも部分的に基づいて、前記写真データの使用に適用可能なロケーションベースのデータ損失防止（ＤＬＰ）ポリシを特定し、かつ、
前記ロケーションベースのＤＬＰポリシおよび前記モバイルコンピューティング機器の前記ロケーションに少なくとも部分的に基づいて、インターセプトされた前記システムコール上のアクションを実行する、
ように適合されている、システム。
【請求項２２】
前記システムは、さらに、
前記写真データを生成するためのデジタルカメラを含んでいる、
請求項２１に記載のシステム。
【請求項２３】
前記ロケーションベースのＤＬＰポリシを特定することは、
前記写真データに適用可能なＤＬＰポリシを前記モバイルコンピューティング機器上のＤＬＰエージェントに問い合せること、および、
ＤＬＰポリシを前記写真データに適用するか否かを特定している結果を前記エージェントから受信することであり、前記結果は前記ロケーションベースのＤＬＰポリシを特定していること、
を含む、請求項２１に記載のシステム。
【請求項２４】
前記システムは、さらに、
前記ＤＬＰエージェントを含んでいる、
請求項２３に記載のシステム。
【請求項２５】
前記システムは、さらに、
前記モバイルコンピューティング機器を含んでいる、
請求項２１に記載のシステム。
【請求項２６】
請求項１乃至１０のうちいずれか一項に記載のコンピュータプログラムを記憶した、
コンピュータで読取り可能なストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明開示は、一般的に、セキュリティ分野に関する。より特定的には、ロケーションに基づいたモバイル機器における管理アプリケーションに関する。
【背景技術】
【０００２】
モバイル機器の使用の増加と供に、データ損失防止（ｄａｔａ  ｌｏｓｓ  ｐｒｅｖｅｎｔｉｏｎ）（または”ＤＬＰ”）の分野において新たなチャレンジが出現してきた。モバイル機器は、しばしば、従来のデスクトップおよび装置上には通常は見い出せない多くの情報および機能を有している。全地球測位システム（ＧＰＳ）、カメラ、近距離無線通信（ＮＦＣ）、等といったものである。そうした機能は、また、漏洩するおそれのある新たなタイプの機密データをもたらし得る。種々の異なるチャネルを介して常に通信ネットワークと接続されるというモバイル機器の傾向によって、状況はさらに複雑になっている。チャネルは、音声、ＧＰＲＳ、３Ｇ、４Ｇ、データ、ブルートゥース（登録商標）、等といったものである。そうしたインスタンスにおいては、漏洩するおそれのあるデータの種類は、より多様であり得る。漏洩が発生する機会も同様である。加えて、いくつかのモバイル機器プラットフォームは、コンテンツインスペクションを難しくしている。他の障害のうち、厳格なコンテナ化および粗粒（ｃｏａｒｓｅ  ｇｒａｉｎｅｄ）のパーミッションモデルを通じたものである。他の実施例のうち、「ブリングユアオウンデバイス（”ｂｒｉｎｇ  ｙｏｕｒ  ｏｗｎ  ｄｅｖｉｃｅ”）」またはＢＹＯＤの傾向は、さらに、機密データのセキュリティソリューションおよびコントロール管理を一様に提供することを課された管理者とＩＴ従事者の関心事である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
モバイルコンピューティング機器のためのデータ損失防止である。
【課題を解決するための手段】
【０００４】
モバイルコンピューティング機器のカーネルへのシステムコールがモニタされる。所定のシステムコールが、モバイルコンピューティング機器の入力／出力（Ｉ／Ｏ）機能に関してインターセプトされる。所定のシステムコールに適用可能なデータ損失防止（ＤＬＰ）ポリシが特定される。少なくとも部分的にＤＬＰポリシに基づいて、所定のシステムコール上でアクションが実行される。
【図面の簡単な説明】
【０００５】
種々の図面における類似の参照番号および記号は、類似のエレメントを示すものである。
【図１】図１は、一つの実施例に従った、データ損失防止（ＤＬＰ）サーバーを含むシステム例の簡素化された模式的な図である。
【図２】図２は、一つの実施例に従った、モバイルユーザ機器とＤＬＰサーバーを含むシステム例の簡素化された図である。
【図３】図３は、一つの実施例に従った、一つまたはそれ以上のモバイルユーザ機器について展開され得るＤＬＰソリューションに係る一組の例を表している簡素化された図である。
【図４】図４は、一つの実施例に従った、ネットワークベースのＤＬＰソリューション例を示している簡素化された図である。
【図５Ａ】図５Ａは、一つの実施例に従った、暗号化されたコンテナ（ｃｏｎｔａｉｎｅｒ）の簡素化された例である。
【図５Ｂ】図５Ｂは、一つの実施例に従った、暗号化されたコンテナの簡素化された例である。
【図６Ａ】図６Ａは、一つの実施例に従った、ＤＬＰエージェントとセキュリティモジュールを含んでいるモバイルコンピューティング機器の例を表している簡素化された図である。
【図６Ｂ】図６Ｂは、一つの実施例に従った、ＤＬＰエージェントとセキュリティモジュールを含んでいるモバイルコンピューティング機器の例を表している簡素化された図である。
【図７】図７は、一つの実施例に従った、ＤＬＰエージェントアプリケーションとセキュリティモジュールとの間のインタラクションの例を表している簡素化された図である。
【図８Ａ】図８Ａは、一つの実施例に従った、ロケーションベースのＤＬＰ実施を表している簡素化されたフロー図である。
【図８Ｂ】図８Ｂは、一つの実施例に従った、ロケーションベースのＤＬＰ実施を表している簡素化されたフロー図である。
【図８Ｃ】図８Ｃは、一つの実施例に従った、ロケーションベースのＤＬＰ実施を表している簡素化されたフロー図である。
【図９Ａ】図９Ａは、一つの実施例に従った、モバイルコンピューティング機器のためのデータ損失防止に関するオペレーションの例を表しているフローチャートである。
【図９Ｂ】図９Ｂは、一つの実施例に従った、モバイルコンピューティング機器のためのデータ損失防止に関するオペレーションの例を表しているフローチャートである。
【発明を実施するための形態】
【０００６】
いくつかの実施において、モバイルユーザコンピューティング機器のためのデータ損失（ＤＬＰ）ソリューションの例が提供される。例えば、リナックス（登録商標）セキュリティマネージャ（ＬＳＭ）といった、カーネル（ｋｅｒｎｅｌ）セキュリティマネージャを通じたものである。ＬＳＭサービスは、他の実施例の機能のうち、モバイル機器の種々のアプリケーションにわたって作用し、柔軟性のあるポリシフレームワークを提供し、かつ、モバイル機器アプリケーションとサブシステムのコンフィグレーションを維持することができる。
【０００７】
従来のＤＬＰツールおよびシステムは、不適切にシステムを離れていく（または、入ってくる）種々のタイプのデータから身を守ることができる。データタイプは、実行データ（ｄａｔａ−ｉｎ−ｍｏｔｉｏｎ）を含み得る。ｅメール、ウェブポスト、ネットワークトラフィック、インスタントメッセージ、等である。活動するデータは、例えば、システムのネットワークに係る進入（ｉｎｇｒｅｓｓ）及び/又は放出（ｅｇｒｅｓｓ）ポイントにおいて展開されるソリューションを通じて、実施され得る。データタイプは、さらに、保存データ（ｄａｔａ−ａｔ−ｒｅｓｔ）のデータタイプを含み得る。共有ファイル、データベース、システム内のデスクトップおよびラップトップにおけるストレージ、等といったものである。ディスカバリ（ｄｉｓｃｏｖｅｒｙ）およびフィンガープリントソリューションは、保存データに関して利用され得る。加えて、実行データタイプは、リムーバブル媒体、プリンタ、グラフィカルディスク、等を介して保管または出力されるデータを含んでよく、ＤＬＰ実施は、そうしたデータ放出が生じ得るところであるコンピューティング機器のエンドポイント（ｅｎｄｐｏｉｎｔ）において発生し得る。従って、従来のＤＬＰソリューションは、種々のソリューションを採用して、システム内でのデータ損失の種々の原因と形式から身を守ることができる。加えて、ＤＬＰソリューションは、システムを出ていくもの、または、入ってくるものと検出されたデータに係るコンテンツおよびコンテクスト（ｃｏｎｔｅｘｔ）の分析に基づいて、ＤＬＰポリシを実施することができる。さらに、ＤＬＰソリューションは、種々のプローブ（ｐｒｏｂｅ）、ＤＬＰイベントを検出するために、ファイルシステムプローブ、ｅメールプローブ、ネットワークプローブ、ＨＴＴＰプローブ、プリンタプローブといったものを利用することができる。そうしたプローブおよび対応するフック（ｈｏｏｋ）は、しかしながら、最新のモバイルコンピューティング機器プラットフォームおよびオペレーティングシステムにおいては、実施するのが難しい。モバイルオペレーティングシステムは、閉じた世界を構成し得る。モバイル機器は、さらに、ＣＰＵ、メモリ、バッテリー、および、モバイル機器に特有のパフォーマンス制限、を有し得る。さらに、モバイル機器は、典型的に、従来のコンピューティング機器よりも多くの起こり得る攻撃チャネル（ａｔｔａｃｋ  ｃｈａｎｎｅｌ）を有し得る。ＳＭＳ、４Ｇ、ブルートゥース、ＮＦＣ、Ｗｉ−Ｆｉ、ＳＤカード、等を通じて提供される攻撃チャネルを含むものである。さらに、追加的なデータ損失の脆弱性が出現し得る。モバイル機器アプリケーションとユーザが、今まで以上にクラウドベースまたは他のウェブ提供および分散サービス、等に依存しているからである。
【０００８】
データは、種々のメカニズムを通じて、導入され、かつ、モバイルコンピューティング機器に入ることができる。例えば、データは、ｅメール、ＳＭＳメッセージ、ファイル共有（クラウドベース及びローカル共有を含む）を通じて、インターネット、ウェブベースアプリケーション、等を介して、導入され得る。データは、類似の多種多様なメカニズムを通じて、共有され、出力され、または、モバイルコンピューティング機器を「離れる（”ｌｅａｖｅ”）」ことができる。外部機器とデータ交換するアプリケーション、ウェブメール、ウェブポスト、メッセージ、ｅメール、クラウドベースのストレージおよびアプリケーションサービス、等といったものを介してである。さらに、モバイルコンピューティング機器は、しばしば、よりサイズが小さく、種々の環境の中にユーザによって持ち運ばれるので、モバイルコンピューティング機器は、例えば、機器の盗難または紛失を通じて、より危険にさらされる傾向があり得る。盗難または紛失は、さらに、データ損失の理由となり得るものである。
【０００９】
図１は、例えば、ＤＬＰポリシサーバー１０５、および、一つまたはそれ以上のモバイルコンピューティング機器１１０、１１５、１２０、１２５を含む、システム１００の簡素化された図を示している。モバイルコンピューティング機器は、一つまたはそれ以上のネットワークにわたって接続し、通信することができる。インターネットといったものであり、プライベート、ローカルエリア、および、他のネットワーク（例えば、集合的に１３０）も同様である。モバイルコンピューティング機器（例えば、１１０、１１５、１２０、１２５）は、一つまたはそれ以上のネットワーク１３０にわたり、種々の他のコンピューティング機器と、インターフェイスし、サービスを利用し、アクセスし、かつ、データを共有することができる。そうしたコンピューティング機器は、例えば、他のパーソナルコンピューティング機器（例えば、１１０、１１５、１２０、１２５）を含んでよい。データ、アプリケーション、および、サービスに係る外部サーバー１４５も同様である。さらに、いくつかの実施において、ＤＬＰポリシサーバー１０５、ＧＰＳサーバー１４０、および、他のシステムは、モバイルコンピューティング機器に向けたＤＬＰソリューションを支援するサービスを提供することができる。そうしたサービスは、いくつかの実施例において、さらに、一つまたはそれ以上のネットワーク１３０にわたり、モバイルコンピューティング機器（例えば、１１０、１１５、１２０、１２５）と外部サーバー（例えば、１０５、１４０）との間の通信を含み得る。いくつかの実施において、モバイルコンピューティング機器（例えば、１１０、１１５、１２０、１２５）は、モバイルコンピューティング機器に対してＤＬＰサービスを提供するためにモバイルコンピューティング機器上のＤＬＰエージェントに関してオペレーションしている、モバイルコンピューティング機器のカーネルとインターフェイスしているセキュリティマネージャを含んでよい。いくつかの場合には、リモートのＤＬＰポリシサーバー１０５、および、他の外部システム、セキュリティツール、および他のリソースの支援に関するものである。
【００１０】
一般的に、コンピューティング環境１００の実施例におけるシステム機器（例えば、１１０、１１５、１２０、１２５、１４０、１４５、等）を含む、「サーバー」、「クライアント」、「クライアント機器」、「コンピューティング機器」、「ネットワークエレメント」、「ホスト」、「システムタイプのシステムエンティティ」は、コンピューティング環境１００に関するデータおよび情報を、受信し、送信し、処理し、保管し、または、管理するように動作可能な電子コンピューティング機器を含み得る。この明細書において使用されるように、用語「コンピュータ」、「プロセッサ」、「プロセッサデバイス」、または「処理装置」は、あらゆる好適な処理装置を包含するように意図されたものである。例えば、コンピューティング環境１００の中で単独のデバイスとして示されているエレメントは、複数のコンピューティング機器またはプロセッサを使用して実施されてよい。複数のサーバーコンピュータを含んでいるサーバープール（ｓｅｒｖｅｒ  ｐｏｏｌ）といったものである。さらに、コンピューティング機器のあらゆるもの、全て、または、いくつかのものは、あらゆるオペレーティングシステムを実行するように適合され得る。リナックス（登録商標）、ＵＮＩＸ（登録商標）、マイクロソフトウィンドウズ（登録商標）、アップルＯＳ、アップルｉＯＳ、Ｇｏｏｇｌｅアンドロイド、ウィンドウズ（登録商標）サーバー、等を含んでおり、カスタマイズされ、占有されたオペレーティングシステムを含む、所定のオペレーティングシステムも同様である。
【００１１】
さらに、サーバー、クライアントデバイス、ネットワークエレメント、システム、および、コンピューティングデバイスは、それぞれに、一つまたはそれ以上のプロセッサ、コンピュータで読取り可能なメモリ、および、一つまたはそれ以上のインターフェイス、他の機能やハードウェアなど、を含み得る。サーバーは、あらゆる好適なソフトウェアコンポーネントまたはモジュール、もしくは、ソフトウェアアプリケーションおよびサービスをホスト及び/又は提供することができるコンピューティングデバイス（例えば、パーソナルセイフティシステム、サーバー１０５のサービスおよびアプリケーション、など）を含み得る。分散、エンタープライズ、または、クラウドベースのソフトウェアアプリケーション、データ、および、サービスを含むものである。例えば、いくつかの実施において、ＤＬＰポリシサーバー１０５、ＧＰＳサーバー１４０、外部サーバー１４５、または、コンピューティングシステム１００に係る他のサブシステムは、クラウドで実施されるシステムであってよい。データ、ソフトウェアサービス、および、システム１００における他のサービスおよびデバイスをインターフェイスし、調整し、独立し、または、使用されるアプリケーション、をリモートにホストし、提供し、または、そうでなければ管理するように構成されているものである。いくつかのインスタンスにおいて、サーバー、システム、サブシステム、または、コンピューティングデバイスは、共通のコンピューティングシステム、サーバー、サーバープール、または、クラウドコンピューティング環境においてホストされ得るデバイスのいくつかの組合せとして実施され、共有メモリ、プロセッサ、および、インターフェイスを含む、コンピューティングリソースを共有することができる。
【００１２】
ユーザ、エンドポイント、または、クライアントコンピューティングデバイス（例えば、１１０、１１５、１２０、１２５、等）は、従来の移動可能なコンピューティングデバイスを含み得る。パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、パーソナルデジタルアシスタント、フィーチャーフォン、ハンドヘルドビデオゲームコンソール、デスクトップコンピュータ、インターネット可能テレビ、および、人間のユーザとインターフェイスするようにデザインされて、一つまたはそれ以上のネットワーク（例えば、１３０）上で他のデバイスと通信可能な他のデバイス、を含むものである。コンピュータアシスト、または、「スマート（”ｓｍａｒｔ”）」な装置は、家庭用または産業用のコンピュータプロセッサを含むデバイスおよびマシンを含み得る。そして、コンピュータプロセッサ、他のハードウェア、及び/又は、コンピュータプロセッサによって実行される一つまたはそれ以上のソフトウェアプログラムによって、コントロールされ、モニタされ、アシストされ、補足され、または、そうでなければデバイスの機能を拡張する。コンピュータアシスト装置は、幅広い種類のコンピュータアシストマシンおよび製品を含み得る。冷蔵庫、食器洗浄機、自動車、ＨＶＡＣシステム、産業用機械、オーブン、セキュリティシステム、等を含むものである。
【００１３】
ユーザコンピューティングデバイス、コンピュータアシスト装置、サーバー、および、コンピューティングデバイスに係る属性は、一般的には、デバイス間で幅広く様々であり得る。それぞれのオペレーティングシステム、ロードされ、インストールされ、実行され、オペレーションされ、または、そうでなければそれぞれのデバイスに対してアクセス可能な、ソフトウェアプログラムのコレクション（ｃｏｌｌｅｃｔｉｏｎ）を含むものである。例えば、コンピューティングデバイスは、種々のプログラムのセットを稼働し、実行し、インストールさせ、または、そうでなければ有することができる。オペレーティングシステム、アプリケーション、プラグイン、アプレット、仮想マシン、マシンイメージ、ドライバー、実行可能ファイル、および、それぞれのデバイスによって稼働され、実行され、または、そうでなければ使用される他のソフトウェアベースのプログラム、に係る種々の組合せを含むものである。
【００１４】
いくつかのシステムデバイスは、さらに、少なくとも一つのグラフィカルディスプレイ装置とユーザインターフェイスを含み得る。システムデバイスのコンピュータプロセッサによってサポートされており、ユーザは、システム１００において提供されるアプリケーションおよび他のプログラムのグラフィカルユーザインターフェイスを見てインタラクションすることができる。システムデバイスの中でホストされているアプリケーションとインタラクションするプログラムに係るユーザインターフェイスおよびグラフィカル表示を含んでおり、システム１００に係るサービスおよびアプリケーションに関するグラフィカルユーザインターフェイスも同様である、等。さらに、システムデバイスは、一人のユーザによって使用される観点で説明されている一方で、この発明開示では、多くのユーザが一つのコンピュータを使用する、または、一人のユーザが複数のコンピュータを使用することができるものと理解している。
【００１５】
図１は、複数のエレメントを含み、または、関連するものとして説明されているが、本発明開示の代替的なそれぞれの実施例においては、図１のコンピューティング環境１００の中に示された必ずしも全てのエレメントが利用されなくてもよい。加えて、図１の実施例に関して説明された一つまたはそれ以上のエレメントは、コンピューティング環境１００に対して外部に位置してもよい。一方、他のインスタンスにおいては、所定のエレメントが、一つまたはそれ以上の他の説明されたエレメントの中に、または、その一部として含まれてよい。図示された実施例において説明されていない他のエレメントも同様である。さらに、図１において示される所定のエレメントは、他のコンポーネントと組合わされてもよい。同様に、ここにおいて説明された目的に加えて、代替的または追加的な目的のためにも使用される。
【００１６】
これから、図２の実施例のブロック図に移ると、一つまたはそれ以上のネットワーク（例えば、１３０）上で通信し、インタラクションすることができるモバイルユーザ機器２０５およびＤＬＰサーバー２１０の例を含むシステムの実施例が示されている。一つの実施例において、モバイルユーザ機器２０５は、一つまたはそれ以上のプロセッサデバイス２１２および一つまたはそれ以上のメモリエレメント２１４を含み得る。プロセッサ２１２とメモリエレメント２１４を使用する追加のコンポーネント、アプリケーション、および、サブシステムを伴うものである。例えば、モバイルユーザ機器２０５は、複数のサブシステム２１８を含み得る。バッテリードライバー、ネットワークアクセス、ディスプレイ装置、データポート、スピーカ、電話、可能性のある多くの他の例など、といったものである。モバイルユーザ機器２０５は、さらに、種々のアプリケーション２２４（または「モバイルアプリケーション（”ｍｏｂｉｌｅ  ａｐｐｓ”）」）を含み得る。ソフトウェア及び/又はハードウェアベースのコンポーネントと機能も同様である。例えば、一つの実施例において、モバイルユーザ機器２０５は、カーネルセキュリティマネージャ２１６を含み得る。リナックス（登録商標）カーネルとインターフェイスしているＬＳＭ、セキュリティマネージャ２１６と併せてオペレーションしているＤＬＰエージェント２２２、および、ＤＬＰエージェント２２２と別個か、統合されたか、いずれかの他のコンポーネント、といったものである。そうしたコンポーネントの例は、いくつかの実施例において、暗号化マネージャ２２８、ＶＰＮマネージャ２３０、タギングエンジン２２０、など他の例、を含み得る。
【００１７】
いくつかの実施例において、カーネルセキュリティマネージャ２１６とＤＬＰエージェント２２２は、ＤＬＰポリシ２３８のカーネルベースの実施を提供するために利用され得る。種々のデータ２３４は、モバイルユーザ機器２０５に保管され、保持される。そして、所定のタイプのデータおよびデータ２３４に係るアクセスと配布をコントロールするために、ＤＬＰポリシ２３８が定義され得る。いくつかの実施例において、ＤＬＰは、例えば、ＶＰＮマネージャ２３０と暗号化マネージャ２２８を使用して、代替的なアプローチを通じて実施され得る。例えば、ＶＰＮマネージャ２３０は、モバイルユーザ機器２０５を含んでいる通信を、仮想プライベートネットワーク、プライベートネットワーク、エンタープライズ、または、そうでなければ一つまたはそれ以上のＤＬＰ実施ツールの展開を含む他のネットワーク、に対して再ルート化（ｒｅｒｏｕｔｅ）するように試みることができる。他のインスタンスにおいて、暗号マネージャ２２８は、少なくともデータ２３４のいくつかを暗号化し、安全に、データ２３４の部分をハウジングし（ｈｏｕｓｉｎｇ）、かつ、データ損失を防止するための暗号化コンテナ（ｃｏｎｔａｉｎｅｒ）を作成し、管理することができる、等である。
【００１８】
さらに、いくつかの実施例において、データ２３４は、例えば、それぞれのデータ（例えば、２３４）に適用されている一つまたはそれ以上のポリシ２３８に係る識別子に基づいて、トリガーされ得る。所定のデータファイル（例えば、２３４）上のタグ２３６の存在は、データ上のポリシ２３８の実施を合理化することができる。さらに、ロケーションデータは、ロケーションコンテクストと同様に、ＤＬＰポリシの実施に関連して使用され、考慮され得る。そうした実施をサポートしているロケーションデータは、例えば、モバイルユーザ機器２０５で利用可能な全地球測位システム（ＧＰＳ）を通じて収集され、提供され得る。実際に、いくつかのアプリケーション２２４とサブシステム２１８は、ＧＰＳサービスを利用することができ、同様に、測位検出機能をアプリケーションおよびサブシステムの振る舞い及びオペレーションの中に統合することができる。例えば、いくつかの実施例において、モバイルユーザ機器２０５に備えられたデジタルカメラ２３２は、デジタルカメラ２３２を使用してキャプチャされたジオタギング（ｇｅｏ−ｔａｇｇｉｎｇ）写真のための一つのオプションをユーザの提供することができる、等。他の測位検出機能は、例えば、携帯ベース、ネットワークベース、または、他の検出機能を含み得る。
【００１９】
ＤＬＰサーバー２１０の実施例は、また、一つまたはそれ以上のプロセッサデバイス２４２、一つまたはそれ以上のメモリエレメント２４４、および、一つまたはそれ以上のソフトウェア及び/又はハードウェアベースのコンポーネントおよび機能を含み得る。デバイスマネージャ２４６、ユーザマネージャ２４８、ポリシエンジン２５０、脅威インテリジェンスエンジン２５２、および、ＤＬＰPツール２５４といったものであり、本発明の実施例において明確には示されていない他のセキュリティツール、コンポーネント、および、機能を伴うものである。例えば、デバイスマネージャ２４６は、一つまたはそれ以上のモバイルユーザ機器（例えば、２０５）とのＤＬＰサーバーのインタラクションを管理し、カスタム化することができる。ＤＬＰサービスを提供し、かつ、デバイスデータ２５６の中に記述されるようにそれぞれ個々のデバイス（例えば、２０５）の属性に対して仕立てられたＤＬＰポリシを適用するためである。加えて、ユーザマネージャ２４８の実施例は、種々のモバイルユーザ機器（例えば、２０５）に関連付けされた種々のユーザプロファイルを記述しているユーザデータ２６０を管理することができる。ユーザマネージャ２４８の実施例は、所与のモバイルユーザ機器／ユーザとって適切または好適なＤＬＰサービスおよびポリシ２５８を、さらにカスタマイズし、かつ、特定するようにユーザデータ２６０を利用することができる。
【００２０】
いくつかの実施において、ポリシエンジン２５０は、ＤＬＰサーバー２１０によって保持されているポリシ２５８を管理することができる。ポリシエンジン２５０は、クライアントモバイルユーザ機器（例えば、２０５）に対するポリシの規定を作成し、補足し、変更し、かつ、管理することができる。いくつかの実施において、一つまたはそれ以上のネットワークおよびシステムにおいて検出された種々の脅威および他のセキュリティ関連状況を記述している脅威インテリジェンスデータ２６２は、ポリシ２５８の生成において考慮され、かつ、利用され得るし、種々のモバイルユーザ機器２０５に対するポリシ２５８の割り当ても同様である。例えば、それぞれのデバイス属性、ユーザ属性、エンタープライズポリシ、サーバープロバイダポリシ、および、所定のモバイルユーザ機器に関連する他の特性、に基づくものである。さらに、いくつかの実施において、ＤＬＰサーバー２１０の例は、モバイルユーザ機器（例えば、２０５）から離れて展開された種々のＤＬＰツール２５４を通じてＤＬＰサービスを提供することができる。モバイルユーザ機器のトラフィック（ｔｒａｆｆｉｃ）がリダイレクト（ｒｅｄｉｒｅｃｔ）され得るＶＰＮといった、ネットワークにおいて実施されるＤＬＰツールといったものである、等。
【００２１】
ＤＬＰサービスは、それぞれのモバイルユーザ機器（例えば、２０５）においてローカルに又はリモートシステム（例えば、２１０）を通じて提供されたものであるが、モバイルユーザ機器に入ってくる又は出ていくデータをコントロールし、かつ、モニタするために使用することができる。それによって、また、いくつかの実施において、種々のＤＬＰポリシ２３８、２５８が適用されるデバイスのネットワークをコントロールし、かつ、モニタする。例えば、ＤＬＰサービスは、一つのアプリケーションから別のアプリケーションへ、モバイルユーザ機器２０５から外部サーバー１４５または外部のパーソナルコンピューティングデバイス２４０へ、ユーザデバイス間、等で移動しているデータを保護することができる。ＤＬＰサービスは、さらに、外部ソースから所与のモバイルユーザ機器２０５へ移動しているデータを保護することができる、等。
【００２２】
図３の実施例に移ると、一つまたはそれ以上のモバイルユーザ機器に関連して展開され得る一組のＤＬＰソリューションを説明する簡素化されたブロック図３００が示されている。一組のうち一つのＤＬＰソリューションまたは組合せが、モバイルコンピューティングデバイス上で検出されたＤＬＰイベントに関連して使用され得る。一つの実施例において、ＤＬＰソリューションは、モバイル機器のトラフィックを一つまたはそれ以上のプライベートネットワーク（仮想プライベートネットワーク（例えば、３０５）といったもの）へとリダイレクトすることを含み得る。例えば、リダイレクトされたトラフィックが一つまたはそれ以上のＤＬＰポリシを実施するために使用され得るネットワークベースのツールおよびサービスを用いるものである。暗号化コンテナ、特定アプリケーションの暗号化コンテナ（例えば、３１０）といったものは、オペレーティングシステム暗号化コンテナ（例えば、３１５）と同様に、追加的または代替的に、モバイル機器データをデータ損失または漏洩から保護するために利用される。加えて、深い分析技術（例えば、３２０）、ＬＳＭベースのＤＬＰソリューションといったものが、利用され得る。カーネルとインターフェイスし、デバイスにインストールされたＤＬＰエージェントのサービスを利用するセキュリティマネージャを通じて、といったものである。
【００２３】
一つの実施例において、モバイルＤＬＰソリューションは、２つのレベルのセキュリティを提供することができる。デバイス内セキュリティ（例えば、ＬＳＭモジュールを通じたもの）、デバイス外セキュリティ、ＶＰＮを介したモバイル機器トラフィックの適時的なルーティング（ｒｏｕｔｉｎｇ）、および、ロバスト（ｒｏｂｕｓｔ）なエンタープライズ指向のネットワークＤＬＰツール、等を含むネットワークベースのＤＬＰツールおよびフィルタ、を通じたものである。
【００２４】
図４に移ると、いくつかのインスタンスにおいて、モバイル機器によって利用されるるネットワークベースのＤＬＰソリューションの実施例を説明している簡素化された図４００が示されている。そうしたネットワークベースのアプローチによって、既存のネットワークベースのＤＬＰインフラストラクチャの利益効果をあげることができる。例えば、モバイル機器トラフィックをＶＰＮ４５０に強制することによって、潜在的な機密のトラフィックおよびデータがネットワークに対して再ルート化され、ロバストなＤＬＰコンポーネント（例えば、４１０、４１５、４２０）がコンテンツを検査し、検査に基づいて適切なアクションをダイレクトすることができる。ネットワークベースのＤＬＰソリューションは、エンタープライズモバイルマネジメント（ＥＭＭ）４１０強制的ＶＰＮ技術、セキュアなウェブゲートウェイ４１５へのトラフィックのリダイレクト、例えばウェブゲートウェイにおいて実施されるデータ損失防止技術（例えば、４２０）、セキュリティＶＰＮセッション、ワンタイムパスワードの強制的ＶＰＮ，等を含み得る。
【００２５】
図５Ａ−５Ｂに示される実施例に移ると、暗号化コンテナは、また、いくつかの実施において、モバイルコンピューティング機器に関連して利用され得る。図５Ａの実施例においては、暗号化コンテナソリューションのアプリケーションが表わされている。そうしたコンテナ（例えば、５０５、５１０、５１５）は、モバイルコンピューティング機器上の個々のアプリケーションをラップ（ｗｒａｐ）することができ、所与のアプリケーションのために、所定のアプリケーション（例えば、５２０、５２５、５３０）によって使用または生成される全てのデータを暗号化する。そうしたアプリケーションコンテナは、いくつかのインスタンスにおいて、所定のアプリケーションについて仕立てられ得る。一方、他のインスタンスにおいては、アプリケーション（例えば、図５Ｂに示されるもの）による使用のための一式の利用可能なファイルシステム（例えば、５４０、５４５、５５０）として実施されるオペレーティングシステムベースのコンテナが、一般的に、アプリケーションの入／出力を暗号化するためのあらゆる種類のアプリケーションによって使用され得る。いくつかのインスタンスにおいて、ユーザは、例えば、潜在的な機密データを利用または生成するための所与のアプリケーションに係る傾向に基づいて、どのアプリケーションがコンテナの中にラップされるべきかを指示することができる。モバイル機器管理システム（例えば、モバイル機器管理（ＭＤＭ）サーバー５３５）は、さらに、モバイルコンピューティング機器に対して使用されるべきコンテナを管理するために使用され得る。アプリケーションコンテナの使用を通じて、アプリケーションは、専用の暗号化されたデータストア（ｄａｔａ  ｓｔｏｒｅ）を有することができ、ストア内に含まれるデータは、暗号化されたデータストアに対応するアプリケーション以外のアプリケーションによって、アクセスされ、共有され、操作され、または、コントロールされることが防止される。一つの実施例において、セキュアなコンテナアプリケーションは、エンタープライズモビリティマネジメントクライアントとインターフェイスで接続することができる。いくつかの実施において、第三者アプリケーションまたは所与のアプリケーションを用いたオペレーションが明確に認定されていないアプリケーションは、対応するエンタープライズモビリティマネジメントクライアントと通信すること、または、暗号化されたアプリケーションのストレージにアクセスすることができない。一つの実施例のアプローチにおいて、アプリケーションコンテナは、エンタープライズデータといった、所定のタイプのアプリケーションデータを、ユーザのパーソナルファイルといった、暗号化されないままの残りのタイプのデータと供に、取っておくために使用され得る。別の実施例のアプローチにおいては、アプリケーション自身がコンテナの中にラップされ、アプリケーションによってアクセスされるデータをモニタし、コントロールする、等。
【００２６】
図６Ａ−６Ｂは、ＤＬＰソリューションに基づいたセキュリティモジュールの実施例を示している。例えば、スマートフォン、または、Ｇｏｏｇｌｅアンドロイド（Ａｎｄｒｏｉｄ）又は別のプラットフォームを使用しているタブレット上での使用のためのＬＳＭベースのＤＬＰソリューションといったものである。ＤＬＰソリューションの組合せが使用され得ることが、正しく理解されるべきである。いくつかのインスタンスにおいては、所定の一組のＤＬＰソリューションが、管理されるべきデータ、通信、または、トランザクション（ｔｒａｎｓａｃｔｉｏｎ）のタイプまたはコンテクストに基づいて利用され得る。例えば、一つの実施例において、トラフィックをＶＰＮ上のネットワークＤＬＰ展開に対して成功裡にリダイレクトできないことは、ＬＳＭベースのＤＬＰソリューションといった、一つまたはそれ以上のＤＬＰソリューションを発動させ得る、等。例えば、ＤＬＰソリューションの階層は、種々のコンテクスト、シチュエーション、データタイプ、トランザクションタイプ、通信、デバイス、等のうちあらゆる一つに対して定義され得る。
【００２７】
一つのシステム実施例において、一連のアプリケーション６０３、６１０、６１５、６２０が、仮想マシンレイヤ（ｌａｙｅｒ）とアンドロイドフレームワークの上方に位置しているアプリケーションレイヤにおいて提供され得る。アプリケーションは、仮想マシンレイヤにおいて実行されることでコンテナ化され得る。例えば、ダルビック（Ｄａｌｖｉｋ）仮想マシン（ＶＭ）６２５、等を使用するものである。システムカーネル６３０は、仮想マシンレイヤと、ＬＳＭといった、セキュリティモジュール６３５を伴うインターフェイスの下方に位置している。カーネルは、バインダモジュール６４０を含み、関連するデバイス／ｄｅｖ／ｂｉｎｄｅｒを有している。いくつかの実施において、全てではないとしても、アプリケーション間（および、アプリケーションとデバイスサブシステム（例えば、６４５、６５０、６５５）との間）の大部分の通信は、カーネル６３０上で、／ｄｅｖ／ｂｉｎｄｅｒに対するＩ／Ｏコントロールシステムコールを介して促進され得る。セキュリティモジュール６３５は、カーネルバインダ６４０とインターフェイスで接続され、Ｉ／Ｏ関連のシステムコールをモニタし、インターセプトすることができる。さらに、セキュリティモジュール６３５は、加えて、ＤＬＰエージェントとインターフェイスで接続することができ、一つまたはそれ以上の保持されたポリシがインターセプトされたシステムコールに対して適用されるか否かを、例えばＤＬＰエージェントによって、判断することにおいて、インターセプトされたシステムコールを検査するための機能を含んでいる。
【００２８】
一つの実施例においては、図６Ａの実施例に示されるように、一例として、ポリシエンジン６６０およびポリシデータベース６６５といった、ＤＬＰエージェントに係る機能の全て又は一部分が、セキュリティモジュール６３５自身の中に包含され、コード化され得る。他のインスタンスにおいては、ＤＬＰエージェントロジックが、モニタされたモバイルユーザ機器上にインストールされ、いくつかのインスタンスでは、プラットフォームのアプリケーションレイヤに配置されたＤＬＰエージェントアプリケーション６７０の中に配置することによって、カーネル６３０におけるフットプリントを小さくすることが望ましい。図６Ｂの実施例に示されるようにである。いずれの実施においても、ＤＬＰエージェントのポリシエンジン６６０は、リモートのＤＬＰサーバー、等といった、他のデバイスによってホストされるＤＬＰポリシマネジメントサービスとインターフェイスで接続し、統合してよい。モバイルユーザ機器上でインターセプトされたシステムコールに対して適用されるようにポリシを受け取り、アップデートするためである。
【００２９】
セキュリティモジュール６３５の実施例は、フック（ｈｏｏｋ）を提供し、カーネルエクステンション（ｋｅｒｎｅｌ  ｅｘｔｅｎｓｉｏｎ）は、ディスク書込み、ソケット書込み、Ｉ／Ｏコントロール、メモリマップオペレーション、等のような種々のオペレーションをコントロールして制限することができる。セキュリティモジュール６３５は、全てのカーネルデータに対するアクセスを有することができ、このアクセスを、ＤＬＰエージェントに関して、モバイルユーザ機器上で細粒の（ｆｉｎｅ−ｇｒａｉｎｅｄ）ＤＬＰポリシを実施するために活用することができる。例えば、カーネル６３０とインターフェイスで接続しているセキュリティモジュール６３５は、読出し、書込み、作成、または他のオペレーションを含む、ファイルオペレーションを制限し、モニタするために使用され得る。ファイル６７５は、検査され、タグ付けされ、例えば、ファイルが機密であるか否か、および、所定のポリシがファイルに対して適用可能か否かを示している。さらに、ポリシは、ファイルに付加された所定のタグの存在に基づいて、例えば、セキュリティモジュール６３５（または別のコンポーネント）によって、適用され、実行され得る。さらに、所定のシステムコールまたはオペレーションのサブジェクトであるデータは、検査されスキャンされて、（例えば、ＤＬＰポリシの中で適宜されているように）データの秘密または機密性を示すパターンが、データの中で検査される。そうした検査により、所定のポリシが適用され、ＤＬＰタスクが実行されるべき、そうした秘密または機密データの動的な特定を、結果として生じ得る。
【００３０】
図７は、ＤＬＰエージェントアプリケーション６７０と、ＬＳＭといった、セキュリティモジュール６３５との間のインタラクションの例を表している簡素化された図７００である。この実施例において、ＬＳＭは、カーネルバインダ６４０とインターフェイスで接続するように構成されてよく、バインダ６４０に対して予定されたＩ／Ｏシステムコールを検査し、かつ、潜在的にそうしたシステムコールをインターセプトする。ＬＳＭによってインターセプトされたシステムコール及びそうしたシステムコールの特性を記述しているデータは、ＬＳＭによって、ＤＬＰエージェント６７０に対して通信され得る。ＤＬＰエージェント６７０は、インターセプトされたシステムコールをアセスし、モバイルユーザ機器に対する一つまたはそれ以上のＤＬＰポリシがシステムコールについて適用されるべきか否かを判断するためのロジックと機能を含み得る。インターセプトされたシステムコールに対して、ＤＬＰポリシ特定されないか、または、許容的なＤＬＰポリシが特定されない場合、ＤＬＰエージェントは、所定のデータのＩ／Ｏを含んでいるシステムコールが、モバイルユーザ機器のＤＬＰポリシに基づいて、実施され得ることを示す結果を、ＬＳＭにリターンしてよい。他のインスタンスにおいて、ＬＳＭは、所定のシステムコールのインターセプションに関してＤＬＰエージェントに問い合せてよく、かつ、ＤＬＰエージェントは、インターセプトされたシステムコールに対してより制限的なＤＬＰポリシを適用することを特定してよい。このことは、所定のインターセプトされたシステムコールに対して特定されたＤＬＰポリシとつりあった所定のシステムコールについて適用されるべきＤＬＰ実行アクションを促進することができる。そうしたアクションは、いくつかの実施例において、システムコールの却下、システムコールの編集、システムコールのデータの変形または置換、等を含み得る。
【００３１】
いくつかの実施において、ＬＳＭ６３５の例は、読出し、書込み、送信、受信、Ｉ／Ｏコンポーネント、等のような所定の興味のあるシステムコールをインターセプトすることができ、そして、ＤＬＰエージェント６７０のポリシエンジンに対して、システムコールおよびシステムコールに影響され又は前提とするデータを記述している情報を渡す。いくつかの実施において、ＬＳＭ６３５は、それぞれのインターセプトされたシステムコールに応じて、ＤＬＰエージェント６７０と通信することができる。システムコール、および、関連するデータの一つまたはそれ以上のＤＬＰポリシを伴うコンプライアンスに関するインテリジェンス（ｉｎｔｅｌｌｉｇｅｎｃｅ）を取得するためである。ＬＳＭは、インテリジェンスを利用して（例えば、ＤＬＰエージェント６７０と通信してＤＬＰエージェントまたは外部ソースから、等）、インターセプトされたコールを制限、または、変更するといった、ＤＬＰアクションを実行する。
【００３２】
図６Ａ−６Ｂおよび図７に関して説明され記述されたような実施例は、プラットフォームに係るカーネル、仮想マシンレイヤ、オペレーティングシステムフレームワーク、インストールされた他のアプリケーション（例えば、７０５）または他のライブラリ（例えば、７１０）の修正をすることなく、ロバストなＤＬＰマネジメントを可能にしている。そうしたカーネルベースのセキュリティモジュールは、セキュリティモジュールがデバイス上の全てのＩ／Ｏに対してアクセスを有しているので、機密漏洩防止のセキュリティを提供することができる。そうした実施は、さらに、細粒のＤＬＰルールおよび施行アクションの実施例に対して柔軟性を提供し得る。例えば、セキュリティモジュールおよびＤＬＰエージェントは、デバイスオペレーション（例えば、取り付け／取り外し、モバイル機器のＵＳＢドライブをマウントする試みを許可しない、等）を制限またはモニタするために、ソケット（ｓｏｃｋｅｔ）オペレーション（例えば、送信、受信、バインド、接続、等）を制限またはモニタするために使用され得る。モバイル機器のネットワーク機能を使用することを望むアプリケーションに制限をかける（例えば、細粒のポリシの実施を通じて、ソケットから読出し／書込みされるデータをスキャンする、等）、Ｉ／Ｏコントロールオペレーションを制限する（例えば、クリップボードおよび他のアプリケーション間での通信とデータ共有をブロックすること、等）ためである。
【００３３】
説明するに、アプリケーションは、カーネルバインダ（および、対応するデバイス  ／ｄｅｖ／ｂｉｎｄｅｒ）を介してお互いに通信することができる。クリップボード、共有メモリに対するいくつかのデータの書込み（例えば、（ａｓｈｍｅｍ）、そして次に、／ｄｅｖ／ｂｉｎｄｅｒ上のｉｏｃｔｌファンクションコール）を通じて、といったものである。セキュリティモジュール６３５の実施例は、／ｄｅｖ／ｂｉｎｄｅｒ上のそうしたファンクションコールを検出して制限するために使用され得る。上述の方針を適用しているセキュリティモジュールベースのＤＬＰソリューションの柔軟性を説明する別の実施例においては、モバイルコンピューティング機器の固有の特性および一式の特徴を利用する複雑化された攻撃も、また、ブロックされ得る。例えば、非構造付加サービスデータ（またはＵＳＳＤ）攻撃が開発されてきており、モバイル機器に対してｔｅｌ：／／を伴うＵＲＬ  ＵＳＳＤリンクを投入して、モバイル機器にＵＳＳＤリンクを自動的にダイアルさせて、モバイル機器のＳＩＭ証明書を改ざんするように試みる。セキュリティモジュールベースのＤＬＰソリューションを使用することで、そうしたリンクの導入が、Ｉ／Ｏシステムコールとしてカーネルレベルにおいて特定され、インターセプトされ、かつ、そうした攻撃を回避するために定められたポリシに従ったセキュリティモジュールによってブロックされ得る。さらに別の実施例において、モバイルコンピューティング機器のＮＦＣ機能が、また、悪意のある第三者によって開発されてきている。例えば、ＮＦＣタグを利用することによって、モバイルユーザ機器のブラウザに強制的に悪意のあるウェブサイトをオープンさせる、等。セキュリティモジュールベースのＤＬＰアプリケーションは、また、これらの攻撃を救済することもできる。モバイルユーザ機器のＮＦＣモジュールから発生しているＩ／Ｏシステムコールを特定し、インターセプトし、かつ、ブロックすることによるものである。
【００３４】
さらに他の実施例においては、セキュリティモジュールベースのＤＬＰソリューションは、いくつかのモバイルコンピューティング機器上のＵＳＳＤコード、ＮＦＣコミュニケーションに関するシステムコールからデータをインターセプトすることができ得る。他のＩ／Ｏ機能に関するものも同様である。例えば、モバイル機器のブルートゥースモジュールから発生しているＩ／Ｏシステムコール、および、他のシステムコールも、また、ＤＬＰポリシの実施のためにインターセプトされ、処理され得る。一つの実施例において、セキュリティベースＤＬＰソリューションが利用され、承認されていないブルートゥース周辺機器がモバイルコンピューティング機器に接続されることを防止し得る。例えば、ブルートゥース機器が、所定の定義された条件を除いて、モバイルユーザコンピューティング機器に接続する機能を制限するようにポリシを定めることができる。所定のタイプのブルートゥース可能な機器に対して、モバイルユーザ機器が所与の信頼できるロケーション（例えば、ユーザの家またはオフィス）の中にあるものと（例えば、ＧＰＳを通じて）検出された場合、等といったものを除いている。別の実施例においては、モバイル機器から送信されるように意図されたＳＭＳメッセージがインターセプトされ得る。ＳＭＳメッセージは、例えば、ＤＬＰエージェントによって分析され、メッセージの宛先及び/又はペイロード（ｐａｙｌｏａｄ）が一つまたはそれ以上のＤＬＰポリシに違反しているか否かを特定し得る。例えば、メッセージのコンテンツが分析され、一つまたはそれ以上のポリシ、パターン、または、アルゴリズムに従って、潜在的に機密性があると特定されたデータを送信する試みを特定し得る。一つの実施例として、クレジットカード番号、ソーシャルセキュリティ番号、ＰＩＮ番号、等のそうした機密情報を記述していると思われるデータを含んでいるＳＭＳメッセージは、特定されたタイプの情報に対応するＤＬＰポリシを実行するためのセキュリティモジュールを使用して、インターセプトされ、ブロックまたは修正され得る、等。
【００３５】
上述のように、ＤＬＰエージェントのポリシエンジンを通じて、カーネルレベルでのセキュリティモジュールベースのＤＬＰソリューションと協力して、細粒のＤＬＰソリューションが、定義され、カーネルでのセキュリティモジュールを使用してモニタされるＩ／Ｏシステムコール（および、他のシステムコール）に対して成功裡に適用され得る。例えば、ＤＬＰ保護は、ＳＭＳ、４Ｇ、ブルートゥース、カメラ、マイクロフォン、ＧＰＳモジュール、等を含む、モバイルコンピューティング機器の種々のＩ／Ｏチャネルのそれぞれにわたり実施され得る。さらに、カーネルとインターフェイスで接続しているセキュリティモジュールは、システムコールを発生している又はそうでなければ包含されているサブシステム及び/又はアプリケーションを特定し得る。所与のファイルが由来するＩＰアドレスとドメインといったシステムコールに関する情報が、特定され、トラックされ得る。そうした情報は、いくつかの実施例においては、種々のソース、ドメイン、ＩＰアドレス、アプリケーション、等の信用性といった、トラックされた情報から特定されたパターンに基づいてポリシを定義して実施することによって、選択的なＤＬＰコントロールを提供するために使用され得る。実際に、いくつかの実施例においては、所定の既知のエンティティまたはドメインから発生し、又は、包含されているものとして特定されたシステムコールにおいて参照されたデータは、所定のエンティティまたはドメインを含んでいる、以前にトラックされ処理されたシステムコールに基づいてタグ付けされ、関連するＤＬＰポリシ（例えば、所定のエンティティまたはドメインに特有のもの）を早くトラックする（ｆａｓｔ−ｔｒａｃｋ）ことができる。加えて、モニタされたシステムコール等を通じて取得された情報に基づいて、セキュリティモジュールベースのＤＬＰソリューションを使用して、反復スコアが生成されて保持され得る。
【００３６】
上述のように、セキュリティモジュールベースのＤＬＰソリューションは、Ｉ／Ｏシステムコールにおいてインターセプトされたデータをタグ付けするための機能を含み得る、等。データの評価に基づいて、例えば一つまたはそれ以上のＤＬＰポリシに従ったＤＬＰエージェントによって、データは、例えば、機密、信用性なし、プライベート、等としてタグ付けされ得る。そうしたタグは、次に、ＤＬＰソリューションによって保持され得る。例えば、ＤＬＰエージェント及び/又はセキュリティモジュールによるものである。タグを使用して、タグ付けされたデータを含んでいる後続のシステムコールが、特定され得る。タグに基づいて、ＤＬＰエージェントでのインターセプトされたシステムコールの再評価がスキップされ得る。タグの特定を用いて、タグまたはタグにマップされたポリシ及び/又はＤＬＰ実施アクションの自動的な特定ができるようになる。一つの実施例においては、拡張属性を伴うＹＡＦＦＳ２ファイルシステムが、タグのストレージにおいて使用され得る。代替的に、タグ付けされたファイルのデータベースは、ＬＳＭ、及び/又は、ＤＬＰエージェントのポリシエンジンといった、セキュリティモジュールによって保持され、参照され得る。
【００３７】
いくつかの実施例においては、暗号化コンテナといった、他の潜在的なＤＬＰソリューションに対して提供される暗号化機能に加えて、セキュリティモジュールは、システムコールの中に含まれるデータをインターセプトするため使用され得る。かつ、ＤＬＰエージェントによって保持されている特定されたルールとポリシに基づいて、インターセプトされたデータが機密性のものであり、暗号化されるべきであることを動的に特定するために使用され得る。従って、いくつかの実施において、セキュリティモジュールは、そうしたインターセプトされたデータを、例えば、外部のモバイル機器と通信されるように、例えば、デバイスストレージ、デバイスアプリケーション、または、デバイスサブシステムへ進行する前に暗号化されるようにすることができる。このことにより、ファイルシステム全体の暗号化、アプリケーションデータ全体の暗号化、等といった、より力ずくのアプローチというよりむしろ、より効率的なファイルの暗号化を続々と行うことができ、かつ、細粒ＤＬＰポリシに従っている。自動的に、かつ、ユーザによるファイルごとの明確な指示なく、データを暗号化することによって、大部分のモバイル機器上の機密データは、保護のために暗号化されたフォーマットにおいて保持され得る。例えば、モバイル機器の窃盗または他の損失関連といった、データの漏洩または損失から保護するためである。
【００３８】
図８Ａ−８Ｃの実施例に移ると、ＧＰＳ、および、モバイルコンピューティング機器に対応するジオロケーション（ｇｅｏｌｏｃａｔｉｏｎ）情報を検出することができる最新のモバイルコンピューティング機器の他の機能は、セキュリティモジュールベースのソリューションの例を通じて実行されるＤＬＰポリシに関して活用され得る。例えば、ロケーションベースのポリシが、一つまたはそれ以上の異なるタイプのデータおよびシステムコールに対して定義され得る。一つの実施例において、ロケーションベースのポリシが、モバイルコンピューティング機器のデジタルカメラモジュールを使用して撮影された写真に対応する写真データを保護するために、モバイルコンピューティング機器のカメラに対して定義され得る。そうでなければ、モバイルコンピューティング機器にダウンロードされた写真も同様である。同様に、オーディオデータに対応するマイクロフォン、ビデオデータに対するビデオカメラ、等としてのそうしたモバイル機器モジュールも、また、ロケーションベースで定義されたポリシを有し得る。例えば、セキュアな企業、研究所、政府、または、他の施設といった、所定のロケーションにおいてキャプチャされたものであると検知される写真、オーディオデータ、ビデオ等が、ユーザの施設との関与または使用と密接な関係がある適切なコンテクストの外部において共有されるのを防止することが望ましい。例として、対応するロケーションベースのポリシは、例えば、モバイル機器が、同一の定義された境界内または他の許容できる定義されたロケーション内（例えば、一つまたはそれ以上のジオフェンス（ｇｅｏ−ｆｅｎｃｅ）として定義されたもの）に存在しているものと検出された場合にだけ、写真、オーディオ、及び/又は、ビデオデータがアクセス可能であり、通信されることができ、または、そうでなければモバイル機器で使用可能であるものと、定義され得る。従って、ユーザコンピューティングデバイスにおいて受信され又は生成されたデータは、ロケーションベースの情報を用いてタグ付けされて、カーネルでのセキュリティモジュールの例を通じて特定され得る。そうしたデータを特定し、インターセプトされたデータに適用可能なロケーションベースのポリシを認識するためである、等。
【００３９】
図８Ａの所定の実施例においては、例えば、モバイルコンピューティング機器８１０上のデジタルカメラモジュールを使用した写真またはビデオデータ（集合的に「写真データ」８０５）のキャプチャの説明が示されている。さらに、全地球測位データが、例えば、モバイルコンピューティング機器上のＧＰＳ機能（または、他のジオロケーション機能）を使用して、写真データのキャプチャに関して特定され得る。従って、モバイル機器８１０のカメラによってキャプチャされた写真データ８０５は、ロケーションタグ８１５を用いてタグ付けされ得る。全地球測位情報を特定し、かつ、写真データがキャプチャされた一般的な（また、いくつかのケースでは、所定の）ロケーションを記述しているものである。同様な方針が、オーディオデータといった、他のデータの生成に対しても適用され得る。他のソースからそうしたデータを受信することも同様である。そうした実施において、ジオロケーションデータは、モバイルコンピューティング機器のデータの使用、作成、および、アクセスに係る空間的なコンテクストを示すロケーションタグを生成するために使用され得る。
【００４０】
図８Ｂに示されるように、タグ付けされた写真データに係る以前の実施例を続けると、ユーザは、後に、ロケーションタグに対応する許可されたロケーションの一つ以外のロケーションにいる間に、タグ付けされた写真データをアクセスまたは共有しようと試みることがある。タグ付けされたデータをアクセスまたは共有しようとする試みは、システムカーネルとインターフェイスで接続されているセキュリティモジュールの例を使用してインターセプトされ、そして、例えば、モバイルコンピューティング機器上のＤＬＰエージェントと協働することによって、一つまたはそれ以上のポリシが特定され得る。タグ付けされたデータに対するアクセスが制限され、または、ブロックされるべきであることを判断するためである。例えば、ロケーションベースのポリシは、モバイル機器が所定のロケーション（または、所定のロケーションに対応して定義された境界（ジオポリティカルな境界を含む））の外部で発見された場合に、所定の機密ロケーションの中で取得されたデータの共有を制限するように定義されたものと特定され得る、等。従って、図８Ｃの実施例に示されるように、モバイルコンピューティング機器が所定のロケーションの中で検知される間に、同一のタグ付けされた写真データ８０５にアクセスしようとする後続の試みも、また、特定され得る。許可されているユーザを結果として生じるロケーションベースのポリシを用いて、モバイルコンピューティング機器８１０を通じて、許可された地理的領域の中にあるとしてモバイルコンピューティング機器８１０が（例えば、モバイルコンピューティング機器のＧＰＳモジュールを通じて、等）検出される間、タグ付けされたデータをアクセスし、又は、そうでなければ、使用するように特定される。従って、細粒のロケーションベースのＤＬＰポリシは、モバイルコンピューティング機器のカーネルレベルにおいてセキュリティモジュールベースのＤＬＰソリューションを使用して、他のＤＬＰポリシと同様に、モニタされ実施され得る、等。
【００４１】
図９Ａ−９Ｂは、モバイルコンピューティング機器のシステムカーネルレベルでのセキュリティモジュールベースのＤＬＰを含んでいる技術の実施例を説明しているフローチャート９００ａ−ｂの実施例を示している。図９Ａの実施例において、システムコールは、例えば、ＬＳＭといった、カーネルとインターフェイスで接続しているセキュリティモジュールによって、モニタされ得る９０５。モバイルコンピューティング機器のＩ／Ｏ機能に関連する所定のシステムコールがインターセプトされ得る９１０。モバイルコンピューティング機器上のＤＬＰエージェントが、インターセプトされたシステムコールに適用可能なＤＬＰポリシについて問い合せされ得る。いくつかのインスタンスにおいて、ＤＬＰエージェントは、セキュリティモジュールによってモニタされたシステムコールのそれぞれについて問い合せされ得る。他の実施例において、セキュリティモジュールは、セキュリティモジュールに対してアクセス可能なロジックとルールに基づいて、どのシステムコールがインターセプトされ、ＤＬＰエージェントと通信するかフィルタすることができる。モバイルコンピューティング機器のＩ／Ｏ機能、および、機器に対するＤＬＰゴール及び/又はポリシ、等におそらく関連するシステムコールといったものである。ＤＬＰエージェントから結果が受信され９２０、アクションが実行され得る９２５。例えば、セキュリティモジュールによる、受信されたデータおよび対応する特定されたＤＬＰポリシに基づくものである。例えば、ＤＬＰエージェントからの結果は、インターセプトされたシステムコールに適用される制限的なポリシを示し得る。ＤＬＰエージェントに、ブロックさせ、拒否させ、変更させ、または、システムコール上のいくつかの他のアクション及び/又は特定されたポリシと一致する関連データそのままを実行させるものである。
【００４２】
図９Ｂの実施例に移ると、ロケーションベースのＤＬＰポリシは、また、モバイルコンピューティング機器上でも実施され得る。例えば、システムコールは、写真、ビデオ、または、オーディオデータを含んでインターセプトされ得るもので、カメラ、マイクロフォン、および、モバイルコンピューティング機器の他のサブシステムを使用して生成されたそうしたデータを含んでいる。システムコールにおけるデータのタイプとコンテンツは、例えば、セキュリティモジュール及び/又はＤＬＰエージェントによって、特定され得る。さらに、データに対応するロケーション情報が特定され得る９３５。例えば、ロケーション情報は、モバイルコンピューティング機器上のジオロケーション機能を使用して生成することができ、かつ、いくつかのインスタンスにおいて、データとロケーション情報をタグ付けするために使用され得る。いくつかの実施例において、ロケーションタグは、インターセプトされたシステムコールにおいて特定されたデータに対して特定され得る、等。ＤＬＰエージェントは、インターセプトされたシステムコールに対して適用可能なＤＬＰポリシを問い合せされ得る９４０。ロケーション情報は、いくつかの実施例において、所定のデータが作成または取得されたロケーションを示すことができる。他の実施例において。ロケーション情報は、データの作成または取得に直接的に関連しなくてよいが、代わりに、データと関連付けされるべき（例えば、一つまたはそれ以上のポリシに従って）所定のロケーションを示すことができる。例えば、データのアクセスまたは使用が条件的に許可され、または、制限されるロケーションに応じたものである。さらに、ＤＬＰエージェントからの結果が受信され得る９４５。受信された結果に基づいて、インターセプトされたシステムコール上のアクションが実行され得る９５０。特定されたロケーション情報に基づいて、データに対して特定されたロケーションベースのＤＬＰポリシと一致するアクションといったもの、等である。
【００４３】
この発明開示は、所定の実施例および一般的に関連する方法に関して説明されてきたが、これらの実施例及び方法の代替と置換が、当業者にとっては明らかであろう。例えば、ここにおいて説明されたアクションは、説明と異なる順番で実行されてよく、かつ、それでも望ましい結果を達成することができる。一つの実施例として、添付の図面において示されたプロセスは、所望の結果を達成するために、示された所定の順番、または連続する順番を必ずしも必要としない。所定の実施例においては、マルチタスクおよび並列処理が有利であろう。加えて、多様なユーザインターフェイスのレイアウトと機能がサポートされ得る。他の変形は、添付する特許請求の範囲内のものである。
【００４４】
この明細書において説明された技術的事項およびオペレーションに係る実施例は、デジタル電子回路、または、コンピュータソフトウェア、ファームウェア、または、ハードウェアにおいて実施され得る。この明細書の中で開示された構成、および、それらの構造的な均等物、または、それらの一つまたはそれ以上の組合せ、を含んでいるものである。この明細書において説明された技術的事項の実施例は、一つまたはそれ以上のコンピュータプログラムとして実施され得る。つまり、データ処理装置による実行、または、データ処理装置のオペレーションをコントロールする実行のために、コンピュータストレージ媒体上でエンコードされた、コンピュータプログラムインストラクションに係る一つまたはそれ以上のモジュールである。代替的または追加的にプログラムインストラクションは、人工的に生成されプロパゲートされた信号上でエンコード化され得る。例えば、マシンで生成された電気、光、または、電磁気信号であって、データ処理装置による実行のために適切な受信装置への送信のために情報をエンコード化するように生成されたものである。コンピュータストレージ媒体は、コンピュータで読取り可能なストレージデバイス、コンピュータで読取り可能なストレージサブストレート、ランダムまたは連続アクセスのメモリアレイまたはデバイス、または、これらの一つまたはそれ以上の組合せ、であってよく、または、それらに包含され得る。さらに、コンピュータストレージ媒体は、それ自体はプロパゲートされた信号ではないが、コンピュータストレージ媒体は、人工的に生成されプロパゲートされた信号の中にエンコード化されるコンピュータプログラムインストラクションのソースまたは宛先であり得る。コンピュータストレージ媒体は、また、一つまたはそれ以上の分離した物理的なコンポーネントまたは媒体（例えば、複数のＣＤ、ディスク、または、他のストレージデバイス）であってもよく、または、包含され得る。分散ソフトウェア環境またはクラウドコンピューティング環境を含んでいるものである。
【００４５】
無線アクセスネットワークを含む、コアおよびアクセスネットワークを含んでいる、ネットワークは、一つまたはそれ以上のネットワークエレメントを含み得る。「ネットワークエレメント」は、種々のタイプのルータ、スイッチ、ゲートウェイ、ブリッジ、ロードバランサ、ファイアウォール、サーバー、インラインサービスノード、プロキシ、プロセッサ、モジュール、または、あらゆる他の適切なデバイス、コンポーネント、エレメント、または、ネットワーク環境において情報交換するように動作可能なオブジェクト、を包含し得る。ネットワークエレメントは、ここにおいて概説したように、スクリーン管理機能のためのプロセッサの使用に関連するアクティビティをサポート（また、そうでなければ実行）するために、適切なプロセッサ、メモリエレメント、ハードウェア、及び/又は、ソフトウェアを含み得る。さらに、ネットワークエレメントは、あらゆる適切なコンポーネント、モジュール、インターフェイス、または、オブジェクトを含んでよく、それらのオペレーションを促進する。このことは、データまたは情報の効果的な交換ができるようにする適切なアルゴリズムおよび通信プロトコルを含んでよい。
【００４６】
この明細書において説明されたオペレーションは、一つまたはそれ以上のコンピュータで読取り可能なストレージデバイス上のデータまたは他のソースから受信したデータについてデータ処理装置によって実行されるオペレーションとして実施され得る。用語「データ処理装置」、「プロセッサ」、「プロセッサデバイス」、および「コンピューティングデバイス」は、データ処理のための全ての種類の装置、デバイス、および、マシンを包含し得る。例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、もしくは、それらの複数のもの又は組合せ、を含んでいる。装置は、汎用または専用ロジック回路を含み得る。例えば、中央演算装置（ＣＰＵ）、ブレード、特定用途向け集積回路（ＡＳＩＣ）、または、フィールドでプログラム可能なゲートアレイ（ＦＰＧＡ）、他の適切なオプション等である。いくつかのプログラムおよびコンピューティングデバイスが、単一プロセッサとして説明及び/又は図示されてきたが、関連するサーバーの所定のニーズに従ってマルチプロセッサが使用されてよい。単一プロセッサへの言及は、適用可能な場合にマルチプロセッサを含むことを意味している。一般的に、プロセッサは、所定のオペレーションを実施するために、インストラクションを実行し、データを操作する。装置は、また、ハードウェアに加えて、当のコンピュータプログラムのための実行環境を作成するコードも含み得る。例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、または、これらの一つまたはそれ以上の組合せ、を構成するコードである。装置と実行環境は、種々の異なるコンピューティングモデルインフラストラクチャーを実現し得る。ウェブサービス、分散コンピューティング、および、グリッド（ｇｒｉｄ）コンピューティングインフラストラクチャー、といったものである。
【００４７】
コンピュータプログラム（プロセッサ、ソフトウェア、ソフトウェアアプリケーション、スクリプト、モジュール、（ソフトウェア）ツール、（ソフトウェア）エンジン、または、コード、としても知られているもの）は、あらゆる形式のプログラミング言語で書くことができる。コンパイルまたはインタープリートされた言語、宣言型または手続型言語を含んでおり、あらゆる形式において展開され得る。スタンドアロンプログラムとして、もしくは、モジュール、コンポーネント、サブルーチン、オブジェクト、または、コンピューティング環境における使用に適切な他のユニット、としての形式を含んでいる。例えば、コンピュータプログラムは、コンピュータで読取り可能なインストラクション、ファームウェア、有線またはプログラムされたハードウェア、または、これらのあらゆる組合せを含んでよく、有形の媒体上で、実行された場合に、ここにおいて説明された少なくとも一つのプロセスとオペレーションを実施するように動作可能である。コンピュータプログラムは、必ずしもそうではないが、ファイルシステムにおけるファイルに対応している。プログラムは、他のプログラムまたはデータ（例えば、マークアップ言語ドキュメントの中に保管された一つまたはそれ以上のスクリプト）の一部分、当のプログラム専用の単一ファイル、または、複数の調和されたファイル（例えば、一つまたはそれ以上のモジュール、サブプログラム、またはコード部分を保管しているファイル）、の中に保管され得る。コンピュータプログラムは、一つのコンピュータ上、または、複数のコンピュータ上で実行されるように展開され得る。コンピュータは、一つのサイトに配置され、または、複数のサイトにわたり分散されて通信ネットワークによって相互接続されているものである。
【００４８】
プログラムは、個々のモジュールとして実施され得る。種々のオブジェクト、メソッド、または、他のプロセスを通じて種々の特性および機能を実施し、または、代わりに、数多くのサブモジュール、第三者サービス、コンポーネント、ライブラリ、といったものを適切な方法で含んでよい。反対に、種々のコンポーネントの特性および機能は、適切な方法で単一のコンポーネントの中に結合され得る。所定の場合に、プログラムおよびソフトウェアシステムは、複合的にホストされたアプリケーションとして実施されてよい。例えば、複合的アプリケーションの部分は、エンタープライズＪａｖａ（登録商標）  Ｂｅａｎｓ（ＥＪＢ）として実施されてよく、または、デザインタイム（ｄｅｓｉｇｎ−ｔｉｍｅ）コンポーネントは、異なるプラットフォームの中にランタイム実施を生成する機能を有してよい。Ｊ２ＥＥ（Ｊａｖａ（登録商標）ツープラットフォーム、エンタープライズ版）、ＡＢＡＰ（アドバンストビジネスアプリケーションプログラミング）オブジェクト、または、マイクロソフトの．ＮＥＴ、等といったものである。加えて、アプリケーションは、ネットワークを介して（例えば、インターネットを通じて）アクセスされ実行されるウェブベースのアプローチを表してもよい。さらに、所定のホストされたアプリケーションまたはサービスに関する一つまたはそれ以上のプロセスは、リモートで保管され、参照され、または、実行されてよい。例えば、所定のホストされたアプリケーションまたはサービスの一部分は、リモートにコールされるアプリケーションに関するウェブサービスであってよい。一方、ホストされたアプリケーションの別の部分は、リモートクライアントでのプロセスに対してバンドルされたインターフェイスオブジェクトまたはエージェントであってよい。さらに、ホストされたアプリケーションおよびサービスのいくつか又は全ては、本発明開示の範囲を逸脱しない、別のソフトウェアモジュールまたはエンタープライズアプリケーション（図示なし）に係る子供（ｃｈｉｌｄ）またはサブモジュールであってよい。さらに、なお、ホストされたアプリケーションの部分は、アプリケーションをホストしているサーバーで直接的に働いているユーザによって実行され得る。
【００４９】
この明細書において説明されたプロセスおよび論理フローは、入力データでのオペレーションによってアクションを実施する一つまたはそれ以上のコンピュータプログラムを実行し、かつ、出力を生成する、一つまたはそれ以上のプログラム可能なプロセッサによって実行され得る。プロセスおよび論理フローは、また、専用論理回路、例えばＦＰＧＡ（フィールドでプログラム可能なゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）によって実行され、かつ、装置も、また、専用論理回路またはＡＳＩＣとして実施され得る。
【００５０】
コンピュータプログラムの実行に適切なプロセッサは、例として、汎用と専用マイクロプロセッサの両方、および、あらゆる種類のデジタルコンピュータのあらゆる一つまたはそれ以上のプロセッサを含んでいる。一般的に、プロセッサは、読出し専用メモリ、または、ランダムアクセスメモリ、もしくは、その両方からインストラクションとデータを受け取る。コンピュータの主要なエレメントは、インストラクションに従ってアクションを実行するためのプロセッサ、および、インストラクションとデータを保管するための一つまたはそれ以上のメモリデバイス、である。一般的に、コンピュータは、また、データを保管するための一つまたはそれ以上の大容量ストレージデバイスを含み、または、そこからデータを受信し、または、そこにデータを送信するように動作可能に接続されており、もしくは、その両方である。ストレージデバイスは、例えば、磁気、光磁気ディスク、または、光ディスクである。しかしながら、コンピュータは、そうしたデバイスを有することを要しない。さらに、コンピュータは、別のデバイスの中にエンベッドされ得る。例えば、いくつか例を挙げると、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、タブレットコンピュータ、携帯オーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信器、または、ポータブルストレージデバイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュメモリ）である。コンピュータプログラムインストラクションとデータを保管するために適切なデバイスは、全ての形式の不揮発性メモリ、メディア、および、メモリデバイスを含んでいる。例として、半導体メモリデバイス、例えばＥＰＲＯＭ、ＥＥＰＲＯＭとフラッシュメモリデバイス、および、フラッシュメモリデバイス、磁気ディスク、例えば内部ハードドライブまたはリムーバブルディスク、光磁気ディスク、および、ＣＤ  ＲＯＭとＤＶＤ−ＲＯＭディスク、を含んでいる。プロセッサとメモリは、専用論理回路によって補足され、または、包含され得る。
【００５１】
ユーザとのインタラクションを提供するために、この明細書において説明された技術的事項の実施例は、ユーザに対して情報を表示するためのディスプレイ装置、例えば、ＣＲＴ（ブラウン管）またはＬＣＤ（液晶ディスプレイ）、および、ユーザがコンピュータに対して入力を提供することができる、キーボードとポインティングデバイス、例えば、マウスまたはトラックボール、を有するコンピュータ上で実施され得る。他の種類のデバイスも、同様に、ユーザとのインタラクションを提供するために使用され得る。例として、ユーザに提供されるフィードバックはあらゆる形式のセンサ上のフィルタであってよい。例えば、視覚的フィルタ、音響的フィードバック、または、触覚的フィードバックである。そして、ユーザからの入力は、あらゆる形式で受信され得る。音響、会話、または、触覚の入力である。加えて、コンピュータは、ドキュメントを送信およびデバイスからドキュメントを受信することによってユーザとインタラクションできる。デバイスは、ユーザによって使用されるリモートデバイスを含んでいる。
【００５２】
以降の例示は、この明細書に従った実施例に関するものである。一つまたはそれ以上の実施例は、装置、システム、マシンで読取り可能な媒体、および、方法を提供し得る。モバイルコンピューティング機器のカーネルに対するシステムコールをモニタし、モバイルコンピューティング機器の入力／出力（Ｉ／Ｏ）機能に関する所定のシステムコールをインターセプトし、所定のシステムコールに適用可能なデータ損失防止（ＤＬＰ）ポリシを特定し、かつ、ＤＬＰポリシに少なくとも部分的に基づいて、所定のシステムコール上のアクションを実行する、ためのものである。
【００５３】
一つの実施例において、モバイルコンピューティング機器上のエージェントは、所定のシステムコールに適用可能なＤＬＰポリシを問い合せされ得る。そして、ＤＬＰポリシが所定のシステムコールに適用可能か否かを特定しているエージェントからの結果を特定する結果が、エージェントから受信され得る。
【００５４】
一つの実施例において、所定のシステムコールおよびアクションにＤＬＰポリシを適用しない又は寛容なＤＬＰポリシを適用することを特定するエージェントからの結果は、処理のために所定のシステムコールをカーネルに渡すことを含んでいる。
【００５５】
一つの実施例において、所定のシステムコールおよびアクションに適用可能な一つまたはそれ以上のＤＬＰポリシを特定する、エージェントからの結果は、ＤＬＰ実施アクションを含んでいる。
【００５６】
一つの実施例において、ＤＬＰ実施アクションは、システムコールを却下することを含んでいる。
【００５７】
一つの実施例において、ＤＬＰ実施アクションは、所定のシステムコールに関連してデータを入力または出力されるように変更することを含んでいる。
【００５８】
一つの実施例において、ＤＬＰ実施アクションは、暗号化されるべき所定のシステムコールに関連してデータが入力または出力されるようにすることを含んでいる。
【００５９】
一つの実施例において、エージェントは、モバイルコンピューティング機器上にインストールされたアプリケーションである。
【００６０】
一つの実施例において、エージェントは、モバイルコンピューティング機器に対応するポリシ情報のために、リモートのセキュリティサーバーとインターフェイスで接続している。
【００６１】
一つの実施例において、エージェントロジックは、カーネルとインターフェイスで接続しているセキュリティモジュールの中に含まれる。
【００６２】
一つの実施例において、カーネルはリナックス（登録商標）カーネルコールであり、システムコールがリナックス（登録商標）セキュリティモジュール（ＬＳＭ）によってインターセプトされる。
【００６３】
一つの実施例において、所定のシステムコールは、ＳＭＳ、近距離無線通信（ＮＦＣ）、ブルートゥース、および、モバイルコンピューティング機器の電話機能、のうち少なくとも一つを使用した所定のデータの出力を含んでいる。
【００６４】
一つの実施例において、所定のシステムコールは、カメラ、マイクロフォン、および、モバイルコンピューティング機器の全地球測位システムを利用している所定のデータの入力、のうち少なくとも一つを含んでいる。
【００６５】
一つの実施例において、所定のシステムコールを対象とする所定のデータは、特定されたＤＬＰポリシに基づいてタグ付けされる。
【００６６】
一つの実施例において、所定のデータを含んでいる後続のシステムコールが受信され、タグ付けが特定され、そして、少なくとも部分的にタグ付けに基づいて後続のシステムコール上でアクションで実行され得る。
【００６７】
一つの実施例において、モバイルコンピューティング機器のアプリケーションは、仮想マシンのコンテナのプロセスにおいて実行される。仮想マシンのコンテナのプロセスは、ダルビック（Ｄａｌｖｉｋ）プロセスの仮想マシンであり得る。
【００６８】
一つの実施例において、システムは、プロセッサデバイス、メモリエレメント、データ損失防止（ＤＬＰ）エレメント、および、セキュリティマネージャを含んでいる。システムは、さらに、ネットワークレベルのＤＬＰを使用して、モバイルコンピューティング機器を含む入力／出力（Ｉ／Ｏ）の試みを仮想プライベートネットワークに再ルート化するように適合された仮想プライベートネットワークマネージャを含み得る。システムは、さらに、モバイルコンピューティング機器のデータの暗号化されたストレージのために、アプリケーションレベルまたはオペレーティングシステムレベルのコンテナを含み得る。システムは、さらに、ＤＬＰエージェントに対してポリシ情報を供給するためのリモートセキュリティサーバーを含み得る。システムは、モバイルコンピューティング機器であり得る。
【００６９】
一つまたはそれ以上の実施例は、モバイルコンピューティング機器のカーネルに対する写真データを含んでいるシステムコールをインターセプトするための装置、システム、マシンで読取り可能な媒体、および、方法を備え得る。モバイルコンピューティング機器に係る検出されたロケーションに少なくとも部分的に基づいて、写真データの使用に適用可能なロケーションベースのデータ損失防止（ＤＬＰ）ポリシが特定され得る。ロケーションベースのＤＬＰポリシおよびモバイルコンピューティング機器のロケーションに少なくとも部分的に基づいて、インターセプトされたシステムコール上でアクションが実行され得る。
【００７０】
一つの実施例において、モバイルコンピューティング機器が所定の地理的ロケーションの外部にいる間に写真データを出力する試みは、ロケーションベースのＤＬＰポリシに基づいてブロックされる。
【００７１】
一つの実施例において、カーネルはリナックス（登録商標）カーネルコールであり、システムコールがリナックス（登録商標）セキュリティモジュール（ＬＳＭ）によってインターセプトされる。
【００７２】
一つの実施例において、エージェントは、モバイルコンピューティング機器上にインストールされたアプリケーションである。
【００７３】
一つの実施例において、エージェントは、モバイルコンピューティング機器に対応するポリシ情報のためにリモートセキュリティサーバーとインターフェイスで接続している。
【００７４】
一つの実施例において、エージェントロジックは、カーネルとインターフェイスで接続しているセキュリティモジュールの中に含まれる。
【００７５】
一つの実施例において、所定のシステムコールは、ＳＭＳ、ｅメール、近距離無線通信（ＮＦＣ）、ブルートゥース、および、モバイルコンピューティング機器のＷｉＦｉ機能に係る出力のうち少なくとも一つを含んでいる。
【００７６】
一つの実施例において、写真データを利用することができるモバイルコンピューティング機器のアプリケーションは、仮想マシンのコンテナのプロセスにおいて実行される。仮想マシンのコンテナのプロセスは、ダルビック（Ｄａｌｖｉｋ）プロセスの仮想マシンを含み得る。
【００７７】
一つの実施例において、写真データは、ビデオデータを含んでいる。
【００７８】
一つの実施例において、ロケーションベースのＤＬＰポリシを特定することは、写真データに適用可能なＤＬＰポリシをモバイルコンピューティング機器上のエージェントに問い合せること、および、ＤＬＰポリシを写真データに適用するか否かを特定する結果を、エージェントから受信することを含む。結果は、ロケーションベースのＤＬＰポリシを特定している。
【００７９】
一つの実施例において、ロケーションベースのＤＬＰポリシは、所定の地理的領域の外部で写真データへのアクセスを制限する。所定の地理的領域は、ジオフェンスを使用して定義され得る。所定の地理的領域は、写真が作成されたロケーションに対応し得る。
【００８０】
一つの実施例において、システムコールは、写真データの入力を含み得る。そして、写真データは、モバイルコンピューティング機器上のカメラから発生する。
【００８１】
一つの実施例において、アクションは、写真データをロケーション情報とタグ付けすることを含んでいる。ロケーションベースのＤＬＰポリシは、タグ付けされたロケーション情報に基づいて写真データ上で実施される。
【００８２】
一つの実施例において、ロケーション情報は、写真データがキャプチャされた場所に対応している。
【００８３】
一つの実施例において、ロケーション情報は、写真データのキャプチャにおける、モバイルコンピューティング機器を使用して取得された地理上のロケーションデータに対応している。
【００８４】
一つの実施例において、写真データを含んでいる後続のシステムコールが受信され、ロケーションデータが特定され、そして、エージェントへの写真データに適用可能なＤＬＰポリシの問い合せに関連して通信され得る。アクションは、少なくとも部分的にタグ付けに基づいて後続のシステムコール上で実行され得る。
【００８５】
一つの実施例において、システムは、プロセッサデバイス、メモリエレメント、および、セキュリティマネージャを含み得る。システムは、さらに、写真データを生成するためのカメラを含み得る。システムは、モバイルコンピューティング機器であり得る。
【００８６】
一つの実施例において、システムは、さらに、ＤＬＰエージェントを含んでおり、ロケーションベースのＤＬＰポリシを特定することは、写真データに適用可能なＤＬＰポリシをモバイルコンピューティング機器上のエージェントに問い合せること、および、ＤＬＰポリシを写真データに適用するか否かを特定する結果を、エージェントから受信することを含む。結果は、ロケーションベースのＤＬＰポリシを特定している。
【００８７】
この明細書において説明された技術的事項に係る実施例は、バックエンドコンポーネントを含むコンピューティングシステム、例えばデータサーバー、または、ミドルウェアコンポーネントを含むコンピューティングシステム、例えばアプリケーションサーバー、もしくは、フロントエンドコンポーネントを含むコンピューティングシステム、例えば、グラフィカルユーザインターフェイスまたはユーザがこの明細書において説明された技術的事項の実施とインストラクションできるウェブブラウザを有するクライアントコンピュータ、において実施され得る。もしくは、一つまたはそれ以上のそうしたバックエンド、ミドルウェア、または、フロントエンドコンポーネントのあらゆる組合せにおいて実施され得る。システムのコンフィグレーションは、あらゆる形式またはデジタルデータ通信のメディア、例えば通信ネットワークによって、相互接続され得る。通信ネットワークの実施例は、システムにおける種々のコンピューティングコンポーネント間で通信を促進するために動作可能な、あらゆる内部または外部のネットワーク、複数ネットワーク、サブネットワーク、または、これらの組合せ、を含んでいる。ネットワークは、例えば、インターネットプロトコル（ＩＰ）パケット、フレームリレーフレーム、非同期転送モード（ＡＴＭ）セル、音声、ビデオ、データ、および、ネットワークアドレス間の他の好適な情報を通信することができる。ネットワークは、また、一つまたはそれ以上のローカルエリアネットワーク（ＬＡＮ）、ラジオアクセスネットワーク（ＲＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットの全部または一部分、ピアツーピア（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）ネットワーク（例えば、アドホックピアツーピアネットワーク）、及び/又は、あらゆる他の通信システムまたは一つまたはそれ以上のロケーションにある複数システム、を含んでよい。
【００８８】
コンピューティングシステムは、クライアントとサーバーを含み得る。クライアントとサーバーは、一般的には、お互いに離れており、典型的には、通信ネットワークを通じてインタラクションする。クライアントとサーバーの関係は、それぞれのコンピュータ上で実行され、かつ、お互いにクライアント−サーバー関係を有しているコンピュータプログラムから生じている。いくつかの実施例において、サーバーは、データ(例えば、ＨＴＭＬページ）をクライアントデバイスに対して送信する（例えば、データを表示すること、および、クライアントデバイスとインストラクションしているユーザからユーザ入力を受信する目的のためである）。クライアントデバイスにおいて生成されたデータ（例えば、ユーザインタラクションの結果）は、サーバーにおけるクライアントデバイスから受信され得る。
【００８９】
この明細書は、多くの所定の詳細な実施例を含んでいるが、これらは、あらゆる発明またはクレームされるものに係る範囲（ｓｃｏｐｅ）を限定するものと理解されるべきではない。むしろ、所定の発明に係る所定の実施例に特有の特徴を説明したものとして理解されるべきである。別々の実施例に係るコンテクストにおける、この明細書で説明される所定の特徴は、また、単一の実施例として組合されても実施され得る。反対に、単一の実施例に係るコンテクストにおいて説明された種々の特徴は、また、複数の実施例において別々でも、または、あらゆる好適なサブコンビネーションにおいても実施され得る。さらに、特徴は、上記に所定の組合せにおいて動作するものとして説明され、そして、そのように最初にクレームされてさえいるが、クレームされた組合せからの一つまたはそれ以上の特徴は、いくつかの場合において、組合せから削除され得る。そして、クレームされた組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けたものであってよい。
【００９０】
同様に、オペレーションは、図面において、所定の順番で示されているが、このことは、望ましい結果を達成するために、そうしたオペレーションが、示された所定の順番で、または、連続した順番で実行されること、または、示された全てのオペレーションが実行されること、を要求しているものと理解されるべきではない。所定の環境においては、マルチタスクおよび並列処理が有利である。さらに、上記の実施例における種々のシステムコンポーネントの分離は、全ての実施例においてそうした分離が要求されているものと理解されるべきではない。そして、所望のプログラムコンポーネントとシステムは、一般的に、単一のソフトウェアプロダクトの中に一緒に統合され、または、複数のソフトウェアプロダクトの中にパッケージされ得ることが理解されるべきである。
【００９１】
このように、技術的事項に係る所定の実施例が説明されてきた。他の実施例は、以降の特許請求の範囲（ｃｌａｉｍ）内にある。いくつかの場合において、クレームにおいて示されたアクションは異なる順番で実行されてよく、それでも所望の結果を達成し得る。加えて、添付の図面において示されたプロセスは、所望の結果を達成するために、示された所定の順番、または連続した順番を必ずしも要しない。
【図１】
0005985756.tif 000002
【図２】
0005985756.tif 000003
【図３】
0005985756.tif 000004
【図４】
0005985756.tif 000005
【図５Ａ】
0005985756.tif 000006
【図５Ｂ】
0005985756.tif 000007
【図６Ａ】
0005985756.tif 000008
【図６Ｂ】
0005985756.tif 000009
【図７】
0005985756.tif 000010
【図８Ａ】
0005985756.tif 000011
【図８Ｂ】
0005985756.tif 000012
【図８Ｃ】
0005985756.tif 000013
【図９Ａ】
0005985756.tif 000014
【図９Ｂ】
0005985756.tif 000015