JP7391802B2 - 情報処理装置、情報処理方法及びコンピュータプログラム - Google Patents

情報処理装置、情報処理方法及びコンピュータプログラム Download PDF

Info

Publication number
JP7391802B2
JP7391802B2 JP2020153265A JP2020153265A JP7391802B2 JP 7391802 B2 JP7391802 B2 JP 7391802B2 JP 2020153265 A JP2020153265 A JP 2020153265A JP 2020153265 A JP2020153265 A JP 2020153265A JP 7391802 B2 JP7391802 B2 JP 7391802B2
Authority
JP
Japan
Prior art keywords
environment
data
information
data range
access
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
JP2020153265A
Other languages
English (en)
Other versions
JP2022047380A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2020153265A priority Critical patent/JP7391802B2/ja
Priority to US17/249,323 priority patent/US11714896B2/en
Publication of JP2022047380A publication Critical patent/JP2022047380A/ja
Application granted granted Critical
Publication of JP7391802B2 publication Critical patent/JP7391802B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明の実施形態は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
近年、制御システムを狙ったサイバー攻撃が一般化しており、セキュリティ対策が急務である。制御システムでは機器が外部ネットワークに接続されない場合も多く、可用性の観点から極力、ソフトウェアアップデートを避ける傾向がある。そこでセキュリティ対策にも、パターンファイルの更新が必要のないホワイトリスト型の実行制御技術が広く利用されている。また、計算機内に信頼できるプログラムと、信頼できないプログラムが混在する場合に、信頼できないプログラムを隔離して実行するためのサンドボックス技術が広く利用されている。
サンドボックス技術を用いた例として、プログラムの起動時にあらかじめ設定されたアクセス制御ポリシを参照して、サンドボックス内でプログラムを動作させるか、サンドボックス外でプログラムを動作させるかを決定する技術が知られている。
この技術によれば、信頼できないプログラムをサンドボックス内で実行することができる。しかし、アクセス制御ポリシを参照した処理を行うか否かは、実行対象のプログラムがサンドボックス内で動作しているか、サンドボックス外で動作しているかによって決定されてしまい、柔軟なアクセス制御を行うことができない。
特許第5423063号公報
本発明の実施形態は、対象データへのアクセス制御を柔軟に変更可能な情報処理装置、情報処理方法及びコンピュータプログラムを提供する。
本実施形態に係る情報処理装置は、対象データへのアクセス要求を検知するアクセス検知部と、前記対象データの位置情報と、照合対象となるデータ範囲とに基づいて、前記対象データへのアクセスが許可されるか否かの情報との照合の要否を判定する判定部と、を備える。
第1の実施形態に係るホストシステムの一例を示す図。 第1の実施形態に係るホストシステムの一例を示す図。 第1の実施形態に係るアクセス制御装置の一例を示す図。 第1の実施形態に係る環境起動プロセステーブルの一例を示す図。 第1の実施形態に係るプロセステーブルの一例を示す図。 第1の実施形態に係る照合対象ディレクトリ表の一例を示す図。 第1の実施形態に係る環境起動時の処理手順の一例を示すフローチャート。 第1の実施形態に係るアクセス制御の処理手順の一例を示すフローチャート 第1の実施形態に係るアクセス制御装置の変形例を示す図。 第1の実施形態の変形例に係るプロセステーブルの一例を示す図。 第1の実施形態の変形例に係るアクセス制御の処理手順の一例を示すフローチャート。 第1の実施形態の変形例に係るプロセス起動時の処理手順の一例を示すフローチャート。 第1の実施形態の変形例に係る環境起動時の処理手順の一例を示すフローチャート。 第2の実施形態に係るアクセス制御装置の一例を示す図。 第2の実施形態に係るプロセステーブルの一例を示す図。 第2の実施形態に係る環境起動プロセステーブルの一例 第2の実施形態に係るプロセステーブルの他の例を示す図。 第2の実施形態に係る環境起動時の処理手順の一例を示すフローチャート。 第2の実施形態のプロセス終了時の処理手順の一例を示すフローチャート。
以下に図面を参照しつつ、本発明の実施形態について説明する。以下の説明では、同一または類似の要素には同一の符号が付され、同じ説明は基本的に省略される。例えば、複数の図において、対応する要素には同じ符号を付して、詳細な説明を省略する場合もある。
(第1の実施形態)
図1は本実施形態に係るホストシステム1の内部構成の一例を示す図である。ホストシステム1内には複数の環境(環境1及び環境2)と、CPU(Central Processing Unit)によってOS(Operating System)上で実行されるプログラムD(プロセスD)と、アクセス制御装置11と、記憶装置12(記憶部)とが設けられている。プログラムの実行単位のことをプロセスと呼び、以下ではプログラムDのことをプロセスDとも呼ぶ。
アクセス制御装置11は本実施形態に係る情報処理装置であり、ホストシステム1上で直接動作している。アクセス制御装置11は一例としてCPU等のプロセッサにプログラムを実行させることで実現できる。
記憶装置12には、本実施形態に係るデータの一例であるファイル、アクセス制御装置11が照合に用いるリスト、OSが生成する情報又はデータ、アクセス制御装置11が生成する情報、データ、テーブル等が格納されている。記憶装置12は、揮発性又は不揮発性のメモリ、ハードディスク、SSD、光デバイス、磁気記憶装置など任意の記録媒体を含む。
照合に用いるリストにはアクセスが許可された又は許可されていないデータ(ファイル等)に関する情報が含まれている。照合に用いるリストの情報の例として、ファイルの識別子、ファイルパスなどがある。リストに含める情報の詳細は後述する。アクセスが許可されたファイルに関する情報を含むリストはホワイトリストと呼ばれる。アクセスが許可されていないファイルに関する情報を含むリストはブラックリストと呼ばれる。リストは環境ごとに設けられてもよいし、複数の環境に共通に設けられてもよいし、その他の基準で設けられてもよい。
環境1及び環境2は、一例としてOS上で構築された仮想的な環境である。環境1又は環境2はサンドボックスでもよい。環境1及び環境2は同じOS上で構築される場合、異なるOS上で構築される場合のいずれもあり得る。環境1内ではプログラムAが実行されており、以下では、環境1内で実行されるプログラムAのことをプロセスAとも呼ぶ。環境2内ではプログラムB、Cが実行されており、以下では環境2内で実行されるプログラムB、CのことをプロセスB、Cとも呼ぶ。プロセスBとプロセスC間には親子関係があってもよい。環境1内で動作するプログラムA(プロセスA)は、環境1が起動された際の設定(ルートディレクトリ等)によって定められるデータ範囲に属するデータ(ファイル等)にアクセス可能である。環境2内のプログラムB(プロセスB)、プログラムC(プロセスC)についてもプログラムAと同様、環境2が起動された際の設定によって定められるデータ範囲に属するデータ(ファイル等)にアクセス可能である。つまり、記憶装置12に格納されているファイルのうち、当該データ範囲に属するファイルにアクセス可能である。但し、アクセス制御装置11によって照合の対象になったファイルについては照合で許可された場合にのみアクセス可能になるなど、アクセスが許可されない場合もあり得る。
プログラムDはホストシステム1上で直接動作しており、基本的に記憶装置12内のすべてのファイルにアクセス可能である。但し、環境1及び環境2の場合と同様に、アクセス制御装置11によって照合の対象になったファイルについては、照合で許可された場合にのみアクセス可能になるなど、アクセスが許可されない場合もあり得る。
アクセス制御装置11はプロセス(プロセスA、B、C、D等)からファイルへのアクセスの要求があった際に、アクセス対象となるファイルに関する情報に基づき、リストとの照合を行う。ファイルへのアクセスとは、ファイルの読み出し(ファイルデータ本体の読み出し、ファイルのプロパティ値の読み出しなど)、ファイルの実行など、各種の態様を含む。以下の説明で、ファイルのアクセスといった場合、ファイルの実行を含む。
図1のプログラムA~Dによって実現される機能は装置として実装されることもできる。
図2は、本実施形態に係るホストシステム1の内部構成の他の例を示す図である。図1のプログラムA~Dが、装置A~Dに置き代わっている。また、アクセス制御装置11が環境3内に設けられている。装置Aは環境1内で実行され、装置B、Cは環境2内で実行され、装置Dはホストシステム1上で直接動作する。アクセス制御装置11は環境3内で動作する。装置A~D、アクセス制御装置11は、有線又は無線の通信ネットワークを介して接続されてもよいし、通信バスを介して接続されてもよい。
図3は、本実施形態に係るアクセス制御装置11の一例を示すブロック図である。アクセス制御装置11は、環境起動検知部21、プロセス関係判定部22、アクセス検知部23、照合要否判定部24(判定部)、パス変換部25、リスト照合部26、及びアクセス制御部27を備えている。
環境起動検知部21はホストシステム1とは分離された環境の起動及び生成を検知する機能を持つ。ホストシステム1と分離される環境(以降、単に環境と呼ぶ)とは、Linuxの場合、chrootと呼ばれる特定のディレクトリパスをプロセスのルートディレクトリとする方式により実現される環境でもよい。あるいは、namespaceにより名前空間を分離する方式により実現される環境でもよい。いずれの場合においても、特定のシステムコール、例えばchrootシステムコールを捕捉することで、環境起動検知部21は、環境の起動を検知する。
環境起動機能には、環境内のルートディレクトリを変更する機能が設けられている。例えば元のルートディレクトリ以下の階層の特定のディレクトリを新たなルートディレクトリとする機能がある。例えば元のルートディレクトリが“/”の場合に、“/home/”を新たなルートディレクトリとする機能がある。新たな環境で起動させられて、動作するプロセスは新たなルートディレクトリより上位に存在するファイル又はディレクトリにはアクセスすることができない。よって、ルートディレクトリの変更によって、アクセスできるファイルを限定することができる。例えば/home/を新たなルートディレクトリとする場合には、新たな環境で動作するプロセスからは/home/fooにはアクセスできるが、/barにはアクセスさせない、といったことが可能となる。このようにルートディレクトリによって環境が参照可能なデータ範囲が定められる。
環境起動検知部21は、環境の起動を検知すると、環境起動プロセステーブル(環境データ)にルートディレクトリのパスと、環境を起動したプロセス(第4プロセス)の識別子(プロセスID)を記録する。
図4は、環境起動プロセステーブルの一例を示す。図4の例では、プロセスIDが1200であるプロセス(第4プロセス)が、/home/data1/をルートディレクトリパスとする環境を新たに起動した場合が示されている。
プロセス関係判定部22は、照合要否判定部24からの要求に応じて、照合要否判定部24から与えられたプロセスIDを持つプロセスの環境を起動したプロセス(環境起動プロセス)のIDを取得する機能を有する。また、プロセス関係判定部22は、当該環境起動プロセスのルートディレクトリを取得する機能を持つ。例えばプロセスIDがA(プロセスID=Aと記載する。以下同様)であるプロセス(プロセスA)が環境を起動し、プロセスAがプロセスID=Bである子プロセス(プロセスB)を起動する。さらにプロセスBが、プロセスID=Cである子プロセス(プロセスC)を起動する。この場合、プロセスCの環境を起動したプロセスはプロセスAであり、プロセスCの環境を起動したプロセス(環境起動プロセス)のプロセスIDはAである。
環境起動プロセスのプロセスID及びルートディレクトリを取得する方法として、OS(オペレーティングシステム)が生成するプロセステーブルを用いることができる。プロセステーブルを用いた例を示す。
図5はプロセステーブルの一例を示す。プロセステーブルには、プロセスのプロセスID(自プロセスID)と、当該プロセスを起動したプロセス(親プロセス)のプロセスID(親プロセスID)との組が、1つのエントリとして記録される。例えば、親プロセスID=1234のプロセスの祖先をたどる場合には、まずプロセスID=1234のエントリを参照し、親プロセスのIDが1230であることがわかる。さらに、プロセステーブルをたどり、プロセスID=1230のエントリを参照すると、親プロセスのIDが1220であることがわかる。さらにプロセステーブルをたどり、プロセスID=1220のエントリを参照すると、親プロセスが存在しないことを示す情報が記録されている。さらに、このように親プロセスをたどるたびに、図4の環境起動プロセステーブルを参照し、親プロセスのプロセスIDが環境起動プロセステーブルに記録されているかを確認する。
図4および図5の例では、プロセスID=1234とプロセスID=1230は環境起動プロセステーブルに登録されていない。しかしながら、プロセスID=1220が環境起動プロセステーブルに登録されていることから、環境を起動したプロセス(環境起動プロセス)はプロセスID=1220のプロセスであることがわかる。さらに、環境起動プロセスのルートディレクトリのディレクトリパスは、/home/data1/であることがわかる。
アクセス検知部23は、プロセスによるデータ(ファイル)へアクセスの要求を検知する機能を有する。アクセス検知部23は、特定のシステムコールを捕捉することで、ファイルアクセスを検知する。ファイルアクセスの要求を検知した時点ではファイルへのアクセスはまだ行われていない。アクセス検知部23は、ファイルアクセスの要求を検知すると、照合要否判定部24に、ファイルアクセスの要求を行ったプロセスのIDと、アクセス要求先のファイルのパス(位置情報)とを照合要否判定部24に通知する。このパスは、ファイルアクセスの要求を行ったプロセスが属する環境内の視点でファイルの位置を表したパスではなく、ホストシステム1からの視点でファイルの位置を表したパスである。
照合要否判定部24(判定部)は、アクセス検知部23によりプロセスからファイルアクセスの要求が検知された場合に、アクセス要求されたファイル(対象データ)が、アクセスが許可された又は許可されていないファイルに該当するかの照合の要否を判定する。照合の要否の判定には、種々の情報を用いることができる。例えば、プロセスが要求したアクセス要求先のファイルの位置情報(例えばファイルパス等)、アクセス要求を行ったプロセスが動作している環境から参照可能なファイルの範囲(第1データ範囲)、セキュリティ機能を有するプロセス(セキュリティプロセスと呼ぶ場合もある)から参照可能なファイルの範囲(第2データ範囲)、各プロセスが動作している環境の情報、などがある。以下、照合の要否の判定の具体例(1)~(5)を示す。
(1)例えば、セキュリティプロセス(第3プロセス)と、ファイルアクセスを要求したプロセス(第2プロセス)とが同一の環境で動作しているか否かによって(両プロセスの先祖が同じか否かに応じて)、照合の要否を判定する。一例として、照合要否判定部24は、両プロセスが同一の環境で動作している場合は、照合を行うと決定する。一方、両プロセスが同一の環境で動作していない場合は、照合を行わないと決定する。具体的には、照合要否判定部24は、プロセス関係判定部22から、セキュリティプロセスの環境を起動したプロセスのプロセスIDと、アクセスを要求したプロセスの環境を起動したプロセスのプロセスIDとを取得する。取得した両プロセスIDが同じであれば、両プロセスが同一環境で動作していると判断する。両プロセスが同一の環境で動作している場合、セキュリティプロセスから参照可能なデータ範囲(照合対象となるデータ範囲あるいは第2データ範囲)にファイルの位置情報が含まれているといえる。
(2)セキュリティプロセス(第3プロセス)が、プロセス(第2プロセス)によりアクセス要求された先のファイルにアクセスできるか否かによって、照合の要否を判定する。例えば、セキュリティプロセスが参照可能なデータ範囲(照合対象となるデータ範囲あるいは第2データ範囲)にファイルの位置情報が含まれるかに応じて、照合の要否を判定する。セキュリティプロセスがファイルにアクセスできる場合は、照合を行うと決定し、アクセスできない場合は照合を行わないと決定する。具体的には、照合要否判定部24は、セキュリティプロセスが動作する環境を起動したプロセスのルートディレクトリパス(すなわちセキュリティプロセスが動作する環境のルートディレクトリパス)をプロセス関係判定部22から取得する。照合要否判定部24は、取得したディレクトリパスと、プロセスによりアクセス要求された先のファイルのパスとの間で前方一致の検査を行う。例えば環境起動プロセスのディレクトリパスが/home/であり、アクセス要求先のファイルのパスが/home/foo/barであれば、前方一致の検査結果が真となる。この場合、セキュリティプロセスは当該ファイルにアクセスできる。一方、アクセス要求先のファイルのパスが/hoge/の場合には、前方一致の検査結果が偽となる。この場合、セキュリティプロセスは、当該ファイルにアクセスができない。
(3)セキュリティプロセス(第3プロセス)が動作する環境のルートディレクトリパスと、アクセス要求を行ったプロセス(第2プロセス)が動作する環境のルートディレクトリパスとを比較することによって照合の要否を判定する。換言すれば、当該プロセスとセキュリティプロセスとが子孫関係に該当するかによって照合の要否を判定する。例えば、セキュリティプロセスが動作する環境のルートディレクトリパスが/home/であり、アクセス要求を行ったプロセスが動作する環境のディレクトリパスが/home/foo/であるとする。この場合、両ルートディレクトリパス間の前方一致の検査を行い、前方一致の検査結果が真となる(この場合、プロセスがセキュリティプロセスの子孫に該当する)。つまりファイルの位置情報はセキュリティプロセスが参照可能なデータ範囲(照合対象となるデータ範囲あるいは第2データ範囲)に含まれる。このため、セキュリティプロセスは、当該プロセスのアクセス要求先のファイルにアクセスできる。よって、この場合、照合要否判定部24は、照合を行うと決定する。一方、前方一致の検査結果が偽となる場合、照合を行わないと決定する。
(4)あらかじめ照合対象のディレクトリパスのリストをリスト化しておく。照合要否判定部24は、アクセス要求先のファイルと、リストに登録されたディレクトリパスとの関係(ファイルの位置情報と照合対象となるデータ範囲との関係)に基づいて照合の要否を判定する。すなわちアクセス要求先のファイルが、リストに登録されたディレクトリパスが示すディレクトリ以下の階層に存在するか否かを判定する。ファイルが当該ディレクトリ以下の階層に存在する場合は、照合を行うと判定し、存在しない場合は、照合を行わないと判定する。
(5)アクセス要求を行ったプロセス(第2プロセス)が、当該プロセスの環境を起動したプロセス(第1プロセス)と子孫関係にある場合に、照合を行うことを決定してもよい。子孫関係にある場合、アクセス要求先のファイルの位置情報は、当該プロセスの環境から参照可能なデータ範囲(照合対象となるデータ範囲あるいは第1データ範囲)に含まれる。
図6は、照合対象のディレクトリパスをリスト化した照合対象ディレクトリ表の例を示す。アクセス要求先のファイルが、/home/data1/以下の階層に存在する場合には、照合を行うと決定し、存在しない場合は、照合を行わないと決定する。
(1)~(5)の判定方法を複数組み合わせて、照合の要否を判定してもよい。
パス変換部25は、照合の対象となるファイルのパスを、セキュリティプロセスから参照可能なパスに変換する。例えばセキュリティプロセスの動作する環境のルートディレクトリが/home/であり、アクセス要求先のファイルのパスが/home/foo/barであるとする。この場合、/home/foo/bar を/foo/barと変換する。具体的には、まずセキュリティプロセスが動作する環境のルートディレクトリを取得する。次に、取得したルートディレクトリのパスと、アクセス要求先のファイルパスとの前方の一致する部分の文字列を、アクセス要求先のファイルパスから削除する。例えば/home/foo/barから前方の/home/と削るとfoo/barとなる。先頭に“/”を補完して/foo/barとする。
リスト照合部26は、照合要否判定部24により照合を行うことが決定された場合に、アクセス要求先のファイル(対象データ)に関する情報を、アクセスが許可された又は許可されていないファイルに関する情報を格納したリストと照合する。アクセス要求先のファイルに関する情報は、セキュリティプロセスから取得することができる。セキュリティプロセスは、例えば、上記の変換されたパスに基づきファイルからファイルに関する情報を取得し、取得した情報をリスト照合部26に提供する。
照合に用いるリストはホワイトリスト、もしくはブラックリストである。ホワイトリストリストには、アクセスが許可された1つ以上のファイルに関する情報が登録されている。ブラックリストには、アクセスが禁止された1つ以上のファイルに関する情報が登録されている。
リスト照合部26は、アクセス要求先のファイルに関する情報をリスト(ホワイトリスト又はブラックリスト)と照合する。アクセス要求先のファイルに関する情報が、リストに登録されているいずれかのファイルの情報に一致するかを判断する。照合する情報の例としては、アクセス要求先のファイルの位置情報(ファイルシステム上のパス)、ファイルの識別子、inode等のメタデータ情報、ファイルのハッシュ値、シグネチャ情報、ファイルへアクセス要求したプロセス(プログラム)が発行するシステムコール列等の動作の振る舞い等が考えうる。これら1つの情報を照合してもよいし、複数の情報を照合してもよい。
照合に用いるリストは、ファイルにアクセス要求しているプロセスの環境に応じて変えてもよい。これにより、同一ファイルへのアクセスであっても、ファイルアクセスを行う環境によって、アクセス制御ポリシ(照合に用いるリスト)を変更することができる。
アクセス制御部27は照合結果に応じて、アクセス制御を行う機能を有する。ホワイトリスト方式では、一例として、アクセス要求先のファイルに関する情報と同じ情報がリストに登録されていた場合(照合結果が一致した場合に)、ファイル実行等のファイルアクセスを許可する。照合結果が一致しない場合にはアクセスを拒否する。あるいは、照合結果が一致しない場合に、ログ出力等によりアラートを出力した上で、アクセスは許可する方法も可能である。
逆にブラックリスト方式の場合には、アクセス制御部27は、照合結果が一致した場合にはファイル実行等のファイルアクセスを拒否し、一致しない場合にはアクセスを許可する。この場合にもアクセスを拒否するのではなく、アラートを出力した上で、アクセスを許可する方法も可能である。
アクセス制御部27がセキュリティプロセスの一部として実装されてもよいし、セキュリティプロセスとは別のモジュール又は機能として実装されていてもよい。
図7及び図8はアクセス制御装置11の動作の一例を示すフローチャートである。より詳細には、図7は環境起動時の処理フロー、図8はファイルアクセス時の処理フローを示す。
最初に図7を用いて環境起動時の処理フローを説明する。環境起動検知部21は特定の命令あるいはシステムコールの発行等を捕捉することにより、環境の起動を検知する(S11)。環境起動検知部21は、環境を起動したプロセスのプロセスIDを取得し(S12)、さらに環境を起動したプロセスのルートディレクトリのパスを取得する(S13)。環境起動検知部21は、プロセスIDとルートディレクトリのパスとを環境起動プロセステーブルに登録する(S14)。
続いて、図8を用いてファイルアクセス時の処理フローを説明する。アクセス検知部23がファイル実行等のファイルアクセスのアクセス命令を検知する(S21)。アクセス検知部23は、アクセス要求先のファイルのパスと、アクセス要求を行ったプロセス(アクセス命令を発行したプロセス)のプロセスIDとを取得する(S22)。ファイルのパスは、ファイルアクセスを要求したプロセスが属する環境内から見たファイルの位置を表すパスではなく、ルートディレクトリの変更前のパス(ホストシステムから見たファイルの位置を表すパス)である。
照合要否判定部24は、アクセス要求を行ったプロセス(自プロセス)のルートディレクトリのパスを得るために、プロセス関係判定部22を用いて、以下の処理を行う。まず、Proc_idに自プロセスのプロセスIDを代入する(S23)。
次に環境起動プロセステーブル(図4参照)にProc_idが登録されているかを確認する(S24)。Proc_idが登録されている場合にはステップS25に進み、Proc_idに対応するルートディレクトリパス(ルートディレクトリパスAとする)を得る(S25)。
Proc_idが登録されていない場合には、プロセステーブル(図5参照)から自プロセスIDがProc_idに一致するエントリを探し(S26)、見つけたエントリにおける親プロセスIDを得る。親プロセスが存在する場合(図4の例では親プロセスIDが“なし”以外の場合)には、Proc_idに親プロセスのプロセスIDを代入し(S27)、ステップS24まで戻る。
親プロセスがない場合(図5の例では親プロセスIDが“なし”の場合)には、ルートディレクトリパス(ルートディレクトリパスAとする)を“/”とする(S28)。
さらにセキュリティ機能のプロセス(セキュリティプロセス)が動作する環境のルートディレクトリパスを得る。具体的には、ステップS24~S29までの流れと同様の方法で、セキュリティプロセスが動作する環境のルートディレクトリパス(ルートディレクトリパスBとする)を取得する(S29)。例えば、図4と図5の例ではプロセスID=1234を持つプロセスのルートディレクトリパスは“/home/data1/”となる。
続いてルートディレクトリパスA、ルートディレクトリパスB、アクセス要求を行ったプロセスのプロセスID、セキュリティプロセスの環境を起動したプロセスのプロセスID等に基づき、アクセス要求先のファイルに対して照合を行うか否かを判断する(S30)。この方法としては、上記の項目(1)~(4)の説明で述べた方法を用いればよい。
アクセス要求先のファイルが照合の対象の場合には、アクセス要求先のファイルがセキュリティプロセスのルートディレクトリパスB以下の階層に存在するかどうかを判断する(ステップS31)。これによりセキュリティプロセスがアクセス要求先のファイルにアクセス可能かどうかを判断できる。
アクセス要求先のファイルがセキュリティプロセスのルートディレクトリパスB以下の階層に存在する場合、パス変換部25は、アクセス要求先のファイルのパスを、セキュリティプロセスが動作する環境のパスに変換する(S32)。リスト照合部26は、変換後のパスと同じパスがリストに登録されているかを照合する照合を行う(S33)。ここではアクセス要求先のファイルに関する情報としてパス(ファイルの位置情報)がリストに登録されているかを判断しているが、照合の対象とする情報はパスに限定されない。アクセス制御部27は、照合の結果に基づき、アクセス要求したプロセスによるファイルへのアクセス制御を実行する(S34)。
照合の結果に基づくアクセス制御は前述した通りである。すなわち、アクセス制御は、ブラックリスト方式か、ホワイトリスト方式かによって変わる。また、ホワイトリストに登録されていない又はブラックリストに登録されているファイルの実行要求の場合は、ファイル実行を拒否する以外に、ログを出力し、ファイル実行自体は許可するという方法を採ってもよい。
ステップS31においてセキュリティプロセスからアクセス要求先のファイルにアクセスできないと判断された場合、アクセス制御部27は任意の方法でアクセス制御を行う(S34)。例えば、あらかじめアクセス制御のデフォルトポリシを設定しておき(例えば常に実行許可、あるいは、常に実行拒否を設定できるようにしておく)、アクセス制御時にはそのデフォルトポリシに従って動作させるような機能を設けてもよい。なお、セキュリティプロセスからアクセス要求先のファイルにアクセスできないと判断された場合に、照合を行う構成も可能である。
第1の実施形態によれば、ファイルアクセスの要求を行ったプロセスが動作する環境(ルートディレクトリパス)、セキュリティプロセスが動作する環境(ルートディレクトリパス)等に基づいて、照合を行うかどうかを決定することができる。例えばファイルアクセスの要求を行ったプロセスが動作する環境がサンドボックスである場合、セキュリティプロセス(セキュリティ機能)がサンドボックスと同じ環境に属するか否かに応じて、照合を行うかどうかを決定することができる。つまり、ホワイトリスト型の実行制御等のセキュリティ対策のソフトウェア(セキュリティ機能)がサンドボックス外で動作しているか、サンドボックス内で動作しているかによって、照合を行うかどうかを決定することができる。また、アクセス要求先のファイルがセキュリティプロセスの環境内に存在するか又は環境外に存在するかによって、照合を行うかどうかを決定することができる。また、第1の実施形態によれば、ファイルにアクセスするためのパス変換(識別子の変換)を行うため、セキュリティプロセスからファイルにアクセスして、照合に用いるファイルに関する情報を取得できる。
(第1の実施形態の変形例)
第1の実施形態ではファイルのアクセス要求の発生時に毎回、アクセス要求を行ったプロセスの親プロセスをたどり、当該プロセスの環境を起動したプロセスのプロセスID及びルートディレクトリパスを得ていた。この処理はオーバーヘッドが高いため、本変形例ではこのオーバーヘッドを低減する。
図9は、第1の実施形態の変形例に係るアクセス制御装置11のブロック図である。図9では、図3に対してプロセス起動検知部31が追加で設けられ、プロセス関係判定部22の代わりに、ルートディレクトリ取得部32(データ範囲取得部)が設けられている。環境起動検知部21の動作が第1の実施形態と異なる。
図10は、本変形例に係るプロセステーブル(プロセス関連データ)を示す。プロセステーブルのエントリに環境起動プロセスIDフィールドを追加する。環境起動プロセスIDは、環境を起動したプロセスのIDである。プロセス生成時に、当該プロセスのエントリに環境起動プロセスIDを追加する。環境起動プロセスIDの代わりに、環境起動プロセスが起動した環境のルートディレクトリのパスを登録するようにしてもよい。
プロセス起動検知部31は、プロセスの起動を検知した場合に、親プロセスの環境起動プロセスIDを取得し、プロセスのエントリに環境起動プロセスIDを設定する。例えばプロセスID=1234のプロセスが起動した場合には、当該プロセスの親プロセスのエントリ、すなわち、プロセスID=1230が“自プロセスID”であるエントリを参照する。参照した親プロセスのエントリから環境起動プロセスID=1220を取得して、当該プロセスのエントリに環境起動プロセスID=1220を設定する。
環境起動検知部21は、環境起動の命令を捕捉した場合に、環境起動の命令を発行したプロセスのエントリに環境起動プロセスIDとして当該プロセスのIDを設定する。例えば図10の例ではプロセスID=1220のプロセスが環境を起動した場合には、プロセスID=1220のエントリの環境起動プロセスIDフィールドに1220を設定する。
図11は本変形例に係るアクセス制御時の処理フローである。図11は図8と点線で囲った部分の処理手順が異なる。ここでは点線で囲った部分の処理手順について説明する。ルートディレクトリ取得部32は、環境を起動したプロセス(環境起動プロセス)のプロセスIDを取得し(S41)、プロセスIDがプロセステーブルに存在するかを判断する。存在する場合は、ステップS25に進み、ルートディレクトリパス(ルートディレクトリパスA)を環境起動プロセステーブルから取得する(S25)。プロセスIDが存在しない場合には、ルートディレクトリパス(ルートディレクトリパスA)を“/”とし、ステップS29に進む。
図12は、本変形例に係るプロセス起動時の処理フローである。プロセス起動検知部31がプロセスの起動を検知すると(S51)、プロセステーブルにおける親プロセスのエントリから環境起動プロセスIDを取得する(S52)。さらに、起動されたプロセスのプロセスIDを持つエントリの環境起動プロセスIDフィールドに、環境起動プロセスIDを設定する(S53)。
図13は環境起動時の処理フローである。図13は図7と点線で囲った部分の処理手順が異なる。ここでは点線で囲った部分の処理手順について説明する。点線で囲った部分では、プロセステーブルにおいて環境を起動したプロセスのエントリに環境起動プロセスIDとして、ステップS12で取得したプロセスIDを設定する。
本変形例によれば、第1の実施形態に比べてアクセス制御時の処理を簡略化することができる。
(第2の実施形態)
本実施形態では、起動した環境から、さらに別の環境を起動する場合を扱う。これにより環境を多重に起動する場合にも対処可能になる。
図14は第2の実施形態に係るアクセス制御装置11の内部構成を示すブロック図である。図14は、ホストパス取得部34(データ範囲情報取得部)と、プロセス終了検知部35を備える点、環境起動検知部21の内部動作が、図3の構成と異なる。その他のブロックの動作は第1の実施形態と同じであるため説明を省略する。
環境起動検知部21は、環境起動の命令の捕捉により新たな環境の起動を検知した際に、新たな環境を起動したプロセスのプロセスID及び環境起動の命令の引数等の情報を、ホストパス取得部34に提供する。
ホストパス取得部34は、新たな環境を起動したプロセスのルートディレクトリパス(新たな環境を起動する前のもともとの環境のルートディレクトリパス)をプロセス関係判定部22から取得する。またホストパス取得部34は、環境起動の命令の引数などから新たに起動された環境のルートディレクトリ情報(新たな環境を起動する前のもともとの環境から見た相対的なルートディレクトリパス)を取得する。ホストパス取得部34は、これらの取得した情報に基づき、新たに起動させられたプロセスの環境のルートディレクトリパスを、ホストシステム1のルートディレクトリから見たパスの形式で生成する。
つまり、上記新たに起動された環境のルートディレクトリ情報は、第1環境から参照可能なデータ範囲(第1データ範囲とする)の情報であり、もともとの環境(第2環境)からの視点で当該第1データ範囲を定義している。ホストパス取得部34は、当該第1データ範囲の情報と、第2環境(もともとの環境)から参照可能なデータ範囲(第3データ範囲とする)の情報とに基づき、第2環境が設けられているホストシステムからの視点で当該第1データ範囲を定義したデータ範囲情報を取得する。
以下、ホストパス取得部34の動作を図15及び図16を用いて説明する。
図15は、第2の実施形態に係るプロセステーブルの一例を示す。図16は、第2の実施形態に係る環境起動プロセステーブルの一例を示す。
図15の例において、プロセスID=100のプロセスがプロセスID=1220のプロセスを起動し、さらにプロセスID=1220のプロセスはプロセスID=1230、2220のプロセスを起動している。さらにプロセスID=2220のプロセスは、プロセスID=2230のプロセスを起動している。
このときプロセスID=100のプロセスは、環境起動前の状態(ホストシステム上)で動作しているものとする。また、プロセスID=1220のプロセスが、ルートディレクトリとして、“/home/data1/”を指定して、新たな環境(第2環境)を起動としたとする。さらに、プロセスID=2230のプロセスが、ルートディレクトリとして“/foo/”を指定して、新たな環境(第1環境)を起動したとする。つまり第2環境が先に起動し、第2環境内で第1環境が起動する。
この場合、図16のように、最初にプロセスID=1220のプロセスに対して、当該プロセスが起動した環境(第2環境)のルートディレクトリパスとして“/home/data1/”が記録される。すなわち、最初にプロセスID=1220のプロセスがルートディレクトリパスとして/home/data1/を指定して、環境(第2環境)を起動したことが記録される。さらにプロセスID=2230のプロセスが新たな環境(第1環境)を起動した際には、プロセスID=2230のプロセスに対して、当該プロセスが起動した環境(第1環境)のルートディレクトリパスとして、/home/data1/foo/が記録される。つまり、プロセスID=2230のプロセスは、もともとプロセスID=1220のプロセスが起動した環境(第2環境)内で動作していたため、もともとの環境(第2環境)のルートディレクトリは“/home/data1/”である。そして、プロセスID=2230が環境(第1環境)の起動時に指定したルートディレクトリ情報は“/foo/”であるから、ホストシステムから見た/foo/のパスは“/home/data1/foo/”となる。つまり、ホストシステムからみたルートディレクトリパスは、環境起動を行ったプロセスの元々のルートディレクトリパス(/home/data1/)と、環境起動の際に与えられたルートディレクトリ情報(/foo/)とを結合することで得ることができる。
プロセス終了検知部35は、プロセスの終了を検知し、当該プロセスの環境で動作している他のプロセス(環境を起動したプロセスを含む)が残存しているかを確認する。他のプロセスが残存していない場合には、環境起動プロセステーブルから、環境起動したプロセスに対するルートディレクトリパスを削除する。
具体的には、プロセス終了検知部35は、あるプロセスの終了を検知した場合には、当該プロセスが属する環境を起動したプロセスのプロセスIDを確認する。さらに、当該環境を起動したプロセスから起動された子プロセスが存在するかどうかを確認し、存在する場合には、さらにその子プロセスが存在するかどうかを確認していく。これを繰り返すことで、当該環境で動作するプロセスが残存しているかを確認する。残存していない場合には、環境起動プロセステーブルから、環境を起動したプロセスのプロセスIDを含むエントリを削除する。図17を用いて具体例を示す。
図17は、第2の実施形態のプロセステーブルの他の例を示す。図17の例では、エントリに子プロセスIDの情報を含めている。これにより親プロセスから子プロセスに対して効率的にたどることができるようになる。例えば、プロセスID=1234のプロセスが終了した場合には、プロセスID=1234のプロセスが属する環境を起動したプロセスを特定する。環境を起動したプロセスはプロセスID=1220のプロセスであるため、プロセスID=1220のプロセスの子供をたどっていき、残存するプロセスがあるかどうかを効率的に判断できる。残存するプロセスが存在しない場合は、プロセスID=1220のエントリを環境起動プロセステーブルから削除する。残存するプロセスが1つでも存在する場合は、プロセスID=1220のエントリを環境起動プロセステーブルから削除しない。
図18及び図19は本実施形態における処理フローの一例である。アクセス制御のフローについては、図8と同様であるため図示および説明を省略する。
図18は環境起動時の処理フローである。環境起動検知部21が特定のシステムコールを捕捉等することにより環境の起動を検知し(S61)、環境の起動を命令したプロセス(自プロセス)のプロセスIDを取得する。自プロセスのルートディレクトリパスを得るためにホストパス取得部34は以下の処理を行う。
まずProc_idに自プロセスのプロセスIDを代入する(S63)。Proc_idのプロセスが環境起動プロセステーブルに登録されているか確認する(S64)。Proc_idのプロセスが登録されていない場合には、プロセス関係判定部22を用いて、Proc_idのプロセスに親プロセスが存在するか確認する(S65)。親プロセスが存在する場合には、Proc_idに親プロセスのプロセスIDを代入し(S66)、ステップS64に戻る。ステップS64にてProc_idのプロセスが環境起動プロセステーブルに登録されている場合には、Proc_idのプロセスに対応するルートディレクトリ(ルートディレクトリパスAとする)を環境起動プロセステーブルから取得する(S68)。この後、ステップS69に進む。また、ステップS65でProc_idのプロセスに親プロセスが存在しない場合には、Proc_idのプロセスはホストシステム1上で動いていると判断する。そして、ルートディレクトリパスを"/”(ルートディレクトリパスAとする)とする(S67)。この後、ステップS69に進む。
ステップS69では、ホストパス取得部34は、環境起動の命令の引数等からルートディレクトリ情報(新たな環境を起動する前のもともとの環境から見た相対的なルートディレクトリパス。ルートディレクトリパスBとする)を取得する(S70)。ルートディレクトリパスBは、ルートディレクトリパスAから見た相対パスである。ルートディレクトリパスAをもとに、ルートディレクトリパスBをホストシステム1から見たルートディレクトリパス(ルートディレクトリパスC)に変換する。さらにルートディレクトリパスCと、環境を起動したプロセスのプロセスIDとを対応付けてエントリとして環境起動テーブルに登録する(S71)。
図19は、プロセス終了時の処理フローである。プロセス終了検知部35がプロセスの終了を検知すると(S81)、Proc_idに、終了したプロセス(自プロセス)のプロセスIDを代入する(S82)。さらにProc_idが環境起動プロセステーブルに登録されているか確認し(S83)、登録されていない場合には、プロセス関係判定部22を用いて、Proc_idのプロセスに親プロセスが存在するか確認する(S84)。プロセス関係判定部22は、プロセステーブルを参照して、Proc_idのプロセスに親プロセスが存在するか確認する。親プロセスが存在する場合には、プロセス終了検知部35は、Proc_idに親プロセスのプロセスIDを代入して(S85)、ステップS83に戻る。親プロセスが存在しない場合には、ホストシステム1上で直接、Proc_idのプロセスが動作していると判断して、処理を終了する。ステップS83において、Proc_idが環境起動プロセステーブルに登録されている場合には、Proc_idのプロセスから順にプロセスをたどっていく。すなわち、Proc_idのプロセスから起動された子プロセスや、さらにその子プロセスから起動されたプロセス(孫プロセス)、さらにその孫プロセスから起動されたプロセス(以降同様)、と順にたどっていく。これにより、Proc_idのプロセス(環境を起動したプロセス)のすべての子孫となるプロセスが終了しているかを確認する(S86)。1つでも終了していないプロセスが存在する場合は、処理を終了する。一方で、すべてのプロセスが終了している場合には、環境起動プロセステーブルからProc_idのプロセスに関するエントリを削除する(S87)。
本実施形態によれば、環境を多重に起動する場合にも柔軟なアクセス制御を行うことができる。また一度起動した環境を終了させる場合にも対処できる。すなわち、通常、多くの環境ではプロセスIDはプロセス終了後に再利用される。このため、終了したプロセスのプロセスIDに関する情報が環境起動プロセステーブルに残っていると、プロセスの環境とルートディレクトリとを正しく判別できない。これに対して、本実施形態によれば、プロセスの終了時に、当該プロセスのルートディレクトリ以下のすべての階層のプロセスが終了している場合には、環境起動プロセステーブルから当該環境を起動したプロセスのルートディレクトリパスを削除する。これにより、プロセスIDの再利用時にも環境起動プロセステーブルが正しく維持され、プロセスの環境とルートディレクトリとを正しく判別できる。
プロセステーブルに直接、ルートディレクトリ情報(ルートディレクトリパス)を登録してもよい。その場合には環境起動を行ったプロセスのIDも登録しておく。
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
1 ホストシステム
11 アクセス制御装置
12 記憶装置
21 環境起動検知部
22 プロセス関係判定部
23 アクセス検知部
24 照合要否判定部(判定部)
25 パス変換部(変換部)
26 リスト照合部
27 アクセス制御部
31 プロセス起動検知部
32 ルートディレクトリ取得部(データ範囲取得部)
34 ホストパス取得部(データ範囲情報取得部)
35 プロセス終了検知部

