(57)【要約】【課題】プライバシ関連情報の送出を適切に規制すること。【解決手段】データ送出制限装置１００において、プライバシ関連情報を示すマークがマーキングされたデータを送出するためのデータ送出処理を中断させ、そのデータの送出を許可するか否かをユーザに求め、送出の許可を受けた場合には上記データ送出処理を実行させ、不許可を受けた場合には上記データ送出処理を中止させる。【選択図】図２
2015099466.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより、
プライバシ情報を示すマークが付与されたデータを送出するためのデータ送出処理を中断させる中断ステップと、
前記データの送出を許可するか否かをユーザに求め、求めた結果を記憶手段に記憶させる問合ステップと、
前記記憶手段から前記求めた結果を読み出して、送出の許可を受けた場合には前記データ送出処理を実行させ、不許可を受けた場合には前記データ送出処理を中止させる実行・中止ステップと、
を有することを特徴とするデータ送出制限方法。
【請求項２】
前記中断ステップにおいて、
前記データがメモリのユーザ領域からカーネル領域にコピーされた際に前記中断させることを特徴とする請求項１に記載のデータ送出制限方法。
【請求項３】
前記問合ステップにおいて、
前記データの種別が許可リストに含まれている場合、前記許可するか否かをユーザに求めないことを特徴とする請求項１又は２に記載のデータ送出制限方法。
【請求項４】
プライバシ情報を示すマークが付与されたデータを送出するためのデータ送出処理を中断させる中断手段と、
前記データの送出を許可するか否かをユーザに求め、求めた結果を記憶手段に記憶させる問合手段と、
前記記憶手段から前記求めた結果を読み出して、送出の許可を受けた場合には前記データ送出処理を実行させ、不許可を受けた場合には前記データ送出処理を中止させる実行・中止手段と、
を有することを特徴とするデータ送出制限装置。
【請求項５】
前記中断手段は、
前記データがメモリのユーザ領域からカーネル領域にコピーされた際に前記中断させることを特徴とする請求項４に記載のデータ送出制限装置。
【請求項６】
前記問合手段は、
前記データの種別が許可リストに含まれている場合、前記許可するか否かをユーザに求めないことを特徴とする請求項４又は５に記載のデータ送出制限装置。
【請求項７】
請求項１乃至３のいずれかに記載のデータ送出制限方法をコンピュータに実行させることを特徴とするデータ送出制限プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの送出を制限する技術に関する。
【背景技術】
【０００２】
スマートフォン端末の普及に伴い、自端末内に登録済みの電話番号等が無意識に第三者によって収集されるというプライバシ侵害の問題が多く指摘されている。アプリケーションプログラムは他人によって作成され、その動作は常に信頼できるとは限らないため、ユーザ端末においてプライバシ関連情報の不当な送出を防止する仕組みが必要である。
【０００３】
このような仕組みとしては、図５に示すように、ＡＰ（アプリケーションプログラム）３００からプライバシ関連情報へのアクセスを制限するアクセス制御機能ＣＬ１や、ユーザ端末１から外部への通信を制限する通信制御機能ＣＬ２がある（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Manifest.permission”、Android Developers、［online］、［平成25年11月1日検索］、＜URL: http://developer.android.com/reference/android/Manifest.permission.html＞
【非特許文献２】William Enck、外６名、“TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones”、In Proceedings of the 9th OSDI’10、p.1-15
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、アクセス制御機能はデータへのアクセス自体を制限するにすぎないため、ＡＰがアクセス許可を一度でも受けるとアクセス以降の処理に対して何ら関与できず、ユーザ端末から外部への送出を防ぐことは難しい。
【０００６】
その際に前述の通信制御機能を用いることも考えられる。しかし、プライバシ関連情報の送出に無関係の通信も遮断してしまう。また、通信制御機能はＩＰアドレスやポート番号に基づいて通信を制限するため、送出されるデータの種別に応じて通信の規制対象を選択することはできない。
【０００７】
本発明は、上記事情を鑑みてなされたものであり、プライバシ関連情報の送出を適切に規制することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載のデータ送出制限方法は、コンピュータにより、プライバシ情報を示すマークが付与されたデータを送出するためのデータ送出処理を中断させる中断ステップと、前記データの送出を許可するか否かをユーザに求め、求めた結果を記憶手段に記憶させる問合ステップと、前記記憶手段から前記求めた結果を読み出して、送出の許可を受けた場合には前記データ送出処理を実行させ、不許可を受けた場合には前記データ送出処理を中止させる実行・中止ステップと、を有することを要旨とする。
【０００９】
本発明によれば、プライバシ情報を示すマークが付与されたデータを送出するためのデータ送出処理を中断させ、そのデータの送出を許可するか否かをユーザに求め、送出の許可を受けた場合には上記データ送出処理を実行させ、不許可を受けた場合には上記データ送出処理を中止させるため、プライバシ関連情報の送出を適切に規制できる。
【００１０】
請求項２に記載のデータ送出制限方法は、請求項１に記載のデータ送出制限方法において、前記中断ステップでは、前記データがメモリのユーザ領域からカーネル領域にコピーされた際に前記中断させることを要旨とする。
【００１１】
請求項３に記載のデータ送出制限方法は、請求項１又は２に記載のデータ送出制限方法において、前記問合ステップでは、前記データの種別が許可リストに含まれている場合、前記許可するか否かをユーザに求めないことを要旨とする。
【００１２】
請求項４に記載のデータ送出制限装置は、プライバシ情報を示すマークが付与されたデータを送出するためのデータ送出処理を中断させる中断手段と、前記データの送出を許可するか否かをユーザに求め、求めた結果を記憶手段に記憶させる問合手段と、前記記憶手段から前記求めた結果を読み出して、送出の許可を受けた場合には前記データ送出処理を実行させ、不許可を受けた場合には前記データ送出処理を中止させる実行・中止手段と、を有することを要旨とする。
【００１３】
請求項５に記載のデータ送出制限装置は、請求項４に記載のデータ送出制限装置において、前記中断手段は、前記データがメモリのユーザ領域からカーネル領域にコピーされた際に前記中断させることを要旨とする。
【００１４】
請求項６に記載のデータ送出制限装置は、請求項４又は５に記載のデータ送出制限装置において、前記問合手段は、前記データの種別が許可リストに含まれている場合、前記許可するか否かをユーザに求めないことを要旨とする。
【００１５】
請求項７に記載のデータ送出制限プログラムは、請求項１乃至３のいずれかに記載のデータ送出制限方法をコンピュータに実行させることを要旨とする。
【発明の効果】
【００１６】
本発明によれば、プライバシ関連情報の送出を適切に規制できる。
【図面の簡単な説明】
【００１７】
【図１】本発明を概説する際の参照図である。
【図２】ユーザ端末の機能ブロック構成を示す図である。
【図３】プライバシ関連情報の送出制限動作を示すフローチャートである。
【図４】許可リストの例を示す図である。
【図５】従来技術を説明する際の参照図である。
【発明を実施するための形態】
【００１８】
本発明は、図１に示すように、ＡＰ３００によるプライバシ関連情報へのアクセスを許可しつつ、そのプライバシ関連情報を送出することを制限するデータアウト制限機能ＣＬ３を提供する。例えばアドレス帳データの場合、電話やメール送信を行う際にはＡＰ３００からアドレス帳データの読込を可能とし、その利用についてはＡＰ３００の内部に留める仕組みを提供する。
【００１９】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００２０】
図２は、本実施の形態に係るユーザ端末１の機能ブロック構成を示す図である。このユーザ端末１は、プライバシ関連情報の送出を制限するデータ送出制限装置１００と、ユーザ端末１の内部で動作するＡＰ（アプリケーションプログラム）３００と、同内部で動作するＯＳ（オペレーティングシステム）５００と、同内部に備わるメモリ７００とで構成される。以下詳述する。
【００２１】
データ送出制限装置１００は、図２のように複数の機能部により構成される。具体的には、ＡＰ３００及びＯＳ５００によるプライバシ関連情報の送出処理を検出するデータ送出検出部１１と、その検出後に当該送出処理を中断又は実行若しくは中止させるデータ送出制御部１２と、中断された送出処理に係るプライバシ関連情報の送出先を特定するデータ送出先特定部１３と、中断されたプライバシ関連情報の送出許可・不許可をユーザに問い合わせるデータ送出問合部１４と、その問合せ結果を記憶し、更に送出許可を受けたプライバシ関連情報が記載された許可リストを記憶するデータ記憶部１５とを備えて構成されている。
【００２２】
ＡＰ３００は、ＯＳ５００やＪａｖａＶＭ（Java Virtual Machine，ＪＡＶＡは登録商標）の上で動作し、特定のサービスを提供するアプリケーションプログラムである。例えば、電話機能や電子メール機能、ウェブブラウジング機能を提供するプログラムである。ユーザ端末１に予めインストールされているものでもよいし、所定のサーバ装置からダウンロードしたものでもよい。
【００２３】
ＯＳ５００は、ユーザ端末１の基本動作を制御するプログラムである。例えば、Ｌｉｎｕｘ（登録商標）やＢＳＤ（Berkeley Software Distribution）等のＵＮＩＸ（登録商標）系のオペレーティングシステムである。
【００２４】
メモリ７００は、プライバシ関連情報を記憶する記憶装置である。そのメモリ領域は、ＡＰ３００が使用するユーザ領域７００ａと、ＯＳ５００のカーネルが使用するカーネル領域７００ｂとに論理分割されている。メモリ自体は物理的な記憶手段であることを表現するために「領域」と表現しているが、ユーザ空間（又はアプリケーション空間）やカーネル空間と称される場合もある。
【００２５】
なお、プライバシ関連情報とは、例えば、ユーザ端末１のＩＤデータやログデータ、アドレス帳データ、電子メールボックス内の送信データ及び受信データである。また、ユーザ端末１は、例えば、スマートフォン端末、タブレット端末、パーソナルコンピュータである。
【００２６】
次に、ユーザ端末１の動作について説明する。
【００２７】
なお、本実施の形態では、データへの処理を追跡する機能（図２において不図示）を利用する（前述の非特許文献２を参照）。これによりユーザ端末１は、ＡＰ３００がデータを読み込んだ際にメモリ７００上の当該データに対して当該データを識別するマークＭを付与し、そのデータを用いた処理結果にもマークＭを付与する。ここでは、プライバシ関連情報のみをマーキング対象とし、プライバシ関連情報の種別に応じて異なるマーキングパターンが付与されているものとする。
【００２８】
また、データの送出とは、データをメモリ７００の外部に送出することをいう。例えば、ユーザ端末１から通信ネットワークや外部ディスク装置等に送信すること以外に、ユーザ端末１の具備する内蔵ディスク装置に送信すること（ユーザ端末内で別ファイルとしてコピーすること）も含まれる。
【００２９】
最初に、データを送出する際の基本動作を説明する。
【００３０】
ＡＰ３００がメモリのユーザ領域７００ａからデータを読み込んだ後に送出処理を要求すると、ＯＳ５００により、そのデータはユーザ領域からカーネル領域にコピーされ、カーネル領域からデータが送出されることになる。送出先が通信ネットワーク、外部ディスク装置、内蔵ディスク装置のいずれであっても、データの送出処理はカーネル領域へのコピー処理を経由して行われる。
【００３１】
次に、データ送出制限装置１００で行うプライバシ関連情報の送出制限動作を説明する。図３は、プライバシ関連情報の送出制限動作を示すフローチャートである。
【００３２】
まず、ステップＳ１において、データ送出検出部１１により、ＯＳ５００によるデータの送出処理が検出されると、ステップＳ２において、データ送出制御部１２により、その送出処理が中断される。
【００３３】
具体的には、ユーザ領域からカーネル領域へデータをコピーするための関数が利用されたことを検知することにより、データが送出処理されようとしていることを検出する。例えば、Ｌｉｎｕｘの場合には「copy_from_user()」の関数、ＢＳＤの場合には「copyin()」又は「copyinstr()」の関数が利用された際にデータの送出処理を検出し、それら関数利用後のＯＳ５００の処理を一旦横取りする。
【００３４】
次に、ステップＳ３において、引き続きデータ送出制御部１２により、ＯＳ５００によってコピーされたデータにマークＭが付与されているか否かが判定される。そして、マーキングされていないデータであれば、プライバシ関連情報に該当しないため、図３の送出制限処理を終了し、中断していたデータの送出処理をＯＳ５００に戻して当該送出処理をそのまま継続させる。
【００３５】
一方、マーキングされているデータであれば、プライバシ関連情報を送出しようとしているため、まず、ステップＳ４において、データ送出先特定部１３により、そのデータの種別及び送信先が特定され、続いて、ステップＳ５において、データ送出問合部１４により、そのデータの送出の許可・不許可がユーザに問い合わせられ、その問合せ結果がデータ記憶部１５に記憶される。
【００３６】
データの種別は、例えば、マーキングパターンを判定することにより特定する。また、データの送信先は、例えば、プロセススタックやカーネルスタックを解析することにより特定する。いずれかのスタックをシステムコールの呼び出し処理まで戻り、そこでシステムコールに渡された引数を解析する。送信先が通信ネットワークの場合にはＦＱＤＮ（Fully Qualified Domain Name）又はＩＰアドレスを特定し、外部ディスク装置や内蔵ディスク装置の場合はファイルパスを取得する。その後、ユーザ端末１のユーザに対してデータの種別及び送信先を文字や音声で提示し、送出許可又は送出不許可の入力を求める。
【００３７】
続いて、データ記憶部１５からユーザへの問合せ結果が読み出され、データの送出がユーザにより許可された場合、ステップＳ６において、データ送出制御部１２により、ステップＳ２で中断していたデータの送出処理をＯＳ５００に戻して当該送出処理を実行させる。
【００３８】
一方、そのデータの送出がユーザにより不許可された場合、ステップＳ７において、データ送出制御部１２により、ＯＳ５００に対してエラーを返すことによりデータの送出処理を中止（遮断）させる。ＯＳ５００にエラーを返すことによりＡＰ３００に対してシステムコールのエラーが返るため、データの送出処理が中断のまま終了することになる。
【００３９】
以上がプライバシ関連情報の送出制限動作である。
【００４０】
ただし、ユーザ領域からカーネル領域へのデータのコピー処理は、同一データが分割されて複数回行われる可能性がある。特に、送出が許可された場合においては、同一データに対して極めて短時間に複数回のユーザへの問合せ処理が発生し得る。
【００４１】
そこで、送信許可を受けたデータの種別を記載した許可リストを管理し、そこで許可されているデータについてはユーザへの問合せ処理をスキップするようにしてもよい。そのため、データ送出制限装置１００は、図４に示すような許可リストを生成してデータ記憶部１５で管理する。スレッドＩＤは、ＯＳ５００が管理しているスレッドの識別子である。マーキングパターンは、データの種別を表すビット列である。また、世代ビットは、エージング（Ａｇｉｎｇ）アルゴリズムのためのビット列である。
【００４２】
なお、許可リストのリスト長はデータ記憶部１５のサイズより物理的に有限であるため、許可リストが一杯になった場合には新しく追加する際にリスト内にあるもののどれかを上書きしなければならない。その上書き対象を決定するためにメモリのページングに用いられるエージングアルゴリズムを利用し、古い情報から上書きしていくようにする。
【００４３】
つまり、ユーザ空間からカーネル空間へのデータのコピー処理をフック（処理を一時的に横取り）した際に、許可リスト内に含まれているデータについては既に許可を受けているものとしてステップＳ５をスキップする。一方、含まれていないデータについてはステップＳ５を実行し、ユーザによる許可を受けた際に許可リストに追加する。その際に許可リストが一杯の場合には、エージングアルゴリズムが最も古いもの上書きする。
【００４４】
以上より、本実施の形態によれば、プライバシ関連情報を示すマークがマーキングされたデータを送出するためのデータ送出処理を中断させ、そのデータの送出を許可するか否かをユーザに求め、送出の許可を受けた場合には上記データ送出処理を実行させ、不許可を受けた場合には上記データ送出処理を中止させるので、プライバシ関連情報の送出を適切に規制できる。
【００４５】
最後に、本実施の形態で説明したデータ送出制限装置１００は、メモリやＣＰＵを備えたコンピュータにより実現できる。また、データ送出制限装置１００の各動作をプログラムとして構築し、コンピュータにインストールして実行させることや、通信ネットワークを介して流通させることも可能である。
【符号の説明】
【００４６】
１…ユーザ端末
１００…データ送出制限装置
１１…データ送出検出部
１２…データ送出制御部
１３…データ送出先特定部
１４…データ送出問合部
１５…データ記憶部
３００…ＡＰ（アプリケーションプログラム）
５００…ＯＳ（オペレーティングシステム）
７００…メモリ
７００ａ…ユーザ領域
７００ｂ…カーネル領域
Ｓ１〜Ｓ７…ステップ
【図１】
2015099466.tif 000003
【図２】
2015099466.tif 000004
【図３】
2015099466.tif 000005
【図４】
2015099466.tif 000006
【図５】
2015099466.tif 000007