JP5387584B2 - データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム - Google Patents

データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム Download PDF

Info

Publication number
JP5387584B2
JP5387584B2 JP2010542072A JP2010542072A JP5387584B2 JP 5387584 B2 JP5387584 B2 JP 5387584B2 JP 2010542072 A JP2010542072 A JP 2010542072A JP 2010542072 A JP2010542072 A JP 2010542072A JP 5387584 B2 JP5387584 B2 JP 5387584B2
Authority
JP
Japan
Prior art keywords
data
inter
resource
security level
process communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010542072A
Other languages
English (en)
Other versions
JPWO2010067703A1 (ja
Inventor
一男 矢野尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010542072A priority Critical patent/JP5387584B2/ja
Publication of JPWO2010067703A1 publication Critical patent/JPWO2010067703A1/ja
Application granted granted Critical
Publication of JP5387584B2 publication Critical patent/JP5387584B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

本発明は、データの流れを監視又は管理するための技術に関する。
IT(Information Technology)システム上では多くの情報がやりとりされており、それらの情報の機密度に応じて、適切に情報の流れを監視または管理することがセキュリティ上重要である。
データの流れの監視等が不十分だと、情報漏洩が生じ得る。例えば、USB(Universal Serial Bus)メモリによれば、情報を簡便にやり取りできるが、USBメモリ紛失時などに情報漏洩が生じる可能性がある。
このような、情報漏洩を防ぐために、非特許文献1に記載の、いわゆるDLP(Data Loss Prevention)ツールは、やりとりされるデータの類似度に基づいて情報漏洩を監視する。詳細には、DLPツールを使用するシステムは、予め機密性の高い情報の特徴をポリシーに記述しておき、その特徴を持つデータがUSBメモリに書き出されたり、メールに添付されて信頼できない宛先に送信されたりすることを検知して、情報漏洩を防止している。
非特許文献2では、システムコールをフックし、ファイル入出力・ネットワークI/O(Input/Output)だけでなく、メモリマップを利用したプロセス間通信も追跡する方法が提案されている。
また、特許文献1に記載のアクセス管理システムは、PC(Personal Computer)上で生じるファイル入出力やネットワーク入出力の事象(イベント)をログとして収集する。このログには、プロセスによるファイルの入出力、ファイル名の変更、USBメモリへの書き出し、ネットワーク通信といった動作が、時刻やプロセス名・ユーザ名と関連付けて記録される。このログを調べることにより、アクセス管理システムは、USBメモリに書き出されたファイルの元の名前や、そのファイルがどこからコピーされたかなどを追跡し、情報漏洩を監視または防止できる。
特許文献2には、コンピュータがアプリケーションソフトウェアに対するユーザの操作を監視するためのフィルタプログラムを読み込み、アプリケーション間データ転送を検出して不正なプロセス間通信を防止する方法が開示されている。この方法を用いると、コンピュータは、アプリケーション間でデータを転送するプロセス間通信のみについて、転送されるデータ間の依存関係を求めることができる。但し、この方法では、コンピュータは、アプリケーションソフトウェアごとにフィルタプログラムを作成しておく必要がある。
ここで、データ間の依存関係とは、あるデータの全部または一部が他のデータの全部または一部をコピーしたものである場合における、これらのデータ間の関係をいう。
特許文献3には、アプリケーションに対するユーザの操作を監視し、かつアプリケーションソフトウェアの状態を検出して、両者を組み合わせて分析する方法が開示されている。この方法を使用することにより、コンピュータは、プロセス間通信だけでなく、プロセス内部の情報の流れも比較的正確に追跡することができ、正確なデータの依存関係を求めることができる。但し、この方法では、コンピュータは、アプリケーションソフトウェアごとの状態検出ルールを記述したファイルを取得しておく必要がある。
「"ついうっかり"で情報は外部に漏れる」、2008年8月、p58-p69、日経NETWORK SAMUEL T. KING and PETER M. CHEN, "Backtracking Intrusions", ACM Transactions on Computer Systems, Vol. 23, No. 1, February 2005
特表2006−525562号公報 特開2006−092149号公報 特開2006−155416号公報
しかし、非特許文献1、非特許文献2、または特許文献1に記載の方法では、過剰な依存関係が取得されやすい。
ここで、過剰な依存関係とは、データのコピーが生じていないにもかかわらず、依存関係があると判断された場合をいう。
例えば、Windows(登録商標)ではドラッグ&ドロップの最中(ドラッグ中)に、ドラッグ元のプロセスと、現在マウスカーソルの下にあるプロセスとの間で断続的にプロセス間通信(IPC:Inter Process Communication)が行われる。しかし、これはマウスカーソルの形状をどのようにするかを判定するための通信であり、このIPCにおいては、実質的な情報が流れない。
非特許文献1、非特許文献2、または特許文献3に記載の方法では、IPCの内容に関わらず依存関係を生成するため、このような場合にも依存関係があると判断する。この結果、過剰な依存関係が多く取得されてしまい、データを的確に追跡できないという問題があった。
特許文献2および3に記載のコンピュータは、アプリケーションソフトウェアごとにフィルタプログラムまたは状態検出ルールを作成しておく必要がある。このため、これらの技術では、データ追跡に手間と時間がかかり、データの流れを追跡することが困難であった。また、フィルタプログラム等で検出できないデータもあり、データの流れの追跡が困難であるという問題があった。
本発明は、データの流れを容易かつ的確に追跡することを可能にする技術を提供することを目的とする。
上記目的を達成するために、本発明のデータ依存関係解析装置は、プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知するプロセス間通信検知手段と、プロセスによる前記リソース内のデータへのアクセスイベントを順次検知するアクセス検知手段と、前記アクセス検知手段により検知された前記アクセスイベント毎に、該アクセスイベントにおけるアクセス対象のデータを記録する記録手段と、前記記録手段により記録された前記アクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索し、検索したデータ間に依存関係を付与する解析手段と、を有する。
本発明のデータ依存関係解析方法は、プロセス間通信検知手段が、プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知し、アクセス検知手段が、プロセスによる前記リソース内のデータへのアクセスイベントを順次検知し、記録手段が、前記アクセス検知手段により検知された前記アクセスイベント毎に、該アクセスイベントにおけるアクセス対象のデータを記録し、解析手段が、前記記録手段により記録された前記アクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索し、検索したデータ間に依存関係を付与する、方法である。
本発明のプログラムは、コンピュータに、プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知するプロセス間通信検知手順、プロセスによる前記リソース内のデータへのアクセスイベントを順次検知するアクセス検知手順、前記アクセス検知手順で検知された前記アクセスイベント毎に、該アクセスイベントにおけるアクセス対象のデータを記録する記録手順、及び前記記録手順で記録された前記アクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索し、検索したデータ間に依存関係を付与する解析手順、を実行させるためのプログラムである。
本発明によれば、データ依存関係解析装置は、処理内容に基づいて、リソース間でコピーされたデータを受け渡すプロセス間通信を検知するので、アプリケーション毎に個別にフィルタプログラムや状態検出ルールを作成するような煩雑な作業をしなくてもデータのコピーを検出することができ、データ流れの追跡が容易となる。また、検知したプロセス間通信において受け渡されたデータのコピー先とコピー元とに該当するデータ間の依存関係を付与するので、データの流れを的確に追跡することができる。
本発明の第1の実施形態のコンピュータの構成を示すブロック図である。 本発明の第1の実施形態のログの内容をまとめた表である。 本発明の第1の実施形態の解析結果の内容をまとめた表である。 本発明の第1の実施形態のコンピュータの動作を示すフローチャートである。 本発明の第1の実施形態の通信内容取得処理を示すフローチャートである。 本発明の第1の実施形態のコンピュータを動作させるためのコンピュータプログラムの一例である。 本発明の第1の実施形態の解析処理を示すフローチャートである。 (a)ユーザのファイル操作を示す図である。(b)ユーザのファイル操作を示す図である。 (a)ユーザのファイル操作を示す図である。(b)ユーザのファイル操作を示す図である。 ユーザのファイル操作を示す図である。 本発明の第2の実施形態のログの内容をまとめた表である。 本発明の第2の実施形態の解析結果の内容をまとめた表である。 本発明の第2の実施形態のコンピュータの動作を示すフローチャートである。 本発明の第2の実施形態のコンピュータを動作させるためのコンピュータプログラムの一例である。 本発明の第2の実施形態の解析処理を示すフローチャートである。 本発明の第3の実施形態のコンピュータの構成を示すブロック図である。 本発明の第3の実施形態の定義情報の内容をまとめた表である。 本発明の第3の実施形態のログの内容をまとめた表である。 本発明の第3の実施形態のコンピュータの動作を示すフローチャートである。 本発明の第3の実施形態の解析処理を示すフローチャートである。 本発明の第4の実施形態のコンピュータの構成を示すブロック図である。 本発明4の実施形態のログの内容をまとめた表である。 本発明の第4の実施形態のコンピュータの動作を示すフローチャートである。 本発明の第4の実施形態の解析処理を示すフローチャートである。 本発明の第5の実施形態のコンピュータの動作を示すフローチャートである。 本発明の第6の実施形態のコンピュータの構成を示すブロック図である。 本発明の第6の実施形態のコンピュータの動作を示すフローチャートである。 本発明の第6の実施形態のIO仲介処理を示すフローチャートである。 本発明の第7の実施形態のコンピュータの構成を示すブロック図である。 本発明の第7の実施形態のIO仲介処理を示すフローチャートである。 本発明の第7の実施形態の復号処理を示すフローチャートである。 本発明の第7の実施形態の暗号化処理を示すフローチャートである。 本発明の変形例のコンピュータおよび解析装置の構成を示すブロック図である。
本発明を実施するための形態について図面を参照して詳細に説明する。
図1は、本実施形態のコンピュータ1の構成を示すブロック図である。コンピュータ1は、データ間の依存関係を解析し、データの流れを追跡するための装置である。同図を参照すると、コンピュータ1は、監視部15、記憶部17、および解析部19を有する。
監視部15は、IPC監視部151、IPC分析部153、IO監視部155、およびログ作成部157を有する。例えば、監視部15は、オペレーティングシステム(OS)の一部に組み込まれる。より具体的には、監視部15は、デバイスドライバやシステムコールフックのようなOSのカーネルを拡張する手法で実現できる。監視部15が、カーネルモードではなくAPIフックのようにユーザモード上で動作するように実現してもよい。
IPC監視部151は、プロセス間通信(以下、「IPC」という。)を監視(検知)する。プロセス間通信は、例えば、名前つきパイプ、LPC(Local Procedure Call)、または、共有メモリである。IPC監視部151は、名前つきパイプやLPC、共有メモリなどをオープンしたり、それらにデータを送信したり、それらからデータを受信するシステムコールを仲介することにより、IPCを監視する。IPC監視部151は、検知したIPCのプロトコルの種類と、その処理内容をIPC分析部153へ通知する。
IPC分析部153は、検知されたIPCが、リソース間でコピーされるデータを受け渡すものであるか否かを判断する。
リソース間でコピーされるデータを受け渡すIPCを求める方法について詳細に説明する。IPC分析部153は、IPCで使用される通信プロトコルの種類と、そのプロトコルにおけるIPCの処理内容とを取得する。IPCには、そのプロトコルの種類や処理内容により、データがコピーされないものがあり、全てのIPCについてデータの依存関係を求めると、過剰な依存関係が取得されてしまうためである。
IPC分析部153は、IPCのチャネル内を流れるデータを、プロトコルの種類および処理内容に基づく判定ルールを使用して分析することにより、リソース間でデータのコピーが生じるか否かを判断する。この判定ルールは、プロセス間で共通的に用いられるIPCの通信元と通信先の間で明示的な情報フローが存在するかどうかをエキスパートが判定して記述したものである。
ここで、リソースとは、コンピュータ1内において、ユーザの操作によって情報を入出力可能なデバイスを表し、例えば、ハードディスクやリムーバブルメディア上のファイル、ネットワークの接続を含む。ネットワーク接続には、例えば、FTP(File Transfer Protocol)やHTTP(Hyper Text Transfer Protocol)やSMTP(Send Mail Transfer Protocol)によるデータの送信が含まれる。
IPC分析部153は、例えば、古典的な通信プロトコルの場合、そのプロトコル内で送信されるコマンドの種類、コマンドの引数など(処理内容)に基づいて依存関係を判定する。また、IPC分析部153は、IPCのプロトコルがRPC(Remote Procedure Call)である場合はプロシージャ名とその引数など(処理内容)に基づいて依存関係を判定する。あるいは、IPC分析部153は、IPCのプロトコルがCOM(Component Object Model)のメソッド呼び出しである場合は、インタフェース名とメソッド名とその引数など(処理内容)に基づいて依存関係を判定する。
処理内容を取得する場合、IPC分析部153は、IPC関連のシステムコールの呼び出しがあるたびに、それらを一時的に記憶しておく。ある機能を持った一つのIPCが複数回の一連のシステムコール呼び出しによって実現される場合があるためである。そして、IPC分析部153は、ある機能を持った一つのIPCが完了したときに、そのIPCの処理内容(通信内容)を一時的な記憶から再構成して取得する。
例えば、名前つきパイプによる通信はクライアントサーバ型の通信であり、あるひとつの機能を持ったIPCが複数回の名前つきパイプによる通信で実現される場合がある。その場合、IPC分析部153は、一連の名前つきパイプ通信の内容を一時的に記憶する。
また、LPCはWindows(登録商標)に実装されているIPCの機構の一つであり、名前つきパイプと同様にクライアントサーバ型の通信である。この場合も、IPC分析部153は、一連の名前つきパイプ通信の内容を一時的に記憶する。特にLPCでは、送信するデータのサイズに制限があり、サイズの大きなデータを送信する場合は、共有メモリを併用してデータを送信する。このような場合、IPC分析部153は、IPC通信内容を再構成する際には、LPC通信内容と共有メモリの内容とを併せて再構成する。
IO監視部155は、プロセスによる、リソースへのアクセスを監視する。例えば、IO監視部155は、ファイルやネットワークソケットをオープンするシステムコールを仲介したり、OSカーネルからファイルシステムドライバやネットワークドライバへの通信を仲介したりすることによって、アクセスを検知する。
ログ作成部157は、IO監視部155によって検出されたリソースへのアクセスイベントと、IPC分析部153により検知されたIPCイベントを、記録したログを作成する。ログの記録内容の詳細については、後述する。
記憶部17には、ログ作成部157が作成したログ171が格納される。記憶部17は、例えばハードディスク等の記憶媒体である。公知のログ改竄防止技術を用いて、ユーザによるログ171の改竄を防止してもよい。
解析部19は、ログ171の記録内容から、各アクセスイベントでアクセス対象となったデータ間の依存関係を解析する。言い換えれば、解析部19は、各アクセスイベントでターゲット(アクセス対象)とされたデータが、どのアクセスイベントでターゲットとされたデータに依存するかを求める。
より詳細には、解析部19は、アクセスイベントのターゲットのうち、いずれかのファイル(データ)を調査対象とする。解析部は、その調査対象ファイルをターゲットとするイベントであって、種類が「write」のイベントを全て検索する。この条件を満たすイベントをイベントZとする。
該当するイベントZが1つもないときは、解析部19は、調査対象ファイルに依存するファイルはないと判断する。
該当するイベントZがあれば、解析部19は、イベントZより前の時刻に生じたイベントであって、イベントZと同じプロセス名をもつ「read」イベント(以下、「イベントW」という)を全て検索する。
そして、解析部19は、イベントZより前の時刻に生じたイベントで、イベントZのプロセス名をターゲットとするIPCイベントがあるか否かを判断する。この条件を満たすイベントをイベントWとする。
イベントWがあれば、解析部19は、イベントWより前の時刻に生じたイベントであって、イベントWと同じプロセス名をもつ「read」イベント(W)を全て検索する。解析部19は、検索したWのイベントのターゲットに依存すると判断する。
このようにして、解析部19は、ログに記載の全てのファイル(データ)について、依存関係を調査し、データ間の依存関係を記載した解析結果191を出力する。
図2は、ログ171の内容をまとめた表である。同図を参照すると、ログ171には、イベントの「種類」、「プロセス名」、および「ターゲット」が、時系列順に記録される。
「種類」は、IO監視部155、またはIPC分析部153により、検出されたイベントの種類である。IO監視部155により検出されるイベントは、リソースへのアクセスイベントであり、リソースからの読み出し(「read」など)、またはリソースへの書き込み(「write」など)である。IO監視部155により検出されたイベントは、コピーされたデータを受け渡すIPCイベント(「ipc」)である。
「プロセス名」は、そのイベントで処理されたプロセスに一意に割り当てられた識別子である。検出されたイベントがIPCイベントである場合、通信元のプロセスの名称が記録される。
「ターゲット」は、アクセスイベントの場合、アクセス対象のデータであり、IPCイベントの場合、通信先のプロセスである。
図3は、解析結果191の内容をまとめた表である。同図を参照すると、解析結果191には、調査対象のデータ(「調査対象ファイル」)と、その依存元のデータ(「依存元」)とが対応付けて記載される。
次に、本実施形態のコンピュータ1の動作について説明する。図4は、コンピュータ1の動作を示すフローチャートである。この動作は、所定のアプリケーションが実行されたときに開始する。同図を参照すると、IPC監視部151は、検知したIPCにおけるプロトコルの種類を取得する(ステップS5)。IPC監視部151は、通信内容取得処理を実行する(ステップS7)、IPC分析部153は、プロトコルの種類とIPCの処理内容とに基づいて、リソース間でコピーされたデータを受け渡すIPCを検知する(ステップS9)。
IO監視部155は、リソースへのアクセスイベントを検知する(ステップS11)。ログ作成部157は、リソースへのアクセスイベントと、データがコピーされるIPCイベントを、記録したログ171を作成し、記憶部17に格納する(ステップS13)。
解析部19は、ログ171を読み出し、解析処理を実行する(ステップS15)。ステップS15の後、コンピュータ1は、動作を終了する。
図5は、通信内容取得処理を示すフローチャートである。同図を参照すると、IPC監視部151は、一連のIPCの処理内容を一時的に記憶しておく(ステップS71)。IPC監視部151は、ある機能をもつ1つのIPCが完了したか否かを判断する(ステップS73)。
IPCが完了していなければ(ステップS73:NO)、IPC監視部151は、ステップS71へ戻る。IPCが完了したならば(ステップS73:YES)、IPC監視部151は、IPCの処理内容(通信内容)を、一時記憶から再構成し、IPC分析部153へ通知する(ステップS75)。ステップS75の後、IPC監視部151は、通信内容取得処理を終了する。
図6は、リソース間でデータがコピーされるIPCを検知するステップS9の内容を実現するコンピュータプログラムの一例である。同図におけるコンピュータプログラムは、C++言語で記述されている。同図を参照すると、通信内容のプロトコルがCOMのメソッド呼び出しで、そのメソッドのインタフェース名が「IDataObject」で、メソッド名が「GetData」の場合、リソース間でデータがコピーされる、すなわち依存関係が生じる(「true」)と判断される(ステップS91)。このメソッド呼び出しは、プロセス間でOLE(Object Linking and Embedding)によるドラッグ&ドロップが生じた場合に呼び出されるものであり、ドラッグ元のプロセスの保持する情報を、ドラッグ先にコピーする機能を持つ。従って、このメソッド呼び出しは、データの依存関係を生じさせるものである。
通信内容のプロトコルがCOMのメソッド呼び出しで、そのメソッドのインタフェース名が「IDataObject」で、メソッド名が「QueryGetData」の場合、このIPC通信によってデータの依存関係が生じない(「false」)と判断される(ステップS93)。このメソッド呼び出しは、OLEによるドラッグ&ドロップ中に、マウスカーソルがドロップ先のウインドウに入った場合に呼び出されるものであり、ドラッグ元のプロセスの保持する情報をドラッグ先に送信する機能はもたない。従って、このメソッド呼び出しは、データの依存関係を生じさせないものである。
ステップS91、S93のいずれのルールにも適合しない場合は、このIPC通信によってデータの依存関係が生じる(「true」)と判断される。エキスパートによって生成された判定ルールによっても検知できない依存関係が生じる場合もあり、この依存関係の検出漏れを防ぐためである。
図7は、解析処理を示すフローチャートである。同図を参照すると、解析部19は、アクセスイベントのターゲットのうち、いずれかを調査対象のファイルXとする(ステップS151)。解析部19は、種類が「write」で、且つターゲットがファイルXである、イベントZがログに記録されているか否かを判断する(ステップS153)。
イベントZが記録されていれば(ステップS153:YES)、解析部19は、解析部19は、イベントZより前のイベントであって、イベントZと同じプロセス名に対応付けられた「read」イベントWを検索する。解析部19は、検索したイベントWを集合Yに追加する(ステップS155)。集合Yは、Xと依存関係を持つデータをターゲットとするイベントの集合である。
解析部19は、イベントZより前のイベントであって、イベントZと同じプロセス名に対応付けられたIPCイベントWが記録されているか否かを判断する(ステップS157)。
イベントWが記録されていれば(ステップS157:YES)、解析部19は、イベントWをイベントZとし(ステップS159)、ステップS153に戻る。
ステップS157において、イベントWが記録されていなければ(ステップS157:NO)、解析部19は、XはYに含まれるイベントのターゲットに依存すると判断し、これらのデータに依存関係を付与して解析結果191に記載する(ステップS161)。
イベントZが記録されていなければ(ステップS153:NO)、ファイルXが依存するファイルはないと判断する(ステップS163)。
ステップS161、またはステップS163の後、解析部19は、全てのファイルついて。調査を行ったか否かを判断する(ステップS165)。全てのファイルについて調査を行っていなければ(ステップS165:NO)、解析部19は、ステップS151に戻る。全てのファイルについて調査したならば(ステップS165:YES)、解析部19は、解析処理を終了する。
続いて、ユーザのファイル操作の一例を示し、このファイル操作が行われたときのコンピュータ1の動作結果について、説明する。図8(a)〜図10は、ユーザの一連のファイル操作を示す図である。図8(a)に示すように、コンピュータ1には、「aaa.txt」、「bbb.doc」、および「ccc.doc」のファイルが格納され、「wordpad」、および「winword」のプロセスが開始されている。ここで、ユーザは、「aaa.txt」、ファイルを、プロセス「wordpad」において読み込む操作を行った。
そして、図8(b)に示すように、ユーザは、「bbb.doc」ファイルを、「winword」において読み込む操作を行った。
図9(a)に示すように、ユーザは、「winword」の実行画面をもう1つ開き、「ccc.doc」、ファイルを、「winword」において読み込む操作を行った。
図9(b)に示すように、ユーザは、「winword」に読み込まれた「ccc.doc」ファイルをドラッグし、「wordpad」プロセス実行画面へドロップして、データをコピーした。
最後に、ユーザは、「wordpad」プロセスにおいて、読み込まれたファイル(「aaa.txt」、「ccc.doc」)を「ddd.doc」として、リソースに格納した。
これらのファイル操作が行われた場合、コンピュータ1は、図2に示したように、アクセスイベント、IPCイベントをログ171に記録する(ステップS13)。具体的には、図8(a)、(b)、および図9(a)に示したように、「wordpad」、「winword」プロセスにおいて、リソースからファイルが読み込まれたとき、時系列順に、それらのアクセスイベントが記録される。
続いて、図9(b)において、ファイルのドラッグ中は、ドラッグ元のプロセスと、現在マウスカーソルの下にあるプロセスとの間で断続的にIPCが行われるが、このIPCは実質的には情報が流れないため、この間のIPCイベントはログに記録されない。図9(b)において、ファイルが、ドロップされたとき、リソース間においてデータがコピーされるので、IPCイベントが記録される。
最後に、図10に示したように、「wordpad」プロセスにおいて、リソースへファイルが書き込まれたとき、時系列順に、そのアクセスイベントが記録される。
このログ171から、図3に示したように、「ddd.doc」ファイルは、「wordpad」、「winword」プロセスを通じて、「aaa.txt」、「bbb.doc」、および「ccc.doc」ファイルからコピーされたと解析される。すなわち、「ddd.doc」ファイルは、「aaa.txt」、「bbb.doc」、および「ccc.doc」ファイルに依存する。
以上、説明したように、本実施形態によれば、コンピュータ1(データ依存関係解析装置)は、処理内容に基づいて、リソース間でコピーされたデータを受け渡すプロセス間通信を検知するので、アプリケーション毎に個別にフィルタプログラムや状態検出ルールを作成するような煩雑な作業をしなくてもデータのコピーを検出することができ、データ流れの追跡が容易となる。また、検知したプロセス間通信において受け渡されたデータのコピー先とコピー元とに該当するデータ間の依存関係を付与するので、データの流れを的確に追跡することができる。
また、データ依存関係解析装置は、プロセス間通信で使用されるプロトコルの種類と処理内容とに基づいて、プロセス間通信の処理内容に基づいてコピーされるデータが受け渡されるプロセス間通信を検知するので、コピーされたデータを受け渡さないプロトコルを使用するプロセス間通信を除外できる結果、更にデータを的確に追跡できる。
解析部19は、検知されたプロセス間通信のイベントを介して読み出しイベントと書き込みイベントを関連付け、その読み出しデータをコピー元とし、書き込みデータをコピー先としてコピーの依存関係を定めるので、プロセス間通信を介してデータがコピーされた場合であっても、コピーされたデータを的確に追跡できる。
(第2の実施形態)
本発明の第2の実施形態について説明する。本実施形態のコンピュータ1は、依存関係の度合いを更に求める点で、第1の実施形態のコンピュータ1と異なる。
図11は、本実施形態のログ作成部157が作成するログ171の内容をまとめた表である。同図を参照すると、各イベントに対応付けて、ターゲットのデータサイズが更に記録される。IPCイベントの場合、受け渡されるデータサイズが記録される。本実施形態では、データサイズが、所定値より大きい時は「2」、そうでないときは「1」が「データサイズ」欄に記録される。
図12は、本実施形態の解析結果191の構成を示す。同図を参照すると、解析結果191には、依存元のファイルごとに、「依存度」が更に記載される。依存度とは、ターゲットとされたデータ間の依存関係の度合いのことであり、コンピュータ1は、依存関係のある、それぞれのデータのデータサイズが大きいほど、依存度が大きいと評価する。
図13は、本実施形態のコンピュータ1の動作を示すフローチャートである。同図を参照すると、本実施形態のコンピュータ1の動作は、ステップS9の代わりに、ステップS9aが実行される以外は、第1の実施形態の動作と同様である。
ステップS9aにおいて、IPC分析部153は、リソース間でデータがコピーされるIPCと、コピーされるデータのデータサーズとを取得する。
図14は、本実施形態のステップS9aの処理内容を実現したコンピュータプログラムの一例である。IPC分析部153は、ドラッグ&ドロップされたデータのサイズをIPC通信内容から算出し、そのデータサイズが所定値より大きければ、「2」を返す(ステップS91a)。データサイズが所定値以下であれば、IPC分析部153は、「1」を返す(ステップS93a)。データのコピーが生じない処理内容であれば、IPC分析部153は、「0」を返す(ステップS95a)。
依存関係の有無を判断できないときは、IPC分析部153は、保守的に「2」を返す(ステップS97a)。
ログ作成部157は、IPC分析部153により「1」、または「2」が返されたときに、そのIPCイベントをログ171に記録する。
図15は、本実施形態の解析処理を示すフローチャートである。同図を参照すると、本実施形態の解析処理は、解析部19がステップS155の後にステップS156を実行し、ステップS159の代わりにステップS159aを実行する以外は、第1の実施形態の解析処理と同様である。
ステップS156において、解析部19は、イベントZに対応する「データサイズ」に、イベントWに対応する「データサイズ」を乗算し、乗算した値を、そのWの「依存度」とする。
ステップS159aにおいて、解析部19は、イベントWをイベントZとしたとき、そのイベントZの依存度を算出する。
以上説明したように、本実施形態によれば、コンピュータ1が、ターゲットのデータサイズが大きいほど高く依存度を評価するので、コンピュータ1は、データ間の依存関係の強弱を把握することが可能となる。コンピュータ1は、この依存関係が強いデータを優先的に追跡することにより、データ追跡の効率を更に向上させることができる。
(第3の実施形態)
本発明の第3の実施形態について説明する。図16は、本実施形態のコンピュータ1bの構成を示すブロック図である。同図を参照すると、コンピュータ1bは、監視部15において、動的情報フロー分析部156を更に有する点で、第1の実施形態のコンピュータ1と異なる。
動的情報フロー分析部156は、プロセスによるリソースの読み込みを引き起こすシステムコールと、プロセスによるリソースの書き出しを引き起こすシステムコールを定義した定義情報1561を用いて、プロセスに読み込まれたリソースのデータをプロセスが書き出すまでのプロセス内部でのデータの受け渡しを検査する。
動的情報フロー分析部156は、非特許文献3(Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan Zhou, and Youfeng Wu LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks ACM/IEEE International Symposium on Microarchitecture (MICRO'06), 2006)、または非特許文献4(Prateek Saxena, R. Sekar and Varun Puranik Efficient Fine-Grained Binary Instrumentation with Applications to Taint-Tracking ACM/IEEE International Symposium on Code Generation and Optimization, 2008)に記載の方法により、プロセス内部でのデータの受け渡しを検査する。
より詳細には、動的情報フロー分析部156は、メモリに現在どのような情報が保存されているかを表すタグを対応付けておき、プロセスのメモリ操作処理に対応させてタグを伝播させるコードをプロセスに埋め込み実行させることによって、あるメモリ上のデータが、別のメモリ上のデータに依存するものかどうかを判定する。この手法を用い、動的情報フロー分析部156は、システムコールが、あるリソースAをメモリバッファ上に読み込んだ際に、そのメモリバッファにリソースAに対応するタグを付加する。その後、動的情報フロー分析部156は、そのバッファ上のデータの処理に応じてタグを伝播し、最終的にシステムコールによって、メモリバッファ上の内容が、他のリソースBに書き込まれた場合、そのメモリバッファにリソースAに対応するタグが付加されていれば、リソースBはリソースAに依存することを示す情報を出力する。
本実施の形態においては、IPC分析部153によって依存関係を持つと判定されたIPCに関しては、動的情報フロー分析部156は、IPCに対する入力とIPCから出力の間でもタグを伝播させる。
ログ作成部157は、リソースへの書き出しイベントとIPCイベントとにおいて、そのイベントで出力先(ターゲット)になったリソースやプロセスについて、どのリソースやプロセス(依存元)に由来するデータが出力されたのかを、動的情報フロー分析部156から通知されたタグから特定する。そして、ログ作成部157は、各イベントにおいて、イベントの種類およびターゲットのみならず、その依存元のリソースもログ171に記録する。
解析部19は、調査対象のファイルXが依存するファイルを調べる場合、種類がwriteであり、ターゲットをZXとするファイルを検索する。該当するファイルがない場合、解析部19は、Xに依存するファイルは存在しないと判断する。該当するファイルがあれば、解析部19は、そのファイルに対応づけて記録された依存元のファイルが、Xの依存元であると判断する。
図17は、本実施形態の定義情報1561の内容をまとめた表である。同図を参照すると、定義情報1561には、リソースの読み込みを引き起こすシステムコール(例えば、read)と、リソースの書き出しを引き起こすシステムコール(例えば、write)とが定義されている。定義内容としては、システムコールの名称や、各引数の意味内容(データの受け渡し元なのか、データの受け渡し先なのかなど)である。
図18は、本実施形態のログ171の内容をまとめた表である。同図を参照すると、ログ171には、各イベントにおいて、そのイベントの種類およびターゲットのみならず、その依存元のデータが更に記録される。
図19は、本実施形態のコンピュータ1bの動作を示すフローチャートである。同図を参照すると、本実施形態におけるコンピュータ1bの動作は、コンピュータ1bがステップS11の後に、更にステップS12を実行し、ステップS13、S15の代わりにステップS13c、15cを実行する以外は、第1の実施形態のコンピュータ1の動作を同様である。
ステップS11の後、動的情報フロー分析部156は、プロセス内部のデータの受け渡しを検査し、IPC、またはプロセスのターゲットの依存元のリソースを特定するための情報を出力する(ステップS12)。ログ作成部157は、各イベントにおいて、そのイベントの種類に対応付けて、ターゲットと、依存元のリソースとを記録する(ステップS13c)。
図20は、本実施形態の解析処理(ステップS15c)を示すフローチャートである。同図を参照すると、本実施形態の解析処理は、ステップS155〜S159の代わりに、ステップS154を実行する以外は、第1の実施形態の解析処理と同様である。
解析部19は、種類が「write」で、且つターゲットがファイルXである、イベントZがログ171に記録されていれば(ステップS153:YES)、イベントZの依存元のファイルを、Yに追加する(ステップS154)。ステップS154の後、解析部19は、ステップS161を実行する。
以上説明したように、本実施形態によれば、コンピュータ1bは、データの書き出しを引き起こすシステムコールについて、データの受け渡し元の引数を定義した定義情報に基づいて、書き出されたアクセス対象データに対応付けて、受け渡し元の引数に設定されたアクセス対象データを、コピー元として更に記録するので、データの流れの追跡が更に容易となる。
例えば、第1の実施形態にかかる図3において、調査対象ファイル(ccc.doc)について、依存元として、3つのファイル(aaa.txt、bbb.doc、ccc.doc)が取得されたが、本実施形態における図18において、同じターゲット(ccc.doc)について、依存元として、2つのファイル(aaa.txt、ccc.doc)しか取得されない。これは、第1の実施形態では、コンピュータ1は、プロセス間のデータの受け渡しは検知するが、プロセス内部でのデータの受け渡し(メモリとメモリバッファとの間のデータの受け渡しなど)までは検知しないためである。このため、第1の実施形態のコンピュータ1は、実際に調査対象ファイル(ccc.doc)に依存しないファイル(bbb.doc)まで依存元とし、本実施形態よりも過剰な依存関係を取得していた。
しかし、本実施形態では、コンピュータ1bは、動的情報フロー分析部156によって、ドラッグ&ドロップ元の文書を特定することができ、過剰な依存関係の生成を更に抑制しているため、データの編集が進み、依存関係を持つリソースの数が増える場合であっても、コンピュータ1bはデータを正確に追跡できる。
(第4の実施形態)
本発明の第4の実施形態について説明する。図21は、本実施形態のコンピュータ1cの構成を示すブロック図である。同図を参照すると、コンピュータ1cは、監視部15において、セキュリティレベル判定部150を更に有する点で第1の実施形態のコンピュータ1と異なる。
セキュリティレベル判定部150は、読み込み対象のリソースのセキュリティレベル(機密性の高さ)を判定する。
判定の基準としては、例えば、セキュリティレベル判定部150は、特定のディレクトリに格納されているファイルは、そうでないファイルよりセキュリティレベルが高いものと判定する。また、セキュリティレベル判定部150は、特開2006−209649号公報に記載のように、読み込んだファイルの内容に応じて、セキュリティレベルの高さを判定する。
ログ作成部157は、各イベントに対応付けて、セキュリティレベルを更に記録する。
解析部19は、調査対象ファイルの読み込み(read)元のファイルを検索したとき、その調査対象ファイルより低いセキュリティレベルのファイルのみを依存元とする。
図22は、本実施形態のログ171の内容をまとめた表である。同図に示すように、ログ171には、各イベントに対応付けて、各ターゲットのセキュリティレベルが更に記録される。セキュリティレベルは、例えば、「0」(機密保持の必要なし)、「1」(機密保持の必要あり)の2段階とする。
図23は、本実施形態のコンピュータ1cの動作を示すフローチャートである。同図を参照すると、コンピュータ1cの動作は、セキュリティレベル判定部150が、読み込み元のリソースのセキュリティレベルを取得(ステップS3)した後、ステップS5を実行する以外は、第1の実施形態のコンピュータ1の動作と同様である。
図24は、本実施形態の解析処理を示すフローチャートである。同図を参照すると、本実施形態の解析処理は、解析部19がステップS155の代わりにステップS154、S155cを実行する以外は、第1の実施形態の解析処理と同様である。
解析部19は、イベントZがあった場合(ステップS153:YES)、イベントZより前のイベントであって、イベントZと同じプロセス名に対応付けられた「read」イベントWを検索する(ステップS154)。そして、解析部19は、イベントZに対応するセキュリティレベルより、イベントWに対応するセキュリティレベルが低ければ、検索したイベントWを集合Yに追加する(ステップS155c)。
以上説明したように、本実施形態によれば、セキュリティレベル判定部150が、読み込み元のリソースのセキュリティレベルを取得し、解析部19が、所定値以上のセキュリティレベルのファイル間の依存関係のみを取得するので、セキュリティレベルが比較的低いファイル間の依存関係の取得を省く結果、コンピュータ1cは、データ追跡の効率をより向上させることができる。
(第5の実施形態)
本発明の第5の実施形態について説明する。本実施形態のコンピュータ1cの構成は、ログ作成部157が、セキュリティレベルが所定値以下のアクセスイベントについては、記録しない以外は、第4の実施形態のコンピュータ1cと同様である。
図25は、本実施形態のコンピュータ1cの動作を示すフローチャートである。同図を参照すると、コンピュータ1cの動作は、ログ作成部157が、ステップS13の代わりにステップS13dを実行する以外は、第1の実施形態のコンピュータ1の動作と同様である。
ステップS11の後、ログ作成部157は、セキュリティレベルが所定値より低いイベントの記録は破棄し、セキュリティレベルが所定値以上のアクセスイベントのみを記録する(ステップS13d)。
以上説明したように、本実施形態によれば、セキュリティレベルの高い情報に関わる重要なイベントのみに着目するので、データ追跡の能率が向上する。また、コンピュータ1cは、ログ171のサイズを抑えることができる。
(第6の実施形態)
本発明の第6の実施形態について説明する。図26は、本実施形態のコンピュータ1eの構成を示すブロック図である。同図を参照すると、コンピュータ1eは、IO仲介部11を更に有する点で第4の実施形態のコンピュータ1cと異なる。
セキュリティレベル判定部150は、データの書き出し先のリソースのセキュリティレベルを更に取得する。
書き出し先のリソースのセキュリティレベルの判定において、セキュリティレベル判定部150は、例えば、USB(Universal Serial Bus)メモリなど、特定の記憶装置は、それ以外の記憶装置よりセキュリティレベルの低いものとする。また、セキュリティレベル判定部150は、特定のディレクトリは、それ以外のディレクトリよりセキュリティレベルが高いものとする、あるいは低いものと判定する。セキュリティレベル判定部150は、特定のサーバに対するHTTPS(Hypertext Transfer Protocol over Secure Socket layer)送信は、不特定のサーバに対する送信よりセキュリティレベルが高いものと判定する。
IO仲介部11は、IO仲介部11は、リソースへの書き出しのIOを仲介した際に、書き出し先のリソースのセキュリティレベルが、読み込み元(書き出し先の依存元)のセキュリティレベルよりも低い場合は、そのシステムコール呼び出しを失敗させることによって書き出しを禁止する。
図27は、本実施形態のコンピュータ1eの動作を示すフローチャートである。同図を参照すると、コンピュータ1eの動作は、IO仲介処理(ステップS1)を実行した後、ステップS5を実行する以外は、第1の実施形態のコンピュータ1の動作と同様である。
図28は、本実施形態のIO仲介処理の動作を示すフローチャートである。同図を参照すると、セキュリティレベル判定部150は、readプロセスが実行されたか否かを判断する(ステップS101)。readプロセスが実行されたのであれば(ステップS101:YES)、セキュリティレベル判定部150は、読み込み元のセキュリティレベルを取得する(ステップS103)。
readプロセスが実行されたのでない場合(ステップs101:NO)、またはステップS103の後、セキュリティレベル判定部150は、読み出したデータを書き出す、writeプロセスが実行されたか否かを判断する(ステップS105)。writeプロセスが実行されたのであれば(ステップS105:YES)、セキュリティレベル判定部150は、書き出しのセキュリティレベルを取得する(ステップS107)。
IO仲介部11は、読み込み元のリソースのセキュリティレベルより、読み込み元のリソースより、書き出し先のリソースのセキュリティレベルが、高いか否かを判断する(ステップS109)。
読み込み元より、書き出し先のリソースのセキュリティレベルが高いのであれば(ステップS109:YES)、IO仲介部11は、そのリソースへのデータの書き出しを禁止する(ステップS111)。ステップS111の後、コンピュータ1eは、IO仲介処理を終了する。
なお、本実施の形態では、機密情報が外部に流出することのみを防ぐ構成になっているが、ユーザにもセキュリティレベルを定義しておき、機密情報を読むことができるユーザのみ機密情報を読みこみ可能にする構成をとることもできる。例えば、ユーザが起動したプロセスに対して、そのユーザのセキュリティレベルを割り振っておき、IO仲介部11は、プロセスのセキュリティレベルよりも高いセキュリティレベルを持つリソースの読み込みは禁止するように構成すればよい。このようにすれば、ユーザのセキュリティレベルよりも高いセキュリティレベルを持つリソースを読み込もうとしても失敗するため、そのユーザに対する機密情報の開示を防止できる。
以上説明したように、本実施形態によれば、IO仲介部11が、書き出し元のリソースのセキュリティレベルが、読み込み元のリソースのセキュリティレベルより高ければ、リソースへ書き出しを許可するので、機密性の高い(セキュリティレベルの高い)データが機密性の低い(セキュリティレベルの低い)リソースに書き出されることを未然に防ぐことができる。
非特許文献1に示したように、機密性の高いファイルのUSBメモリへの書き出しのみを禁止するツールは実用化されているが、これらはファイルの内容が暗号化などによって機密性が判定できないほど改変されていた場合は、正しく動作しない。これに対して、本実施形態のコンピュータ1eは、プロセス間のデータのやり取りを追跡するため、機密性が判定できないほど改変される前のセキュリティレベルに基づいて、正しく書き込みを禁止することができる。
システムコールを失敗させることによってシステムが不安定になる可能性は低い。ファイルオープンやネットワーク接続を起こすシステムコールは、(ファイルパーミッションの不足やネットワーク接続エラーなどによって)失敗することは良くあるので、アプリケーション側でシステムコール失敗時の適切な処理が書かれているのが普通であるが、IPCを起こすシステムコールは、それらと比較すると失敗することは少ないため、アプリケーション側でシステムコール失敗時の処理が適切に書かれていない場合が多い。そのため、IPCを行うシステムコールを失敗させることは、既存のアプリケーションの動作を不安定にさせる(例えば、そのアプリケーションソフトウェアがクラッシュする)可能性がある。
しかしながら、本実施の形態は、プロセスのファイルやネットワークへのアクセスは制御するものの、IPCの制御はしないという特徴があり、その結果、既存のアプリケーションの動作を不安定にさせる可能性を最小にしつつ、機密データの漏洩を防止することができる。
(第7の実施形態)
本発明の第7の実施形態について説明する。図29は、本実施形態のコンピュータ1fの構成を示すブロック図である。同図を参照すると、コンピュータ1fは、暗号化部12、復号部13、および鍵管理部14を更に有する点で第1の実施形態のコンピュータ1fと異なる。
暗号化部12は、リソースへデータを書き出すとき、書き出し先のリソースのセキュリティレベルが所定値以上であれば、セキュリティレベルに応じた鍵で、ターゲットのデータを暗号化する。
復号部13は、リソースから読み出したデータが暗号化されているか否かを判断する。例えば、暗号化されたファイルやネットワークパケットには特定のヘッダを付加されるようにしておき、復号部13は、読み出したデータのヘッダを検査することで、暗号化の有無を判断する。暗号化されていれば、復号部13は、鍵管理部14から鍵を取得してデータを復号する。
鍵管理部14は、ファイルを暗号化し、復号するための鍵を管理する。
本実施形態のコンピュータ1fは、第6の実施形態と同様、ステップS5の前に、IO仲介処理(ステップS1)を実行する。
図30は、本実施形態のIO仲介処理を示すフローチャートである。同図を参照すると、復号部13は、readプロセスが実行されたか否かを判断する(ステップS101)。readプロセスが実行されたのであれば(ステップS101:YES)、復号部13は復号処理を実行する(ステップS102)。
readプロセスが実行されたのでない場合(ステップs101:NO)、またはステップS102の後、復号部13は、writeプロセスが実行されたか否かを判断する(ステップS105)。writeプロセスが実行されたのであれば(ステップS105:YES)、暗号化部12は、暗号化処理を実行する(ステップS106)。writeプロセスが実行されたのでない場合(ステップS105:NO)、またはステップS106の後、コンピュータ1fは、IO仲介処理を終了する。
図31は、復号処理を示すフローチャートである。同図を参照すると、復号部13は、readプロセスにより、読み出されたデータが暗号化されているか否かを判断する(ステップS121)。
データが暗号化されていれば(ステップS121:YES)、復号部13は、鍵管理部14から鍵を取得し、その鍵でデータを復号する(ステップS123)。そして、復号部13は、そのデータのセキュリティレベルを1に設定する(ステップS125)。
データが暗号化されていなければ(ステップS121:NO)、復号部13は、そのデータのセキュリティレベルを0に設定する(ステップS127)。ステップS125、S127の後、復号部13は、復号処理を終了する。
図32は、暗号化処理を示すフローチャートである。同図を参照すると、暗号化部12は、書き出し処理における、ターゲットのデータに設定されたセキュリティレベルを取得する(ステップS161)。暗号化部12は、取得したセキュリティレベルが1であるか否かを判断する(ステップS163)。
セキュリティレベルが1であれば(ステップS163:YES)、暗号化部12は、鍵管理部14から鍵を取得し、ターゲットのデータを暗号化する(ステップS165)。セキュリティレベルが1でない場合(ステップS163:NO)、またはステップS165の後、暗号化部12は、暗号化処理を終了する。
なお、本実施の形態では、煩雑さを避けるため、全ての機密なリソースが鍵管理部14で管理している同一の鍵で暗号化されるという構成で説明したが、暗号化部12は、各データをそれぞれランダムに生成された個別の鍵で暗号化するように構成してもよい。また、公開鍵暗号方式を使って復号部13でのみ秘密鍵を使うようにしてもよい。
また、本実施の形態では、セキュリティレベルは2段階(「0」、「1」)としたが、3段階以上のセキュリティレベルを設定してもよい。この場合、コンピュータ1fは、セキュリティレベルに対応する情報をヘッダに記録しておき、セキュリティレベルに応じて鍵を変更すればよい。
更に、本実施形態では、機密情報が平文で外部に流出することのみを防ぐ構成になっているが、ユーザにもセキュリティレベルを定義しておき、機密情報を読むことができるユーザのみ機密情報を読みこみ可能にする構成をとることもできる。例えば、ユーザが起動したプロセスに対しては、そのユーザのセキュリティレベルを割り振っておき、復号部13は、プロセスのセキュリティレベルよりも高いセキュリティレベルに対応する鍵は配付しないようにする。このようにすれば、ユーザのセキュリティレベルよりも高いセキュリティレベルを持つリソースを読み込もうとしても復号できないため、そのユーザに対する機密情報の開示を防止できる。
以上説明したように、本実施形態によれば、コンピュータ1fは、機密情報を暗号化して書き出すので、機密情報がUSBメモリやメールなどで外部に流出することがあっても、鍵が漏洩しない限り、データの機密性を保つことができる。
同様の技術は、Microsoft Office2003(登録商標)に実装されているIRM (Information Rights Management)のような、いわゆるERM(Enterprise Rights Management)/DRM(Digital Rights Management)ツールによって実現することができる。しかし、ERM/DRMツールはこのような動作を実現するための処理をアプリケーションソフトウェアに組み込むことで実現しているため、対応可能なアプリケーションソフトウェアに制限がある。これに対して、本実施形態のコンピュータ1fは、アプリケーションソフトウェアに依存せずに動作する。
なお、上記の各実施形態では、コンピュータ1が、ログの記録と、依存関係の解析とを両方とも行う構成としているが、それぞれの実施形態において、図33に示すように、ログの記録と、依存関係の解析とを別々の装置(1、2)が行う構成としてもよい。
この出願は、2008年12月8日に出願された日本出願特願2008−312242を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
1、1c、1e、1f コンピュータ
2 解析装置
12 暗号化部
13 復号部
14 鍵管理部
15 監視部
17 記憶部
19 解析部
150 セキュリティレベル判定部
151 IPC監視部
153 IPC分析部
155 IO監視部
156 動的情報フロー分析部
157 ログ作成部
171 ログ
193 解析結果
1561 定義情報
S5〜S15、S71〜S75、S91〜S95、S151〜S165、S9a、S91a〜S97a、S159a、S13c、S15c、S155c、S13d、S101〜S111、S121〜S127、S161〜S165 ステップ

Claims (10)

  1. プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知するプロセス間通信検知手段と、
    プロセスによる前記リソース内のデータへのアクセスイベントを順次検知するアクセス検知手段と、
    前記アクセス検知手段により検知された前記アクセスイベント毎に、該アクセスイベントにおけるアクセス対象のデータを記録する記録手段と、
    前記記録手段により記録された前記アクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索し、検索したデータ間に依存関係を付与する解析手段と、
    を有するデータ依存関係解析装置。
  2. 前記プロセス間通信検知手段は、プロセス間通信で使用されるプロトコルの種類と、該プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知する、請求項1に記載のデータ依存関係解析装置。
  3. 前記記録手段は、前記アクセス対象データの容量を前記アクセスイベントに更に対応付けて記録し、
    前記解析手段は、前記コピー元のデータと前記コピー先のデータとに対応付けられた前記容量に基づいて前記依存関係の度合いを更に定める、請求項1又は2に記載のデータ依存関係解析装置。
  4. 前記解析手段は、前記プロセス間通信検知手段より検知された前記プロセス間通信における通信先のプロセスにより、リソースへ書き出されたデータを検索して前記コピー先のデータとし、該プロセス間通信における通信元のプロセスにより、該コピー先のデータが書き出されるより前にリソースから読み出されたデータを検索して前記コピー元のデータとする、請求項1乃至3のいずれか1項に記載のデータ依存関係解析装置。
  5. リソースへデータを書き出すプロセスにより呼び出される書き出しシステムコールと、該書き出しシステムコールにおいて受け渡し元のデータが設定される引数とを定義した定義情報を更に有し、
    前記記録手段は、前記定義情報に基づいて、前記書き出しシステムコールがプロセスにより呼び出されたとき、前記引数に設定された前記受け渡し元のデータを、前記アクセス対象のデータに対応づけて更に記憶し、
    前記解析手段は、前記プロセス間通信検知手段より検知された前記プロセス間通信における通信先のプロセスにより、リソースへ書き込まれたデータを検索して前記コピー先のデータとし、該コピー先のデータに対応付けられた前記受け渡し元のデータを前記コピー元のデータとする、請求項1乃至3のいずれか1項に記載のデータ依存関係解析装置。
  6. 前記リソースには、機密性の高さを示すセキュリティレベルが設定されており、
    前記リソースからデータが読み出されたとき、該リソースに設定されたセキュリティレベルを取得するセキュリティレベル取得手段を更に有し、
    前記記録手段は、前記セキュリティレベル取得手段により取得された前記セキュリティレベルを前記アクセ対象データに更に対応付けて記録し、
    前記解析手段は、所定値より高い前記セキュリティレベルが対応づけられたアクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索する、請求項1乃至5のいずれか1項に記載のデータ依存関係解析装置。
  7. 前記セキュリティレベル取得手段は、データをリソースへ書き出すとき、該リソースに設定されたセキュリティレベルを更に取得し、
    読み出し元のリソースから読み出したデータを書き出し先のリソースへ書き出すとき、該書き出し先のリソースについて前記セキュリティレベル取得手段により取得されたセキュリティレベルが、該読み出し元のリソースについて前記セキュリティレベル取得手段により取得されたセキュリティレベルより低ければ、該データを書き出す書き出し手段を更に有する、請求項6に記載のデータ依存関係解析装置。
  8. リソースへデータを書き出すとき、該リソースに設定されたセキュリティレベルを取得し、該セキュリティレベルが所定値以上であれば、該データを暗号化して該リソースへ書き出す暗号化手段と、
    前記暗号化手段により書き出された前記データを前記リソースから読み出すとき、該リソースに設定された前記セキュリティレベルを取得し、該セキュリティレベルに基づいて該データを復号する復号手段と、
    請求項6に記載のデータ依存関係解析装置。
  9. プロセス間通信検知手段が、プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知し、
    アクセス検知手段が、プロセスによる前記リソース内のデータへのアクセスイベントを順次検知し、
    記録手段が、前記アクセス検知手段により検知された前記アクセスイベント毎に、該アクセスイベントにおけるアクセス対象のデータを記録し、
    解析手段が、前記記録手段により記録された前記アクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索し、検索したデータ間に依存関係を付与する、データ依存関係解析方法。
  10. コンピュータに、
    プロセス間通信における処理内容に基づいて、リソース間でコピーされるデータを受け渡すプロセス間通信を検知するプロセス間通信検知手順、
    プロセスによる前記リソース内のデータへのアクセスイベントを順次検知するアクセス検知手順、
    前記アクセス検知手順で検知された前記アクセスイベント毎に、該アクセスイベントにおけるアクセス対象のデータを記録する記録手順、及び
    前記記録手順で記録された前記アクセス対象のデータのうち、前記プロセス間通信検知手段により検知された前記プロセス間通信において受け渡された前記データのコピー元とコピー先に該当するデータを検索し、検索したデータ間に依存関係を付与する解析手順、
    を実行させるためのプログラム。
JP2010542072A 2008-12-08 2009-11-25 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム Active JP5387584B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010542072A JP5387584B2 (ja) 2008-12-08 2009-11-25 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008312242 2008-12-08
JP2008312242 2008-12-08
JP2010542072A JP5387584B2 (ja) 2008-12-08 2009-11-25 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム
PCT/JP2009/069837 WO2010067703A1 (ja) 2008-12-08 2009-11-25 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2010067703A1 JPWO2010067703A1 (ja) 2012-05-17
JP5387584B2 true JP5387584B2 (ja) 2014-01-15

Family

ID=42242693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542072A Active JP5387584B2 (ja) 2008-12-08 2009-11-25 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム

Country Status (3)

Country Link
US (1) US9027123B2 (ja)
JP (1) JP5387584B2 (ja)
WO (1) WO2010067703A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US8566937B2 (en) 2010-10-04 2013-10-22 Panasonic Corporation Information processing apparatus and method for preventing unauthorized cooperation of applications
KR20120050742A (ko) * 2010-11-11 2012-05-21 삼성에스디에스 주식회사 커널 네이티브 에이피아이의 후킹 처리를 통한 디지털 저작권 관리 장치 및 방법
JP5865180B2 (ja) * 2012-05-29 2016-02-17 Kddi株式会社 携帯通信端末、データ通信検知装置、データ通信検知方法、およびプログラム
US8924443B2 (en) * 2012-10-05 2014-12-30 Gary Robin Maze Document management systems and methods
AU2014318585B2 (en) * 2013-09-12 2018-01-04 Virsec Systems, Inc. Automated runtime detection of malware
CN107077412B (zh) 2014-06-24 2022-04-08 弗塞克系统公司 单层或n层应用的自动化根本原因分析
WO2015200511A1 (en) 2014-06-24 2015-12-30 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
US10326748B1 (en) 2015-02-25 2019-06-18 Quest Software Inc. Systems and methods for event-based authentication
US10417613B1 (en) 2015-03-17 2019-09-17 Quest Software Inc. Systems and methods of patternizing logged user-initiated events for scheduling functions
US10536352B1 (en) 2015-08-05 2020-01-14 Quest Software Inc. Systems and methods for tuning cross-platform data collection
KR102419574B1 (ko) 2016-06-16 2022-07-11 버섹 시스템즈, 인코포레이션 컴퓨터 애플리케이션에서 메모리 손상을 교정하기 위한 시스템 및 방법
US10642988B2 (en) * 2016-08-04 2020-05-05 Honeywell International Inc. Removable media protected data transfer in a cyber-protected system
CN110659386B (zh) * 2019-09-12 2022-11-22 北京达佳互联信息技术有限公司 数字资源处理方法、装置、电子设备及存储介质
CN111158741B (zh) * 2019-12-23 2024-04-12 北京五八信息技术有限公司 监控业务模块对第三方类库依赖关系变化的方法及装置
CN111556503B (zh) * 2020-03-30 2024-06-18 三六零数字安全科技集团有限公司 一种基于Windows操作系统的个人WIFI热点管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887440A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ入出力管理装置及びデータ入出力管理方法
JP2002232451A (ja) * 2001-02-02 2002-08-16 Layer Seven Co Ltd 通信管理方法、通信監視装置、および、コンピュータシステム
JP2005250649A (ja) * 2004-03-02 2005-09-15 Nec Corp プロセス間通信アクセス制御方式及び方法
JP2005275669A (ja) * 2004-03-24 2005-10-06 Nec Corp データ監視方法、情報処理装置、プログラム及び記録媒体、並びに情報処理システム
JP2008027389A (ja) * 2006-07-25 2008-02-07 Nec System Technologies Ltd 文書データ移動追跡システム、文書データ移動追跡方法および文書データ移動追跡プログラム

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652885A (en) * 1993-05-25 1997-07-29 Storage Technology Corporation Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
US5870467A (en) * 1994-09-16 1999-02-09 Kabushiki Kaisha Toshiba Method and apparatus for data input/output management suitable for protection of electronic writing data
US5913041A (en) * 1996-12-09 1999-06-15 Hewlett-Packard Company System for determining data transfer rates in accordance with log information relates to history of data transfer activities that independently stored in content servers
IL120420A (en) * 1997-03-10 1999-12-31 Security 7 Software Ltd Method and system for preventing the downloading and execution of executable objects
US6226694B1 (en) * 1998-04-29 2001-05-01 Hewlett-Packard Company Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6192410B1 (en) * 1998-07-06 2001-02-20 Hewlett-Packard Company Methods and structures for robust, reliable file exchange between secured systems
US6807388B1 (en) * 1999-02-26 2004-10-19 Matsushita Electric Industrial Co., Ltd. Data monitoring method, data monitoring device, copying device, and storage medium
SE517808C2 (sv) * 2000-11-16 2002-07-16 Protegrity Res & Dev Kombinerad hårdvaru- och mjukvarubaserad kryptering av databaser
JP3431017B2 (ja) 2001-01-19 2003-07-28 松下電工株式会社 キッチンカウンター
JP3927376B2 (ja) 2001-03-27 2007-06-06 日立ソフトウエアエンジニアリング株式会社 データ持ち出し禁止用プログラム
US20030120936A1 (en) * 2001-08-01 2003-06-26 Eft Datalink Encryption of financial information
US7814021B2 (en) * 2003-01-23 2010-10-12 Verdasys, Inc. Managed distribution of digital assets
US7356594B2 (en) * 2003-10-03 2008-04-08 Motorola, Inc. Interprocessor communication protocol providing intelligent targeting of nodes
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
WO2005048470A2 (en) * 2003-11-12 2005-05-26 The Trustees Of Columbia University In The City Ofnew York Apparatus method and medium for tracing the origin of network transmissions using n-gram distribution of data
US7441249B2 (en) * 2003-11-13 2008-10-21 International Business Machines Corporation Activity monitoring without accessing a process object
US7774604B2 (en) * 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US7571302B1 (en) * 2004-02-04 2009-08-04 Lei Chen Dynamic data dependence tracking and its application to branch prediction
US20050182966A1 (en) * 2004-02-17 2005-08-18 Duc Pham Secure interprocess communications binding system and methods
JP2006031109A (ja) * 2004-07-12 2006-02-02 Ntt Docomo Inc 管理システム及び管理方法
JP4322763B2 (ja) 2004-09-22 2009-09-02 Necシステムテクノロジー株式会社 文書ファイルコピー移動監視システム、方法及びプログラム
JP4628073B2 (ja) 2004-11-30 2011-02-09 株式会社エヌ・ティ・ティ・ドコモ アクセス制御装置及びアクセス制御方法
US7539132B2 (en) * 2005-01-21 2009-05-26 At&T Intellectual Property Ii, L.P. Methods, systems, and devices for determining COS level
US20070266390A1 (en) * 2005-10-31 2007-11-15 Mark Emmerich Automated management of application-specific tasks from the Internet via distributed task manager agents in a local area network
US20070113282A1 (en) * 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
US20070198420A1 (en) * 2006-02-03 2007-08-23 Leonid Goldstein Method and a system for outbound content security in computer networks
EP1892620B1 (en) * 2006-08-21 2017-04-19 BlackBerry Limited Auditing application activities
CN101281461B (zh) * 2007-04-04 2012-07-04 国际商业机器公司 用于迁移应用所依赖的系统环境的方法和装置
US20090063587A1 (en) * 2007-07-12 2009-03-05 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
US20090024424A1 (en) * 2007-07-16 2009-01-22 Antony Raja T System and method for dynamic linking of business processes
US8464270B2 (en) * 2007-11-29 2013-06-11 Red Hat, Inc. Dependency management with atomic decay
WO2009096970A1 (en) * 2008-01-31 2009-08-06 Hewlett-Packard Development Company, L.P. Automated application dependency mapping
US8826443B1 (en) * 2008-09-18 2014-09-02 Symantec Corporation Selective removal of protected content from web requests sent to an interactive website
US20100088137A1 (en) * 2008-10-06 2010-04-08 Klaus Weiss Work lists and cockpit to control complex processes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887440A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ入出力管理装置及びデータ入出力管理方法
JP2002232451A (ja) * 2001-02-02 2002-08-16 Layer Seven Co Ltd 通信管理方法、通信監視装置、および、コンピュータシステム
JP2005250649A (ja) * 2004-03-02 2005-09-15 Nec Corp プロセス間通信アクセス制御方式及び方法
JP2005275669A (ja) * 2004-03-24 2005-10-06 Nec Corp データ監視方法、情報処理装置、プログラム及び記録媒体、並びに情報処理システム
JP2008027389A (ja) * 2006-07-25 2008-02-07 Nec System Technologies Ltd 文書データ移動追跡システム、文書データ移動追跡方法および文書データ移動追跡プログラム

Also Published As

Publication number Publication date
WO2010067703A1 (ja) 2010-06-17
JPWO2010067703A1 (ja) 2012-05-17
US20110239309A1 (en) 2011-09-29
US9027123B2 (en) 2015-05-05

Similar Documents

Publication Publication Date Title
JP5387584B2 (ja) データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム
US8914892B2 (en) Method and system to enhance accuracy of a data leak prevention (DLP) system
US10447560B2 (en) Data leakage protection in cloud applications
JP4759513B2 (ja) 動的、分散的および協働的な環境におけるデータオブジェクトの管理
US9542563B2 (en) Accessing protected content for archiving
US10289694B1 (en) Method and system for restoring encrypted files from a virtual machine image
JP5306348B2 (ja) データ発信源の追跡及びデータ伝送の制御
US20110060915A1 (en) Managing Encryption of Data
JP2022522645A (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
JP2015527803A (ja) クラウド・コンピューティング環境での暗号化のためのユーザ端末装置及び暗号化方法
US8904359B2 (en) On-demand monitoring of memory usage
US11295027B2 (en) System and method for protecting electronic documents containing confidential information from unauthorized access
Birrell et al. SGX enforcement of use-based privacy
JP3976738B2 (ja) 機密文書管理装置、機密文書管理方法および機密文書管理プログラム
JP6256781B2 (ja) システムを保護するためのファイルセキュリティ用の管理装置
JP4471129B2 (ja) 文書管理システム及び文書管理方法、文書管理サーバ、作業端末、並びにプログラム
US8738905B2 (en) Third party secured storage for web services and web applications
JP4802732B2 (ja) データ通信監視プログラム、システム及び方法
US20180316649A1 (en) Browser drag and drop file upload encryption enforcement
US20180314844A1 (en) Browser drag and drop file upload encryption enforcement
US12105809B2 (en) Non-intrusive method of detecting security flaws of a computer program
KR101469803B1 (ko) 데이터 보안장치, 이를 구비하는 단말기 및 데이터 보안 방법과 컴퓨터로 읽을 수 있는 기록매체
Bates et al. Secure and trustworthy provenance collection for digital forensics
Ray Developing a proactive digital forensics system
JP6053182B2 (ja) トレースシステム及びトレース方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130923

R150 Certificate of patent or registration of utility model

Ref document number: 5387584

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250