Claims (17)

  1. 対象データへのアクセス要求を検知するアクセス検知部と、
    前記対象データの位置情報と、照合対象となるデータ範囲とに基づいて、前記対象データへのアクセスが許可されるか否かの情報との照合の要否を判定する判定部と、
    第1環境の起動を検知し、前記第1環境から参照可能なデータ範囲の情報を取得する環境起動検知部と、を備え、
    前記照合対象となるデータ範囲は、前記第1環境から参照可能な第1データ範囲である
    情報処理装置。
  2. 前記判定部は、前記位置情報が前記照合対象となるデータ範囲に含まれる場合に前記照合を行うことを決定する
    請求項1に記載の情報処理装置。
  3. 前記第1環境は第1プロセスにより起動され、
    前記対象データへのアクセス要求は第2プロセスにより生成され、
    前記判定部は、前記第2プロセスが前記第1プロセスと子孫関係にある場合に、前記照合を行うことを決定する
    請求項に記載の情報処理装置。
  4. 対象データへのアクセス要求を検知するアクセス検知部と、
    前記対象データの位置情報と、照合対象となるデータ範囲とに基づいて、前記対象データへのアクセスが許可されるか否かの情報との照合の要否を判定する判定部と、を備え、
    前記照合対象となるデータ範囲は、セキュリティ機能に関する第3プロセスから参照可能な第2データ範囲である
    情報処理装置。
  5. 前記対象データへのアクセス要求は第2プロセスにより生成され、
    前記判定部は、前記第2プロセスが、前記第3プロセスと子孫関係にある場合に、前記照合を行うことを決定する
    請求項に記載の情報処理装置。
  6. 前記対象データへのアクセス要求は第2プロセスにより生成され、
    前記判定部は、前記第3プロセスが、前記第2プロセスと同じ環境内に存在する場合に、前記照合を行うことを決定する
    請求項に記載の情報処理装置。
  7. 第1環境の起動を検知し、前記第1環境から参照可能な第1データ範囲の情報を取得する環境起動検知部を備え、
    前記第1環境は第1プロセスにより起動され、
    前記第3プロセスが前記第1プロセスと子孫関係にある場合に、前記第1データ範囲の情報に基づき、前記対象データの位置情報を前記第3プロセスから参照可能な形式に変換する変換部
    を備えた請求項4~6のいずれか一項に記載の情報処理装置。
  8. 前記照合は、前記対象データの変換後の位置情報が、前記アクセスが許可されている又は許可されていないデータの位置情報を含むリストに合致するかを判断する処理である
    請求項に記載の情報処理装置。
  9. 前記対象データの位置情報は、階層構造の第1パスで表され、
    前記第2データ範囲は、階層構造の第2パスで表され、
    前記変換部は、前記第1パスと前記第2パスとの間で最上位の階層から連続して一致するパス部分を前記第1パスから削除することにより、前記対象データの位置情報を変換する
    請求項7又は8に記載の情報処理装置。
  10. 前記対象データへのアクセス要求は、第2プロセスにより生成され、
    環境内におけるプロセスの起動を検知し、検知した前記プロセスを、前記環境を起動したプロセスである第4プロセスに関連付けたプロセス関連データを生成する、プロセス起動検知部と、
    前記第4プロセスと、前記第4プロセスが起動した前記環境から参照可能なデータ範囲とを対応付けた環境データと
    前記プロセス関連データにおいて、前記第2プロセスに関連付けられた前記第4プロセスを特定し、前記環境データにおいて、前記第4プロセスに対応する前記データ範囲を前記第1データ範囲とするデータ範囲取得部と
    を備えた請求項1、3、7~9のいずれか一項に記載の情報処理装置。
  11. 前記対象データへのアクセス要求は、第2プロセスにより生成され、
    環境内におけるプロセスの起動を検知し、検知した前記プロセスを、前記環境から参照可能なデータ範囲に関連付けたプロセス関連データを生成する、プロセス起動検知部と、
    前記プロセス関連データにおいて前記第2プロセスに関連付けられたデータ範囲を前記第1データ範囲とするデータ範囲取得部と
    を備えた請求項1、3、7~9のいずれか一項に記載の情報処理装置。
  12. 前記環境起動検知部は、第2環境内において前記第1環境の起動を検知し、前記第1データ範囲の情報を取得し、前記第1データ範囲の情報は前記第2環境からの視点で前記第1データ範囲を定義しており、
    前記第1データ範囲の情報と、前記第2環境から参照可能な第3データ範囲の情報とに基づき、前記第2環境が設けられているシステムからの視点で前記第1データ範囲を定義したデータ範囲情報を取得するデータ範囲情報取得部
    を備えた請求項1、3、7~11のいずれか一項に記載の情報処理装置。
  13. 前記第1データ範囲の情報を記憶する記憶部
    前記第1環境を起動した第1プロセス及び前記第1プロセスの子孫関係にあるプロセスがすべて終了しているか否かを検査し、前記第1プロセス及び前記第1プロセスの子孫関係にあるプロセスがすべて終了している場合は、前記記憶部から前記第1データ範囲の情報を消去するプロセス終了検知部と
    を備えた請求項1、3、7~12のいずれか一項に記載の情報処理装置。
  14. 前記判定部により前記照合を行うことが決定された場合に、前記照合を行う照合部
    を備えた請求項1~13のいずれか一項に記載の情報処理装置。
  15. 前記照合部は、前記対象データに関する第1情報が、前記アクセスを許可されている又は許可されていないデータに関する情報のリストに含まれているか否かを判断する
    請求項14に記載の情報処理装置。
  16. 対象データへのアクセス要求を検知し、
    前記対象データの位置情報と、照合対象となるデータ範囲とに基づいて、前記対象データへのアクセスが許可されるか否かの情報との照合の要否を判定し、
    第1環境の起動を検知し、前記第1環境から参照可能なデータ範囲の情報を取得し、
    前記照合対象となるデータ範囲は、前記第1環境から参照可能な第1データ範囲である
    情報処理方法。
  17. 対象データへのアクセス要求を検知するステップと、
    前記対象データの位置情報と、照合対象となるデータ範囲とに基づいて、前記対象データへのアクセスが許可されるか否かの情報との照合の要否を判定するステップと、
    第1環境の起動を検知し、前記第1環境から参照可能なデータ範囲の情報を取得するステップと、をコンピュータに実行させ、
    前記照合対象となるデータ範囲は、前記第1環境から参照可能な第1データ範囲である
    コンピュータプログラム。
