JP6783812B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP6783812B2
JP6783812B2 JP2018045919A JP2018045919A JP6783812B2 JP 6783812 B2 JP6783812 B2 JP 6783812B2 JP 2018045919 A JP2018045919 A JP 2018045919A JP 2018045919 A JP2018045919 A JP 2018045919A JP 6783812 B2 JP6783812 B2 JP 6783812B2
Authority
JP
Japan
Prior art keywords
file
interpreter
script
cache
reading
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
JP2018045919A
Other languages
English (en)
Other versions
JP2019159830A (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 JP2018045919A priority Critical patent/JP6783812B2/ja
Priority to US16/115,761 priority patent/US10891389B2/en
Publication of JP2019159830A publication Critical patent/JP2019159830A/ja
Application granted granted Critical
Publication of JP6783812B2 publication Critical patent/JP6783812B2/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Virology (AREA)
  • Power Engineering (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
情報処理のセキュリティを高める方法として、予め決められたアプリケーションの実行しか許可しないホワイトリスト型の実行制御がある。制御対象となるアプリケーションには、CPUなどのプロセッサが直接実行できる実行ファイル形式のアプリケーションのほかに、インタプリタが解釈しながら実行するスクリプト形式のアプリケーションがある。また、より安全なホワイトリスト型の実行制御を実現するには、アプリケーション本体だけでなく、アプリケーションの実行中に読込まれるモジュールに対しても実行制御を行うことが望ましい。
スクリプト形式のアプリケーションに対するホワイトリスト型の実行制御としては、インタプリタが実行するスクリプト形式のアプリケーション本体に対してホワイトリスト型の実行制御を行う方法が知られている。しかし、インタプリタがスクリプト形式のアプリケーションを実行している間に読込むスクリプト形式のモジュールに対してホワイトリスト型の実行制御を行う方法は知られていない。スクリプト形式のモジュールに対しては、アプリケーション本体と異なり、ファイルの読込みを制御する必要がある。
米国特許第8151109号明細書
本発明が解決しようとする課題は、スクリプト形式のモジュールに対するホワイトリスト型の実行制御を実現できる情報処理装置、情報処理方法およびプログラムを提供することである。
実施形態の情報処理装置は、起動プロセス制御部と、ファイル読込み検知部と、判定部と、ファイル読込み部と、を備える。起動プロセス制御部は、起動されたプロセスのうち少なくとも特定プロセスを識別可能に第1リストに登録する。ファイル読込み検知部は、前記第1リストに登録されている特定プロセスによるファイルの読込みの要求を検知する。判定部は、要求された前記ファイルの読込みを許可するか否かを第1条件に基づいて判定する。ファイル読込み部は、前記判定部の判定結果に従って前記ファイルの読込みを制御する。
情報処理装置の概略構成を示すブロック図。 第1実施形態に係る情報処理装置の機能的な構成例を示すブロック図。 プロセス起動時の処理手順の一例を示すフローチャート。 プロセス複製時の処理手順の一例を示すフローチャート。 ファイル読込み時の処理手順の一例を示すフローチャート。 プロセス終了時の処理手順の一例を示すフローチャート。 変形例1の情報処理装置の機能的な構成例を示すブロック図。 ファイル読込み時の処理手順の一例を示すフローチャート。 変形例2の情報処理装置の機能的な構成例を示すブロック図。 プロセス起動時の処理手順の一例を示すフローチャート。 第2実施形態に係る情報処理装置の機能的な構成例を示すブロック図。 プロセス起動時の処理手順の一例を示すフローチャート。 ファイル読込み時の処理手順の一例を示すフローチャート。 ファイル書込み時の処理手順の一例を示すフローチャート。 変形例の情報処理装置の機能的な構成例を示すブロック図。 プロセス起動時のOS側の処理手順の一例を示すフローチャート。 プロセス起動時の管理プロセス側の処理手順の一例を示すフローチャート。 ファイル読込み時のOS側の処理手順の一例を示すフローチャート。 ファイル書込み時のOS側の処理手順の一例を示すフローチャート。
以下、実施形態の情報処理装置、情報処理方法およびプログラムについて、図面を参照して詳細に説明する。なお、以下の説明において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
<概要>
図1は、情報処理装置10の概略構成を示すブロック図である。情報処理装置10は、図1に示すように、CPUなどのプロセッサ(プロセッサ回路)11a、メモリ11b、ストレージ11cなどのハードウェア11と、ハードウェア11の機能を操作するOS12と、OS12の機能を利用して動作するプロセス13および管理プロセス14とを有する。OS12は1つ以上のプロセス13と管理プロセス14が並列・並行動作できるように、ハードウェア11のプロセッサ11aやメモリ11bなどを適切に割り当てて、プロセス13や管理プロセス14を管理する。なお、OS12とハードウェア11の間にXen、KVM、Hyper−VなどのVMM(Virtual Machine Monitor)・ハイパーバイザが動作してもよく、OS12が管理するハードウェア11は仮想ハードウェアでもよい。
プロセス13は、OS12からプロセッサ11aやメモリ11bなどの割り当てを受けて動作している状態のプログラムをいう。ここでのプログラムには、実行ファイル形式のアプリケーションやインタプリタなどがある。スクリプト形式のアプリケーションは、インタプリタのプロセスにより実行される。これらのプログラムやプログラムの一部であるモジュールは、ファイルとして格納されている。管理プロセス14は、OS12と協働してホワイトリスト型の実行制御を行うための特殊なプロセスである。なお、管理プロセス14に相当する機能をOS12の内部で実現する構成であってもよい。
管理プロセス14は、予め定められたホワイトリストに基づいて、OS12が通知するプロセス13の起動やモジュールの読込みを制御することで、実行ファイル形式のアプリケーションやスクリプト形式のアプリケーションに対するホワイトリスト型の実行制御を実現する。スクリプト形式のアプリケーションを実行するインタプリタには、例えば、Java(登録商標)、Python、Ruby、Perl、JavaScript(登録商標)、PHP、PerlScript、Lua、VBScriptなどがあるが、制御対象となるインタプリタは特に限定されるものではない。
スクリプト形式のアプリケーションは、インタプリタのプロセス起動時の引数に指定される一方、実行中にスクリプト形式のモジュールを読込むことがある。スクリプト形式のモジュールはファイルの読込みにより実行されるため、ファイルの読込みを制御する必要がある。本実施形態では、ファイルの読込みによるオーバヘッドや過剰な制御を回避するため、スクリプト形式のモジュールのみに限定してファイルの読込み制御を行う。これを実現するために、管理プロセス14上で、スクリプト形式と実行ファイル形式とに分類されるアプリケーションの種別を管理し、ファイルの読込み制御の対象を、スクリプト形式のアプリケーションの実行中に要求されるファイルの読込みに限定する。また、スクリプト形式のアプリケーションの実行中に読込みが要求されるファイルには、スクリプト形式のモジュール以外にも、プログラムコードではない単なるデータとして扱われるファイル(実行されないファイル)もある。このため、管理プロセス14上で、スクリプト形式のモジュールのファイルとデータとして扱われるファイルとに分類されるファイルの種別を識別し、ファイルの読込み制御の対象をスクリプト形式のモジュールに限定する。
<第1実施形態>
図2は、第1実施形態に係る情報処理装置10の機能的な構成例を示すブロック図であり、主に、OS12上で動作する管理プロセス14の機能を示している。OS12は、プロセス13の管理に関わる機能として、プロセス13の起動処理を行う起動処理部21と、プロセス13の複製処理を行う複製処理部22と、プロセス13の終了処理を行う終了処理部23と、プロセス13によるファイルの読込みを制御するファイル読込み部24を備える。
一方、管理プロセス14は、図2に示すように、起動プロセス制御部101と、複製プロセス制御部102と、終了プロセス制御部103と、ファイル読込み検知部104と、判定部105とを備える。また、管理プロセス14は、実行ファイルホワイトリストを記憶する実行ファイルホワイトリスト記憶部111と、インタプリタホワイトリストを記憶するインタプリタホワイトリスト記憶部112と、スクリプトホワイトリストを記憶するスクリプトホワイトリスト記憶部113と、インタプリタ識別情報に関連付けて引数解析情報を記憶する引数解析情報記憶部114と、ランタイム制御リスト(第1リスト)を記憶するランタイム制御リスト記憶部115と、特定拡張子リストを記憶する特定拡張子リスト記憶部116とを備える。
実行ファイルホワイトリスト記憶部111が記憶する実行ファイルホワイトリストは、実行ファイル形式のアプリケーションおよびモジュールのホワイトリストである。実行ファイルホワイトリストは、実行を許可する実行ファイルのファイルパス名と、その実行ファイルの完全性を保証するためのハッシュ値とを関連付けて保持している。ファイルパス名は、inode番号とデバイス番号のセットでもよく、ファイルを一意に特定できる特徴を持つ情報であれば内容・形式は問わない。ハッシュ値は、ファイルのデータを基に生成される。ハッシュ値の生成には、HMAC、MD5、SHA-3、SHA-2、SHA-1などのアルゴリズムを使用してもよく、ファイルの完全性を保証できる特徴を持つ値を生成できるものであれば内容・形式は問わない。
インタプリタホワイトリスト記憶部112が記憶するインタプリタホワイトリストは、インタプリタのホワイトリストである。インタプリタホワイトリストは、実行を許可するインタプリタのファイルパス名、インタプリタの完全性を保証するためのハッシュ値、および、インタプリタ識別情報を関連付けて保持している。インタプリタ識別情報は、Java(登録商標)、Python、Ruby、Perl、JavaScript(登録商標)、PHP、PerlScript、Lua、VBScriptなどのインタプリタ名でもよく、インタプリタを識別できる情報であれば内容・形式を問わない。
スクリプトホワイトリスト記憶部113が記憶するスクリプトホワイトリストは、スクリプト形式のアプリケーションおよびモジュールのホワイトリストである。スクリプトホワイトリストは、実行を許可するスクリプトファイルのファイルパス名、スクリプトファイルの完全性を保証するためのハッシュ値、および、スクリプトファイルを実行するインタプリタのインタプリタ識別情報を関連付けて保持する。なお、実行を許可するスクリプトファイルをそのスクリプトファイルを実行するインタプリタごとに分類することで、インタプリタ識別情報からそのインタプリタと関連付いたスクリプトファイルを識別可能な構成としてもよい。
実行ファイルホワイトリスト、インタプリタホワイトリスト、スクリプトホワイトリストは1つのホワイトリストにまとめて利用してもよい。このとき、実行ファイルホワイトリストの実行ファイルのパス名に実行ファイルを表すインタプリタ識別情報を関連付けて記録してもよい。
引数解析情報記憶部114がインタプリタ識別情報に関連付けて記憶する引数解析情報は、そのインタプリタにおける引数解析方法を示す情報である。例えば、「”-o”引数の次は引数ではない」といった情報や、「”-c”引数の次の次はスクリプトファイルである」といった情報が、引数解析情報に含まれる。また、引数解析情報は、特定の引数がある場合にプロセスの起動を停止するといった定義を含んでもよい。引数解析情報は、インタプリタ起動時の引数にあるスクリプトファイルのみにホワイトリスト実行制御を行うために用いられる。インタプリタ起動時の引数にある全てのファイルにホワイトリスト実行制御を行うのであれば、引数解析情報記憶部114を設けなくてもよい。
ランタイム制御リスト記憶部115が記憶するランタイム制御リストは、動作中のプロセス13のうち、特にインタプリタのプロセス(特定プロセスの一例)が登録されるリストである。ランタイム制御リストは、インタプリタのプロセス13が動作中である場合に、そのプロセス13を識別するpid(プロセス識別子)とインタプリタ識別情報を関連付けて保持する。OS12が管理するプロセス13はpidにより一意に識別される。ランタイム制御リストが保持する情報は、動作中のインタプリタのプロセス13を識別できる情報であればよく、pidの代わりにtid(スレッド識別子)などを用いてもよい。
なお、本実施形態では、特定プロセスであるインタプリタのプロセスのみをランタイム制御リストに登録するものとしているが、特定プロセス以外のプロセスもランタイム制御リストに登録される構成とし、特定プロセスについては、該プロセスが特定プロセスであることを識別できるように登録してもよい。例えば特定プロセスがインタプリタであれば、上述のようにインタプリタ識別情報をpidと関連付けてランタイム制御リストに登録することで、インタプリタ以外のプロセスがランタイム制御リストに登録されていてもインタプリタを識別できる。
特定拡張子リスト記憶部116が記憶する特定拡張子リストは、インタプリタホワイトリストに登録されているインタプリタが定義する特定拡張子のリストである。特定拡張子リストは、インタプリタ識別情報と特定拡張子を関連付けて保持する。特定拡張子はインタプリタごとに定義される。例えば、インタプリタがPerlであれば、pl,pmが特定拡張子となる。特定拡張子が付与されたファイルは、その特定拡張子に対応するインタプリタにより実行されるスクリプトファイルである。
起動プロセス制御部101は、OS12の起動処理部21からの通知に基づいて、起動が要求されたプロセス13である起動プロセスに対するホワイトリスト型の実行制御のための判定を行う。すなわち、起動プロセス制御部101は、起動処理部21からプロセス13の起動の通知を受け取ると、実行ファイルホワイトリスト、インタプリタホワイトリスト、スクリプトホワイトリストなどを用いて、そのプロセス13の起動を許可するか否かを判定し、判定結果を起動処理部21に通知する。起動処理部21は、起動プロセス制御部101の判定結果が起動許可であればそのプロセス13を起動し、起動禁止であればそのプロセス13を起動せずに所定のエラー処理を行う。
また、起動プロセス制御部101は、起動を許可すると判定したプロセス13がインタプリタである場合、そのプロセス13のpidを、インタプリタ識別情報に関連付けて、ランタイム制御リストに登録する。
複製プロセス制御部102は、OS12の複製処理部22からの通知に基づいて、複製されたプロセス13である複製プロセスのランタイム制御リストへの追加登録の処理を行う。すなわち、複製プロセス制御部102は、複製処理部22から、複製元のプロセス13である親プロセスのpidと複製先のプロセス13である子プロセスのpidを含むプロセス13の複製の通知を受け取ると、親プロセスがランタイム制御リストに登録されているインタプリタであるか否かを確認し、親プロセスがランタイム制御リストに登録されているインタプリタであれば、子プロセスのpidをインタプリタ識別情報に関連付けて、ランタイム制御リストに追加登録する。
終了プロセス制御部103は、OS12の終了処理部23からの通知に基づいて、終了するプロセス13である終了プロセスをランタイム制御リストから削除する処理を行う。すなわち、終了プロセス制御部103は、終了処理部23からプロセス13の終了の通知を受け取ると、終了するプロセス13がランタイム制御リストに登録されているインタプリタであるか否かを確認し、終了するプロセス13がランタイム制御リストに登録されているインタプリタであれば、そのプロセスのpidとインタプリタ識別情報をランタイム制御リストから削除する。
ファイル読込み検知部104は、OS12のファイル読込み部24からの通知に基づいて、ランタイム制御リストに登録されているインタプリタによるファイルの読込みの要求を検知する。すなわち、ファイル読込み検知部104は、ファイル読込み部24から、読込みが要求されたファイルのファイルパス名とファイルの読込みを要求するプロセス13のpidを含むファイル読込み通知を受け取ると、そのpidをランタイム制御リストと照合し、そのpidがランタイム制御リストに登録されていれば、ファイルの読込み要求がインタプリタによるものと判断する。そして、ファイル読込み検知部104は、ファイルの読込みを要求したインタプリタのpidと関連付けてランタイム制御リストに登録されているインタプリタ識別情報と読込みが要求されたファイルのファイルパス名を判定部105に渡し、ファイル読込みを許可するか否かを判定部105に問い合わせる。なお、ファイルの読込みを要求するプロセス13のpidがランタイム制御リストに登録されていなければ、ファイル読込み検知部104からファイル読込み部24に対してファイルの読込み許可が通知され、ファイルの読込みが行われる。
判定部105は、インタプリタが読込みを要求するファイルのうち、特定拡張子リストに含まれる特定拡張子が付与されたファイル、つまり、スクリプト形式のモジュールに対するホワイトリスト型の実行制御のための判定を行う。すなわち、インタプリタが読込みを要求するファイルに特定拡張子が付与されていない場合、そのファイルはプログラムコードではない単なるデータとして扱われるファイル(実行されないファイル)であるため、判定部105は、そのファイルの読込みを許可する。また、判定部105は、インタプリタが読込みを要求するファイルに特定拡張子が付与されている場合、そのファイルはスクリプト形式のモジュールを格納したスクリプトファイルであるため、判定部105は、スクリプトホワイトリストを用いて、そのファイルの読込みを許可するか否かを判定する。判定部105の判定結果は、ファイル読込み検知部104を介してファイル読込み部24に通知される。ファイル読込み部24は、判定部105の判定結果に従ってインタプリタによるファイルの読込みを制御する。
次に、本実施形態の情報処理装置10の動作をフローチャートに沿って説明する。まず、プロセス起動時の処理について説明する。図3は、プロセス起動時の処理手順の一例を示すフローチャートであり、OS12の起動処理部21からプロセス13の起動が通知された場合に、管理プロセス14の起動プロセス制御部101により実行される処理手順の一例を示している。
OS12の起動処理部21からプロセス13の起動が通知されると、管理プロセス14の起動プロセス制御部101は、この通知を受け取る(ステップS101)。この通知には、起動プロセスのファイルパス名、起動プロセスの起動引数、起動プロセスのpidが含まれる。なお、起動引数は起動処理部21から直接受け取らず、OS12が管理する疑似ファイルシステム、例えばLinux(登録商標)・OS環境であればprocfsなどから取得してもよい。
次に、起動プロセス制御部101は、起動プロセスのファイルからハッシュ値を生成し(ステップS102)、インタプリタホワイトリストとのマッチングを行う(ステップS103)。すなわち、起動プロセス制御部101は、起動プロセスのファイルパス名とステップS102で生成したハッシュ値との組み合わせが、インタプリタホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのうちのいずれかに一致するか否かを確認する。
ここで、起動プロセスのファイルパス名とステップS102で生成したハッシュ値との組み合わせが、インタプリタホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれにも一致しない場合(ステップS103:不一致)、起動プロセス制御部101は、次に、実行ファイルホワイトリストとのマッチングを行う(ステップS104)。すなわち、起動プロセス制御部101は、起動プロセスのファイルパス名とステップS102で生成したハッシュ値との組み合わせが、実行ファイルホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのうちのいずれかに一致するか否かを確認する。
ここで、起動プロセスのファイルパス名とステップS102で生成したハッシュ値との組み合わせが、実行ファイルホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれにも一致しない場合(ステップS104:不一致)、起動プロセス制御部101は、起動プロセスの起動を禁止すると判定し、起動禁止を示す判定結果を起動処理部21に通知する(ステップS105)。
一方、起動プロセスのファイルパス名とステップS102で生成したハッシュ値との組み合わせが、実行ファイルホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれかに一致する場合(ステップS104:一致)、起動プロセス制御部101は、起動プロセスの起動を許可すると判定し、ステップS110に進んで起動許可を示す判定結果を起動処理部21に通知する。
また、起動プロセスのファイルパス名とステップS102で生成したハッシュ値との組み合わせが、インタプリタホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれかに一致した場合(ステップS103:一致)、起動プロセス制御部101は、そのファイルパス名とハッシュ値に関連付けてインタプリタホワイトリストに登録されているインタプリタ識別情報を基に引数解析情報から引数解析方法を特定し、インタプリタの起動引数により指定されるスクリプトファイルのファイルパス名を取得する(ステップS106)。そして、起動プロセス制御部101は、そのスクリプトファイルからハッシュ値を生成し(ステップS107)、スクリプトホワイトリストとのマッチングを行う(ステップS108)。すなわち、起動プロセス制御部101は、ステップS106で取得したスクリプトファイルのファイルパス名とステップS107で生成したハッシュ値との組み合わせが、スクリプトホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのうちのいずれかに一致するか否かを確認する。
ここで、ステップS106で取得したスクリプトファイルのファイルパス名とステップS107で生成したハッシュ値との組み合わせが、スクリプトホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれにも一致しない場合(ステップS108:不一致)、起動プロセス制御部101は、起動プロセスの起動を禁止すると判定し、起動禁止を示す判定結果を起動処理部21に通知する(ステップS105)。
一方、ステップS106で取得したスクリプトファイルのファイルパス名とステップS107で生成したハッシュ値との組み合わせが、スクリプトホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれかに一致する場合(ステップS108:一致)、起動プロセス制御部101は、起動プロセスであるインタプリタの起動を許可すると判定し、起動プロセスのpidをランタイム制御リストに登録し(ステップS109)、起動許可を示す判定結果を起動処理部21に通知する(ステップS110)。
次に、プロセス複製時の処理について説明する。図4は、プロセス複製時の処理手順の一例を示すフローチャートであり、OS12の複製処理部22がプロセス13の複製を管理プロセス14に通知した場合に、管理プロセス14の複製プロセス制御部102が実行する処理手順の一例を示している。
OS12の複製処理部22からプロセス13の複製が通知されると、管理プロセス14の複製プロセス制御部102は、この通知を受け取る(ステップS201)。この通知には、複製元のプロセス13である親プロセスのpidと、複製先のプロセス13である子プロセスのpidが含まれる。
次に、複製プロセス制御部102は、複製処理部22から受け取った親プロセスのpidがランタイム制御リストに登録されているか否かを判定する(ステップS202)。そして、親プロセスのpidがランタイム制御リストに登録されていれば(ステップS202:Yes)、複製プロセス制御部102は、実行中のインタプリタのプロセスが複製されたものと判断し、複製処理部22から受け取った子プロセスのpidを、親プロセスと同じインタプリタ識別情報に関連付けて、ランタイム制御リストに追加登録する(ステップS203)。一方、親プロセスのpidがランタイム制御リストに登録されていない場合は(ステップS202:No)、そのまま処理を終了する。
次に、ファイル読込み時の処理について説明する。図5は、ファイル読込み時の処理手順の一例を示すフローチャートであり、OS12のファイル読込み部24からファイルの読込みが通知された場合に、管理プロセス14のファイル読込み検知部104および判定部105により実行される処理手順の一例を示している。
OS12のファイル読込み部24からファイルの読込みが通知されると、管理プロセス14のファイル読込み検知部104は、この通知を受け取る(ステップS301)。この通知には、読込みが要求されたファイルのファイルパス名とファイルの読込みを要求するプロセス13のpidが含まれる。
次に、ファイル読込み検知部104は、ファイルの読込みを要求するプロセス13のpidがランタイム制御リストに登録されているか否かを判定する(ステップS302)。そして、ファイルの読込みを要求するプロセス13のpidがランタイム制御リストに登録されていれなければ(ステップS302:No)、ファイル読込み検知部104は、実行ファイル形式のアプリケーションによるファイルの読込みであると判断し、ファイルの読込み許可をファイル読込み部24に通知する(ステップS303)。
一方、ファイルの読込みを要求するプロセス13のpidがランタイム制御リストに登録されていれば(ステップS302:Yes)、ファイル読込み検知部104は、インタプリタが実行しているスクリプト形式のアプリケーションによるファイルの読込みであると判断し、読込みが要求されたファイルのファイルパス名と、ランタイム制御リストから取り出したインタプリタ識別情報を判定部105に渡し、ファイルの読込みを許可するか否かを判定部105に問い合わせる(ステップS304)。
ファイル読込み検知部104からの問い合わせを受けた判定部105は、特定拡張子リストから、ファイル読込み検知部104から受け取ったインタプリタ識別情報と関連付けられている特定拡張子を取得し、ファイル読込み検知部104から受け取ったファイルパス名と照合することで、読込みが要求されたファイルに特定拡張子が付与されているか否かを判定する(ステップS305)。ここで、読込みが要求されたファイルに特定拡張子が付与されていなければ(ステップS305:No)、判定部105は、読込みが要求されたファイルはプログラムコードではない単なるデータとして扱われるファイル(実行されないファイル)であると判断し、そのファイルの読込み許可を示す判定結果をファイル読込み検知部104に返し、ファイル読込み検知部104がファイル読込み部24に対して、ファイルの読込み許可を示す判定結果を通知する(ステップS306)。
一方、読込みが要求されたファイルに特定拡張子が付与されていなければ(ステップS305:No)、判定部105は、読込みが要求されたファイルはスクリプトファイルであると判断し、そのスクリプトファイルからハッシュ値を生成し(ステップS307)、スクリプトホワイトリストとのマッチングを行う(ステップS308)。すなわち、判定部105は、ファイル読込み検知部104から受け取ったファイルパス名とステップS307で生成したハッシュ値との組み合わせが、スクリプトホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのうちのいずれかに一致するか否かを確認する。
ここで、ファイル読込み検知部104から受け取ったファイルパス名とステップS307で生成したハッシュ値との組み合わせが、スクリプトホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれにも一致しない場合(ステップS308:不一致)、判定部105は、そのファイルの読込み禁止を示す判定結果をファイル読込み検知部104に返し、ファイル読込み検知部104がファイル読込み部24に対して、ファイルの読込み禁止を示す判定結果を通知する(ステップS309)。一方、ファイル読込み検知部104から受け取ったファイルパス名とステップS307で生成したハッシュ値との組み合わせが、スクリプトホワイトリストに登録されているファイルパス名とハッシュ値との組み合わせのいずれかに一致する場合(ステップS308:一致)、判定部105は、そのファイルの読込み許可を示す判定結果をファイル読込み検知部104に返し、ファイル読込み検知部104がファイル読込み部24に対して、ファイルの読込み許可を示す判定結果を通知する(ステップS306)。
次に、プロセス終了時の処理について説明する。図6は、プロセス終了時の処理手順の一例を示すフローチャートであり、OS12の終了処理部23からプロセス13の終了が通知された場合に、管理プロセス14の終了プロセス制御部103により実行される処理手順の一例を示している。
OS12の終了処理部23からプロセス13の終了が通知されると、管理プロセス14の終了プロセス制御部103は、この通知を受け取る(ステップS401)。この通知には、終了プロセスのpidが含まれる。
次に、終了プロセス制御部103は、終了処理部23から受け取った終了プロセスのpidがランタイム制御リストに登録されているか否かを判定する(ステップS402)。そして、終了プロセスのpidがランタイム制御リストに登録されていれば(ステップS402:Yes)、終了プロセス制御部103は、そのpidをランタイム制御リストから削除する(ステップS403)。一方、終了プロセスのpidがランタイム制御リストに登録されていない場合は(ステップS402:No)、そのまま処理を終了する。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係る情報処理装置10は、起動されたプロセスのうち、特定プロセスであるインタプリタのプロセスをランタイム制御リストに登録する起動プロセス制御部101と、ランタイム制御リストに登録されているインタプリタのプロセスによるファイルの読込みの要求を検知するファイル読込み検知部104と、要求されたファイルの読込みを許可するか否かをスクリプトホワイトリストとのマッチングにより判定する判定部105と、判定部105の判定結果に従ってファイルの読込みを制御するファイル読込み部24と、を備えている。したがって、この情報処理装置10によれば、スクリプト形式のモジュールに対するホワイトリスト型の実行制御を実現することができる。
また、本実施形態に係る情報処理装置10は、インタプリタが定義する特定拡張子に基づいて、読込みが要求されたファイルがスクリプトファイルか単にデータとして扱われるファイルかを識別し、スクリプト形式のモジュールを格納したスクリプトファイルのみを対象として読込み制御を行うようにしているので、過剰な制御を有効に回避することができる。
(第1実施形態の変形例1)
上述の第1実施形態では、プロセス複製時に親プロセスがランタイム制御リストに登録されていれば子プロセスをランタイム制御リストに追加登録するが、子プロセスのランタイム制御リストへの追加登録を、子プロセスによるファイル読込み時まで遅延するように変更してもよい。
図7は、本変形例の情報処理装置10の機能的な構成例を示すブロック図である。図3に示した構成例と比較して、OS12の複製処理部22および管理プロセス14の複製プロセス制御部102が省略されている。その代り、ファイル読込み検知部104が複製プロセス制御部102に相当する機能を持つ。つまり、ファイルの読込みを要求するプロセス13がランタイム制御リストに登録されたインタプリタの子プロセスである場合に、ファイル読込み検知部104が、そのプロセスのpidをランタイム制御リストに追加登録する処理を行う。
図8は、本変形例におけるファイル読込み時の処理手順の一例を示すフローチャートであり、OS12のファイル読込み部24からファイルの読込みが通知された場合に、管理プロセス14のファイル読込み検知部104および判定部105により実行される処理手順の一例を示している。なお、図8のステップS505からステップS511までの処理は、図5のステップS303からステップS309までの処理と同様であるため、重複した説明を省略する。
OS12のファイル読込み部24からファイルの読込みが通知されると、管理プロセス14のファイル読込み検知部104は、この通知を受け取る(ステップS501)。この通知には、読込みが要求されたファイルのファイルパス名とファイルの読込みを要求するプロセス13のpidのほか、ファイルの読込みを要求するプロセス13が他のプロセス13から複製された子プロセスである場合、複製元の親プロセスのpidも含まれる。
次に、ファイル読込み検知部104は、ファイルの読込みを要求するプロセス13のpidがランタイム制御リストに登録されているか否かを判定する(ステップS502)。そして、ファイルの読込みを要求するプロセス13のpidがランタイム制御リストに登録されていれなければ(ステップS502:No)、次に、そのプロセス13の親プロセスのpidがランタイム制御リストに登録されているか否かを判定する(ステップS503)。ここで、親プロセスのpidもランタイム制御リストに登録されていなければ(ステップS503:No)、ファイル読込み検知部104は、実行ファイル形式のアプリケーションによるファイルの読込みであると判断し、ステップS505に進んでファイルの読込み許可をファイル読込み部24に通知する。
一方、親プロセスのpidがランタイム制御リストに登録されていれば(ステップS503:Yes)、ファイル読込み検知部104は、インタプリタが実行しているスクリプト形式のアプリケーションによるファイルの読込みであると判断し、ファイルの読込みを要求するプロセスのpidをインタプリタ識別情報と関連付けてランタイム制御リストに追加登録し(ステップS504)、その後、ステップS506に進んで、読込みが要求されたファイルのファイルパス名とインタプリタ識別情報を判定部105に渡し、ファイルの読込みを許可するか否かを判定部105に問い合わせる。
以上説明したように、本変形例では、プロセス複製時の処理をファイル読込み時の処理に統合するようにしているので、実行速度のオーバヘッドを軽減する効果が期待できる。
(第1実施形態の変形例2)
上述の第1実施形態では、プロセスの終了時に、終了するプロセスがランタイム制御リストに登録されたインタプリタであれば、そのインタプリタをランタイム制御リストから削除するが、このプロセス終了時の処理をプロセス起動時に一括して行うように変更してもよい。
図9は、本変形例の情報処理装置10の機能的な構成例を示すブロック図である。図3に示した構成例と比較して、管理プロセス14の終了プロセス制御部103が省略され、その代り、OS12に終了プロセス記憶部25が追加されている。本変形例では、OS12の終了処理部23が、プロセス終了時にプロセス13の終了を管理プロセス14に通知する代わりに、終了プロセスのpidを終了プロセス記憶部25に一時的に保存する。そして、起動処理部21が、プロセス起動時に終了プロセス記憶部25から終了プロセスのpidを取り出して、この終了プロセスのpidを起動プロセス制御部101に通知する。
図10は、本変形例におけるプロセス起動時の処理手順の一例を示すフローチャートであり、OS12の起動処理部21からプロセス13の起動が通知された場合に、管理プロセス14の起動プロセス制御部101により実行される処理手順の一例を示している。なお、図10のステップS604からステップS612までの処理は、図3のステップS102からステップS110までの処理と同様であるため、重複した説明を省略する。
OS12の起動処理部21からプロセス13の起動が通知されると、管理プロセス14の起動プロセス制御部101は、この通知を受け取る(ステップS601)。この通知には、起動プロセスのファイルパス名、起動プロセスの起動引数、起動プロセスのpidのほか、起動処理部21が終了プロセス記憶部25から取り出した終了プロセスのpidが含まれる。
次に、起動プロセス制御部101は、起動処理部21から受け取った終了プロセスのpidがランタイム制御リストに登録されているか否かを判定する(ステップS602)。そして、終了プロセスのpidがランタイム制御リストに登録されていれば(ステップS602:Yes)、起動プロセス制御部101は、そのpidをランタイム制御リストから削除し(ステップS603)、ステップS604に進む。一方、終了プロセスのpidがランタイム制御リストに登録されていない場合は(ステップS602:No)、そのままステップS604に進む。
以上説明したように、本変形例では、プロセス終了時の処理をプロセス起動時の処理に統合するようにしているので、実行速度のオーバヘッドを軽減する効果が期待できる。
<第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、ホワイトリストとのマッチング結果(ホワイトリストとのマッチングによりプロセス13の起動やファイルの読込みが許可されたか否か)をキャッシュに保持しておき、繰り返しのマッチング処理を省略することにより、処理負荷の低減を図るものである。
図11は、第2実施形態に係る情報処理装置10の機能的な構成例を示すブロック図である。図3に示した第1実施形態の構成例と比較して、図11では、管理プロセス14がホワイトリストとのマッチング結果を保持する管理プロセスキャッシュ117とファイル書込み制御部106を持ち、OS12がファイルに対する書込み処理を行うファイル書込み部26を持つ。
管理プロセスキャッシュ117は、例えば、ファイルパス名を基に計算されたハッシュキーと、そのファイルパス名により特定されるファイルとホワイトリストとのマッチング結果と、そのファイルがスクリプトファイルであればさらにそのスクリプトファイルを実行するインタプリタを識別するインタプリタ識別情報とを関連付けて、キャッシュ情報として保持する。ハッシュキーは、ファイルを識別可能な情報から計算できる値であれば内容・形式は問わず、inode番号とデバイス番号の組合せでもよい。マッチング結果については、前回のマッチング結果が許可であるか禁止であるかを識別できる値を保持する。なお、前回のマッチング結果が許可のもののみ、あるいは前回のマッチング結果が禁止のもののみを管理プロセスキャッシュ117に保持する構成とする場合は、ファイルパス名を基に計算されたハッシュキーが保持されているか否かによりマッチング結果が許可であったか、あるいはマッチング結果が禁止であったかが分かるので、マッチング結果を示す情報を保持する必要はない。
管理プロセスキャッシュ117の置換アルゴリズムは、キャッシュ情報を新しく記録するときに、必要とされない可能性が高いキャッシュ情報を追い出す特徴を持つアルゴリズムであれば内容は問わない。例えば、LRU(Least Recently Used)、MRU(Most Recently Used)、PLRU(Pseudo-LRU)、LFU(Least Frequently Used)、ARC(Adaptive Replacement Cache)などの置換アルゴリズムを用いてもよい。
ファイル書込み制御部106は、OS12のファイル書込み部26からの通知に基づいて、管理プロセスキャッシュ117が保持するキャッシュ情報のうち、書込みが要求されたファイルに対応するキャッシュ情報を削除する。すなわち、ファイル書込み制御部106は、ファイル書込み部26から、書込みが要求されたファイルのファイルパス名とファイルの書込みを要求するプロセス13のpidを含むファイル書込み通知を受け取ると、ファイルパス名から計算したハッシュキーを基に、管理プロセスキャッシュ117に書込みが要求されたファイルに関するキャッシュ情報が保持されているか否かを判定する。そして、書込みが要求されたファイルに関するキャッシュ情報が管理プロセスキャッシュ117に保持されていれば、そのキャッシュ情報を削除する。なお、キャッシュ情報に有効/無効を表すステータスフラグを付加し、書込みが要求されたファイルに関するキャッシュ情報のステータスフラグを有効から無効に切り替えるようにしてもよい。この場合、管理プロセスキャッシュ117とのマッチング時には、ステータスフラグが有効のキャッシュ情報しか参照しないようにする。書込みが要求されたファイルに関するキャッシュ情報を管理プロセスキャッシュ117から削除した後、または、書込みが要求されたファイルに関するキャッシュ情報が管理プロセスキャッシュ117に保持されていなかった場合、ファイル書込み制御部106は処理の終了をOS12のファイル書込み部26に通知する。ファイル書込み部26は、この通知を受けて、書込みが要求されたファイルに対する書込みを行う。
図12は、本実施形態におけるプロセス起動時の処理手順の一例を示すフローチャートであり、OS12の起動処理部21からプロセス13の起動が通知された場合に、管理プロセス14の起動プロセス制御部101により実行される処理手順の一例を示している。なお、図12のステップS707からステップS711までの処理は図3のステップS102からステップS106までの処理と同様であり、図12のステップS715からステップS718までの処理は図3のステップS102からステップS106までの処理と同様であるため、これらのステップについての詳細な説明は適宜省略する。
本実施形態では、起動プロセス制御部101が、起動処理部21からプロセス起動の通知を受け取ると(ステップS701)、この通知に含まれる起動プロセスのファイルパス名を基にハッシュキーを生成する(ステップS702)。そして、起動プロセス制御部101は、管理プロセスキャッシュ117を参照し、ステップS702で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されているか否かを確認する(ステップS703)。
ここで、ステップS702で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されている場合は(ステップS703:Yes)、起動プロセス制御部101は、そのキャッシュ情報がインタプリタのファイルに関するものか否かを判定する(ステップS704)。そして、そのキャッシュ情報がインタプリタのファイルに関するものでない、つまり実行ファイルに関するものである場合(ステップS704:No)、そのキャッシュ情報に含まれる前回のマッチング結果が禁止を示すものであれば(ステップS705:No)、ステップS710に進んで起動禁止を示す判定結果を起動処理部21に通知し、前回のマッチング結果が許可を示すものであれば(ステップS705:Yes)、ステップS718に進んで起動許可を示す判定結果を起動処理部21に通知する。
一方、ステップS702で生成したハッシュキーを持つキャッシュ情報がインタプリタのファイルに関するものである場合は(ステップS704:Yes)、そのキャッシュ情報に含まれる前回のマッチング結果が禁止を示すものであれば(ステップS706:No)、ステップS710に進んで起動禁止を示す判定結果を起動処理部21に通知する。一方、前回のマッチング結果が許可を示すものであれば(ステップS706:Yes)、ステップS711に進んで、そのインタプリタの起動引数により指定されるスクリプトファイルのファイルパス名を取得した後、そのスクリプトファイルのファイルパス名を基にハッシュキーを生成する(ステップS712)。そして、起動プロセス制御部101は、ステップS712で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されているか否かを確認する(ステップS713)。
ここで、ステップS712で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されている場合(ステップS713:Yes)、そのキャッシュ情報に含まれる前回のマッチング結果が禁止を示すものであれば(ステップS714:No)、ステップS710に進んで起動禁止を示す判定結果を起動処理部21に通知し、前回のマッチング結果が許可を示すものであれば(ステップS714:Yes)、ステップS718に進んで起動許可を示す判定結果を起動処理部21に通知する。
一方、ステップS712で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されていない場合は(ステップS713:No)、ステップS715に進んで、以降、第1実施形態と同様にスクリプトホワイトリストとのマッチングおよび起動処理部21への判定結果の通知を行う。この場合、起動プロセス制御部101は、スクリプトホワイトリストとのマッチング結果を、ステップS712で生成したハッシュキーとインタプリタ識別とに関連付けて、キャッシュ情報として管理プロセスキャッシュ117に記録する。
また、上述のステップS703において、ステップS702で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されていないと判定した場合は(ステップS703:No)、ステップS707に進んで、以降、第1実施形態と同様にインタプリタホワイトリストおよび実行ファイルホワイトリストとのマッチング、インタプリタホワイトリストに一致する場合はさらにスクリプトホワイトリストとのマッチングを行い、マッチング結果に応じた判定結果を起動処理部21に通知する。また、スクリプトホワイトリストとのマッチング結果が許可の場合は、起動プロセスのpidをランタイム制御リストに登録する。ただし、本実施形態では、スクリプトホワイトリストとのマッチングを行う前に、上述したように、スクリプトファイルに関するキャッシュ情報が管理プロセスキャッシュ117に保持されているか否かを確認し、保持されている場合は前回のマッチング結果に応じた判定結果を起動処理部21に通知する。
また、この場合も起動プロセス制御部101は、インタプリタホワイトリストや実行ファイルホワイトリストとのマッチング結果を、ステップS702で生成したハッシュキーと関連付けて、キャッシュ情報として管理プロセスキャッシュ117に記録する。さらに、スクリプトホワイトリストとのマッチングを行った場合は、スクリプトホワイトリストとのマッチング結果を、ステップS712で生成したハッシュキーとインタプリタ識別とに関連付けて、キャッシュ情報として管理プロセスキャッシュ117に記録する。
図13は、本実施形態におけるファイル読込み時の処理手順の一例を示すフローチャートであり、OS12のファイル読込み部24からファイルの読込みが通知された場合に、管理プロセス14のファイル読込み検知部104および判定部105により実行される処理手順の一例を示している。なお、図13のステップS801からステップS806までの処理は図5のステップS301からステップS306までの処理と同様であり、図13のステップS810からステップS812までの処理は図5のステップS307からステップS309までの処理と同様であるため、これらのステップについての詳細な説明は適宜省略する。
本実施形態では、読込みが要求されたファイルに特定拡張子が付与されている場合(ステップS805:Yes)、判定部105が、そのファイルをスクリプトファイルであると判断して、まず、そのファイルのファイルパス名を基にハッシュキーを生成する(ステップS807)。そして、判定部105は、管理プロセスキャッシュ117を参照し、ステップS807で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されているか否かを確認する(ステップS808)。
ここで、ステップS807で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されている場合(ステップS808:Yes)、判定部105は、そのキャッシュ情報に含まれる前回のマッチング結果が許可を示すものか否かを確認する(ステップS809)。そして、前回のマッチング結果が許可を示すものであれば(ステップS809:Yes)、判定部105は、そのファイルの読込み許可を示す判定結果をファイル読込み検知部104に返し、ファイル読込み検知部104がファイル読込み部24に対して、ファイルの読込み許可を示す判定結果を通知する(ステップS806)。一方、前回のマッチング結果が禁止を示すものであれば(ステップS809:No)、判定部105は、そのファイルの読込み禁止を示す判定結果をファイル読込み検知部104に返し、ファイル読込み検知部104がファイル読込み部24に対して、ファイルの読込み禁止を示す判定結果を通知する(ステップS812)。
また、ステップS807で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されていない場合は(ステップS808:No)、ステップS810に進んで、以降、第1実施形態と同様にスクリプトホワイトリストとのマッチングおよびファイル読込み部24への判定結果の通知を行う。この場合、判定部105は、ステップS807で生成したハッシュキーと、スクリプトホワイトリストとのマッチング結果と、インタプリタ識別とを関連付けて、キャッシュ情報として管理プロセスキャッシュ117に記録する。
図14は、本実施形態におけるファイル書込み時の処理手順の一例を示すフローチャートであり、OS12のファイル書込み部26からファイルの書込みが通知された場合に、管理プロセス14のファイル書込み制御部106により実行される処理手順の一例を示している。
OS12のファイル書込み部26からファイルの書込みが通知されると、管理プロセス14のファイル書込み制御部106は、この通知を受け取る(ステップS901)。この通知には、書込みの対象となるファイルのファイルパス名とファイルの書込みを要求するプロセス13のpidが含まれる。
次に、ファイル書込み制御部106は、ファイル書込み部26から受け取ったファイルパス名を基にハッシュキーを生成し(ステップS902)、生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されているか否かを確認する(ステップS903)。そして、ステップS902で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されていれば(ステップS903:Yes)、ファイル書込み制御部106は、そのキャッシュ情報を管理プロセスキャッシュ117から削除する(ステップS904)。一方、ステップS902で生成したハッシュキーを持つキャッシュ情報が管理プロセスキャッシュ117に保持されていなければ(ステップS903:No)、そのまま処理を終了する。
以上説明したように、本実施形態に係る情報処理装置10によれば、前回のホワイトリストとのマッチング結果を管理プロセスキャッシュ117に保持し、同じファイルに繰り返しアクセスする場合は管理プロセスキャッシュ117を参照して、前回のマッチング結果に応じた実行制御を行うようにしている。したがって、繰り返しのマッチング処理を省略することができ、処理負荷の低減を図ることができる。
(第2実施形態の変形例)
上述の第2実施形態では、ホワイトリストとのマッチング結果を保持するキャッシュを管理プロセス14側に設けたが、このようなキャッシュをOS12側に設けるように構成してもよい。
図15は、本変形例の情報処理装置10の機能的な構成例を示すブロック図である。図3に示した第1実施形態の構成例と比較して、ファイルに対する書込み処理を行うファイル書込み部26と、ホワイトリストとのマッチング結果を保持するOSキャッシュ27とがOS12に追加されている。OSキャッシュ27は、上述の管理プロセスキャッシュ117と同様に、ファイルパス名を基に計算されたハッシュキーと、そのファイルパス名により特定されるファイルとホワイトリストとのマッチング結果と、そのファイルがスクリプトファイルであればさらにそのスクリプトファイルを実行するインタプリタを識別するインタプリタ識別情報とを関連付けて、キャッシュ情報として保持する。
図16は、本変形例におけるプロセス起動時のOS12側の処理手順の一例を示すフローチャートであり、プロセス13の起動が要求された場合に、OS12の起動処理部21により実行される処理手順の一例を示している。
OS12の起動処理部21は、プロセス13の起動が要求されると、まず起動プロセスのファイルパス名を基にハッシュキーを生成し(ステップS1001)、生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されているか否かを確認する(ステップS1002)。そして、ステップS1001で生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されていれば(ステップS1002:Yes)、起動処理部21は、そのキャッシュ情報に含まれる前回のマッチング結果が許可を示すものか否かを確認する(ステップS1003)。そして、前回のマッチング結果が禁止を示すものであれば(ステップS1003:No)、起動処理部21は、要求されたプロセス13の起動を禁止して所定のエラー処理を行う(ステップS1004)。
一方、キャッシュ情報に含まれる前回のマッチング結果が許可を示すものであれば(ステップS1003:Yes)、起動処理部21は、次に、キャッシュ情報にインタプリタ識別情報が含まれているか否かを確認することにより、起動プロセスがインタプリタか否かを判定する(ステップS1005)。そして、起動プロセスがインタプリタであれば(ステップS1005:Yes)、そのインタプリタが実行するスクリプトファイルの起動判定のために、管理プロセス14の起動プロセス制御部101に対して、インタプリタ制御処理を通知する(ステップS1006)。一方、起動プロセスがインタプリタでない場合は(ステップS1005:No)、起動処理部21は、プロセス13の起動処理を行う(ステップS1007)。
起動プロセス制御部101に対してインタプリタ制御処理を通知した場合、起動処理部21は、起動プロセス制御部101から通知される判定結果に応じて、プロセス13の起動処理を行う。すなわち、起動プロセス制御部101から起動許可を示す判定結果が通知されると、起動処理部21は、起動が要求されたプロセス13の起動処理を行う。一方、起動プロセス制御部101から起動禁止を示す判定結果が通知されると、起動処理部21は、起動が要求されたプロセス13の起動を禁止し、所定のエラー処理を行う。
また、ステップS1001で生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されていない場合(ステップS1002:No)、起動処理部21は、管理プロセス14の起動プロセス制御部101に対して、プロセス13の起動を通知する(ステップS1008)。この場合、起動処理部21は、起動プロセス制御部101から通知される判定結果に応じて、プロセス13の起動処理とOSキャッシュ27へのキャッシュ情報の記録を行う。すなわち、起動プロセス制御部101から起動許可を示す判定結果が通知されると、起動処理部21は、ステップS1001で生成したハッシュキーと、許可を示すマッチング結果と、起動プロセスがインタプリタであれば管理プロセス14から受け取ったインタプリタ識別情報とを関連付けて、キャッシュ情報としてOSキャッシュ27に記録するとともに、起動が要求されたプロセス13の起動処理を行う。一方、起動プロセス制御部101から起動禁止を示す判定結果が通知されると、起動処理部21は、ステップS1001で生成したハッシュキーと、禁止を示すマッチング結果と、起動プロセスがインタプリタであれば管理プロセス14から受け取ったインタプリタ識別情報とを関連付けて、キャッシュ情報としてOSキャッシュ27に記録するとともに、起動が要求されたプロセス13の起動を禁止し、所定のエラー処理を行う。
図17は、本変形例におけるプロセス起動時の管理プロセス14側の処理手順の一例を示すフローチャートであり、OS12の起動処理部21からインタプリタ制御処理またはプロセス13の起動が通知された場合に、OS12の起動処理部21により実行される処理手順の一例を示している。なお、図17のステップS1103からステップS1111までの処理は、図3のステップS102からステップS110までの処理と同様であるため、これらのステップについての詳細な説明は適宜省略する。
OS12の起動処理部21からインタプリタ制御処理またはプロセス13の起動が通知されると、管理プロセス14の起動プロセス制御部101は、この通知を受け取る(ステップS1101)。そして、受け取った通知がインタプリタ制御処理の通知であれば(ステップS1102:Yes)、ステップS1107に進んで、以降、第1実施形態と同様にスクリプトホワイトリストとのマッチングおよび起動処理部21への判定結果の通知を行う。なお、スクリプトホワイトリストのマッチング処理を高速化するために、管理プロセス14に、スクリプトホワイトリストとのマッチング結果を保持するキャッシュ(上述の管理プロセスキャッシュ117の一部)を管理プロセス14側に設けるようにしてもよい。
一方、起動処理部21から受け取った通知がプロセス13の起動の通知であれば(ステップS1102:No)、ステップS1103に進んで、以降、第1実施形態と同様にインタプリタホワイトリストおよび実行ファイルホワイトリストとのマッチング、インタプリタホワイトリストに一致する場合はさらにスクリプトホワイトリストとのマッチングを行い、マッチング結果に応じた判定結果を起動処理部21に通知する。また、スクリプトホワイトリストとのマッチング結果が許可の場合は、起動プロセスのpidをランタイム制御リストに登録する。
図18は、本変形例におけるファイル読込み時のOS12側の処理手順の一例を示すフローチャートであり、プロセス13によりファイルの読込みが要求された場合に、OS12のファイル読込み部24により実行される処理手順の一例を示している。
OS12のファイル読込み部24は、プロセス13によりファイルの読込みが要求されると、まず、読込みが要求されたファイルのファイルパス名を基にハッシュキーを生成し(ステップS1201)、生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されているか否かを確認する(ステップS1202)。そして、ステップS1201で生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されていれば(ステップS1202:Yes)、ファイル読込み部24は、そのキャッシュ情報に含まれる前回のマッチング結果が許可を示すものか否かを確認する(ステップS1203)。そして、ファイル読込み部24は、前回のマッチング結果が許可を示すものであれば(ステップS1203:Yes)、読込みが要求されたファイルの読込み処理を行い(ステップS1204)、前回のマッチング結果が禁止を示すものであれば(ステップS1203:No)、読込みが要求されたファイルの読込みを禁止する(ステップS1205)。
また、ステップS1201で生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されていない場合は(ステップS1202:No)、ファイル読込み部24は、管理プロセス14のファイル読込み検知部104に対し、ファイルの読込みを通知する(ステップS1206)。この場合、ファイル読込み部24は、ファイル読込み検知部104からファイルの読込み許可が通知されると、読込みが要求されたファイルの読込み処理を行う。また、ファイル読込み検知部104から判定部105の判定結果が通知されると、通知された判定結果に応じて、ファイルの読込み処理とOSキャッシュ27へのキャッシュ情報の記録を行う。すなわち、判定部105の判定結果がファイルの読込み許可を示すものであれば、ファイル読込み部24は、ステップS1201で生成したハッシュキーと、許可を示すマッチング結果と、管理プロセス14から受け取ったインタプリタ識別情報とを関連付けて、キャッシュ情報としてOSキャッシュ27に記録するとともに、読込みが要求されたファイルの読込み処理を行う。一方、判定部105の判定結果がファイルの読込み禁止を示すものであれば、ファイル読込み部24は、ステップS1201で生成したハッシュキーと、禁止を示すマッチング結果と、管理プロセス14から受け取ったインタプリタ識別情報とを関連付けて、キャッシュ情報としてOSキャッシュ27に記録するとともに、読込みが要求されたファイルの読込みを禁止する。
図19は、本変形例におけるファイル書込み時のOS12側の処理手順の一例を示すフローチャートであり、プロセス13によりファイルの書込みが要求された場合に、OS12のファイル書込み部26により実行される処理手順の一例を示している。
OS12のファイル書込み部26は、プロセス13によりファイルの書込みが要求されると、まず、書込みが要求されたファイルのファイルパス名を基にハッシュキーを生成し(ステップS1301)、生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されているか否かを確認する(ステップS1302)。そして、ステップS1301で生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されていれば(ステップS1302:Yes)、ファイル書込み部26は、そのキャッシュ情報をOSキャッシュ27から削除し(ステップS1303)、要求されたファイルの書込み処理を行う。一方、ステップS1301で生成したハッシュキーを持つキャッシュ情報がOSキャッシュ27に保持されていなければ(ステップS1302:No)、そのまま要求されたファイルの書込み処理を行う。
以上説明したように、本変形例では、OS12側にOSキャッシュ27を設け、同じファイルに繰り返しアクセスする場合はOSキャッシュ27を参照して、前回のマッチング結果に応じた実行制御を行うようにしているので、管理プロセス14側に管理プロセスキャッシュ117を設けた場合と同様に、繰り返しのマッチング処理を省略することができ、処理負荷の低減を図ることができる。
<補足説明>
上述した各実施形態の情報処理装置10におけるOS12や管理プロセス14の機能は、例えば、ハードウェア11として情報処理装置10に搭載されたプロセッサにより実行されるソフトウェアなどのプログラムとして実現することができる。このとき、上述した各実施形態の情報処理装置10は、上記のプログラムをあらかじめインストールすることでOS12や管理プロセス14の機能を実現してもよいし、記録媒体に記録あるいはネットワークを介して配布された上記プログラムを適宜インストールすることでOS12や管理プロセス14の機能を実現してもよい。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理装置
11 ハードウェア
12 OS
13 プロセス
14 管理プロセス
21 起動処理部
22 複製処理部
23 終了処理部
24 ファイル読込み部
25 終了プロセス記憶部
26 ファイル書込み部
27 OSキャッシュ
101 起動プロセス制御部
102 複製プロセス制御部
103 終了プロセス制御部
104 ファイル読込み検知部
105 判定部
106 ファイル書込み制御部
111 実行ファイルホワイトリスト記憶部
112 インタプリタホワイトリスト記憶部
113 スクリプトホワイトリスト記憶部
114 引数解析情報記憶部
115 ランタイム制御リスト記憶部
116 特定拡張子リスト記憶部
117 管理プロセスキャッシュ

Claims (13)

  1. 起動されたプロセスのうち少なくとも特定プロセスを識別可能に第1リストに登録する起動プロセス制御部と、
    前記第1リストに登録されている特定プロセスによるファイルの読込みの要求を検知するファイル読込み検知部と、
    要求された前記ファイルの読込みを許可するか否かを第1条件に基づいて判定する判定部と、
    前記判定部の判定結果に従って前記ファイルの読込みを制御するファイル読込み部と、
    実行可能なスクリプトファイルの一覧を、各スクリプトファイルを実行するインタプリタの識別情報と関連付けたスクリプトホワイトリストを記憶するスクリプトホワイトリスト記憶部と、
    インタプリタの識別情報に関連付けて引数解析情報を記憶する引数解析情報記憶部と、を備え、
    前記起動プロセス制御部は、起動するプロセスが特定プロセスである場合に、起動する特定プロセスである前記インタプリタの識別情報に関連付けて前記引数解析情報記憶部に記憶された前記引数解析情報に基づいて前記インタプリタが起動時に実行するスクリプトファイルを特定し、該特定プロセスの起動を許可するか否かを第2条件に基づいて判定し、
    前記第1条件は、読込みが要求された前記ファイルが、前記スクリプトホワイトリストに含まれている場合に、前記ファイルの読込みを許可するという条件であり、
    前記第2条件は、前記インタプリタが起動時に実行するスクリプトファイルが、前記スクリプトホワイトリストに含まれている場合に、前記特定プロセスの起動を許可するという条件である、
    報処理装置。
  2. 前記判定部は、前記ファイルに特定拡張子が付与されていなければ前記ファイルの読込みを許可し、前記ファイルに前記特定拡張子が付与されている場合に、前記第1条件に基づいて前記ファイルの読込みを許可するか否かを判定する
    請求項1に記載の情報処理装置。
  3. プロセスの複製時に、親プロセスが前記第1リストに登録されている特定プロセスである場合に、子プロセスを前記第1リストに特定プロセスとして登録する複製プロセス制御部をさらに備える
    請求項1または2に記載の情報処理装置。
  4. プロセスの終了時に、終了するプロセスが前記第1リストに登録されている特定プロセスである場合に、該特定プロセスを前記第1リストから削除する終了プロセス制御部をさらに備える
    請求項1乃至3のいずれか一項に記載の情報処理装置。
  5. 前記起動プロセス制御部の判定結果に従って特定プロセスの起動を制御する起動処理部をさらに備える
    請求項1乃至4のいずれか一項に記載の情報処理装置。
  6. 前記特定プロセスはインタプリタのプロセスであり、
    前記起動プロセス制御部は、特定プロセスの起動を許可すると判定した場合に、起動を許可する特定プロセスを前記インタプリタの識別情報に関連付けて前記第1リストに登録する
    請求項5に記載の情報処理装置。
  7. 前記起動プロセス制御部は、起動するプロセスが特定プロセス以外である場合は、第3条件に基づいて該プロセスの起動を許可するか否かを判定し、
    前記起動処理部は、前記起動プロセス制御部の判定結果に従って特定プロセス以外のプロセスの起動を制御する
    請求項5に記載の情報処理装置。
  8. 前記第1条件に基づく判定結果を含むキャッシュ情報を保持するキャッシュと、
    書込みが行われるファイルに関するキャッシュ情報が前記キャッシュに含まれている場合に、該キャッシュ情報を前記キャッシュから削除するファイル書込み制御部と、をさらに備え、
    前記判定部は、読込みが要求された前記ファイルに関するキャッシュ情報が前記キャッシュに含まれている場合に、該キャッシュ情報の判定結果に従って、前記ファイルの読込みを許可するか否かを判定する
    請求項1乃至7のいずれか一項に記載の情報処理装置。
  9. 前記第2条件に基づく判定結果を含むキャッシュ情報を保持するキャッシュと、
    書込みが行われるファイルに関するキャッシュ情報が前記キャッシュに含まれている場合に、該キャッシュ情報を前記キャッシュから削除するファイル書込み制御部と、をさらに備え、
    前記起動プロセス制御部は、前記インタプリタが起動時に実行するスクリプトファイルに関するキャッシュ情報が前記キャッシュに含まれている場合に、該キャッシュ情報の判定結果に従って前記インタプリタの起動を制御する
    請求項1に記載の情報処理装置。
  10. 起動されたプロセスのうち少なくとも特定プロセスを識別可能に第1リストに登録する起動プロセス制御部と、
    前記第1リストに登録されている特定プロセスによるファイルの読込みの要求を検知するファイル読込み検知部と、
    要求された前記ファイルの読込みを許可するか否かを第1条件に基づいて判定する判定部と、
    前記判定部の判定結果に従って前記ファイルの読込みを制御するファイル読込み部と、
    実行可能なスクリプトファイルの一覧を、各スクリプトファイルを実行するインタプリタの識別情報と関連付けたスクリプトホワイトリストを記憶するスクリプトホワイトリスト記憶部と、備え、
    前記第1条件は、読込みが要求された前記ファイルと、読込みを要求した前記特定プロセスと関連付けて前記第1リストに登録されている前記インタプリタの識別情報との組み合わせが、前記スクリプトホワイトリストに含まれている場合に、前記ファイルの読込みを許可するという条件である
    情報処理装置。
  11. インタプリタの識別情報に関連付けて引数解析情報を記憶する引数解析情報記憶部をさらに備え、
    前記起動プロセス制御部は、起動するプロセスが特定プロセスである場合に、起動する特定プロセスである前記インタプリタの識別情報に関連付けて前記引数解析情報記憶部に記憶された前記引数解析情報に基づいて前記インタプリタが起動時に実行するスクリプトファイルを特定し、該特定プロセスの起動を許可するか否かを第2条件に基づいて判定し
    前記第2条件は、前記インタプリタが起動時に実行するスクリプトファイルと前記インタプリタの識別情報との組み合わせが、前記スクリプトホワイトリストに含まれている場合に、前記特定プロセスの起動を許可するという条件である
    請求項10に記載の情報処理装置。
  12. 情報処理装置で実行される情報処理方法であって、
    前記情報処理装置は、
    実行可能なスクリプトファイルの一覧を、各スクリプトファイルを実行するインタプリタの識別情報と関連付けたスクリプトホワイトリストを記憶するスクリプトホワイトリスト記憶部と、
    インタプリタの識別情報に関連付けて引数解析情報を記憶する引数解析情報記憶部と、を備え、
    起動プロセス制御部が、起動されたプロセスのうち少なくとも特定プロセスを識別可能に第1リストに登録し、
    ファイル読込み検知部が、前記第1リストに登録されている特定プロセスによるファイルの読込みの要求を検知し、
    判定部が、要求された前記ファイルの読込みを許可するか否かを第1条件に基づいて判定し、
    ファイル読込み部が、判定結果に従って前記ファイルの読込みを制御し、
    前記起動プロセス制御部が、起動するプロセスが特定プロセスである場合に、前記起動プロセス制御部が、起動する特定プロセスである前記インタプリタの識別情報に関連付けて前記引数解析情報記憶部に記憶された前記引数解析情報に基づいて前記インタプリタが起動時に実行するスクリプトファイルを特定し、該特定プロセスの起動を許可するか否かを第2条件に基づいて判定し
    前記第1条件は、読込みが要求された前記ファイルが、前記スクリプトホワイトリストに含まれている場合に、前記ファイルの読込みを許可するという条件であり、
    前記第2条件は、前記インタプリタが起動時に実行するスクリプトファイルが、前記スクリプトホワイトリストに含まれている場合に、前記特定プロセスの起動を許可するという条件である、
    情報処理方法。
  13. 情報処理装置が備えるコンピュータに実行させるためのプログラムであって、
    前記情報処理装置は、
    実行可能なスクリプトファイルの一覧を、各スクリプトファイルを実行するインタプリタの識別情報と関連付けたスクリプトホワイトリストを記憶するスクリプトホワイトリスト記憶部と、
    インタプリタの識別情報に関連付けて引数解析情報を記憶する引数解析情報記憶部と、を備え、
    起動されたプロセスのうち少なくとも特定プロセスを識別可能に第1リストに登録するステップと、
    前記第1リストに登録されている特定プロセスによるファイルの読込みの要求を検知するステップと、
    要求された前記ファイルの読込みを許可するか否かを第1条件に基づいて判定するステップと、
    判定結果に従って前記ファイルの読込みを制御するステップと、
    起動するプロセスが特定プロセスである場合に、起動する特定プロセスである前記インタプリタの識別情報に関連付けて前記引数解析情報記憶部に記憶された前記引数解析情報に基づいて前記インタプリタが起動時に実行するスクリプトファイルを特定し、該特定プロセスの起動を許可するか否かを第2条件に基づいて判定するステップと、
    を前記コンピュータに実行させ、
    前記第1条件は、読込みが要求された前記ファイルが、前記スクリプトホワイトリストに含まれている場合に、前記ファイルの読込みを許可するという条件であり、
    前記第2条件は、前記インタプリタが起動時に実行するスクリプトファイルが、前記スクリプトホワイトリストに含まれている場合に、前記特定プロセスの起動を許可するという条件である、
    ログラム。
JP2018045919A 2018-03-13 2018-03-13 情報処理装置、情報処理方法およびプログラム Active JP6783812B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018045919A JP6783812B2 (ja) 2018-03-13 2018-03-13 情報処理装置、情報処理方法およびプログラム
US16/115,761 US10891389B2 (en) 2018-03-13 2018-08-29 Information processing apparatus, information processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018045919A JP6783812B2 (ja) 2018-03-13 2018-03-13 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019159830A JP2019159830A (ja) 2019-09-19
JP6783812B2 true JP6783812B2 (ja) 2020-11-11

Family

ID=67905699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018045919A Active JP6783812B2 (ja) 2018-03-13 2018-03-13 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10891389B2 (ja)
JP (1) JP6783812B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11050765B2 (en) 2017-08-26 2021-06-29 Nicira, Inc. Security system for managed computer system
US11102208B2 (en) * 2017-08-26 2021-08-24 Nicira, Inc. Automatic whitelisting using wildcarding
JP6914899B2 (ja) 2018-09-18 2021-08-04 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP7283551B2 (ja) * 2019-09-27 2023-05-30 日本電気株式会社 ホワイトリスト生成装置、ホワイトリスト生成方法、及び、ホワイトリスト生成プログラム
JP7316204B2 (ja) 2019-12-16 2023-07-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
JP7271410B2 (ja) 2019-12-16 2023-05-11 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイル記録方法
JP7321917B2 (ja) 2019-12-16 2023-08-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
CA3190145A1 (en) 2020-08-27 2022-03-03 Satya V. Gupta Automated application vulnerability and risk assessment
KR102481272B1 (ko) * 2020-11-17 2022-12-26 오토아이티(주) 보안성 및 신뢰성이 향상된 자동 실행 스크립트 파일의 생성 장치 및 방법과, 이의 실행 장치 및 방법
EP4341842A1 (en) * 2021-05-18 2024-03-27 Virsec Systems, Inc. Quantification of cyber risk in application workloads

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0833799B2 (ja) * 1988-10-31 1996-03-29 富士通株式会社 データ入出力制御方式
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5144659A (en) * 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
US6457130B2 (en) * 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6981281B1 (en) * 2000-06-21 2005-12-27 Microsoft Corporation Filtering a permission set using permission requests associated with a code assembly
US6978278B2 (en) * 2002-01-18 2005-12-20 Bea Systems, Inc. System and method for heterogeneous caching
JP3913704B2 (ja) * 2003-04-22 2007-05-09 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた電子装置
WO2006101549A2 (en) 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US8086637B1 (en) * 2006-12-22 2011-12-27 Emc Corporation Access control for business process data
JP5298546B2 (ja) 2008-01-31 2013-09-25 富士通株式会社 情報管理システム、ユーザ端末、情報管理方法および情報管理プログラム
JP4612710B2 (ja) * 2008-06-02 2011-01-12 株式会社日立製作所 トランザクション並行制御方法、データベース管理システム、およびプログラム
US8387047B1 (en) * 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
KR101565172B1 (ko) * 2010-01-15 2015-11-02 삼성전자주식회사 대규모 병렬 프로세서 어레이 시스템의 데이터 처리 장치 및 방법
US20130055369A1 (en) * 2011-08-24 2013-02-28 Mcafee, Inc. System and method for day-zero authentication of activex controls
JP5990430B2 (ja) * 2012-08-29 2016-09-14 株式会社バッファローメモリ Ssd(ソリッドステートドライブ)装置
JP6728113B2 (ja) 2017-08-22 2020-07-22 株式会社東芝 情報処理装置、情報処理方法、および情報処理プログラム
JP6829168B2 (ja) 2017-09-04 2021-02-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP6903529B2 (ja) 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP6759169B2 (ja) 2017-09-11 2020-09-23 株式会社東芝 情報処理装置、情報処理方法、および情報処理プログラム

Also Published As

Publication number Publication date
JP2019159830A (ja) 2019-09-19
US10891389B2 (en) 2021-01-12
US20190286833A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
JP6783812B2 (ja) 情報処理装置、情報処理方法およびプログラム
KR102257320B1 (ko) 하이퍼바이저 및 가상 머신 간 메모리 페이지 이행의 모니터링
US10402378B2 (en) Method and system for executing an executable file
US11132467B2 (en) Information processing device, information processing method, and computer program product
US8108686B2 (en) Method and system for detecting modified pages
US20130275973A1 (en) Virtualisation system
US10447812B2 (en) On demand resources
JP4952308B2 (ja) メモリ共有システム、方法、及び、プログラム
JP2009522676A (ja) 異なる仮想マシン・イメージ間でファイルを共有するための方法、システム、およびコンピュータ読み取り可能媒体
JP2008033483A (ja) 計算機システム、計算機および計算機動作環境の移動方法
US11347681B2 (en) Enhanced reading or recalling of archived files
CA2959754A1 (en) Chunk-based file acquisition and file reputation evaluation
JPWO2009066611A1 (ja) 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム
US20150302021A1 (en) Storage system
KR20120037381A (ko) 소프트웨어 컴포넌트 상태에 대한 접근 제어
JP6829168B2 (ja) 情報処理装置、情報処理方法およびプログラム
US20210397583A1 (en) Namespace representation and enhanced browsability for replicated file systems
JP6740719B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP5864534B2 (ja) 仮想計算機システム、メモリ管理方法、メモリ管理プログラム、記録媒体および集積回路
JP2009282604A (ja) 重複データ排除システム、重複データ排除方法及び重複データ排除プログラム
KR102134905B1 (ko) 비휘발성 메모리를 이용한 데이터처리 장치 및 방법
US20240095188A1 (en) Memory deduplication for encrypted virtual machines
US20230133971A1 (en) Access control method, computer-readable recording medium storing access control program, and information processing apparatus
US11972245B2 (en) Proactive prevention of data unavailability and data loss
US20230229756A1 (en) Rapid launch of secure executables in a virtualized environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201022

R151 Written notification of patent or utility model registration

Ref document number: 6783812

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151