JP2020153265A 2020-09-11 2020-09-11 情報処理装置、情報処理方法及びコンピュータプログラム Active JP7391802B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020153265A JP7391802B2 (ja) 2020-09-11 2020-09-11 情報処理装置、情報処理方法及びコンピュータプログラム
US17/249,323 US11714896B2 (en) 2020-09-11 2021-02-26 Information processing apparatus, information processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020153265A JP7391802B2 (ja) 2020-09-11 2020-09-11 情報処理装置、情報処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2022047380A JP2022047380A (ja) 2022-03-24
JP7391802B2 true JP7391802B2 (ja) 2023-12-05

Family

ID=80627886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020153265A Active JP7391802B2 (ja) 2020-09-11 2020-09-11 情報処理装置、情報処理方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US11714896B2 (ja)
JP (1) JP7391802B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099944A1 (en) 2001-01-19 2002-07-25 Bowlin Bradley Allen Method and apparatus which enable a computer user to prevent unauthorized access to files stored on a computer
JP2007249782A (ja) 2006-03-17 2007-09-27 Nifty Corp 電子データ流出防止プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181438B1 (en) * 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
US7613930B2 (en) * 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
US7290266B2 (en) * 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
JP2007133452A (ja) * 2005-11-08 2007-05-31 Fujitsu Ltd データ収集プログラムおよびデータ収集装置
JP5056529B2 (ja) * 2007-03-28 2012-10-24 富士通株式会社 アクセス制御プログラム
JP5423063B2 (ja) 2009-03-05 2014-02-19 日本電気株式会社 情報処理装置と方法とプログラム
EP2650792A4 (en) * 2010-12-10 2016-11-09 Fujitsu Ltd INFORMATION PROCESSING DEVICE AND PROGRAM
US9672164B2 (en) * 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
JP6914899B2 (ja) * 2018-09-18 2021-08-04 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US11151273B2 (en) * 2018-10-08 2021-10-19 Microsoft Technology Licensing, Llc Controlling installation of unauthorized drivers on a computer system
US11204717B2 (en) * 2018-11-15 2021-12-21 Western Digital Technologies, Inc. Object storage system with access control quota status check
JP7456176B2 (ja) * 2020-02-06 2024-03-27 富士フイルムビジネスイノベーション株式会社 ファイル管理装置およびファイル管理プログラム
JP7399818B2 (ja) 2020-08-11 2023-12-18 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099944A1 (en) 2001-01-19 2002-07-25 Bowlin Bradley Allen Method and apparatus which enable a computer user to prevent unauthorized access to files stored on a computer
JP2007249782A (ja) 2006-03-17 2007-09-27 Nifty Corp 電子データ流出防止プログラム

Also Published As

Publication number Publication date
US11714896B2 (en) 2023-08-01
JP2022047380A (ja) 2022-03-24
US20220083645A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
KR101647487B1 (ko) 패치파일 분석시스템과 분석방법
US7725922B2 (en) System and method for using sandboxes in a managed shell
US8082442B2 (en) Securely sharing applications installed by unprivileged users
KR101201118B1 (ko) 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
JP4628149B2 (ja) アクセス制御装置及びアクセス制御方法
US8505069B1 (en) System and method for updating authorized software
US20050091214A1 (en) Internal object protection from application programs
RU2535506C2 (ru) Система и способ формирования сценариев модели поведения приложений
EP1321844B1 (en) Access right contradiction detection apparatus and analysis rule creation apparatus
WO2016079602A1 (en) Malicious code protection for computer systems based on process modification
KR20110050592A (ko) 휴대용 저장 장치를 위한 동적 파일 시스템 제약
CN107609027B (zh) 设置文件防删除标志位和防止误删除文件的方法及装置
KR101223594B1 (ko) Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체
KR20060050768A (ko) 액세스 인가 api
KR101967663B1 (ko) 인가된 프로세스의 역할 기반 접근 통제 시스템
JP2007109016A (ja) アクセスポリシ生成システム、アクセスポリシ生成方法及びアクセスポリシ生成用プログラム
JP7391802B2 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
US20070038572A1 (en) Method, system and computer program for metering software usage
CN106796644B (zh) 访问控制系统及访问控制方法
JP4444604B2 (ja) アクセス制御装置ならびにそのプログラム
KR101956725B1 (ko) 인가된 실행 파일 및 동적 라이브러리 파일 기반 서버 접근 통제 시스템
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
KR101391508B1 (ko) 저장된 파일을 보호하는 단말기 및 방법
TWI802040B (zh) 基於檔案屬性特徵之應用程式控管方法
CN112115458B (zh) 一种嵌入式自动设置和验证文件属性与权限的系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230718

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: 20231024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231122

R151 Written notification of patent or utility model registration

Ref document number: 7391802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151